futian.liu
2023-12-02 8e41786892a4bd7cff2d63bde8cb0636cdb0650c
consum-base/src/main/java/com/consum/base/service/LWhFormInventoryCoreService.java
@@ -22,6 +22,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;
@@ -34,34 +35,35 @@
 **/
@Slf4j
@Service
@Transactional(propagation = Propagation.REQUIRED)
public class LWhFormInventoryCoreService {
    private LWhFormInventoryGoodsServiceImpl lWhFormInventoryGoods;
    private LWhFormOutputCoreService lWhFormOutputCoreService;
    private CodeGeneratorService codeGeneratorService;
    private LWhFormProcureService lWhFormProcureService;
    private BaseWarehouseServiceImpl baseWarehouseService;
    private BaseWarehouseService baseWarehouseService;
    private LWhFormProcureGoodsService lWhFormProcureGoodsService;
    private LWhProcureModelService lWhProcureModelService;
    private BaseGoodsTemplateServiceImpl baseGoodsTemplateService;
    private BaseGoodsTemplateService baseGoodsTemplateService;
    private LWhGoodsService lWhGoodsService;
    private LWhFormInventoryServiceImpl lWhFormInventoryService;
    private LWhFormInventoryService lWhFormInventoryService;
    private LWhFormProcureCoreService lWhFormProcureCoreService;
    private LWhFormOutputServiceImpl lWhFormOutputService;
    @Autowired
    public LWhFormInventoryCoreService(LWhFormInventoryGoodsServiceImpl lWhFormInventoryGoods,
        LWhFormOutputCoreService lWhFormOutputCoreService,
        CodeGeneratorService codeGeneratorService,
        LWhFormProcureService lWhFormProcureService,
        BaseWarehouseServiceImpl baseWarehouseService,
        LWhFormProcureGoodsService lWhFormProcureGoodsService,
        LWhProcureModelService lWhProcureModelService,
        BaseGoodsTemplateServiceImpl baseGoodsTemplateService,
        LWhGoodsService lWhGoodsService,
        LWhFormInventoryServiceImpl lWhFormInventoryService,
        LWhFormProcureCoreService lWhFormProcureCoreService,
        LWhFormOutputServiceImpl lWhFormOutputService
                                       LWhFormOutputCoreService lWhFormOutputCoreService,
                                       CodeGeneratorService codeGeneratorService,
                                       LWhFormProcureService lWhFormProcureService,
                                       BaseWarehouseService baseWarehouseService,
                                       LWhFormProcureGoodsService lWhFormProcureGoodsService,
                                       LWhProcureModelService lWhProcureModelService,
                                       BaseGoodsTemplateService baseGoodsTemplateService,
                                       LWhGoodsService lWhGoodsService,
                                       LWhFormInventoryService lWhFormInventoryService,
                                       LWhFormProcureCoreService lWhFormProcureCoreService,
                                       LWhFormOutputServiceImpl lWhFormOutputService
    ) {
        this.lWhFormInventoryGoods = lWhFormInventoryGoods;
@@ -104,8 +106,8 @@
            return "没有找到盘点单结果物品";
        }
        Map<Integer, List<LWhFormInventoryGoods>> inventoryGoodsMap = lWhFormInventoryGoods.stream()
            .filter(goods -> goods.getInventoryResult() == 2 || goods.getInventoryResult() == 3)
            .collect(Collectors.groupingBy(LWhFormInventoryGoods::getInventoryResult));
                .filter(goods -> goods.getInventoryResult() == 2 || goods.getInventoryResult() == 3)
                .collect(Collectors.groupingBy(LWhFormInventoryGoods::getInventoryResult));
        if (CollectionUtils.isEmpty(lWhFormInventoryGoods)) {
//            rtnMap.put("status", true);
            return null;
@@ -131,8 +133,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();
@@ -156,7 +158,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,null);
                if (lWarehouseFlowId == null) {
                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
//                    throw new RuntimeException("创建出库单失败");
@@ -187,7 +189,7 @@
     * @param currentUser
     */
    private Map<String, Object> createInFormByInventoryId(Long warehouseId, Long procureTime, List<LWhFormInventoryGoods> inventoryGoodsList,
        S_user_core currentUser) {
                                                          S_user_core currentUser) {
        if (CollectionUtils.isEmpty(inventoryGoodsList)) {
            return null;
        }
@@ -239,7 +241,7 @@
            // 查询型号库存
            int goodsModelNum = lWhGoodsService.queryGoodsModelNum(0, warehouseId, baseGoodsModelsId, 1, null);
            LWhProcureModel model = new LWhProcureModel();
            model.setId(NumberGenerator.getLongSequenceNumber());
            model.setId(IdUtil.generateId());
            model.setFromProcureGoodsId(fromProcureGoodsId);
            model.setBusinessType(WhBusinessEnum.CAIGOU.getValue() + 0);
            model.setBusinessId(whFormProcureId);
@@ -268,7 +270,7 @@
     * @param currentUser
     */
    private Map<String, Object> createOutFormByInventoryId(Long warehouseId, Long procureTime, List<LWhFormInventoryGoods> inventoryGoodsList,
        S_user_core currentUser, FinSysTenantUser sysInfo) {
                                                           S_user_core currentUser, FinSysTenantUser sysInfo) {
        if (CollectionUtils.isEmpty(inventoryGoodsList)) {
            return null;
        }
@@ -277,6 +279,7 @@
        //出入库id
        long lWhFormOutputId = IdUtil.generateId();
        lWhFormOutput.setId(lWhFormOutputId);
        lWhFormOutput.setOutWarehouseType(0);
        lWhFormOutput.setWarehouseId(warehouseId);
        //根据仓库id查询仓库
        BaseWarehouse warehouse = this.baseWarehouseService.getById(warehouseId);
@@ -301,6 +304,7 @@
        if (flag1 != 1) {
            return null;
        }
        ArrayList<LWhProcureModel> lWhProcureModels = new ArrayList<>();
        for (LWhFormInventoryGoods inventoryGoods : inventoryGoodsList) {
            Long baseGoodsModelsId = inventoryGoods.getBaseGoodsModelsId();
            Integer counts = inventoryGoods.getErrorCounts();
@@ -312,11 +316,16 @@
            //新增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);