futian.liu
2023-12-01 79a57e0844bdd3b5f06ebaac807a0896624be70f
consum-base/src/main/java/com/consum/base/service/LWhFormScrappedServiceImpl.java
@@ -2,25 +2,32 @@
import com.consum.base.core.CodeGeneratorEnum;
import com.consum.base.core.CodeGeneratorService;
import com.consum.base.core.tools.MapRowMapper;
import com.consum.base.pojo.*;
import com.consum.base.util.IdUtil;
import com.consum.base.core.utils.IdUtil;
import com.consum.base.core.utils.MapUtils;
import com.consum.base.core.utils.MapperUtil;
import com.consum.base.core.utils.PageUtil;
import com.consum.base.pojo.LWhFormScrappedGoodsInfoParam;
import com.consum.base.pojo.LWhFormScrappedGoodsModelParams;
import com.consum.base.pojo.LWhFormScrappedParam;
import com.consum.base.pojo.excel.ScrappedInfoExcelTemplate;
import com.consum.base.pojo.query.LWhFormScrappedQry;
import com.consum.base.pojo.response.FormScrappedGoodsDetailVO;
import com.consum.base.pojo.response.FormScrappedGoodsVO;
import com.consum.base.pojo.response.GoodsModelVO;
import com.consum.base.pojo.response.LWhFormScrappedExtendVO;
import com.consum.model.po.*;
import com.iplatform.model.po.S_user_core;
import com.walker.db.page.GenericPager;
import com.walker.infrastructure.utils.DateUtils;
import com.walker.infrastructure.utils.StringUtils;
import com.walker.jdbc.service.BaseServiceImpl;
import org.apache.commons.compress.utils.Lists;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import org.springframework.util.CollectionUtils;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.stream.Collectors;
/**
@@ -30,6 +37,7 @@
 */
@Service
public class LWhFormScrappedServiceImpl extends BaseServiceImpl {
    @Autowired
    private CodeGeneratorService codeGeneratorService;
    @Autowired
@@ -49,29 +57,22 @@
    @Autowired
    private LWhFormScrappedCoreService lWhFormScrappedCoreService;
    private static String QUERY_LIST = "SELECT * FROM l_wh_form_scrapped WHERE 1 = 1";
    private static String QUERY_LIST = "SELECT DISTINCT fs.* FROM l_wh_form_scrapped fs left join l_wh_form_scrapped_goods fsg on fs.id = fsg.FORM_SCRAPPED_ID WHERE 1 = 1 ";
    private static final String QUERY_BF_DETAIL_LIST = "select lwfs.BUSINESS_FORM_CODE,\n" +
            "       lwfsg.GOODS_TEMPLATE_NAME,\n" +
            "       lwfsg.BASE_GOODS_MODELS_NAME,\n" +
            "       lwfsg.COUNTS,\n" +
            "       lwfs.AGENCY_NAME,\n" +
            "       lwfs,OPERATOR_NAME,\n" +
            "       lwfs,DEAL_TIME\n" +
            "from l_wh_form_scrapped lwfs\n" +
            "         inner join l_wh_form_scrapped_goods lwfsg on lwfs.ID = lwfsg.FORM_SCRAPPED_ID ";
    private static final String QUERY_BF_DETAIL_LIST = "select fs.id,fs.BUSINESS_FORM_CODE,fsg.GOODS_TEMPLATE_NAME,fsg.BASE_GOODS_MODELS_NAME,fsg.COUNTS,"
        + "fs.AGENCY_NAME,OPERATOR_NAME,DEAL_TIME from l_wh_form_scrapped fs "
        + "inner join l_wh_form_scrapped_goods fsg on fs.ID = fsg.FORM_SCRAPPED_ID where 1=1 ";
    /**
     * 新增
     *
     * @param param
     * @param currentUser  当前登录用户
     * @param sysInfo      当前登录用户
     * @return
     * @param currentUser 当前登录用户
     * @param sysInfo     当前登录用户
     * @return 1.新增报废单  2.新增报废单物品
     */
    //1.新增报废单
    //2.新增报废单物品
    public int add(LWhFormScrappedParam param, S_user_core currentUser, FinSysTenantUser sysInfo) {
    public int add(LWhFormScrappedParam param,  S_user_core currentUser, FinSysTenantUser sysInfo) {
        //1.新增报废单记录
        LWhFormScrapped lWhFormScrapped = new LWhFormScrapped();
        //报废单id
@@ -79,21 +80,47 @@
        lWhFormScrapped.setId(lWhFormScrappedId);
        lWhFormScrapped.setBusinessFormCode(codeGeneratorService.createBusinessFormCode(CodeGeneratorEnum.Scrapped));
        lWhFormScrapped.setWarehouseType(0);
        Long warehouseId = param.getWarehouseId();
        lWhFormScrapped.setWarehouseId(warehouseId);
        // 公用
        Long warehouseId = null;
        //仓库名称
        String wareHouseName = null;
        warehouseId = param.getWarehouseId();
        //根据仓库id查询仓库
        BaseWarehouse warehouse = this.baseWarehouseService.getById(warehouseId);
        if (warehouse == null) {
            log.error("仓库不存在");
            return 0;
        }
        lWhFormScrapped.setWarehouseName(warehouse.getWarehouseName());
        wareHouseName = warehouse.getWarehouseName();
//        if (0 == 0) {
//            warehouseId = param.getWarehouseId();
//            //根据仓库id查询仓库
//            BaseWarehouse warehouse = this.baseWarehouseService.getById(warehouseId);
//            if (warehouse == null) {
//                log.error("仓库不存在");
//                return 0;
//            }
//            wareHouseName = warehouse.getWarehouseName();
//        } else {
//            // 查询部门名称
//            warehouseId = param.getDepartmentId();
//            FinSysTenantDepartment sysTenantDepartment = departmentService.getById(warehouseId);
//            if (sysTenantDepartment == null) {
//                log.error("部门不存在");
//                return 0;
//            }
//            wareHouseName = sysTenantDepartment.getName();
//        }
        lWhFormScrapped.setWarehouseId(warehouseId);
        lWhFormScrapped.setWarehouseName(wareHouseName);
        lWhFormScrapped.setAgencyId(Long.valueOf(sysInfo.getTenantId()));
        lWhFormScrapped.setAgencyName(sysInfo.getTenantName());
        lWhFormScrapped.setOperatorId(sysInfo.getSysUserId());
        lWhFormScrapped.setOperatorName(sysInfo.getUserName());
        lWhFormScrapped.setDealTime(param.getDealTime());
        lWhFormScrapped.setStates(0);
        lWhFormScrapped.setUploadFiles(param.getUploadFiles());
        //根据部门id查询部门
        FinSysTenantDepartment department = this.departmentService.getById(sysInfo.getSysDeptId());
        if (department != null) {
@@ -107,61 +134,67 @@
        }
        //2.新增报废单物品记录
        //根据物品id查询物品
        BaseGoodsTemplate goodsTemplate = this.baseGoodsTemplateService.get(new BaseGoodsTemplate(param.getBaseGoodsTemplateId()));
        if (goodsTemplate == null) {
            log.error("根据物品id查询物品");
            return 0;
        }
        List<LWhFormScrappedGoodsParams> scrappedGoodsParamList = param.getScrappedGoodsList();
        if (CollectionUtils.isEmpty(scrappedGoodsParamList)) {
            log.error("新增报废单物品记录 失败");
            return 0;
        }
        //获取规格型号id
        List<Long> baseGoodsModelsIdList = scrappedGoodsParamList.stream().map(params -> params.getBaseGoodsModelsId()).collect(Collectors.toList());
        //根据规格型号id查询规格型号
        List<BaseGoodsModels> models = this.baseGoodsModelsService.selectByModelsIdList(baseGoodsModelsIdList);
        Map<Long, BaseGoodsModels> modelMap = models.stream().collect(Collectors.toMap(model -> model.getId(), model -> model));
        //获取报废原因code
        List<String> scrappedCodeList = scrappedGoodsParamList.stream().map(params -> params.getScrappedCode()).collect(Collectors.toList());
        //根据报废原因code查询数据字典
        List<S_dict_data> s_dict_dataList = this.sDictDataService.selectByScrappedCodeList(scrappedCodeList);
        Map<Long, String> scrappedNameMap = s_dict_dataList.stream().collect(Collectors.toMap(s -> s.getDict_code(), s -> s.getDict_label()));
        List<LWhFormScrappedGoods> scrappedGoodsList = new ArrayList<>();
        for (LWhFormScrappedGoodsParams params : scrappedGoodsParamList) {
            LWhFormScrappedGoods scrappedGoods = new LWhFormScrappedGoods();
            scrappedGoods.setId(IdUtil.generateId());
            //根据物品型号查询物品库存
            int goodsNum = this.lWhGoodsService.queryGoodsModelNum(0, warehouseId, scrappedGoods.getBaseGoodsModelsId(), (short) 1, null);
            if (params.getCounts() > goodsNum) {
                log.error("报废数量大于库存数量");
        for (LWhFormScrappedGoodsInfoParam goodsInfo : param.getScrappedGoodsInfo()) {
            BaseGoodsTemplate goodsTemplate = this.baseGoodsTemplateService.get(new BaseGoodsTemplate(goodsInfo.getBaseGoodsTemplateId()));
            if (goodsTemplate == null) {
                log.error("该物品模板不存在");
                return 0;
            }
            scrappedGoods.setCounts(params.getCounts());
            //报废原因
            scrappedGoods.setScrappedCode(params.getScrappedCode());
            scrappedGoods.setScrappedName(scrappedNameMap.get(Long.valueOf(params.getScrappedCode())));
            scrappedGoods.setFormScrappedId(lWhFormScrappedId);
            //物品模板
            scrappedGoods.setBaseGoodsTemplateId(goodsTemplate.getId());
            scrappedGoods.setGoodsTemplateName(goodsTemplate.getGoodsName());
            //规格型号
            Long baseGoodsModelsId = params.getBaseGoodsModelsId();
            BaseGoodsModels baseGoodsModels = modelMap.get(baseGoodsModelsId);
            if (baseGoodsModels != null) {
                scrappedGoods.setBaseGoodsModelsId(baseGoodsModelsId);
                scrappedGoods.setBaseGoodsModelsName(baseGoodsModels.getModelName());
                scrappedGoods.setUnit(baseGoodsModels.getUnit());
            List<LWhFormScrappedGoodsModelParams> scrappedGoodsParamList = goodsInfo.getScrappedGoodsList();
            if (CollectionUtils.isEmpty(scrappedGoodsParamList)) {
                log.error("新增报废单物品记录失败");
                return 0;
            }
            //获取规格型号id
            List<Long> baseGoodsModelsIdList = scrappedGoodsParamList.stream().map(params -> params.getBaseGoodsModelsId()).collect(Collectors.toList());
            //根据规格型号id查询规格型号
            List<BaseGoodsModels> models = this.baseGoodsModelsService.selectByModelsIdList(baseGoodsModelsIdList);
            if (CollectionUtils.isEmpty(models)) {
                log.error("该型号商品不存在");
                return 0;
            }
            Map<Long, BaseGoodsModels> modelMap = models.stream().collect(Collectors.toMap(model -> model.getId(), model -> model));
            //获取报废原因code
            List<String> scrappedCodeList = scrappedGoodsParamList.stream().map(params -> params.getScrappedCode()).collect(Collectors.toList());
            //根据报废原因code查询数据字典
            List<SDictData> SDictDataList = this.sDictDataService.selectByScrappedCodeList(scrappedCodeList);
            Map<Long, String> scrappedNameMap = SDictDataList.stream().collect(Collectors.toMap(s -> s.getDict_code(), s -> s.getDict_label()));
            scrappedGoodsList.add(scrappedGoods);
        }
        int flag2 = this.scrappedGoodsService.insert(scrappedGoodsList);
        if (flag2 != scrappedGoodsList.size()) {
            log.error("新增报废单物品记录 失败");
            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
            return 0;
            List<LWhFormScrappedGoods> scrappedGoodsList = new ArrayList<>();
            for (LWhFormScrappedGoodsModelParams params : scrappedGoodsParamList) {
                LWhFormScrappedGoods scrappedGoods = new LWhFormScrappedGoods();
                scrappedGoods.setId(IdUtil.generateId());
                //根据物品型号查询物品库存
                int goodsNum = this.lWhGoodsService.queryGoodsModelNum(0, warehouseId, scrappedGoods.getBaseGoodsModelsId(), 1, null);
                if (params.getCounts() > goodsNum) {
                    log.error("报废数量大于库存数量");
                    return 0;
                }
                scrappedGoods.setCounts(params.getCounts());
                //报废原因
                scrappedGoods.setScrappedCode(params.getScrappedCode());
                scrappedGoods.setScrappedName(scrappedNameMap.get(Long.valueOf(params.getScrappedCode())));
                scrappedGoods.setFormScrappedId(lWhFormScrappedId);
                //物品模板
                scrappedGoods.setBaseGoodsTemplateId(goodsTemplate.getId());
                scrappedGoods.setGoodsTemplateName(goodsTemplate.getGoodsName());
                //规格型号
                Long baseGoodsModelsId = params.getBaseGoodsModelsId();
                BaseGoodsModels baseGoodsModels = modelMap.get(baseGoodsModelsId);
                if (baseGoodsModels != null) {
                    scrappedGoods.setBaseGoodsModelsId(baseGoodsModelsId);
                    scrappedGoods.setBaseGoodsModelsName(baseGoodsModels.getModelName());
                    scrappedGoods.setUnit(baseGoodsModels.getUnit());
                }
                scrappedGoodsList.add(scrappedGoods);
            }
            int flag2 = this.scrappedGoodsService.insertBatch(scrappedGoodsList);
            if (flag2 != scrappedGoodsList.size()) {
                log.error("新增报废单物品记录 失败");
                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                return 0;
            }
        }
        //3.根据报废单报废物品
        Long lWarehouseFlowId = this.lWhFormScrappedCoreService.outFormByTransId(lWhFormScrappedId, currentUser, param.getDealTime());
@@ -175,91 +208,127 @@
    }
    /**
     * @Description  列表查询
     * @Description 列表查询
     * @Author 卢庆阳
     * @Date 2023/11/2
     */
    public GenericPager queryList(LWhFormScrappedParam param, FinSysTenantUser sysInfo) {
    public PageUtil queryList(LWhFormScrappedQry param, FinSysTenantUser sysInfo) {
        HashMap<String, Object> paramts = new HashMap<>();
        StringBuilder sql = new StringBuilder(QUERY_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)");
            sql.append("and fsg.GOODS_TEMPLATE_NAME LIKE :goodsTemplateName ");
            paramts.put("goodsTemplateName", StringUtils.CHAR_PERCENT + param.getGoodsTemplateName() + StringUtils.CHAR_PERCENT);
        }
        //机构
        sql.append(" and AGENCY_ID like :agencyId ");
        if (param.getAgencyId() != null){
            paramts.put("agencyId",  param.getAgencyId() + StringUtils.CHAR_PERCENT);
        sql.append("and AGENCY_ID like :agencyId ");
        if (param.getAgencyId() != null) {
            paramts.put("agencyId", param.getAgencyId() + StringUtils.CHAR_PERCENT);
        } else {
            paramts.put("agencyId",  sysInfo.getTenantId() + StringUtils.CHAR_PERCENT);
            paramts.put("agencyId", sysInfo.getTenantId() + StringUtils.CHAR_PERCENT);
        }
        //报废时间
        if (param.getDealTimeStart() != null) {
            sql.append(" and DEAL_TIME >=:dealTimeStart ");
            paramts.put("dealTimeStart", param.getDealTimeStart() * 1000000);
        if (param.getStartTime() != null) {
            sql.append("and DEAL_TIME >=:dealTimeStart ");
            paramts.put("dealTimeStart", param.getStartTime() * 1000000);
        }
        if (param.getDealTimeEnd() != null) {
            sql.append(" and DEAL_TIME <:dealTimeEnd ");
            paramts.put("dealTimeEnd", param.getDealTimeEnd() * 1000000 + 240000);
        if (param.getEndTime() != null) {
            sql.append("and DEAL_TIME <:dealTimeEnd ");
            paramts.put("dealTimeEnd", param.getEndTime() * 1000000 + 240000);
        }
        sql.append(" ORDER BY DEAL_TIME DESC");
        sql.append("ORDER BY DEAL_TIME DESC");
        GenericPager genericPager = selectSplit(sql.toString(), paramts, new LWhFormScrapped());
        return genericPager;
        return new PageUtil(genericPager);
    }
    /**
     * @Description  根据id查询详情
     * @Description 根据id查询详情
     * @Author 卢庆阳
     * @Date 2023/11/2
     */
    public LWhFormScrappedExtend getById(Long id) {
        LWhFormScrappedExtend scrappedExtend = new LWhFormScrappedExtend();
    public LWhFormScrappedExtendVO getById(Long id) {
        LWhFormScrappedExtendVO scrappedExtend = new LWhFormScrappedExtendVO();
        //1.查询报废单
        LWhFormScrapped lWhFormScrapped = this.get(new LWhFormScrapped(id));
        if (lWhFormScrapped != null) {
            BeanUtils.copyProperties(lWhFormScrapped,scrappedExtend);
            BeanUtils.copyProperties(lWhFormScrapped, scrappedExtend);
        }
        //2.查询报废单
        List<LWhFormScrappedGoods> scrappedGoodsList = this.scrappedGoodsService.getByFormScrappedId(id);
        if (!CollectionUtils.isEmpty(scrappedGoodsList)) {
            scrappedExtend.setScrappedGoodsList(scrappedGoodsList);
        //通过baseGoodsTemplateId 进行分组
        Map<Long, List<LWhFormScrappedGoods>> map = scrappedGoodsList.stream().collect(Collectors.groupingBy(LWhFormScrappedGoods::getBaseGoodsTemplateId));
        //循环map的key和value
        List<FormScrappedGoodsVO> scrappedGoodsVO = Lists.newArrayList();
        for (Map.Entry<Long, List<LWhFormScrappedGoods>> entry : map.entrySet()) {
            Long baseGoodsTemplateId = entry.getKey();
            List<LWhFormScrappedGoods> goodsList = entry.getValue();
            LWhFormScrappedGoods lWhFormScrappedGoods = goodsList.stream().findFirst().get();
            FormScrappedGoodsVO formScrappedGoodsVO = new FormScrappedGoodsVO();
            formScrappedGoodsVO.setBaseGoodsTemplateId(baseGoodsTemplateId);
            formScrappedGoodsVO.setGoodsName(lWhFormScrappedGoods.getGoodsTemplateName());
            String sql = "select CATEGORY_NAME from base_goods_template where id = :id";
            Map<String, Object> param = new HashMap<>();
            param.put("id", baseGoodsTemplateId);
            List<Map<String, Object>> goodTemplate = this.select(sql, param, new MapperUtil());
            if (!CollectionUtils.isEmpty(goodTemplate)) {
                Optional<Map<String, Object>> first = goodTemplate.stream().findFirst();
                Map<String, Object> objectMap = first.get();
                formScrappedGoodsVO.setCategoryName(objectMap.get("categoryName").toString());
            }
            List<GoodsModelVO> goodsModelList = Lists.newArrayList();
            goodsList.forEach(item -> {
                GoodsModelVO goodsModelVO = new GoodsModelVO();
                goodsModelVO.setId(item.getId());
                goodsModelVO.setBaseGoodsModelsName(item.getBaseGoodsModelsName());
                goodsModelVO.setUnit(item.getUnit());
                goodsModelVO.setCounts(item.getCounts());
                goodsModelVO.setBaseGoodsModelsId(item.getBaseGoodsModelsId());
                goodsModelVO.setScrappedName(item.getScrappedName());
                goodsModelList.add(goodsModelVO);
            });
            formScrappedGoodsVO.setModels(goodsModelList);
            scrappedGoodsVO.add(formScrappedGoodsVO);
        }
        scrappedExtend.setScrappedGoods(scrappedGoodsVO);
        return scrappedExtend;
    }
    /**
     * 报废明细
     *
     * @param param
     * @return
     */
    public GenericPager<Map<String, Object>> queryDetailList(LWhFormScrappedParam param, FinSysTenantUser sysInfo) {
    public PageUtil queryDetailList(LWhFormScrappedQry param, FinSysTenantUser sysInfo) {
        StringBuilder sql = new StringBuilder(QUERY_BF_DETAIL_LIST);
        HashMap<String, Object> paramts = new HashMap<>();
        //报废单号
        if (!StringUtils.isEmpty(param.getBusinessFormCode())) {
            sql.append(" and BUSINESS_FORM_CODE =:BUSINESS_FORM_CODE ");
            paramts.put("BUSINESS_FORM_CODE", StringUtils.CHAR_PERCENT + param.getBusinessFormCode() + StringUtils.CHAR_PERCENT);
            sql.append("and BUSINESS_FORM_CODE =:BUSINESS_FORM_CODE ");
            paramts.put("BUSINESS_FORM_CODE", param.getBusinessFormCode());
        }
        //物品名称
        if (!StringUtils.isEmpty(param.getGoodsTemplateName())) {
            sql.append(" and GOODS_TEMPLATE_NAME =:GOODS_TEMPLATE_NAME ");
            sql.append("and GOODS_TEMPLATE_NAME like: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 ");
            sql.append("and BASE_GOODS_MODELS_ID =:BASE_GOODS_MODELS_ID ");
            paramts.put("BASE_GOODS_MODELS_ID", param.getBaseGoodsModelsId());
        }
        //机构
        sql.append(" and AGENCY_ID like:AGENCY_ID ");
        sql.append("and AGENCY_ID like:AGENCY_ID ");
        if (param.getAgencyId() != null) {
            paramts.put("AGENCY_ID", param.getAgencyId() + StringUtils.CHAR_PERCENT);
        } else {
@@ -267,45 +336,63 @@
        }
        //创建人
        if (!StringUtils.isEmpty(param.getOperatorName())) {
            sql.append(" and OPERATOR_NAME =:OPERATOR_NAME ");
            sql.append("and OPERATOR_NAME =:OPERATOR_NAME ");
            paramts.put("OPERATOR_NAME", StringUtils.CHAR_PERCENT + param.getOperatorName() + StringUtils.CHAR_PERCENT);
        }
        //结束时间
        if (param.getDealTimeStart() != null) {
            sql.append(" and DEAL_TIME >=:dealTimeStart ");
            paramts.put("dealTimeStart", param.getDealTimeStart() * 1000000);
        if (param.getStartTime() != null) {
            sql.append("and DEAL_TIME >=:dealTimeStart ");
            paramts.put("dealTimeStart", param.getStartTime() * 1000000);
        }
        if (param.getDealTimeEnd() != null) {
            sql.append(" and DEAL_TIME <:dealTimeEnd ");
            paramts.put("dealTimeEnd", param.getDealTimeEnd() * 1000000 + 240000);
        if (param.getEndTime() != null) {
            sql.append("and DEAL_TIME <:dealTimeEnd ");
            paramts.put("dealTimeEnd", param.getEndTime() * 1000000 + 240000);
        }
        sql.append(" ORDER BY DEAL_TIME DESC ");
        sql.append("ORDER BY DEAL_TIME DESC ");
        GenericPager<Map<String, Object>> mapGenericPager = selectSplit(sql.toString(), paramts, param.getPageNum(), param.getPageSize(), new MapperUtil());
        PageUtil pageUtil = new PageUtil<>(mapGenericPager);
        List<FormScrappedGoodsDetailVO> result = Lists.newArrayList();
        mapGenericPager.getDatas().forEach(item -> {
            FormScrappedGoodsDetailVO formScrappedGoodsDetailVO = MapUtils.convertMapToObj(item, FormScrappedGoodsDetailVO.class);
            result.add(formScrappedGoodsDetailVO);
        });
        pageUtil.setDatas(result);
        return pageUtil;
    }
        return selectSplit(sql.toString(), paramts, param.getPageNum(), param.getPageSize(), new MapRowMapper());
    public List<ScrappedInfoExcelTemplate> export(Long id) {
        String sql =
            "SELECT\n"
                + "\tBUSINESS_FORM_CODE,\n"
                + "\tfs.DEAL_TIME,\n"
                + "\tOPERATOR_NAME,\n"
                + "\tAGENCY_NAME tenantName,\n"
                + "\tGOODS_TEMPLATE_NAME templateName,\n"
                + "\tBASE_GOODS_MODELS_NAME baseModelName,\n"
                + "\tCOUNTS num,\n"
                + "\tSCRAPPED_NAME deception,\n"
                + "\tBEIZ remark\n"
                + "FROM\n"
                + "\tl_wh_form_scrapped_goods fsg\n"
                + "\tLEFT JOIN l_wh_form_scrapped fs ON fs.id = fsg.FORM_SCRAPPED_ID\n"
                + "WHERE\n"
                + "\tfs.ID = :id\n"
                + "\tAND STATES = 1";
        Map<String, Object> param = new HashMap<>();
        param.put("id", id);
        List<Map<String, Object>> select = this.select(sql, param, new MapperUtil());
        if (CollectionUtils.isEmpty(select)) {
            return null;
        }
        List<ScrappedInfoExcelTemplate> list = Lists.newArrayList();
        select.forEach(item -> {
            ScrappedInfoExcelTemplate inventoryExcelTemplate = MapUtils.convertMapToObj(item, ScrappedInfoExcelTemplate.class);
            list.add(inventoryExcelTemplate);
        });
        return list;
    }
    /**
     * @Description  导出报废登记单
     * @Author 卢庆阳
     * @Date 2023/11/2
     */
    public LWhFormScrappedExtend export(Long id, FinSysTenantUser sysInfo) {
        LWhFormScrappedExtend scrappedExtend = new LWhFormScrappedExtend();
        //1.查询报废单
        LWhFormScrapped lWhFormScrapped = this.get(new LWhFormScrapped(id));
        if (lWhFormScrapped != null) {
            lWhFormScrapped.setDealTime(DateUtils.getDateTimeNumber(System.currentTimeMillis()));
            lWhFormScrapped.setOperatorName(sysInfo.getUserName());
            BeanUtils.copyProperties(lWhFormScrapped,scrappedExtend);
        }
        //2.查询报废单物品
        List<LWhFormScrappedGoods> scrappedGoodsList = this.scrappedGoodsService.getByFormScrappedId(id);
        if (!CollectionUtils.isEmpty(scrappedGoodsList)) {
            scrappedExtend.setScrappedGoodsList(scrappedGoodsList);
        }
        return scrappedExtend;
    }
}