luqingyang
2023-11-01 e80a199894f078f3b0ead5b052ea3ce5d2b9d96e
库存盘点 相关代码
4个文件已添加
12个文件已修改
726 ■■■■ 已修改文件
consum-base/src/main/java/com/consum/base/controller/BaseGoodsTemplateController.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/controller/BaseWarehouseController.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/controller/LWarehouseFlowController.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/controller/LWhFormInventoryController.java 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/controller/LWhFormOutputController.java 30 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/controller/LWhFormScrappedController.java 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/core/CodeGeneratorEnum.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/pojo/LWhFormInventoryParam.java 134 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/pojo/LWhFormInventoryVo.java 124 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/pojo/LWhFormOutputParam.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/pojo/LWhFormScrappedGoodsParams.java 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/pojo/LWhFormScrappedParam.java 85 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/pojo/LWhFormTransferParam.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/service/BaseGoodsTemplateServiceImpl.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/service/LWhFormInventoryServiceImpl.java 86 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/service/LWhFormOutputServiceImpl.java 118 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/controller/BaseGoodsTemplateController.java
@@ -145,6 +145,19 @@
        return ResponseValue.success(list);
    }
    /**
     * @Description  根据分类id查询物品模板
     * @Author 卢庆阳
     * @Date 2023/10/30
     */
    @GetMapping("/selectByCategoryId")
    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/BaseWarehouseController.java
@@ -138,5 +138,6 @@
    }
}
consum-base/src/main/java/com/consum/base/controller/LWarehouseFlowController.java
@@ -26,6 +26,11 @@
    @Resource
    private LWarehouseFlowService lWarehouseFlowService;
    /**
     * 出入库明细
     * @param param
     * @return
     */
    @GetMapping("/list")
    public ResponseValue queryFormProcureList(LWarehouseFlowParam param) {
        S_user_core currentUser = this.getCurrentUser();
consum-base/src/main/java/com/consum/base/controller/LWhFormInventoryController.java
@@ -15,6 +15,7 @@
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Map;
/**
 * @Description 盘点
@@ -153,7 +154,19 @@
        return num > 0 ? ResponseValue.success(1) : ResponseValue.error("暂存失败!");
    }
    /**
     * @Description 异常明细列表查询
     * @Author 卢庆阳
     * @Date 2023/11/1
     */
    @GetMapping("/list/PdDetail")
    public ResponseValue queryPdDetailList(LWhFormInventoryParam param) {
        FinSysTenantUser sysInfo = this.getSysInfo();
        if (sysInfo == null) {
            return ResponseValue.error("登录用户信息不存在");
        }
        GenericPager<Map<String, Object>> pager = this.lWhFormInventoryService.queryPdDetailList(param, sysInfo);
        return ResponseValue.success(pager);
    }
}
consum-base/src/main/java/com/consum/base/controller/LWhFormOutputController.java
@@ -99,31 +99,13 @@
        LWhFormOutputExtend formOutputExtend = new LWhFormOutputExtend();
        BeanUtils.copyProperties(lWhFormOutput, formOutputExtend);
        // 物品
        LWhFormProcureGoods lWhFormProcureGoods = new LWhFormProcureGoods();
        lWhFormProcureGoods.setWhFormProcureId(id);
        List<LWhFormProcureGoods> formProcureGoods = lWhFormOutputService.select(lWhFormProcureGoods);
        // 查询型号数量
        LWhProcureModel lWhProcureModel = new LWhProcureModel();
        lWhProcureModel.setBusinessType(3);
        lWhProcureModel.setBusinessId(id);
        List<LWhProcureModel> models = lWhFormOutputService.select(lWhProcureModel);
        formOutputExtend.setModels(models);
        Field fieldModels = null;
        try {
            fieldModels = LWhFormProcureGoodsParams.class.getDeclaredField("models");
        } catch (NoSuchFieldException e) {
            e.printStackTrace();
        }
        fieldModels.setAccessible(true);
        ArrayList<LWhFormProcureGoodsParams> procureGoodsParams = new ArrayList<>();
        for (LWhFormProcureGoods formProcureGood : formProcureGoods) {
            LWhFormProcureGoodsParams lWhFormProcureGoodsParams = new LWhFormProcureGoodsParams();
            BeanUtils.copyProperties(formProcureGood, lWhFormProcureGoodsParams);
            // 查询型号数量
            LWhProcureModel lWhProcureModel = new LWhProcureModel();
            lWhProcureModel.setFromProcureGoodsId(formProcureGood.getId());
            List<LWhProcureModel> models = lWhFormOutputService.select(lWhProcureModel);
            fieldModels.set(lWhFormProcureGoodsParams, models);
            procureGoodsParams.add(lWhFormProcureGoodsParams);
        }
        formOutputExtend.setProcureGoods(procureGoodsParams);
        return ResponseValue.success("查询成功!", formOutputExtend);
    }
consum-base/src/main/java/com/consum/base/controller/LWhFormScrappedController.java
New file
@@ -0,0 +1,47 @@
package com.consum.base.controller;
import com.consum.base.BaseController;
import com.consum.base.pojo.LWhFormInventoryParam;
import com.consum.base.pojo.LWhFormScrappedParam;
import com.consum.base.service.LWhFormScrappedServiceImpl;
import com.consum.model.po.FinSysTenantUser;
import com.iplatform.model.po.S_user_core;
import com.walker.web.ResponseValue;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
 * @Description 报废单
 * @Author 卢庆阳
 * @Date 2023/11/1
 */
@RestController
@RequestMapping("/pc/l/wh/form/scrapped")
public class LWhFormScrappedController extends BaseController {
    @Autowired
    private LWhFormScrappedServiceImpl lWhFormScrappedService;
    /**
     * @Description  新增报废单
     * @Author 卢庆阳
     * @Date 2023/11/1
     */
    @PostMapping("/add")
    public ResponseValue add(@RequestBody LWhFormScrappedParam param) {
        //根据盘点人id查询盘点人
        S_user_core operatorUser = this.getUser(param.getOperatorId());
        FinSysTenantUser sysInfo = this.getSysInfo();
        int result = this.lWhFormScrappedService.add(param, sysInfo,operatorUser);
        if (result > 0) return ResponseValue.success(1);
        return ResponseValue.error("新增失败!");
    }
}
consum-base/src/main/java/com/consum/base/core/CodeGeneratorEnum.java
@@ -24,6 +24,11 @@
    Transfer("DB"),
    /**
     * 报废
     */
    Scrapped("BF"),
    /**
     * 盘点单编码,简写:PD
     */
    Inventory("PD"),
consum-base/src/main/java/com/consum/base/pojo/LWhFormInventoryParam.java
@@ -17,7 +17,7 @@
     */
    private Long warehouseId;
    /**
     * 盘点人
     * 操作人
     */
    private Long operatorId;
    /**
@@ -36,6 +36,66 @@
     * 盘点时间 结束
     */
    private Long inventoryDateEnd;
    /**
     * 机构id
     */
    private Long agencyId;
    /**
     * 物品名称
     */
    private String goodsTemplateName;
    /**
     * 规格型号id
     */
    private Long baseGoodsModelsId;
    /**
     * 类型(出入库类型) 2=盘盈;3=盘亏
     */
    private Integer inventoryResult;
    /**
     * 出入库单号
     */
    private Long warehouseFormCode;
    /**
     * 盘点人
     */
    private String operatorName;
    /**
     * 时间(盘点结束时间) 开始
     */
    private Long stopTimeStart;
    /**
     * 时间(盘点结束时间) 结束
     */
    private Long stopTimeEnd;
    private Integer pageSize = 10;
    private Integer pageNum = 1;
    public Integer getPageSize() {
        return pageSize;
    }
    public void setPageSize(Integer pageSize) {
        this.pageSize = pageSize;
    }
    public Integer getPageNum() {
        return pageNum;
    }
    public void setPageNum(Integer pageNum) {
        this.pageNum = pageNum;
    }
    public String getOperatorName() {
        return operatorName;
    }
    public void setOperatorName(String operatorName) {
        this.operatorName = operatorName;
    }
    public Long getId() {
        return id;
@@ -43,14 +103,6 @@
    public void setId(Long id) {
        this.id = id;
    }
    public String getBusinessFormCode() {
        return businessFormCode;
    }
    public void setBusinessFormCode(String businessFormCode) {
        this.businessFormCode = businessFormCode;
    }
    public String getBusinessFormName() {
@@ -108,4 +160,68 @@
    public void setInventoryDateEnd(Long inventoryDateEnd) {
        this.inventoryDateEnd = inventoryDateEnd;
    }
    public Long getAgencyId() {
        return agencyId;
    }
    public void setAgencyId(Long agencyId) {
        this.agencyId = agencyId;
    }
    public String getGoodsTemplateName() {
        return goodsTemplateName;
    }
    public void setGoodsTemplateName(String goodsTemplateName) {
        this.goodsTemplateName = goodsTemplateName;
    }
    public Long getBaseGoodsModelsId() {
        return baseGoodsModelsId;
    }
    public void setBaseGoodsModelsId(Long baseGoodsModelsId) {
        this.baseGoodsModelsId = baseGoodsModelsId;
    }
    public Integer getInventoryResult() {
        return inventoryResult;
    }
    public void setInventoryResult(Integer inventoryResult) {
        this.inventoryResult = inventoryResult;
    }
    public void setBusinessFormCode(String businessFormCode) {
        this.businessFormCode = businessFormCode;
    }
    public Long getStopTimeStart() {
        return stopTimeStart;
    }
    public void setStopTimeStart(Long stopTimeStart) {
        this.stopTimeStart = stopTimeStart;
    }
    public Long getStopTimeEnd() {
        return stopTimeEnd;
    }
    public void setStopTimeEnd(Long stopTimeEnd) {
        this.stopTimeEnd = stopTimeEnd;
    }
    public String getBusinessFormCode() {
        return businessFormCode;
    }
    public Long getWarehouseFormCode() {
        return warehouseFormCode;
    }
    public void setWarehouseFormCode(Long warehouseFormCode) {
        this.warehouseFormCode = warehouseFormCode;
    }
}
consum-base/src/main/java/com/consum/base/pojo/LWhFormInventoryVo.java
New file
@@ -0,0 +1,124 @@
package com.consum.base.pojo;
public class LWhFormInventoryVo{
    /**
     * 仓库名称
     */
    private String warehouseName;
    /**
     * 物品名称
     */
    private String goodsTemplateName;
    /**
     * 规格型号名称
     */
    private String baseGoodsModelsName;
    /**
     * 类型(出入库类型) 2=盘盈;3=盘亏
     */
    private Integer inventoryResult;
    /**
     * 库存数量
     */
    private Integer initCounts;
    /**
     * 盘点数量
     */
    private Integer inventoryCounts;
    /**
     * 差异数量
     */
    private Integer errorCounts;
    /**
     * 机构名称
     */
    private String agencyName;
    /**
     * 操作人
     */
    private String operatorName;
    /**
     * 结束时间
     */
    private Long stopTime;
    public String getWarehouseName() {
        return warehouseName;
    }
    public void setWarehouseName(String warehouseName) {
        this.warehouseName = warehouseName;
    }
    public String getGoodsTemplateName() {
        return goodsTemplateName;
    }
    public void setGoodsTemplateName(String goodsTemplateName) {
        this.goodsTemplateName = goodsTemplateName;
    }
    public String getBaseGoodsModelsName() {
        return baseGoodsModelsName;
    }
    public void setBaseGoodsModelsName(String baseGoodsModelsName) {
        this.baseGoodsModelsName = baseGoodsModelsName;
    }
    public Integer getInventoryResult() {
        return inventoryResult;
    }
    public void setInventoryResult(Integer inventoryResult) {
        this.inventoryResult = inventoryResult;
    }
    public Integer getInitCounts() {
        return initCounts;
    }
    public void setInitCounts(Integer initCounts) {
        this.initCounts = initCounts;
    }
    public Integer getInventoryCounts() {
        return inventoryCounts;
    }
    public void setInventoryCounts(Integer inventoryCounts) {
        this.inventoryCounts = inventoryCounts;
    }
    public Integer getErrorCounts() {
        return errorCounts;
    }
    public void setErrorCounts(Integer errorCounts) {
        this.errorCounts = errorCounts;
    }
    public String getAgencyName() {
        return agencyName;
    }
    public void setAgencyName(String agencyName) {
        this.agencyName = agencyName;
    }
    public String getOperatorName() {
        return operatorName;
    }
    public void setOperatorName(String operatorName) {
        this.operatorName = operatorName;
    }
    public Long getStopTime() {
        return stopTime;
    }
    public void setStopTime(Long stopTime) {
        this.stopTime = stopTime;
    }
}
consum-base/src/main/java/com/consum/base/pojo/LWhFormOutputParam.java
@@ -26,7 +26,7 @@
    /**
     * 记录物品信息和规格型号
     */
    private List<LWhGoodsRecord> list;
    private List<LWhProcureModelParams> models;
    /**
     * 物品id
     */
@@ -77,12 +77,12 @@
        this.dealTime = dealTime;
    }
    public List<LWhGoodsRecord> getList() {
        return list;
    public List<LWhProcureModelParams> getModels() {
        return models;
    }
    public void setList(List<LWhGoodsRecord> list) {
        this.list = list;
    public void setModels(List<LWhProcureModelParams> models) {
        this.models = models;
    }
    public Long getBaseGoodsTemplateId() {
consum-base/src/main/java/com/consum/base/pojo/LWhFormScrappedGoodsParams.java
New file
@@ -0,0 +1,36 @@
package com.consum.base.pojo;
import com.walker.web.param.ParamRequest;
public class LWhFormScrappedGoodsParams extends ParamRequest {
    //规格型号编号
    private Long baseGoodsModelsId = null;
    //报废数量
    private Integer counts = null;
    //报废原因
    private String scrappedCode;
    public Long getBaseGoodsModelsId() {
        return baseGoodsModelsId;
    }
    public void setBaseGoodsModelsId(Long baseGoodsModelsId) {
        this.baseGoodsModelsId = baseGoodsModelsId;
    }
    public Integer getCounts() {
        return counts;
    }
    public void setCounts(Integer counts) {
        this.counts = counts;
    }
    public String getScrappedCode() {
        return scrappedCode;
    }
    public void setScrappedCode(String scrappedCode) {
        this.scrappedCode = scrappedCode;
    }
}
consum-base/src/main/java/com/consum/base/pojo/LWhFormScrappedParam.java
New file
@@ -0,0 +1,85 @@
package com.consum.base.pojo;
import com.consum.model.po.LWhFormScrappedGoods;
import com.walker.web.param.ParamRequest;
import java.util.List;
public class LWhFormScrappedParam extends ParamRequest {
    /**
     * 机构id
     */
    private Long agencyId;
    /**
     * 仓库编号
     */
    private Long warehouseId;
    /**
     * 操作人
     */
    private Long operatorId;
    /**
     * 报废时间
     */
    private Long dealTime;
    /**
     * 附件
     */
    private String uploadFiles;
    /**
     * 物品id
     */
    /**
     * 报废单物品
     */
    private List<LWhFormScrappedGoodsParams> scrappedGoodsList;
    public Long getAgencyId() {
        return agencyId;
    }
    public void setAgencyId(Long agencyId) {
        this.agencyId = agencyId;
    }
    public Long getWarehouseId() {
        return warehouseId;
    }
    public void setWarehouseId(Long warehouseId) {
        this.warehouseId = warehouseId;
    }
    public Long getOperatorId() {
        return operatorId;
    }
    public void setOperatorId(Long operatorId) {
        this.operatorId = operatorId;
    }
    public Long getDealTime() {
        return dealTime;
    }
    public void setDealTime(Long dealTime) {
        this.dealTime = dealTime;
    }
    public String getUploadFiles() {
        return uploadFiles;
    }
    public void setUploadFiles(String uploadFiles) {
        this.uploadFiles = uploadFiles;
    }
    public List<LWhFormScrappedGoodsParams> getScrappedGoodsList() {
        return scrappedGoodsList;
    }
    public void setScrappedGoodsList(List<LWhFormScrappedGoodsParams> scrappedGoodsList) {
        this.scrappedGoodsList = scrappedGoodsList;
    }
}
consum-base/src/main/java/com/consum/base/pojo/LWhFormTransferParam.java
@@ -1,10 +1,7 @@
package com.consum.base.pojo;
import com.consum.model.po.LWhGoodsRecord;
import com.walker.web.param.ParamRequest;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDate;
import java.util.List;
/**
consum-base/src/main/java/com/consum/base/service/BaseGoodsTemplateServiceImpl.java
@@ -283,4 +283,16 @@
        StringBuilder sql = new StringBuilder("SELECT * FROM s_dict_data WHERE dict_type = 'CLASSIFICATION_CODE' order by dict_sort");
        return this.select(sql.toString(), new Object[]{}, new S_dict_data());
    }
    /**
     * @Description  根据分类id查询物品模板
     * @Author 卢庆阳
     * @Date 2023/10/30
     */
    public List<BaseGoodsTemplate> querybyCategoryId(Long categoryId) {
        BaseGoodsTemplate goodsTemplate = new BaseGoodsTemplate();
        goodsTemplate.setCategoryId(categoryId);
        List<BaseGoodsTemplate> select = this.select(goodsTemplate);
        return select;
    }
}
consum-base/src/main/java/com/consum/base/service/LWhFormInventoryServiceImpl.java
@@ -2,6 +2,7 @@
import com.consum.base.core.CodeGeneratorEnum;
import com.consum.base.core.CodeGeneratorService;
import com.consum.base.core.tools.MapRowMapper;
import com.consum.base.pojo.LWhFormInventoryDto;
import com.consum.base.pojo.LWhFormInventoryParam;
import com.consum.base.util.IdUtil;
@@ -14,11 +15,9 @@
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.core.parameters.P;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -54,6 +53,18 @@
            "                      AND STATES = ?\n" +
            "                    GROUP BY BASE_GOODS_MODELS_ID) record ON record.BASE_GOODS_MODELS_ID = model.id\n" +
            "left join base_goods_template bgt on bgt.ID = model.GOODS_TEMPLATES_ID; ";
    private static final String QUERY_PD_DETAIL_LIST = "select lwfi.WAREHOUSE_NAME,lwfig.GOODS_TEMPLATE_NAME,\n" +
            "       lwfig.BASE_GOODS_MODELS_NAME,\n" +
            "       lwfig.INVENTORY_RESULT,\n" +
            "       lwfig.INIT_COUNTS,\n" +
            "       lwfig.INVENTORY_COUNTS,\n" +
            "       lwfig.ERROR_COUNTS,\n" +
            "       lwfi.AGENCY_NAME,\n" +
            "       lwfi.OPERATOR_NAME,\n" +
            "       lwfi.STOP_TIME\n" +
            "from l_wh_form_inventory lwfi\n" +
            "         inner join l_wh_form_inventory_goods lwfig on lwfi.ID = lwfig.WH_FORM_INVENTORY_ID ";
    /**
     * @Description 新增
@@ -224,7 +235,7 @@
            } else {
                inventoryGoods.setInventoryResult(1);
            }
            inventoryGoods.setErrorCounts(errorCounts);
            inventoryGoods.setErrorCounts(Math.abs(errorCounts));
        }
        int flag2 = inventoryGoodsService.update(inventoryGoodsList);
        if (flag2 != inventoryGoodsList.size()) {
@@ -233,4 +244,73 @@
        }
        return 1;
    }
    /**
     * @Description 异常明细列表查询
     * @Author 卢庆阳
     * @Date 2023/11/1
     * @return
     */
    public GenericPager<Map<String, Object>> queryPdDetailList(LWhFormInventoryParam param, FinSysTenantUser sysInfo) {
        StringBuilder sql = new StringBuilder(QUERY_PD_DETAIL_LIST);
        HashMap<String, Object> paramts = new HashMap<>();
        //机构
        sql.append(" and AGENCY_ID like:AGENCY_ID ");
        if (param.getAgencyId() != null) {
            paramts.put("AGENCY_ID", param.getAgencyId() + StringUtils.CHAR_PERCENT);
        } else {
            paramts.put("AGENCY_ID", sysInfo.getTenantId() + StringUtils.CHAR_PERCENT);
        }
        //仓库编号
        if (param.getWarehouseId() != null) {
            sql.append(" and WAREHOUSE_ID =:WAREHOUSE_ID ");
            paramts.put("WAREHOUSE_ID", param.getWarehouseId());
        }
        //物品名称
        if (!StringUtils.isEmpty(param.getGoodsTemplateName())) {
            sql.append(" and GOODS_TEMPLATE_NAME =:GOODS_TEMPLATE_NAME ");
            paramts.put("GOODS_TEMPLATE_NAME", StringUtils.CHAR_PERCENT + param.getGoodsTemplateName() + StringUtils.CHAR_PERCENT);
        }
        //规格型号
        if (param.getBaseGoodsModelsId() != null) {
            sql.append(" and BASE_GOODS_MODELS_ID =:BASE_GOODS_MODELS_ID ");
            paramts.put("BASE_GOODS_MODELS_ID", param.getBaseGoodsModelsId());
        }
        //类型(出入库类型)
        Integer inventoryResult = param.getInventoryResult();
        if (inventoryResult != null) {
            sql.append(" and INVENTORY_RESULT =:INVENTORY_RESULT ");
            paramts.put("INVENTORY_RESULT", inventoryResult);
        }
        //出入库单号
        if (param.getWarehouseFormCode() != null) {
            if (inventoryResult == 2) { //盘盈入库
                sql.append(" and IN_BUSINESS_FORM_CODE =:IN_BUSINESS_FORM_CODE ");
                paramts.put("IN_BUSINESS_FORM_CODE", StringUtils.CHAR_PERCENT + param.getWarehouseFormCode() + StringUtils.CHAR_PERCENT);
            } else {  //盘亏出库
                sql.append(" and OUT_BUSINESS_FORM_CODE =:OUT_BUSINESS_FORM_CODE ");
                paramts.put("OUT_BUSINESS_FORM_CODE", StringUtils.CHAR_PERCENT + param.getWarehouseFormCode() + StringUtils.CHAR_PERCENT);
            }
        }
        //操作人
        if (!StringUtils.isEmpty(param.getOperatorName())) {
            sql.append(" and OPERATOR_NAME =:OPERATOR_NAME ");
            paramts.put("OPERATOR_NAME", StringUtils.CHAR_PERCENT + param.getOperatorName() + StringUtils.CHAR_PERCENT);
        }
        //结束时间
        if (param.getStopTimeStart() != null) {
            sql.append(" and STOP_TIME >=:stopTimeStart ");
            paramts.put("stopTimeStart", param.getStopTimeStart() * 1000000);
        }
        if (param.getStopTimeEnd() != null) {
            sql.append(" and STOP_TIME <:stopTimeEnd ");
            paramts.put("stopTimeEnd", param.getStopTimeEnd() * 1000000 + 240000);
        }
        sql.append(" ORDER BY CREATE_TIME DESC ");
        return selectSplit(sql.toString(), paramts, param.getPageNum(), param.getPageSize(), new MapRowMapper());
    }
}
consum-base/src/main/java/com/consum/base/service/LWhFormOutputServiceImpl.java
@@ -2,6 +2,7 @@
import com.consum.base.core.param.BaseWarehouseParam1;
import com.consum.base.pojo.LWhFormOutputParam;
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;
@@ -15,6 +16,7 @@
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import org.springframework.util.CollectionUtils;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@@ -140,6 +142,78 @@
     * @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();
@@ -165,45 +239,31 @@
        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("规格型号为空");
        if (flag1 == 0) {
            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记录
        //2.新增物品型号记录
        List<LWhProcureModelParams> models = param.getModels();
        List<LWhProcureModel> modelList = new ArrayList<>();
        for (LWhProcureModelParams model : models) {
            LWhProcureModel lWhProcureModel = new LWhProcureModel();
            lWhProcureModel.setId(IdUtil.generateId());
            lWhProcureModel.setBusinessType(3);
            lWhProcureModel.setBaseGoodsModelsId(record.getBaseGoodsModelsId());
            lWhProcureModel.setCounts(record.getThisCount());
            lWhProcureModel.setBusinessId(lWhFormOutputId);
            lWhProcureModel.setBaseGoodsModelsId(model.getBaseGoodsModelsId());
            lWhProcureModel.setCounts(model.getCounts());
            //根据物品型号查询物品库存
            int goodsNum = this.lWhGoodsService.queryGoodsModelNum(0,warehouseId, model.getBaseGoodsModelsId(), (short) 1, null);
            lWhProcureModel.setWorehouseCount(goodsNum);
            int res = this.lWhProcureModelService.insert(lWhProcureModel);
            flag5 += res;
            modelList.add(lWhProcureModel);
        }
        //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()) {
        int flag2 = this.lWhProcureModelService.insert(modelList);
        if (flag2 != modelList.size()) {
            log.error("新增物品型号失败");
            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
            return 0;
        }
        return 1;
    }