futian.liu
2023-12-01 79a57e0844bdd3b5f06ebaac807a0896624be70f
consum-base/src/main/java/com/consum/base/service/LWhFormInventoryCoreService.java
@@ -10,6 +10,7 @@
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import org.springframework.util.CollectionUtils;
@@ -22,14 +23,15 @@
/**
 * @ClassName LWhFormInventoryCoreService
 * @Date 2023/11/1
 * @Description
 * @Version 1.0
 **/
@Slf4j
@Service
@Transactional(propagation = Propagation.REQUIRED)
public class LWhFormInventoryCoreService {
    private LWhFormInventoryGoodsServiceImpl lWhFormInventoryGoods;
    private LWhFormOutputCoreService lWhFormOutputCoreService;
    private CodeGeneratorService codeGeneratorService;
@@ -73,12 +75,10 @@
    }
    /**
     * 根据 盘点单 生成 出库单 和 入库单
     * 盘点单中 盘盈物品生成入库单,盘亏生成出库单
     * 根据 盘点单 生成 出库单 和 入库单 盘点单中 盘盈物品生成入库单,盘亏生成出库单
     *
     * @param whformInventoryId 盘点单id
     * @return status true/false
     * errMsg 错误消息
     * @return status true/false errMsg 错误消息
     */
    @Transactional(rollbackFor = Exception.class)
    public String createInOutFormByInventoryId(Long whformInventoryId, S_user_core currentUser, FinSysTenantUser sysInfo) {
@@ -127,8 +127,8 @@
//                    rtnMap.put("errMsg", "创建入库单失败");
                    return "创建入库单失败";
                }
                Long inFormByInventoryId = (Long) inOutMap.get("inId");
                inOutMap.putAll(rkMap);
                Long inFormByInventoryId = (Long) inOutMap.get("inId");
                String errMsg = lWhFormProcureCoreService.doProcure(inFormByInventoryId, currentUser);
                if (errMsg != null) {
                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
@@ -152,7 +152,7 @@
                inOutMap.putAll(ckMap);
                Long lWhFormOutputId = (Long) inOutMap.get("outId");
                //2.根据出库单出库
                Long lWarehouseFlowId = lWhFormOutputCoreService.outFormByTransId(lWhFormOutputId,WhBusinessEnum.CAIGOU, currentUser, stopTime);
                Long lWarehouseFlowId = lWhFormOutputCoreService.outFormByTransId(lWhFormOutputId, WhBusinessEnum.PANDIAN, currentUser, stopTime);
                if (lWarehouseFlowId == null) {
                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
//                    throw new RuntimeException("创建出库单失败");
@@ -233,7 +233,7 @@
                continue;
            }
            // 查询型号库存
            int goodsModelNum = lWhGoodsService.queryGoodsModelNum(0, warehouseId, baseGoodsModelsId, (short) 1, null);
            int goodsModelNum = lWhGoodsService.queryGoodsModelNum(0, warehouseId, baseGoodsModelsId, 1, null);
            LWhProcureModel model = new LWhProcureModel();
            model.setId(NumberGenerator.getLongSequenceNumber());
            model.setFromProcureGoodsId(fromProcureGoodsId);
@@ -273,6 +273,7 @@
        //出入库id
        long lWhFormOutputId = IdUtil.generateId();
        lWhFormOutput.setId(lWhFormOutputId);
        lWhFormOutput.setOutWarehouseType(0);
        lWhFormOutput.setWarehouseId(warehouseId);
        //根据仓库id查询仓库
        BaseWarehouse warehouse = this.baseWarehouseService.getById(warehouseId);
@@ -297,6 +298,7 @@
        if (flag1 != 1) {
            return null;
        }
        ArrayList<LWhProcureModel> lWhProcureModels = new ArrayList<>();
        for (LWhFormInventoryGoods inventoryGoods : inventoryGoodsList) {
            Long baseGoodsModelsId = inventoryGoods.getBaseGoodsModelsId();
            Integer counts = inventoryGoods.getErrorCounts();
@@ -304,15 +306,20 @@
                continue;
            }
            //根据物品型号查询物品库存
            int goodsNum = lWhGoodsService.queryGoodsModelNum(0, warehouseId, baseGoodsModelsId, (short) 1, null);
            int goodsNum = lWhGoodsService.queryGoodsModelNum(0, warehouseId, baseGoodsModelsId, 1, null);
            //新增L_WH_PROCURE_MODEL记录
            LWhProcureModel lWhProcureModel = new LWhProcureModel();
            lWhProcureModel.setId(IdUtil.generateId());
            lWhProcureModel.setBusinessType(3);
            lWhProcureModel.setBusinessType(WhBusinessEnum.CHUKU.getValue() + 0);
            lWhProcureModel.setBusinessId(lWhFormOutputId);
            lWhProcureModel.setBaseGoodsModelsId(baseGoodsModelsId);
            lWhProcureModel.setCounts(counts);
            lWhProcureModel.setWorehouseCount(goodsNum);
            lWhProcureModelService.insert(lWhProcureModel);
//            lWhProcureModelService.insert(lWhProcureModel);
            lWhProcureModels.add(lWhProcureModel);
        }
        if (!CollectionUtils.isEmpty(lWhProcureModels)) {
            lWhProcureModelService.insertBatch(lWhProcureModels);
        }
        HashMap<String, Object> rtnMap = new HashMap<>();
        rtnMap.put("outId", lWhFormOutputId);