luqingyang
2023-11-01 85ad0a996a588d87f4ff589ae9a83b714d8b2c7f
fix:代码调整
2个文件已添加
11个文件已修改
618 ■■■■ 已修改文件
consum-base/src/main/java/com/consum/base/controller/BaseGoodsTemplateController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/controller/LWhFormOutputController.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/pojo/LWhFormOutputExtend.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/service/BaseGoodsTemplateServiceImpl.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/service/LWhFormInventoryCoreService.java 321 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/service/LWhFormOutputCoreService.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/service/LWhFormOutputServiceImpl.java 78 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/service/LWhFormProcureCoreService.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/service/LWhFormScrappedServiceImpl.java 105 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-model-pojo/src/main/java/com/consum/model/po/LWhFormInventory.java 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-model-pojo/src/main/java/com/consum/model/po/LWhFormInventory_mapper.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-model-pojo/src/main/java/com/consum/model/po/LWhProcureModel.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-model-pojo/src/main/java/com/consum/model/po/LWhProcureModel_mapper.java 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/controller/BaseGoodsTemplateController.java
@@ -151,8 +151,8 @@
     * @Date 2023/10/30
     */
    @GetMapping("/selectByCategoryId")
    public ResponseValue querybyCategoryId(Long categoryId) {
        List<BaseGoodsTemplate> list = this.baseGoodsTemplateService.querybyCategoryId(categoryId);
    public ResponseValue queryByCategoryId(Long categoryId) {
        List<BaseGoodsTemplate> list = this.baseGoodsTemplateService.queryByCategoryId(categoryId);
        return ResponseValue.success(list);
    }
consum-base/src/main/java/com/consum/base/controller/LWhFormOutputController.java
@@ -4,6 +4,7 @@
import com.consum.base.pojo.*;
import com.consum.base.service.BaseCategoryServiceImpl;
import com.consum.base.service.LWhFormOutputServiceImpl;
import com.consum.base.service.LWhProcureModelService;
import com.consum.model.po.*;
import com.iplatform.model.po.S_user_core;
import com.walker.db.page.GenericPager;
@@ -29,6 +30,8 @@
    @Autowired
    private LWhFormOutputServiceImpl lWhFormOutputService;
    @Autowired
    private LWhProcureModelService lWhProcureModelService;
    /**
     * @Description 新增出库单
@@ -62,15 +65,15 @@
        GenericPager genericPager = lWhFormOutputService.queryFormOutputList(param);
        List<LWhFormOutput> datas = genericPager.getDatas();
        ArrayList<LWhFormProcureExtend> newDatas = new ArrayList<>();
        ArrayList<LWhFormOutputExtend> newDatas = new ArrayList<>();
        if (!CollectionUtils.isEmpty(datas)) {
            datas.forEach(item -> {
                // 查询型号数量
                LWhProcureModel lWhProcureModel = new LWhProcureModel();
                lWhProcureModel.setBusinessType(3);
                lWhProcureModel.setBusinessId(item.getId());
                List<LWhProcureModel> models = lWhFormOutputService.select(lWhProcureModel);
                LWhFormProcureExtend formProcureExtend = new LWhFormProcureExtend();
                List<LWhProcureModel> models = lWhProcureModelService.select(lWhProcureModel);
                LWhFormOutputExtend formProcureExtend = new LWhFormOutputExtend();
                BeanUtils.copyProperties(item, formProcureExtend);
                formProcureExtend.setModels(models);
                newDatas.add(formProcureExtend);
consum-base/src/main/java/com/consum/base/pojo/LWhFormOutputExtend.java
@@ -1,19 +1,21 @@
package com.consum.base.pojo;
import com.consum.model.po.LWhFormOutput;
import com.consum.model.po.LWhFormProcure;
import com.consum.model.po.LWhProcureModel;
import java.util.List;
/**
 * @ClassName LWhFormProcureExtend
 * @Author cy
 * @Date 2023/10/27
 * @Description
 * @Author 卢庆阳
 * @Date 2023/10/30
 */
public class LWhFormOutputExtend extends LWhFormProcure {
 * @Version 1.0
 **/
public class LWhFormOutputExtend extends LWhFormOutput {
    private List<LWhProcureModel> models;
    private List<LWhFormProcureGoodsParams> procureGoods;
    public List<LWhProcureModel> getModels() {
        return models;
@@ -23,11 +25,4 @@
        this.models = models;
    }
    public List<LWhFormProcureGoodsParams> getProcureGoods() {
        return procureGoods;
    }
    public void setProcureGoods(List<LWhFormProcureGoodsParams> procureGoods) {
        this.procureGoods = procureGoods;
    }
}
consum-base/src/main/java/com/consum/base/service/BaseGoodsTemplateServiceImpl.java
@@ -233,7 +233,7 @@
     * @param modelId
     * @return
     */
    private static String QUERY_GOODSINFO_BY_MODELID = "SELECT model.MODEL_NAME modelName,model.UNIT,temp.id goodsId, temp.GOODS_CODE goodsCode,temp.GOODS_NAME goodsName,temp.CLASSIFICATION classification FROM BASE_GOODS_MODELS model LEFT JOIN BASE_GOODS_TEMPLATE temp ON model.GOODS_TEMPLATES_ID=temp.id WHERE 1=1 ";
    private static String QUERY_GOODSINFO_BY_MODELID = "SELECT model.MODEL_NAME modelName,model.UNIT,temp.id goodsId, temp.GOODS_CODE goodsCode,temp.GOODS_NAME goodsName,temp.CLASSIFICATION classification,temp.CATEGORY_ID categoryId FROM BASE_GOODS_MODELS model LEFT JOIN BASE_GOODS_TEMPLATE temp ON model.GOODS_TEMPLATES_ID=temp.id WHERE 1=1 ";
    public Map<String, Object> queryGoodsInfoByModelId(Long modelId) {
        StringBuilder sqlStr = new StringBuilder(QUERY_GOODSINFO_BY_MODELID);
@@ -289,10 +289,9 @@
     * @Author 卢庆阳
     * @Date 2023/10/30
     */
    public List<BaseGoodsTemplate> querybyCategoryId(Long categoryId) {
    public List<BaseGoodsTemplate> queryByCategoryId(Long categoryId) {
        BaseGoodsTemplate goodsTemplate = new BaseGoodsTemplate();
        goodsTemplate.setCategoryId(categoryId);
        List<BaseGoodsTemplate> select = this.select(goodsTemplate);
        return select;
        return this.select(goodsTemplate);
    }
}
consum-base/src/main/java/com/consum/base/service/LWhFormInventoryCoreService.java
New file
@@ -0,0 +1,321 @@
package com.consum.base.service;
import com.consum.base.core.CodeGeneratorEnum;
import com.consum.base.core.CodeGeneratorService;
import com.consum.base.core.WhBusinessEnum;
import com.consum.base.util.IdUtil;
import com.consum.model.po.*;
import com.iplatform.model.po.S_user_core;
import com.walker.infrastructure.utils.NumberGenerator;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import org.springframework.util.CollectionUtils;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
 * @ClassName LWhFormInventoryCoreService
 * @Author cy
 * @Date 2023/11/1
 * @Description
 * @Version 1.0
 **/
@Slf4j
@Service
public class LWhFormInventoryCoreService {
    private LWhFormInventoryGoodsServiceImpl lWhFormInventoryGoods;
    private LWhFormOutputCoreService lWhFormOutputCoreService;
    private CodeGeneratorService codeGeneratorService;
    private LWhFormProcureService lWhFormProcureService;
    private BaseWarehouseServiceImpl baseWarehouseService;
    private LWhFormProcureGoodsService lWhFormProcureGoodsService;
    private LWhProcureModelService lWhProcureModelService;
    private BaseGoodsTemplateServiceImpl baseGoodsTemplateService;
    private LWhGoodsService lWhGoodsService;
    private LWhFormInventoryServiceImpl 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
    ) {
        this.lWhFormInventoryGoods = lWhFormInventoryGoods;
        this.lWhFormOutputCoreService = lWhFormOutputCoreService;
        this.codeGeneratorService = codeGeneratorService;
        this.lWhFormProcureService = lWhFormProcureService;
        this.baseWarehouseService = baseWarehouseService;
        this.lWhFormProcureGoodsService = lWhFormProcureGoodsService;
        this.lWhProcureModelService = lWhProcureModelService;
        this.baseGoodsTemplateService = baseGoodsTemplateService;
        this.lWhGoodsService = lWhGoodsService;
        this.lWhFormInventoryService = lWhFormInventoryService;
        this.lWhFormProcureCoreService = lWhFormProcureCoreService;
        this.lWhFormOutputService = lWhFormOutputService;
    }
    /**
     * 根据 盘点单 生成 出库单 和 入库单
     * 盘点单中 盘盈物品生成入库单,盘亏生成出库单
     *
     * @param whformInventoryId 盘点单id
     * @return status true/false
     * errMsg 错误消息
     */
    @Transactional(rollbackFor = Exception.class)
    public String createInOutFormByInventoryId(Long whformInventoryId, S_user_core currentUser, FinSysTenantUser sysInfo) {
        LWhFormInventory lWhFormInventory = lWhFormInventoryService.get(new LWhFormInventory(whformInventoryId));
        if (lWhFormInventory == null) {
//            rtnMap.put("status", false);
//            rtnMap.put("errMsg", "没有找到盘点单");
            return "没有找到盘点单";
        }
        if (lWhFormInventory.getStates() != 1) {
//            rtnMap.put("status", false);
//            rtnMap.put("errMsg", "请检查盘点单状态");
            return "请检查盘点单状态";
        }
        List<LWhFormInventoryGoods> lWhFormInventoryGoods = this.lWhFormInventoryGoods.getByInventoryId(whformInventoryId);
        if (CollectionUtils.isEmpty(lWhFormInventoryGoods)) {
//            rtnMap.put("status", false);
//            rtnMap.put("errMsg", "没有找到盘点单结果物品");
            return "没有找到盘点单结果物品";
        }
        Map<Integer, List<LWhFormInventoryGoods>> inventoryGoodsMap = lWhFormInventoryGoods.stream()
                .filter(goods -> goods.getInventoryResult() == 2 || goods.getInventoryResult() == 3)
                .collect(Collectors.groupingBy(LWhFormInventoryGoods::getInventoryResult));
        if (CollectionUtils.isEmpty(lWhFormInventoryGoods)) {
//            rtnMap.put("status", true);
            return null;
        }
        Long warehouseId = lWhFormInventory.getWarehouseId();
        Long stopTime = lWhFormInventory.getStopTime();
        Map<String, Object> inOutMap = new HashMap<>();
        for (Map.Entry<Integer, List<LWhFormInventoryGoods>> entry : inventoryGoodsMap.entrySet()) {
            //盘点结果(1=正常;2=盘盈;3=盘亏)
            Integer inventoryResult = entry.getKey();
            List<LWhFormInventoryGoods> inventoryGoods = entry.getValue();
            if (inventoryResult == 2) {
                // 创建入库单并入库
                // 返回入库单号
                Map<String, Object> rkMap = createInFormByInventoryId(warehouseId, stopTime, inventoryGoods, currentUser);
                if (rkMap == null) {
                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
//                    throw new RuntimeException("创建入库单失败");
                    log.error("创建入库单失败");
//                    rtnMap.put("status", false);
//                    rtnMap.put("errMsg", "创建入库单失败");
                    return "创建入库单失败";
                }
                Long inFormByInventoryId = (Long) inOutMap.get("inId");
                inOutMap.putAll(rkMap);
                String errMsg = lWhFormProcureCoreService.doProcure(inFormByInventoryId, currentUser);
                if (errMsg != null) {
                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
//                    throw new RuntimeException(errMsg);
                    log.error("创建入库单失败");
//                    rtnMap.put("status", false);
//                    rtnMap.put("errMsg", "创建入库单失败");
                    return "创建入库单失败";
                }
            } else {
                // 创建出库单并出库
                Map<String, Object> ckMap = createOutFormByInventoryId(warehouseId, stopTime, inventoryGoods, currentUser, sysInfo);
                if (ckMap == null) {
                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
//                    throw new RuntimeException("创建出库单失败");
                    log.error("创建入库单失败");
//                    rtnMap.put("status", false);
//                    rtnMap.put("errMsg", "创建入库单失败");
                    return "创建入库单失败";
                }
                inOutMap.putAll(ckMap);
                Long lWhFormOutputId = (Long) inOutMap.get("outId");
                //2.根据出库单出库
                Long lWarehouseFlowId = lWhFormOutputCoreService.outFormByTransId(lWhFormOutputId, currentUser, stopTime);
                if (lWarehouseFlowId == null) {
                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
//                    throw new RuntimeException("创建出库单失败");
                    log.error("创建入库单失败");
//                    rtnMap.put("status", false);
//                    rtnMap.put("errMsg", "创建入库单失败");
                    return "创建入库单失败";
                }
            }
        }
        //
        lWhFormInventory = new LWhFormInventory(whformInventoryId);
        lWhFormInventory.setStates(2);
        lWhFormInventory.setInWarehouseFormId((Long) inOutMap.get("inId"));
        lWhFormInventory.setInBusinessFormCode((String) inOutMap.get("inCode"));
        lWhFormInventory.setOutWarehouseFormId((Long) inOutMap.get("outId"));
        lWhFormInventory.setOutBusinessFormCode((String) inOutMap.get("outCode"));
        lWhFormInventoryService.update(lWhFormInventory);
        return null;
    }
    /**
     * 根据信息创建入库单
     *
     * @param warehouseId 仓库ID
     * @param procureTime 采购时间
     * @param currentUser
     */
    private Map<String, Object> createInFormByInventoryId(Long warehouseId, Long procureTime, List<LWhFormInventoryGoods> inventoryGoodsList,
                                                          S_user_core currentUser) {
        if (CollectionUtils.isEmpty(inventoryGoodsList)) {
            return null;
        }
        Long whFormProcureId = NumberGenerator.getLongSequenceNumber();
        BaseWarehouse baseWarehouse = baseWarehouseService.getById(warehouseId);
        LWhFormProcure lWhFormProcure = new LWhFormProcure();
        lWhFormProcure.setId(whFormProcureId);
        String inCode = codeGeneratorService.createCodeByPrefix(CodeGeneratorEnum.Procure_Warehouse.getValue(), 10);
        lWhFormProcure.setBusinessFormCode(inCode);
        lWhFormProcure.setWarehouseId(warehouseId);
        lWhFormProcure.setWarehouseName(baseWarehouse.getWarehouseName());
        lWhFormProcure.setBuyerId(currentUser.getId());
        lWhFormProcure.setBuyerName(currentUser.getNick_name());
        lWhFormProcure.setProcureTime(procureTime);
        lWhFormProcure.setProcureDoc(null);
        lWhFormProcure.setBuyType(2);
        lWhFormProcure.setStates(1);
        lWhFormProcure.setAgencyId(baseWarehouse.getAgencyId());
        lWhFormProcure.setAgencyName(baseWarehouse.getAgencyName());
        int result = lWhFormProcureService.insert(lWhFormProcure);
        if (result == 0) {
            return null;
        }
        ArrayList<LWhFormProcureGoods> procureGoodList = new ArrayList<>();
        ArrayList<LWhProcureModel> whProcureModeLlist = new ArrayList<>();
        for (LWhFormInventoryGoods inventoryGoods : inventoryGoodsList) {
            Long baseGoodsModelsId = inventoryGoods.getBaseGoodsModelsId();
            Long baseGoodsTemplateId = inventoryGoods.getBaseGoodsTemplateId();
            //查询型号信息
            Map<String, Object> tempGoodsInfo = baseGoodsTemplateService.queryGoodsInfoByModelId(baseGoodsModelsId);
            Long baseCategoryId = Long.valueOf(tempGoodsInfo.get("categoryid") + "");
            LWhFormProcureGoods procureGood = new LWhFormProcureGoods();
            long fromProcureGoodsId = NumberGenerator.getLongSequenceNumber();
            procureGood.setId(fromProcureGoodsId);
            procureGood.setWhFormProcureId(whFormProcureId);
            procureGood.setBaseCategoryId(baseCategoryId);
            procureGood.setBaseGoodsTemplateId(baseGoodsTemplateId);
            procureGood.setGoodsTemplateName(null);
            procureGood.setSupplier(null);
            procureGood.setSort(null);
            Integer counts = inventoryGoods.getErrorCounts();
            if (counts == null || counts <= 0) {
                continue;
            }
            // 查询型号库存
            int goodsModelNum = lWhGoodsService.queryGoodsModelNum(0, warehouseId, baseGoodsModelsId, (short) 1, null);
            LWhProcureModel model = new LWhProcureModel();
            model.setId(NumberGenerator.getLongSequenceNumber());
            model.setFromProcureGoodsId(fromProcureGoodsId);
            model.setBusinessType(WhBusinessEnum.CAIGOU.getValue() + 0);
            model.setBusinessId(whFormProcureId);
            model.setBaseGoodsModelsId(baseGoodsModelsId);
            model.setPrice(0l);
            model.setCounts(counts);
            model.setWorehouseCount(goodsModelNum);
            model.setSupplier(null);
            whProcureModeLlist.add(model);
            procureGoodList.add(procureGood);
        }
        lWhFormProcureGoodsService.insertBatch(procureGoodList);
        lWhProcureModelService.insertBatch(whProcureModeLlist);
        HashMap<String, Object> rtnMap = new HashMap<>();
        rtnMap.put("inId", whFormProcureId);
        rtnMap.put("inCode", inCode);
        return rtnMap;
    }
    /**
     * 根据信息创建出库单
     *
     * @param warehouseId 仓库ID
     * @param procureTime 出库时间
     * @param currentUser
     */
    private Map<String, Object> createOutFormByInventoryId(Long warehouseId, Long procureTime, List<LWhFormInventoryGoods> inventoryGoodsList,
                                                           S_user_core currentUser, FinSysTenantUser sysInfo) {
        if (CollectionUtils.isEmpty(inventoryGoodsList)) {
            return null;
        }
        //1.新增出库单记录
        LWhFormOutput lWhFormOutput = new LWhFormOutput();
        //出入库id
        long lWhFormOutputId = IdUtil.generateId();
        lWhFormOutput.setId(lWhFormOutputId);
        lWhFormOutput.setWarehouseId(warehouseId);
        //根据仓库id查询仓库
        BaseWarehouse warehouse = this.baseWarehouseService.getById(warehouseId);
        if (warehouse == null) {
            log.error("仓库id不存在");
            return null;
        }
        lWhFormOutput.setWarehouseName(warehouse.getWarehouseName());
        String outCode = codeGeneratorService.createCodeByPrefix(CodeGeneratorEnum.OutPut_Warehouse.getValue(), 10);
        lWhFormOutput.setOutputCode(outCode);
        lWhFormOutput.setOutputName("盘点出库");
        lWhFormOutput.setAgencyId(Long.valueOf(sysInfo.getTenantId()));
        lWhFormOutput.setAgencyName(sysInfo.getTenantName());
        lWhFormOutput.setOperatorId(sysInfo.getId());
        lWhFormOutput.setOperatorName(sysInfo.getUserName());
        lWhFormOutput.setDealTime(procureTime);
        lWhFormOutput.setStates(1);
        int flag1 = lWhFormOutputService.insert(lWhFormOutput);
        if (flag1 != 1) {
            return null;
        }
        for (LWhFormInventoryGoods inventoryGoods : inventoryGoodsList) {
            Long baseGoodsModelsId = inventoryGoods.getBaseGoodsModelsId();
            Integer counts = inventoryGoods.getErrorCounts();
            if (counts == null || counts <= 0) {
                continue;
            }
            //根据物品型号查询物品库存
            int goodsNum = lWhGoodsService.queryGoodsModelNum(0, warehouseId, baseGoodsModelsId, (short) 1, null);
            //新增L_WH_PROCURE_MODEL记录
            LWhProcureModel lWhProcureModel = new LWhProcureModel();
            lWhProcureModel.setId(IdUtil.generateId());
            lWhProcureModel.setBusinessType(3);
            lWhProcureModel.setBaseGoodsModelsId(baseGoodsModelsId);
            lWhProcureModel.setCounts(counts);
            lWhProcureModel.setWorehouseCount(goodsNum);
            lWhProcureModelService.insert(lWhProcureModel);
        }
        HashMap<String, Object> rtnMap = new HashMap<>();
        rtnMap.put("outId", lWhFormOutputId);
        rtnMap.put("outCode", outCode);
        return rtnMap;
    }
}
consum-base/src/main/java/com/consum/base/service/LWhFormOutputCoreService.java
@@ -279,6 +279,12 @@
        if (flowInsertFlag == 0) {
            return null;
        }
        // 向出库单 插入 进出库流水总表ID
        lWhFormOutput = new LWhFormOutput(outWarehouseFormId);
        lWhFormOutput.setStates(2);
        lWhFormOutput.setWarehouseFlowId(lWarehouseFlowId);
        lWhFormOutputService.update(lWhFormOutput);
        return lWarehouseFlowId;
    }
consum-base/src/main/java/com/consum/base/service/LWhFormOutputServiceImpl.java
@@ -1,5 +1,7 @@
package com.consum.base.service;
import com.consum.base.core.CodeGeneratorEnum;
import com.consum.base.core.CodeGeneratorService;
import com.consum.base.core.param.BaseWarehouseParam1;
import com.consum.base.pojo.LWhFormOutputParam;
import com.consum.base.pojo.LWhProcureModelParams;
@@ -29,6 +31,8 @@
@Service
public class LWhFormOutputServiceImpl extends BaseServiceImpl {
    @Autowired
    private CodeGeneratorService codeGeneratorService;
    @Autowired
    private BaseWarehouseServiceImpl baseWarehouseService;
    @Autowired
@@ -142,84 +146,13 @@
     * @Author 卢庆阳
     * @Date 2023/10/27
     */
//    public int add(LWhFormOutputParam param, S_user_core currentUser, FinSysTenantUser sysInfo) {
//        //1.新增出库单记录
//        LWhFormOutput lWhFormOutput = new LWhFormOutput();
//        //出入库id
//        long lWhFormOutputId = IdUtil.generateId();
//        lWhFormOutput.setId(lWhFormOutputId);
//        Long warehouseId = param.getWarehouseId();
//        lWhFormOutput.setWarehouseId(warehouseId);
//        //根据仓库id查询仓库
//        BaseWarehouse warehouse = this.baseWarehouseService.getById(warehouseId);
//        if (warehouse == null) {
//            log.error("仓库id不存在");
//            return 0;
//        }
//        lWhFormOutput.setWarehouseName(warehouse.getWarehouseName());
//        lWhFormOutput.setOutputCode(BaseWarehouseParam1.In_OutPutTypeEnum.Fragmentary_Output.getValue() + "");
//        lWhFormOutput.setOutputName("零星出库");
//        lWhFormOutput.setAgencyId(Long.valueOf(sysInfo.getTenantId()));
//        lWhFormOutput.setAgencyName(sysInfo.getTenantName());
//        lWhFormOutput.setOperatorId(sysInfo.getId());
//        lWhFormOutput.setOperatorName(sysInfo.getUserName());
//        long dateTimeNumber = DateUtils.getDateTimeNumber(System.currentTimeMillis());
//        lWhFormOutput.setDealTime(dateTimeNumber);
//        lWhFormOutput.setStates(1);
//        int flag1 = this.insert(lWhFormOutput);
//
//        //4.新增l_wh_goods_record记录
//        List<LWhGoodsRecord> recordList = param.getList();
//        if (CollectionUtils.isEmpty(recordList)) {
//            log.error("规格型号为空");
//            return 0;
//        }
//        int flag5 = 0;
//        for (LWhGoodsRecord record : recordList) {
//            //根据物品型号查询物品库存
//            int goodsNum = this.lWhGoodsService.queryGoodsModelNum(0,warehouseId, record.getBaseGoodsModelsId(), (short) 1, null);
//
//            //5.新增L_WH_PROCURE_MODEL记录
//            LWhProcureModel lWhProcureModel = new LWhProcureModel();
//            lWhProcureModel.setId(IdUtil.generateId());
//            lWhProcureModel.setBusinessType(3);
//            lWhProcureModel.setBaseGoodsModelsId(record.getBaseGoodsModelsId());
//            lWhProcureModel.setCounts(record.getThisCount());
//            lWhProcureModel.setWorehouseCount(goodsNum);
//            int res = this.lWhProcureModelService.insert(lWhProcureModel);
//            flag5 += res;
//        }
//
//        //2.根据出库单出库
//        Long lWarehouseFlowId = this.lWhFormOutputCoreService.outFormByTransId(lWhFormOutput.getId(), currentUser, dateTimeNumber);
//        //3.向出库单 插入 进出库流水总表ID
//        int flag3 = 0;
//        if (flag1 > 0) {
//            LWhFormOutput lWhFormOutput1 = new LWhFormOutput(lWhFormOutputId);
//            lWhFormOutput1.setWarehouseFlowId(lWarehouseFlowId);
//            flag3 = this.update(lWhFormOutput1);
//        }
//
//        //如果有一条记录新增失败,则回滚
//        if (flag1 == 0 || flag3 == 0 || flag5 != recordList.size()) {
//            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
//            return 0;
//        }
//
//        return 1;
//    }
    /**
     * @Description 新增出库单
     * @Author 卢庆阳
     * @Date 2023/10/27
     */
    public int add(LWhFormOutputParam param, S_user_core currentUser, FinSysTenantUser sysInfo) {
        //1.新增出库单记录
        LWhFormOutput lWhFormOutput = new LWhFormOutput();
        //出入库id
        long lWhFormOutputId = IdUtil.generateId();
        lWhFormOutput.setId(lWhFormOutputId);
        lWhFormOutput.setBusinessFormCode(codeGeneratorService.createBusinessFormCode(CodeGeneratorEnum.OutPut_Warehouse));
        Long warehouseId = param.getWarehouseId();
        lWhFormOutput.setWarehouseId(warehouseId);
        //根据仓库id查询仓库
@@ -252,6 +185,7 @@
            lWhProcureModel.setBusinessType(3);
            lWhProcureModel.setBusinessId(lWhFormOutputId);
            lWhProcureModel.setBaseGoodsModelsId(model.getBaseGoodsModelsId());
            //lWhProcureModel.se
            lWhProcureModel.setCounts(model.getCounts());
            //根据物品型号查询物品库存
            int goodsNum = this.lWhGoodsService.queryGoodsModelNum(0,warehouseId, model.getBaseGoodsModelsId(), (short) 1, null);
consum-base/src/main/java/com/consum/base/service/LWhFormProcureCoreService.java
@@ -68,6 +68,7 @@
        int flowInsertFlag = lWarehouseFlowService.buyInsertWareFlow(goodsModelNum, lWhFormProcure, warehouseFlow);
        if (flowInsertFlag == 1) {
            // 更新采购单【L_WH_FORM_PROCURE】
            whFormProcure = new LWhFormProcure(whFormProcureId);
            whFormProcure.setStates(2);
            whFormProcure.setLWarehouseFlowId(lWarehouseFlowId);
            whFormProcure.setIncomeId(userId);
consum-base/src/main/java/com/consum/base/service/LWhFormScrappedServiceImpl.java
New file
@@ -0,0 +1,105 @@
package com.consum.base.service;
import com.consum.base.core.CodeGeneratorEnum;
import com.consum.base.core.CodeGeneratorService;
import com.consum.base.pojo.LWhFormScrappedGoodsParams;
import com.consum.base.pojo.LWhFormScrappedParam;
import com.consum.base.pojo.LWhProcureModelParams;
import com.consum.base.util.IdUtil;
import com.consum.model.po.*;
import com.iplatform.model.po.S_user_core;
import com.walker.jdbc.service.BaseServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import java.util.ArrayList;
import java.util.List;
/**
 * @Description 报废单
 * @Author 卢庆阳
 * @Date 2023/11/1
 */
@Service
public class LWhFormScrappedServiceImpl extends BaseServiceImpl {
    @Autowired
    private CodeGeneratorService codeGeneratorService;
    @Autowired
    private BaseWarehouseServiceImpl baseWarehouseService;
    @Autowired
    private FinSysTenantDepartmentServiceImpl departmentService;
    @Autowired
    private LWhGoodsService lWhGoodsService;
    @Autowired
    private LWhFormScrappedGoodsService scrappedGoodsService;
    /**
     * 新增
     * @param param
     * @param sysInfo
     * @param operatorUser
     * @return
     */
    //1.新增报废单
    //2.新增报废单物品
    public int add(LWhFormScrappedParam param, FinSysTenantUser sysInfo, S_user_core operatorUser) {
        //1.新增报废单记录
        LWhFormScrapped lWhFormScrapped = new LWhFormScrapped();
        //调拨单id
        long lWhFormTransferId = IdUtil.generateId();
        lWhFormScrapped.setId(lWhFormTransferId);
        lWhFormScrapped.setBusinessFormCode(codeGeneratorService.createBusinessFormCode(CodeGeneratorEnum.Scrapped));
        lWhFormScrapped.setWarehouseType(0);
        Long warehouseId = param.getWarehouseId();
        lWhFormScrapped.setWarehouseId(warehouseId);
        //根据仓库id查询仓库
        BaseWarehouse warehouse = this.baseWarehouseService.getById(warehouseId);
        if (warehouse == null) {
            log.error("仓库不存在");
            return 0;
        }
        lWhFormScrapped.setWarehouseName(warehouse.getWarehouseName());
        lWhFormScrapped.setAgencyId(Long.valueOf(sysInfo.getTenantId()));
        lWhFormScrapped.setAgencyName(sysInfo.getTenantName());
        lWhFormScrapped.setOperatorId(sysInfo.getSysUserId());
        lWhFormScrapped.setOperatorName(sysInfo.getUserName());
        lWhFormScrapped.setDealTime(param.getDealTime());
        lWhFormScrapped.setStates(0);
        //根据部门id查询部门
        FinSysTenantDepartment department = this.departmentService.getById(sysInfo.getSysDeptId());
        if (department != null) {
            lWhFormScrapped.setDepartmentId(sysInfo.getSysDeptId());
            lWhFormScrapped.setDepartmentName(department.getName());
        }
        int flag1 = this.insert(lWhFormScrapped);
        if (flag1 == 0) {
            log.error("新增报废单失败");
            return 0;
        }
        //2.新增报废单物品记录
        List<LWhFormScrappedGoodsParams> scrappedGoodsParamList = param.getScrappedGoodsList();
        List<LWhFormScrappedGoods> scrappedGoodsList = new ArrayList<>();
        for (LWhFormScrappedGoodsParams params : scrappedGoodsParamList) {
            LWhFormScrappedGoods scrappedGoods = new LWhFormScrappedGoods();
            scrappedGoods.setId(IdUtil.generateId());
            //根据物品型号查询物品库存
            int goodsNum = this.lWhGoodsService.queryGoodsModelNum(0,warehouseId, scrappedGoods.getBaseGoodsModelsId(), (short) 1, null);
            if (params.getCounts() > goodsNum) {
                log.error("报废数量大于库存数量");
                return 0;
            }
            scrappedGoods.setCounts(params.getCounts());
            scrappedGoods.setScrappedCode(params.getScrappedCode());
            //TODO 报废原因
            scrappedGoodsList.add(scrappedGoods);
        }
        int flag2 = this.scrappedGoodsService.insert(scrappedGoodsList);
        if (flag2 != scrappedGoodsList.size()) {
            log.error("新增报废单物品记录");
            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
            return 0;
        }
        return 1;
    }
}
consum-model-pojo/src/main/java/com/consum/model/po/LWhFormInventory.java
@@ -96,7 +96,7 @@
    @JsonIgnore
    protected boolean isset_inWarehouseFormId = false;
    private Long inBusinessFormCode = null;
    private String inBusinessFormCode = null;
    @JsonIgnore
    protected boolean isset_inBusinessFormCode = false;
@@ -104,7 +104,7 @@
    @JsonIgnore
    protected boolean isset_outWarehouseFormId = false;
    private Long outBusinessFormCode = null;
    private String outBusinessFormCode = null;
    @JsonIgnore
    protected boolean isset_outBusinessFormCode = false;
@@ -409,18 +409,18 @@
        return this.inWarehouseFormId == null;
    }
    public Long getInBusinessFormCode() {
    public String getInBusinessFormCode() {
        return this.inBusinessFormCode;
    }
    public void setInBusinessFormCode(Long inBusinessFormCode) {
    public void setInBusinessFormCode(String inBusinessFormCode) {
        this.inBusinessFormCode = inBusinessFormCode;
        this.isset_inBusinessFormCode = true;
    }
    @JsonIgnore
    public boolean isEmptyInBusinessFormCode() {
        return this.inBusinessFormCode == null;
        return this.inBusinessFormCode == null || this.inBusinessFormCode.length() == 0;
    }
    public Long getOutWarehouseFormId() {
@@ -437,18 +437,18 @@
        return this.outWarehouseFormId == null;
    }
    public Long getOutBusinessFormCode() {
    public String getOutBusinessFormCode() {
        return this.outBusinessFormCode;
    }
    public void setOutBusinessFormCode(Long outBusinessFormCode) {
    public void setOutBusinessFormCode(String outBusinessFormCode) {
        this.outBusinessFormCode = outBusinessFormCode;
        this.isset_outBusinessFormCode = true;
    }
    @JsonIgnore
    public boolean isEmptyOutBusinessFormCode() {
        return this.outBusinessFormCode == null;
        return this.outBusinessFormCode == null || this.outBusinessFormCode.length() == 0;
    }
    /**
consum-model-pojo/src/main/java/com/consum/model/po/LWhFormInventory_mapper.java
@@ -7,6 +7,8 @@
import com.walker.jdbc.sqlgen.InsertBuilder;
import com.walker.jdbc.sqlgen.SelectBuilder;
import com.walker.jdbc.sqlgen.UpdateBuilder;
import com.walker.jdbc.util.StringUtils;
import org.springframework.jdbc.core.RowMapper;
import java.sql.ResultSet;
@@ -500,11 +502,7 @@
        }
        columnIndex = resultSetUtils.findColumn(rs, LWhFormInventory_mapper.InBusinessFormCode);
        if (columnIndex > 0) {
            if (rs.getBigDecimal(columnIndex) == null) {
                l_wh_form_inventory.setInBusinessFormCode(null);
            } else {
                l_wh_form_inventory.setInBusinessFormCode(rs.getLong(columnIndex));
            }
            l_wh_form_inventory.setInBusinessFormCode(rs.getString(columnIndex));
        }
        columnIndex = resultSetUtils.findColumn(rs, LWhFormInventory_mapper.OutWarehouseFormId);
        if (columnIndex > 0) {
@@ -516,11 +514,7 @@
        }
        columnIndex = resultSetUtils.findColumn(rs, LWhFormInventory_mapper.OutBusinessFormCode);
        if (columnIndex > 0) {
            if (rs.getBigDecimal(columnIndex) == null) {
                l_wh_form_inventory.setOutBusinessFormCode(null);
            } else {
                l_wh_form_inventory.setOutBusinessFormCode(rs.getLong(columnIndex));
            }
            l_wh_form_inventory.setOutBusinessFormCode(rs.getString(columnIndex));
        }
        return l_wh_form_inventory;
    }
consum-model-pojo/src/main/java/com/consum/model/po/LWhProcureModel.java
@@ -36,6 +36,10 @@
    @JsonIgnore
    protected boolean isset_baseGoodsModelsId = false;
    private String baseGoodsModelsName = null;
    @JsonIgnore
    protected boolean isset_baseGoodsModelsName = false;
    private Long price = null;
    @JsonIgnore
    protected boolean isset_price = false;
@@ -143,6 +147,20 @@
        return this.baseGoodsModelsId == null;
    }
    public String getBaseGoodsModelsName() {
        return this.baseGoodsModelsName;
    }
    public void setBaseGoodsModelsName(String baseGoodsModelsName) {
        this.baseGoodsModelsName = baseGoodsModelsName;
        this.isset_baseGoodsModelsName = true;
    }
    @JsonIgnore
    public boolean isEmptyBaseGoodsModelsName() {
        return this.baseGoodsModelsName == null || this.baseGoodsModelsName.length() == 0;
    }
    public Long getPrice() {
        return this.price;
    }
@@ -210,6 +228,7 @@
                .append("businessType=").append(this.businessType)
                .append("businessId=").append(this.businessId)
                .append("baseGoodsModelsId=").append(this.baseGoodsModelsId)
                .append("baseGoodsModelsName=").append(this.baseGoodsModelsName)
                .append("price=").append(this.price)
                .append("counts=").append(this.counts)
                .append("worehouseCount=").append(this.worehouseCount)
@@ -243,6 +262,9 @@
        if (this.isset_baseGoodsModelsId) {
            l_wh_procure_model.setBaseGoodsModelsId(this.getBaseGoodsModelsId());
        }
        if (this.isset_baseGoodsModelsName) {
            l_wh_procure_model.setBaseGoodsModelsName(this.getBaseGoodsModelsName());
        }
        if (this.isset_price) {
            l_wh_procure_model.setPrice(this.getPrice());
        }
consum-model-pojo/src/main/java/com/consum/model/po/LWhProcureModel_mapper.java
@@ -32,6 +32,7 @@
    public static final String BusinessType = "business_type";
    public static final String BusinessId = "business_id";
    public static final String BaseGoodsModelsId = "base_goods_models_id";
    public static final String BaseGoodsModelsName = "base_goods_models_name";
    public static final String Price = "price";
    public static final String Counts = "counts";
    public static final String WorehouseCount = "worehouse_count";
@@ -60,6 +61,9 @@
        }
        if (lWhProcureModel.isset_baseGoodsModelsId) {
            this.setBaseGoodsModelsId(lWhProcureModel.getBaseGoodsModelsId());
        }
        if (lWhProcureModel.isset_baseGoodsModelsName) {
            this.setBaseGoodsModelsName(lWhProcureModel.getBaseGoodsModelsName());
        }
        if (lWhProcureModel.isset_price) {
            this.setPrice(lWhProcureModel.getPrice());
@@ -120,6 +124,7 @@
        ib.set(BusinessType, this.getBusinessType(), this.isset_businessType);
        ib.set(BusinessId, this.getBusinessId(), this.isset_businessId);
        ib.set(BaseGoodsModelsId, this.getBaseGoodsModelsId(), this.isset_baseGoodsModelsId);
        ib.set(BaseGoodsModelsName, this.getBaseGoodsModelsName(), this.isset_baseGoodsModelsName);
        ib.set(Price, this.getPrice(), this.isset_price);
        ib.set(Counts, this.getCounts(), this.isset_counts);
        ib.set(WorehouseCount, this.getWorehouseCount(), this.isset_worehouseCount);
@@ -137,6 +142,7 @@
        ub.set(BusinessType, this.getBusinessType(), this.isset_businessType);
        ub.set(BusinessId, this.getBusinessId(), this.isset_businessId);
        ub.set(BaseGoodsModelsId, this.getBaseGoodsModelsId(), this.isset_baseGoodsModelsId);
        ub.set(BaseGoodsModelsName, this.getBaseGoodsModelsName(), this.isset_baseGoodsModelsName);
        ub.set(Price, this.getPrice(), this.isset_price);
        ub.set(Counts, this.getCounts(), this.isset_counts);
        ub.set(WorehouseCount, this.getWorehouseCount(), this.isset_worehouseCount);
@@ -155,6 +161,7 @@
        ub.set(BusinessType, this.getBusinessType(), this.isset_businessType);
        ub.set(BusinessId, this.getBusinessId(), this.isset_businessId);
        ub.set(BaseGoodsModelsId, this.getBaseGoodsModelsId(), this.isset_baseGoodsModelsId);
        ub.set(BaseGoodsModelsName, this.getBaseGoodsModelsName(), this.isset_baseGoodsModelsName);
        ub.set(Price, this.getPrice(), this.isset_price);
        ub.set(Counts, this.getCounts(), this.isset_counts);
        ub.set(WorehouseCount, this.getWorehouseCount(), this.isset_worehouseCount);
@@ -172,6 +179,7 @@
        ub.set(BusinessType, this.getBusinessType(), this.isset_businessType);
        ub.set(BusinessId, this.getBusinessId(), this.isset_businessId);
        ub.set(BaseGoodsModelsId, this.getBaseGoodsModelsId(), this.isset_baseGoodsModelsId);
        ub.set(BaseGoodsModelsName, this.getBaseGoodsModelsName(), this.isset_baseGoodsModelsName);
        ub.set(Price, this.getPrice(), this.isset_price);
        ub.set(Counts, this.getCounts(), this.isset_counts);
        ub.set(WorehouseCount, this.getWorehouseCount(), this.isset_worehouseCount);
@@ -223,7 +231,7 @@
     */
    @Override
    public SqlAndParameters<Map<String, Object>> getSelectSql_(String where, Map<String, Object> parameters) {
        return new SqlAndParameters<>("select id, from_procure_goods_id, business_type, business_id, base_goods_models_id, price, counts, worehouse_count, supplier from " + this.getTableName_() + " " + where, parameters);
        return new SqlAndParameters<>("select id, from_procure_goods_id, business_type, business_id, base_goods_models_id, base_goods_models_name, price, counts, worehouse_count, supplier from " + this.getTableName_() + " " + where, parameters);
    }
    /**
@@ -231,7 +239,7 @@
     */
    @Override
    public SqlAndParameters<Object[]> getSelectSql_(String where, Object[] parameters) {
        return new SqlAndParameters<>("select id, from_procure_goods_id, business_type, business_id, base_goods_models_id, price, counts, worehouse_count, supplier from " + this.getTableName_() + " " + where, parameters);
        return new SqlAndParameters<>("select id, from_procure_goods_id, business_type, business_id, base_goods_models_id, base_goods_models_name, price, counts, worehouse_count, supplier from " + this.getTableName_() + " " + where, parameters);
    }
    /**
@@ -300,6 +308,10 @@
                l_wh_procure_model.setBaseGoodsModelsId(rs.getLong(columnIndex));
            }
        }
        columnIndex = resultSetUtils.findColumn(rs, LWhProcureModel_mapper.BaseGoodsModelsName);
        if (columnIndex > 0) {
            l_wh_procure_model.setBaseGoodsModelsName(rs.getString(columnIndex));
        }
        columnIndex = resultSetUtils.findColumn(rs, LWhProcureModel_mapper.Price);
        if (columnIndex > 0) {
            if (rs.getBigDecimal(columnIndex) == null) {