liyg 2 年 前
コミット
eb15ed6d9a

+ 2 - 0
src/main/java/com/steerinfo/dil/mapper/TmstruckLeaveFactoryResultMapper.java

@@ -171,4 +171,6 @@ public interface TmstruckLeaveFactoryResultMapper extends IBaseMapper<TmstruckLe
 
     //清除重复实绩
     int clearRepeat(TmstruckLeaveFactoryResult tmstruckLeaveFactoryResult);
+
+    String getVersionValue(int versionId);
 }

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

@@ -143,4 +143,6 @@ public interface UtilsMapper {
 
     BigDecimal getOrderSeq(BigDecimal orderId);
 
+    //修改显示抵达签收
+    int updateArrival(Map<String,Object> map);
 }

+ 41 - 11
src/main/java/com/steerinfo/dil/service/impl/TmstruckLeaveFactoryResultServiceImpl.java

@@ -293,14 +293,22 @@ public class TmstruckLeaveFactoryResultServiceImpl implements ITmstruckLeaveFact
         i += updateLeaveResultByPDA(map); //更新出厂实绩
         //更新路段顺序号
         i += utilsService.updateOrderLineSequence(map);
+        //判断是否抵达签收,然后根据各自类型不同情况判断是否需要关单
+        Boolean isArrivalFlag = isArrivalType(""+orderType);
+        //查询自提
+        String isSelfMention = tmstruckLeaveFactoryResultMapper.getIsSelfMention(orderId);
+        if(!isArrivalFlag || "是".equals(isSelfMention)){
+            //不涉及抵达签收,或者自提,统一在此处直接关单
+            i += utilsService.closeOrderNormally(map);
+        }
+        if(isArrivalFlag){
+            //如果涉及抵达签收,则标记为允许
+            utilsMapper.updateArrival(map);
+        }
         switch (orderType){
             case 1:
-                //判断该订单是不是自提
-                String isSelfMention = tmstruckLeaveFactoryResultMapper.getIsSelfMention(orderId);
                 try {
                     if(isSelfMention != null && isSelfMention.equals("是")) {
-                        //如果是自提,则关闭运单
-                        i += utilsService.closeOrderSteel(map);
                         break;
                     }
                 } catch (Exception e) {
@@ -394,7 +402,7 @@ public class TmstruckLeaveFactoryResultServiceImpl implements ITmstruckLeaveFact
                 if(driverConfirmation == null){
                     throw new Exception("请提醒司机确认订单!");
                 }
-                i += utilsService.closeOrderNormally(map);
+//                i += utilsService.closeOrderNormally(map);
                 // 判断是否要自动派单
                 Map<String,Object> mapValue = omsFeign.getSaleAllMessages(orderId.intValue());
                 Object closeStatus = mapValue.get("closeStatus");
@@ -408,14 +416,14 @@ public class TmstruckLeaveFactoryResultServiceImpl implements ITmstruckLeaveFact
                 }
                 break;
             case 4:
-                i += utilsService.closeOrderNormally(map);
+//                i += utilsService.closeOrderNormally(map);
                 break;
             case 5:
             case 6:
             case 7:
             case 8:
                 //判断出厂路段顺序号是否为最后一个 采购订单关闭订单
-                i += utilsService.closeOrderNormally(map);
+//                i += utilsService.closeOrderNormally(map);
                 //查询是否为一车多趟采购订单类型
                 Integer isMoreTripsStatus = tmstruckLeaveFactoryResultMapper.getIsMoreTripsStatus(DataChange.dataToBigDecimal(map.get("orderId")));
                 if(isMoreTripsStatus != null && isMoreTripsStatus == 1){
@@ -427,13 +435,13 @@ public class TmstruckLeaveFactoryResultServiceImpl implements ITmstruckLeaveFact
             case 17:
             case 18:
                 //判断出厂路段顺序号是否为最后一个 采购订单关闭订单
-                i += utilsService.closeOrderNormally(map);
+//                i += utilsService.closeOrderNormally(map);
                 break;
             case 10:
             case 20:
                 //生成新的采购内转运输订单
                 //判断出厂路段顺序号是否为最后一个 采购订单关闭订单
-                i += utilsService.closeOrderNormally(map);
+//                i += utilsService.closeOrderNormally(map);
                 //根据运输订单ID查询路段顺序号
                 Integer orderStatus = tmstruckLeaveFactoryResultMapper.getOrderStatus(orderId);
                 if(orderStatus == 2){
@@ -452,7 +460,7 @@ public class TmstruckLeaveFactoryResultServiceImpl implements ITmstruckLeaveFact
                 break;
             case 23:
             case 24:
-                i += utilsService.closeOrderNormally(map);
+//                i += utilsService.closeOrderNormally(map);
                 omsFeign.addPurInwardOrder(orderId);
                 try {
                     bmsTruckFeign.addInwardDetailsOrder(map);
@@ -465,7 +473,7 @@ public class TmstruckLeaveFactoryResultServiceImpl implements ITmstruckLeaveFact
             case 19:
             case 14:
                 //关闭当前订单
-                i += utilsService.closeOrderNormally(map);
+//                i += utilsService.closeOrderNormally(map);
                 //生成新的零星订单
                 omsFeign.pushMessageToDriver(map);
                 break;
@@ -794,4 +802,26 @@ public class TmstruckLeaveFactoryResultServiceImpl implements ITmstruckLeaveFact
             }
         }
     }
+
+    /**
+     * 校验是否允许抵达
+     * @param orderType
+     * @return
+     */
+    Boolean isArrivalType(String orderType){
+        try{
+            String[] arr = tmstruckLeaveFactoryResultMapper.getVersionValue(10).split(",");
+            if(arr==null || arr.length<=0){
+                throw new Exception("数据库数据异常,类型字符串不存在!");
+            }
+            for(String temp:arr){
+                if(temp.equals(orderType)){
+                    return true;
+                }
+            }
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+        return false;
+    }
 }

+ 4 - 0
src/main/resources/com/steerinfo/dil/mapper/StatisticalReportMapper.xml

@@ -364,6 +364,10 @@
         RC2.CARRIER_NAME "carrierName",
         TAR.RESULT_ARRIVAL_ADDRESS "arrivalAddress",
         TRR.RESULT_ARRIVAL_ADDRESS "receiptAddress",
+        TAR.INSERT_TIME "arrivalTime",
+        TRR.INSERT_TIME "receiptTime",
+        TAR.RESULT_FULL_CONTAINER_PHOTO "arrivalPhoto",
+        TRR.RESULT_EMPTY_CONTAINER_PHOTO "receiptPhoto",
         RM.MATERIAL_SPECIFICATION || RM.MATERIAL_MODEL "materialCode",
         RM.MATERIAL_NAME  || TLR.INSERT_UPDATE_REMARK "likeRemark",
         ASM.SALE_WAREHOUSE || RW.WAREHOUSE_NAME "wareHouse",

+ 4 - 0
src/main/resources/com/steerinfo/dil/mapper/TmstruckLeaveFactoryResultMapper.xml

@@ -1597,6 +1597,10 @@
         WHERE ASM.SALE_MATERIAL_ID = #{saleMaterialId}
         fetch first 1 row only
     </select>
+    <select id="getVersionValue" resultType="java.lang.String">
+        SELECT DV.VERSION_VALUE FROM DIL_VERSION DV
+        WHERE DV.VERSION_ID = #{versionId}
+    </select>
     <update id="updateOrderStatus">
         UPDATE OMSTRUCK_ORDER OO
         SET OO.ORDER_STATUS = 2,

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

@@ -37,6 +37,11 @@
         set OO.ORDER_LINE_SEQUENCE = #{orderLineSequence}
         where OO.ORDER_ID = #{orderId}
     </update>
+    <update id="updateArrival">
+        update OMSTRUCK_ORDER OO
+        set OO.ARRIVAL_FLAG = 1
+        where OO.ORDER_ID = #{orderId}
+    </update>
 
 <!--   通过仓库名称查询仓库Id -->
     <select id="queryWarehouseIdByName" parameterType="string" resultType="java.lang.Integer">