luobang 2 tahun lalu
induk
melakukan
d2431d7073

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

@@ -397,7 +397,7 @@ public class BmstruckDetailsOrderController extends BaseRESTfulController {
     @PostMapping("newInwardSettle")
     public RESTfulResult newInwardSettle(@RequestBody Map<String,Object> map){
         //接收到运输订单号数组
-        List<Integer> orderIds = (List<Integer>)map.get("orderIds");
+        List<Map<String,Object>> orderIds = (List<Map<String,Object>>)map.get("orderIds");
         int i = bmstruckDetailsOrderService.newInwardSettle(orderIds);
         return success(i);
 

+ 2 - 0
src/main/java/com/steerinfo/dil/mapper/BmstruckDetailsOrderMapper.java

@@ -155,4 +155,6 @@ public interface BmstruckDetailsOrderMapper extends IBaseMapper<BmstruckDetailsO
     List<Map<String, Object>> getSteelTruckDetailsOrder(Map<String, Object> mapValue);
 
     Integer selectDetailsByOrder(BigDecimal orderId);
+
+    List<BigDecimal> getDetailsIdByOrderId(Integer orderId);
 }

+ 1 - 1
src/main/java/com/steerinfo/dil/service/IBmstruckDetailsOrderService.java

@@ -113,5 +113,5 @@ public interface IBmstruckDetailsOrderService {
 
     List<Map<String, Object>> getSteelTruckDetailsOrder(Map<String, Object> mapValue);
 
-    int newInwardSettle(List<Integer> orderIds);
+    int newInwardSettle(List<Map<String,Object>> orderIds);
 }

+ 47 - 7
src/main/java/com/steerinfo/dil/service/impl/BmstruckDetailsOrderServiceImpl.java

@@ -575,18 +575,20 @@ public class BmstruckDetailsOrderServiceImpl implements IBmstruckDetailsOrderSer
             Map<String,Object> map = bmstruckDetailsOrderMapper.getPurInwardPrice(priceInfoPur);
             if(map != null){
                 mapVal.putAll(map);
+            }else{
+                return -1;
             }
         }
         if(fixLineList.contains(orderType.intValue())){
             //拼装车皮进厂以及一焦化采购焦炭进厂
             Map<String,Object> priceInfoPur = bmstruckDetailsOrderMapper.getPriceInfoPur(orderId);
-            if(priceInfoPur.get("transRangeId") == null && priceInfoPur.get("materialTypeId") != null){
-                priceInfoPur.put("transRangeId",1);
-            }
+            priceInfoPur.put("transRangeId",1);
             //根据物资品类ID和承运起止范围去匹配单价
             Map<String,Object> map = bmstruckDetailsOrderMapper.getPurInwardPrice(priceInfoPur);
             if(map != null){
                 mapVal.putAll(map);
+            }else{
+                return -1;
             }
         }
         if(orderType.intValue() == 21){
@@ -715,17 +717,55 @@ public class BmstruckDetailsOrderServiceImpl implements IBmstruckDetailsOrderSer
     }
 
     @Override
-    public int newInwardSettle(List<Integer> orderIds) {
+    public int newInwardSettle(List<Map<String,Object>> orderIds) {
         int count = 0;
         //遍历数组
-        for(Integer orderId:orderIds){
+        for(Map<String,Object> orderIdMap:orderIds){
+            Integer orderId = DataChange.dataToBigDecimal(orderIdMap.get("orderId")).intValue();
             //根据运输ID获取订单类型
             BigDecimal orderType = bmstruckDetailsOrderMapper.getOrderType(new BigDecimal(orderId));
             //根据订单类型调用不同的方法
             //如果订单类型是11,
             if(orderType.intValue() == 11){
-                omsFeign.closeInwardOrder(orderId,1);
-                count++;
+                List<BigDecimal> detailsIds = bmstruckDetailsOrderMapper.getDetailsIdByOrderId(orderId);
+                if(detailsIds.size() == 0){
+                    omsFeign.closeInwardOrder(orderId,1);
+                    count++;
+                }else{
+                    for(int i=0;i<detailsIds.size()-1;i++){
+                        bmstruckDetailsOrderMapper.deleteByPrimaryKey(detailsIds.get(i));
+                        count++;
+                    }
+                }
+            }
+            if(orderType.intValue() == 10 || orderType.intValue() == 20){
+                //根据运输订单ID找寻计费详单ID
+                List<BigDecimal> detailsIds = bmstruckDetailsOrderMapper.getDetailsIdByOrderId(orderId);
+                for(BigDecimal detailsId:detailsIds){
+                    //根据详单ID物理删除详单
+                    bmstruckDetailsOrderMapper.deleteByPrimaryKey(detailsId);
+                    count++;
+
+                }
+                inserInwardOrder(orderIdMap);
+            }
+            if(orderType.intValue() == 23){
+                List<BigDecimal> detailsIds = bmstruckDetailsOrderMapper.getDetailsIdByOrderId(orderId);
+                for(BigDecimal detailsId:detailsIds){
+                    //根据详单ID物理删除详单
+                    bmstruckDetailsOrderMapper.deleteByPrimaryKey(detailsId);
+                    count++;
+                }
+                inserInwardOrder(orderIdMap);
+            }
+            if(orderType.intValue() == 16){
+                List<BigDecimal> detailsIds = bmstruckDetailsOrderMapper.getDetailsIdByOrderId(orderId);
+                for(BigDecimal detailsId:detailsIds){
+                    //根据详单ID物理删除详单
+                    bmstruckDetailsOrderMapper.deleteByPrimaryKey(detailsId);
+                    count++;
+                }
+                inserInwardOrder(orderIdMap);
             }
         }
         return count;

+ 16 - 6
src/main/resources/com/steerinfo/dil/mapper/BmstruckDetailsOrderMapper.xml

@@ -1224,6 +1224,7 @@
                 ON TTR.RESULT_TOTAL_ID = TWR.RESULT_TOTAL_ID
             WHERE OO.ORDER_ID = #{orderId}
             order by twr.GROSS_SEGMENT_SQE desc)
+            WHERE ROWNUM = 1
     </select>
           <select id="getInwardWeightDetailsOrder" resultType="java.util.Map" parameterType="java.util.Map">
         SELECT *
@@ -1569,15 +1570,15 @@
         GREATEST(TWR.RESULT_GROSS_WEIGHT_TIME, TWR.RESULT_TARE_WEIGHT_TIME) as "netTime",
         RMT.MATERIAL_TYPE_NAME as "materialTypeName",
         decode(RMT.MATERIAL_ISINWARD,1,'是','否')   as "materialIsWard",
-        RTR.TRANS_RANGE_VALUE as "rangeValue",
+        RTR.TRANS_RANGE_VALUE as "transRangeValue",
         decode(oo.ORDER_TYPE,11,'纯内转',15,'拼装车皮进厂',16,'一焦化采购进厂',10,'新区专线-新区',20,'新区专线-老区',23,'厂外内转-老区',24,'厂外内转-新区') as "orderType"
         FROM OMSTRUCK_ORDER OO
         LEFT JOIN TMSTRUCK_TOTAL_RESULT TTR
         ON TTR.ORDER_ID = OO.ORDER_ID
+        LEFT JOIN BMSTRUCK_DETAILS_ORDER BDO
+        ON BDO.ORDER_ID = OO.ORDER_ID
         LEFT JOIN TMSTRUCK_WEIGHT_RESULT TWR
         ON TWR.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
-        LEFT JOIN BMSTRUCK_DETAILS_ORDER BDO
-        ON BDO.WEIGHT_TASK_RESULT_ID = TWR.WEIGHT_TASK_RESULT_ID
         LEFT JOIN RMS_MATERIAL RM
         ON RM.MATERIAL_ID = TWR.MATERIAL_ID
         LEFT JOIN RMS_MATERIAL_TYPE RMT
@@ -1705,7 +1706,8 @@
                                  bdo.DETAILS_NO AS "detailsNo",
                                  bdo.DETAILS_TIME AS "detailsTime",
                                  decode(OO.ORDER_TYPE, 11, '纯内转') "orderType",
-                                 bdo.INSERT_TIME    "insertTime"
+                                 bdo.INSERT_TIME    "insertTime",
+                                ORDER_LINE_SEQUENCE "orderLineSeq"
                           FROM BMSTRUCK_DETAILS_ORDER bdo
                                    LEFT JOIN TMSTRUCK_WEIGHT_RESULT twr
                                              ON twr.WEIGHT_TASK_RESULT_ID = bdo.WEIGHT_TASK_RESULT_ID
@@ -1782,7 +1784,8 @@
                                         '厂外-老区厂内',
                                         24,
                                         '厂外-新区厂内') "orderType",
-                                 bdo.INSERT_TIME    "insertTime"
+                                 bdo.INSERT_TIME    "insertTime",
+                                 ORDER_LINE_SEQUENCE "orderLineSeq"
                           FROM BMSTRUCK_DETAILS_ORDER BDO
                                    LEFT JOIN TMSTRUCK_WEIGHT_RESULT TWR
                                              ON TWR.WEIGHT_TASK_RESULT_ID = BDO.WEIGHT_TASK_RESULT_ID
@@ -1856,7 +1859,8 @@
                                         bdo.details_no "detailsNo",
                                         bdo.details_time "detailsTime",
                                         decode( OO.ORDER_TYPE, 15, '拼装车皮进厂', 16, '一焦化-厂内' ) "orderType",
-                                        bdo.INSERT_TIME    "insertTime"
+                                        bdo.INSERT_TIME    "insertTime",
+                                        ORDER_LINE_SEQUENCE "orderLineSeq"
                           FROM
                               BMSTRUCK_DETAILS_ORDER BDO
                                   LEFT JOIN TMSTRUCK_WEIGHT_RESULT TWR ON TWR.WEIGHT_TASK_RESULT_ID = BDO.WEIGHT_TASK_RESULT_ID
@@ -2023,5 +2027,11 @@
         SELECT count(BDO.DETAILS_ID) FROM BMSTRUCK_DETAILS_ORDER BDO
         WHERE BDO.ORDER_ID = #{orderId}
     </select>
+    <select id="getDetailsIdByOrderId" resultType="java.math.BigDecimal" parameterType="java.lang.Integer">
+        SELECT BDO.DETAILS_ID FROM BMSTRUCK_DETAILS_ORDER BDO
+        WHERE
+
+        BDO.ORDER_ID = #{orderId}
+    </select>
 
 </mapper>