cy
2023-10-27 1c50fb8dedaf13cb41f292a1a62b62055bc67f86
feat: 采购管理接口开发
10个文件已添加
5个文件已修改
976 ■■■■■ 已修改文件
consum-base/src/main/java/com/consum/base/controller/LWarehouseFlowController.java 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/controller/LWhFormProcureController.java 290 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/core/tools/MapRowMapper.java 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/pojo/LWarehouseFlowParam.java 116 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/pojo/LWhFormProcureExtend.java 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/pojo/LWhFormProcureGoodsParams.java 97 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/pojo/LWhFormProcureParam.java 162 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/pojo/LWhProcureModelParams.java 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/service/LWarehouseFlowCoreService.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/service/LWarehouseFlowService.java 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/service/LWhFormProcureCoreService.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/service/LWhFormProcureGoodsService.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/service/LWhFormProcureService.java 51 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/service/LWhGoodsRecordService.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/service/LWhGoodsService.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/controller/LWarehouseFlowController.java
New file
@@ -0,0 +1,38 @@
package com.consum.base.controller;
import com.consum.base.BaseController;
import com.consum.base.pojo.LWarehouseFlowParam;
import com.consum.base.service.LWarehouseFlowService;
import com.iplatform.model.po.S_user_core;
import com.walker.db.page.GenericPager;
import com.walker.web.ResponseValue;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.Map;
/**
 * @ClassName lWarehouseFlowController
 * @Author cy
 * @Date 2023/10/27
 * @Description
 * @Version 1.0
 **/
@RestController
@RequestMapping("/pc/warehouse/flow")
public class LWarehouseFlowController extends BaseController {
    @Resource
    private LWarehouseFlowService lWarehouseFlowService;
    @GetMapping("/list")
    public ResponseValue queryFormProcureList(LWarehouseFlowParam param) {
        S_user_core currentUser = this.getCurrentUser();
        if (currentUser == null) {
            return ResponseValue.error("登录用户信息不存在");
        }
        GenericPager<Map<String, Object>> genericPager = lWarehouseFlowService.queryBusinessFlow(param);
        return ResponseValue.success(genericPager);
    }
}
consum-base/src/main/java/com/consum/base/controller/LWhFormProcureController.java
New file
@@ -0,0 +1,290 @@
package com.consum.base.controller;
import com.consum.base.BaseController;
import com.consum.base.core.CodeGeneratorEnum;
import com.consum.base.core.CodeGeneratorService;
import com.consum.base.core.WhBusinessEnum;
import com.consum.base.pojo.LWhFormProcureExtend;
import com.consum.base.pojo.LWhFormProcureGoodsParams;
import com.consum.base.pojo.LWhFormProcureParam;
import com.consum.base.pojo.LWhProcureModelParams;
import com.consum.base.service.*;
import com.consum.model.po.*;
import com.iplatform.model.po.S_user_core;
import com.walker.db.page.GenericPager;
import com.walker.infrastructure.utils.CollectionUtils;
import com.walker.infrastructure.utils.DateUtils;
import com.walker.infrastructure.utils.NumberGenerator;
import com.walker.web.ResponseValue;
import org.springframework.beans.BeanUtils;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/**
 * @ClassName LWhFormProcureController
 * @Author cy
 * @Date 2023/10/27
 * @Description
 * @Version 1.0
 **/
@RestController
@RequestMapping("/pc/whForm/procure")
public class LWhFormProcureController extends BaseController {
    @Resource
    private LWhFormProcureService lWhFormProcureService;
    @Resource
    private BaseWarehouseServiceImpl baseWarehouseService;
    @Resource
    private FinSysTenantServiceImpl finSysTenantService;
    @Resource
    private CodeGeneratorService codeGeneratorService;
    @Resource
    private LWhFormProcureGoodsService lWhFormProcureGoodsService;
    @Resource
    private LWhFormProcureCoreService lWhFormProcureCoreService;
    @Resource
    private LWhGoodsService lWhGoodsService;
    @Resource
    private BaseGoodsTemplateServiceImpl baseGoodsTemplateService;
    @Resource
    private LWhProcureModelService lWhProcureModelService;
    /**
     * @Description 新增
     */
    @PostMapping("/add")
    public ResponseValue add(@RequestBody LWhFormProcureParam param) {
        Long warehouseId = param.getWarehouseId();
        if (param.getWarehouseId() == null) {
            return ResponseValue.error("仓库ID不能为空");
        }
        BaseWarehouse baseWarehouse = baseWarehouseService.getById(warehouseId);
        // 只能添加本机构仓库的进货单
        //??????
        //
        List<LWhFormProcureGoodsParams> procureGoods = param.getProcureGoods();
        if (CollectionUtils.isEmpty(procureGoods)) {
            return ResponseValue.error("采购单不能为空");
        }
        S_user_core currentUser = this.getCurrentUser();
        // 采购单id
        Long whFormProcureId = param.getId();
        if (whFormProcureId == null) {
            whFormProcureId = NumberGenerator.getLongSequenceNumber();
        }
        long procureTime = DateUtils.getDateTimeNumber(System.currentTimeMillis());
        ArrayList<LWhFormProcureGoods> procureGoodList = new ArrayList<>();
        ArrayList<LWhProcureModel> whProcureModeLlist = new ArrayList<>();
        for (int i = 0; i < procureGoods.size(); i++) {
            LWhFormProcureGoodsParams procureGoodT = procureGoods.get(i);
            Long baseCategoryId = procureGoodT.getBaseCategoryId();
            Long baseGoodsTemplateId = procureGoodT.getBaseGoodsTemplateId();
            String supplier = procureGoodT.getSupplier();
            List<LWhProcureModelParams> models = procureGoodT.getModels();
            if (CollectionUtils.isEmpty(models)) {
                return ResponseValue.error("采购单不能为空");
            }
            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(supplier);
            procureGood.setSort(i);
            for (LWhProcureModelParams modelT : models) {
                Integer counts = modelT.getCounts();
                if (counts == null || counts <= 0) {
                    return ResponseValue.error("型号的采购数量只能为正整数");
                }
                Long price = modelT.getPrice();
                if (price == null || price <= 0) {
                    return ResponseValue.error("型号的采购价格只能为正数");
                }
                Long baseGoodsModelsId = modelT.getBaseGoodsModelsId();
                if (baseGoodsModelsId == null) {
                    return ResponseValue.error("采购的价型号未找到");
                }
                //查询型号信息
                Map<String, Object> tempGoodsInfo = baseGoodsTemplateService.queryGoodsInfoByModelId(baseGoodsModelsId);
                if (tempGoodsInfo == null) {
                    return ResponseValue.error("采购的价型号未找到");
                }
                // 查询型号库存
                int goodsModelNum = lWhGoodsService.queryGoodsModelNum(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(price);
                model.setCounts(counts);
                model.setWorehouseCount(goodsModelNum);
                model.setSupplier(supplier);
                whProcureModeLlist.add(model);
            }
            procureGoodList.add(procureGood);
        }
        lWhFormProcureGoodsService.insertBatch(procureGoodList);
        lWhProcureModelService.insertBatch(whProcureModeLlist);
        // 插入 采购单物品【L_WH_FORM_PROCURE_GOODS】
        LWhFormProcure lWhFormProcure = new LWhFormProcure();
        lWhFormProcure.setId(whFormProcureId);
        lWhFormProcure.setBusinessFormCode(codeGeneratorService.createCodeByPrefix(CodeGeneratorEnum.Procure_Warehouse.getValue(), 10));
        lWhFormProcure.setWarehouseId(warehouseId);
        lWhFormProcure.setWarehouseName(baseWarehouse.getWarehouseName());
        lWhFormProcure.setBuyerId(currentUser.getId());
        lWhFormProcure.setBuyerName(currentUser.getNick_name());
        lWhFormProcure.setProcureTime(procureTime);
        lWhFormProcure.setProcureDoc(param.getProcureDoc());
        lWhFormProcure.setBuyType(param.getBuyType());
        lWhFormProcure.setStates(1);
        lWhFormProcure.setAgencyId(baseWarehouse.getAgencyId());
        lWhFormProcure.setAgencyName(baseWarehouse.getAgencyName());
        int result = lWhFormProcureService.insert(lWhFormProcure);
        if (result > 0) return ResponseValue.success(1);
        return ResponseValue.error("新增失败!");
    }
    /**
     * @Description 列表查询
     */
    @GetMapping("/list")
    public ResponseValue queryFormProcureList(LWhFormProcureParam param) {
        S_user_core currentUser = this.getCurrentUser();
        if (currentUser == null) {
            return ResponseValue.error("登录用户信息不存在");
        }
        FinSysTenantUser sysInfo = getSysInfo();
        //只能查询本级 及以下机构的进货单
        //??????
        GenericPager genericPager = lWhFormProcureService.queryFormProcureList(param);
        List<LWhFormProcure> datas = genericPager.getDatas();
        ArrayList<LWhFormProcureExtend> newDatas = new ArrayList<>();
        if (!CollectionUtils.isEmpty(datas)) {
            datas.forEach(item -> {
                // 查询型号数量
                LWhProcureModel lWhProcureModel = new LWhProcureModel();
                lWhProcureModel.setBusinessType(1);
                lWhProcureModel.setBusinessId(item.getId());
                List<LWhProcureModel> models = lWhProcureModelService.select(lWhProcureModel);
                LWhFormProcureExtend formProcureExtend = new LWhFormProcureExtend();
                BeanUtils.copyProperties(item, formProcureExtend);
                formProcureExtend.setModels(models);
                newDatas.add(formProcureExtend);
            });
        }
        try {
            Field fieldDatas = GenericPager.class.getDeclaredField("datas");
            fieldDatas.setAccessible(true);
            fieldDatas.set(genericPager, newDatas);
        } catch (Exception e) {
            e.printStackTrace();
        }
//        genericPager.setDatas(newDatas);
        return ResponseValue.success(genericPager);
    }
    /**
     * @Description 编辑
     */
    @PostMapping("/edit")
    public ResponseValue edit(@RequestBody LWhFormProcureParam param) {
        ResponseValue delFlag = delById(param.getId());
        if (delFlag.getCode() == ResponseValue.CODE_SUCCESS) {
            return this.add(param);
        }
        return ResponseValue.error("编辑失败!");
    }
    /**
     * @Description 根据id删除
     */
    @DeleteMapping("/del")
    public ResponseValue delById(Long id) {
        if (id == null) {
            return ResponseValue.error("参数不能为空!");
        }
        LWhFormProcure lWhFormProcure = lWhFormProcureService.get(new LWhFormProcure(id));
        if (lWhFormProcure == null) {
            return ResponseValue.error("删除失败!");
        }
        if (lWhFormProcure.getStates() != 1) {
            return ResponseValue.error("待入库状态才能删除!");
        }
        int num = lWhFormProcureService.delete(new LWhFormProcure(id));
        if (num == 0) {
            return ResponseValue.error("删除失败!");
        }
        lWhFormProcureGoodsService.update("delete from L_WH_FORM_PROCURE_GOODS where WH_FORM_PROCURE_ID=" + id);
        lWhProcureModelService.update("delete from L_WH_PROCURE_MODEL where BUSINESS_TYPE =1 and BUSINESS_ID=" + id);
        return ResponseValue.success(1);
    }
    /**
     * 入库操作
     */
    @PostMapping("/income")
    public ResponseValue income(Long id) {
        String errMsg = lWhFormProcureCoreService.doProcure(id, getCurrentUser());
        if (errMsg == null) {
            return ResponseValue.success();
        }
        return ResponseValue.error(errMsg);
    }
    /**
     * 根据id查询详情
     */
    @GetMapping("/detail")
    public ResponseValue getById(Long id) throws IllegalAccessException {
        if (id == null) {
            return ResponseValue.error("采购单id为空");
        }
        LWhFormProcure lWhFormProcure = lWhFormProcureService.get(new LWhFormProcure(id));
        LWhFormProcureExtend formProcureExtend = new LWhFormProcureExtend();
        BeanUtils.copyProperties(lWhFormProcure, formProcureExtend);
        // 物品
        LWhFormProcureGoods lWhFormProcureGoods = new LWhFormProcureGoods();
        lWhFormProcureGoods.setWhFormProcureId(id);
        List<LWhFormProcureGoods> formProcureGoods = lWhFormProcureGoodsService.select(lWhFormProcureGoods);
        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 = lWhProcureModelService.select(lWhProcureModel);
            fieldModels.set(lWhFormProcureGoodsParams, models);
            procureGoodsParams.add(lWhFormProcureGoodsParams);
        }
        formProcureExtend.setProcureGoods(procureGoodsParams);
        return ResponseValue.success("查询成功!", formProcureExtend);
    }
}
consum-base/src/main/java/com/consum/base/core/tools/MapRowMapper.java
New file
@@ -0,0 +1,31 @@
package com.consum.base.core.tools;
import org.springframework.jdbc.core.RowMapper;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.Map;
/**
 * @ClassName MapRowMapper
 * @Author cy
 * @Date 2023/10/27
 * @Description
 * @Version 1.0
 **/
public class MapRowMapper implements RowMapper<Map<String, Object>> {
    @Override
    public Map<String, Object> mapRow(ResultSet rs, int rowNum) throws SQLException {
        Map<String, Object> row = new HashMap<>();
        int columnCount = rs.getMetaData().getColumnCount();
        for (int i = 1; i <= columnCount; i++) {
            String columnName = rs.getMetaData().getColumnName(i);
            Object columnValue = rs.getObject(i);
            row.put(columnName, columnValue);
        }
        return row;
    }
}
consum-base/src/main/java/com/consum/base/pojo/LWarehouseFlowParam.java
New file
@@ -0,0 +1,116 @@
package com.consum.base.pojo;
import com.walker.web.param.ParamRequest;
/**
 * @ClassName LWarehouseFlowParam
 * @Author cy
 * @Date 2023/10/27
 * @Description
 * @Version 1.0
 **/
public class LWarehouseFlowParam extends ParamRequest {
    //单据类型 1 采购2 调拨 3出库4部门分发
    private Short businessType;
    // 业务单据编号
    private Long businessFormCode;
    //物品名称
    private String goodsTemplateName;
    //规格型号
    private String baseGoodsModelsName;
    // 机构
    private Long agencyId;
    //创建人
    private String createdName;
    // 操作时间
    private Long dealTimeStart;
    private Long dealTimeEnd;
    public Short getBusinessType() {
        return businessType;
    }
    public void setBusinessType(Short businessType) {
        this.businessType = businessType;
    }
    public Long getBusinessFormCode() {
        return businessFormCode;
    }
    public void setBusinessFormCode(Long businessFormCode) {
        this.businessFormCode = businessFormCode;
    }
    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 Long getAgencyId() {
        return agencyId;
    }
    public void setAgencyId(Long agencyId) {
        this.agencyId = agencyId;
    }
    public String getCreatedName() {
        return createdName;
    }
    public void setCreatedName(String createdName) {
        this.createdName = createdName;
    }
    public Long getDealTimeStart() {
        return dealTimeStart;
    }
    public void setDealTimeStart(Long dealTimeStart) {
        this.dealTimeStart = dealTimeStart;
    }
    public Long getDealTimeEnd() {
        return dealTimeEnd;
    }
    public void setDealTimeEnd(Long dealTimeEnd) {
        this.dealTimeEnd = dealTimeEnd;
    }
    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;
    }
}
consum-base/src/main/java/com/consum/base/pojo/LWhFormProcureExtend.java
New file
@@ -0,0 +1,35 @@
package com.consum.base.pojo;
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
 * @Version 1.0
 **/
public class LWhFormProcureExtend extends LWhFormProcure {
    private List<LWhProcureModel> models;
    private List<LWhFormProcureGoodsParams> procureGoods;
    public List<LWhProcureModel> getModels() {
        return models;
    }
    public void setModels(List<LWhProcureModel> models) {
        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/pojo/LWhFormProcureGoodsParams.java
New file
@@ -0,0 +1,97 @@
package com.consum.base.pojo;
import com.walker.web.param.ParamRequest;
import java.util.List;
/**
 * @ClassName LWhFormProcureGoodsParams
 * @Author cy
 * @Date 2023/10/27
 * @Description
 * @Version 1.0
 **/
public class LWhFormProcureGoodsParams extends ParamRequest {
    //分类编号
    private Long baseCategoryId = null;
    //物品模版编号
    private Long baseGoodsTemplateId = null;
    //供应商
    private String supplier = null;
    private List<LWhProcureModelParams> models;
    public Long getBaseCategoryId() {
        return baseCategoryId;
    }
    public void setBaseCategoryId(Long baseCategoryId) {
        this.baseCategoryId = baseCategoryId;
    }
    public Long getBaseGoodsTemplateId() {
        return baseGoodsTemplateId;
    }
    public void setBaseGoodsTemplateId(Long baseGoodsTemplateId) {
        this.baseGoodsTemplateId = baseGoodsTemplateId;
    }
    public String getSupplier() {
        return supplier;
    }
    public void setSupplier(String supplier) {
        this.supplier = supplier;
    }
    public List<LWhProcureModelParams> getModels() {
        return models;
    }
    public void setModels(List<LWhProcureModelParams> models) {
        this.models = models;
    }
    // 主键
    private Long id = null;
    // 属性列表
    private Long whFormProcureId = null;
    private String goodsTemplateName = null;
    private Integer sort = null;
    public Long getId() {
        return id;
    }
    public void setId(Long id) {
        this.id = id;
    }
    public Long getWhFormProcureId() {
        return whFormProcureId;
    }
    public void setWhFormProcureId(Long whFormProcureId) {
        this.whFormProcureId = whFormProcureId;
    }
    public String getGoodsTemplateName() {
        return goodsTemplateName;
    }
    public void setGoodsTemplateName(String goodsTemplateName) {
        this.goodsTemplateName = goodsTemplateName;
    }
    public Integer getSort() {
        return sort;
    }
    public void setSort(Integer sort) {
        this.sort = sort;
    }
}
consum-base/src/main/java/com/consum/base/pojo/LWhFormProcureParam.java
New file
@@ -0,0 +1,162 @@
package com.consum.base.pojo;
import com.walker.web.param.ParamRequest;
import java.util.List;
/**
 * @ClassName LWhFormProcureParam
 * @Author cy
 * @Date 2023/10/27
 * @Description
 * @Version 1.0
 **/
public class LWhFormProcureParam extends ParamRequest {
    private Long id;
    /**
     * 仓库编号
     */
    private Long warehouseId;
    /**
     * 采购手续
     */
    private String procureDoc;
    /**
     * 采购方式(1:集采;2=自采)
     */
    private Integer buyType = null;
    /**
     * 采购单型号
     */
    private List<LWhFormProcureGoodsParams> procureGoods;
    public Long getWarehouseId() {
        return warehouseId;
    }
    public void setWarehouseId(Long warehouseId) {
        this.warehouseId = warehouseId;
    }
    public String getProcureDoc() {
        return procureDoc;
    }
    public void setProcureDoc(String procureDoc) {
        this.procureDoc = procureDoc;
    }
    public Integer getBuyType() {
        return buyType;
    }
    public void setBuyType(Integer buyType) {
        this.buyType = buyType;
    }
    public List<LWhFormProcureGoodsParams> getProcureGoods() {
        return procureGoods;
    }
    public void setProcureGoods(List<LWhFormProcureGoodsParams> procureGoods) {
        this.procureGoods = procureGoods;
    }
    /**
     * 入库单号
     */
    private String businessFormCode;
    /**
     * 物品模版名称
     */
    private String goodsTemplateName;
    /**
     * 机构
     */
    private Long agencyId;
    /**
     * 创建人
     */
    private String buyerName;
    /**
     * 1=待入库;2=已入库
     */
    private Short states;
    /**
     * 入库时间 开始
     */
    private Long incomeTimeStart;
    /**
     * 入库时间 结束
     */
    private Long incomeTimeEnd;
    public String getBusinessFormCode() {
        return businessFormCode;
    }
    public void setBusinessFormCode(String businessFormCode) {
        this.businessFormCode = businessFormCode;
    }
    public String getGoodsTemplateName() {
        return goodsTemplateName;
    }
    public void setGoodsTemplateName(String goodsTemplateName) {
        this.goodsTemplateName = goodsTemplateName;
    }
    public Long getAgencyId() {
        return agencyId;
    }
    public void setAgencyId(Long agencyId) {
        this.agencyId = agencyId;
    }
    public String getBuyerName() {
        return buyerName;
    }
    public void setBuyerName(String buyerName) {
        this.buyerName = buyerName;
    }
    public Short getStates() {
        return states;
    }
    public void setStates(Short states) {
        this.states = states;
    }
    public Long getIncomeTimeStart() {
        return incomeTimeStart;
    }
    public void setIncomeTimeStart(Long incomeTimeStart) {
        this.incomeTimeStart = incomeTimeStart;
    }
    public Long getIncomeTimeEnd() {
        return incomeTimeEnd;
    }
    public void setIncomeTimeEnd(Long incomeTimeEnd) {
        this.incomeTimeEnd = incomeTimeEnd;
    }
    public Long getId() {
        return id;
    }
    public void setId(Long id) {
        this.id = id;
    }
}
consum-base/src/main/java/com/consum/base/pojo/LWhProcureModelParams.java
New file
@@ -0,0 +1,43 @@
package com.consum.base.pojo;
import com.walker.web.param.ParamRequest;
/**
 * @ClassName LWhProcureModelParams
 * @Author cy
 * @Date 2023/10/27
 * @Description
 * @Version 1.0
 **/
public class LWhProcureModelParams extends ParamRequest {
    // //规格型号编号
    private Long baseGoodsModelsId = null;
    //价格
    private Long price = null;
    //数量
    private Integer counts = null;
    public Long getPrice() {
        return price;
    }
    public void setPrice(Long price) {
        this.price = price;
    }
    public Integer getCounts() {
        return counts;
    }
    public void setCounts(Integer counts) {
        this.counts = counts;
    }
    public Long getBaseGoodsModelsId() {
        return baseGoodsModelsId;
    }
    public void setBaseGoodsModelsId(Long baseGoodsModelsId) {
        this.baseGoodsModelsId = baseGoodsModelsId;
    }
}
consum-base/src/main/java/com/consum/base/service/LWarehouseFlowCoreService.java
@@ -31,18 +31,20 @@
    private SimpleJdbcCall simpleJdbcCall;
    private LWarehouseFlowService lWarehouseFlowService;
    private LWhGoodsService lWhGoodsService;
    private LWhGoodsRecordService lWhGoodsRecordService;
    private LWhFormTransferService lWhFormTransferService;
    private LWhFormOutputCoreService lWhFormOutputCoreService;
    private BaseGoodsTemplateServiceImpl baseGoodsTemplateService;
    @Autowired
    public LWarehouseFlowCoreService(JdbcTemplate jdbcTemplate, LWarehouseFlowService lWarehouseFlowService, LWhGoodsService lWhGoodsService, LWhFormTransferService lWhFormTransferService, LWhFormOutputCoreService lWhFormOutputCoreService, BaseGoodsTemplateServiceImpl baseGoodsTemplateService) {
    public LWarehouseFlowCoreService(JdbcTemplate jdbcTemplate, LWarehouseFlowService lWarehouseFlowService, LWhGoodsService lWhGoodsService, LWhFormTransferService lWhFormTransferService, LWhFormOutputCoreService lWhFormOutputCoreService, BaseGoodsTemplateServiceImpl baseGoodsTemplateService, LWhGoodsRecordService lWhGoodsRecordService) {
        this.jdbcTemplate = jdbcTemplate;
        this.lWarehouseFlowService = lWarehouseFlowService;
        this.baseGoodsTemplateService = baseGoodsTemplateService;
        this.lWhFormTransferService = lWhFormTransferService;
        this.lWhFormOutputCoreService = lWhFormOutputCoreService;
        this.lWhGoodsService = lWhGoodsService;
        this.lWhGoodsRecordService = lWhGoodsRecordService;
        this.simpleJdbcCall = new SimpleJdbcCall(jdbcTemplate).withProcedureName("InsertL_WH_GOODS");
    }
@@ -138,6 +140,7 @@
                            supplier, buyType, goodsUnit, price, procureTime, 1, dealTime, counts);
                });
            }
            lWhGoodsRecordService.insert(whGoodsRecord);
        });
        return 1;
consum-base/src/main/java/com/consum/base/service/LWarehouseFlowService.java
@@ -1,7 +1,14 @@
package com.consum.base.service;
import com.consum.base.core.tools.MapRowMapper;
import com.consum.base.pojo.LWarehouseFlowParam;
import com.walker.db.page.GenericPager;
import com.walker.infrastructure.utils.StringUtils;
import com.walker.jdbc.service.BaseServiceImpl;
import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.Map;
/**
 * @ClassName LWarehouseFlowService
@@ -13,4 +20,56 @@
@Service
public class LWarehouseFlowService extends BaseServiceImpl {
    /**
     * 查询明细
     *
     * @param param
     * @return
     */
    private static String QUERY_BUSINESS_FLOW = "SELECT flow.BUSINESS_TYPE businessType,flow.BUSINESS_FORM_ID businessFormId,tCaiGou.BUSINESS_FORM_CODE businessFormCode,record.GOODS_TEMPLATE_NAME goodsTemplateName,record.BASE_GOODS_MODELS_NAME baseGoodsModelsName,record.THIS_COUNT thisCount,CASE WHEN flow.BUSINESS_TYPE=1 THEN tCaiGou.AGENCY_NAME END AS agencyName,CASE WHEN flow.BUSINESS_TYPE=1 THEN tCaiGou.BUYER_NAME END AS createdName,flow.DEAL_TIME dealTime FROM L_WAREHOUSE_FLOW flow LEFT JOIN L_WH_GOODS_RECORD record ON flow.id=record.WAREHOUSE_FLOW_ID LEFT JOIN L_WH_FORM_PROCURE tCaiGou ON flow.BUSINESS_TYPE=1 AND tCaiGou.id=flow.BUSINESS_FORM_ID WHERE 1=1";
    public GenericPager<Map<String, Object>> queryBusinessFlow(LWarehouseFlowParam param) {
        StringBuilder sql = new StringBuilder(QUERY_BUSINESS_FLOW);
        Map<String, Object> paramts = new HashMap<>();
//        ArrayList<Object> params = new ArrayList<>();
        if (param.getBusinessType() != null) {
            sql.append(" and flow.BUSINESS_TYPE =:businessType");
            paramts.put("businessType", param.getBusinessType());
//            sql.append(" and flow.BUSINESS_TYPE =?");
//            params.add(param.getBusinessType());
        }
        if (param.getBusinessFormCode() != null) {
            sql.append(" AND CASE WHEN flow.BUSINESS_TYPE = 1 THEN flow.BUSINESS_FORM_CODE=:businessFormCode END");
            paramts.put("businessFormCode", param.getBusinessFormCode());
//            sql.append(" AND CASE WHEN flow.BUSINESS_TYPE = 1 THEN flow.BUSINESS_FORM_CODE=?");
//            params.add(param.getBusinessFormCode());
        }
        if (param.getGoodsTemplateName() != null) {
            sql.append(" AND record.GOODS_TEMPLATE_NAME like :goodsTemplateName");
            paramts.put("goodsTemplateName", StringUtils.CHAR_PERCENT + param.getGoodsTemplateName() + StringUtils.CHAR_PERCENT);
//            sql.append(" AND record.GOODS_TEMPLATE_NAME like ?");
//            params.add(StringUtils.CHAR_PERCENT + param.getGoodsTemplateName() + StringUtils.CHAR_PERCENT);
        }
        if (param.getBaseGoodsModelsName() != null) {
            sql.append(" AND record.BASE_GOODS_MODELS_NAME like :baseGoodsModelsName");
            paramts.put("baseGoodsModelsName", StringUtils.CHAR_PERCENT + param.getBaseGoodsModelsName() + StringUtils.CHAR_PERCENT);
        }
        if (param.getAgencyId() != null) {
            sql.append(" AND tCaiGou.AGENCY_id=:agencyId");
            paramts.put("agencyId", param.getAgencyId());
        }
        if (param.getCreatedName() != null) {
            sql.append(" AND CASE WHEN flow.BUSINESS_TYPE = 1 THEN tCaiGou.BUYER_NAME LIKE :createdName END");
            paramts.put("createdName", StringUtils.CHAR_PERCENT + param.getCreatedName() + StringUtils.CHAR_PERCENT);
        }
        if (param.getDealTimeStart() != null) {
            sql.append(" and INCOME_TIME >=:dealTimeStart ");
            paramts.put("dealTimeStart", param.getDealTimeStart() * 1000000);
        }
        if (param.getDealTimeEnd() != null) {
            sql.append(" and flow.DEAL_TIME <:dealTimeEnd ");
            paramts.put("dealTimeEnd", param.getDealTimeEnd() * 1000000 + 240000);
        }
        return selectSplit(sql.toString(), paramts, param.getPageNum(), param.getPageSize(), new MapRowMapper());
    }
}
consum-base/src/main/java/com/consum/base/service/LWhFormProcureCoreService.java
@@ -37,13 +37,16 @@
     * 第一步:通过采购单ID查询采购单型号【L_WH_PROCURE_MODEL】得到商品型号以及数量
     * 第二步:记录进出库流水:L_WAREHOUSE_FLOW
     */
    public void doProcure(Long whFormProcureId, S_user_core currentUser) {
    public String doProcure(Long whFormProcureId, S_user_core currentUser) {
        if (whFormProcureId == null) {
            return "采购单id为空";
        }
        //采购单信息
        LWhFormProcure whFormProcure = new LWhFormProcure(whFormProcureId);
        LWhFormProcure lWhFormProcure = lWhFormProcureService.get(whFormProcure);
        if (lWhFormProcure == null || lWhFormProcure.getStates() != 0) {
        if (lWhFormProcure == null || lWhFormProcure.getStates() != 1) {
            log.error("入库失败!请检查入库单状态");
            return;
            return "入库失败!请检查入库单状态";
        }
        Long userId = currentUser.getId();
        String nickName = currentUser.getNick_name();
@@ -65,7 +68,7 @@
        int flowInsertFlag = lWarehouseFlowService.buyInsertWareFlow(goodsModelNum, lWhFormProcure, warehouseFlow);
        if (flowInsertFlag == 1) {
            // 更新采购单【L_WH_FORM_PROCURE】
            whFormProcure.setStates(1);
            whFormProcure.setStates(2);
            whFormProcure.setLWarehouseFlowId(lWarehouseFlowId);
            whFormProcure.setIncomeId(userId);
            whFormProcure.setIncomeName(nickName);
@@ -73,7 +76,7 @@
            lWhFormProcureService.update(whFormProcure);
        }
        log.info("入库单:{} 入库完成", whFormProcureId);
        return;
        return null;
    }
}
consum-base/src/main/java/com/consum/base/service/LWhFormProcureGoodsService.java
New file
@@ -0,0 +1,16 @@
package com.consum.base.service;
import com.walker.jdbc.service.BaseServiceImpl;
import org.springframework.stereotype.Service;
/**
 * @ClassName LWhFormProcureGoodsService
 * @Author cy
 * @Date 2023/10/27
 * @Description
 * @Version 1.0
 **/
@Service
public class LWhFormProcureGoodsService  extends BaseServiceImpl {
}
consum-base/src/main/java/com/consum/base/service/LWhFormProcureService.java
@@ -1,7 +1,13 @@
package com.consum.base.service;
import com.consum.base.pojo.LWhFormProcureParam;
import com.consum.model.po.LWhFormProcure;
import com.walker.db.page.GenericPager;
import com.walker.infrastructure.utils.StringUtils;
import com.walker.jdbc.service.BaseServiceImpl;
import org.springframework.stereotype.Service;
import java.util.HashMap;
/**
 * @ClassName lWhFormProcureService
@@ -13,4 +19,49 @@
@Service
public class LWhFormProcureService extends BaseServiceImpl {
    private static String QUERY_FORM_PROCURE_LIST = "SELECT * FROM L_WH_FORM_PROCURE WHERE 1 = 1";
    public GenericPager<LWhFormProcure> queryFormProcureList(LWhFormProcureParam param) {
        HashMap<String, Object> paramts = new HashMap<>();
        StringBuilder sql = new StringBuilder(QUERY_FORM_PROCURE_LIST);
        //入库单号
        if (!StringUtils.isEmpty(param.getBusinessFormCode())) {
            sql.append(" and BUSINESS_FORM_CODE like :businessFormCode ");
            paramts.put("businessFormCode", StringUtils.CHAR_PERCENT + param.getBusinessFormCode() + StringUtils.CHAR_PERCENT);
        }
        if (param.getAgencyId() != null){
            sql.append(" and AGENCY_ID like :agencyId ");
            paramts.put("agencyId",  param.getAgencyId() + StringUtils.CHAR_PERCENT);
        }
        //创建人
        if (!StringUtils.isEmpty(param.getBuyerName())) {
            sql.append(" and buyer_Name =:buyerName ");
            paramts.put("buyerName", param.getBuyerName());
        }
        //状态
        if (param.getStates() != null) {
            sql.append(" and status =:status ");
            paramts.put("status", param.getStates());
        }
        //入库时间
        if (param.getIncomeTimeStart() != null) {
            sql.append(" and INCOME_TIME >=:incomeTimeStart ");
            paramts.put("incomeTimeStart", param.getIncomeTimeStart() * 1000000);
        }
        if (param.getIncomeTimeEnd() != null) {
            sql.append(" and INCOME_TIME <:incomeTimeEnd ");
            paramts.put("incomeTimeEnd", param.getIncomeTimeEnd() * 1000000 + 240000);
        }
        //物品名称
        if (!StringUtils.isEmpty(param.getGoodsTemplateName())) {
            sql.append(" AND id IN (SELECT BUSINESS_ID FROM L_WH_PROCURE_MODEL procureModel LEFT JOIN BASE_GOODS_MODELS baseModel ON procureModel.BASE_GOODS_MODELS_ID=baseModel.ID LEFT JOIN BASE_GOODS_TEMPLATE baseTemp ON baseModel.GOODS_TEMPLATES_ID=baseTemp.id WHERE procureModel.BUSINESS_TYPE=1 AND baseTemp.GOODS_NAME LIKE :goodsTemplateName)");
            paramts.put("goodsTemplateName", StringUtils.CHAR_PERCENT + param.getGoodsTemplateName() + StringUtils.CHAR_PERCENT);
        }
        sql.append(" ORDER BY PROCURE_TIME DESC");
        GenericPager genericPager = selectSplit(sql.toString(), paramts, new LWhFormProcure());
        return genericPager;
    }
}
consum-base/src/main/java/com/consum/base/service/LWhGoodsRecordService.java
New file
@@ -0,0 +1,16 @@
package com.consum.base.service;
import com.walker.jdbc.service.BaseServiceImpl;
import org.springframework.stereotype.Service;
/**
 * @ClassName LWhGoodsRecordService
 * @Author cy
 * @Date 2023/10/27
 * @Description
 * @Version 1.0
 **/
@Service
public class LWhGoodsRecordService extends BaseServiceImpl {
}
consum-base/src/main/java/com/consum/base/service/LWhGoodsService.java
@@ -39,11 +39,11 @@
            paramts.put("warehouseId", warehouseId);
        }
        if (baseGoodsModelsId != null) {
            sql.append(" and BASE_GOODS_TEMPLATE_ID=:baseGoodsModelsId");
            sql.append(" and BASE_GOODS_MODELS_ID=:baseGoodsModelsId");
            paramts.put("baseGoodsModelsId", baseGoodsModelsId);
        }
        if (states != null) {
            sql.append(" and STATES=:STATES");
            sql.append(" and STATES=:states");
            paramts.put("states", states);
        }
        if (buyType != null) {