From 62b6a7fac3f2acde70b578431147c4a01f19c182 Mon Sep 17 00:00:00 2001 From: 黎星凯 <13949086503@163.com> Date: 星期一, 15 四月 2024 09:07:05 +0800 Subject: [PATCH] bug修改 --- consum-base/src/main/java/com/consum/base/service/impl/UsingFormBackServiceImpl.java | 271 ++++++++++++++++++++++++----------------------------- 1 files changed, 124 insertions(+), 147 deletions(-) diff --git a/consum-base/src/main/java/com/consum/base/service/impl/UsingFormBackServiceImpl.java b/consum-base/src/main/java/com/consum/base/service/impl/UsingFormBackServiceImpl.java index e00cb1f..644b65b 100644 --- a/consum-base/src/main/java/com/consum/base/service/impl/UsingFormBackServiceImpl.java +++ b/consum-base/src/main/java/com/consum/base/service/impl/UsingFormBackServiceImpl.java @@ -2,7 +2,7 @@ import com.consum.base.core.CodeGeneratorEnum; import com.consum.base.core.CodeGeneratorService; -import com.consum.base.core.DepUsingFormBackCoreServiceImpl; +import com.consum.base.service.core.DepUsingFormBackCoreService; import com.consum.base.core.utils.IdUtil; import com.consum.base.core.utils.MapUtils; import com.consum.base.core.utils.MapperUtil; @@ -28,6 +28,7 @@ import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -55,91 +56,103 @@ @Autowired private LWhFormTransferService lWhFormTransferService; @Resource - private DepUsingFormBackCoreServiceImpl depUsingFormBackCoreService; + private DepUsingFormBackCoreService depUsingFormBackCoreService; + @Resource + private UsingFormBackModelService UsingFormBackModelService; + @Override public void add(UsingFormBackParam usingFormBackParam, FinSysTenantUser sysInfo, S_user_core currentUser) { Long departmentId = usingFormBackParam.getDepartmentId(); + Long operatorId = usingFormBackParam.getOperatorId(); + String operatorName = usingFormBackParam.getOperatorName(); + Long backTime = usingFormBackParam.getDealTime(); + String procureDoc = usingFormBackParam.getProcureDoc(); + List<UsingFormBackGoodsInfo> goodsList = usingFormBackParam.getGoods(); + + // 妫�鏌ラ儴闂ㄦ槸鍚﹀瓨鍦� FinSysTenantDepartment department = finSysTenantDepartmentService.getById(departmentId); if (department == null) { throw new RuntimeException("閮ㄩ棬涓嶅瓨鍦�"); } String departmentName = department.getName(); - Long operatorId = usingFormBackParam.getOperatorId(); - String operatorName = usingFormBackParam.getOperatorName(); - Long backTime = usingFormBackParam.getDealTime(); - String procureDoc = usingFormBackParam.getProcureDoc(); - List<UsingFormBackGoodsInfo> usingFormBackGoodsInfo = usingFormBackParam.getGoods(); - Long usingFormBackId = addUsingFormBack(sysInfo, departmentId, departmentName, operatorId, operatorName, backTime, procureDoc); - for (UsingFormBackGoodsInfo backingGoodsInfo : usingFormBackGoodsInfo) { - Long baseCategoryId = backingGoodsInfo.getBaseCategoryId(); - Long baseGoodsTemplateId = backingGoodsInfo.getBaseGoodsTemplateId(); - String goodsTemplateName = backingGoodsInfo.getGoodsTemplateName(); - Long transBusinessId = backingGoodsInfo.getTransBusinessId(); - String businessFormCode = backingGoodsInfo.getBusinessFormCode(); + // 娣诲姞閫�鍥炶〃鍗� + Long usingFormBackId = + addUsingFormBack(sysInfo, departmentId, departmentName, operatorId, operatorName, backTime, procureDoc); - UsingFormBackGoods usingFormBackGoods = new UsingFormBackGoods(); - usingFormBackGoods.setId(IdUtil.generateId()); - usingFormBackGoods.setUsingFormBackId(usingFormBackId); - usingFormBackGoods.setBaseGoodsTemplateId(baseGoodsTemplateId); - usingFormBackGoods.setBaseGoodsTemplateName(goodsTemplateName); + // 鎵归噺鎻掑叆閫�鍥炲晢鍝佸拰閫�鍥炲晢鍝佹ā鍨� + List<UsingFormBackGoods> goodsBatch = new ArrayList<>(); + List<UsingFormBackModel> modelBatch = new ArrayList<>(); - BaseCategory baseCategory = baseCategoryService.getById(baseCategoryId); - String categoryName = baseCategory.getCategoryName(); - String classification = baseCategory.getClassification(); - usingFormBackGoods.setCategoryName(categoryName); - usingFormBackGoods.setClassification(classification); - usingFormBackGoods.setTransBusinessId(transBusinessId); - usingFormBackGoods.setBusinessFormCode(businessFormCode); + for (UsingFormBackGoodsInfo goodsInfo : goodsList) { + UsingFormBackGoods goods = createUsingFormBackGoods(usingFormBackId, goodsInfo); + goodsBatch.add(goods); - LWhFormTransfer lWhFormTransfer = lWhFormTransferService.selectById(transBusinessId); - Integer outWarehouseType = lWhFormTransfer.getOutWarehouseType(); - Long outWarehouseId = lWhFormTransfer.getOutWarehouseId(); - usingFormBackGoods.setTransOutWarehouseType(outWarehouseType); - usingFormBackGoods.setTransOutWarehouseId(outWarehouseId); - - usingFormBackModelService.insert(usingFormBackGoods); - for (baseGoodModel model : backingGoodsInfo.getModels()) { - - UsingFormBackModel usingFormBackModel = new UsingFormBackModel(); - usingFormBackModel.setId(IdUtil.generateId()); - usingFormBackModel.setUsingFormBackId(usingFormBackId); - usingFormBackModel.setUsingFormBackGoodsId(usingFormBackGoods.getId()); - usingFormBackModel.setBaseGoodsTemplateId(model.getGoodsTemplatesId()); - usingFormBackModel.setBaseGoodsTemplateName(goodsTemplateName); - usingFormBackModel.setClassification(model.getClassification()); - usingFormBackModel.setUnit(model.getUnit()); - usingFormBackModel.setBaseGoodsModelsId(model.getBaseGoodsModelsId()); - usingFormBackModel.setBaseGoodsModelsName(model.getModelName()); - usingFormBackModel.setProcureModelUserId(model.getModelUserId()); - usingFormBackModel.setInitialCount(model.getGoodsNum()); - usingFormBackModel.setUseCount(model.getUserUseCount()); - usingFormBackModel.setCounts(model.getCounts()); - usingFormBackModel.setGoodsUserName(model.getNowUserName()); - - usingFormBackGoodsService.insert(usingFormBackModel); + for (baseGoodModel model : goodsInfo.getModels()) { + UsingFormBackModel formModel = + createUsingFormBackModel(usingFormBackId, goods.getId(), goodsInfo, model); + modelBatch.add(formModel); } - - } - depUsingFormBackCoreService.updateBack(usingFormBackId ,currentUser,DateUtils.getDateTimeNumber(System.currentTimeMillis())); + + // 鎵归噺鎻掑叆閫�鍥炲晢鍝佸拰閫�鍥炲晢鍝佹ā鍨� + usingFormBackModelService.insertBatch(goodsBatch); + usingFormBackGoodsService.insertBatch(modelBatch); + + depUsingFormBackCoreService.updateBack(usingFormBackId, currentUser, + DateUtils.getDateTimeNumber(System.currentTimeMillis())); + } + + private UsingFormBackGoods createUsingFormBackGoods(Long usingFormBackId, UsingFormBackGoodsInfo goodsInfo) { + UsingFormBackGoods goods = new UsingFormBackGoods(); + goods.setId(IdUtil.generateId()); + goods.setUsingFormBackId(usingFormBackId); + goods.setBaseGoodsTemplateId(goodsInfo.getBaseGoodsTemplateId()); + goods.setBaseGoodsTemplateName(goodsInfo.getGoodsTemplateName()); + + BaseCategory baseCategory = baseCategoryService.getById(goodsInfo.getBaseCategoryId()); + goods.setCategoryName(baseCategory.getCategoryName()); + goods.setClassification(baseCategory.getClassification()); + + goods.setTransBusinessId(goodsInfo.getTransBusinessId()); + goods.setBusinessFormCode(goodsInfo.getBusinessFormCode()); + + LWhFormTransfer lWhFormTransfer = lWhFormTransferService.selectById(goodsInfo.getTransBusinessId()); + goods.setTransOutWarehouseType(lWhFormTransfer.getOutWarehouseType()); + goods.setTransOutWarehouseId(lWhFormTransfer.getOutWarehouseId()); + + return goods; + } + + private UsingFormBackModel createUsingFormBackModel(Long usingFormBackId, Long usingFormBackGoodsId, + UsingFormBackGoodsInfo goodsInfo, baseGoodModel model) { + UsingFormBackModel formModel = new UsingFormBackModel(); + formModel.setId(IdUtil.generateId()); + formModel.setUsingFormBackId(usingFormBackId); + formModel.setUsingFormBackGoodsId(usingFormBackGoodsId); + formModel.setBaseGoodsTemplateId(model.getGoodsTemplatesId()); + formModel.setBaseGoodsTemplateName(goodsInfo.getGoodsTemplateName()); + formModel.setClassification(model.getClassification()); + formModel.setUnit(model.getUnit()); + formModel.setBaseGoodsModelsId(model.getBaseGoodsModelsId()); + formModel.setBaseGoodsModelsName(model.getModelName()); + formModel.setProcureModelUserId(model.getModelUserId()); + formModel.setInitialCount(model.getGoodsNum()); + formModel.setUseCount(model.getUserUseCount()); + formModel.setCounts(model.getCounts()); + formModel.setGoodsUserName(model.getNowUserName()); + + return formModel; } @Override public PageUtil selectPageByList(UsingFormBackQry usingFormBackParam) { - StringBuilder sql = new StringBuilder("SELECT\n" - + "\tDISTINCT ufb.ID,\n" - + "\tufb.BUSINESS_FORM_CODE,\n" - + "\tufb.DEPARTMENT_NAME,\n" - + "\tufb.OPERATOR_NAME,\n" - + "\tufb.DEAL_TIME\n" - + "FROM\n" - + "\tusing_form_back ufb\n" - + "\tLEFT JOIN using_form_back_goods ufbg ON ufb.ID = ufbg.USING_FORM_BACK_ID\n" - + "\tLEFT JOIN using_form_back_model ufbm ON ufbg.ID = ufbm.USING_FORM_BACK_GOODS_ID\n" - + "where 1=1 "); + StringBuilder sql = new StringBuilder("SELECT\n" + "\tDISTINCT ufb.ID,\n" + "\tufb.BUSINESS_FORM_CODE,\n" + + "\tufb.DEPARTMENT_NAME,\n" + "\tufb.OPERATOR_NAME,\n" + "\tufb.DEAL_TIME\n" + "FROM\n" + + "\tusing_form_back ufb\n" + "\tLEFT JOIN using_form_back_goods ufbg ON ufb.ID = ufbg.USING_FORM_BACK_ID\n" + + "\tLEFT JOIN using_form_back_model ufbm ON ufbg.ID = ufbm.USING_FORM_BACK_GOODS_ID\n" + "where 1=1 "); String businessFormCode = usingFormBackParam.getBusinessFormCode(); Long departmentId = usingFormBackParam.getDepartmentId(); @@ -188,31 +201,15 @@ map.put("createName", createName); } sql.append("ORDER BY ufb.CREATE_TIME DESC "); - GenericPager<Map<String, Object>> mapGenericPager = this.selectSplit(sql.toString(), map, usingFormBackParam.getPageNum(), - usingFormBackParam.getPageSize(), new MapperUtil()); + GenericPager<Map<String, Object>> mapGenericPager = this.selectSplit(sql.toString(), map, + usingFormBackParam.getPageNum(), usingFormBackParam.getPageSize(), new MapperUtil()); PageUtil pageUtil = new PageUtil(mapGenericPager); List<UsingFormBackVO> pageList = Lists.newArrayList(); mapGenericPager.getDatas().forEach(item -> { UsingFormBackVO usingFormBackVO = MapUtils.convertMapToObj(item, UsingFormBackVO.class); - Long id = usingFormBackVO.getId(); - StringBuilder countSql = new StringBuilder("SELECT \n" - + "\tufbg.BASE_GOODS_TEMPLATE_NAME,\n" - + "\tsum(ufbm.COUNTS) count,\n" - + "\tufbm.UNIT\n" - + "FROM\n" - + "\tusing_form_back_goods ufbg\n" - + "\tLEFT JOIN using_form_back_model ufbm ON ufbg.ID = ufbm.USING_FORM_BACK_GOODS_ID\n" - + "where ufbg.USING_FORM_BACK_ID = :id group by ufbg.BASE_GOODS_TEMPLATE_ID "); - Map<String, Object> countSqlMap = new HashMap<>(); - countSqlMap.put("id", id); - List<Map<String, Object>> select = this.select(countSql.toString(), countSqlMap, new MapperUtil()); - List<BaseGoodsTemplateInfo> baseGoodsTemplateInfoList = Lists.newArrayList(); - select.forEach(entity -> { - BaseGoodsTemplateInfo baseGoodsTemplateInfo = MapUtils.convertMapToObj(entity, BaseGoodsTemplateInfo.class); - baseGoodsTemplateInfoList.add(baseGoodsTemplateInfo); - }); - usingFormBackVO.setGoodsTemplateInfoList(baseGoodsTemplateInfoList); + List<GoodsTemplateCountVO> usingCount = UsingFormBackModelService.getUsingCountByBusinessId(id); + usingFormBackVO.setGoodsTemplateInfoList(usingCount); pageList.add(usingFormBackVO); }); pageUtil.setDatas(pageList); @@ -221,28 +218,13 @@ @Override public UsingFormBackDetailVO getDetail(Long id) { - StringBuilder sql = new StringBuilder("SELECT\n" - + "\tDISTINCT ufb.ID,\n" - + "\tufb.BUSINESS_FORM_CODE,\n" - + "\tufb.AGENCY_NAME,\n" - + "\tufb.DEPARTMENT_NAME,\n" - + "\tufb.OPERATOR_NAME,\n" - + "\tufb.DEAL_TIME,\n" - + "\tufb.PROCURE_DOC,\n" - + "\tufbg.CATEGORY_NAME,\n" - + "\tufbg.BASE_GOODS_TEMPLATE_NAME,\n" - + "\tufbg.CLASSIFICATION,\n" - + "\tufbg.BUSINESS_FORM_CODE,\n" - + "\tufbm.BASE_GOODS_MODELS_NAME,\n" - + "\tufbm.BASE_GOODS_TEMPLATE_ID,\n" - + "\tufbm.BASE_GOODS_MODELS_ID,\n" - + "\tufbm.UNIT,\n" - + "\tufbm.COUNTS,\n" - + "\tufbm.USE_COUNT,\n" - + "\tufbm.GOODS_USER_NAME\n" - + "FROM\n" - + "\tusing_form_back ufb\n" - + "\tLEFT JOIN using_form_back_goods ufbg ON ufb.ID = ufbg.USING_FORM_BACK_ID\n" + StringBuilder sql = new StringBuilder("SELECT\n" + "\tDISTINCT ufb.ID,\n" + "\tufb.BUSINESS_FORM_CODE,\n" + + "\tufb.AGENCY_NAME,\n" + "\tufb.DEPARTMENT_NAME,\n" + "\tufb.OPERATOR_NAME,\n" + "\tufb.DEAL_TIME,\n" + + "\tufb.PROCURE_DOC,\n" + "\tufbg.CATEGORY_NAME,\n" + "\tufbg.BASE_GOODS_TEMPLATE_NAME,\n" + + "\tufbg.CLASSIFICATION,\n" + "\tufbg.BUSINESS_FORM_CODE,\n" + "\tufbm.BASE_GOODS_MODELS_NAME,\n" + + "\tufbm.BASE_GOODS_TEMPLATE_ID,\n" + "\tufbm.BASE_GOODS_MODELS_ID,\n" + "\tufbm.UNIT,\n" + + "\tufbm.COUNTS,\n" + "\tufbm.USE_COUNT,\n" + "\tufbm.GOODS_USER_NAME\n" + "FROM\n" + + "\tusing_form_back ufb\n" + "\tLEFT JOIN using_form_back_goods ufbg ON ufb.ID = ufbg.USING_FORM_BACK_ID\n" + "\tLEFT JOIN using_form_back_model ufbm ON ufbg.ID = ufbm.USING_FORM_BACK_GOODS_ID where ufb.id =:id"); Map<String, Object> map = new HashMap<>(); map.put("id", id); @@ -252,13 +234,15 @@ } List<UsingFormBackDetailDTO> usingFormBackDetailDTOList = Lists.newArrayList(); select.forEach(item -> { - UsingFormBackDetailDTO usingFormBackDetailDTO = MapUtils.convertMapToObj(item, UsingFormBackDetailDTO.class); + UsingFormBackDetailDTO usingFormBackDetailDTO = + MapUtils.convertMapToObj(item, UsingFormBackDetailDTO.class); usingFormBackDetailDTOList.add(usingFormBackDetailDTO); }); UsingFormBackDetailVO usingFormBackDetailVO = new UsingFormBackDetailVO(); List<UsingFormBackGoodsTemplateInfo> goodsTemplateInfoList = Lists.newArrayList(); - usingFormBackDetailDTOList.stream().collect(Collectors.groupingBy(UsingFormBackDetailDTO::getBaseGoodsTemplateId)) + usingFormBackDetailDTOList.stream() + .collect(Collectors.groupingBy(UsingFormBackDetailDTO::getBaseGoodsTemplateId)) .forEach((templateId, templateInfo) -> { UsingFormBackDetailDTO templateInfoDTO = templateInfo.get(0); BeanUtils.copyProperties(templateInfoDTO, usingFormBackDetailVO); @@ -271,24 +255,27 @@ goodsTemplateInfoList.add(usingFormBackGoodsTemplateInfo); usingFormBackDetailVO.setGoodsTemplateInfoList(goodsTemplateInfoList); List<UsingFormBackModelInfo> modelInfoList = Lists.newArrayList(); - templateInfo.stream().collect(Collectors.groupingBy(UsingFormBackDetailDTO::getBaseGoodsModelsId)).forEach((modelId, modelInfo) -> { - UsingFormBackDetailDTO modelInfoDTO = modelInfo.get(0); - UsingFormBackModelInfo usingFormBackModelInfo = new UsingFormBackModelInfo(); - usingFormBackModelInfo.setBaseGoodsModelsName(modelInfoDTO.getBaseGoodsModelsName()); - usingFormBackModelInfo.setUnit(modelInfoDTO.getUnit()); - usingFormBackModelInfo.setId(modelId); - modelInfoList.add(usingFormBackModelInfo); - usingFormBackGoodsTemplateInfo.setModelInfoList(modelInfoList); - List<UseInfo> useInfoList = Lists.newArrayList(); - for (UsingFormBackDetailDTO useInfoDTO : modelInfo) { - UseInfo useInfo = new UseInfo(); - useInfo.setUseName(useInfoDTO.getGoodsUserName()); - useInfo.setReturnNum(useInfoDTO.getCounts()); - useInfo.setUseUnm(useInfoDTO.getUseCount()); - useInfoList.add(useInfo); - usingFormBackModelInfo.setUseInfoList(useInfoList); - } - }); + templateInfo.stream().collect(Collectors.groupingBy(UsingFormBackDetailDTO::getBaseGoodsModelsId)) + .forEach((modelId, modelInfo) -> { + UsingFormBackDetailDTO modelInfoDTO = modelInfo.stream().findFirst().orElse(null); + UsingFormBackModelInfo usingFormBackModelInfo = new UsingFormBackModelInfo(); + if (modelInfoDTO != null) { + usingFormBackModelInfo.setBaseGoodsModelsName(modelInfoDTO.getBaseGoodsModelsName()); + usingFormBackModelInfo.setUnit(modelInfoDTO.getUnit()); + usingFormBackModelInfo.setId(modelId); + } + modelInfoList.add(usingFormBackModelInfo); + usingFormBackGoodsTemplateInfo.setModelInfoList(modelInfoList); + List<UseInfo> useInfoList = Lists.newArrayList(); + for (UsingFormBackDetailDTO useInfoDTO : modelInfo) { + UseInfo useInfo = new UseInfo(); + useInfo.setUseName(useInfoDTO.getGoodsUserName()); + useInfo.setReturnNum(useInfoDTO.getCounts()); + useInfo.setUseUnm(useInfoDTO.getUseCount()); + useInfoList.add(useInfo); + usingFormBackModelInfo.setUseInfoList(useInfoList); + } + }); }); return usingFormBackDetailVO; @@ -296,21 +283,12 @@ @Override public PageUtil selectPageByDetail(UsingFormBackQry usingFormBackParam) { - StringBuilder sql = new StringBuilder("SELECT\n" - + "\tufb.ID,\n" - + "\tufb.BUSINESS_FORM_CODE,\n" - + "\tufbm.BASE_GOODS_TEMPLATE_NAME,\n" - + "\tufbm.BASE_GOODS_MODELS_NAME,\n" - + "\tufbm.counts,\n" - + "\tufb.AGENCY_NAME,\n" - + "\tufb.DEPARTMENT_NAME,\n" - + "\tufb.OPERATOR_NAME,\n" - + "\tufb.DEAL_TIME\n" - + "FROM\n" - + "\tusing_form_back ufb\n" + StringBuilder sql = new StringBuilder("SELECT\n" + "\tufb.ID,\n" + "\tufb.BUSINESS_FORM_CODE,\n" + + "\tufbm.BASE_GOODS_TEMPLATE_NAME,\n" + "\tufbm.BASE_GOODS_MODELS_NAME,\n" + "\tufbm.counts,\n" + + "\tufb.AGENCY_NAME,\n" + "\tufb.DEPARTMENT_NAME,\n" + "\tufb.OPERATOR_NAME,\n" + "\tufb.DEAL_TIME\n" + + "FROM\n" + "\tusing_form_back ufb\n" + "\tLEFT JOIN using_form_back_goods ufbg ON ufb.ID = ufbg.USING_FORM_BACK_ID\n" - + "\tLEFT JOIN using_form_back_model ufbm ON ufbg.ID = ufbm.USING_FORM_BACK_GOODS_ID\n" - + "where 1=1 "); + + "\tLEFT JOIN using_form_back_model ufbm ON ufbg.ID = ufbm.USING_FORM_BACK_GOODS_ID\n" + "where 1=1 "); String businessFormCode = usingFormBackParam.getBusinessFormCode(); Long departmentId = usingFormBackParam.getDepartmentId(); @@ -359,8 +337,8 @@ map.put("createName", createName); } sql.append("ORDER BY ufb.CREATE_TIME DESC "); - GenericPager<Map<String, Object>> mapGenericPager = this.selectSplit(sql.toString(), map, usingFormBackParam.getPageNum(), - usingFormBackParam.getPageSize(), new MapperUtil()); + GenericPager<Map<String, Object>> mapGenericPager = this.selectSplit(sql.toString(), map, + usingFormBackParam.getPageNum(), usingFormBackParam.getPageSize(), new MapperUtil()); PageUtil pageUtil = new PageUtil(mapGenericPager); List<UsingFormBackDetailListVO> pageList = Lists.newArrayList(); mapGenericPager.getDatas().forEach(item -> { @@ -371,10 +349,9 @@ return pageUtil; } - @Transactional - public Long addUsingFormBack(FinSysTenantUser sysInfo, Long departmentId, String departmentName, Long operatorId, String operatorName, Long backTime, - String procureDoc) { + public Long addUsingFormBack(FinSysTenantUser sysInfo, Long departmentId, String departmentName, Long operatorId, + String operatorName, Long backTime, String procureDoc) { UsingFormBack usingFormBack = new UsingFormBack(); usingFormBack.setId(IdUtil.generateId()); usingFormBack.setBusinessFormCode(codeGeneratorService.createBusinessFormCode(CodeGeneratorEnum.GOBACK)); -- Gitblit v1.9.1