luobang 2 years ago
parent
commit
20f3b96b21

+ 6 - 1
src/main/java/com/steerinfo/dil/controller/TmstruckWeightResultController.java

@@ -93,7 +93,12 @@ public class TmstruckWeightResultController extends BaseRESTfulController {
      */
     @PostMapping("/linkageDeleteTransportOrder")
     public RESTfulResult linkageDeleteTransportOrder(@RequestBody(required = false) List<Map<String, Object>> mapList) {
-        String s = tmstruckWeightResultServiceImpl.linkageDeleteTransportOrder(mapList);
+        String s = null;
+        try {
+            s = tmstruckWeightResultServiceImpl.linkageDeleteTransportOrder(mapList);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
         return success(s);
     }
 

+ 17 - 0
src/main/java/com/steerinfo/dil/mapper/TmstruckWeightResultMapper.java

@@ -99,5 +99,22 @@ public interface TmstruckWeightResultMapper extends IBaseMapper<TmstruckWeightRe
     int updateOmsRedQrCode(Map<String, Object> map);
 
 
+    Map<String,Object> getOOType(String orderNumber);
+
+    int updateWeightTare(BigDecimal resultTotalId);
+
+    int updateEnfactoryResult(BigDecimal resultTotalId);
+
+    int updateOrderLineSqe(BigDecimal orderId);
+
+    Map<String, Object> selectWeightMes(Map<String, Object> weightMap);
+
+    int updateWeightResult(BigDecimal weightTaskResultId);
+
+    int updateWeightTareNoGross(BigDecimal resultTotalId);
+
+    Integer selectOrderLineSqe(BigDecimal resultTotalId);
+
+    int updateOrderLineSqeBySqe(BigDecimal orderId, Integer orderLineSqe);
 
 }

+ 56 - 2
src/main/java/com/steerinfo/dil/service/impl/TmstruckWeightResultServiceImpl.java

@@ -13,6 +13,7 @@ import org.apache.commons.lang.time.FastDateFormat;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scripting.groovy.GroovyScriptEvaluator;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -700,11 +701,64 @@ public class TmstruckWeightResultServiceImpl implements ITmstruckWeightResultSer
      * @param mapList
      * @return
      */
-    public String linkageDeleteTransportOrder(List<Map<String, Object>> mapList) {
+    public String linkageDeleteTransportOrder(List<Map<String, Object>> mapList) throws Exception{
         //联动删除
         for (Map<String, Object> map : mapList) {
             String orderNumber = (String) map.get("orderNumber");
-            tmstruckWeightResultMapper.linkageDeleteTransportOrder(orderNumber);
+            //判断该运输订单号是否是钢材的
+            Map<String,Object> orderMes = tmstruckWeightResultMapper.getOOType(orderNumber);
+            BigDecimal resultTotalId = DataChange.dataToBigDecimal(orderMes.get("resultTotalId"));
+            BigDecimal orderId = DataChange.dataToBigDecimal(orderMes.get("orderId"));
+            Integer orderType = DataChange.dataToBigDecimal(orderMes.get("orderType")).intValue();
+            if(orderType == 1 || orderType == 4) {
+                //删皮,此时没有物资名称,只有运输订单号
+                if(map.get("good") == null || "".equals(map.get("good"))){
+                    //清空皮重信息,且将进厂时间清空,且将路段顺序号置为0
+                    tmstruckWeightResultMapper.updateWeightTare(resultTotalId);
+                    tmstruckWeightResultMapper.updateEnfactoryResult(resultTotalId);
+                    tmstruckWeightResultMapper.updateOrderLineSqe(orderId);
+                }
+                //如果传输了物资,则判断该物资是第几拼
+                if(map.get("good") != null && !"".equals(map.get("good"))){
+                    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+                    //查询物资
+                    BigDecimal materialId = tmstruckWeightResultMapper.getMaterialId(map);
+                    if(materialId == null) {
+                        return "没有找到该物资,返回failed";
+                    }
+                    //查询该物资id及对应的净重还有毛重时间是哪一拼
+                    String resultGrossWeightTime = (String) map.get("resultCrossWeightTime");
+                    Date resultGrossWeightTime1 = sdf.parse(resultGrossWeightTime);
+                    Map<String, Object> weightMap = new HashMap<>();
+                    weightMap.put("resultTotalId",orderMes.get("resultTotalId"));
+                    weightMap.put("materialId",materialId);
+                    weightMap.put("resultGrossWeightTime",resultGrossWeightTime);
+                    Map<String,Object> map1 = tmstruckWeightResultMapper.selectWeightMes(weightMap);
+                    //根据查询信息判断是哪一拼
+                    Integer spellNum = (DataChange.dataToBigDecimal(map1.get("grossSqe")).intValue() + DataChange.dataToBigDecimal(map1.get("tareSqe")).intValue()) / 6;
+                    if(spellNum == 1){
+                        //如果是第一拼
+                        tmstruckWeightResultMapper.updateWeightResult(DataChange.dataToBigDecimal(map1.get("weightTaskResultId")));
+                        //删除下二拼的皮重
+                        tmstruckWeightResultMapper.updateWeightTareNoGross(resultTotalId);
+                        tmstruckWeightResultMapper.updateEnfactoryResult(resultTotalId);
+                        tmstruckWeightResultMapper.updateOrderLineSqe(orderId);
+                    }else{
+                        tmstruckWeightResultMapper.updateWeightResult(DataChange.dataToBigDecimal(map1.get("weightTaskResultId")));
+                        tmstruckWeightResultMapper.updateWeightTareNoGross(resultTotalId);
+                        //查询有净重的实绩的最大路段顺序号
+                        Integer orderLineSqe = tmstruckWeightResultMapper.selectOrderLineSqe(resultTotalId);
+                        tmstruckWeightResultMapper.updateOrderLineSqeBySqe(orderId,orderLineSqe);
+                    }
+                }
+
+
+
+
+            }else{
+                tmstruckWeightResultMapper.linkageDeleteTransportOrder(orderNumber);
+            }
+
         }
         return "success";
     }

+ 66 - 1
src/main/resources/com/steerinfo/dil/mapper/TmstruckWeightResultMapper.xml

@@ -1085,5 +1085,70 @@
         WHERE OO.ORDER_NUMBER = #{orderNumber}
         and OO.ORDER_STATUS = 5
     </update>
-
+    <select id="getOOType" resultType="map" parameterType="string">
+        SELECT OO.ORDER_TYPE "orderType" ,OO.ORDER_ID "orderId" , TTR.RESULT_TOTAL_ID "resultTotalId" FROM OMSTRUCK_ORDER OO
+        LEFT JOIN TMSTRUCK_TOTAL_RESULT TTR
+        ON TTR.ORDER_ID = OO.ORDER_ID
+        WHERE OO.ORDER_NUMBER = #{orderNumber}
+        FETCH FIRST 1 ROWS ONLY
+    </select>
+    <update id="updateWeightTare" parameterType="java.math.BigDecimal">
+        UPDATE TMSTRUCK_WEIGHT_RESULT TWR
+        SET TWR.RESULT_TARE_WEIGHT_TIME = NULL,
+            TWR.RESULT_TARE_WEIGHT = NULL,
+            TWR.INSERT_UPDATE_REMARK = '计量联动删除'
+        WHERE TWR.RESULT_TOTAL_ID = #{resultTotalId}
+    </update>
+    <update id="updateEnfactoryResult" parameterType="java.math.BigDecimal">
+        UPDATE TMSTRUCK_ENFACTORY_RESULT TER
+        SET TER.RESULT_ENTRY_GATE_TIME = NULL
+        WHERE TER.RESULT_TOTAL_ID = #{resultTotalId}
+    </update>
+    <update id="updateOrderLineSqe" parameterType="java.math.BigDecimal">
+        UPDATE OMSTRUCK_ORDER OO
+        SET OO.ORDER_LINE_SEQUENCE = NULL
+        WHERE ORDER_ID = #{orderId}
+    </update>
+    <update id="updateWeightResult" parameterType="java.math.BigDecimal">
+        UPDATE TMSTRUCK_WEIGHT_RESULT TWR
+        SET TWR.RESULT_NET_WEIGHT = NULL,
+            TWR.RESULT_GROSS_WEIGHT_TIME = NULL,
+            TWR.RESULT_GROSS_WEIGHT = NULL,
+            TWR.RESULT_TARE_WEIGHT = NULL,
+            TWR.RESULT_TARE_WEIGHT_TIME = NULL,
+            TWR.INSERT_UPDATE_REMARK = '计量联动删除',
+            TWR.RESULT_POUND_NO = NULL,
+            TWR.MATERIAL_ID = NULL
+        WHERE TWR.WEIGHT_TASK_RESULT_ID = #{weightTaskResultId}
+    </update>
+    <update id="updateWeightTareNoGross" parameterType="java.math.BigDecimal">
+        UPDATE TMSTRUCK_WEIGHT_RESULT TWR
+        SET TWR.RESULT_TARE_WEIGHT_TIME = NULL,
+            TWR.RESULT_TARE_WEIGHT = NULL,
+            TWR.INSERT_UPDATE_REMARK = '计量联动删除皮重'
+        WHERE TWR.RESULT_GROSS_WEIGHT IS NULL
+        AND   TWR.RESULT_TARE_WEIGHT IS NOT NULL
+        AND   TWR.RESULT_TOTAL_ID = #{resultTotalId}
+    </update>
+    <update id="updateOrderLineSqeBySqe">
+        UPDATE OMSTRUCK_ORDER OO
+        SET OO.ORDER_LINE_SEQUENCE = #{orderLineSqe}
+        WHERE OO.ORDER_ID = #{orderId}
+    </update>
+    <select id="selectWeightMes" resultType="java.util.Map">
+        SELECT TWR.WEIGHT_TASK_RESULT_ID "weightTaskResultId",
+               TWR.TARE_SEGMENT_SQE "tareSqe",
+               TWR.GROSS_SEGMENT_SQE "grossSqe"
+        FROM TMSTRUCK_WEIGHT_RESULT TWR
+        WHERE TWR.RESULT_GROSS_WEIGHT_TIME = to_date(#{resultGrossWeightTime},'yyyy-MM-dd HH24:mi:ss')
+        AND TWR.MATERIAL_ID = #{materialId}
+        AND TWR.RESULT_TOTAL_ID = #{resultTotalId}
+    </select>
+    <select id="selectOrderLineSqe" resultType="java.lang.Integer" parameterType="decimal">
+        SELECT TWR.GROSS_SEGMENT_SQE FROM TMSTRUCK_WEIGHT_RESULT TWR
+        WHERE TWR.RESULT_TOTAL_ID = #{resultTotalId}
+        and TWR.RESULT_NET_WEIGHT IS NOT NULL
+        ORDER BY TWR.GROSS_SEGMENT_SQE DESC
+        FETCH FIRST 1 ROWS ONLY
+    </select>
 </mapper>