Переглянути джерело

采购进口矿、司机撤单修改优化

txf 3 роки тому
батько
коміт
2a678652ea

+ 5 - 5
src/main/java/com/steerinfo/dil/mapper/OmstruckOrderMapper.java

@@ -288,19 +288,19 @@ public interface OmstruckOrderMapper extends IBaseMapper<OmstruckOrder, BigDecim
 //    //通过订单查询趟次
 //    Integer getSporadicOrderTimes(BigDecimal orderId);
    //删除计重实绩
-   int deleteWeightResult(BigDecimal weightResultId);
+   int deleteWeightResult(BigDecimal resultTotalId);
 
    //删除装货实绩
-   int deleteLoadResult(BigDecimal loadResultId);
+   int deleteLoadResult(BigDecimal resultTotalId);
 
    //删除出厂实绩
-   int deleteLeaveResult(BigDecimal leaveResultId);
+   int deleteLeaveResult(BigDecimal resultTotalId);
 
    //删除卸货实绩
-   int deleteUnloadResult(BigDecimal unloadResultId);
+   int deleteUnloadResult(BigDecimal resultTotalId);
 
    //删除进厂实绩
-   int deleteEnResult(BigDecimal enFactoryId);
+   int deleteEnResult(BigDecimal resultTotalId);
 
    List<Map<String, Object>> getPurInwardOrderList(Map<String, Object> mapValue);
 

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

@@ -131,4 +131,7 @@ public interface OmstruckOrderSeparateMapper {
     int closeInwardOrder(@Param("orderId") Integer orderId, @Param("sqe") Integer sqe);
 
     int  getInward(Object orderType);
+
+    //根据订单ID查询信息
+    Map<String, Object> getOrderMesByOrderId(BigDecimal orderId);
 }

+ 36 - 65
src/main/java/com/steerinfo/dil/service/impl/OmstruckOrderServiceImpl.java

@@ -101,11 +101,7 @@ public class OmstruckOrderServiceImpl implements IOmstruckOrderService {
         int i = 0;
         switch (orderType.intValue()) {
             case 1:
-                i = dispatchSteelOrder(map);//新增销售订单
-                break;
             case 2:
-                i = dispatchSteelOrder(map);//新增水渣发运计划订单
-                break;
             case 3:
                 i = dispatchSteelOrder(map);//新增焦炭发运计划订单
                 break;
@@ -114,13 +110,14 @@ public class OmstruckOrderServiceImpl implements IOmstruckOrderService {
             case 5:
             case 6:
             case 7:
+            case 8:
             case 17:
             case 18:
                 i = addCGPurOrders(map);
                 break;
-            case 8:
-                i = addCGPurOrder(map); //新增采购运输订单
-                break;
+//            case 8:
+//                i = addCGPurOrder(map); //新增采购运输订单
+//                break;
             case 9:
                 break;
             case 10:
@@ -549,63 +546,41 @@ public class OmstruckOrderServiceImpl implements IOmstruckOrderService {
     }
 
     //撤销订单
+    @Transactional
     @Override
     public int undoOrder(Map<String, Object> map) {
         int result=0;
-        Integer orderId =(Integer) map.get("orderId");
-        OmstruckOrder omstruckOrder=new OmstruckOrder();
+        BigDecimal orderId =DataChange.dataToBigDecimal(map.get("orderId"));
+        Map<String, Object> mesMap = omstruckOrderSeparateMapper.getOrderMesByOrderId(orderId);
+        BigDecimal orderPlanId = DataChange.dataToBigDecimal(mesMap.get("orderPlanId"));
+        int orderType = DataChange.dataToBigDecimal(mesMap.get("orderType")).intValue();
+        BigDecimal resultTotalId = DataChange.dataToBigDecimal(mesMap.get("resultTotalId"));
+        OmstruckOrder omstruckOrder = new OmstruckOrder();
         omstruckOrder.setOrderId(DataChange.dataToBigDecimal(orderId));
-        Integer orderTypee = omstruckOrderMapper.getOrderTypeByOrderNumber(new BigDecimal(orderId));
-        if(orderTypee == 11 ){
-            omstruckOrder.setOrderStatus(new BigDecimal(4));
-            result += omstruckOrderMapper.updateByPrimaryKeySelective(omstruckOrder);
-            return result ;
-        }
-        //根据运输订单号获取planId
-        Map<String, Object> messageMap = omstruckOrderSeparateMapper.getOmstruckOrderResult(new BigDecimal(orderId));
-        BigDecimal orderPlanId =(BigDecimal) messageMap.get("orderPlanId");
-        //将订单状态设为未接收
         omstruckOrder.setOrderStatus(new BigDecimal(4));
         //讲路段顺序号设为空,适应进厂以后扫码
         omstruckOrder.setOrderLineSequence(new BigDecimal(0));
         result += omstruckOrderMapper.updateByPrimaryKeySelective(omstruckOrder);
-        List<Map<String, Object>> allResultIdList = omstruckOrderMapper.getAllResultId(DataChange.dataToBigDecimal(orderId));
-        for (Map<String,Object> allResultId:allResultIdList
-             ) {
-            BigDecimal weightResultId =(BigDecimal) allResultId.get("weightResultId");
-            result += omstruckOrderMapper.deleteWeightResult(weightResultId);
-            BigDecimal loadResultId =(BigDecimal) allResultId.get("loadResultId");
-            if (loadResultId!=null) {
-                result += omstruckOrderMapper.deleteLoadResult(loadResultId);
-            }
-            BigDecimal leaveResultId=(BigDecimal) allResultId.get("leaveResultId");
-            result += omstruckOrderMapper.deleteLeaveResult(leaveResultId);
-            BigDecimal unloadResultId =(BigDecimal) allResultId.get("unloadResultId");
-            if (unloadResultId!=null) {
-                result += omstruckOrderMapper.deleteUnloadResult(unloadResultId);
-            }
-            BigDecimal enFactoryId =(BigDecimal) allResultId.get("enFactoryId");
-            result +=omstruckOrderMapper.deleteEnResult(enFactoryId);
+        if(orderType == 11 ){
+            result += omstruckOrderMapper.deleteLoadResult(resultTotalId);
+            return result ;
         }
-        //删除所有实绩
-        Integer orderType = omstruckOrderMapper.getOrderTypeByOrderNumber(new BigDecimal(orderId));
-        switch (orderType){
-//            case 12:
-//            case 13:
-//            case 20:
-            case 15:
-            case 19:
-            case 16:
-                    Map<String, Object> sporadicOrderTimes = omstruckOrderMapper.getSporadicOrderTimes(new BigDecimal(orderId));
-                    BigDecimal orderTimes =(BigDecimal)sporadicOrderTimes.get("orderTimes");
-                    BigDecimal transTimes = (BigDecimal)sporadicOrderTimes.get("transTimes");
-                    //更新趟次
-                    omstruckOrderSeparateService.updateTimes(orderPlanId,orderTimes.intValue()+1);
-                    //更新已运输趟次
-                    if (transTimes.intValue()>0) {
-                        omstruckOrderSeparateMapper.updateTranTimes(orderPlanId, transTimes.intValue() - 1);
-                    }
-                    break;
+        //通过总实绩ID删除所有已经生成的实绩
+        result += omstruckOrderMapper.deleteEnResult(resultTotalId);
+        result += omstruckOrderMapper.deleteWeightResult(resultTotalId);
+        result += omstruckOrderMapper.deleteUnloadResult(resultTotalId);
+        result += omstruckOrderMapper.deleteLoadResult(resultTotalId);
+        result += omstruckOrderMapper.deleteLeaveResult(resultTotalId);
+        if(orderType == 15 || orderType == 16 || orderType == 19){
+            Map<String, Object> sporadicOrderTimes = omstruckOrderMapper.getSporadicOrderTimes(orderId);
+            BigDecimal orderTimes =(BigDecimal)sporadicOrderTimes.get("orderTimes");
+            BigDecimal transTimes = (BigDecimal)sporadicOrderTimes.get("transTimes");
+            //更新趟次
+            omstruckOrderSeparateService.updateTimes(orderPlanId,orderTimes.intValue()+1);
+            //更新已运输趟次
+            if (transTimes.intValue()>0) {
+                omstruckOrderSeparateMapper.updateTranTimes(orderPlanId, transTimes.intValue() - 1);
+            }
         }
 
         return result;
@@ -1905,7 +1880,6 @@ public class OmstruckOrderServiceImpl implements IOmstruckOrderService {
     public Map<String, Object> getMessageToApp(Map<String, Object> map){
         BigDecimal orderId = DataChange.dataToBigDecimal(map.get("orderId"));
         Integer orderType;
-        String type="";
         //获取订单类型
         if(map.get("orderType") == null){
             orderType = omstruckOrderMapper.getOrderTypeByOrderNumber(orderId);
@@ -1953,10 +1927,7 @@ public class OmstruckOrderServiceImpl implements IOmstruckOrderService {
                 break;
             case 19:
                  mesMap=omstruckOrderMapper.getSporadicOrder(map);
-                 type += "零星退货";
-                 mesMap.put("type", type);
-
-
+                 mesMap.put("type", "零星退货");
         }
         mesMap.put("materialMesList", omstruckOrderMapper.getMaterialMes(orderId));
 
@@ -1971,25 +1942,25 @@ public class OmstruckOrderServiceImpl implements IOmstruckOrderService {
      */
     public List<Map<String, Object>> getAllOrderMessagesByCapacityNum(Map<String, Object> map){
         String capacityNumber = (String) map.get("capacityNumber");
-
         //通过车牌号查询所有未下发的订单ID
-         List<Map<String, Object>> orderMesList = omstruckOrderMapper.getOrderIdListByCapacityNumber(capacityNumber);
+        List<Map<String, Object>> orderMesList = omstruckOrderMapper.getOrderIdListByCapacityNumber(capacityNumber);
         List<Map<String, Object>> mesMapList = new ArrayList<>();
         for (Map<String, Object> orderMesMap: orderMesList) {
+            int orderType = DataChange.dataToBigDecimal(orderMesMap.get("orderType")).intValue();
             //如果订单类型为2 则判断订单发货日期是否为当日 如果不是当日则不给显示
-            if(DataChange.dataToBigDecimal(orderMesMap.get("orderType")).intValue() == 2){
+            if(orderType == 2){
                 Integer judgeDate = omstruckOrderSeparateMapper.getDeliveryDate(orderMesMap.get("orderId"));
                 if(judgeDate == null){ // 数据为空则不是当天的订单
                     continue;
                 }
             }
-            if(DataChange.dataToBigDecimal(orderMesMap.get("orderType")).intValue() == 10||DataChange.dataToBigDecimal(orderMesMap.get("orderType")).intValue() == 20){
+            if(orderType == 10|| orderType == 20){
                 Integer planEnable = omstruckOrderSeparateMapper.getOrderPlanEnable(orderMesMap.get("orderId"));
                 if(planEnable == 0){ // 数据为0则失效
                     continue;
                 }
             }
-            if(DataChange.dataToBigDecimal(orderMesMap.get("orderType")).intValue()==11){
+            if(orderType == 11){
                 int result = omstruckOrderSeparateMapper.getInward(orderMesMap.get("orderId"));
                 if(result == 0){
                     continue;

+ 6 - 13
src/main/resources/com/steerinfo/dil/mapper/OmstruckOrderMapper.xml

@@ -2936,21 +2936,14 @@
     </select>
 
     <!--  通过车牌匹配所有已下发的 的订单Id -->
-    <select id="getOrderIdListByCapacityNumber" resultType="map">
+    <select id="getOrderIdListByCapacityNumber" parameterType="string" resultType="map">
         SELECT OO.ORDER_ID "orderId",
                OO.ORDER_TYPE  "orderType"
         FROM OMSTRUCK_ORDER OO
         LEFT JOIN RMS_CAPACITY RC
         ON RC.CAPACITY_ID = OO.CAPACITY_ID
-        LEFT JOIN AMSTRUCK_INWARD_PLAN AIP
-        ON OO.ORDER_PLAN_ID = AIP.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 RC.CAPACITY_NUMBER = #{capacityNumber}
           AND OO.ORDER_STATUS = 4
-        order by AIR.REQUIREMENT_TRUCK_TIME
     </select>
 
     <!--  根据车牌号匹配所有已接收的运输订单Id  -->
@@ -3178,29 +3171,29 @@
     <!--删除计重实绩id-->
     <delete id="deleteWeightResult" parameterType="java.math.BigDecimal">
         delete from TMSTRUCK_WEIGHT_RESULT
-        where WEIGHT_TASK_RESULT_ID = #{weightResultId}
+        where RESULT_TOTAL_ID = #{resultTotalId}
     </delete>
 <!-- 删除装车实绩   -->
     <delete id="deleteLoadResult" parameterType="java.math.BigDecimal">
         delete from TMSTRUCK_LOAD_RESULT
-        where RESULT_ID = #{loadResultId}
+        where RESULT_TOTAL_ID = #{resultTotalId}
     </delete>
 
 <!--  删除出厂实绩-->
     <delete id="deleteLeaveResult" parameterType="java.math.BigDecimal">
         delete from TMSTRUCK_LEAVE_FACTORY_RESULT
-        where RESULT_ID = #{leaveResultId}
+        where RESULT_TOTAL_ID = #{resultTotalId}
     </delete>
 
 <!--删除卸货实绩-->
     <delete id="deleteUnloadResult" parameterType="java.math.BigDecimal">
         delete from TMSTRUCK_UNLOAD_RESULT
-        where RESULT_ID = #{unloadResultId}
+        where RESULT_TOTAL_ID = #{resultTotalId}
     </delete>
 <!--删除进厂实绩-->
     <delete id="deleteEnResult" parameterType="java.math.BigDecimal">
         delete from TMSTRUCK_ENFACTORY_RESULT
-        where RESULT_ID = #{enFactoryId}
+        where RESULT_TOTAL_ID = #{resultTotalId}
     </delete>
 <!--根据订单id查询运输订单信息-->
     <select id="selectOrderMap" resultType="java.util.Map" parameterType="DECIMAL">

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

@@ -770,4 +770,14 @@
         where AIR.DUE_DATE	&gt;= sysdate and OO.ORDER_ID = #{orderId}
     </select>
 
+
+    <select id="getOrderMesByOrderId" parameterType="java.math.BigDecimal" resultType="java.util.Map">
+        select OO.ORDER_TYPE    "orderType",
+               OO.ORDER_PLAN_ID "orderPlanId",
+               TTR.RESULT_TOTAL_ID  "resultTotalId"
+        from OMSTRUCK_ORDER OO
+                 left join TMSTRUCK_TOTAL_RESULT TTR on OO.ORDER_ID = TTR.ORDER_ID
+        where OO.ORDER_ID = #{orderId}
+    </select>
+
 </mapper>