Procházet zdrojové kódy

Merge branch 'master' of https://git.steerinfo.com/DAL-DAZHOU1/DAL-TMS-TRUCK-API

luobang před 3 roky
rodič
revize
badcd21204

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

@@ -115,7 +115,7 @@ public interface UtilsMapper {
    Map<String,Object> FristTimeTask(Map<String,Object> map);
 
    //根据运输订单id查找计时暂停时间
-    List<Map<String,Object>> TimeTaskPause(Map<String,Object> map);
+    BigDecimal TimeTaskPause(Map<String,Object> map);
 
    //通过运输订单id查找计时是否开始
     BigDecimal getTime(BigDecimal orderId);

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

@@ -38,7 +38,7 @@ public class TmstruckEnfactoryResultServiceImpl implements ITmstruckEnfactoryRes
     private TmstruckMeasureCommissionServiceImpl tmstruckMeasureCommissionService;
 
     @Autowired
-    private TmstruckWeightResultServiceImpl tmstruckWeightResultService;
+    private TmstruckTimeTaskResultServiceImpl tmstruckTimeTaskResultService;
 
     @Autowired
     private UtilsServiceImpl utilsService;
@@ -157,20 +157,11 @@ public class TmstruckEnfactoryResultServiceImpl implements ITmstruckEnfactoryRes
         String capacityNumber = (String) mesMap.get("capacityNumber");
         BigDecimal resultTotalId = DataChange.dataToBigDecimal(mesMap.get("totalId"));
         int orderType = DataChange.dataToBigDecimal(mesMap.get("orderType")).intValue();
-        if(orderType == 11){
-            //内转订单类型  没有生成实绩 直接新增
-            int sqe = DataChange.dataToBigDecimal(mesMap.get("Sqe")).intValue();
-            sqe = sqe + 1;
-            map.put("resultId", tmstruckEnfactoryResultMapper.selectMaxId());  //插入进厂实绩Id
-            map.put("Sqe", sqe); //查询路段顺序号 + 1
-            map.put("totalId",resultTotalId);
-            i += tmstruckEnfactoryResultMapper.insertSelective(generateEnFactoryResult(map));
-            mesMap.put("orderLineSequence", sqe);
-            i += utilsService.updateOrderLineSqeByOrderNumber(mesMap); //更新路段顺序号
-            utilsService.pushMesToWebsocket(capacityNumber, "车辆进厂");
-            return i;
+        if(orderType == 11){//内转计时调用方法
+            return orderType11Use(map, mesMap, capacityNumber, resultTotalId);
+        } else if (orderType == 21){//调用计时作业方法
+            return orderType21Use(map, orderNumber, DataChange.dataToBigDecimal(map.get("orderId")));
         }
-
         Map<String, Object> selectMap = tmstruckEnfactoryResultMapper.selectEnFactoryResultId(orderNumber);
         if(selectMap == null){
             throw new Exception("该车已进厂!!");
@@ -243,6 +234,56 @@ public class TmstruckEnfactoryResultServiceImpl implements ITmstruckEnfactoryRes
 
     }
 
+    /**
+     * 计时作业方法
+     * @Author TXF
+     * @Date 2022/3/18 16:57
+     * @param map
+     * @param orderNumber
+     * @param orderId
+     * @return
+     **/
+    public int orderType21Use(Map<String, Object> map, String orderNumber, BigDecimal orderId) throws Exception{
+        int gatepostId = DataChange.dataToBigDecimal(map.get("gatepostId")).intValue();
+        if(TmstruckMeasureCommissionServiceImpl.daXingGatepost.contains(gatepostId)){
+            //如果是达兴的门岗扫码则不进行计时判断
+            map.put("inwardTypes",0);
+            map.put("orderNumber",orderNumber);
+        }else {
+            //首先判断是否还有计时开始
+            BigDecimal startTime = utilsMapper.getTime(DataChange.dataToBigDecimal(orderId));
+            //如果计时已经开始
+            if (startTime == null) {
+                map.put("inwardTypes", 1);
+                map.put("orderNumber", orderNumber);
+            } else {
+                map.put("inwardTypes", 3);
+                map.put("orderNumber", orderNumber);
+            }
+        }
+        return tmstruckTimeTaskResultService.addTimeTaskResult(map);
+    }
+
+    /**
+     * 内转订单类型处理方法
+     * @Author TXF
+     * @Date 2022/3/18 16:59
+     * @param
+     * @return
+     **/
+    public int orderType11Use(Map<String, Object> map, Map<String, Object> mesMap, String capacityNumber, BigDecimal resultTotalId){
+        //内转订单类型  没有生成实绩 直接新增
+        int sqe = DataChange.dataToBigDecimal(mesMap.get("Sqe")).intValue();
+        sqe = sqe + 1;
+        map.put("resultId", tmstruckEnfactoryResultMapper.selectMaxId());  //插入进厂实绩Id
+        map.put("Sqe", sqe); //查询路段顺序号 + 1
+        map.put("totalId",resultTotalId);
+        tmstruckEnfactoryResultMapper.insertSelective(generateEnFactoryResult(map));
+        mesMap.put("orderLineSequence", sqe);
+        utilsService.updateOrderLineSqeByOrderNumber(mesMap); //更新路段顺序号
+        utilsService.pushMesToWebsocket(capacityNumber, "车辆进厂");
+        return 1;
+    }
 
     /**
      * 通过门禁进厂
@@ -258,21 +299,7 @@ public class TmstruckEnfactoryResultServiceImpl implements ITmstruckEnfactoryRes
         String subString = orderNumber.substring(0,orderNumber.length() - 1);
         map.putAll(tmstruckEnfactoryResultMapper.selectEnFactoryResultId(subString));
         BigDecimal orderType = DataChange.dataToBigDecimal(map.get("orderTypee"));
-        //调用计时作业方法
-        if (orderType.intValue()==21){
-            //通过运输订单号查找订单id
-            BigDecimal orderId = utilsMapper.getOrderIdByOrderNumber(orderNumber);
-            //首先判断是否还有计时开始
-            BigDecimal startTime = utilsMapper.getTime(orderId);
-            //如果计时已经开始
-            if (startTime==null){
-                map.put("inwardTypes",1);
-                map.put("orderNumber",orderNumber);
-            }else {
-                map.put("inwardTypes",3);
-                map.put("orderNumber",orderNumber);
-            }
-        }
+
         switch (orderType.intValue()){
             case 1:
             case 4:

+ 29 - 13
src/main/java/com/steerinfo/dil/service/impl/TmstruckLeaveFactoryResultServiceImpl.java

@@ -49,7 +49,7 @@ public class TmstruckLeaveFactoryResultServiceImpl implements ITmstruckLeaveFact
     private UtilsMapper utilsMapper;
 
     @Autowired
-    private RulesServiceImpl rulesService;
+    private TmstruckEnfactoryResultServiceImpl tmstruckEnfactoryResultService;
 
     @Autowired
     OmsFeign omsFeign;
@@ -172,18 +172,9 @@ public class TmstruckLeaveFactoryResultServiceImpl implements ITmstruckLeaveFact
         int orderType = DataChange.dataToBigDecimal(mesMap.get("orderType")).intValue();
         String capacityNumber = (String) mesMap.get("capacityNumber");
         if(orderType == 11){
-            //内转订单类型 没有生成实绩 直接新增
-            int sqe = DataChange.dataToBigDecimal(mesMap.get("Sqe")).intValue();
-            sqe = sqe + 1;
-            map.put("resultId",tmstruckLeaveFactoryResultMapper.selectMaxId());//出厂实绩ID
-            map.put("Sqe",sqe);//查询路段顺序号+1
-            map.put(("totalId"),mesMap.get("totalId"));
-            i += tmstruckLeaveFactoryResultMapper.insertSelective(generateLeaveFactory(map));
-            //更新路段顺序号
-            mesMap.put("orderLineSequence",sqe);
-            i += utilsService.updateOrderLineSqeByOrderNumber(mesMap);
-            utilsService.pushMesToWebsocket(capacityNumber, "出厂");
-            return i;
+           return orderType11Use(map, mesMap,capacityNumber);
+        }else if(orderType == 21){
+            return tmstruckEnfactoryResultService.orderType21Use(map, orderNumber, DataChange.dataToBigDecimal(mesMap.get("orderId")));
         }
         Map<String, Object> selectMap = tmstruckLeaveFactoryResultMapper.selectResultId(orderNumber);
         if(selectMap == null){
@@ -272,6 +263,31 @@ public class TmstruckLeaveFactoryResultServiceImpl implements ITmstruckLeaveFact
         return i;
     }
 
+    /**
+     * 内转订单类型
+     * @Author TXF
+     * @Date 2022/3/18 18:03
+     * @param map
+     * @param mesMap
+     * @param capacityNumber
+     * @return
+     **/
+    public int orderType11Use(Map<String, Object> map, Map<String, Object> mesMap, String capacityNumber){
+        //内转订单类型 没有生成实绩 直接新增
+        int sqe = DataChange.dataToBigDecimal(mesMap.get("Sqe")).intValue();
+        sqe = sqe + 1;
+        map.put("resultId",tmstruckLeaveFactoryResultMapper.selectMaxId());//出厂实绩ID
+        map.put("Sqe",sqe);//查询路段顺序号+1
+        map.put(("totalId"),mesMap.get("totalId"));
+        tmstruckLeaveFactoryResultMapper.insertSelective(generateLeaveFactory(map));
+        //更新路段顺序号
+        mesMap.put("orderLineSequence",sqe);
+        utilsService.updateOrderLineSqeByOrderNumber(mesMap);
+        utilsService.pushMesToWebsocket(capacityNumber, "出厂");
+        return 1;
+    }
+
+
     //内转订单类型新增出厂实绩
     private TmstruckLeaveFactoryResult generateLeaveFactory(Map<String, Object> map) {
         TmstruckLeaveFactoryResult tmstruckLeaveFactoryResult = new TmstruckLeaveFactoryResult();

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

@@ -66,8 +66,8 @@ public class TmstruckMeasureCommissionServiceImpl implements ITmstruckMeasureCom
     private static final String judgeCoke = "一厂焦炭库";
 
     //根据门来判断委托发送依据
-    private static final List<Integer> daGangGatepost = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 14);
-    private static final List<Integer> daXingGatepost = Arrays.asList(8, 9, 10, 11, 12, 13);
+    public static final List<Integer> daGangGatepost = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 14);
+    public static final List<Integer> daXingGatepost = Arrays.asList(8, 9, 10, 11, 12, 13);
 
     /**
      * 根据门岗发送委托

+ 31 - 42
src/main/java/com/steerinfo/dil/service/impl/TmstruckTimeTaskResultServiceImpl.java

@@ -174,8 +174,7 @@ public class TmstruckTimeTaskResultServiceImpl implements ITmstruckTimeTaskResul
             tmstruckTimeTaskResult.setUpdateTime(new Date());
             tmstruckTimeTaskResult.setUpdateUsername(personnelSsoId);
             i+=tmstruckTimeTaskResultMapper.updateByPrimaryKeySelective(tmstruckTimeTaskResult);
-            //判断计时结束后推送新的订单
-            pushOrderForPause(map);
+
         }
 
         return i;
@@ -281,51 +280,41 @@ public class TmstruckTimeTaskResultServiceImpl implements ITmstruckTimeTaskResul
         if (countEndTimeNum >= 1) {
             throw new Exception("请勿重复计时");
         }
-        if (inwardType.intValue()==1){
-            tmstruckTimeTaskResult.setTimeTaskResultId(tmstruckTimeTaskResultMapper.selectMaxId());
-            tmstruckTimeTaskResult.setResultTotalId(DataChange.dataToBigDecimal(resultTotalId));
-            //获取计时开始的订单类型
-            tmstruckTimeTaskResult.setResultTimeType(inwardType);
-            tmstruckTimeTaskResult.setResultTime(new Date());
-            tmstruckTimeTaskResult.setInsertTime(new Date());
-            if (personnelSsoId!=null) {
-                tmstruckTimeTaskResult.setInsertUsername(personnelSsoId);
-            }
-            //新增第一条计时实绩
-            i += tmstruckTimeTaskResultMapper.insertSelective(tmstruckTimeTaskResult);
-        }else if (inwardType.intValue()==3){
-            tmstruckTimeTaskResult.setResultTotalId(DataChange.dataToBigDecimal(resultTotalId));
-            //获取计时结束的订单类型
-            tmstruckTimeTaskResult.setTimeTaskResultId(tmstruckTimeTaskResultMapper.selectMaxId());
-            tmstruckTimeTaskResult.setResultTime(new Date());
-            tmstruckTimeTaskResult.setResultTimeType(new BigDecimal(3));
-            if (personnelSsoId!=null) {
-                tmstruckTimeTaskResult.setInsertUsername(personnelSsoId);
-            }
-            tmstruckTimeTaskResultMapper.insertSelective(tmstruckTimeTaskResult);
+
+        tmstruckTimeTaskResult.setTimeTaskResultId(tmstruckTimeTaskResultMapper.selectMaxId());
+        tmstruckTimeTaskResult.setResultTotalId(DataChange.dataToBigDecimal(resultTotalId));
+        //获取计时开始的订单类型
+        tmstruckTimeTaskResult.setResultTimeType(inwardType);
+        tmstruckTimeTaskResult.setResultTime(new Date());
+        tmstruckTimeTaskResult.setInsertTime(new Date());
+        if (personnelSsoId!=null) {
+            tmstruckTimeTaskResult.setInsertUsername(personnelSsoId);
+        }
+        //新增第一条计时实绩
+        i += tmstruckTimeTaskResultMapper.insertSelective(tmstruckTimeTaskResult);
+        if(inwardType.intValue() == 3){
             //获取最新暂停结束确认时间
             Map<String, Object> map2 = new HashMap<>();
             map2.put("type", 7);
             map2.put("orderId", orderId);
-            List<Map<String, Object>> List = utilsMapper.TimeTaskPause(map2);
-            Map<String, Object> map4 = List.get(0);
-            BigDecimal resultPauseTimeEnd = DataChange.dataToBigDecimal( map4.get("resultPauseTime"));
-            Map<String, Object> timeMaps = utilsMapper.FristTimeTask(map);
-            Date resultTime2 = (Date) timeMaps.get("resultTime");
-            Map<String, Object> timeStatus = utilsMapper.getTimeStatus(map);
-            Date  resultTime1 = (Date) timeStatus.get("resultTime");
-            long dateTime1 = resultTime2.getTime() - resultTime1.getTime();
-            BigDecimal dateTime3 = new BigDecimal(dateTime1 / (1000 * 60));
-            int Time1 = dateTime3.intValue() - resultPauseTimeEnd.intValue();
-            tmstruckTimeTaskResult.setTimeTaskResultId(tmstruckTimeTaskResult.getTimeTaskResultId());
-            tmstruckTimeTaskResult.setResultValue(new BigDecimal((Time1)));
-            tmstruckTimeTaskResult.setResultUomId(new BigDecimal(900));
-            if (personnelSsoId!=null) {
-                tmstruckTimeTaskResult.setUpdateUsername(personnelSsoId);
+            BigDecimal resultPauseTime = utilsMapper.TimeTaskPause(map2);
+            if(resultPauseTime != null) {
+                Map<String, Object> timeMaps = utilsMapper.FristTimeTask(map);
+                Date resultTime2 = (Date) timeMaps.get("resultTime");
+                Map<String, Object> timeStatus = utilsMapper.getTimeStatus(map);
+                Date resultTime1 = (Date) timeStatus.get("resultTime");
+                long dateTime1 = resultTime2.getTime() - resultTime1.getTime();
+                BigDecimal dateTime3 = new BigDecimal(dateTime1 / (1000 * 60));
+                int Time1 = dateTime3.intValue() - resultPauseTime.intValue();
+                tmstruckTimeTaskResult.setTimeTaskResultId(tmstruckTimeTaskResult.getTimeTaskResultId());
+                tmstruckTimeTaskResult.setResultValue(new BigDecimal((Time1)));
+                tmstruckTimeTaskResult.setResultUomId(new BigDecimal(900));
+                if (personnelSsoId != null) {
+                    tmstruckTimeTaskResult.setUpdateUsername(personnelSsoId);
+                }
+                i += tmstruckTimeTaskResultMapper.updateByPrimaryKeySelective(tmstruckTimeTaskResult);
             }
-            i += tmstruckTimeTaskResultMapper.updateByPrimaryKeySelective(tmstruckTimeTaskResult);
-            map.put("orderStatus", 2);
-            utilsMapper.updateOrderStatusByOrderIdOrNum(map);
+            pushOrderForPause(map);
         }
             return i;
         }

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

@@ -324,7 +324,7 @@
         ON TTTR.RESULT_TOTAL_ID=TTR.RESULT_TOTAL_ID
         WHERE  OO.ORDER_ID=#{orderId}
     </select>
-    <select id="TimeTaskPause" resultType="java.util.Map" parameterType="java.util.Map">
+    <select id="TimeTaskPause" resultType="java.math.BigDecimal" parameterType="java.util.Map">
         select sum(TTTR.RESULT_VALUE) "resultPauseTime"
         from OMSTRUCK_ORDER OO
         left join TMSTRUCK_TOTAL_RESULT TTR