From ceecebe477faf5a45b19f3b258f7add8f93b4583 Mon Sep 17 00:00:00 2001 From: futian.liu <liufutianyoo@163.com> Date: 星期二, 05 十二月 2023 10:00:24 +0800 Subject: [PATCH] 代码优化 结构调整 --- consum-base/src/main/java/com/consum/base/service/impl/LWhFormScrappedServiceImpl.java | 198 +++++++++++++++++++++++++++++-------------------- 1 files changed, 117 insertions(+), 81 deletions(-) diff --git a/consum-base/src/main/java/com/consum/base/service/LWhFormScrappedServiceImpl.java b/consum-base/src/main/java/com/consum/base/service/impl/LWhFormScrappedServiceImpl.java similarity index 71% rename from consum-base/src/main/java/com/consum/base/service/LWhFormScrappedServiceImpl.java rename to consum-base/src/main/java/com/consum/base/service/impl/LWhFormScrappedServiceImpl.java index aa78516..9a3e556 100644 --- a/consum-base/src/main/java/com/consum/base/service/LWhFormScrappedServiceImpl.java +++ b/consum-base/src/main/java/com/consum/base/service/impl/LWhFormScrappedServiceImpl.java @@ -1,4 +1,18 @@ -package com.consum.base.service; +package com.consum.base.service.impl; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Optional; +import java.util.stream.Collectors; + +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 com.consum.base.core.CodeGeneratorEnum; import com.consum.base.core.CodeGeneratorService; @@ -14,7 +28,17 @@ 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.GoodsTemplateCountVO; import com.consum.base.pojo.response.LWhFormScrappedExtendVO; +import com.consum.base.service.BaseGoodsModelsService; +import com.consum.base.service.BaseGoodsTemplateService; +import com.consum.base.service.BaseWarehouseService; +import com.consum.base.service.FinSysTenantDepartmentService; +import com.consum.base.service.LWhFormScrappedCoreService; +import com.consum.base.service.LWhFormScrappedGoodsService; +import com.consum.base.service.LWhFormScrappedService; +import com.consum.base.service.LWhGoodsService; +import com.consum.base.service.SDictDataServiceImpl; import com.consum.model.po.BaseGoodsModels; import com.consum.model.po.BaseGoodsTemplate; import com.consum.model.po.BaseWarehouse; @@ -27,18 +51,6 @@ import com.walker.db.page.GenericPager; import com.walker.infrastructure.utils.StringUtils; import com.walker.jdbc.service.BaseServiceImpl; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Optional; -import java.util.stream.Collectors; -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; /** * @Description 鎶ュ簾鍗� @@ -46,7 +58,7 @@ * @Date 2023/11/1 */ @Service -public class LWhFormScrappedServiceImpl extends BaseServiceImpl { +public class LWhFormScrappedServiceImpl extends BaseServiceImpl implements LWhFormScrappedService { @Autowired private CodeGeneratorService codeGeneratorService; @@ -67,25 +79,27 @@ @Autowired private LWhFormScrappedCoreService lWhFormScrappedCoreService; - 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 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 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 "; + 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 1.鏂板鎶ュ簾鍗� 2.鏂板鎶ュ簾鍗曠墿鍝� + * @param sysInfo 褰撳墠鐧诲綍鐢ㄦ埛 + * @return 1.鏂板鎶ュ簾鍗� 2.鏂板鎶ュ簾鍗曠墿鍝� */ - + @Override public int add(LWhFormScrappedParam param, S_user_core currentUser, FinSysTenantUser sysInfo) { - //1.鏂板鎶ュ簾鍗曡褰� + // 1.鏂板鎶ュ簾鍗曡褰� LWhFormScrapped lWhFormScrapped = new LWhFormScrapped(); - //鎶ュ簾鍗昳d + // 鎶ュ簾鍗昳d long lWhFormScrappedId = IdUtil.generateId(); lWhFormScrapped.setId(lWhFormScrappedId); lWhFormScrapped.setBusinessFormCode(codeGeneratorService.createBusinessFormCode(CodeGeneratorEnum.Scrapped)); @@ -93,10 +107,10 @@ // 鍏敤 Long warehouseId = null; - //浠撳簱鍚嶇О + // 浠撳簱鍚嶇О String wareHouseName = null; warehouseId = param.getWarehouseId(); - //鏍规嵁浠撳簱id鏌ヨ浠撳簱 + // 鏍规嵁浠撳簱id鏌ヨ浠撳簱 BaseWarehouse warehouse = this.baseWarehouseService.getById(warehouseId); if (warehouse == null) { log.error("浠撳簱涓嶅瓨鍦�"); @@ -112,7 +126,7 @@ lWhFormScrapped.setDealTime(param.getDealTime()); lWhFormScrapped.setStates(0); lWhFormScrapped.setUploadFiles(param.getUploadFiles()); - //鏍规嵁閮ㄩ棬id鏌ヨ閮ㄩ棬 + // 鏍规嵁閮ㄩ棬id鏌ヨ閮ㄩ棬 FinSysTenantDepartment department = this.departmentService.getById(sysInfo.getSysDeptId()); if (department != null) { lWhFormScrapped.setDepartmentId(sysInfo.getSysDeptId()); @@ -123,10 +137,11 @@ log.error("鏂板鎶ュ簾鍗曞け璐�"); return 0; } - //2.鏂板鎶ュ簾鍗曠墿鍝佽褰� - //鏍规嵁鐗╁搧id鏌ヨ鐗╁搧 + // 2.鏂板鎶ュ簾鍗曠墿鍝佽褰� + // 鏍规嵁鐗╁搧id鏌ヨ鐗╁搧 for (LWhFormScrappedGoodsInfoParam goodsInfo : param.getScrappedGoodsInfo()) { - BaseGoodsTemplate goodsTemplate = this.baseGoodsTemplateService.get(new BaseGoodsTemplate(goodsInfo.getBaseGoodsTemplateId())); + BaseGoodsTemplate goodsTemplate = + this.baseGoodsTemplateService.get(new BaseGoodsTemplate(goodsInfo.getBaseGoodsTemplateId())); if (goodsTemplate == null) { log.error("璇ョ墿鍝佹ā鏉夸笉瀛樺湪"); return 0; @@ -136,40 +151,45 @@ log.error("鏂板鎶ュ簾鍗曠墿鍝佽褰曞け璐�"); return 0; } - //鑾峰彇瑙勬牸鍨嬪彿id - List<Long> baseGoodsModelsIdList = scrappedGoodsParamList.stream().map(params -> params.getBaseGoodsModelsId()).collect(Collectors.toList()); - //鏍规嵁瑙勬牸鍨嬪彿id鏌ヨ瑙勬牸鍨嬪彿 + // 鑾峰彇瑙勬牸鍨嬪彿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鏌ヨ鏁版嵁瀛楀吀 + 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())); + Map<Long, String> scrappedNameMap = + SDictDataList.stream().collect(Collectors.toMap(s -> s.getDict_code(), s -> s.getDict_label())); 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); + // 鏍规嵁鐗╁搧鍨嬪彿鏌ヨ鐗╁搧搴撳瓨 + 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) { @@ -187,8 +207,9 @@ return 0; } } - //3.鏍规嵁鎶ュ簾鍗曟姤搴熺墿鍝� - Long lWarehouseFlowId = this.lWhFormScrappedCoreService.outFormByTransId(lWhFormScrappedId, currentUser, param.getDealTime()); + // 3.鏍规嵁鎶ュ簾鍗曟姤搴熺墿鍝� + Long lWarehouseFlowId = + this.lWhFormScrappedCoreService.outFormByTransId(lWhFormScrappedId, currentUser, param.getDealTime()); if (lWarehouseFlowId == null) { log.error("鏍规嵁鍑哄簱鍗曞嚭搴� 澶辫触"); TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); @@ -203,27 +224,29 @@ * @Author 鍗㈠簡闃� * @Date 2023/11/2 */ + @Override 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 = :businessFormCode "); paramts.put("businessFormCode", param.getBusinessFormCode()); } - //鐗╁搧鍚嶇О + // 鐗╁搧鍚嶇О if (!StringUtils.isEmpty(param.getGoodsTemplateName())) { sql.append("and fsg.GOODS_TEMPLATE_NAME LIKE :goodsTemplateName "); - paramts.put("goodsTemplateName", StringUtils.CHAR_PERCENT + param.getGoodsTemplateName() + StringUtils.CHAR_PERCENT); + 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); } else { paramts.put("agencyId", sysInfo.getTenantId() + StringUtils.CHAR_PERCENT); } - //鎶ュ簾鏃堕棿 + // 鎶ュ簾鏃堕棿 if (param.getStartTime() != null) { sql.append("and DEAL_TIME >=:dealTimeStart "); paramts.put("dealTimeStart", param.getStartTime() * 1000000); @@ -243,18 +266,20 @@ * @Author 鍗㈠簡闃� * @Date 2023/11/2 */ + @Override public LWhFormScrappedExtendVO getById(Long id) { LWhFormScrappedExtendVO scrappedExtend = new LWhFormScrappedExtendVO(); - //1.鏌ヨ鎶ュ簾鍗� + // 1.鏌ヨ鎶ュ簾鍗� LWhFormScrapped lWhFormScrapped = this.get(new LWhFormScrapped(id)); if (lWhFormScrapped != null) { BeanUtils.copyProperties(lWhFormScrapped, scrappedExtend); } - //2.鏌ヨ鎶ュ簾鍗� + // 2.鏌ヨ鎶ュ簾鍗� List<LWhFormScrappedGoods> scrappedGoodsList = this.scrappedGoodsService.getByFormScrappedId(id); - //閫氳繃baseGoodsTemplateId 杩涜鍒嗙粍 - Map<Long, List<LWhFormScrappedGoods>> map = scrappedGoodsList.stream().collect(Collectors.groupingBy(LWhFormScrappedGoods::getBaseGoodsTemplateId)); - //寰幆map鐨刱ey鍜寁alue + // 閫氳繃baseGoodsTemplateId 杩涜鍒嗙粍 + Map<Long, List<LWhFormScrappedGoods>> map = + scrappedGoodsList.stream().collect(Collectors.groupingBy(LWhFormScrappedGoods::getBaseGoodsTemplateId)); + // 寰幆map鐨刱ey鍜寁alue List<FormScrappedGoodsVO> scrappedGoodsVO = Lists.newArrayList(); for (Map.Entry<Long, List<LWhFormScrappedGoods>> entry : map.entrySet()) { Long baseGoodsTemplateId = entry.getKey(); @@ -299,39 +324,41 @@ * @param param * @return */ + @Override 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", param.getBusinessFormCode()); } - //鐗╁搧鍚嶇О + // 鐗╁搧鍚嶇О if (!StringUtils.isEmpty(param.getGoodsTemplateName())) { sql.append("and GOODS_TEMPLATE_NAME like:GOODS_TEMPLATE_NAME "); - paramts.put("GOODS_TEMPLATE_NAME", StringUtils.CHAR_PERCENT + param.getGoodsTemplateName() + StringUtils.CHAR_PERCENT); + paramts.put("GOODS_TEMPLATE_NAME", + StringUtils.CHAR_PERCENT + param.getGoodsTemplateName() + StringUtils.CHAR_PERCENT); } - //瑙勬牸鍨嬪彿 + // 瑙勬牸鍨嬪彿 if (param.getBaseGoodsModelsId() != null) { sql.append("and BASE_GOODS_MODELS_ID =:BASE_GOODS_MODELS_ID "); paramts.put("BASE_GOODS_MODELS_ID", param.getBaseGoodsModelsId()); } - //鏈烘瀯 + // 鏈烘瀯 sql.append("and AGENCY_ID like:AGENCY_ID "); if (param.getAgencyId() != null) { paramts.put("AGENCY_ID", param.getAgencyId() + StringUtils.CHAR_PERCENT); } else { paramts.put("AGENCY_ID", sysInfo.getTenantId() + StringUtils.CHAR_PERCENT); } - //鍒涘缓浜� + // 鍒涘缓浜� if (!StringUtils.isEmpty(param.getOperatorName())) { sql.append("and OPERATOR_NAME =:OPERATOR_NAME "); paramts.put("OPERATOR_NAME", StringUtils.CHAR_PERCENT + param.getOperatorName() + StringUtils.CHAR_PERCENT); } - //缁撴潫鏃堕棿 + // 缁撴潫鏃堕棿 if (param.getStartTime() != null) { sql.append("and DEAL_TIME >=:dealTimeStart "); paramts.put("dealTimeStart", param.getStartTime() * 1000000); @@ -342,35 +369,27 @@ } sql.append("ORDER BY DEAL_TIME DESC "); - GenericPager<Map<String, Object>> mapGenericPager = selectSplit(sql.toString(), paramts, param.getPageNum(), param.getPageSize(), new MapperUtil()); + 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); + FormScrappedGoodsDetailVO formScrappedGoodsDetailVO = + MapUtils.convertMapToObj(item, FormScrappedGoodsDetailVO.class); result.add(formScrappedGoodsDetailVO); }); pageUtil.setDatas(result); return pageUtil; } + @Override 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"; + 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()); @@ -379,11 +398,28 @@ } List<ScrappedInfoExcelTemplate> list = Lists.newArrayList(); select.forEach(item -> { - ScrappedInfoExcelTemplate inventoryExcelTemplate = MapUtils.convertMapToObj(item, ScrappedInfoExcelTemplate.class); + ScrappedInfoExcelTemplate inventoryExcelTemplate = + MapUtils.convertMapToObj(item, ScrappedInfoExcelTemplate.class); list.add(inventoryExcelTemplate); }); return list; } + @Override + public List<GoodsTemplateCountVO> getScrappedCountByBusinessId(Long businessId) { + List<GoodsTemplateCountVO> goodsTemplateCount = Lists.newArrayList(); + // 缁熻鍨嬪彿鏁伴噺 + String sql = + "SELECT fsg.BASE_GOODS_TEMPLATE_ID id,fsg.GOODS_TEMPLATE_NAME goodsName,sum(counts) count FROM l_wh_form_scrapped fs left join l_wh_form_scrapped_goods fsg on fs.id = fsg.FORM_SCRAPPED_ID " + + "where fsg.FORM_SCRAPPED_ID =:businessId group by fsg.BASE_GOODS_TEMPLATE_ID"; + Map<String, Object> paramMap = new HashMap<>(); + paramMap.put("businessId", businessId); + List<Map<String, Object>> procureModelList = this.select(sql, paramMap, new MapperUtil()); + for (Map<String, Object> map : procureModelList) { + GoodsTemplateCountVO goodsTemplateCountVO = MapUtils.convertMapToObj(map, GoodsTemplateCountVO.class); + goodsTemplateCount.add(goodsTemplateCountVO); + } + return goodsTemplateCount; + } } -- Gitblit v1.9.1