Browse Source

待出入库代码清理

yzc 1 year ago
parent
commit
391a42a334

+ 0 - 23
hx-wms/src/main/java/com/fjhx/wms/controller/stock/StockWaitController.java

@@ -41,14 +41,6 @@ public class StockWaitController {
     }
 
     /**
-     * 待出入库分页 维多利亚
-     */
-    @PostMapping("/pageByWdly")
-    public Page<StockWaitVo> pageByWdly(@RequestBody StockWaitSelectDto dto) {
-        return stockWaitService.getPageByWdly(dto);
-    }
-
-    /**
      * 待出入库明细
      */
     @PostMapping("/detail")
@@ -56,13 +48,6 @@ public class StockWaitController {
         return stockWaitService.detail(dto.getId());
     }
 
-    /**
-     * 待出入库明细 维多利亚
-     */
-    @PostMapping("/detailByWdly")
-    public StockWaitVo detailByWdly(@RequestBody BaseSelectDto dto) {
-        return stockWaitService.detailByWdly(dto.getId());
-    }
 
     /**
      * 待出入库新增
@@ -73,14 +58,6 @@ public class StockWaitController {
     }
 
     /**
-     * 待出入库新增 维多利亚
-     */
-    @PostMapping("/addByWdly")
-    public void addByWdly(@RequestBody StockWaitDto stockWaitDto) {
-        stockWaitService.add1(stockWaitDto);
-    }
-
-    /**
      * 待出入库编辑
      */
     @PostMapping("/edit")

+ 4 - 0
hx-wms/src/main/java/com/fjhx/wms/entity/stock/bo/InOutBo.java

@@ -1,12 +1,16 @@
 package com.fjhx.wms.entity.stock.bo;
 
+import lombok.AllArgsConstructor;
 import lombok.Getter;
+import lombok.NoArgsConstructor;
 import lombok.Setter;
 
 import java.math.BigDecimal;
 
 @Getter
 @Setter
+@NoArgsConstructor
+@AllArgsConstructor
 public class InOutBo {
 
     /**

+ 9 - 0
hx-wms/src/main/java/com/fjhx/wms/service/stock/StockService.java

@@ -96,6 +96,15 @@ public interface StockService extends BaseService<Stock> {
     void inOut(List<? extends InOutBo> list, Long warehouseId, JournalType journalType, Long businessId);
 
     /**
+     * 改变库存数量
+     *
+     * @param list        产品改变数量
+     * @param warehouseId 仓库id
+     * @param journalType 出/入库类型
+     */
+    void changeStock(List<? extends InOutBo> list, Long warehouseId, JournalType journalType);
+
+    /**
      * 获取可用库存
      */
     BigDecimal getAvailableStockQuantity(Long productId);

+ 2 - 16
hx-wms/src/main/java/com/fjhx/wms/service/stock/StockWaitService.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fjhx.wms.entity.stock.dto.StockWaitDetailsDto;
 import com.fjhx.wms.entity.stock.dto.StockWaitDto;
 import com.fjhx.wms.entity.stock.dto.StockWaitSelectDto;
+import com.fjhx.wms.entity.stock.emums.JournalType;
 import com.fjhx.wms.entity.stock.po.StockWait;
 import com.fjhx.wms.entity.stock.vo.StockWaitVo;
 import com.ruoyi.common.core.service.BaseService;
@@ -25,31 +26,16 @@ public interface StockWaitService extends BaseService<StockWait> {
     Page<StockWaitVo> getPage(StockWaitSelectDto dto);
 
     /**
-     * 待出入库分页 维多利亚
-     */
-    Page<StockWaitVo> getPageByWdly(StockWaitSelectDto dto);
-
-    /**
      * 待出入库明细
      */
     StockWaitVo detail(Long id);
 
     /**
-     * 待出入库明细
-     */
-    StockWaitVo detailByWdly(Long id);
-
-    /**
      * 待出入库新增
      */
     void add(StockWaitDetailsDto stockWaitDetailsDto);
 
     /**
-     * 待出入库新增
-     */
-    void add1(StockWaitDto stockWaitDto);
-
-    /**
      * 待出入库编辑
      */
     void edit(StockWaitDto stockWaitDto);
@@ -59,5 +45,5 @@ public interface StockWaitService extends BaseService<StockWait> {
      */
     void delete(Long id);
 
-    Integer getStockJournalType(int businessType);
+    JournalType getStockJournalType(int businessType);
 }

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

@@ -579,7 +579,8 @@ public class StockServiceImpl extends ServiceImpl<StockMapper, Stock> implements
     /**
      * 改变库存数量
      */
-    private synchronized void changeStock(List<? extends InOutBo> list, Long warehouseId, JournalType journalType) {
+    @Override
+    public synchronized void changeStock(List<? extends InOutBo> list, Long warehouseId, JournalType journalType) {
 
         Map<Long, BigDecimal> map = list.stream().collect(Collectors.toMap(
                 InOutBo::getProductId,

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

@@ -110,7 +110,7 @@ public class StockWaitDetailsServiceImpl extends ServiceImpl<StockWaitDetailsMap
 
     @Override
     @DSTransactional
-    public void add(StockWaitDetailsDto stockWaitDetailsDto) {
+    public synchronized void add(StockWaitDetailsDto stockWaitDetailsDto) {
         stockWaitService.add(stockWaitDetailsDto);
     }
 

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

@@ -1,9 +1,6 @@
 package com.fjhx.wms.service.stock.impl;
 
 import cn.hutool.core.bean.BeanUtil;
-import cn.hutool.core.util.ObjectUtil;
-import com.alibaba.fastjson2.JSONObject;
-import com.alibaba.fastjson2.JSONWriter;
 import com.baomidou.dynamic.datasource.annotation.DS;
 import com.baomidou.dynamic.datasource.annotation.DSTransactional;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -12,10 +9,7 @@ import com.fjhx.common.constant.SourceConstant;
 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.ArrivalDetailPo;
-import com.fjhx.wms.entity.arrival.po.ArrivalStockRecords;
-import com.fjhx.wms.entity.arrival.po.ArrivalStockRecordsDetails;
-import com.fjhx.wms.entity.purchase.po.PurchaseDetailPo;
+import com.fjhx.wms.entity.stock.bo.InOutBo;
 import com.fjhx.wms.entity.stock.dto.StockJournalDetailsDto;
 import com.fjhx.wms.entity.stock.dto.StockWaitDetailsDto;
 import com.fjhx.wms.entity.stock.dto.StockWaitDto;
@@ -25,7 +19,6 @@ import com.fjhx.wms.entity.stock.emums.StockWaitType;
 import com.fjhx.wms.entity.stock.po.*;
 import com.fjhx.wms.entity.stock.vo.StockWaitDetailsVo;
 import com.fjhx.wms.entity.stock.vo.StockWaitVo;
-import com.fjhx.wms.entity.warehouse.po.Warehouse;
 import com.fjhx.wms.mapper.stock.StockWaitMapper;
 import com.fjhx.wms.service.MyPurchaseService;
 import com.fjhx.wms.service.WmsService;
@@ -36,17 +29,12 @@ import com.fjhx.wms.service.warehouse.WarehouseService;
 import com.fjhx.wms.utils.CodeEnum;
 import com.ruoyi.common.exception.ServiceException;
 import com.ruoyi.common.utils.wrapper.IWrapper;
-import com.ruoyi.system.utils.UserUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.math.BigDecimal;
-import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
-import java.util.Map;
-import java.util.function.Function;
-import java.util.stream.Collectors;
 
 
 /**
@@ -107,55 +95,6 @@ public class StockWaitServiceImpl extends ServiceImpl<StockWaitMapper, StockWait
     }
 
     @Override
-    public Page<StockWaitVo> getPageByWdly(StockWaitSelectDto dto) {
-        IWrapper<StockWait> wrapper = getWrapper();
-        wrapper.orderByDesc("sw", StockWait::getId);
-        //过滤入库/出库
-        wrapper.eq(StockWait::getType, dto.getType());
-        wrapper.eq(StockWait::getBusinessCode, dto.getKeyword());
-        wrapper.eq(StockWait::getStatus, dto.getStatus());
-        wrapper.eq("sw", StockWait::getBusinessType, dto.getBusinessType());
-
-        //过滤掉待入库待出库已完成数据
-        wrapper.ne("sw", StockWait::getStatus, 2);
-
-        Page<StockWaitVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
-
-        List<StockWaitVo> records = page.getRecords();
-        //赋值操作人
-        UserUtil.assignmentNickName(records, StockWaitVo::getCreateUser, StockWaitVo::setOperatorName);
-        //赋值仓库名称和id
-        List<Long> warehouseIds = new ArrayList<>();
-        for (StockWaitVo stockWaitVo : records) {
-            String victoriatouristJson = stockWaitVo.getVictoriatouristJson();
-            if (ObjectUtil.isEmpty(victoriatouristJson)) {
-                continue;
-            }
-            JSONObject json = JSONObject.parseObject(victoriatouristJson);
-            if (!json.containsKey("receiptWarehouseId")) {
-                continue;
-            }
-            warehouseIds.add(json.getLong("receiptWarehouseId"));
-        }
-        if (ObjectUtil.isEmpty(warehouseIds)) {
-            return page;
-        }
-        List<Warehouse> warehouses = warehouseService.listByIds(warehouseIds);
-        Map<Long, String> warehousesMap = warehouses.stream().collect(Collectors.toMap(Warehouse::getId, Warehouse::getName));
-        for (StockWaitVo stockWaitVo : records) {
-            String victoriatouristJson = stockWaitVo.getVictoriatouristJson();
-            if (ObjectUtil.isEmpty(victoriatouristJson)) {
-                continue;
-            }
-            JSONObject json = JSONObject.parseObject(victoriatouristJson);
-            json.put("receiptWarehouseName", warehousesMap.get(json.getLong("receiptWarehouseId")));
-            stockWaitVo.setVictoriatouristJson(JSONObject.toJSONString(json, JSONWriter.Feature.WriteLongAsString));
-        }
-
-        return page;
-    }
-
-    @Override
     public StockWaitVo detail(Long id) {
         StockWait stockWait = this.getById(id);
         StockWaitVo result = BeanUtil.toBean(stockWait, StockWaitVo.class);
@@ -178,213 +117,74 @@ public class StockWaitServiceImpl extends ServiceImpl<StockWaitMapper, StockWait
         return result;
     }
 
-    @Override
-    public StockWaitVo detailByWdly(Long id) {
-        StockWait stockWait = this.getById(id);
-        StockWaitVo result = BeanUtil.toBean(stockWait, StockWaitVo.class);
-        List<StockWaitDetails> list = stockWaitDetailsService.list(q -> q.eq(StockWaitDetails::getStockWaitId, id));
-        List<StockWaitDetailsVo> stockWaitDetailsVos = BeanUtil.copyToList(list, StockWaitDetailsVo.class);
-        //根据业务id(到货id)查询采购单明细信息
-
-
-        //赋值物品信息和采购信息
-        List<Long> productIds = stockWaitDetailsVos.stream().map(StockWaitDetails::getProductId).collect(Collectors.toList());
-        if (ObjectUtil.isNotEmpty(productIds)) {
-            List<ProductInfo> productInfos = productInfoService.listByIds(productIds);
-            Map<Long, ProductInfo> productInfoMap = productInfos.stream().collect(Collectors.toMap(ProductInfo::getId, Function.identity()));
-            for (StockWaitDetailsVo stockWaitDetails : stockWaitDetailsVos) {
-                ProductInfo productInfo = productInfoMap.get(stockWaitDetails.getProductId());
-                if (ObjectUtil.isEmpty(productInfo)) {
-                    continue;
-                }
-                stockWaitDetails.setProductName(productInfo.getName());
-                stockWaitDetails.setProductCode(productInfo.getCode());
-                stockWaitDetails.setProductCustomCode(productInfo.getCustomCode());
-            }
-        }
-        result.setStockWaitDetailsList(stockWaitDetailsVos);
-        return result;
-    }
 
     @DSTransactional
     @Override
-    public void add(StockWaitDetailsDto stockWaitDetailsDto) {
-        //优化
-        StockWaitDetails stockWaitDetails = stockWaitDetailsService.getById(stockWaitDetailsDto.getId());
+    public synchronized void add(StockWaitDetailsDto dto) {
+        StockWaitDetails stockWaitDetails = stockWaitDetailsService.getById(dto.getId());
         Assert.notEmpty(stockWaitDetails, "查询不到待出库明细信息");
-        StockWaitDto stockWaitDto = BeanUtil.copyProperties(stockWaitDetailsDto, StockWaitDto.class);
-        stockWaitDto.setId(stockWaitDetails.getStockWaitId());
-        stockWaitDto.setStockWaitDetailsList(Collections.singletonList(BeanUtil.copyProperties(stockWaitDetailsDto, StockWaitDetails.class)));
-        this.add1(stockWaitDto);
-
-        //如果是采购退货 修改采购退货状态
-        StockWait stockWait = this.getById(stockWaitDto.getId());
+        StockWait stockWait = this.getById(stockWaitDetails.getStockWaitId());
         Assert.notEmpty(stockWait, "查询不到待出库信息");
-        if (stockWait.getBusinessType() == 4) {
-            Integer status = stockWait.getStatus();
-            myPurchaseService.updateSalesReturnStatus(stockWaitDetails.getBusinessDetailsId(), status);
-        }
-    }
-
-    @DSTransactional
-    @Override
-    public void add1(StockWaitDto stockWaitDto) {
-        Assert.notEmpty(stockWaitDto.getId(), "待出入库id不能为空");
-        Assert.notEmpty(stockWaitDto.getWarehouseId(), "仓库id不能为空");
-
-        List<Stock> stockList = new ArrayList<>();
-
-        List<StockWaitDetails> stockWaitDetailsDtoList = stockWaitDto.getStockWaitDetailsList();
-        Map<Long, StockWaitDetails> stockWaitDetailsMap = stockWaitDetailsDtoList.stream().collect(Collectors.toMap(StockWaitDetails::getId, Function.identity()));
-
-        //更新已出入库数量以及待出入库状态
-        stockWaitDetailsService.changeStockWaitStatus(stockWaitDto);
-        StockWait stockWait = getById(stockWaitDto.getId());
-
-        String victoriatouristJson = stockWait.getVictoriatouristJson();
-        JSONObject json = ObjectUtil.isNotEmpty(victoriatouristJson) ? JSONObject.parseObject(victoriatouristJson) : new JSONObject();
-        json.put("receiptWarehouseId", stockWaitDto.getWarehouseId());
-        stockWait.setVictoriatouristJson(JSONObject.toJSONString(json, JSONWriter.Feature.WriteLongAsString));
-        updateById(stockWait);
-
-        //如果业务类型是 采购到货入库 计算结存单价[结存单价=(结存单价*库存数量+采购单价*入库数量)/(库存数量+入库数量)]
-        if (StockWaitType.PURCHASE_ARRIVAL_IN.getDetailType().equals(stockWait.getBusinessType())) {
-            //获取待入库明细信息
-            List<Long> swdId = stockWaitDetailsDtoList.stream().map(StockWaitDetails::getId).collect(Collectors.toList());
-            List<StockWaitDetails> oldStockWaitDetailsList = stockWaitDetailsService.listByIds(swdId);
-            Map<Long, StockWaitDetails> oldStockWaitDetailsMap = oldStockWaitDetailsList.stream()
-                    .collect(Collectors.toMap(StockWaitDetails::getId, Function.identity()));
-
-            List<Long> productIds = oldStockWaitDetailsList.stream().map(StockWaitDetails::getProductId).collect(Collectors.toList());
-            //获取库存消息
-            Map<Long, Stock> stockMap = stockService.mapKEntity(Stock::getProductId, q -> q
-                    .eq(Stock::getWarehouseId, stockWaitDto.getWarehouseId())
-                    .in(Stock::getProductId, productIds));
-            //获取到货明细信息
-            List<Long> arrivalDetailsIds = oldStockWaitDetailsList.stream().map(StockWaitDetails::getBusinessDetailsId).collect(Collectors.toList());
-            List<ArrivalDetailPo> arrivalDetailList = myPurchaseService.getArrivalDetailList(arrivalDetailsIds);
-            Assert.notEmpty(arrivalDetailList, "到货明细信息为空");
-            Map<Long, ArrivalDetailPo> arrivalDetailPoMap = arrivalDetailList.stream().collect(Collectors.toMap(ArrivalDetailPo::getId, Function.identity()));
-            //获取采购明细信息
-            List<Long> purchaseDetailIds = arrivalDetailList.stream().map(ArrivalDetailPo::getPurchaseDetailId).collect(Collectors.toList());
-            List<PurchaseDetailPo> purchaseDetailList = myPurchaseService.getPurchaseDetailList(purchaseDetailIds);
-            Assert.notEmpty(arrivalDetailList, "采购明细信息为空");
-            Map<Long, PurchaseDetailPo> purchaseDetailPoMap = purchaseDetailList.stream().collect(Collectors.toMap(PurchaseDetailPo::getId, Function.identity()));
 
-            List<Stock> stockList1 = new ArrayList<>();
-            for (StockWaitDetails stockWaitDetails : stockWaitDetailsDtoList) {
-                StockWaitDetails oldStockWaitDetails = oldStockWaitDetailsMap.get(stockWaitDetails.getId());
-                Assert.notEmpty(oldStockWaitDetails, "查询不到待入库明细信息");
-                //获取到货信息
-                ArrivalDetailPo arrivalDetailPo = arrivalDetailPoMap.get(oldStockWaitDetails.getBusinessDetailsId());
-                Assert.notEmpty(arrivalDetailPo, "查询不到到货明细信息");
-                //获取采购信息
-                PurchaseDetailPo purchaseDetailPo = purchaseDetailPoMap.get(arrivalDetailPo.getPurchaseDetailId());
-                Assert.notEmpty(arrivalDetailPo, "查询不到采购明细信息");
-                //获取库存信息
-                Stock stock = stockMap.get(oldStockWaitDetails.getProductId());
-                if (ObjectUtil.isEmpty(stock)) {
-                    stock = new Stock();
-                    stock.setWarehouseId(stockWaitDto.getWarehouseId());
-                    stock.setProductId(oldStockWaitDetails.getProductId());
-                    stock.setQuantity(BigDecimal.ZERO);
-                    stock.setUnitPrice(BigDecimal.ZERO);
-                }
-                //计算结存单价 结存单价=(结存单价*库存数量+采购单价*入库数量)/(库存数量+入库数量)
-                BigDecimal multiply = stock.getUnitPrice().multiply(stock.getQuantity());//结存单价*库存数量
-                BigDecimal multiply1 = purchaseDetailPo.getPrice().multiply(stockWaitDetails.getQuantity());//采购单价*入库数量
-                BigDecimal add = multiply.add(multiply1);//(结存单价*库存数量+采购单价*入库数量)
-                BigDecimal add1 = stock.getQuantity().add(stockWaitDetails.getQuantity());//库存数量+入库数量
-                BigDecimal divide = add.divide(add1, 4, BigDecimal.ROUND_HALF_UP);//(结存单价*库存数量+采购单价*入库数量)/(库存数量+入库数量)
-                stock.setUnitPrice(divide);
-
-                stockList1.add(stock);
-            }
-            stockService.saveOrUpdateBatch(stockList1);
-        }
+        //获取需要的相关参数
+        Long warehouseId = dto.getWarehouseId();
+        //根据待出入库类型获取流水类型
+        JournalType stockJournalType = getStockJournalType(stockWait.getBusinessType());
+        Long productId = stockWaitDetails.getProductId();
+        BigDecimal inOutQuantity = dto.getQuantity();
+
+        //更新待出入库明细,出入库数量,状态
+        BigDecimal receiptQuantity = stockWaitDetails.getReceiptQuantity().add(inOutQuantity);
+        Integer stockWaitDetailsStatus = receiptQuantity.compareTo(stockWaitDetails.getQuantity()) > 0 ? 2 : 1;
+        stockWaitDetailsService.update(q -> q
+                .eq(StockWaitDetails::getId, stockWaitDetails.getId())
+                .set(StockWaitDetails::getReceiptQuantity, receiptQuantity)
+                .set(StockWaitDetails::getStatus, stockWaitDetailsStatus)
+        );
 
         //操作库存
-        List<Long> swdIds = stockWaitDetailsDtoList.stream().map(StockWaitDetails::getId).collect(Collectors.toList());
-        Map<Long, StockWaitDetails> oldStockWaitDetailsMap = stockWaitDetailsService.mapKEntity(StockWaitDetails::getId, q -> q.in(StockWaitDetails::getId, swdIds));
+        InOutBo inOutBo = new InOutBo(productId, inOutQuantity);
+        stockService.changeStock(Collections.singletonList(inOutBo), warehouseId, stockJournalType);
 
-        //创建出入库记录
-        Integer businessType = stockWait.getBusinessType();
+        //创建流水
         StockJournal stockJournal = new StockJournal();
-        stockJournal.setOpType(stockWait.getType());//根据待入库类型赋值操作类型 1入库 2出库
-        stockJournal.setType(getStockJournalType(businessType));
+        stockJournal.setOpType(stockWait.getType());//1入库2出库
+        stockJournal.setType(stockJournalType.getDetailType());
         stockJournal.setCode(stockWait.getType() == 1 ? CodeEnum.SIN_CODE.getCode() : CodeEnum.SOUT_CODE.getCode());
-        stockJournal.setWarehouseId(stockWaitDto.getWarehouseId());
-        stockJournal.setBusinessId(stockWaitDto.getId());
-
-        stockJournal.setExWarehousePerson(stockWaitDto.getExWarehousePerson());
-        stockJournal.setReceivingPerson(stockWaitDto.getReceivingPerson());
-
-        //保存出入库记录
+        stockJournal.setWarehouseId(warehouseId);
+        stockJournal.setBusinessId(stockWait.getId());
+        //入库人员信息
+        stockJournal.setExWarehousePerson(dto.getExWarehousePerson());
+        stockJournal.setReceivingPerson(dto.getReceivingPerson());
         stockJournalService.save(stockJournal);
-        List<StockJournalDetails> stockJournalDetailsList = new ArrayList<>();
-        for (StockWaitDetails waitDetails : stockWaitDetailsDtoList) {
-            StockWaitDetails temp = oldStockWaitDetailsMap.get(waitDetails.getId());
-            Stock stock = new Stock();
-            stock.setQuantity(waitDetails.getQuantity());
-            stock.setProductId(temp.getProductId());
-            stockList.add(stock);
-
-            //创建出入库明细
-            StockJournalDetails stockJournalDetails = new StockJournalDetailsDto();
-            stockJournalDetails.setStockJournalId(stockJournal.getId());
-            stockJournalDetails.setProductId(stock.getProductId());
-            stockJournalDetails.setQuantity(stock.getQuantity());
-            stockJournalDetails.setBusinessDetailsId(waitDetails.getId());
-            stockJournalDetailsList.add(stockJournalDetails);
-
+        //创建流水明细
+        StockJournalDetails stockJournalDetails = new StockJournalDetailsDto();
+        stockJournalDetails.setStockJournalId(stockJournal.getId());
+        stockJournalDetails.setProductId(productId);
+        stockJournalDetails.setQuantity(inOutQuantity);
+        stockJournalDetails.setBusinessDetailsId(stockWaitDetails.getId());
+        stockJournalDetailsService.save(stockJournalDetails);
+
+        //生产任务待出库(物料出库解冻冻结库存)
+        if (StockWaitType.PRODUCTION_TASK_OUT.getDetailType().equals(stockWait.getType())) {
+            //减少冻结库存
+            StockFrozen stockFrozen = stockFrozenService.getOne(q -> q.eq(StockFrozen::getProductId, productId));
+            stockFrozenService.update(q -> q
+                    .eq(StockFrozen::getId, stockFrozen.getId())
+                    .setSql("frozen_quantity - " + inOutQuantity)
+            );
         }
 
-        //操作库存根据待出入库类型来1入库2出库
-        stockService.ModifyInventory(stockWait.getType(), stockList, stockWaitDto.getWarehouseId());
-        //保存出入库明细
-        stockJournalDetailsService.saveBatch(stockJournalDetailsList);
+        //更新待入库状态(等待明细操作完执行)
+        long count = stockWaitDetailsService.count(q -> q
+                .eq(StockWaitDetails::getStockWaitId, stockWait.getId())
+                .ne(StockWaitDetails::getStatus, 2)
+        );
+        Integer StockWaitStatus = count > 0 ? 1 : 2;
+        this.update(q -> q.eq(StockWait::getId, stockWait.getId()).set(StockWait::getStatus, StockWaitStatus));
 
-        //如果是采购到货 创建待质检记录
-        if (StockWaitType.PURCHASE_ARRIVAL_IN.getDetailType().equals(businessType)) {
-            //创建采购到货入库记录
-            ArrivalStockRecords arrivalStockRecords = new ArrivalStockRecords();
-            arrivalStockRecords.setStockWaitId(stockWait.getId());
-            arrivalStockRecords.setWarehouseId(stockWaitDto.getWarehouseId());
-            arrivalStockRecords.setQualityStatus(0);
-            arrivalStockRecords.setArrivalCode(json.getString("arrivalCode"));//设置到货编码
-            arrivalStockRecordsService.save(arrivalStockRecords);
-            //创建入库明细
-            List<ArrivalStockRecordsDetails> arrivalStockRecordsDetailsList = new ArrayList<>();
-            for (StockWaitDetails waitDetails : stockWaitDetailsDtoList) {
-                ArrivalStockRecordsDetails arrivalStockRecordsDetails = new ArrivalStockRecordsDetails();
-                arrivalStockRecordsDetails.setArrivalStockRecordsId(arrivalStockRecords.getId());
-                arrivalStockRecordsDetails.setProductInfoId(waitDetails.getProductId());
-                arrivalStockRecordsDetails.setQuantity(waitDetails.getQuantity());
-                arrivalStockRecordsDetails.setQualityQuantity(BigDecimal.ZERO);
-                arrivalStockRecordsDetailsList.add(arrivalStockRecordsDetails);
-            }
-            arrivalStockRecordsDetailsService.saveBatch(arrivalStockRecordsDetailsList);
-        }
-
-        //销售订单出库
-        if (StockWaitType.SALE_ORDER_OUT.getDetailType().equals(businessType)) {
-            wmsService.outbounds(stockWaitDto);
-        }
-
-        //生产任务待出库
-        if (StockWaitType.PRODUCTION_TASK_OUT.getDetailType().equals(businessType)) {
-            for (StockWaitDetails stockWaitDetailsDto : stockWaitDetailsDtoList) {
-                StockWaitDetails stockWaitDetails = stockWaitDetailsMap.get(stockWaitDetailsDto.getId());
-
-                //获取产品id
-                StockWaitDetails byId = stockWaitDetailsService.getById(stockWaitDetails.getId());
-                //减少冻结库存
-                StockFrozen stockFrozen = stockFrozenService.getOne(q -> q.eq(StockFrozen::getProductId, byId.getProductId()));
-                BigDecimal subtract = stockFrozen.getFrozenQuantity().subtract(stockWaitDetailsDto.getQuantity());
-                stockFrozen.setFrozenQuantity(subtract);
-                stockFrozenService.updateById(stockFrozen);
-            }
-        }
+        //计算结存单价
+        //采购到货(单独计算结存单价)
     }
 
     @Override
@@ -401,28 +201,28 @@ public class StockWaitServiceImpl extends ServiceImpl<StockWaitMapper, StockWait
      * 根据待出入库业务类型获取对应的出入库记录类型
      */
     @Override
-    public Integer getStockJournalType(int businessType) {
+    public JournalType getStockJournalType(int businessType) {
         if (StockWaitType.BORDER_OF_LINE_IN.getDetailType().equals(businessType)) {
             //线边回仓库
-            return JournalType.BORDER_OF_LINE_IN.getDetailType();
+            return JournalType.BORDER_OF_LINE_IN;
         } else if (StockWaitType.COMPLETION_IN.getDetailType().equals(businessType)) {
             //完工入库
-            return JournalType.COMPLETION_IN.getDetailType();
+            return JournalType.COMPLETION_IN;
         } else if (StockWaitType.PURCHASE_ARRIVAL_IN.getDetailType().equals(businessType)) {
             //采购到货
-            return JournalType.PURCHASE_ARRIVAL_IN.getDetailType();
+            return JournalType.PURCHASE_ARRIVAL_IN;
         } else if (StockWaitType.BACK_OUT.getDetailType().equals(businessType)) {
             //退货出货
-            return JournalType.BACK_OUT.getDetailType();
+            return JournalType.BACK_OUT;
         } else if (StockWaitType.SALE_ORDER_OUT.getDetailType().equals(businessType)) {
             //销售订单出库
-            return JournalType.SALES_OUT.getDetailType();
+            return JournalType.SALES_OUT;
         } else if (StockWaitType.PRODUCTION_TASK_OUT.getDetailType().equals(businessType)) {
             //生产任务待出库
-            return JournalType.PRODUCTION_TASK_OUT.getDetailType();
-        }else if (StockWaitType.WORD_ORDER_OUT.getDetailType().equals(businessType)) {
+            return JournalType.PRODUCTION_TASK_OUT;
+        } else if (StockWaitType.WORD_ORDER_OUT.getDetailType().equals(businessType)) {
             //工单待出库出库
-            return JournalType.WORD_ORDER_OUT.getDetailType();
+            return JournalType.WORD_ORDER_OUT;
         } else {
             throw new ServiceException("未知待出入库业务类型");
         }