Forráskód Böngészése

流水修正问题处理

yzc 1 éve
szülő
commit
74293bae27

+ 40 - 7
hx-wms/src/main/java/com/fjhx/wms/service/stock/impl/StockJournalDetailsServiceImpl.java

@@ -8,12 +8,16 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fjhx.common.utils.Assert;
 import com.fjhx.item.entity.product.po.ProductInfo;
 import com.fjhx.item.service.product.ProductInfoService;
+import com.fjhx.wms.entity.arrival.po.ArrivalStockRecords;
+import com.fjhx.wms.entity.arrival.po.ArrivalStockRecordsDetails;
 import com.fjhx.wms.entity.stock.dto.StockJournalDetailsDto;
 import com.fjhx.wms.entity.stock.dto.StockJournalSelectDto;
 import com.fjhx.wms.entity.stock.po.*;
 import com.fjhx.wms.entity.stock.vo.StockJournalDetailsVo;
 import com.fjhx.wms.entity.stock.vo.StockWaitVo;
 import com.fjhx.wms.mapper.stock.StockJournalDetailsMapper;
+import com.fjhx.wms.service.arrival.ArrivalStockRecordsDetailsService;
+import com.fjhx.wms.service.arrival.ArrivalStockRecordsService;
 import com.fjhx.wms.service.stock.*;
 import com.ruoyi.common.exception.ServiceException;
 import com.ruoyi.common.utils.wrapper.IWrapper;
@@ -50,6 +54,10 @@ public class StockJournalDetailsServiceImpl extends ServiceImpl<StockJournalDeta
     private StockJournalDetailsEditRecordService stockJournalDetailsEditRecordService;
     @Autowired
     private StockWaitDetailsService stockWaitDetailsService;
+    @Autowired
+    private ArrivalStockRecordsDetailsService arrivalStockRecordsDetailsService;
+    @Autowired
+    private ArrivalStockRecordsService arrivalStockRecordsService;
 
     @Override
     public Page<StockJournalDetailsVo> getPage(StockJournalSelectDto dto) {
@@ -183,19 +191,21 @@ public class StockJournalDetailsServiceImpl extends ServiceImpl<StockJournalDeta
             throw new ServiceException("操作失败请重试");
         }
         //修改待出入库数据
-        Long businessDetailsId = stockJournalDetails.getBusinessDetailsId();
-        Assert.notEmpty(businessDetailsId,"无法关联入库信息,操作失败");
-        StockWaitDetails stockWaitDetails = stockWaitDetailsService.getById(businessDetailsId);
-        Assert.notEmpty(stockWaitDetails,"无法查询到关联待入库信息,操作失败");
-        StockWait stockWait = stockWaitService.getById(stockWaitDetails.getStockWaitId());
+        Long stockWaitDetailsId = stockJournalDetails.getBusinessDetailsId();
+        Assert.notEmpty(stockWaitDetailsId,"无法关联入库信息,操作失败");
+
 
         boolean update1 = stockWaitDetailsService.update(q -> q
-                .eq(StockWaitDetails::getId, stockWaitDetails.getId())
+                .eq(StockWaitDetails::getId, stockWaitDetailsId)
                 .setSql("receipt_quantity = receipt_quantity+"+subtract)
         );
         if (!update1) {
             throw new ServiceException("操作失败请重试");
         }
+        //修改待入库状态
+        StockWaitDetails stockWaitDetails = stockWaitDetailsService.getById(stockWaitDetailsId);
+        Assert.notEmpty(stockWaitDetails,"无法查询到关联待入库信息,操作失败");
+        StockWait stockWait = stockWaitService.getById(stockWaitDetails.getStockWaitId());
 
         if (stockWait.getStatus()!=3) {
             if (stockWaitDetails.getQuantity().compareTo(stockWaitDetails.getReceiptQuantity()) <= 0) {
@@ -206,9 +216,32 @@ public class StockJournalDetailsServiceImpl extends ServiceImpl<StockJournalDeta
                 stockWait.setStatus(1);
             }
         }
-
         stockWaitService.updateById(stockWait);
 
+        //修改待质检数量
+        boolean update2 = arrivalStockRecordsDetailsService.update(q -> q
+                .eq(ArrivalStockRecordsDetails::getBusinessDetailsId, stockWaitDetailsId)
+                .setSql("quantity = quantity+"+subtract)
+        );
+        if (!update2) {
+            throw new ServiceException("操作失败请重试");
+        }
+
+        //修改质检状态
+        ArrivalStockRecordsDetails arrivalStockRecordsDetails = arrivalStockRecordsDetailsService.getOne(q -> q
+                .eq(ArrivalStockRecordsDetails::getBusinessDetailsId, stockWaitDetailsId)
+        );
+        ArrivalStockRecords arrivalStockRecords = arrivalStockRecordsService.getById(arrivalStockRecordsDetails.getArrivalStockRecordsId());
+        if (arrivalStockRecordsDetails.getQuantity().compareTo(arrivalStockRecordsDetails.getQualityQuantity()) <= 0) {
+            //完全质检
+            arrivalStockRecords.setQualityStatus(2);
+        } else {
+            //部分质检
+            arrivalStockRecords.setQualityStatus(1);
+        }
+        arrivalStockRecordsService.updateById(arrivalStockRecords);
+
+
         stockJournalDetails.setQuantity(dto.getQuantity());
         this.updateById(stockJournalDetails);
     }