futian.liu
2023-12-05 87ff2a60723119530d071f6ed6b16fc2f3f023ca
consum-base/src/main/java/com/consum/base/service/impl/LWhFormScrappedCoreService.java
File was renamed from consum-base/src/main/java/com/consum/base/service/LWhFormScrappedCoreService.java
@@ -1,4 +1,4 @@
package com.consum.base.service;
package com.consum.base.service.impl;
import java.util.ArrayList;
import java.util.List;
@@ -15,6 +15,12 @@
import com.consum.base.core.service.LWhWarningCoreServiceImpl;
import com.consum.base.core.utils.IdUtil;
import com.consum.base.core.utils.LockManage;
import com.consum.base.service.BaseGoodsTemplateService;
import com.consum.base.service.GoodsBaseServiceImpl;
import com.consum.base.service.LWarehouseFlowService;
import com.consum.base.service.LWhFormScrappedGoodsService;
import com.consum.base.service.LWhGoodsRecordService;
import com.consum.base.service.LWhGoodsService;
import com.consum.model.po.LWarehouseFlow;
import com.consum.model.po.LWhFormScrapped;
import com.consum.model.po.LWhFormScrappedGoods;
@@ -47,12 +53,9 @@
    @Autowired
    public LWhFormScrappedCoreService(GoodsBaseServiceImpl goodsBaseService,
                                      LWhFormScrappedGoodsService lWhFormScrappedGoodsService,
                                      BaseGoodsTemplateService baseGoodsTemplateService,
                                      LWhGoodsService lWhGoodsService,
                                      LWhGoodsRecordDetailsService lWhGoodsRecordDetailsService,
                                      LWhGoodsRecordService lWhGoodsRecordServiceImpl,
                                      LWarehouseFlowService lWarehouseFlowService,
        LWhFormScrappedGoodsService lWhFormScrappedGoodsService, BaseGoodsTemplateService baseGoodsTemplateService,
        LWhGoodsService lWhGoodsService, LWhGoodsRecordDetailsService lWhGoodsRecordDetailsService,
        LWhGoodsRecordService lWhGoodsRecordServiceImpl, LWarehouseFlowService lWarehouseFlowService,
                                      LWhWarningCoreServiceImpl lWhWarningCoreService) {
//        this.lWhFormScrappedService = lWhFormScrappedService;
        this.lWhFormScrappedGoodsService = lWhFormScrappedGoodsService;
@@ -64,7 +67,6 @@
        this.goodsBaseService = goodsBaseService;
        this.lWhWarningCoreService = lWhWarningCoreService;
    }
    /**
     * 根据 报废单【L_WH_FORM_SCRAPPED】 报废物品
@@ -105,8 +107,8 @@
        // 按型号分组
        ArrayList<Long> allChangModelList = new ArrayList<>();
        Map<Long, List<LWhFormScrappedGoods>> modelGroup = formScrappedGoods.stream()
                .collect(Collectors.groupingBy(LWhFormScrappedGoods::getBaseGoodsModelsId));
        Map<Long, List<LWhFormScrappedGoods>> modelGroup =
            formScrappedGoods.stream().collect(Collectors.groupingBy(LWhFormScrappedGoods::getBaseGoodsModelsId));
        for (Map.Entry<Long, List<LWhFormScrappedGoods>> entry : modelGroup.entrySet()) {
            //规格型号编号
            Long baseGoodsModelsId = entry.getKey();
@@ -148,20 +150,27 @@
                    int goodsModelNum = 0;
                    List<Long> srappedGoodsIds = null;
                    if (warehouseType == null || warehouseType == 0) {
                        srappedGoodsIds = lWhGoodsService.queryScrappedGoodsIds(warehouseType, warehouseId, null, null, baseGoodsModelsId, (short) 1, counts);
                        srappedGoodsIds = lWhGoodsService.queryScrappedGoodsIds(warehouseType, warehouseId, null, null,
                            baseGoodsModelsId, (short)1, counts);
                    } else {
                        //使用人员名称
                        String userName = formScrappedGood.getUserName();
                        // 根据分发单、规格型号编号、使用人员名称,进行报废
                        srappedGoodsIds = lWhGoodsService.queryScrappedGoodsIds(warehouseType, warehouseId, transBusinessId, userName, baseGoodsModelsId,
                                (short) 2, counts);
                        srappedGoodsIds = lWhGoodsService.queryScrappedGoodsIds(warehouseType, warehouseId,
                            transBusinessId, userName, baseGoodsModelsId, (short)2, counts);
                    }
                    if (CollectionUtils.isEmpty(srappedGoodsIds) || srappedGoodsIds.size() < counts) {
                        log.error("要报废的物品数量不足!");
                        // 手动回滚
                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                        throw new RuntimeException("报废失败!型号数量不足");
                    }
                    // 通过物品id查询所有商品的总金额
                    long amount = lWhGoodsService.queryGoodsPriceById(srappedGoodsIds);
                    LWhFormScrappedGoods lWhFormScrappedGoods = new LWhFormScrappedGoods(formScrappedGood.getId());
                    lWhFormScrappedGoods.setTotalAmount((int)amount);
                    lWhFormScrappedGoodsService.update(lWhFormScrappedGoods);
                    whGoodsRecord.setInitialCount(goodsModelNum);
                    whGoodsRecord.setEndCount(goodsModelNum - counts);
@@ -202,7 +211,8 @@
        goodsBaseService.update(lWhFormScrapped);
        //当库存变动时调用该方法
        lWhWarningCoreService.updateKuCun(Convert.toShort(warehouseType,(short) 0), warehouseId, allChangModelList, null, dealTime);
        lWhWarningCoreService.updateKuCun(Convert.toShort(warehouseType, (short)0), warehouseId, allChangModelList,
            null, dealTime);
        return lWarehouseFlowId;
    }