Ver Fonte

Merge branch 'master' of https://git.steerinfo.com/DAL-DAZHOU2/DAI_DAZHOU-OMS

liyg há 2 anos atrás
pai
commit
0201e8f017

+ 9 - 0
src/main/java/com/steerinfo/dil/mapper/OmstruckOrderMapper.java

@@ -370,4 +370,13 @@ public interface OmstruckOrderMapper extends IBaseMapper<OmstruckOrder, BigDecim
     List<Map<String,Object>> getMaterialId(BigDecimal orderId);
 
 
+    int getGoBeyondCount(Object orderId);
+
+    int getMaterialNumByOrderId(BigDecimal orderId);
+
+    int deleteQueueList(BigDecimal capacityId);
+
+    int deleteQueueResult(BigDecimal resultTotalId);
+
+    int deleteQueueSpellList(BigDecimal capacityId);
 }

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

@@ -137,4 +137,6 @@ public interface OmstruckOrderSeparateMapper {
 
     Map<String, Object> getDueTime(Object orderId);
 
+    Integer getSaleOrderDelete(Object orderId);
+
 }

+ 23 - 24
src/main/java/com/steerinfo/dil/service/impl/OmstruckOrderServiceImpl.java

@@ -608,6 +608,16 @@ public class OmstruckOrderServiceImpl implements IOmstruckOrderService {
         omstruckOrder.setOrderStatus(new BigDecimal(7));
         if(orderType == 1) {
             omstruckOrder.setOrderStatus(new BigDecimal(4));
+            //判断该车是几拼
+            int materialMesCount = omstruckOrderMapper.getMaterialNumByOrderId(orderId);
+            if (materialMesCount == 1) {
+                //如果是单拼,则删除排队实绩
+                omstruckOrderMapper.deleteQueueList(DataChange.dataToBigDecimal(mesMap.get("capacityId")));
+                omstruckOrderMapper.deleteQueueResult(DataChange.dataToBigDecimal(mesMap.get("resultTotalId")));
+            }else{
+                omstruckOrderMapper.deleteQueueSpellList(DataChange.dataToBigDecimal(mesMap.get("resultTotalId")));
+                omstruckOrderMapper.deleteQueueResult(DataChange.dataToBigDecimal(mesMap.get("resultTotalId")));
+            }
         }
         if (DataChange.dataToBigDecimal(map.get("isAdmin")).intValue() == 1) {
             omstruckOrder.setOrderStatus(new BigDecimal(4));
@@ -632,18 +642,6 @@ public class OmstruckOrderServiceImpl implements IOmstruckOrderService {
                 result += omstruckOrderMapper.deleteTimeTaskByTotalId(resultTotalId);
             }
         }
-        if(orderType == 1||orderType == 4){
-            //取消订阅车辆
-            String remark = String.valueOf(mesMap.get("insertUpdateRemark"));
-            if("电子围栏订阅成功".equals(remark)){
-                String capacityNumber = String.valueOf(map.get("capacityNumber"));
-                map.put("capacityNumber", capacityNumber + "_2");
-                int i = zjxlUtilService.cancelSubsCapacity(map, 1);
-                if(i == 1){
-                    zjxlUtilMapper.cancelSubCapacity(capacityNumber);
-                }
-            }
-        }
         //通过总实绩ID删除所有已经生成的实绩
         result += omstruckOrderMapper.deleteEnResult(resultTotalId);
         result += omstruckOrderMapper.deleteWeightResult(resultTotalId);
@@ -2012,15 +2010,6 @@ public class OmstruckOrderServiceImpl implements IOmstruckOrderService {
             orderId = DataChange.dataToBigDecimal(map.get("orderId"));
         }
         Map<String, Object> seqMap = omstruckOrderMapper.getMaxLineSeqByOrderId(orderId);
-        if(seqMap != null){
-            //如果没有到最后一步之前 不允许确认
-            BigDecimal orderLineSequence = DataChange.dataToBigDecimal(seqMap.get("orderLineSequence"));
-            BigDecimal maxSegmentSqe = DataChange.dataToBigDecimal(seqMap.get("segmentSqe"));
-            int i = maxSegmentSqe.intValue() - orderLineSequence.intValue();
-            if( i != 1 && i != 2){
-                return 0;
-            }
-        }
         omstruckOrder.setOrderId(orderId);
         //设置司机确认订单
         omstruckOrder.setDriverConfirmation(new BigDecimal(1));
@@ -2193,12 +2182,21 @@ public class OmstruckOrderServiceImpl implements IOmstruckOrderService {
             }
             if (orderType == 1) {
                 Integer judgeDate = omstruckOrderSeparateMapper.getDeliveryDatePass(orderMesMap.get("orderId"));
-                if(judgeDate == null){ // 数据为空则是已过截止日期 关闭订单
+                Integer saleOrderDelete = omstruckOrderSeparateMapper.getSaleOrderDelete(orderMesMap.get("orderId"));
+                if(judgeDate == null || saleOrderDelete != 0){ // 数据为空则是已过截止日期 关闭订单
+                    omstruckOrderMapper.closeTruckOrder(DataChange.dataToBigDecimal(orderMesMap.get("orderId")));
+                    continue;
+                }
+            }
+            if(orderType == 10|| orderType == 20 || orderType == 15 || orderType == 16){
+                Integer planEnable = omstruckOrderSeparateMapper.getOrderPlanEnable(orderMesMap.get("orderId"));
+                int GoBeyondCount = omstruckOrderMapper.getGoBeyondCount(orderMesMap.get("orderId"));
+                if(planEnable == 0 || GoBeyondCount == 0){ // 数据为0则失效
                     omstruckOrderMapper.closeTruckOrder(DataChange.dataToBigDecimal(orderMesMap.get("orderId")));
                     continue;
                 }
             }
-            if(orderType == 10|| orderType == 20 || orderType == 15 || orderType == 16 || orderType == 23 || orderType == 24){
+            if(orderType == 23 || orderType == 24){
                 Integer planEnable = omstruckOrderSeparateMapper.getOrderPlanEnable(orderMesMap.get("orderId"));
                 if(planEnable == 0){ // 数据为0则失效
                     omstruckOrderMapper.closeTruckOrder(DataChange.dataToBigDecimal(orderMesMap.get("orderId")));
@@ -2217,7 +2215,8 @@ public class OmstruckOrderServiceImpl implements IOmstruckOrderService {
                 //根据运输订单id,查询需求里面是否有截止时间
                 Map<String,Object> dueTime = omstruckOrderSeparateMapper.getDueTime(orderMesMap.get("orderId"));
                 int result = omstruckOrderSeparateMapper.getInward(orderMesMap.get("orderId"));
-                if(result == 0 && dueTime != null){
+                int GoBeyondCount = omstruckOrderMapper.getGoBeyondCount(orderMesMap.get("orderId"));
+                if((result == 0 && dueTime != null) || GoBeyondCount == 0 ){
                     omstruckOrderMapper.closeTruckOrder(DataChange.dataToBigDecimal(orderMesMap.get("orderId")));
                     continue;
                 }

+ 24 - 3
src/main/resources/com/steerinfo/dil/mapper/OmstruckOrderMapper.xml

@@ -3691,7 +3691,8 @@
         RW1.WAREHOUSE_NAME       "shipperName",
         RW1.WAREHOUSE_NAME       "loadName",
         RW.WAREHOUSE_NAME        "unloadName",
-        RW.WAREHOUSE_NAME        "consigneeCompanyName"
+        RW.WAREHOUSE_NAME        "consigneeCompanyName",
+        OO.DELETED              "deleted"
         FROM OMSTRUCK_ORDER OO
         LEFT JOIN AMSTRUCK_INWARD_PLAN AIP
         ON OO.ORDER_PLAN_ID = AIP.PLAN_ID
@@ -3942,9 +3943,9 @@
         OO.ORDER_NUMBER "orderNumber",
         CASE
         WHEN TEMP."orderId" IS NOT NULL
-        THEN RC.CAPACITY_NUMBER || '('|| decode(ASO.SALE_ORDER_STATUS,4,'订单已审核','订单未审核') || ':未轧' ||')'
+        THEN RC.CAPACITY_NUMBER || '('|| decode(ASO.SALE_ORDER_STATUS,4,'订单已审核','订单未审核') || ':未轧' ||')'
         WHEN TEMP."orderId" IS NULL
-        THEN RC.CAPACITY_NUMBER || '('|| decode(ASO.SALE_ORDER_STATUS,4,'订单已审核','订单未审核') || ':已轧' || ')'
+        THEN RC.CAPACITY_NUMBER || '('|| decode(ASO.SALE_ORDER_STATUS,4,'订单已审核','订单未审核') || ':已轧' || ')'
         END
         "capacityNumber",
         RC.CAPACITY_TEL "capacityTel",
@@ -3975,6 +3976,7 @@
         left join OMSTRUCK_ORDER_MATERIAL OOM ON OO.ORDER_ID=OOM.ORDER_ID
         left join RMS_MATERIAL RM ON OOM.MATERIAL_ID = RM.MATERIAL_ID
         where OO.ORDER_STATUS between 4 and 5
+        and (OOM.MATERIAL_PRIORITY !=71 OR OOM.MATERIAL_PRIORITY is null)
         and
         RM.MATERIAL_ID||'' in (select SPECTIONS_MODEL from QMS_MODEL_UNROOLED)
         ) TEMP ON TEMP."orderId"=OO.ORDER_ID
@@ -4355,4 +4357,23 @@
         WHERE ORDER_ID = #{orderId}
         ORDER BY RM.MATERIAL_NAME
     </select>
+    <select id="getGoBeyondCount" resultType="java.lang.Integer" parameterType="java.math.BigDecimal">
+        SELECT count(oo.order_id) FROM OMSTRUCK_ORDER OO
+        WHERE sysdate - oo.INSERT_TIME &lt;= 5
+        and oo.ORDER_ID = #{orderId}
+    </select>
+    <select id="getMaterialNumByOrderId" resultType="java.lang.Integer" parameterType="java.math.BigDecimal">
+        SELECT count(oom.ORDER_MATERIAL_ID) FROM  OMSTRUCK_ORDER_MATERIAL OOM
+        WHERE OOM.ORDER_ID = #{orderId}
+    </select>
+    <delete id="deleteQueueList">
+        delete from QMS_QUEUE_LIST QQL where CAPACITY_ID = #{capacityId}
+    </delete>
+    <delete id="deleteQueueResult">
+        delete from QMS_QUEUE_RESULT QQR WHERE QQR.RESULT_TOTAL_ID = #{resultTotalId}
+    </delete>
+    <delete id="deleteQueueSpellList">
+        delete from QMS_QUEUE_SPELLING_LIST QQSL where QQSL.QUEUE_RESULT_ID =
+        (SELECT QQR.RESULT_ID FROM QMS_QUEUE_RESULT QQR WHERE QQR.RESULT_TOTAL_ID = #{resultTotalId})
+    </delete>
 </mapper>

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

@@ -761,7 +761,8 @@
                TTR.RESULT_TOTAL_ID  "resultTotalId",
                OO.INSERT_UPDATE_REMARK  "insertUpdateRemark",
                OO.ORDER_LINE_SEQUENCE   "lineSqe",
-                OO.ORDER_NUMBER "orderNumber"
+                OO.ORDER_NUMBER "orderNumber",
+               OO.CAPACITY_ID   "capacityId"
         from OMSTRUCK_ORDER OO
                  left join TMSTRUCK_TOTAL_RESULT TTR on OO.ORDER_ID = TTR.ORDER_ID
         where OO.ORDER_ID = #{orderId}
@@ -931,4 +932,14 @@
                                             ON AIR.REQUIREMENT_ID = ARP.REQUIREMENT_ID
         where  OO.ORDER_ID = #{orderId}
     </select>
+    <select id="getSaleOrderDelete" resultType="java.lang.Integer">
+        SELECT
+            ASO.DELETED
+        FROM
+            OMSTRUCK_ORDER OO
+                LEFT JOIN AMS_SALE_ORDER_MATERIAL ASOM ON ASOM.SALE_ORDER_MATERIAL_ID = OO.ORDER_PLAN_ID
+                LEFT JOIN AMS_SALE_ORDER ASO ON ASO.SALE_ORDER_ID = ASOM.SALE_ORDER_ID
+        WHERE
+            OO.ORDER_ID = #{orderId}
+    </select>
 </mapper>