Jelajahi Sumber

后台处理 删除多余实绩

txf 3 tahun lalu
induk
melakukan
e9f76f9b76

+ 11 - 1
src/main/java/com/steerinfo/dil/controller/BackgroundProcessingController.java

@@ -12,6 +12,7 @@ import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 
@@ -32,8 +33,17 @@ public class BackgroundProcessingController extends BaseRESTfulController {
 
     @ApiOperation(value = "关闭一车多趟方法")
     @PostMapping("/closePurOrderMoreTrips")
-    public RESTfulResult closePurOrderMoreTrips(String purchaseOrderNo) {
+    public RESTfulResult closePurOrderMoreTrips(String purchaseOrderNo, String deleteNoReceiveOrder) {
         int i = backgroundProcessingMapper.closePurOrderMoreTrips(purchaseOrderNo);
+        if("yes".equals(deleteNoReceiveOrder)){
+            //查询该采购订单下所有未接收的运输订单(5,6,7,8,17,18)
+            ArrayList<Integer> orderIdList = backgroundProcessingMapper.getAllPurOrder(purchaseOrderNo);
+            if(orderIdList != null && orderIdList.size() != 0){
+                backgroundProcessingMapper.deleteOrders(orderIdList); //物理删除
+                backgroundProcessingMapper.deleteOrderMaterials(orderIdList);//物理删除物资子表
+                backgroundProcessingMapper.batchByOrderIdForTotalDelete(orderIdList);//总实绩表
+            }
+        }
         if(i != 1){
             return failed("关闭失败!没有此采购订单");
         }

+ 0 - 15
src/main/java/com/steerinfo/dil/controller/TMSController.java

@@ -1271,21 +1271,6 @@ public class TMSController extends BaseRESTfulController {
         String orderNumber = (String) mapValue.get("orderNumber");
         orderNumber = orderNumber.substring(0, orderNumber.length()-1);
         mapValue.put("orderNumber", orderNumber);
-        //通过订单号获取订单ID 和 订单类型
-        Map<String, Object> orderMesMap = universalMapper.getOrderMesByOrderNumber(orderNumber);
-        BigDecimal orderType = DataChange.dataToBigDecimal(orderMesMap.get("orderType"));
-        //如果订单类型为2 则需要财务公司审核才能进厂
-        if(orderType.intValue() == 2){
-            Integer saleOrderStatus = universalMapper.getSaleOrderStatus(DataChange.dataToBigDecimal(orderMesMap.get("orderId")));
-            if(saleOrderStatus != 4){
-                //如果不等于4则是未通过财务审批 ,不可以进厂
-                Map<String, Object> returnMap = new HashMap<>();
-                returnMap.put("code", "201");
-                returnMap.put("status", "failed");
-                returnMap.put("data", "审批未通过不能进厂!");
-                return returnMap;
-            }
-        }
         return tmsTruckFeign.enFactoryResultByPDA(mapValue);
     }
 

+ 37 - 1
src/main/java/com/steerinfo/dil/mapper/BackgroundProcessingMapper.java

@@ -1,8 +1,11 @@
 package com.steerinfo.dil.mapper;
 
+import org.apache.ibatis.annotations.Param;
 import org.mapstruct.Mapper;
 
 import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
 import java.util.Map;
 
 @Mapper
@@ -16,5 +19,38 @@ public interface BackgroundProcessingMapper {
 
     Map<String, Object> getOrderMesByOrderNum(String orderNumber);
 
-    Map<String, Object> getEnFactoryResult(BigDecimal resultTotalId);
+    ArrayList<Integer> getAllPurOrder(String purchaseOrderNo);
+
+    int deleteOrders(ArrayList<Integer> list);
+
+    int deleteOrderMaterials(ArrayList<Integer> list);
+
+    int batchByOrderIdForTotalDelete(ArrayList<Integer> list);
+
+    List<Integer> enFactoryCheck(BigDecimal resultTotalId);
+    List<Integer> loadCheck(BigDecimal resultTotalId);
+    List<Integer> unloadCheck(BigDecimal resultTotalId);
+    List<Integer> weightCheck(BigDecimal resultTotalId);
+    List<Integer> outFactoryCheck(BigDecimal resultTotalId);
+
+    List<Map<String, Object>> getEnFactoryResult(@Param("resultTotalId") BigDecimal resultTotalId,@Param("sqe") Integer sqe);
+
+    List<Map<String, Object>> loadResult(@Param("resultTotalId") BigDecimal resultTotalId,@Param("sqe") Integer sqe);
+
+    List<Map<String, Object>> unloadResult(@Param("resultTotalId") BigDecimal resultTotalId,@Param("sqe") Integer sqe);
+
+    List<Map<String, Object>> weightResult(@Param("resultTotalId") BigDecimal resultTotalId,@Param("sqe") Integer sqe);
+
+    List<Map<String, Object>> outFactoryResult(@Param("resultTotalId") BigDecimal resultTotalId,@Param("sqe") Integer sqe);
+
+    int deleteEnFactoryUnnecessaryResult(@Param("list") List<Integer> list);
+
+    int deleteLoadUnnecessaryResult(@Param("list") List<Integer> list);
+
+    int deleteUnloadUnnecessaryResult(@Param("list") List<Integer> list);
+
+    int deleteWeightUnnecessaryResult(@Param("list") List<Integer> list);
+
+    int deleteOutFactoryUnnecessaryResult(@Param("list") List<Integer> list);
+
 }

+ 68 - 2
src/main/java/com/steerinfo/dil/service/impl/BackgroundProcessingServiceImpl.java

@@ -1,7 +1,6 @@
 package com.steerinfo.dil.service.impl;
 
 import com.steerinfo.dil.mapper.BackgroundProcessingMapper;
-import com.steerinfo.dil.mapper.UniversalMapper;
 import com.steerinfo.dil.service.IBackgroundProcessService;
 import com.steerinfo.dil.util.DataChange;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -43,7 +42,74 @@ public class BackgroundProcessingServiceImpl implements IBackgroundProcessServic
             return 0;
         }
         BigDecimal resultTotalId = DataChange.dataToBigDecimal(orderMes.get("resultTotalId"));
-
+        List<Integer> enFactoryList = backgroundProcessingMapper.enFactoryCheck(resultTotalId);
+        if(enFactoryList != null && enFactoryList.size() != 0){
+            //查询出当前顺序号中所有的实绩
+            for (Integer sqe : enFactoryList) {
+                List<Map<String, Object>> mesList = backgroundProcessingMapper.getEnFactoryResult(resultTotalId, sqe);
+                closeWay(mesList, 1);
+            }
+        }
+        List<Integer> loadList = backgroundProcessingMapper.loadCheck(resultTotalId);
+        if(loadList != null && loadList.size() != 0){
+            for (Integer sqe : loadList) {
+                List<Map<String, Object>> mesList = backgroundProcessingMapper.loadResult(resultTotalId, sqe);
+                closeWay(mesList, 2);
+            }
+        }
+        List<Integer> unloadList = backgroundProcessingMapper.unloadCheck(resultTotalId);
+        if(unloadList != null && unloadList.size() != 0){
+            for (Integer sqe : unloadList) {
+                List<Map<String, Object>> mesList = backgroundProcessingMapper.unloadResult(resultTotalId, sqe);
+                closeWay( mesList, 3);
+            }
+        }
+        List<Integer> weightList = backgroundProcessingMapper.weightCheck(resultTotalId);
+        if(weightList != null && weightList.size() != 0){
+            for (Integer sqe : weightList) {
+                List<Map<String, Object>> mesList = backgroundProcessingMapper.weightResult(resultTotalId, sqe);
+                closeWay(mesList, 4);
+            }
+        }
+        List<Integer> outFactoryList = backgroundProcessingMapper.outFactoryCheck(resultTotalId);
+        if(outFactoryList != null && outFactoryList.size() != 0){
+            for (Integer sqe : outFactoryList) {
+                List<Map<String, Object>> mesList = backgroundProcessingMapper.outFactoryResult(resultTotalId, sqe);
+                closeWay(mesList, 5);
+            }
+        }
         return 0;
     }
+
+    /**
+     * 关闭通用方法
+     * @param mesList 这些顺序号的实绩信息
+     * @param type 1:进厂 2:计量 3:装货:4:卸货 5:出厂
+     */
+    public void closeWay(List<Map<String, Object>> mesList, int type){
+        List<Integer> resultList = new ArrayList<>();
+        for (Map<String, Object> map : mesList) {
+            //有过操作时间的不做删除
+            if(map.get("time") == null){
+                resultList.add(DataChange.dataToBigDecimal(map.get("resultId")).intValue()); //添入列表中
+            }
+        }
+        if(mesList.size() == resultList.size()){
+            //如果所有的实绩都为空 ,则只保留一条实绩,其余的全部删除
+            resultList.remove(0);
+        }
+        if(resultList.size() != 0){
+            //删除实绩数据
+            if(type == 1)
+                backgroundProcessingMapper.deleteEnFactoryUnnecessaryResult(resultList);
+            else if(type == 2)
+                backgroundProcessingMapper.deleteLoadUnnecessaryResult(resultList);
+            else if(type == 3)
+                backgroundProcessingMapper.deleteUnloadUnnecessaryResult(resultList);
+            else if(type == 4)
+                backgroundProcessingMapper.deleteWeightUnnecessaryResult(resultList);
+            else if(type == 5)
+                backgroundProcessingMapper.deleteOutFactoryUnnecessaryResult(resultList);
+        }
+    }
 }

+ 1 - 2
src/main/resources/application-dev.yml

@@ -23,7 +23,6 @@ openfeign:
     url: ${TMSTRAINFEIGN_URL:172.16.33.162:8004}
   TmsTruckFeign:
     url: ${TMSTRUCKFEIGN_URL:172.16.33.162:8008}
-    #url: ${TMSTRUCKFEIGN_URL:172.16.33.162:8088}
   TmsshipFeign:
     url: ${TMSSHIPFEIGN_URL:172.16.33.162:8003}
   WMSHFeign:
@@ -38,7 +37,7 @@ openfeign:
     url: ${JOINFEIGN_URL:172.16.33.162:8006}
   OTMSFeign:
     url: ${OTMSFEIGN_URL:172.16.33.162:8038}
-    #url: ${OTMSFEIGN_URL:localhost:8038}
+
 piction:
   #path: C:\Users\24390\Desktop\work\a
   #path: D:\Code\work\jpg

+ 0 - 1
src/main/resources/bootstrap.yml

@@ -1,7 +1,6 @@
 api.version: api/v1
 spring:
   profiles:
-    #include: ${SPRING_PROFILES:dev}
     include: ${SPRING_PROFILES:prod}
   jackson:
     date-format: yyyy-MM-dd HH:mm:ss

+ 160 - 2
src/main/resources/com/steerinfo/dil/mapper/BackgroundProcessingMapper.xml

@@ -30,9 +30,167 @@
 
     <select id="getEnFactoryResult" resultType="java.util.Map">
         select TER.RESULT_ID    "resultId",
-               TER.SEGMEN_SQE   "segmentSqe",
-               TER.RESULT_ENTRY_GATE_TIME   "resultEntryGateTime"
+               TER.RESULT_ENTRY_GATE_TIME   "time"
         from TMSTRUCK_ENFACTORY_RESULT TER
         where TER.RESULT_TOTAL_ID = #{resultTotalId}
+          and  TER.SEGMEN_SQE = #{sqe}
     </select>
+
+    <select id="loadResult" resultType="java.util.Map">
+        select T.RESULT_ID    "resultId",
+               T.RESULT_LOAD_END_TIME   "time"
+        from TMSTRUCK_LOAD_RESULT T
+        where T.RESULT_TOTAL_ID = #{resultTotalId}
+          and  T.SEGMENT_SQE = #{sqe}
+    </select>
+
+    <select id="unloadResult" resultType="java.util.Map">
+        select T.RESULT_ID    "resultId",
+               T.RESULT_END_TIME   "time"
+        from TMSTRUCK_UNLOAD_RESULT T
+        where T.RESULT_TOTAL_ID = #{resultTotalId}
+          and  T.SEGMENT_SQE = #{sqe}
+    </select>
+
+    <select id="weightResult" resultType="java.util.Map">
+        select T.WEIGHT_TASK_RESULT_ID    "resultId",
+               T.RESULT_TARE_WEIGHT_TIME   "time"
+        from TMSTRUCK_WEIGHT_RESULT T
+        where T.RESULT_TOTAL_ID = #{resultTotalId}
+          and  T.GROSS_SEGMENT_SQE = #{sqe}
+    </select>
+
+    <select id="outFactoryResult" resultType="java.util.Map">
+        select T.RESULT_ID    "resultId",
+               T.RESULT_OUT_GATE_TIME   "time"
+        from TMSTRUCK_LEAVE_FACTORY_RESULT T
+        where T.RESULT_TOTAL_ID = #{resultTotalId}
+          and  T.SEGMENT_SQE = #{sqe}
+    </select>
+
+    <select id="getAllPurOrder" resultType="java.lang.Integer">
+        select OO.ORDER_ID
+        from OMSTRUCK_ORDER OO
+        left join AMS_PURCHASE_ORDER APO
+            on OO.ORDER_PLAN_ID = APO.PURCHASE_ORDER_ID
+        where APO.PURCHASE_ORDER_NO = #{purchaseOrderNo}
+          and OO.ORDER_TYPE in (5,6,7,8,17,18)
+          and OO.ORDER_STATUS in (3,4)
+    </select>
+
+    <delete id="deleteOrders" parameterType="arraylist">
+        delete
+        from OMSTRUCK_ORDER OO
+        where OO.ORDER_ID in
+        <foreach collection="list" item="id" open="(" separator="," close=")" >
+            ${id}
+        </foreach>
+    </delete>
+
+    <delete id="deleteOrderMaterials" parameterType="arraylist">
+        delete
+        from OMSTRUCK_ORDER_MATERIAL OOM
+        where OOM.ORDER_ID in
+        <foreach collection="list" item="id" open="(" separator="," close=")" >
+            ${id}
+        </foreach>
+    </delete>
+
+    <delete id="batchByOrderIdForTotalDelete" parameterType="arraylist">
+        delete from TMSTRUCK_TOTAL_RESULT TTR
+        where TTR.ORDER_ID in
+        <foreach collection="list" item="id" open="(" close=")" separator=",">
+            #{id}
+        </foreach>
+    </delete>
+
+    <select id="enFactoryCheck" parameterType="decimal" resultType="int">
+        SELECT
+            TER.SEGMEN_SQE  "segmentSqe"
+        FROM
+            TMSTRUCK_ENFACTORY_RESULT TER
+        WHERE
+            TER.RESULT_TOTAL_ID = #{resultTotalId}
+        GROUP BY TER.SEGMEN_SQE
+        HAVING count( TER.SEGMEN_SQE ) > 1
+    </select>
+
+    <select id="loadCheck" parameterType="decimal" resultType="int">
+        SELECT
+            T.SEGMENT_SQE  "segmentSqe"
+        FROM
+            TMSTRUCK_LOAD_RESULT T
+        WHERE
+            T.RESULT_TOTAL_ID = #{resultTotalId}
+        GROUP BY T.SEGMENT_SQE
+        HAVING count( T.SEGMENT_SQE ) > 1
+    </select>
+
+    <select id="unloadCheck" parameterType="decimal" resultType="int">
+        SELECT
+            T.SEGMENT_SQE  "segmentSqe"
+        FROM
+            TMSTRUCK_UNLOAD_RESULT T
+        WHERE
+            T.RESULT_TOTAL_ID = #{resultTotalId}
+        GROUP BY T.SEGMENT_SQE
+        HAVING count( T.SEGMENT_SQE ) > 1
+    </select>
+
+    <select id="weightCheck" parameterType="decimal" resultType="int">
+        SELECT
+            T.GROSS_SEGMENT_SQE   "segmentSqe"
+        FROM
+            TMSTRUCK_WEIGHT_RESULT T
+        WHERE
+            T.RESULT_TOTAL_ID = #{resultTotalId}
+        GROUP BY T.GROSS_SEGMENT_SQE
+        HAVING count( T.GROSS_SEGMENT_SQE  ) > 1
+    </select>
+
+    <select id="outFactoryCheck" parameterType="decimal" resultType="int">
+        SELECT
+            T.SEGMENT_SQE  "segmentSqe"
+        FROM
+            TMSTRUCK_LEAVE_FACTORY_RESULT T
+        WHERE
+            T.RESULT_TOTAL_ID = #{resultTotalId}
+        GROUP BY T.SEGMENT_SQE
+        HAVING count( T.SEGMENT_SQE ) > 1
+    </select>
+
+    <delete id="deleteEnFactoryUnnecessaryResult">
+        delete from TMSTRUCK_ENFACTORY_RESULT where RESULT_ID in
+        <foreach collection="list" item="id" open="(" separator="," close=")">
+            ${id}
+        </foreach>
+    </delete>
+
+  <delete id="deleteLoadUnnecessaryResult">
+        delete from TMSTRUCK_LOAD_RESULT where RESULT_ID in
+        <foreach collection="list" item="id" open="(" separator="," close=")">
+            ${id}
+        </foreach>
+    </delete>
+
+    <delete id="deleteUnloadUnnecessaryResult">
+        delete from TMSTRUCK_UNLOAD_RESULT where RESULT_ID in
+        <foreach collection="list" item="id" open="(" separator="," close=")">
+            ${id}
+        </foreach>
+    </delete>
+
+    <delete id="deleteWeightUnnecessaryResult">
+        delete from TMSTRUCK_WEIGHT_RESULT where WEIGHT_TASK_RESULT_ID in
+        <foreach collection="list" item="id" open="(" separator="," close=")">
+            ${id}
+        </foreach>
+    </delete>
+
+    <delete id="deleteOutFactoryUnnecessaryResult">
+        delete from TMSTRUCK_LEAVE_FACTORY_RESULT where RESULT_ID in
+        <foreach collection="list" item="id" open="(" separator="," close=")">
+            ${id}
+        </foreach>
+    </delete>
 </mapper>