luobang 2 年之前
父节点
当前提交
f29e904985

+ 11 - 0
src/main/java/com/steerinfo/dil/controller/AmsSaleOrderController.java

@@ -1340,6 +1340,9 @@ public class AmsSaleOrderController extends BaseRESTfulController {
         if (result == 0) {
             return failed("该物资已装货,无法关闭物资分录!!");
         }
+        if (mapValue.get("closeEntryFlag") != null && DataChange.dataToBigDecimal(mapValue.get("closeEntryFlag")).intValue() == 1) {
+            return success(result);
+        }
         String reason = (String) mapValue.get("reason");
         String number = (String) mapValue.get("number");
         String closeEntryId = (String) mapValue.get("closeEntryId");
@@ -1484,6 +1487,14 @@ public class AmsSaleOrderController extends BaseRESTfulController {
         return success(result);
     }
 
+    @ApiModelProperty(value = "金蝶反关闭单个分录")
+    @PostMapping("/adverseCloseSaleMaterialByEas")
+    public RESTfulResult adverseCloseSaleMaterialByEas(@RequestParam BigDecimal saleMaterialId) {
+        int result = amsSaleOrderService.adverseCloseSaleMaterialByEas(saleMaterialId);
+        return success(result);
+    }
+
+
     @ApiModelProperty(value = "反关闭金蝶整个销售订单")
     @PostMapping("/adverseCloseSaleOrder")
     public RESTfulResult adverseCloseSaleOrder(@RequestParam Integer saleOrderId) {

+ 2 - 0
src/main/java/com/steerinfo/dil/service/IAmsSaleOrderService.java

@@ -180,4 +180,6 @@ public interface IAmsSaleOrderService {
 
     int getSaleOrderStatus(String saleNumber);
 
+    int adverseCloseSaleMaterialByEas(BigDecimal saleMaterialId);
+
 }

+ 92 - 13
src/main/java/com/steerinfo/dil/service/impl/AmsSaleOrderServiceImpl.java

@@ -857,19 +857,19 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
         for (Map<String,Object> map : mapList) {
             // 得到车牌号
             String capacityNumber = (String) map.get("capacityNumber");
-            Map<String,Object> details = amsSaleOrderMapper.getOrderIdByCapacity(map);
-            if(details!=null && details.get("orderId")!=null){
-                if(details.get("isEn")==null){
-                    throw new Exception(capacityNumber+"有未进厂的运输订单任务,无法派单");
-                }else if(details.get("isLeave")==null){
-                    throw new Exception(capacityNumber+"有未出厂的运输订单任务,无法派单");
-                }else if(details.get("isArrival")==null){
-                    throw new Exception(capacityNumber+"有未抵达的运输订单任务,无法派单");
-                }else if(details.get("isReceipt")==null){
-                    throw new Exception(capacityNumber+"有未签收的运输订单任务,无法派单");
-                }
-                throw new Exception(capacityNumber+"有未完成的运输订单任务,无法派单");
-            }
+            //Map<String,Object> details = amsSaleOrderMapper.getOrderIdByCapacity(map);
+            //if(details!=null && details.get("orderId")!=null){
+            //    if(details.get("isEn")==null){
+            //        throw new Exception(capacityNumber+"有未进厂的运输订单任务,无法派单");
+            //    }else if(details.get("isLeave")==null){
+            //        throw new Exception(capacityNumber+"有未出厂的运输订单任务,无法派单");
+            //    }else if(details.get("isArrival")==null){
+            //        throw new Exception(capacityNumber+"有未抵达的运输订单任务,无法派单");
+            //    }else if(details.get("isReceipt")==null){
+            //        throw new Exception(capacityNumber+"有未签收的运输订单任务,无法派单");
+            //    }
+            //    throw new Exception(capacityNumber+"有未完成的运输订单任务,无法派单");
+            //}
             if(isCheckGps!=null && isCheckGps==0){
                 Map<String,Object> locationResult = null;
                 try{
@@ -2339,5 +2339,84 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
         return result;
     }
 
+    @Override
+    public int adverseCloseSaleMaterialByEas(BigDecimal saleMaterialId) {
+        AmsSaleMaterial amsSaleMaterial = amsSaleMaterialMapper.selectByPrimaryKey(saleMaterialId);
+        int result = amsSaleMaterialMapper.adverseCloseSaleMaterial(saleMaterialId);
+        AmsSaleOrder amsSaleOrder = amsSaleOrderMapper.selectByPrimaryKey(amsSaleMaterial.getSaleOrderId());
+        // 根据分录id查询运单id,物资id,总实绩id
+        Map<String,Object> saleMaterialMap = amsSaleOrderMapper.getSaleMaterialMessage(saleMaterialId);
+        BigDecimal orderId = (BigDecimal) saleMaterialMap.get("orderId");
+        BigDecimal orderStatus = (BigDecimal) saleMaterialMap.get("orderStatus");
+        //查询订单字表条数
+        int orderMaterialNum = omstruckOrderMapper.getOrderMaterialNum(orderId);
+        //查询计量实绩条数
+        int weightResultNum = omstruckOrderMapper.getWeightResultNum(orderId);
+        if (orderId != null && orderStatus.intValue() == 5 && orderMaterialNum != weightResultNum) {
+            BigDecimal resultTotalId = (BigDecimal) saleMaterialMap.get("resultTotalId");
+            BigDecimal materialId = (BigDecimal) saleMaterialMap.get("materialId");
+            // 根据总实绩id查询订单中的最大路段顺序号
+            // 得到皮重顺序号
+            int tareNum = (weightResultNum + 1) * 3 - 1;
+            // 得到装货顺序号
+            int loadNum =  (weightResultNum + 1) * 3;
+            // 得到毛重顺序号
+            int grossNum = (weightResultNum + 1) * 3 + 1;
+            // 装货实绩
+            TmstruckLoadResult tmstruckLoadResult = new TmstruckLoadResult();
+            TmstruckWeightResult tmstruckWeightResult = new TmstruckWeightResult();
+            tmstruckLoadResult.setResultId(tmstruckLoadResultMapper.selectMaxId());
+            tmstruckLoadResult.setResultTotalId(resultTotalId);
+            tmstruckLoadResult.setSegmentSqe(new BigDecimal(loadNum));
+            result += tmstruckLoadResultMapper.insertSelective(tmstruckLoadResult);
+            // 计量实绩
+            tmstruckWeightResult.setWeightTaskResultId(tmstruckWeightResultMapper.selectMaxId());
+            tmstruckWeightResult.setResultTotalId(resultTotalId);
+            tmstruckWeightResult.setResultTarePlaceId(new BigDecimal(10));
+            tmstruckWeightResult.setResultGrossPlaceId(new BigDecimal(2));
+            tmstruckWeightResult.setGrossSegmentSqe(new BigDecimal(grossNum));
+            tmstruckWeightResult.setTareSegmentSqe(new BigDecimal(tareNum));
+            result += tmstruckWeightResultMapper.insertSelective(tmstruckWeightResult);
+
+            // 出库子表
+            BigDecimal outBoundId = (BigDecimal) saleMaterialMap.get("outBoundId");
+            BigDecimal materialNumber = (BigDecimal) saleMaterialMap.get("materialNumber");
+            if (outBoundId != null) {
+                BigDecimal resultMaterialId = wmspOutboundResultMaterialMapper.getSeqNumber("seq__WMSP_OUTBOUND_RESUL_TMATRIAL");
+                WmspOutboundResultMaterial wmspOutboundResultMaterial = new WmspOutboundResultMaterial();
+                wmspOutboundResultMaterial.setResultMaterialId(resultMaterialId);
+                wmspOutboundResultMaterial.setOutboundResultId(outBoundId);
+                wmspOutboundResultMaterial.setMaterialId(materialId);
+                wmspOutboundResultMaterial.setMaterialNumber(materialNumber);
+                wmspOutboundResultMaterial.setInsertTime(new Date());
+                wmspOutboundResultMaterial.setInsertUsername("admin");
+                wmspOutboundResultMaterial.setStatus(new BigDecimal(1));
+                result += wmspOutboundResultMaterialMapper.insertSelective(wmspOutboundResultMaterial);
+            }
+        }
+        //去掉取消装货
+        result += omstruckOrderMaterialMapper.updateOmsMaterial(saleMaterialMap);
+        if (orderId != null && orderStatus.intValue() == 7) {
+            //如果订单被关闭,那么还原
+            //判断下面有没有实绩
+            int resultCount = omstruckOrderMapper.getResultCount(orderId);
+            OmstruckOrder omstruckOrder = new OmstruckOrder();
+            if (resultCount == 0) {
+                omstruckOrder.setOrderId(orderId);
+                omstruckOrder.setOrderStatus(new BigDecimal(4));
+                omstruckOrder.setInsertUpdateRemark("反关闭分录,运单同步开启");
+                omstruckOrder.setUpdateTime(new Date());
+                omstruckOrderMapper.updateByPrimaryKeySelective(omstruckOrder);
+            }else{
+                omstruckOrder.setOrderId(orderId);
+                omstruckOrder.setOrderStatus(new BigDecimal(5));
+                omstruckOrder.setInsertUpdateRemark("反关闭分录,运单同步开启");
+                omstruckOrder.setUpdateTime(new Date());
+                omstruckOrderMapper.updateByPrimaryKeySelective(omstruckOrder);
+            }
+        }
+        return result;
+    }
+
 
 }