cy
2023-11-20 717ff115ee5c57c8df0fd491b40b848090d2c68e
consum-base/src/main/java/com/consum/base/service/LWhFormTransferServiceImpl.java
@@ -2,12 +2,18 @@
import com.consum.base.core.CodeGeneratorEnum;
import com.consum.base.core.CodeGeneratorService;
import com.consum.base.core.tools.MapRowMapper;
import com.consum.base.core.utils.IdUtil;
import com.consum.base.core.utils.MapRowMapper;
import com.consum.base.core.utils.MapUtils;
import com.consum.base.core.utils.MapperUtil;
import com.consum.base.pojo.LWhFormTransferGoodsInfoParam;
import com.consum.base.pojo.LWhFormTransferParam;
import com.consum.base.pojo.LWhProcureModelParams;
import com.consum.base.pojo.LWhProcureModelUserDTO;
import com.consum.base.pojo.query.TransferQryDto;
import com.consum.base.util.IdUtil;
import com.consum.base.pojo.LWhProcureModelUserParam;
import com.consum.base.pojo.LWhTransferModelParam;
import com.consum.base.pojo.query.TransferQry;
import com.consum.base.pojo.response.FormTransferGoodsVO;
import com.consum.base.pojo.response.GoodsModelVO;
import com.consum.base.pojo.response.LWHFromTransferExtendVO;
import com.consum.model.po.BaseGoodsModels;
import com.consum.model.po.BaseWarehouse;
import com.consum.model.po.FinSysTenant;
@@ -18,9 +24,7 @@
import com.consum.model.po.LWhProcureModel;
import com.consum.model.po.LWhProcureModelUser;
import com.consum.model.vo.LWhFormOutputVo;
import com.consum.model.vo.LWhFormTransferVo;
import com.consum.model.vo.LWhGoodsRecordVo;
import com.consum.model.vo.LWhProcureModelVo;
import com.iplatform.model.po.S_user_core;
import com.walker.db.page.GenericPager;
import com.walker.infrastructure.utils.DateUtils;
@@ -74,7 +78,7 @@
     * @Author 卢庆阳
     * @Date 2023/10/30
     */
    public int add(LWhFormTransferParam param, S_user_core currentUser, FinSysTenantUser sysInfo) {
    public int add(LWhFormTransferParam param, FinSysTenantUser sysInfo) throws Exception {
        //1.新增调拨单记录
        LWhFormTransfer lWhFormTransfer = new LWhFormTransfer();
        //调拨单id
@@ -82,21 +86,23 @@
        lWhFormTransfer.setId(lWhFormTransferId);
        Integer businessType = param.getTransferBusinessType();
        // 业务类型 调拨/部门分发/部门退回 单据类型。0仓库调拨;1部门分发;2部门物品回退
        // 单据类型。0仓库调拨;1部门分发;2部门物品回退
        // TODO 枚举字典
        lWhFormTransfer.setBusinessType(businessType);
        lWhFormTransfer.setBusinessFormCode(codeGeneratorService.createBusinessFormCode(CodeGeneratorEnum.Transfer));
        Long warehouseId = param.getInWarehouseId();
        lWhFormTransfer.setInWarehouseId(warehouseId);
        //根据仓库id查询仓库
        BaseWarehouse warehouse = this.baseWarehouseService.getById(warehouseId);
        //入库仓库为当前用户的默认仓库
        String tenantId = sysInfo.getTenantId();
        BaseWarehouse warehouse = baseWarehouseService.getDefaultWarehouseByAgencyId(Long.valueOf(tenantId));
        if (warehouse == null) {
            log.error("仓库不存在");
            return 0;
            throw new Exception("仓库不存在");
        }
        lWhFormTransfer.setInWarehouseId(warehouse.getId());
        lWhFormTransfer.setInWarehouseName(warehouse.getWarehouseName());
        lWhFormTransfer.setInAgencyId(Long.valueOf(sysInfo.getTenantId()));
        lWhFormTransfer.setInAgencyId(Long.valueOf(tenantId));
        lWhFormTransfer.setInAgencyName(sysInfo.getTenantName());
        //根据机构id查询调拨机构
        FinSysTenant finSysTenant = finSysTenantService.get(new FinSysTenant(param.getOutAgencyId()));
@@ -126,44 +132,62 @@
        }
        //2.新增物品型号记录
        List<LWhProcureModelParams> models = param.getModels();
        List<LWhFormTransferGoodsInfoParam> transferGoods = param.getTransferGoods();
        List<LWhProcureModel> modelList = new ArrayList<>();
        for (LWhProcureModelParams model : models) {
            LWhProcureModel lWhProcureModel = new LWhProcureModel();
            lWhProcureModel.setId(IdUtil.generateId());
            // 物品型号业务类型
            lWhProcureModel.setBusinessType(model.getProcureModelBusinessType());
            lWhProcureModel.setBusinessId(lWhFormTransferId);
            lWhProcureModel.setBaseGoodsModelsId(model.getBaseGoodsModelsId());
            lWhProcureModel.setCounts(model.getCounts());
            //根据物品型号查询物品库存
            int goodsNum = this.lWhGoodsService.queryGoodsModelNum(0, warehouseId, model.getBaseGoodsModelsId(), (short) 1, null);
            lWhProcureModel.setWorehouseCount(goodsNum);
        for (LWhFormTransferGoodsInfoParam transferGoodsInfo : transferGoods) {
            for (LWhTransferModelParam model : transferGoodsInfo.getModels()) {
                LWhProcureModel lWhProcureModel = new LWhProcureModel();
                lWhProcureModel.setId(IdUtil.generateId());
                // 物品型号业务类型
                // 物品类型 1 采购2 调拨 3出库4部门分发
                switch (businessType) {
                    case 0:
                        lWhProcureModel.setBusinessType(2);
                        break;
                    case 1:
                        lWhProcureModel.setBusinessType(4);
                        break;
                    default:
                        lWhProcureModel.setBusinessType(null);
                }
                lWhProcureModel.setBusinessId(lWhFormTransferId);
                lWhProcureModel.setBaseGoodsModelsId(model.getBaseGoodsModelsId());
                lWhProcureModel.setCounts(model.getCounts());
                //根据型号id查询型号
                BaseGoodsModels baseGoodsModels = this.baseGoodsModelsService.get(new BaseGoodsModels(model.getBaseGoodsModelsId()));
                if (baseGoodsModels != null) {
                    lWhProcureModel.setBaseGoodsModelsName(baseGoodsModels.getModelName());
                }
                //根据物品型号查询物品库存
                int goodsNum = this.lWhGoodsService.queryGoodsModelNum(0, warehouseId, model.getBaseGoodsModelsId(), 1, null);
                lWhProcureModel.setWorehouseCount(goodsNum);
            //3.当业务类型为部门分发时 添加部门分发记录和使用人
            // 单据类型 1 采购2 调拨 3出库4部门分发
            if (model.getProcureModelBusinessType() == 4) {
                List<LWhProcureModelUser> procureModelUserList = Lists.newArrayList();
                for (LWhProcureModelUserDTO lWhProcureModelUserDTO : model.getLWhProcureModelUserList()) {
                    LWhProcureModelUser lWhProcureModelUser = new LWhProcureModelUser();
                    lWhProcureModelUser.setId(IdUtil.generateId());
                    lWhProcureModelUser.setTransBusinessId(lWhFormTransferId);
                    lWhProcureModelUser.setWhProcureModelId(lWhProcureModel.getId());
                    lWhProcureModelUser.setBaseGoodsModelsId(model.getBaseGoodsModelsId());
                    lWhProcureModelUser.setNowUserName(lWhProcureModelUserDTO.getNowUserName());
                    lWhProcureModelUser.setNowUserPhone(lWhProcureModelUserDTO.getNowUserPhone());
                    lWhProcureModelUser.setGoodsNum(lWhProcureModelUserDTO.getGoodsNum());
                    procureModelUserList.add(lWhProcureModelUser);
                //3.当业务类型为部门分发时 添加部门分发记录和使用人
                // 单据类型 1 采购2 调拨 3出库4部门分发
                //TODO 部门分发类型
                if (businessType == 1) {
                    List<LWhProcureModelUser> procureModelUserList = Lists.newArrayList();
                    for (LWhProcureModelUserParam lWhProcureModelUserParam : model.getProcureModelUserList()) {
                        LWhProcureModelUser lWhProcureModelUser = new LWhProcureModelUser();
                        lWhProcureModelUser.setId(IdUtil.generateId());
                        lWhProcureModelUser.setTransBusinessId(lWhFormTransferId);
                        lWhProcureModelUser.setWhProcureModelId(lWhProcureModel.getId());
                        lWhProcureModelUser.setBaseGoodsModelsId(model.getBaseGoodsModelsId());
                        lWhProcureModelUser.setNowUserName(lWhProcureModelUserParam.getNowUserName());
                        lWhProcureModelUser.setNowUserPhone(lWhProcureModelUserParam.getNowUserPhone());
                        lWhProcureModelUser.setGoodsNum(lWhProcureModelUserParam.getGoodsNum());
                        procureModelUserList.add(lWhProcureModelUser);
                    }
                    int procureInsertNum = lWhProcureModelUserService.insert(procureModelUserList);
                    if (procureInsertNum != procureModelUserList.size()) {
                        log.error("新增物品使用信息失败");
                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                        return 0;
                    }
                }
                int procureInsertNum = lWhProcureModelUserService.insert(procureModelUserList);
                if (procureInsertNum != procureModelUserList.size()) {
                    log.error("新增物品使用信息失败");
                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                    return 0;
                }
                modelList.add(lWhProcureModel);
            }
            modelList.add(lWhProcureModel);
        }
        int flag2 = this.lWhProcureModelService.insert(modelList);
@@ -182,18 +206,18 @@
     * @Author 卢庆阳
     * @Date 2023/10/30
     */
    public GenericPager<LWhFormTransfer> queryFormTransferList(TransferQryDto param) {
    public GenericPager<LWhFormTransfer> queryFormTransferList(TransferQry param) {
        HashMap<String, Object> paramts = new HashMap<>();
        StringBuilder sql = new StringBuilder(QUERY_FORM_TRANSFER_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)");
                " 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=2 AND baseTemp.GOODS_NAME LIKE :goodsTemplateName)");
            paramts.put("goodsTemplateName", StringUtils.CHAR_PERCENT + param.getGoodsTemplateName() + StringUtils.CHAR_PERCENT);
        }
        //调拨机构
@@ -226,13 +250,13 @@
            paramts.put("createTimeEnd", param.getCreateTimeEnd() * 1000000 + 240000);
        }
        //接收时间
        if (param.getInTimeStart() != null) {
        if (param.getStartTime() != null) {
            sql.append(" and IN_TIME >=:inTimeStart ");
            paramts.put("inTimeStart", param.getInTimeStart() * 1000000);
            paramts.put("inTimeStart", param.getStartTime() * 1000000);
        }
        if (param.getInTimeEnd() != null) {
        if (param.getEndTime() != null) {
            sql.append(" and IN_TIME <:inTimeEnd ");
            paramts.put("inTimeEnd", param.getInTimeEnd() * 1000000 + 240000);
            paramts.put("inTimeEnd", param.getEndTime() * 1000000 + 240000);
        }
        sql.append(" ORDER BY CREATE_TIME DESC");
@@ -246,15 +270,43 @@
     * @Author 卢庆阳
     * @Date 2023/10/30
     */
    public LWhFormTransferVo getById(Long id) {
        LWhFormTransferVo vo = new LWhFormTransferVo();
    public LWHFromTransferExtendVO getById(Long id) {
        LWHFromTransferExtendVO result = new LWHFromTransferExtendVO();
        //1.查询调拨单
        LWhFormTransfer lWhFormTransfer = this.get(new LWhFormTransfer(id));
        if (lWhFormTransfer != null) {
            BeanUtils.copyProperties(lWhFormTransfer, vo);
            BeanUtils.copyProperties(lWhFormTransfer, result);
        }
        //2.查询物品型号
//        List<LWhProcureModel> models = this.lWhProcureModelService.getModelByForm(WhBusinessEnum.DIAOBO, id);
        String sql = "SELECT bgt.id, CATEGORY_ID, CATEGORY_NAME, GOODS_NAME "
            + "FROM l_wh_procure_model pm LEFT JOIN base_goods_models bgm ON bgm.id = pm.BASE_GOODS_MODELS_ID "
            + "LEFT JOIN base_goods_template bgt ON bgt.id = bgm.GOODS_TEMPLATES_ID "
            + "WHERE pm.BUSINESS_ID =:id GROUP BY bgt.id ";
        Map<String, Object> paramMap = new HashMap<>();
        paramMap.put("id", result.getId());
        List<Map<String, Object>> procureModelList = lWhFormOutputService.select(sql, paramMap, new MapperUtil());
        List<FormTransferGoodsVO> formTransferGoods = Lists.newArrayList();
        for (Map<String, Object> map : procureModelList) {
            FormTransferGoodsVO procureTemplateInfoVO = MapUtils.convertMapToObj(map, FormTransferGoodsVO.class);
            // 查询型号数量
            List<GoodsModelVO> goodsModelVOList = Lists.newArrayList();
            String sql2 = "SELECT pm.id,pm.BASE_GOODS_MODELS_NAME,bgm.UNIT,COUNTS,total_amount "
                + "FROM l_wh_procure_model pm LEFT JOIN base_goods_models bgm ON bgm.id = pm.BASE_GOODS_MODELS_ID "
                + "LEFT JOIN base_goods_template bgt ON bgt.id = bgm.GOODS_TEMPLATES_ID "
                + "WHERE pm.BUSINESS_ID =:id";
            List<Map<String, Object>> modelList = lWhFormOutputService.select(sql2, paramMap, new MapperUtil());
            modelList.forEach(item -> {
                GoodsModelVO goodsModelVO = MapUtils.convertMapToObj(item, GoodsModelVO.class);
                goodsModelVOList.add(goodsModelVO);
            });
            procureTemplateInfoVO.setModels(goodsModelVOList);
            formTransferGoods.add(procureTemplateInfoVO);
        }
        result.setFormTransferGoods(formTransferGoods);
        /*//2.查询物品型号
        //List<LWhProcureModel> models = this.lWhProcureModelService.getModelByForm(WhBusinessEnum.DIAOBO, id);
        List<LWhProcureModel> models = this.lWhProcureModelService.getModelByForm(null, id);
        if (!CollectionUtils.isEmpty(models)) {
@@ -270,8 +322,8 @@
                lWhProcureModelVoList.add(lWhProcureModelVo);
            }
            vo.setModels(lWhProcureModelVoList);
        }
        return vo;
        }*/
        return result;
    }
@@ -324,71 +376,127 @@
        return this.update(lWhFormTransfer);
    }
    public GenericPager<Map<String, Object>> queryTransferInfo(TransferQryDto transferQryDto) {
    public GenericPager<Map<String, Object>> queryTransferInfo(TransferQry transferQry) {
        HashMap<String, Object> paramts = new HashMap<>();
        StringBuilder sql = new StringBuilder("SELECT\n"
            + "\tft.id,\n"
            + "\tft.BUSINESS_FORM_CODE businessCode,\n"
            + "\tbgt.GOODS_NAME goodsName,\n"
            + "\tbgt.CLASSIFICATION goodsType,\n"
            + "\tbgm.id goodsModelId,\n"
            + "\tbgm.MODEL_NAME goodsModelName,\n"
            + "\tpm.COUNTS goodsCount,\n"
            + "\tfst.`name` tennatName,\n"
            + "\tfstd.NAME departmentName,\n"
            + "\tft.OPERATOR_ID distributor,\n"
            + "\tft.CREATE_TIME TIME \n"
            + "FROM\n"
            + "\tl_wh_form_transfer ft\n"
            + "\tLEFT JOIN l_wh_procure_model pm ON ft.ID = pm.BUSINESS_ID\n"
            + "\tLEFT JOIN base_goods_models bgm ON bgm.GOODS_TEMPLATES_ID = pm.BASE_GOODS_MODELS_ID\n"
            + "\tLEFT JOIN base_goods_template bgt ON bgt.id = bgm.GOODS_TEMPLATES_ID\n"
            + "\tLEFT JOIN fin_sys_tenant_user fstu ON fstu.id = ft.OPERATOR_ID\n"
            + "\tLEFT JOIN fin_sys_tenant_department fstd ON fstu.SYS_DEPT_ID = fstd.ID \n"
            + "\tLEFT JOIN fin_sys_tenant fst ON fst.id = fstd.TENANT_ID where 1=1 ");
        StringBuilder sql = new StringBuilder(
            "SELECT\n" + "\tft.id,\n" + "\tft.BUSINESS_FORM_CODE businessCode,\n" + "\tbgt.GOODS_NAME goodsName,\n" + "\tbgt.CLASSIFICATION goodsType,\n"
                + "\tbgm.id goodsModelId,\n" + "\tbgm.MODEL_NAME goodsModelName,\n" + "\tpm.COUNTS goodsCount,\n" + "\tfst.`name` tennatName,\n"
                + "\tfstd.NAME departmentName,\n" + "\tft.OPERATOR_ID distributor,\n" + "\tft.CREATE_TIME TIME \n" + "FROM\n" + "\tl_wh_form_transfer ft\n"
                + "\tLEFT JOIN l_wh_procure_model pm ON ft.ID = pm.BUSINESS_ID\n"
                + "\tLEFT JOIN base_goods_models bgm ON bgm.GOODS_TEMPLATES_ID = pm.BASE_GOODS_MODELS_ID\n"
                + "\tLEFT JOIN base_goods_template bgt ON bgt.id = bgm.GOODS_TEMPLATES_ID\n"
                + "\tLEFT JOIN fin_sys_tenant_user fstu ON fstu.id = ft.OPERATOR_ID\n"
                + "\tLEFT JOIN fin_sys_tenant_department fstd ON fstu.SYS_DEPT_ID = fstd.ID \n"
                + "\tLEFT JOIN fin_sys_tenant fst ON fst.id = fstd.TENANT_ID where 1=1 ");
        //单号
        if (StringUtils.isNotEmpty(transferQryDto.getBusinessFormCode())) {
        if (StringUtils.isNotEmpty(transferQry.getBusinessFormCode())) {
            sql.append("AND BUSINESS_FORM_CODE like :businessFormCode ");
            paramts.put("businessFormCode", StringUtils.CHAR_PERCENT + transferQryDto.getBusinessFormCode() + StringUtils.CHAR_PERCENT);
            paramts.put("businessFormCode", StringUtils.CHAR_PERCENT + transferQry.getBusinessFormCode() + StringUtils.CHAR_PERCENT);
        }
        //物品名称
        if (StringUtils.isNotEmpty(transferQryDto.getGoodsTemplateName())) {
        if (StringUtils.isNotEmpty(transferQry.getGoodsTemplateName())) {
            sql.append("AND bgt.GOODS_NAME like:goodsName ");
            paramts.put("goodsName", StringUtils.CHAR_PERCENT + transferQryDto.getGoodsTemplateName() + StringUtils.CHAR_PERCENT);
            paramts.put("goodsName", StringUtils.CHAR_PERCENT + transferQry.getGoodsTemplateName() + StringUtils.CHAR_PERCENT);
        }
        // 规格型号
        if (transferQryDto.getBaseGoodsTemplateId() != null) {
        if (transferQry.getBaseGoodsModelsId() != null) {
            sql.append("AND bgm.id =:goodsModelId ");
            paramts.put("goodsModelId", transferQryDto.getBaseGoodsTemplateId());
            paramts.put("goodsModelId", transferQry.getBaseGoodsModelsId());
        }
        //调拨机构
        if (transferQryDto.getOutAgencyId() != null) {
        if (transferQry.getOutAgencyId() != null) {
            sql.append("AND OUT_AGENCY_ID = :OUT_AGENCY_ID ");
            paramts.put("OUT_AGENCY_ID", transferQryDto.getOutAgencyId());
            paramts.put("OUT_AGENCY_ID", transferQry.getOutAgencyId());
        }
        //创建人
        if (StringUtils.isNotEmpty(transferQryDto.getOperatorName())) {
        if (StringUtils.isNotEmpty(transferQry.getOperatorName())) {
            sql.append("AND ft.OPERATOR_NAME =:OPERATOR_NAME ");
            paramts.put("OPERATOR_NAME", transferQryDto.getOperatorName());
            paramts.put("OPERATOR_NAME", transferQry.getOperatorName());
        }
        //申请时间
        if (transferQryDto.getCreateTimeStart() != null) {
        if (transferQry.getCreateTimeStart() != null) {
            sql.append("AND ft.CREATE_TIME >=:createTimeStart ");
            paramts.put("createTimeStart", transferQryDto.getCreateTimeStart() * 1000000);
            paramts.put("createTimeStart", transferQry.getCreateTimeStart() * 1000000);
        }
        if (transferQryDto.getCreateTimeEnd() != null) {
        if (transferQry.getCreateTimeEnd() != null) {
            sql.append("AND ft.CREATE_TIME <:createTimeEnd ");
            paramts.put("createTimeEnd", transferQryDto.getCreateTimeEnd() * 1000000 + 240000);
            paramts.put("createTimeEnd", transferQry.getCreateTimeEnd() * 1000000 + 240000);
        }
        sql.append("ORDER BY ft.CREATE_TIME DESC");
        GenericPager<Map<String, Object>> mapGenericPager = this.selectSplit(sql.toString(), paramts, transferQryDto.getPageNum(), transferQryDto.getPageSize(),
        GenericPager<Map<String, Object>> mapGenericPager = this.selectSplit(sql.toString(), paramts, transferQry.getPageNum(), transferQry.getPageSize(),
            new MapRowMapper());
        return mapGenericPager;
    }
    public GenericPager<Map<String, Object>> queryFormTransferDetailList(TransferQry param) {
        HashMap<String, Object> params = new HashMap<>();
        StringBuilder sql = new StringBuilder("SELECT ft.id,\n"
            + "       ft.BUSINESS_FORM_CODE,\n"
            + "       bgt.GOODS_NAME,\n"
            + "       bgt.CLASSIFICATION,\n"
            + "       pm.BASE_GOODS_MODELS_NAME,\n"
            + "       pm.COUNTS,\n"
            + "       ft.IN_AGENCY_NAME,\n"
            + "       ft.OPERATOR_NAME,\n"
            + "       ft.CREATE_TIME,\n"
            + "       ft.IN_TIME,\n"
            + "       ft.OUT_AGENCY_NAME,\n"
            + "       ft.OUT_OPERATOR_NAME,\n"
            + "       ft.OUTPUT_TIME\n"
            + "FROM l_wh_form_transfer ft\n"
            + "         LEFT JOIN l_wh_procure_model pm ON ft.ID = pm.BUSINESS_ID\n"
            + "         LEFT JOIN base_goods_models bgm ON bgm.id = pm.BASE_GOODS_MODELS_ID\n"
            + "         LEFT JOIN base_goods_template bgt ON bgt.id = bgm.GOODS_TEMPLATES_ID where 1=1 ");
        if (StringUtils.isNotEmpty(param.getBusinessFormCode())) {
            sql.append("AND ft.BUSINESS_FORM_CODE = :businessFormCode ");
            params.put("businessFormCode", param.getBusinessFormCode());
        }
        if (StringUtils.isNotEmpty(param.getGoodsTemplateName())) {
            sql.append("AND bgt.GOODS_NAME like :goodsName ");
            params.put("goodsName", StringUtils.CHAR_PERCENT + param.getGoodsTemplateName() + StringUtils.CHAR_PERCENT);
        }
        if (param.getBaseGoodsModelsId() != null) {
            sql.append("AND bgm.id = :goodsModelId ");
            params.put("goodsModelId", param.getBaseGoodsModelsId());
        }
        if (param.getOutAgencyId() != null) {
            sql.append("AND ft.OUT_AGENCY_ID like :outAgencyId ");
            params.put("outAgencyId", param.getOutAgencyId());
        }
        if (param.getOutAgencyId() != null) {
            sql.append("AND ft.IN_AGENCY_ID like :inAgencyId ");
            params.put("inAgencyId", param.getInAgencyId());
        }
        if (StringUtils.isNotEmpty(param.getOperatorName())) {
            sql.append("AND ft.OPERATOR_NAME = :operatorName ");
            params.put("operatorName", param.getOperatorName());
        }
        //申请创建时间
        if (param.getCreateTimeStart() != null) {
            sql.append("AND ft.CREATE_TIME >= :createTimeStart ");
            params.put("createTimeStart", param.getCreateTimeStart() * 1000000);
        }
        if (param.getCreateTimeEnd() != null) {
            sql.append("AND ft.CREATE_TIME < :createTimeEnd ");
            params.put("createTimeEnd", param.getCreateTimeEnd() * 1000000 + 240000);
        }
        //接收时间
        if (param.getStartTime() != null) {
            sql.append("AND ft.IN_TIME >= :createTimeStart ");
            params.put("createTimeStart", param.getStartTime() * 1000000);
        }
        if (param.getEndTime() != null) {
            sql.append("AND ft.IN_TIME < :createTimeEnd ");
            params.put("createTimeEnd", param.getEndTime() * 1000000 + 240000);
        }
        GenericPager<Map<String, Object>> mapGenericPager = this.selectSplit(sql.toString(), params, param.getPageNum(), param.getPageSize(), new MapperUtil());
        return mapGenericPager;
    }
}