Kaynağa Gözat

匹配达兴作业点

txf 3 yıl önce
ebeveyn
işleme
5fa5bddee6

+ 3 - 0
src/main/java/com/steerinfo/dil/mapper/RulesMapper.java

@@ -41,4 +41,7 @@ public interface RulesMapper {
 
     //查询还没有净重的计量实绩数量
     Integer getNoNetWeightResult(BigDecimal orderId);
+
+    //查询还没有出厂门岗ID的实绩
+    Integer getNoGatepostIdResult(BigDecimal orderId);
 }

+ 3 - 0
src/main/java/com/steerinfo/dil/mapper/TmstruckReceiptResultMapper.java

@@ -29,4 +29,7 @@ public interface TmstruckReceiptResultMapper extends IBaseMapper<TmstruckReceipt
 
     //获取内转收货实绩
     List<Map<String, Object>> getInwardReceipt(Map<String, Object> map);
+
+    //查询是否已收过货
+    Integer getReceiptResult(BigDecimal resultTotalId);
 }

+ 1 - 1
src/main/java/com/steerinfo/dil/mapper/UtilsMapper.java

@@ -58,7 +58,7 @@ public interface UtilsMapper {
     BigDecimal getTotalIdByOrderNumber(String orderNumber);
 
     //通过总实绩ID查找订单类型
-    Integer getOrderTypeByTotalId(BigDecimal resultTotalId);
+    Map<String, Object> getOrderTypeByTotalId(BigDecimal resultTotalId);
 
     //查询最大路段顺序号 以及当前订单路段顺序号(执行到哪一步)
     Map<String, Object> getLineSeqAndOrderSeq(Map<String, Object> map);

+ 39 - 2
src/main/java/com/steerinfo/dil/service/impl/RulesServiceImpl.java

@@ -130,7 +130,7 @@ public class RulesServiceImpl implements IRulesService {
                 //查询还没有净重的实绩
                 Integer resultCount = rulesMapper.getNoNetWeightResult(orderId);
                 if(resultCount == 2){
-                    return 15; //151 为判断计算进厂计量汽车衡
+                    return 15; //
                 }else {
                     if(randomNum < 5){
                         return 17;
@@ -139,7 +139,7 @@ public class RulesServiceImpl implements IRulesService {
                     }
                 }
             }
-            return 6;
+            return 0;
         }
         List<Integer> calculateList = queryTruckCalculate(map);
         //暂时不考虑优先级 随机进行取值
@@ -304,4 +304,41 @@ public class RulesServiceImpl implements IRulesService {
         }
         return map;
     }
+
+    /**
+     * 计算门岗
+     * @param map
+     * @return
+     */
+    public int calculateDxGatepostId(Map<String, Object> map){
+        BigDecimal orderId = DataChange.dataToBigDecimal(map.get("orderId"));
+        //针对新厂区
+        int orderType = DataChange.dataToBigDecimal(map.get("orderType")).intValue();
+        if(orderType == 1){ //销售
+            //通过订单ID获取线路类型为哪种类型 钢材 焦炭 危化品
+            Integer isSteel = rulesMapper.getLineIsSteel(orderId);
+            if(isSteel == 3){
+                return 12; //化工厂  化工厂二号门
+            }
+            if(isSteel == 4){
+                return 9; //焦化厂  达兴二号门
+                }
+            }
+        if(orderType == 7){
+            return 10; // 采购燃料
+        }
+        if (orderType == 12 || orderType == 13){
+            return 9; //内转  达兴二号门
+        }
+        if(orderType == 10){
+            //查询还没有出厂门岗ID的实绩
+            Integer resultCount = rulesMapper.getNoGatepostIdResult(orderId);
+            if(resultCount == 0){
+                return 13;
+            }else {
+                return 10;
+            }
+        }
+        return 0;
+    }
 }

+ 5 - 5
src/main/java/com/steerinfo/dil/service/impl/TmstruckEnfactoryResultServiceImpl.java

@@ -65,11 +65,10 @@ public class TmstruckEnfactoryResultServiceImpl implements ITmstruckEnfactoryRes
         //添加主键
         tmstruckEnfactoryResult.setResultId(tmstruckEnfactoryResultMapper.selectMaxId());
         //通过总实绩ID查询订单类型
-        Integer orderType = utilsMapper.getOrderTypeByTotalId(resultTotalId);
-        if(!"123".contains(orderType.toString())){
-            //通过物资计算门岗 (暂时定死)
-            tmstruckEnfactoryResult.setGatepostId(new BigDecimal(1));
-        }
+        Map<String, Object> mesMap = utilsMapper.getOrderTypeByTotalId(resultTotalId);
+        int gatepostId = rulesService.calculateDxGatepostId(mesMap);
+        //添加门岗ID
+        tmstruckEnfactoryResult.setGatepostId(new BigDecimal(gatepostId));
         //添加实绩总表Id
         tmstruckEnfactoryResult.setResultTotalId(resultTotalId);
         // 添加路段顺序号
@@ -174,6 +173,7 @@ public class TmstruckEnfactoryResultServiceImpl implements ITmstruckEnfactoryRes
                     map.put("materialId", mapList.get(0).get("materialId"));
                     mesMap.put("nature", 1);
                     mesMap.put("orderId", orderId);
+                    mesMap.put("orderType", orderType);
                     //计算计皮汽车衡
                     int tarePlaceId = rulesService.calculateWeighbridge(mesMap);
                     mesMap.put("tarePlaceId", tarePlaceId);

+ 9 - 4
src/main/java/com/steerinfo/dil/service/impl/TmstruckLeaveFactoryResultServiceImpl.java

@@ -5,6 +5,7 @@ import com.steerinfo.dil.feign.BmsTruckFeign;
 import com.steerinfo.dil.feign.OmsFeign;
 import com.steerinfo.dil.mapper.TmstruckEnfactoryResultMapper;
 import com.steerinfo.dil.mapper.TmstruckLeaveFactoryResultMapper;
+import com.steerinfo.dil.mapper.UtilsMapper;
 import com.steerinfo.dil.model.TmstruckLeaveFactoryResult;
 import com.steerinfo.dil.service.ITmstruckLeaveFactoryResultService;
 import com.steerinfo.dil.service.IUtilsService;
@@ -46,10 +47,10 @@ public class TmstruckLeaveFactoryResultServiceImpl implements ITmstruckLeaveFact
     private IUtilsService utilsService;
 
     @Autowired
-    private BmsShipFeign bmsShipFeign;
+    private UtilsMapper utilsMapper;
 
     @Autowired
-    private BmsTruckFeign bmsTruckFeign;
+    private RulesServiceImpl rulesService;
 
     @Autowired
     OmsFeign omsFeign;
@@ -77,11 +78,15 @@ public class TmstruckLeaveFactoryResultServiceImpl implements ITmstruckLeaveFact
         //添加主键
         tmstruckLeaveFactoryResult.setId(tmstruckLeaveFactoryResultMapper.selectMaxId());
         //添加总实绩ID
-        tmstruckLeaveFactoryResult.setResultTotalId(DataChange.dataToBigDecimal(map.get("resultTotalId")));
+        BigDecimal resultTotalId = DataChange.dataToBigDecimal(map.get("resultTotalId"));
+        tmstruckLeaveFactoryResult.setResultTotalId(resultTotalId);
+        //通过总实绩ID查询订单类型
+        Map<String, Object> mesMap = utilsMapper.getOrderTypeByTotalId(resultTotalId);
+        int gatepostId = rulesService.calculateDxGatepostId(mesMap);
+        tmstruckLeaveFactoryResult.setGatepostId(new BigDecimal(gatepostId));
         //添加路段顺序号
         tmstruckLeaveFactoryResult.setSegmentSqe(DataChange.dataToBigDecimal(map.get("segmentSqe")));
         //添加门岗ID 出厂门岗为线路的终点
-//        tmstruckLeaveFactoryResult.setGatepostId(DataChange.dataToBigDecimal(map.get("lineEndNodeId")));
         return tmstruckLeaveFactoryResultMapper.insertSelective(tmstruckLeaveFactoryResult);
     }
 

+ 2 - 7
src/main/java/com/steerinfo/dil/service/impl/TmstruckLoadResultServiceImpl.java

@@ -282,14 +282,9 @@ public class TmstruckLoadResultServiceImpl implements ITmstruckLoadResultService
         mesMap.put("orderType", orderType);
         mesMap.put("orderId", orderId);
         int placeId = rulesService.calculateWeighbridge(mesMap);
+        mesMap.put("grossPlaceId", placeId);
+        i += tmstruckWeightResultService.updateWeightResult(mesMap);
 
-        if(orderType.intValue() == 10){
-            //如果订单是采购内转类型订单
-            map.put("grossPlaceId", 15);
-            i += tmstruckWeightResultService.updateWeightResult(map);
-        }else {
-            i += tmstruckWeightResultService.calculateTruckCalculateByOne(map, 2);
-        }
         //更新路段顺序号
         i += utilsService.updateOrderLineSequence(map);
         //推送消息到websocket

+ 7 - 1
src/main/java/com/steerinfo/dil/service/impl/TmstruckReceiptResultServiceImpl.java

@@ -72,10 +72,16 @@ public class TmstruckReceiptResultServiceImpl implements ITmstruckReceiptResultS
      * @return
      */
     public int addReceiptResult(Map<String, Object> map){
+        BigDecimal resultTotalId = DataChange.dataToBigDecimal(map.get("resultTotalId"));
+        //根据总实绩ID查询收货实绩查看是否已收货
+        Integer receiptResult = tmstruckReceiptResultMapper.getReceiptResult(resultTotalId);
+        if(receiptResult != null){
+            return 0;
+        }
         //新增完卸车实绩后新增一条收货实绩
         TmstruckReceiptResult tmstruckReceiptResult = new TmstruckReceiptResult();
         tmstruckReceiptResult.setId(tmstruckReceiptResultMapper.selectMaxId());//添加主键
-        tmstruckReceiptResult.setResultTotalId(DataChange.dataToBigDecimal(map.get("resultTotalId")));//添加总实绩Id
+        tmstruckReceiptResult.setResultTotalId(resultTotalId);//添加总实绩Id
         tmstruckReceiptResult.setStatus(new BigDecimal(0)); // 卸货完成后添加的为虚拟收货实绩
         return tmstruckReceiptResultMapper.insertSelective(tmstruckReceiptResult);
     }

+ 18 - 14
src/main/java/com/steerinfo/dil/service/impl/TmstruckUnloadResultServiceImpl.java

@@ -56,6 +56,9 @@ public class TmstruckUnloadResultServiceImpl implements ITmstruckUnloadResultSer
 
     @Autowired
     TmstruckLeaveFactoryResultServiceImpl tmstruckLeaveFactoryResultService;
+
+    @Autowired
+    private RulesServiceImpl rulesService;
     /**
      * 新增卸货实绩
      * 总实绩ID、卸货点
@@ -139,6 +142,10 @@ public class TmstruckUnloadResultServiceImpl implements ITmstruckUnloadResultSer
         //路段顺序号 + 1
         i += utilsService.updateOrderLineSequence(map);
         BigDecimal resultTotalId = DataChange.dataToBigDecimal(map.get("resultTotalId"));
+        BigDecimal orderId = DataChange.dataToBigDecimal(map.get("orderId"));
+        Map<String, Object> mesMap = new HashMap<>();
+        mesMap.put("orderId", orderId);
+        mesMap.put("orderType", orderType);
         switch (orderType.intValue()){
             case 1:
                 break;
@@ -154,33 +161,30 @@ public class TmstruckUnloadResultServiceImpl implements ITmstruckUnloadResultSer
             case 8:
             case 9:
                 //计算计皮汽车衡 (当前无法计算汽车衡)
-                map.put("tarePlaceId", 6);
-                i += tmstruckWeightResultService.updateWeightResult(map);
-                //通过订单ID查询物资Id
-//                List<Integer> materialIdList = utilsMapper.getMaterialIdByOrderId(DataChange.dataToBigDecimal(map.get("orderId")));
-//                map.put("materialId", materialIdList.get(0));
+                int placeId = rulesService.calculateWeighbridge(mesMap);
+                mesMap.put("tarePlaceId", placeId);
+                i += tmstruckWeightResultService.updateWeightResult(mesMap);
                 i += tmstruckReceiptResultService.addReceiptResult(map); //新增完卸车实绩后新增一条收货实绩
 
                 //计算出厂门岗 (暂时定死)
-                Integer gatepostId = 2;
+//                Integer gatepostId = 2;
                 //计皮委托发送后更新出厂门岗
-                i += tmstruckLeaveFactoryResultService.updateLeaveFactoryGatepostId(resultTotalId.intValue(), gatepostId);
+//                i += tmstruckLeaveFactoryResultService.updateLeaveFactoryGatepostId(resultTotalId.intValue(), gatepostId);
                 break;
             case 10:
                 //计算计皮汽车衡 (当前无法计算汽车衡)
-                map.put("tarePlaceId", 18);
-                i += tmstruckWeightResultService.updateWeightResult(map);
-                //计算出厂门岗 (暂时定死)
-                Integer gatepostId2 = 9;
-                //计皮委托发送后更新出厂门岗
-                i += tmstruckLeaveFactoryResultService.updateLeaveFactoryGatepostId(resultTotalId.intValue(), gatepostId2);
+                int placeId10 = rulesService.calculateWeighbridge(mesMap);
+                mesMap.put("tarePlaceId", placeId10);
+                i += tmstruckWeightResultService.updateWeightResult(mesMap);
                 i += tmstruckReceiptResultService.addReceiptResult(map); //新增完卸车实绩后新增一条收货实绩
                 break;
             case 11:
                 //判断出厂路段顺序号是否为最后一个
                 i += utilsService.closeOrderNormally(map);
             case 12:
-
+                int placeId12 = rulesService.calculateWeighbridge(mesMap);
+                mesMap.put("tarePlaceId", placeId12);
+                i += tmstruckWeightResultService.updateWeightResult(mesMap);
                 //判断是否还有物资,如果还有物资就执行发送计量委托
                 materialIdIsNorWeight(map);
                 break;

+ 1 - 1
src/main/java/com/steerinfo/dil/service/impl/TmstruckWeightResultServiceImpl.java

@@ -396,7 +396,7 @@ public class TmstruckWeightResultServiceImpl implements ITmstruckWeightResultSer
         if(map.get("tarePlaceId") != null){ //如果皮重汽车衡不为空 更新皮重汽车衡
             tmstruckWeightResult.setResultTarePlaceId(DataChange.dataToBigDecimal(map.get("tarePlaceId")));
         }
-        if(map.get("grossPlaceId") != null){//如果毛重汽车衡不为空 更新毛重汽车衡
+            if(map.get("grossPlaceId") != null){//如果毛重汽车衡不为空 更新毛重汽车衡
             tmstruckWeightResult.setResultGrossPlaceId(DataChange.dataToBigDecimal(map.get("grossPlaceId")));
         }
         if(map.get("resultTareWeight")!= null){ //如果皮重不为空 更新皮重

+ 12 - 1
src/main/resources/com/steerinfo/dil/mapper/RulesMapper.xml

@@ -132,6 +132,17 @@
             on TTR.ORDER_ID = OO.ORDER_ID
         left join TMSTRUCK_WEIGHT_RESULT TWR
             on TWR.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
-        where TWR.RESULT_NET_WEIGHT is null
+        where TWR.RESULT_NET_WEIGHT is null and OO.ORDER_ID = #{orderId}
+    </select>
+
+<!--  查询还没有出厂门岗ID的实绩  -->
+    <select id="getNoGatepostIdResult" parameterType="java.math.BigDecimal" resultType="java.lang.Integer">
+        select count(TLFR.RESULT_ID)
+        from OMSTRUCK_ORDER OO
+        left join TMSTRUCK_TOTAL_RESULT TTR
+            on OO.ORDER_ID = TTR.ORDER_ID
+        left join TMSTRUCK_LEAVE_FACTORY_RESULT TLFR
+            on TLFR.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
+        where OO.ORDER_ID = #{orderId}
     </select>
 </mapper>

+ 8 - 0
src/main/resources/com/steerinfo/dil/mapper/TmstruckReceiptResultMapper.xml

@@ -718,4 +718,12 @@
     </where>
     <include refid="orderBy"></include>
   </select>
+
+<!-- 查询是否已收过货 -->
+    <select id="getReceiptResult" parameterType="java.math.BigDecimal" resultType="java.lang.Integer">
+        select TRR.RESULT_ID
+        from TMSTRUCK_RECEIPT_RESULT TRR
+        where TRR.RESULT_TOTAL_ID = #{resultTotalId}
+    </select>
+
 </mapper>

+ 3 - 2
src/main/resources/com/steerinfo/dil/mapper/UtilsMapper.xml

@@ -110,8 +110,9 @@
 
 
 <!--   通过总实绩ID查询订单类型 -->
-    <select id="getOrderTypeByTotalId" parameterType="java.math.BigDecimal" resultType="java.lang.Integer">
-        select OO.ORDER_TYPE
+    <select id="getOrderTypeByTotalId" parameterType="java.math.BigDecimal" resultType="java.util.Map">
+        select OO.ORDER_TYPE "orderType",
+               OO.ORDER_ID "orderId"
         from TMSTRUCK_TOTAL_RESULT TTR
         left join OMSTRUCK_ORDER OO
             on OO.ORDER_ID = TTR.ORDER_ID