lichao 3 months ago
parent
commit
a2edb5ff17

+ 99 - 0
src/main/java/com/steerinfo/dil/service/impl/OmsTransOrderServiceImpl.java

@@ -2733,6 +2733,105 @@ public class OmsTransOrderServiceImpl {
      * @param orderStatus  运单执行状态
      * @return
      */
+    public int updateOrderStatus(BigDecimal transOrderId, BigDecimal sequence, String orderStatus, String userName,String poundNo) throws Exception {
+        try {
+            Map<String, Object> searchMap = new HashMap<>();
+            searchMap.put("transOrderId", transOrderId.toString());
+            searchMap.put("userName", userName);
+            Map<String, Object> transOrder = omsTransOrderMapper.getTransOrder(searchMap);
+            if (transOrder == null) {
+                throw new Exception("没有查询到唯一运单!");
+            }
+            searchMap.put("businessTypeName",transOrder.get("businessTypeName").toString());
+            searchMap.put("billingType",transOrder.get("billingType").toString());
+            BigDecimal deleted = DataChange.dataToBigDecimal(transOrder.get("deleted"));
+            BigDecimal endSeq = DataChange.dataToBigDecimal(transOrder.get("endSeq"));
+            BigDecimal currentLineSeq = DataChange.dataToBigDecimal(transOrder.get("currentLineSeq"));
+            if (sequence.compareTo(currentLineSeq.add(BigDecimal.ONE)) != 0) {
+                Map<String,Object> config = omsTransOrderMapper.getConfigByName("运输实绩顺序执行");
+                config = config == null ? new HashMap<>() : config;
+                if("否".equals(config.get("valueString"))){
+                    log.info("配置如此,允许跳步骤执行");
+                }else{
+                    throw new Exception("顺序错误,不允许跳步骤执行!");
+                }
+            }
+            OmsTransOrder omsTransOrder = new OmsTransOrder();
+            omsTransOrder.setSerialNumber(transOrder.get("transOrderNumber").toString());
+            omsTransOrder.setTransOrderId(transOrderId);
+            omsTransOrder.setCurrentLineSeq(sequence);
+            omsTransOrder.setOrderStatus(orderStatus);
+            omsTransOrder.setAlternateFields7(poundNo);
+            //补录车辆档案
+            //try{
+            //    buluCapacity(transOrder);
+            //}catch (Exception e){
+            //    e.printStackTrace();
+            //    log.error("补录车辆档案失败:"+e.getMessage());
+            //}
+            if("采购".equals(transOrder.get("businessScene"))){
+                //采购查询大宗补录卸货实绩
+                try{
+                    findUnloadDetails(omsTransOrder,userName);
+                }catch (Exception e){
+                    e.printStackTrace();
+                }
+            }
+            if("销售".equals(transOrder.get("businessScene"))){
+                //销售查询大宗补录装货实绩
+                try{
+                    findLoadDetails(omsTransOrder,userName);
+                }catch (Exception e){
+                    e.printStackTrace();
+                }
+            }
+            if("大宗销售订单".equals(transOrder.get("businessTypeName")) && (transOrder.get("materialName")+"").contains("复磅")){
+                //销售查询是否有同车号,业务类型为型钢销售订单、高线销售订单,未接单但有装货的运单,最近一条。迁移其他实绩
+                replaceResultSpecial(transOrder);
+            }
+            if (deleted.compareTo(new BigDecimal(4)) == 0 || deleted.compareTo(new BigDecimal(5)) == 0) {
+                //正在运行中的运单需要校验是否结束
+                if (endSeq.compareTo(BigDecimal.ZERO) > 0 && endSeq.compareTo(sequence) <= 0) {
+                    //关闭运单
+                    omsTransOrder.setDeleted(new BigDecimal(2));
+                    omsTransOrder.setUpdateUsername(userName);
+                    omsTransOrder.setUpdateTime(new Date());
+                    //if (
+                    //        ("采购".equals(transOrder.get("businessScene")) && "自提".equals(transOrder.get("isSelfMention")))
+                    //                || ("销售".equals(transOrder.get("businessScene")) && "非自提".equals(transOrder.get("isSelfMention")))
+                    //                || ("生产".equals(transOrder.get("businessScene")))
+                    //) {
+                    //    //调用结算接口生成详单
+                    //    //emsFeign.emsdetailsordersAdd(searchMap);
+                    //}
+                }else{
+                    //调整运单状态
+                    omsTransOrder.setDeleted(new BigDecimal(5));
+                    omsTransOrder.setUpdateUsername(userName);
+                    omsTransOrder.setUpdateTime(new Date());
+                }
+                omsTransOrderMapper.updateOtherStatus(omsTransOrder.getTransOrderId(),omsTransOrder.getDeleted());
+            }else if(deleted.compareTo(new BigDecimal(9)) == 0) {
+                //待执行运单变为已执行
+                if("出厂".equals(orderStatus)){
+                    omsTransOrder.setDeleted(new BigDecimal(2));
+                }else{
+                    omsTransOrder.setDeleted(new BigDecimal(5));
+                }
+                omsTransOrder.setUpdateUsername(userName);
+                omsTransOrder.setUpdateTime(new Date());
+            }
+            entityDispose.disposeOmsTransOrder(omsTransOrder);
+            omsTransOrderMapper.updateByPrimaryKeySelective(omsTransOrder);
+        } catch (Exception e) {
+            e.printStackTrace();
+            log.error("更新运单状态失败:" + e.getMessage());
+            throw e;
+        }
+        return 0;
+
+    }
+
     public int updateOrderStatus(BigDecimal transOrderId, BigDecimal sequence, String orderStatus, String userName) throws Exception {
         try {
             Map<String, Object> searchMap = new HashMap<>();

+ 4 - 4
src/main/java/com/steerinfo/dil/service/impl/TmsWeightResultServiceImpl.java

@@ -208,7 +208,7 @@ public class TmsWeightResultServiceImpl {
                             item.setNetWeight(BigDecimal.ZERO);
                         }
                         tmsWeightResultMapper.updateByPrimaryKeySelective(item);
-                        omsTransOrderService.updateOrderStatus(transOrderIds.get(0),item.getTareSegmentSqe(),"计皮",item.getUpdateUsername());
+                        omsTransOrderService.updateOrderStatus(transOrderIds.get(0),item.getTareSegmentSqe(),"计皮",item.getUpdateUsername(),item.getPoundNo());
                         omsOrderChildService.updateOrderChildInfo(transOrderIds.get(0),item.getTransOrderChildId(),item.getTareWeightTime(),"计皮");
                         omsOrderChildService.updateOrderChildInfo(transOrderIds.get(0),item.getTransOrderChildId(),item.getNetWeightTime(),"净重");
                         OmsOrderChild omsOrderChild = omsOrderChildMapper.selectByPrimaryKey(transOrderChildId);
@@ -328,7 +328,7 @@ public class TmsWeightResultServiceImpl {
                             item.setNetWeight(BigDecimal.ZERO);
                         }
                         tmsWeightResultMapper.updateByPrimaryKeySelective(item);
-                        omsTransOrderService.updateOrderStatus(transOrderIds.get(0),item.getGrossSegmentSqe(),"计毛",item.getUpdateUsername());
+                        omsTransOrderService.updateOrderStatus(transOrderIds.get(0),item.getGrossSegmentSqe(),"计毛",item.getUpdateUsername(),item.getPoundNo());
                         omsOrderChildService.updateOrderChildInfo(transOrderIds.get(0),item.getTransOrderChildId(),item.getGrossWeightTime(),"计毛");
                         omsOrderChildService.updateOrderChildInfo(transOrderIds.get(0),item.getTransOrderChildId(),item.getNetWeightTime(),"净重");
                         OmsOrderChild omsOrderChild = omsOrderChildMapper.selectByPrimaryKey(transOrderChildId);
@@ -410,7 +410,7 @@ public class TmsWeightResultServiceImpl {
                         omsOrderChildMapper.updateByPrimaryKeySelective(omsOrderChild);
                         map.put("resultId",item.getResultId());//返回给日志记录
                         try{
-                            omsTransOrderService.updateOrderStatus(transOrderIds.get(0),item.getTareSegmentSqe(),"计皮",item.getUpdateUsername());
+                            omsTransOrderService.updateOrderStatus(transOrderIds.get(0),item.getTareSegmentSqe(),"计皮",item.getUpdateUsername(),item.getPoundNo());
                             omsOrderChildService.updateOrderChildInfo(transOrderIds.get(0),item.getTransOrderChildId(),item.getTareWeightTime(),"计皮");
                             omsOrderChildService.updateOrderChildInfo(transOrderIds.get(0),item.getTransOrderChildId(),item.getNetWeightTime(),"净重");
                         }catch (Exception e){}
@@ -493,7 +493,7 @@ public class TmsWeightResultServiceImpl {
                         omsOrderChildMapper.updateByPrimaryKeySelective(omsOrderChild);
                         map.put("resultId",item.getResultId());//返回给日志记录
                         try{
-                            omsTransOrderService.updateOrderStatus(transOrderIds.get(0),item.getGrossSegmentSqe(),"计毛",item.getUpdateUsername());
+                            omsTransOrderService.updateOrderStatus(transOrderIds.get(0),item.getGrossSegmentSqe(),"计毛",item.getUpdateUsername(),item.getPoundNo());
                             omsOrderChildService.updateOrderChildInfo(transOrderIds.get(0),item.getTransOrderChildId(),item.getGrossWeightTime(),"计毛");
                             omsOrderChildService.updateOrderChildInfo(transOrderIds.get(0),item.getTransOrderChildId(),item.getNetWeightTime(),"净重");
                         }catch (Exception e){}

+ 1 - 0
src/main/resources/com/steerinfo/dil/mapper/OmsTransOrderMapper.xml

@@ -2320,6 +2320,7 @@
       OTO .DRIVER_ID2 "driverId2",
       OTO.ORDER_TYPE "orderType",
       OTO.ISSUE_TIME "issueTime",
+      OTO.ALTERNATE_FIELDS7 "poundNo",
       OTO.ORDER_STATUS "orderStatus",
       OTO.CONFIRM_REASON "confirmReason",
       OTO.DRIVER_CONFIRM_TIME "driverConfirmTime",