From 0d704977a91adb83c3ff9c1769fe4b73fc54a565 Mon Sep 17 00:00:00 2001 From: futian.liu <liufutianyoo@163.com> Date: 星期四, 21 十二月 2023 17:29:38 +0800 Subject: [PATCH] 采购单模板下载和导入 --- consum-base/src/main/java/com/consum/base/service/DepFormScrappedServiceImpl.java | 163 ++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 150 insertions(+), 13 deletions(-) diff --git a/consum-base/src/main/java/com/consum/base/service/DepFormScrappedServiceImpl.java b/consum-base/src/main/java/com/consum/base/service/DepFormScrappedServiceImpl.java index cc9a437..4b178c1 100644 --- a/consum-base/src/main/java/com/consum/base/service/DepFormScrappedServiceImpl.java +++ b/consum-base/src/main/java/com/consum/base/service/DepFormScrappedServiceImpl.java @@ -3,6 +3,8 @@ import cn.hutool.core.convert.Convert; import com.consum.base.core.CodeGeneratorEnum; import com.consum.base.core.CodeGeneratorService; +import com.consum.base.core.DepFormScrappedCoreServiceImpl; +import com.consum.base.core.utils.IdUtil; import com.consum.base.core.utils.MapperUtil; import com.consum.base.pojo.DepFormScrappedGoodsParam; import com.consum.base.pojo.DepFormScrappedModelParam; @@ -15,7 +17,6 @@ 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.infrastructure.utils.StringUtils; import com.walker.jdbc.service.BaseServiceImpl; import com.walker.web.ResponseValue; @@ -43,15 +44,18 @@ @Resource private CodeGeneratorService codeGeneratorService; @Resource - private FinSysTenantDepartmentServiceImpl departmentService; + private FinSysTenantDepartmentService departmentService; @Resource - private LWhFormTransferServiceImpl lWhFormTransferService; + private LWhFormTransferService lWhFormTransferService; @Resource - private BaseCategoryServiceImpl baseCategoryService; + private BaseCategoryService baseCategoryService; @Resource private SDictDataServiceImpl sDictDataService; @Resource - private BaseGoodsModelsServiceImpl baseGoodsModelsService; + private BaseGoodsModelsService baseGoodsModelsService; + + @Resource + private DepFormScrappedCoreServiceImpl depFormScrappedCoreService; @Transactional public ResponseValue add(LDeptFormScrappedParam param, S_user_core currentUser, FinSysTenantUser sysInfo) { @@ -60,7 +64,7 @@ //1.鏂板鎶ュ簾鍗曡褰� DepFormScrapped lDeptFormScrapped = new DepFormScrapped(); //鎶ュ簾鍗昳d - long lWhFormScrappedId = NumberGenerator.getLongSequenceNumber(); + long lWhFormScrappedId = IdUtil.generateId(); lDeptFormScrapped.setId(lWhFormScrappedId); lDeptFormScrapped.setBusinessFormCode(codeGeneratorService.createBusinessFormCode(CodeGeneratorEnum.Scrapped)); lDeptFormScrapped.setProcureDoc(param.getProcureDoc()); @@ -86,7 +90,6 @@ lDeptFormScrapped.setDepartmentName(department.getName()); } - lDeptFormScrapped.setCreateTime(dealTime); lDeptFormScrapped.setStates(1); @@ -100,7 +103,7 @@ for (DepFormScrappedGoodsParam depFormScrappedGoodsParam : scrappedGoodsInfo) { DepFormScrappedGoods depFormScrappedGoods = new DepFormScrappedGoods(); - depFormScrappedGoods.setId(NumberGenerator.getLongSequenceNumber()); + depFormScrappedGoods.setId(IdUtil.generateId()); depFormScrappedGoods.setDepFormScrappedId(lWhFormScrappedId); depFormScrappedGoods.setBaseGoodsTemplateId(depFormScrappedGoodsParam.getBaseGoodsTemplateId()); depFormScrappedGoods.setBaseGoodsTemplateName(depFormScrappedGoodsParam.getGoodsTemplateName()); @@ -138,7 +141,7 @@ for (DepFormScrappedModelParam depFormScrappedModelParam : modelList) { DepFormScrappedModel depFormScrappedModel = new DepFormScrappedModel(); - depFormScrappedModel.setId(NumberGenerator.getLongSequenceNumber()); + depFormScrappedModel.setId(IdUtil.generateId()); depFormScrappedModel.setDepFormScrappedId(lWhFormScrappedId); depFormScrappedModel.setDepFormScrappedGoodsId(depFormScrappedGoods.getId()); //鎶ュ簾鍘熷洜 @@ -183,6 +186,7 @@ } int i = insertBatch(scrappedGoodsArrayList); int i2 = insertBatch(modelArrayList); + depFormScrappedCoreService.updateScrapped(lWhFormScrappedId,currentUser,dealTime); return ResponseValue.success(); } @@ -202,8 +206,8 @@ paramts.put("businessFormCode", param.getBusinessFormCode()); } //鏈烘瀯 - sql.append(" and scrap.AGENCY_ID = :agencyId "); if (param.getAgencyId() != null) { + sql.append(" and scrap.AGENCY_ID = :agencyId "); paramts.put("agencyId", param.getAgencyId()); } //鐗╁搧鍚嶇О @@ -244,6 +248,7 @@ //2.鏌ヨ鎶ュ簾鍗曠墿鍝� DepFormScrappedGoods goodsQuery = new DepFormScrappedGoods(); + goodsQuery.setDepFormScrappedId(id); List<DepFormScrappedGoods> formScrappedGoodsList = select(goodsQuery); List<Map> goodsList = new ArrayList<>(); for (DepFormScrappedGoods scrappedGoods : formScrappedGoodsList) { @@ -253,15 +258,21 @@ DepFormScrappedModel depFormScrappedModel = new DepFormScrappedModel(); depFormScrappedModel.setDepFormScrappedGoodsId(scrappedGoodsId); List<DepFormScrappedModel> scrappedModelList = select(depFormScrappedModel); - scrappedGoodsMap.put("models", scrappedModelList); + List<List<DepFormScrappedModel>> modelList = scrappedModelList.stream() + .collect(Collectors.groupingBy(DepFormScrappedModel::getBaseGoodsModelsId)) + .values().stream() + .map(list -> list.stream().collect(Collectors.toList())) + .collect(Collectors.toList()); + + scrappedGoodsMap.put("models", modelList); goodsList.add(scrappedGoodsMap); } scrappedExtend.setGoods(goodsList); return scrappedExtend; } - private static String EXPORT_SQL = "SELECT scrap.BUSINESS_FORM_CODE,scrap.DEAL_TIME,scrap.OPERATOR_NAME,scrap.AGENCY_NAME,model.BASE_GOODS_TEMPLATE_NAME,model.BASE_GOODS_MODELS_NAME,scrap.OUT_WAREHOUSE_NAME,model.COUNTS,2 AS TOTAL_PRICE,model.SCRAPPED_NAME,NULL AS bz FROM DEP_FORM_SCRAPPED scrap LEFT JOIN DEP_FORM_SCRAPPED_MODEL model ON scrap.id=model.DEP_FORM_SCRAPPED_ID WHERE 1=1 "; - private static String EXPORT_SQL_END = "order by scrap.BUSINESS_FORM_CODE desc "; + private static String EXPORT_SQL = "SELECT scrap.id,scrap.BUSINESS_FORM_CODE,model.BASE_GOODS_TEMPLATE_NAME,model.BASE_GOODS_MODELS_NAME,model.COUNTS,scrap.AGENCY_NAME,scrap.DEPARTMENT_NAME,scrap.OPERATOR_NAME,scrap.DEAL_TIME,scrap.OUT_WAREHOUSE_NAME,ROUND( IFNULL( TOTAL_AMOUNT, 0 )/ 100, 2 ) AS TOTAL_PRICE,model.SCRAPPED_NAME,NULL AS bz FROM DEP_FORM_SCRAPPED scrap LEFT JOIN DEP_FORM_SCRAPPED_MODEL model ON scrap.id=model.DEP_FORM_SCRAPPED_ID WHERE 1=1 "; + private static String EXPORT_SQL_END = "order by scrap.DEAL_TIME DESC"; public List<Map<String, Object>> export(Long id, String agencyId) { HashMap<String, Object> paramts = new HashMap<>(); @@ -278,4 +289,130 @@ } return select(sql.append(EXPORT_SQL_END).toString(), paramts, new MapperUtil()); } + + public List<Map<String, Object>> listByModel(LDeptFormScrappedQry param) { + HashMap<String, Object> paramts = new HashMap<>(); + StringBuilder sql = new StringBuilder(EXPORT_SQL); + //鎶ュ簾鍗昳d + if (param.getId() != null) { + sql.append(" and scrap.id = :id"); + paramts.put("id", param.getId()); + } + //鎶ュ簾鍗曞彿 + if (param.getBusinessFormCode() != null) { + sql.append(" and scrap.BUSINESS_FORM_CODE= :businessFormCode"); + paramts.put("businessFormCode", param.getBusinessFormCode()); + } + //鐗╁搧鍚嶇О + if (StringUtils.isNotEmpty(param.getGoodsTemplateName())) { + sql.append(" and model.BASE_GOODS_TEMPLATE_NAME LIKE :goodsTemplateName "); + paramts.put("goodsTemplateName", StringUtils.CHAR_PERCENT + param.getGoodsTemplateName() + StringUtils.CHAR_PERCENT); + } + //瑙勬牸鍨嬪彿 + if (param.getBaseGoodsModelsId() != null) { + sql.append("and model.BASE_GOODS_MODELS_ID =:baseGoodsModelsId "); + paramts.put("baseGoodsModelsId", param.getBaseGoodsModelsId()); + } + + //鏈烘瀯 + if (param.getAgencyId() != null) { + sql.append(" and scrap.AGENCY_ID = :agencyId "); + paramts.put("agencyId", param.getAgencyId()); + } + // 閮ㄩ棬 姝ゅ鎸夌殑鏄墿鍝佷娇鐢ㄩ儴闂� 鑰屼笉鏄� 鎿嶄綔浜烘墍鍦ㄩ儴闂� + if (param.getDepartmentId() != null) { + sql.append(" and scrap.OUT_WAREHOUSE_ID= :departmentId"); + paramts.put("departmentId", param.getDepartmentId()); + } + //鍒涘缓浜� + if (!StringUtils.isEmpty(param.getOperatorName())) { + sql.append(" and scrap.OPERATOR_NAME LIKE :operatorName "); + paramts.put("operatorName", StringUtils.CHAR_PERCENT + param.getOperatorName() + StringUtils.CHAR_PERCENT); + } + //鎶ュ簾鏃堕棿 + if (param.getStartTime() != null) { + sql.append(" and scrap.DEAL_TIME >=:dealTimeStart "); + paramts.put("dealTimeStart", param.getStartTime() * 1000000); + } + if (param.getEndTime() != null) { + sql.append(" and scrap.DEAL_TIME <:dealTimeEnd "); + paramts.put("dealTimeEnd", param.getEndTime() * 1000000 + 240000); + } + return select(sql.append(EXPORT_SQL_END).toString(), paramts, new MapperUtil()); + } + + public GenericPager<Map<String, Object>> listByModel2(LDeptFormScrappedQry param) { + HashMap<String, Object> paramts = new HashMap<>(); + StringBuilder sql = new StringBuilder(EXPORT_SQL); + //鎶ュ簾鍗昳d + if (param.getId() != null) { + sql.append(" and scrap.id = :id"); + paramts.put("id", param.getId()); + } + //鎶ュ簾鍗曞彿 + if (param.getBusinessFormCode() != null) { + sql.append(" and scrap.BUSINESS_FORM_CODE= :businessFormCode"); + paramts.put("businessFormCode", param.getBusinessFormCode()); + } + //鐗╁搧鍚嶇О + if (StringUtils.isNotEmpty(param.getGoodsTemplateName())) { + sql.append(" and model.BASE_GOODS_TEMPLATE_NAME LIKE :goodsTemplateName "); + paramts.put("goodsTemplateName", StringUtils.CHAR_PERCENT + param.getGoodsTemplateName() + StringUtils.CHAR_PERCENT); + } + //瑙勬牸鍨嬪彿 + if (param.getBaseGoodsModelsId() != null) { + sql.append("and model.BASE_GOODS_MODELS_ID =:baseGoodsModelsId "); + paramts.put("baseGoodsModelsId", param.getBaseGoodsModelsId()); + } + + //鏈烘瀯 + if (param.getAgencyId() != null) { + sql.append(" and scrap.AGENCY_ID = :agencyId "); + paramts.put("agencyId", param.getAgencyId()); + } + // 閮ㄩ棬 姝ゅ鎸夌殑鏄墿鍝佷娇鐢ㄩ儴闂� 鑰屼笉鏄� 鎿嶄綔浜烘墍鍦ㄩ儴闂� + if (param.getDepartmentId() != null) { + sql.append(" and scrap.OUT_WAREHOUSE_ID= :departmentId"); + paramts.put("departmentId", param.getDepartmentId()); + } + //鍒涘缓浜� + if (!StringUtils.isEmpty(param.getOperatorName())) { + sql.append(" and scrap.OPERATOR_NAME LIKE :operatorName "); + paramts.put("operatorName", StringUtils.CHAR_PERCENT + param.getOperatorName() + StringUtils.CHAR_PERCENT); + } + //鎶ュ簾鏃堕棿 + if (param.getStartTime() != null) { + sql.append(" and scrap.DEAL_TIME >=:dealTimeStart "); + paramts.put("dealTimeStart", param.getStartTime() * 1000000); + } + if (param.getEndTime() != null) { + sql.append(" and scrap.DEAL_TIME <:dealTimeEnd "); + paramts.put("dealTimeEnd", param.getEndTime() * 1000000 + 240000); + } + return selectSplit(sql.append(EXPORT_SQL_END).toString(),paramts, param.getPageNum(), param.getPageSize(), new MapperUtil()); + +// return select(sql.append(EXPORT_SQL_END).toString(), paramts, new MapperUtil()); + } + + private static String GET_BF_MODEL_LIST = "SELECT\n" + + "\tscrGoods.TRANS_BUSINESS_ID,\n" + + "\tscrGoods.BUSINESS_FORM_CODE,\n" + + "\tscrGoods.TRANS_OUT_WAREHOUSE_TYPE,\n" + + "\tscrGoods.TRANS_OUT_WAREHOUSE_ID,\n" + + "\tgoodsModel.BASE_GOODS_TEMPLATE_ID,\n" + + "\tgoodsModel.COUNTS,\n" + + "\tgoodsModel.PROCURE_MODEL_USER_ID,\n" + + "\tgoodsModel.GOODS_USER_NAME \n" + + "FROM\n" + + "\tDEP_FORM_SCRAPPED_GOODS scrGoods\n" + + "\tLEFT JOIN DEP_FORM_SCRAPPED_MODEL goodsModel ON scrgoods.id = goodsModel.DEP_FORM_SCRAPPED_GOODS_ID"; + + public List<Map<String, Object>> getBfModelList(Long lWhFormScrappedId) { + HashMap<String, Object> paramts = new HashMap<>(); + StringBuilder sql = new StringBuilder(GET_BF_MODEL_LIST); + //鎶ュ簾鍗昳d + sql.append(" and scrGoods.DEP_FORM_SCRAPPED_ID = :lWhFormScrappedId"); + paramts.put("lWhFormScrappedId", lWhFormScrappedId); + return select(sql.toString(), paramts, new MapperUtil()); + } } -- Gitblit v1.9.1