HUJIANGUO 2 年之前
父节点
当前提交
bc32ccef10

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

@@ -63,5 +63,12 @@ public interface TmstruckLeaveFactoryResultMapper extends IBaseMapper<TmstruckLe
     Integer getSeq(BigDecimal orderId);
 
     Map<String, Object> getMessageMap(BigDecimal orderId);
-
+    // 得到销售订单下已出厂车辆已计量净重
+    Double getLeaveFactoryNetWeight(BigDecimal saleOrderId);
+    // 得到销售订单下单总重量
+    Double getSaleMaterialWeight(BigDecimal saleOrderId);
+    // 得到当前运单净重
+    Double getNowNetWeight(String orderNumber);
+    // 得到销售订单id
+    BigDecimal getSaleOrderId(String orderNumber);
 }

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

@@ -201,6 +201,19 @@ public class TmstruckLeaveFactoryResultServiceImpl implements ITmstruckLeaveFact
             if(loadResultMap == null || loadResultMap.get("loadEndTime") == null){
                 throw new Exception("该车未扫装货,请提醒司机去扫装货");
             }
+            // 查询运单所属的销售订单id
+            BigDecimal saleOrderId = tmstruckLeaveFactoryResultMapper.getSaleOrderId(orderNumber);
+            // 得到销售订单下已出厂车辆已计量净重
+            Double allNetWeight = tmstruckLeaveFactoryResultMapper.getLeaveFactoryNetWeight(saleOrderId);
+            if (allNetWeight != null) {
+                // 得到当前运单净重
+                Double nowNetWeight = tmstruckLeaveFactoryResultMapper.getNowNetWeight(orderNumber);
+                // 得到销售订单下单总重量
+                Double saleWeight = tmstruckLeaveFactoryResultMapper.getSaleMaterialWeight(saleOrderId);
+                if (allNetWeight + nowNetWeight > saleWeight) {
+                    throw new Exception("该销售订单吨位已超额,不允许出厂,请提醒司机走流程卸货!");
+                }
+            }
         }
         map.putAll(mesMap);
         map.putAll(selectMap);

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

@@ -1249,4 +1249,52 @@
         WHERE
             OO.ORDER_ID = #{orderId}
     </select>
+
+    <select id="getLeaveFactoryNetWeight" parameterType="DECIMAL" resultType="java.lang.Double" >
+        SELECT SUM(TWR.RESULT_NET_WEIGHT)  AS "nowNetWeight"
+        FROM OMSTRUCK_ORDER OO
+                 LEFT JOIN TMSTRUCK_TOTAL_RESULT TTR
+                           ON OO.ORDER_ID = TTR.ORDER_ID
+                 LEFT JOIN TMSTRUCK_WEIGHT_RESULT TWR
+                           ON TWR.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
+                 LEFT JOIN TMSTRUCK_LEAVE_FACTORY_RESULT TLFR
+                           ON TLFR.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
+                 LEFT JOIN RMS_MATERIAL RM
+                           ON TWR.MATERIAL_ID = RM.MATERIAL_ID
+                 LEFT JOIN AMS_SALE_ORDER_MATERIAL ASOM
+                           ON ASOM.SALE_ORDER_MATERIAL_ID = OO.ORDER_PLAN_ID
+        WHERE ASOM.SALE_ORDER_ID = #{saleOrderId}
+          AND RM.MATERIAL_NAME = '钒渣'
+          AND TLFR.RESULT_OUT_GATE_TIME IS NOT NULL
+    </select>
+
+    <select id="getSaleMaterialWeight" parameterType="DECIMAL" resultType="java.lang.Double" >
+        SELECT DISTINCT ASM.MATERIAL_WEIGHT  AS "saleWeight"
+        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_MATERIAL ASM
+                           ON ASM.SALE_ORDER_ID = ASOM.SALE_ORDER_ID
+        WHERE ASM.SALE_ORDER_ID = #{saleOrderId}
+    </select>
+
+    <select id="getSaleOrderId" parameterType="java.lang.String" resultType="DECIMAL" >
+        SELECT ASO.SALE_ORDER_ID AS "saleOrderId"
+        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_NUMBER = #{orderNumber}
+    </select>
+
+    <select id="getNowNetWeight" parameterType="java.lang.String" resultType="java.lang.Double" >
+        SELECT TWR.RESULT_NET_WEIGHT AS "nowNetWeight"
+        FROM OMSTRUCK_ORDER OO
+        LEFT JOIN TMSTRUCK_TOTAL_RESULT TTR
+        ON OO.ORDER_ID = TTR.ORDER_ID
+        LEFT JOIN TMSTRUCK_WEIGHT_RESULT TWR
+        ON TWR.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
+        WHERE OO.ORDER_NUMBER = #{orderNumber}
+    </select>
 </mapper>