From bb9b35b41b2a446866ccf22769b116d2631fa56b Mon Sep 17 00:00:00 2001 From: futian.liu <liufutianyoo@163.com> Date: 星期四, 07 十二月 2023 17:50:55 +0800 Subject: [PATCH] 部门分发详情去重 --- consum-base/src/main/java/com/consum/base/service/impl/LWhFormTransferServiceImpl.java | 163 ++++++++++++++++++++++++++++++++++++++---------------- 1 files changed, 115 insertions(+), 48 deletions(-) diff --git a/consum-base/src/main/java/com/consum/base/service/impl/LWhFormTransferServiceImpl.java b/consum-base/src/main/java/com/consum/base/service/impl/LWhFormTransferServiceImpl.java index 103126f..8bd2708 100644 --- a/consum-base/src/main/java/com/consum/base/service/impl/LWhFormTransferServiceImpl.java +++ b/consum-base/src/main/java/com/consum/base/service/impl/LWhFormTransferServiceImpl.java @@ -4,7 +4,9 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.Objects; import java.util.Optional; +import java.util.stream.Collectors; import org.apache.commons.compress.utils.Lists; import org.springframework.beans.BeanUtils; @@ -15,6 +17,7 @@ import com.consum.base.core.CodeGeneratorEnum; import com.consum.base.core.CodeGeneratorService; +import com.consum.base.core.type.CategoryType; import com.consum.base.core.utils.CurrencyUtil; import com.consum.base.core.utils.IdUtil; import com.consum.base.core.utils.MapUtils; @@ -22,22 +25,22 @@ import com.consum.base.pojo.LWhFormTransferGoodsInfoParam; import com.consum.base.pojo.LWhProcureModelUserParam; import com.consum.base.pojo.LWhTransferModelParam; +import com.consum.base.pojo.dto.GoodModelInfoDTO; import com.consum.base.pojo.excel.TransferExcelTemplate; import com.consum.base.pojo.query.TransferQry; import com.consum.base.pojo.request.LWhFormTransferParam; import com.consum.base.pojo.response.DepartGoodsUseInfo; -import com.consum.base.pojo.response.FormTransferGoodsVO; import com.consum.base.pojo.response.GoodsModelVO; +import com.consum.base.pojo.response.GoodsTemplateInfoVO; import com.consum.base.pojo.response.LWHFromTransferExtendVO; import com.consum.base.service.BaseWarehouseManagerService; import com.consum.base.service.BaseWarehouseService; import com.consum.base.service.FinSysTenantServiceImpl; -import com.consum.base.service.LWhFormOutputService; import com.consum.base.service.LWhFormTransferService; import com.consum.base.service.LWhGoodsService; import com.consum.base.service.LWhProcureModelService; import com.consum.base.service.LWhProcureModelUserRecordService; -import com.consum.base.service.LWhProcureModelUserServiceImpl; +import com.consum.base.service.LWhProcureModelUserService; import com.consum.model.po.BaseWarehouse; import com.consum.model.po.BaseWarehouseManager; import com.consum.model.po.FinSysTenant; @@ -47,6 +50,7 @@ import com.consum.model.po.LWhProcureModelUser; import com.consum.model.po.LWhProcureModelUserRecord; import com.walker.db.page.GenericPager; +import com.walker.infrastructure.utils.DateUtils; import com.walker.infrastructure.utils.StringUtils; import com.walker.jdbc.service.BaseServiceImpl; @@ -71,16 +75,16 @@ @Autowired private BaseGoodsModelsServiceImpl baseGoodsModelsService; @Autowired - private LWhProcureModelUserServiceImpl lWhProcureModelUserService; + private LWhProcureModelUserService lWhProcureModelUserService; @Autowired private LWhProcureModelUserRecordService lWhProcureModelUserRecordService; @Autowired private BaseWarehouseManagerService baseWarehouseManagerService; - private static String QUERY_FORM_TRANSFER_LIST = - "SELECT ft.* FROM l_wh_form_transfer ft " + "left join L_WH_PROCURE_MODEL pm on pm.BUSINESS_ID = ft.id " - + "LEFT JOIN BASE_GOODS_MODELS bgm ON pm.BASE_GOODS_MODELS_ID=bgm.ID " - + "LEFT JOIN BASE_GOODS_TEMPLATE bgt ON bgm.GOODS_TEMPLATES_ID=bgt.id WHERE 1 = 1 "; + private static final String QUERY_FORM_TRANSFER_LIST = "SELECT DISTINCT ft.* FROM l_wh_form_transfer ft " + + "left join L_WH_PROCURE_MODEL pm on pm.BUSINESS_ID = ft.id " + + "LEFT JOIN BASE_GOODS_MODELS bgm ON pm.BASE_GOODS_MODELS_ID=bgm.ID " + + "LEFT JOIN BASE_GOODS_TEMPLATE bgt ON bgm.GOODS_TEMPLATES_ID=bgt.id WHERE 1 = 1 "; /** * @Description 鏂板 @@ -134,7 +138,7 @@ Long id = sysInfo.getId(); BaseWarehouseManager manager = new BaseWarehouseManager(); manager.setManagerId(id); - List<BaseWarehouseManager> managerList = baseWarehouseManagerService.selectAll(manager); + List<BaseWarehouseManager> managerList = baseWarehouseManagerService.select(manager); if (CollectionUtils.isEmpty(managerList)) { log.error("璇ョ敤鎴蜂笉鏄簱绠″憳"); throw new Exception("璇ョ敤鎴蜂笉鏄簱绠″憳"); @@ -219,12 +223,14 @@ // 3.褰撲笟鍔$被鍨嬩负閮ㄩ棬鍒嗗彂鏃� 娣诲姞閮ㄩ棬鍒嗗彂璁板綍鍜屼娇鐢ㄤ汉 // 鍗曟嵁绫诲瀷 1 閲囪喘2 璋冩嫧 3鍑哄簱4閮ㄩ棬鍒嗗彂 // 閮ㄩ棬鍒嗗彂绫诲瀷 - if (businessType == 1 && "A".equals(baseModelMap.get("type"))) { + if (businessType == 1 && CategoryType.TYPE_A.getValue().equals(baseModelMap.get("type"))) { + // TODO 閲嶅淇濆瓨 LWhProcureModelUserRecord lWhProcureModelUserRecord = new LWhProcureModelUserRecord(); lWhProcureModelUserRecord.setId(IdUtil.generateId()); lWhProcureModelUserRecord.setTransBusinessId(lWhFormTransferId); lWhProcureModelUserRecord.setOperatorId(sysInfo.getId()); lWhProcureModelUserRecord.setOperatorName(sysInfo.getUserName()); + lWhProcureModelUserRecord.setDealTime(DateUtils.getDateTimeNumber(System.currentTimeMillis())); lWhProcureModelUserRecordService.insert(lWhProcureModelUserRecord); List<LWhProcureModelUser> procureModelUserList = Lists.newArrayList(); @@ -246,7 +252,6 @@ log.error("鏂板鐗╁搧浣跨敤淇℃伅澶辫触"); TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); } - } modelList.add(lWhProcureModel); @@ -348,44 +353,46 @@ result.setDepartmentName(lWhFormTransfer.getInWarehouseName()); } - String sql = "SELECT bgt.id, CATEGORY_ID, CATEGORY_NAME, GOODS_NAME,bgt.CLASSIFICATION type " - + "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 = this.select(sql, paramMap, new MapperUtil()); + List<GoodModelInfoDTO> goodsModelInfo = + lWhProcureModelService.getGoodsModelListByBusinessId(result.getId(), null); + if (CollectionUtils.isEmpty(goodsModelInfo)) { + return result; + } - String queryRecord = - "SELECT * FROM l_wh_procure_model_user_record where TRANS_BUSINESS_ID = :id order by DEAL_TIME desc limit 1"; - LWhProcureModelUserRecord lWhProcureModelUserRecord = - lWhProcureModelUserRecordService.get(queryRecord, paramMap, new LWhProcureModelUserRecord()); - List<FormTransferGoodsVO> formTransferGoods = Lists.newArrayList(); - for (Map<String, Object> map : procureModelList) { - FormTransferGoodsVO procureTemplateInfoVO = MapUtils.convertMapToObj(map, FormTransferGoodsVO.class); - Long baseGoodsTemplateId = procureTemplateInfoVO.getId(); - // 鏌ヨ鍨嬪彿鏁伴噺 - 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 and bgt.id =:baseGoodsTemplateId"; - Map<String, Object> goodsModelParamMap = new HashMap<>(); - goodsModelParamMap.put("id", result.getId()); - goodsModelParamMap.put("baseGoodsTemplateId", baseGoodsTemplateId); - List<Map<String, Object>> modelList = this.select(sql2, goodsModelParamMap, new MapperUtil()); - modelList.forEach(item -> { - GoodsModelVO goodsModelVO = MapUtils.convertMapToObj(item, GoodsModelVO.class); - Integer businessType = result.getBusinessType(); - String type = procureTemplateInfoVO.getType(); + Map<Long, List<GoodModelInfoDTO>> collect = + goodsModelInfo.stream().filter(Objects::nonNull).filter(dto -> dto.getBaseGoodsTemplateId() != null) + .collect(Collectors.groupingBy(GoodModelInfoDTO::getBaseGoodsTemplateId)); + List<GoodsTemplateInfoVO> goodsTemplateInfoList = Lists.newArrayList(); + for (Map.Entry<Long, List<GoodModelInfoDTO>> entry : collect.entrySet()) { + List<GoodModelInfoDTO> value = entry.getValue(); + GoodModelInfoDTO goodModelInfoDTO = value.stream().findFirst().orElse(null); + GoodsTemplateInfoVO goodsTemplateInfoVO = new GoodsTemplateInfoVO(); + if (goodModelInfoDTO != null) { + goodsTemplateInfoVO.setId(goodModelInfoDTO.getId()); + goodsTemplateInfoVO.setCategoryName(goodModelInfoDTO.getCategoryName()); + goodsTemplateInfoVO.setGoodsName(goodModelInfoDTO.getBaseGoodsName()); + goodsTemplateInfoVO.setType(goodModelInfoDTO.getType()); + } + + List<GoodsModelVO> goodsModelList = Lists.newArrayList(); + for (GoodModelInfoDTO goodModelInfo : value) { + GoodsModelVO goodsModelVO = new GoodsModelVO(); + goodsModelVO.setId(goodModelInfo.getId()); + goodsModelVO.setBaseGoodsModelsName(goodModelInfo.getBaseGoodsModelsName()); + goodsModelVO.setUnit(goodModelInfo.getUnit()); + goodsModelVO.setCounts(goodModelInfo.getCounts()); + goodsModelVO.setTotalAmount(CurrencyUtil.convertFenToYuan(goodModelInfo.getTotalAmount())); // 閮ㄩ棬鍒嗗彂闇�瑕佹煡璇娇鐢ㄤ俊鎭� - if (businessType == 1 && "A".equals(type)) { + Integer businessType = result.getBusinessType(); + String type = goodsTemplateInfoVO.getType(); + if (businessType == 1 && CategoryType.TYPE_A.getValue().equals(type)) { Long procureModelId = goodsModelVO.getId(); + LWhProcureModelUser lWhProcureModelUser = new LWhProcureModelUser(); lWhProcureModelUser.setWhProcureModelId(procureModelId); - lWhProcureModelUser.setProcureModelUserRecordId(lWhProcureModelUserRecord.getId()); List<LWhProcureModelUser> procureModelUserList = this.lWhProcureModelUserService.select(lWhProcureModelUser); + if (!CollectionUtils.isEmpty(procureModelUserList)) { List<DepartGoodsUseInfo> departGoodsUseInfoList = Lists.newArrayList(); procureModelUserList.forEach(useInfo -> { @@ -400,14 +407,74 @@ }); goodsModelVO.setUseInfo(departGoodsUseInfoList); } - } - goodsModelVOList.add(goodsModelVO); - procureTemplateInfoVO.setModels(goodsModelVOList); - }); - formTransferGoods.add(procureTemplateInfoVO); + goodsModelList.add(goodsModelVO); + } + goodsTemplateInfoVO.setModels(goodsModelList); + goodsTemplateInfoList.add(goodsTemplateInfoVO); } - result.setFormTransferGoods(formTransferGoods); + result.setFormTransferGoods(goodsTemplateInfoList); + + // String sql = "SELECT bgt.id, CATEGORY_ID, CATEGORY_NAME, GOODS_NAME,bgt.CLASSIFICATION type " + // + "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 = this.select(sql, paramMap, new MapperUtil()); + // + // String queryRecord = + // "SELECT * FROM l_wh_procure_model_user_record where TRANS_BUSINESS_ID = :id order by DEAL_TIME desc limit 1"; + // LWhProcureModelUserRecord lWhProcureModelUserRecord = + // lWhProcureModelUserRecordService.get(queryRecord, paramMap, new LWhProcureModelUserRecord()); + // List<FormTransferGoodsVO> formTransferGoods = Lists.newArrayList(); + // for (Map<String, Object> map : procureModelList) { + // FormTransferGoodsVO procureTemplateInfoVO = MapUtils.convertMapToObj(map, FormTransferGoodsVO.class); + // Long baseGoodsTemplateId = procureTemplateInfoVO.getId(); + // // 鏌ヨ鍨嬪彿鏁伴噺 + // 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 and bgt.id =:baseGoodsTemplateId"; + // Map<String, Object> goodsModelParamMap = new HashMap<>(); + // goodsModelParamMap.put("id", result.getId()); + // goodsModelParamMap.put("baseGoodsTemplateId", baseGoodsTemplateId); + // List<Map<String, Object>> modelList = this.select(sql2, goodsModelParamMap, new MapperUtil()); + // modelList.forEach(item -> { + // GoodsModelVO goodsModelVO = MapUtils.convertMapToObj(item, GoodsModelVO.class); + // Integer businessType = result.getBusinessType(); + // String type = procureTemplateInfoVO.getType(); + // // 閮ㄩ棬鍒嗗彂闇�瑕佹煡璇娇鐢ㄤ俊鎭� + // if (businessType == 1 && "A".equals(type)) { + // Long procureModelId = goodsModelVO.getId(); + // LWhProcureModelUser lWhProcureModelUser = new LWhProcureModelUser(); + // lWhProcureModelUser.setWhProcureModelId(procureModelId); + // lWhProcureModelUser.setProcureModelUserRecordId(lWhProcureModelUserRecord.getId()); + // List<LWhProcureModelUser> procureModelUserList = + // this.lWhProcureModelUserService.select(lWhProcureModelUser); + // if (!CollectionUtils.isEmpty(procureModelUserList)) { + // List<DepartGoodsUseInfo> departGoodsUseInfoList = Lists.newArrayList(); + // procureModelUserList.forEach(useInfo -> { + // Integer goodsNum = useInfo.getGoodsNum(); + // Long nowUserPhone = useInfo.getNowUserPhone(); + // String nowUserName = useInfo.getNowUserName(); + // DepartGoodsUseInfo departGoodsUseInfo = new DepartGoodsUseInfo(); + // departGoodsUseInfo.setName(nowUserName); + // departGoodsUseInfo.setNum(goodsNum); + // departGoodsUseInfo.setTel(nowUserPhone); + // departGoodsUseInfoList.add(departGoodsUseInfo); + // }); + // goodsModelVO.setUseInfo(departGoodsUseInfoList); + // } + // + // } + // goodsModelVOList.add(goodsModelVO); + // procureTemplateInfoVO.setModels(goodsModelVOList); + // }); + // formTransferGoods.add(procureTemplateInfoVO); + // } + // result.setFormTransferGoods(formTransferGoods); return result; } -- Gitblit v1.9.1