Kaynağa Gözat

待入库状态异常问题处理

yzc 1 yıl önce
ebeveyn
işleme
100d3a1281

+ 22 - 4
hx-purchase/src/main/java/com/fjhx/purchase/service/purchase/impl/PurchaseServiceImpl.java

@@ -69,8 +69,10 @@ import com.fjhx.supply.service.supplier.SupplierInfoService;
 import com.fjhx.tenant.utils.DictUtils;
 import com.fjhx.wms.entity.PurchaseDetailPo;
 import com.fjhx.wms.entity.stock.po.Stock;
+import com.fjhx.wms.entity.stock.po.StockWait;
 import com.fjhx.wms.entity.warehouse.po.Warehouse;
 import com.fjhx.wms.service.stock.StockService;
+import com.fjhx.wms.service.stock.StockWaitService;
 import com.fjhx.wms.service.warehouse.WarehouseService;
 import com.obs.services.internal.ServiceException;
 import com.ruoyi.common.core.domain.BasePo;
@@ -156,6 +158,8 @@ public class PurchaseServiceImpl extends ServiceImpl<PurchaseMapper, Purchase>
     private WdlyService wdlyService;
     @Autowired
     private FlowExampleService flowExampleService;
+    @Autowired
+    private StockWaitService stockWaitService;
 
     /**
      * 列表
@@ -250,7 +254,7 @@ public class PurchaseServiceImpl extends ServiceImpl<PurchaseMapper, Purchase>
         //是否在途过滤
         if (ObjectUtil.isNotEmpty(dto.getIsTransit())) {
 //            wrapper.having("isTransit = {0}", dto.getIsTransit());
-            wrapper.eq("IFNULL( t1.isTransit, 0 )",dto.getIsTransit());
+            wrapper.eq("IFNULL( t1.isTransit, 0 )", dto.getIsTransit());
         }
 
         //添加权限过滤
@@ -964,7 +968,21 @@ public class PurchaseServiceImpl extends ServiceImpl<PurchaseMapper, Purchase>
                 .set(BasePo::getUpdateUser, SecurityUtils.getUserId())
                 .setSql("victoriatourist_json = JSON_SET(victoriatourist_json,'$.contractCode','" + dto.getContractCode() + "')")
         );
-        wdlyService.editContractCode(dto.getId(),dto.getContractCode());
+
+        //更新物流数据冗余的单号
+        wdlyService.editContractCode(dto.getId(), dto.getContractCode());
+
+        //更新待入库冗余的单号
+        stockWaitService.update(q -> q
+                .and(q1 -> q1
+                        .eq(StockWait::getPurchaseId, dto.getId())
+                        .or().eq(StockWait::getBusinessId, dto.getId())
+                )
+                .eq(StockWait::getBusinessType, 3)
+                .set(StockWait::getBusinessCode, dto.getContractCode())
+                .set(BasePo::getUpdateTime, new Date())
+                .set(BasePo::getUpdateUser, SecurityUtils.getUserId())
+        );
     }
 
     @Override
@@ -1035,7 +1053,7 @@ public class PurchaseServiceImpl extends ServiceImpl<PurchaseMapper, Purchase>
 
 
     @Override
-    public void updateAttachment(PurchaseDto dto){
-        ObsFileUtil.editFile(dto.getFileList(),dto.getId());
+    public void updateAttachment(PurchaseDto dto) {
+        ObsFileUtil.editFile(dto.getFileList(), dto.getId());
     }
 }

+ 1 - 1
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/service/purchase/impl/PurchaseBackServiceImpl.java

@@ -234,7 +234,7 @@ public class PurchaseBackServiceImpl extends ServiceImpl<PurchaseBackMapper, Pur
 
         List<Stock> stockList = new ArrayList<>();
 
-        stockWaitDetailsService.changeStockWaitStatus(stockWaitDto);
+        stockWaitDetailsService.changeStockWaitReceiptQuantity(stockWaitDto);
 
 
         for (StockWaitDetails stockWaitDetails0 : stockWaitDetailsList) {

+ 3 - 1
hx-wms/src/main/java/com/fjhx/wms/service/stock/StockWaitDetailsService.java

@@ -39,7 +39,9 @@ public interface StockWaitDetailsService extends BaseService<StockWaitDetails> {
      */
     void add(StockWaitDetailsDto stockWaitDetailsDto);
     
-    void changeStockWaitStatus(StockWaitDto stockWaitDto);
+    void changeStockWaitReceiptQuantity(StockWaitDto stockWaitDto);
+
+    void changeStockWaitStatus(Long stockWaitId);
 
     /**
      * 待出入库明细编辑

+ 2 - 9
hx-wms/src/main/java/com/fjhx/wms/service/stock/impl/StockJournalDetailsServiceImpl.java

@@ -309,17 +309,10 @@ public class StockJournalDetailsServiceImpl extends ServiceImpl<StockJournalDeta
         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) {
-                //完全入库
-                stockWait.setStatus(2);
-            } else {
-                //部分入库
-                stockWait.setStatus(1);
-            }
+            //修改状态
+            stockWaitDetailsService.changeStockWaitStatus(stockWait.getId());
         }
-        stockWaitService.updateById(stockWait);
 
         //修改待质检数量
         List<Long> arrivalStockRecordsDetailsIds = arrivalStockRecordsDetailsService.listObject(ArrivalStockRecordsDetails::getId, q -> q

+ 12 - 6
hx-wms/src/main/java/com/fjhx/wms/service/stock/impl/StockWaitDetailsServiceImpl.java

@@ -85,11 +85,11 @@ public class StockWaitDetailsServiceImpl extends ServiceImpl<StockWaitDetailsMap
     }
 
     @Override
-    public List<StockWaitDetailsVo> getList(IWrapper<StockWaitDetails> wrapper ) {
-       return baseMapper.getList(wrapper);
+    public List<StockWaitDetailsVo> getList(IWrapper<StockWaitDetails> wrapper) {
+        return baseMapper.getList(wrapper);
     }
 
-        @Override
+    @Override
     public StockWaitDetailsVo detail(Long id) {
         StockWaitDetails StockWaitDetails = this.getById(id);
         StockWaitDetailsVo result = BeanUtil.toBean(StockWaitDetails, StockWaitDetailsVo.class);
@@ -162,7 +162,7 @@ public class StockWaitDetailsServiceImpl extends ServiceImpl<StockWaitDetailsMap
      * 更新待出入库状态
      */
     @Override
-    public void changeStockWaitStatus(StockWaitDto stockWaitDto) {
+    public void changeStockWaitReceiptQuantity(StockWaitDto stockWaitDto) {
         List<StockWaitDetailsDto> stockWaitDetailsDtoList = stockWaitDto.getStockWaitDetailsList();
 
         //获取待入库明细信息
@@ -184,9 +184,15 @@ public class StockWaitDetailsServiceImpl extends ServiceImpl<StockWaitDetailsMap
             updateById(stockWaitDetails);
         }
 
+        //刷新待入库状态
+        changeStockWaitStatus(stockWaitDto.getId());
+    }
+
+    @Override
+    public void changeStockWaitStatus(Long stockWaitId) {
         //更新待出库记录状态
         int statusFlag = 0;
-        List<StockWaitDetails> stockWaitDetailsList = list(q -> q.eq(StockWaitDetails::getStockWaitId, stockWaitDto.getId()));
+        List<StockWaitDetails> stockWaitDetailsList = list(q -> q.eq(StockWaitDetails::getStockWaitId, stockWaitId));
         for (StockWaitDetails waitDetails : stockWaitDetailsList) {
             //计算已经完全出库的数量
             BigDecimal receiptQuantity1 = ObjectUtil.isEmpty(waitDetails.getReceiptQuantity()) ? BigDecimal.ZERO : waitDetails.getReceiptQuantity();
@@ -194,7 +200,7 @@ public class StockWaitDetailsServiceImpl extends ServiceImpl<StockWaitDetailsMap
                 statusFlag++;
             }
         }
-        StockWait byId = stockWaitService.getById(stockWaitDto.getId());
+        StockWait byId = stockWaitService.getById(stockWaitId);
         if (statusFlag == stockWaitDetailsList.size()) {
             byId.setStatus(2);//入库完成
         } else {

+ 1 - 1
hx-wms/src/main/java/com/fjhx/wms/service/stock/impl/StockWaitServiceImpl.java

@@ -302,7 +302,7 @@ public class StockWaitServiceImpl extends ServiceImpl<StockWaitMapper, StockWait
         }
 
         //更新已出入库数量以及待出入库状态
-        stockWaitDetailsService.changeStockWaitStatus(stockWaitDto);
+        stockWaitDetailsService.changeStockWaitReceiptQuantity(stockWaitDto);
         StockWait stockWait = getById(stockWaitDto.getId());
 
         String victoriatouristJson = stockWait.getVictoriatouristJson();