package com.steerinfo.dil.service.impl; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.steerinfo.dil.mapper.TmstrainLoadingResultMapper; import com.steerinfo.dil.mapper.TmstrainMeasureCommissionMapper; import com.steerinfo.dil.model.TmstrainLoadingResult; import com.steerinfo.dil.model.TmstrainMeasureCommission; import com.steerinfo.dil.service.ITmstrainMeasureCommissionService; import com.steerinfo.dil.util.DataChange; import com.steerinfo.dil.util.HTTPRequestUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.io.IOException; import java.math.BigDecimal; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; /** * TmstrainMeasureCommission服务实现: * @author generator * @version 1.0-SNAPSHORT 2021-12-09 06:52 * 类描述 * 修订历史: * 日期:2021-12-09 * 作者:generator * 参考: * 描述:TmstrainMeasureCommission服务实现 * @see null * @Copyright 湖南视拓信息技术股份有限公司. All rights reserved. */ @Service(value = "tmstrainMeasureCommissionService") public class TmstrainMeasureCommissionServiceImpl implements ITmstrainMeasureCommissionService { @Autowired private TmstrainMeasureCommissionMapper tmstrainMeasureCommissionMapper; @Autowired private TmstrainLoadingResultMapper tmstrainLoadingResultMapper; /** * 批量发送计量委托 * @return */ public int batchSendMeasureCommission(Map map){ List> resultIdList = (List>) map.get("resultIdList"); int count = 0; for (Map objectMap : resultIdList) { count += addTrainMeasureCommission(objectMap); } if (resultIdList.size()-count!=0){ return -1; } return count; } /** * 添加计量委托并发送计量委托 * resultId 装车实绩ID * @return */ public int addTrainMeasureCommission(Map map){ //查询计量委托 Map measureCommission = getTrainMeasureCommission(map); measureCommission.put("steelyardNum", "铁专线"); //车皮号 measureCommission.put("isRelationEAS", true); measureCommission.put("flowTo", "进厂"); measureCommission.put("isDel", false); measureCommission.put("isInsert", true); measureCommission.put("IsAssembly", false); measureCommission.put("deliveryMethod", "磅重"); measureCommission.put("packagesNum", 0); map.put("materialId", measureCommission.get("materialId")); map.put("resultTotalId", measureCommission.get("resultTotalId")); measureCommission.remove("resultTotalId"); //发送计量委托,成功返回1,失败返回0 int i = sendMesToMeasure(measureCommission); if(i == 1){ //添加计量委托实绩 addMeasureCommission(map); updateTrainLoadResult(map); } return i; } /** * 修改计量委托 * @param map * @return */ public int updateTrainMeasureCommission(Map map){ return 0; } /** * 更新火车装车实绩 * @param map * @return */ public void updateTrainLoadResult(Map map){ TmstrainLoadingResult tmstrainLoadingResult = new TmstrainLoadingResult(); tmstrainLoadingResult.setResultId(DataChange.dataToBigDecimal(map.get("resultId"))); tmstrainLoadingResult.setSendRequest(new BigDecimal(2)); //更新委托已发送过 tmstrainLoadingResultMapper.updateByPrimaryKeySelective(tmstrainLoadingResult); } /** * 查询待计量 * @param map * @return */ @Override public List> getLoadResultToSendMC(Map map) { return tmstrainMeasureCommissionMapper.getLoadResultToSendMC(map); } /** * 查询已计量 * @param map * @return */ @Override public List> getWeightResult(Map map) { return tmstrainMeasureCommissionMapper.getWeightResult(map); } /** * 添加火运计量委托 * resultTotalId 火运总实绩ID * materialId 物资ID * calculateId 计量衡Id * @param map * @return */ public int addMeasureCommission(Map map){ TmstrainMeasureCommission tmstrainMeasureCommission = new TmstrainMeasureCommission(); tmstrainMeasureCommission.setId(tmstrainMeasureCommissionMapper.selectMaxId()); tmstrainMeasureCommission.setCalculateId(new BigDecimal(13)); tmstrainMeasureCommission.setMaterialId(DataChange.dataToBigDecimal(map.get("materialId"))); tmstrainMeasureCommission.setResultTotalId(DataChange.dataToBigDecimal(map.get("resultTotalId"))); return tmstrainMeasureCommissionMapper.insertSelective(tmstrainMeasureCommission); } /** * 查询计量委托 * @param map * @return */ @Override public Map getTrainMeasureCommission(Map map) { return tmstrainMeasureCommissionMapper.getTrainMeasureCommission(map); } /** * 访问计量接口方法 * @param map * @return */ public int sendMesToMeasure(Map map){ List> sendMap = new ArrayList<>(); sendMap.add(map); JSONObject jsonObject = new JSONObject(); jsonObject.put("data", sendMap); String url = "http://172.16.33.122:44325/api/logistics/TareApplyFor"; String jsonData = null; try { jsonData = HTTPRequestUtils.send(url, jsonObject, "utf-8"); } catch (IOException e) { e.printStackTrace(); } if(!"null".equals(jsonData)){ System.out.println(jsonData); HashMap hashMap = JSON.parseObject(jsonData, HashMap.class); boolean success = (boolean) hashMap.get("success"); System.out.println(hashMap.get("msg")); if(success){ return 1; } } return 0; } }