liyg 2 lat temu
rodzic
commit
a5704371da

+ 4 - 0
src/main/java/com/steerinfo/dil/mapper/TmstruckTimeTaskResultMapper.java

@@ -59,4 +59,8 @@ public interface TmstruckTimeTaskResultMapper extends IBaseMapper<TmstruckTimeTa
 
     //根据运输订单号查询用车单位
     String getShipperName(Map<String,Object> map);
+
+
+    //校验订单类型是否符合计时要求
+    int checkOrderType(BigDecimal orderId);
 }

+ 8 - 0
src/main/java/com/steerinfo/dil/service/impl/TmstruckTimeTaskResultServiceImpl.java

@@ -178,6 +178,10 @@ public class TmstruckTimeTaskResultServiceImpl implements ITmstruckTimeTaskResul
         map.put("orderId",orderId);
         BigDecimal inwardType =DataChange.dataToBigDecimal(map.get("inwardType"));
         Integer lastStep=tmstruckTimeTaskResultMapper.getLastStep(orderId);
+        //校验是否符合类型
+        if(tmstruckTimeTaskResultMapper.checkOrderType(orderId)<=0){
+            throw new Exception("该订单类型不允许计时");
+        }
         //校验是否重复操作
         if(lastStep !=null && lastStep.compareTo(inwardType.intValue())==0){
             throw new Exception("请勿重复操作!");
@@ -312,6 +316,10 @@ public class TmstruckTimeTaskResultServiceImpl implements ITmstruckTimeTaskResul
         BigDecimal orderId = utilsMapper.getOrderIdByOrderNumber(orderNumber);
         map.put("orderId", orderId);
         Integer lastStep=tmstruckTimeTaskResultMapper.getLastStep(orderId);
+        //校验是否符合类型
+        if(tmstruckTimeTaskResultMapper.checkOrderType(orderId)<=0){
+            throw new Exception("该订单类型不允许计时");
+        }
         //校验是否重复操作
         if(lastStep !=null && lastStep.compareTo(inwardType.intValue())==0){
             throw new Exception("请勿重复操作");

+ 10 - 0
src/main/resources/com/steerinfo/dil/mapper/TmstruckTimeTaskResultMapper.xml

@@ -976,4 +976,14 @@
       GROUP BY RESULT_TOTAL_ID
     )
   </delete>
+  <select id="checkOrderType" resultType="java.lang.Integer">
+    SELECT COUNT(AIR.REQUIREMENT_ID)
+    FROM OMSTRUCK_ORDER OO
+           LEFT JOIN TMSTRUCK_TOTAL_RESULT TTR ON OO.ORDER_ID=TTR.ORDER_ID
+           LEFT JOIN AMSTRUCK_INWARD_PLAN AIP ON AIP .PLAN_ID = OO .ORDER_PLAN_ID
+           LEFT JOIN AMSTRUCK_REQUIREMENT_PLAN ARP ON ARP.PLAN_ID = AIP.PLAN_ID
+           LEFT JOIN AMSTRUCK_INWARD_REQUIREMENT AIR ON AIR.REQUIREMENT_ID = ARP.REQUIREMENT_ID
+    WHERE (AIR.INSERT_UPDATE_REMARK like '%计时且过计量%' OR OO .ORDER_TYPE=21)
+      AND OO .ORDER_ID = #{orderId}
+  </select>
 </mapper>