cy
2023-11-14 f629df36eb51c492abb8694aef13142886ee2c7b
consum-base/src/main/java/com/consum/base/service/LWhFormOutputServiceImpl.java
@@ -2,9 +2,14 @@
import com.consum.base.core.CodeGeneratorEnum;
import com.consum.base.core.CodeGeneratorService;
import com.consum.base.core.WhBusinessEnum;
import com.consum.base.core.param.BaseWarehouseParam1;
import com.consum.base.pojo.*;
import com.consum.base.core.utils.IdUtil;
import com.consum.base.core.utils.MapperUtil;
import com.consum.base.pojo.LWFormsOutputGoodsModelParam;
import com.consum.base.pojo.LWFormsOutputGoodsParam;
import com.consum.base.pojo.LWhFormOutputInsertParam;
import com.consum.base.pojo.query.LWhFormOutputQry;
import com.consum.model.po.*;
import com.iplatform.model.po.S_user_core;
import com.walker.db.page.GenericPager;
@@ -18,6 +23,7 @@
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
 * @Description 出库单
@@ -42,7 +48,6 @@
    private BaseGoodsModelsServiceImpl baseGoodsModelsService;
    private static String QUERY_FORM_OUTPUT_LIST = "SELECT * FROM l_wh_form_output WHERE 1 = 1";
    //    /**
//     * @Description 新增出库单
@@ -169,17 +174,18 @@
        lWhFormOutput.setOperatorName(sysInfo.getUserName());
        lWhFormOutput.setDealTime(param.getDealTime());
        lWhFormOutput.setStates(1);
        lWhFormOutput.setOutputDoc(param.getProcureDoc());
        int flag1 = this.insert(lWhFormOutput);
        if (flag1 == 0) {
            log.error("新增出库单记录");
            return 0;
        }
        //2.新增物品型号记录
        List<LWhFormOutputGoodsParams> goodsList = param.getGoods();
        List<LWFormsOutputGoodsParam> goodsList = param.getGoods();
        List<LWhProcureModel> modelList = new ArrayList<>();
        for (LWhFormOutputGoodsParams goods : goodsList) {
            List<LWhProcureModelParams> models = goods.getModels();
            for (LWhProcureModelParams model : models) {
        for (LWFormsOutputGoodsParam goods : goodsList) {
            List<LWFormsOutputGoodsModelParam> models = goods.getModels();
            for (LWFormsOutputGoodsModelParam model : models) {
                LWhProcureModel lWhProcureModel = new LWhProcureModel();
                lWhProcureModel.setId(IdUtil.generateId());
                lWhProcureModel.setBusinessType(3);
@@ -192,7 +198,7 @@
                }
                lWhProcureModel.setCounts(model.getCounts());
                //根据物品型号查询物品库存
                int goodsNum = this.lWhGoodsService.queryGoodsModelNum(0,warehouseId, model.getBaseGoodsModelsId(), (short) 1, null);
                int goodsNum = this.lWhGoodsService.queryGoodsModelNum(0, warehouseId, model.getBaseGoodsModelsId(), (short) 1, null);
                lWhProcureModel.setWorehouseCount(goodsNum);
                modelList.add(lWhProcureModel);
            }
@@ -205,7 +211,7 @@
        }
        //3.根据出库单出库
        Long lWarehouseFlowId = this.lWhFormOutputCoreService.outFormByTransId(lWhFormOutputId, currentUser, param.getDealTime());
        Long lWarehouseFlowId = this.lWhFormOutputCoreService.outFormByTransId(lWhFormOutputId, WhBusinessEnum.CHUKU, currentUser, param.getDealTime());
        if (lWarehouseFlowId == null) {
            log.error("根据出库单出库失败");
            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
@@ -216,32 +222,33 @@
    }
    /**
     * @Description  列表查询
     * @Description 列表查询
     * @Author 卢庆阳
     * @Date 2023/10/30
     */
    public GenericPager queryFormOutputList(LWhFormOutputParam param) {
    public GenericPager queryFormOutputList(LWhFormOutputQry param) {
        HashMap<String, Object> paramts = new HashMap<>();
        StringBuilder sql = new StringBuilder(QUERY_FORM_OUTPUT_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);
            sql.append(" and BUSINESS_FORM_CODE = :businessFormCode ");
            paramts.put("businessFormCode", param.getBusinessFormCode());
        }
        //物品名称
        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);
        if (!StringUtils.isEmpty(param.getGoodsName())) {
            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=3 AND baseTemp.GOODS_NAME LIKE :goodsTemplateName)");
            paramts.put("goodsTemplateName", StringUtils.CHAR_PERCENT + param.getGoodsName() + StringUtils.CHAR_PERCENT);
        }
        //机构
        if (param.getAgencyId() != null){
        if (param.getAgencyId() != null) {
            sql.append(" and AGENCY_ID like :agencyId ");
            paramts.put("agencyId",  param.getAgencyId() + StringUtils.CHAR_PERCENT);
            paramts.put("agencyId", param.getAgencyId() + StringUtils.CHAR_PERCENT);
        }
        //创建人
        if (!StringUtils.isEmpty(param.getOperatorName())) {
        if (!StringUtils.isEmpty(param.getCreateName())) {
            sql.append(" and operator_name =:operator_name ");
            paramts.put("operator_name", param.getOperatorName());
            paramts.put("operator_name", param.getCreateName());
        }
        //状态
        if (param.getStates() != null) {
@@ -249,17 +256,65 @@
            paramts.put("states", param.getStates());
        }
        //出库时间
        if (param.getOutputTimeStart() != null) {
        if (param.getStartTime() != null) {
            sql.append(" and DEAL_TIME >=:outputTimeStart ");
            paramts.put("outputTimeStart", param.getOutputTimeStart() * 1000000);
            paramts.put("outputTimeStart", param.getStartTime() * 1000000);
        }
        if (param.getOutputTimeEnd() != null) {
        if (param.getEndTime() != null) {
            sql.append(" and DEAL_TIME <:outputTimeEnd ");
            paramts.put("outputTimeEnd", param.getOutputTimeEnd() * 1000000 + 240000);
            paramts.put("outputTimeEnd", param.getEndTime() * 1000000 + 240000);
        }
        sql.append(" ORDER BY DEAL_TIME DESC");
        GenericPager genericPager = selectSplit(sql.toString(), paramts, new LWhFormOutput());
        return genericPager;
    }
    public GenericPager<Map<String, Object>> queryFormOutputDetailList(LWhFormOutputQry param) {
        HashMap<String, Object> paramts = new HashMap<>();
        StringBuilder sql = new StringBuilder("SELECT pm.id,fp.BUSINESS_FORM_CODE,fpg.GOODS_TEMPLATE_NAME,pm.PRICE,pm.COUNTS, "
            + "( pm.PRICE * pm.COUNTS ) amount,fp.AGENCY_NAME,fp.BUYER_NAME,fp.PROCURE_TIME,pm.BUSINESS_ID,pm.BASE_GOODS_MODELS_NAME FROM l_wh_procure_model pm "
            + "LEFT JOIN l_wh_form_procure fp ON pm.BUSINESS_ID = fp.id "
            + "LEFT JOIN l_wh_form_procure_goods fpg ON fp.id = fpg.WH_FORM_PROCURE_ID WHERE pm.BUSINESS_TYPE = 1 ");
        //入库单号
        if (!StringUtils.isEmpty(param.getBusinessFormCode())) {
            sql.append("and BUSINESS_FORM_CODE = :businessFormCode ");
            paramts.put("businessFormCode", param.getBusinessFormCode());
        }
        //物品名称
        if (!StringUtils.isEmpty(param.getGoodsName())) {
            sql.append("and fpg.GOODS_TEMPLATE_NAME like :goodsTemplateName ");
            paramts.put("goodsTemplateName", StringUtils.CHAR_PERCENT + param.getGoodsName() + 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.getCreateName())) {
            sql.append("and buyer_Name =:buyerName ");
            paramts.put("buyerName", param.getCreateName());
        }
        //入库开始时间
        if (param.getStartTime() != null) {
            sql.append("and INCOME_TIME >=:incomeTimeStart ");
            paramts.put("incomeTimeStart", param.getStartTime() * 1000000);
        }
        //入库结束时间
        if (param.getEndTime() != null) {
            sql.append("and INCOME_TIME <:incomeTimeEnd ");
            paramts.put("incomeTimeEnd", param.getEndTime() * 1000000 + 240000);
        }
        //规格型号
        if (param.getBaseGoodsModelsId() != null) {
            sql.append("and pm.BASE_GOODS_MODELS_ID =:baseGoodsModelsId ");
            paramts.put("baseGoodsModelsId", param.getBaseGoodsModelsId());
        }
        sql.append("ORDER BY PROCURE_TIME DESC");
        GenericPager genericPager = selectSplit(sql.toString(), paramts, param.getPageNum(), param.getPageSize(), new MapperUtil());
        return genericPager;
    }
}