|
@@ -2,13 +2,16 @@ package com.steerinfo.dil.service.impl;
|
|
|
|
|
|
import com.alibaba.fastjson.JSON;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
+import com.steerinfo.dil.mapper.RulesMapper;
|
|
|
import com.steerinfo.dil.mapper.TmstruckMeasureCommissionMapper;
|
|
|
+import com.steerinfo.dil.mapper.UtilsMapper;
|
|
|
import com.steerinfo.dil.model.TmstruckMeasureCommission;
|
|
|
import com.steerinfo.dil.service.ITmstruckMeasureCommissionService;
|
|
|
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;
|
|
@@ -33,6 +36,12 @@ public class TmstruckMeasureCommissionServiceImpl implements ITmstruckMeasureCom
|
|
|
@Autowired
|
|
|
private TmstruckMeasureCommissionMapper tmstruckMeasureCommissionMapper;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private RulesMapper rulesMapper;
|
|
|
+ @Autowired
|
|
|
+ UtilsMapper utilsMapper;
|
|
|
+ @Autowired
|
|
|
+ private RulesServiceImpl rulesService;
|
|
|
/**
|
|
|
* 查询计量委托 0 :计皮 1:计毛
|
|
|
* @param map orderTypee 订单类型 type 是计皮还是计毛
|
|
@@ -82,23 +91,23 @@ public class TmstruckMeasureCommissionServiceImpl implements ITmstruckMeasureCom
|
|
|
int i = 0;
|
|
|
addMeasureCommission(map); // 添加计毛委托
|
|
|
//发送数据给计量系统 必要数据 orderTypee:订单类型 resultTotalId: 总实绩Id orderId
|
|
|
- //获取当前订单是属于哪个厂区订单
|
|
|
- Integer receiveId = 0 ;
|
|
|
- Integer supplierId = 0 ;
|
|
|
- if(DataChange.dataToBigDecimal(map.get("orderTypee")).intValue() == 10){
|
|
|
- receiveId = tmstruckMeasureCommissionMapper.getReceiveIdByRequirementOrderId(DataChange.dataToBigDecimal(map.get("orderId")));
|
|
|
-
|
|
|
- }else{
|
|
|
- receiveId = tmstruckMeasureCommissionMapper.getReceiveIdByOrderId(DataChange.dataToBigDecimal(map.get("orderId")));
|
|
|
- }
|
|
|
- if(receiveId == 1){
|
|
|
+ int orderType = DataChange.dataToBigDecimal(map.get("orderTypee")).intValue();
|
|
|
+ if(orderType == 10){
|
|
|
+ //获取当前订单是属于哪个厂区订单
|
|
|
+ Integer receiveId = tmstruckMeasureCommissionMapper.getReceiveIdByRequirementOrderId(DataChange.dataToBigDecimal(map.get("orderId")));
|
|
|
+ if(receiveId == 1){
|
|
|
+ i += sendMeasureCommissionMes(map); //发送委托给达州钢铁
|
|
|
+ }else if(receiveId == 2) {
|
|
|
+ i += sendDXMeasureCommissionMes(map); //发送委托给达兴能源
|
|
|
+ }
|
|
|
+ }else if(orderType == 6 || orderType == 5 || orderType == 11){
|
|
|
//发送委托给达州钢铁
|
|
|
i += sendMeasureCommissionMes(map);
|
|
|
- }
|
|
|
- if(receiveId == 2) {
|
|
|
+ }else if(orderType == 18 || orderType == 7) {
|
|
|
//发送委托给达兴能源
|
|
|
i += sendDXMeasureCommissionMes(map);
|
|
|
}
|
|
|
+
|
|
|
return i;
|
|
|
}
|
|
|
|
|
@@ -139,7 +148,7 @@ public class TmstruckMeasureCommissionServiceImpl implements ITmstruckMeasureCom
|
|
|
Integer receiveId = tmstruckMeasureCommissionMapper.getLxRealReceiveIdByOrderId(orderId);
|
|
|
if(receiveId == 1){
|
|
|
//给达钢发送委托
|
|
|
-
|
|
|
+ i = sendMeasureCommissionMes(map);
|
|
|
}else if(receiveId == 2){
|
|
|
//给达兴发送委托
|
|
|
i = sendDXMeasureCommissionMes(map);
|
|
@@ -147,10 +156,8 @@ public class TmstruckMeasureCommissionServiceImpl implements ITmstruckMeasureCom
|
|
|
}else if(orderType == 13){
|
|
|
Integer sendId = tmstruckMeasureCommissionMapper.getLxRealSendUnitIdByOrderId(orderId);
|
|
|
if(sendId == 1){
|
|
|
- //给达钢发送委托
|
|
|
-
|
|
|
+ i = sendMeasureCommissionMes(map);
|
|
|
}else if(sendId == 2){
|
|
|
- //给达兴发送委托
|
|
|
i = sendDXMeasureCommissionMes(map);
|
|
|
}
|
|
|
|
|
@@ -159,23 +166,28 @@ public class TmstruckMeasureCommissionServiceImpl implements ITmstruckMeasureCom
|
|
|
//如果是15类型的订单寻找订单父级发货单位 (现只有进厂)
|
|
|
Integer receiveId = tmstruckMeasureCommissionMapper.getLxRealReceiveIdByOrderId(orderId);
|
|
|
if(receiveId == 1){
|
|
|
- //给达钢发送委托1
|
|
|
-
|
|
|
+ i = sendMeasureCommissionMes(map);
|
|
|
}else if (receiveId == 2){
|
|
|
- //给达兴发送委托
|
|
|
i = sendDXMeasureCommissionMes(map);
|
|
|
}
|
|
|
}else if(orderType == 16){
|
|
|
//出厂,发货单位
|
|
|
Integer sendUnitId = tmstruckMeasureCommissionMapper.getLxRealSendUnitIdByOrderId(orderId);
|
|
|
if(sendUnitId == 1){
|
|
|
- //给达钢发送委托1
|
|
|
-
|
|
|
+ i = sendMeasureCommissionMes(map);
|
|
|
}else if (sendUnitId == 2){
|
|
|
- //给达兴发送委托
|
|
|
i = sendDXMeasureCommissionMes(map);
|
|
|
}
|
|
|
}
|
|
|
+ else if(orderType == 20) {//内转零星进厂
|
|
|
+ //查询还未计量实绩
|
|
|
+ Integer noNetWeightResult = rulesMapper.getNoNetWeightResult(orderId);
|
|
|
+ if(noNetWeightResult != 2){
|
|
|
+ i = sendMeasureCommissionMes(map);
|
|
|
+ }else {
|
|
|
+ i = sendDXMeasureCommissionMes(map);//如果有两条没有净重的实绩则需要给达兴发委托 否则给达钢发委托
|
|
|
+ }
|
|
|
+ }
|
|
|
addMeasureCommission(map); // 添加计毛委托
|
|
|
return i;
|
|
|
}
|
|
@@ -208,18 +220,18 @@ public class TmstruckMeasureCommissionServiceImpl implements ITmstruckMeasureCom
|
|
|
|
|
|
|
|
|
/**
|
|
|
- * 查询计量委托并向计量系统发送数据 调用他们接口
|
|
|
+ * 查询计量委托并向计量系统发送数据 调用他们接口 (老厂区)
|
|
|
* 1:销售订单;2:焦炭发运计划;3:水渣发运计划;4:内转到异地库;5:采购辅料订单;6:采购老区燃料订单;
|
|
|
* 7:采购新区燃料订单;8:采购进口矿(万州-厂内);9:采购内转(达州-厂内);10:采购内转(老区-厂内); 11:厂内内转
|
|
|
* @param map orderTypee 订单类型 type 计皮0还是计毛1类型 orderId 订单ID
|
|
|
*/
|
|
|
public int sendMeasureCommissionMes(Map<String, Object> map){
|
|
|
- Map<String, Object> measureCommission = null;
|
|
|
+ Map<String, Object> measureCommission = new HashMap<>();
|
|
|
//查询计量委托
|
|
|
- BigDecimal orderType = DataChange.dataToBigDecimal(map.get("orderTypee"));
|
|
|
- switch (orderType.intValue()){
|
|
|
+ Integer orderType = DataChange.dataToBigDecimal(map.get("orderTypee")).intValue();
|
|
|
+ BigDecimal orderId=DataChange.dataToBigDecimal(map.get("orderId"));
|
|
|
+ switch (orderType){
|
|
|
case 1:
|
|
|
-
|
|
|
break;
|
|
|
case 2:
|
|
|
break;
|
|
@@ -227,27 +239,82 @@ public class TmstruckMeasureCommissionServiceImpl implements ITmstruckMeasureCom
|
|
|
break;
|
|
|
case 10:
|
|
|
break;
|
|
|
- case 11:
|
|
|
+ case 11://纯内转发送计量委托
|
|
|
+ //查找是否是多拼
|
|
|
+ Integer materialNu = utilsMapper.countMaterialByOrderId(orderId);
|
|
|
+ if (materialNu > 1){
|
|
|
+ List<Map<String, Object>> inwardCommission = tmstruckMeasureCommissionMapper.getMaterialIdAndCalculateId(map);
|
|
|
+ }else {
|
|
|
+ measureCommission = tmstruckMeasureCommissionMapper.purchaseNzMeasure(map);
|
|
|
+ }
|
|
|
+ measureCommission.put("isRelationEAS", false);
|
|
|
+ measureCommission.put("flowTo", "进厂");
|
|
|
+ measureCommission.put("isDel", false);
|
|
|
+ measureCommission.put("isInsert", true);
|
|
|
+ measureCommission.put("IsAssembly", false);
|
|
|
+ measureCommission.put("deliveryMethod", "磅重交货");
|
|
|
+ measureCommission.put("packagesNum", 0);
|
|
|
+ measureCommission.put("ReceivUnit","四川省达州钢铁集团有限责任公司");
|
|
|
+ measureCommission.put("sendUnit","四川省达州钢铁集团有限责任公司");
|
|
|
+ break;
|
|
|
case 4:
|
|
|
-
|
|
|
break;
|
|
|
case 5:
|
|
|
case 6:
|
|
|
case 7:
|
|
|
case 8:
|
|
|
- case 9:
|
|
|
+// case 9:
|
|
|
measureCommission = tmstruckMeasureCommissionMapper.purchaseMeasure(map);
|
|
|
- measureCommission.put("isRelationEAS", true);
|
|
|
+ if(orderType == 6){
|
|
|
+ measureCommission.put("isRelationEAS", false);
|
|
|
+ }else {
|
|
|
+ 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);
|
|
|
+ break;
|
|
|
+ case 12:
|
|
|
+ case 13:
|
|
|
+ //内转零星进厂(老厂区)
|
|
|
+ //零星计量委托(老厂区)
|
|
|
+ measureCommission = tmstruckMeasureCommissionMapper.sproadicMeasure(map);
|
|
|
+ measureCommission.put("isRelationEAS",false);
|
|
|
+ measureCommission.put("flowTo","进厂");
|
|
|
+ measureCommission.put("isDel", false);
|
|
|
+ measureCommission.put("isInsert", true);
|
|
|
+ measureCommission.put("IsAssembly", false);
|
|
|
+ measureCommission.put("deliveryMethod", "磅重交货");
|
|
|
+ measureCommission.put("packagesNum", 0);
|
|
|
+ break;
|
|
|
+ case 15:
|
|
|
+ case 16:
|
|
|
+ //零星计量委托(老厂区) 会有多拼
|
|
|
+ measureCommission = tmstruckMeasureCommissionMapper.sproadicMeasure(map);
|
|
|
+ measureCommission.put("isRelationEAS",false);
|
|
|
+ measureCommission.put("flowTo","出厂");
|
|
|
+ measureCommission.put("isDel", false);
|
|
|
+ measureCommission.put("isInsert", true);
|
|
|
+ measureCommission.put("deliveryMethod", "磅重交货");
|
|
|
+ measureCommission.put("packagesNum", 0);
|
|
|
+ break;
|
|
|
+ case 20://采购内转委托总厂区
|
|
|
+ measureCommission=tmstruckMeasureCommissionMapper.purchaseXqCgNzMeasure(map);
|
|
|
+ measureCommission.put("isRelationEAS",false);
|
|
|
+ measureCommission.put("flowTo","进厂");
|
|
|
+ measureCommission.put("isDel",false);
|
|
|
+ measureCommission.put("isInsert",true);
|
|
|
+ measureCommission.put("deliveryMethod", "磅重交货");
|
|
|
+ measureCommission.put("packagesNum", 0);
|
|
|
+
|
|
|
}
|
|
|
/*访问接口发送数据*/
|
|
|
-// sendMesToMeasure(measureCommission);
|
|
|
return 1;
|
|
|
+// return sendMesToMeasure(measureCommission);
|
|
|
+
|
|
|
}
|
|
|
|
|
|
|
|
@@ -290,6 +357,7 @@ public class TmstruckMeasureCommissionServiceImpl implements ITmstruckMeasureCom
|
|
|
case 9:
|
|
|
break;
|
|
|
case 10:
|
|
|
+ case 20:
|
|
|
//新区采购内转
|
|
|
measureCommission = tmstruckMeasureCommissionMapper.purchaseXqCgNzDXMeasure(map);
|
|
|
if(measureCommission == null)
|
|
@@ -314,19 +382,6 @@ public class TmstruckMeasureCommissionServiceImpl implements ITmstruckMeasureCom
|
|
|
break;
|
|
|
case 12:
|
|
|
case 13:
|
|
|
- measureCommission = tmstruckMeasureCommissionMapper.sporadicDXMeasure(map);
|
|
|
- if(measureCommission == null)
|
|
|
- return 0;
|
|
|
- measureCommission.put("regionName", "无法确定汽车衡"); //无法确定汽车衡
|
|
|
- measureCommission.put("deliveryType", "计重");
|
|
|
- measureCommission.put("billType", "2");
|
|
|
- measureCommission.put("planQuantity", "0");
|
|
|
- measureCommission.put("crname", "admin");
|
|
|
- measureCommission.put("orderSource", "0");
|
|
|
- measureCommission.put("ended", "0");
|
|
|
- break;
|
|
|
-// case 14:
|
|
|
- //零星一车多趟
|
|
|
case 15:
|
|
|
case 16:
|
|
|
measureCommission = tmstruckMeasureCommissionMapper.sporadicDXMeasure(map);
|
|
@@ -339,12 +394,11 @@ public class TmstruckMeasureCommissionServiceImpl implements ITmstruckMeasureCom
|
|
|
measureCommission.put("crname", "admin");
|
|
|
measureCommission.put("orderSource", "0");
|
|
|
measureCommission.put("ended", "0");
|
|
|
+ break;
|
|
|
|
|
|
}
|
|
|
/*访问接口发送数据*/
|
|
|
return sendMesToDXMeasure(measureCommission);
|
|
|
- // System.out.println(measureCommission);
|
|
|
- // return 1;
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -374,6 +428,8 @@ public class TmstruckMeasureCommissionServiceImpl implements ITmstruckMeasureCom
|
|
|
if(success){
|
|
|
return 1;
|
|
|
}
|
|
|
+ }else{
|
|
|
+ System.out.println("委托发送失败:" + jsonData);
|
|
|
}
|
|
|
return 0;
|
|
|
}
|
|
@@ -405,4 +461,54 @@ public class TmstruckMeasureCommissionServiceImpl implements ITmstruckMeasureCom
|
|
|
}
|
|
|
return 0;
|
|
|
}
|
|
|
+
|
|
|
+ //发送计量委托
|
|
|
+ @Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public int sendMeasureCommssion(Map<String, Object> map) throws Exception {
|
|
|
+ int i=0;
|
|
|
+ //获取订单类型
|
|
|
+ BigDecimal orderId = DataChange.dataToBigDecimal(map.get("orderId"));
|
|
|
+ BigDecimal orderType = utilsMapper.getOrderTypeByOrderId(orderId);
|
|
|
+ map.put("orderTypee", orderType);
|
|
|
+ //根据运输订单id查找运输订单号
|
|
|
+ switch (orderType.intValue()){
|
|
|
+ case 1: //查询未装车实绩
|
|
|
+ List<Map<String, Object>> mapList = rulesService.judgeLastMaterial(DataChange.dataToBigDecimal(map.get("orderId")));
|
|
|
+ map.put("materialId", mapList.get(0).get("materialId"));
|
|
|
+ i+=addXSMeasureCommission(map);
|
|
|
+ case 2:
|
|
|
+ case 3: //通过物资ID查询订单ID(针对单拼)
|
|
|
+ List<Integer> materialIdList = utilsMapper.getMaterialIdByOrderId(orderId);
|
|
|
+ map.put("materialId", materialIdList.get(0));
|
|
|
+ i+=addXSMeasureCommission(map);
|
|
|
+ break;
|
|
|
+ case 12:
|
|
|
+ case 13:
|
|
|
+ case 15:
|
|
|
+ case 20:
|
|
|
+ case 16: //发送计量委托(查询物资顺序第一个装卸货的物资)
|
|
|
+ //拿到需要计量的物资ID
|
|
|
+ Integer materialId = utilsMapper.getLxFirstMaterialId(DataChange.dataToBigDecimal(map.get("orderId")));
|
|
|
+ map.put("materialId", materialId);
|
|
|
+ i+=addLXMeasureCommission(map);
|
|
|
+ break;
|
|
|
+ case 5:
|
|
|
+ case 6:
|
|
|
+ case 7:
|
|
|
+// case 8:
|
|
|
+// case 9:
|
|
|
+ case 10:
|
|
|
+ case 11:
|
|
|
+// case 17:
|
|
|
+ case 18:
|
|
|
+ //通过订单ID查询物资Id
|
|
|
+ i+=addMaoMeasureCommission(map);
|
|
|
+ }
|
|
|
+ if (i==0){
|
|
|
+ throw new Exception("委托发送失败");
|
|
|
+ }
|
|
|
+ return i;
|
|
|
+ }
|
|
|
+
|
|
|
}
|