Browse Source

问题处理

yzc 1 năm trước cách đây
mục cha
commit
5dd12a3919

+ 43 - 35
hx-sale/src/main/java/com/fjhx/sale/flow/EhsdPurchaseUpdateFlow.java

@@ -12,14 +12,15 @@ import com.fjhx.flow.enums.FlowStatusEnum;
 import com.fjhx.item.enums.ProductAvailableRecordType;
 import com.fjhx.item.enums.ProductAvailableRecordType;
 import com.fjhx.item.service.product.ProductInfoService;
 import com.fjhx.item.service.product.ProductInfoService;
 import com.fjhx.purchase.entity.purchase.enums.PurchaseStatusEnum;
 import com.fjhx.purchase.entity.purchase.enums.PurchaseStatusEnum;
+import com.fjhx.sale.entity.arrival.po.Arrival;
 import com.fjhx.sale.entity.purchase.dto.EhsdPurchaseDto;
 import com.fjhx.sale.entity.purchase.dto.EhsdPurchaseDto;
 import com.fjhx.sale.entity.purchase.po.EhsdPurchase;
 import com.fjhx.sale.entity.purchase.po.EhsdPurchase;
 import com.fjhx.sale.entity.purchase.po.EhsdPurchaseProduct;
 import com.fjhx.sale.entity.purchase.po.EhsdPurchaseProduct;
 import com.fjhx.sale.entity.purchase.po.EhsdPurchaseProject;
 import com.fjhx.sale.entity.purchase.po.EhsdPurchaseProject;
+import com.fjhx.sale.service.arrival.ArrivalService;
 import com.fjhx.sale.service.purchase.EhsdPurchaseProductService;
 import com.fjhx.sale.service.purchase.EhsdPurchaseProductService;
 import com.fjhx.sale.service.purchase.EhsdPurchaseProjectService;
 import com.fjhx.sale.service.purchase.EhsdPurchaseProjectService;
 import com.fjhx.sale.service.purchase.EhsdPurchaseService;
 import com.fjhx.sale.service.purchase.EhsdPurchaseService;
-import com.fjhx.wms.entity.stock.po.StockWaitDetails;
 import com.fjhx.wms.service.stock.StockWaitDetailsService;
 import com.fjhx.wms.service.stock.StockWaitDetailsService;
 import com.fjhx.wms.service.stock.StockWaitService;
 import com.fjhx.wms.service.stock.StockWaitService;
 import com.ruoyi.common.core.domain.BasePo;
 import com.ruoyi.common.core.domain.BasePo;
@@ -53,6 +54,8 @@ public class EhsdPurchaseUpdateFlow extends FlowDelegate {
     private StockWaitDetailsService stockWaitDetailsService;
     private StockWaitDetailsService stockWaitDetailsService;
     @Autowired
     @Autowired
     private StockWaitService stockWaitService;
     private StockWaitService stockWaitService;
+    @Autowired
+    private ArrivalService arrivalService;
 
 
     @Override
     @Override
     public String getFlowKey() {
     public String getFlowKey() {
@@ -66,6 +69,7 @@ public class EhsdPurchaseUpdateFlow extends FlowDelegate {
     public Long start(Long flowId, JSONObject submitData) {
     public Long start(Long flowId, JSONObject submitData) {
         EhsdPurchaseDto purchase = submitData.toJavaObject(EhsdPurchaseDto.class);
         EhsdPurchaseDto purchase = submitData.toJavaObject(EhsdPurchaseDto.class);
         Assert.notEmpty(purchase.getId(), "原采购订单id不能为空");
         Assert.notEmpty(purchase.getId(), "原采购订单id不能为空");
+
         //赋值原采购id 并 清空id
         //赋值原采购id 并 清空id
         purchase.setOldPurchaseId(purchase.getId());
         purchase.setOldPurchaseId(purchase.getId());
         purchase.setId(null);
         purchase.setId(null);
@@ -76,6 +80,11 @@ public class EhsdPurchaseUpdateFlow extends FlowDelegate {
         //获取原采购id
         //获取原采购id
         Long oldPurchaseId = purchase.getOldPurchaseId();
         Long oldPurchaseId = purchase.getOldPurchaseId();
 
 
+        //存在到货不允许变更
+        if (arrivalService.count(q -> q.eq(Arrival::getPurchaseId, oldPurchaseId)) > 0) {
+            throw new ServiceException("该采购订单存在到货记录,禁止变更!");
+        }
+
         //判断合同是否在变更中,防止用户缓存导致重复变更
         //判断合同是否在变更中,防止用户缓存导致重复变更
         EhsdPurchase oldPurchase = ehsdPurchaseService.getById(oldPurchaseId);
         EhsdPurchase oldPurchase = ehsdPurchaseService.getById(oldPurchaseId);
         Assert.notEmpty(oldPurchase, "查询不到原采购订单信息");
         Assert.notEmpty(oldPurchase, "查询不到原采购订单信息");
@@ -141,40 +150,39 @@ public class EhsdPurchaseUpdateFlow extends FlowDelegate {
         List<AvailableStockBo> availableStockBoList = new ArrayList<>();
         List<AvailableStockBo> availableStockBoList = new ArrayList<>();
 
 
         //旧数据处理
         //旧数据处理
-        Long stockWaitId = null;
         for (EhsdPurchaseProduct oldPurchaseProduct : oldPurchaseProductList) {
         for (EhsdPurchaseProduct oldPurchaseProduct : oldPurchaseProductList) {
             //新数量
             //新数量
             BigDecimal newQuantity = newQuantityMap.get(oldPurchaseProduct.getId());
             BigDecimal newQuantity = newQuantityMap.get(oldPurchaseProduct.getId());
-            //已入库数量
-            StockWaitDetails stockWaitDetails = stockWaitDetailsService.getOne(q -> q.eq(StockWaitDetails::getBusinessDetailsId, oldPurchaseProduct.getId()));
-            stockWaitId = stockWaitDetails.getStockWaitId();
+//            //已入库数量
+//            StockWaitDetails stockWaitDetails = stockWaitDetailsService.getOne(q -> q.eq(StockWaitDetails::getBusinessDetailsId, oldPurchaseProduct.getId()));
+//            stockWaitId = stockWaitDetails.getStockWaitId();
 
 
             //生成操作可用库存的实体
             //生成操作可用库存的实体
             AvailableStockBo availableStockBo = new AvailableStockBo();
             AvailableStockBo availableStockBo = new AvailableStockBo();
             availableStockBo.setProductId(oldPurchaseProduct.getProductId());
             availableStockBo.setProductId(oldPurchaseProduct.getProductId());
             availableStockBo.setQuantity(oldPurchaseProduct.getQuantity());
             availableStockBo.setQuantity(oldPurchaseProduct.getQuantity());
             availableStockBo.setNewQuantity(newQuantity);
             availableStockBo.setNewQuantity(newQuantity);
-            availableStockBo.setInStockQuantity(stockWaitDetails.getReceiptQuantity());
+            availableStockBo.setInStockQuantity(BigDecimal.ZERO);
 
 
             availableStockBoList.add(availableStockBo);
             availableStockBoList.add(availableStockBo);
 
 
 
 
-            //操作待入库数据
-            if (ObjectUtils.isEmpty(newQuantity)) {
-                //原数据被删,检查已入库数量,>0禁止变更
-                stockWaitDetailsService.removeById(stockWaitDetails);
-            } else {
-                stockWaitDetails.setQuantity(newQuantity);
-                //计算状态
-                int status = stockWaitDetails.getReceiptQuantity().compareTo(stockWaitDetails.getQuantity()) >= 0 ? 2 : 1;
-                if (stockWaitDetails.getReceiptQuantity().compareTo(BigDecimal.ZERO) == 0) {
-                    status = 0;
-                }
-                stockWaitDetails.setStatus(status);
-                stockWaitDetailsService.updateById(stockWaitDetails);
-
-                stockWaitService.updateStatus(stockWaitDetails.getStockWaitId());
-            }
+//            //操作待入库数据
+//            if (ObjectUtils.isEmpty(newQuantity)) {
+//                //原数据被删,检查已入库数量,>0禁止变更
+//                stockWaitDetailsService.removeById(stockWaitDetails);
+//            } else {
+//                stockWaitDetails.setQuantity(newQuantity);
+//                //计算状态
+//                int status = stockWaitDetails.getReceiptQuantity().compareTo(stockWaitDetails.getQuantity()) >= 0 ? 2 : 1;
+//                if (stockWaitDetails.getReceiptQuantity().compareTo(BigDecimal.ZERO) == 0) {
+//                    status = 0;
+//                }
+//                stockWaitDetails.setStatus(status);
+//                stockWaitDetailsService.updateById(stockWaitDetails);
+//
+//                stockWaitService.updateStatus(stockWaitDetails.getStockWaitId());
+//            }
         }
         }
 
 
         //新添加的数据处理
         //新添加的数据处理
@@ -191,19 +199,19 @@ public class EhsdPurchaseUpdateFlow extends FlowDelegate {
             availableStockBo.setInStockQuantity(null);
             availableStockBo.setInStockQuantity(null);
             availableStockBoList.add(availableStockBo);
             availableStockBoList.add(availableStockBo);
 
 
-            //生成待入库
-            Assert.notEmpty(stockWaitId, "查询不到待入库信息!");
-            StockWaitDetails stockWaitDetails = new StockWaitDetails();
-            stockWaitDetails.setStockWaitId(stockWaitId);
-            stockWaitDetails.setBusinessDetailsId(newPurchaseProduct.getId());
-            stockWaitDetails.setPurchaseDetailId(newPurchaseProduct.getId());
-
-            stockWaitDetails.setProductId(newPurchaseProduct.getProductId());
-            stockWaitDetails.setQuantity(newPurchaseProduct.getQuantity());
-            stockWaitDetails.setStatus(0);
-            stockWaitDetailsService.save(stockWaitDetails);
-
-            stockWaitService.updateStatus(stockWaitDetails.getStockWaitId());
+//            //生成待入库
+//            Assert.notEmpty(stockWaitId, "查询不到待入库信息!");
+//            StockWaitDetails stockWaitDetails = new StockWaitDetails();
+//            stockWaitDetails.setStockWaitId(stockWaitId);
+//            stockWaitDetails.setBusinessDetailsId(newPurchaseProduct.getId());
+//            stockWaitDetails.setPurchaseDetailId(newPurchaseProduct.getId());
+//
+//            stockWaitDetails.setProductId(newPurchaseProduct.getProductId());
+//            stockWaitDetails.setQuantity(newPurchaseProduct.getQuantity());
+//            stockWaitDetails.setStatus(0);
+//            stockWaitDetailsService.save(stockWaitDetails);
+//
+//            stockWaitService.updateStatus(stockWaitDetails.getStockWaitId());
         }
         }