luobang 2 年之前
父节点
当前提交
34a01b5dd8

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

@@ -153,4 +153,8 @@ public interface OmstruckOrderSeparateMapper {
 
     int getPurOrderDelete1(Object orderId);
 
+    int countNetWeight(BigDecimal orderId);
+
+    String getSendStaionName(BigDecimal saleMaterialId);
+
 }

+ 21 - 3
src/main/java/com/steerinfo/dil/service/impl/OmstruckOrderServiceImpl.java

@@ -594,9 +594,12 @@ public class OmstruckOrderServiceImpl implements IOmstruckOrderService {
         //    throw new Exception("钢材订单不允许撤销!");
         //}
         //已计量,则不允许撤单
-        if(omstruckOrderSeparateMapper.countWeight(orderId) > 0 && DataChange.dataToBigDecimal(map.get("isAdmin")).intValue() == 0){
+        if(omstruckOrderSeparateMapper.countWeight(orderId) > 0 && DataChange.dataToBigDecimal(map.get("isAdmin")).intValue() == 0 && orderType != 4){
             throw new Exception("已过磅,撤单失败!");
         }
+        if(orderType == 4 && omstruckOrderSeparateMapper.countNetWeight(orderId) > 0) {
+            throw new Exception("已出净重,撤单失败!");
+        }
         //如果是老区已进场或者内转,则删除计量委托
         if(orderType != 6 && orderType != 17 &&  orderType !=4 && (omstruckOrderSeparateMapper.countEnFactory(orderId) > 0 || orderType==11 || orderType == 15 || orderType == 16)){
             //获取运输订单号
@@ -623,7 +626,7 @@ public class OmstruckOrderServiceImpl implements IOmstruckOrderService {
         OmstruckOrder omstruckOrder = new OmstruckOrder();
         omstruckOrder.setOrderId(DataChange.dataToBigDecimal(orderId));
         omstruckOrder.setOrderStatus(new BigDecimal(7));
-        if(orderType == 1) {
+        if(orderType == 1 || orderType == 4) {
             omstruckOrder.setOrderStatus(new BigDecimal(4));
             //判断该车是几拼
             int materialMesCount = omstruckOrderMapper.getMaterialNumByOrderId(orderId);
@@ -645,6 +648,11 @@ public class OmstruckOrderServiceImpl implements IOmstruckOrderService {
         if (DataChange.dataToBigDecimal(map.get("isAdmin")).intValue() == 1) {
             omstruckOrder.setOrderStatus(new BigDecimal(4));
         }
+        try {
+            omstruckOrderMapper.updateTotalResultNull(DataChange.dataToBigDecimal(mesMap.get("resultTotalId")));
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
         String dateStr = sdf.format(new Date());
         omstruckOrder.setInsertUpdateRemark(map.get("capacityNumber") + "司机撤销订单将订单删除;撤单原因:"+map.get("reason") + ";撤销时间:" + dateStr + ";撤销时路段顺序号为:" + mesMap.get("lineSqe"));
@@ -2187,8 +2195,18 @@ public class OmstruckOrderServiceImpl implements IOmstruckOrderService {
                 }
             }
             mesMap.put("materialMesList",materialMesNew);
-        } else {
+        } else if(orderType.compareTo(4)==0){
+            List<Map<String, Object>> materialMesNew = omstruckOrderMapper.getMaterialMes(orderId, steelJudge);
+            for(Map<String,Object> stringObjectMap :materialMesNew) {
+                if(stringObjectMap.get("saleMaterialId") != null) {
+                    String sendStaionName = omstruckOrderSeparateMapper.getSendStaionName(DataChange.dataToBigDecimal(stringObjectMap.get("saleMaterialId")));
+                    stringObjectMap.put("materialMC",stringObjectMap.get("materialMC") + "-" + sendStaionName);
+                }
+            }
+            mesMap.put("materialMesList",materialMesNew);
+        }else {
             mesMap.put("materialMesList", omstruckOrderMapper.getMaterialMes(orderId, steelJudge));
+
         }
         return mesMap;
     }

+ 2 - 0
src/main/resources/com/steerinfo/dil/mapper/OmstruckOrderMapper.xml

@@ -2934,6 +2934,7 @@
         RM.MATERIAL_ID   "materialId",
         OOM.MATERIAL_PRIORITY "materialPriority",
         OOM.ORDER_MATERIAL_NUMBER "materialNumber",
+        OOM.SALE_MATERIAL_ID    "saleMaterialId",
         CONCAT(CONCAT(RM.MATERIAL_MODEL, '('), CONCAT(MATERIAL_SPECIFICATION, ')')) "materialMC",
         (case
         when OOM.ORDER_MATERIAL_NUMBER is not null
@@ -4254,6 +4255,7 @@
         SELECT
         OO.ORDER_ID "orderId",
         OO.ORDER_TYPE "orderType",
+        '车皮订单' "inwardType",
         OO.ORDER_LINE_SEQUENCE "orderLineSequence",
         OO.ORDER_NUMBER "orderNumber",
         RC.CAPACITY_NUMBER "capacityNumber",

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

@@ -1027,4 +1027,16 @@
         ON APO.PURCHASE_ORDER_ID = OO.ORDER_PLAN_ID
         WHERE OO.ORDER_ID = #{orderId}
     </select>
+    <select id="countNetWeight" resultType="java.lang.Integer" parameterType="decimal">
+        SELECT COUNT(TWR.WEIGHT_TASK_RESULT_ID) FROM TMSTRUCK_WEIGHT_RESULT TWR
+        LEFT JOIN TMSTRUCK_TOTAL_RESULT TTR ON TWR.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
+        WHERE	TWR.RESULT_NET_WEIGHT IS NOT NULL AND TTR.ORDER_ID = #{orderId}
+    </select>
+    <select id="getSendStaionName" resultType="java.lang.String">
+        SELECT RAS.ARRIVAL_NAME FROM TMSTRAIN_PLEASE_APPROVE_RESULT TPAR
+        LEFT JOIN RMSTRAIN_ARRIVAL_SEND RAS
+        ON RAS.ARRIVAL_ID = TPAR.SEND_STATION_ID
+        WHERE TPAR.RAIL_PLAN_ID = #{saleMaterialId}
+        FETCH FIRST 1 ROW ONLY
+    </select>
 </mapper>