From 43a322430e7e6dcea64242bec6918037da160986 Mon Sep 17 00:00:00 2001 From: futian.liu <liufutianyoo@163.com> Date: 星期一, 04 十二月 2023 10:50:23 +0800 Subject: [PATCH] 分转元 --- consum-base/src/main/java/com/consum/base/service/impl/UsingFormBackServiceImpl.java | 163 +++++++++++++++++++++++++++++++++-------------------- 1 files changed, 101 insertions(+), 62 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 d4a2747..273cd1c 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,6 +2,7 @@ import com.consum.base.core.CodeGeneratorEnum; import com.consum.base.core.CodeGeneratorService; +import com.consum.base.core.DepUsingFormBackCoreServiceImpl; import com.consum.base.core.utils.IdUtil; import com.consum.base.core.utils.MapUtils; import com.consum.base.core.utils.MapperUtil; @@ -18,24 +19,31 @@ import com.consum.base.pojo.response.UsingFormBackGoodsTemplateInfo; import com.consum.base.pojo.response.UsingFormBackModelInfo; import com.consum.base.pojo.response.UsingFormBackVO; -import com.consum.base.service.BaseCategoryServiceImpl; +import com.consum.base.service.BaseCategoryService; +import com.consum.base.service.FinSysTenantDepartmentService; +import com.consum.base.service.LWhFormTransferService; import com.consum.base.service.UsingFormBackGoodsService; import com.consum.base.service.UsingFormBackModelService; import com.consum.base.service.UsingFormBackService; import com.consum.model.po.BaseCategory; +import com.consum.model.po.FinSysTenantDepartment; import com.consum.model.po.FinSysTenantUser; +import com.consum.model.po.LWhFormTransfer; import com.consum.model.po.UsingFormBack; import com.consum.model.po.UsingFormBackGoods; import com.consum.model.po.UsingFormBackModel; +import com.iplatform.model.po.S_user_core; import com.walker.db.page.GenericPager; import com.walker.infrastructure.utils.CollectionUtils; import com.walker.infrastructure.utils.DateUtils; 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.stream.Collectors; +import javax.annotation.Resource; import org.apache.commons.compress.utils.Lists; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -54,73 +62,98 @@ @Autowired private CodeGeneratorService codeGeneratorService; @Autowired - private BaseCategoryServiceImpl baseCategoryService; + private BaseCategoryService baseCategoryService; @Autowired private UsingFormBackModelService usingFormBackModelService; @Autowired private UsingFormBackGoodsService usingFormBackGoodsService; - + @Autowired + private FinSysTenantDepartmentService finSysTenantDepartmentService; + @Autowired + private LWhFormTransferService lWhFormTransferService; + @Resource + private DepUsingFormBackCoreServiceImpl depUsingFormBackCoreService; @Override - public void add(UsingFormBackParam usingFormBackParam, FinSysTenantUser sysInfo) { + public void add(UsingFormBackParam usingFormBackParam, FinSysTenantUser sysInfo, S_user_core currentUser) { Long departmentId = usingFormBackParam.getDepartmentId(); - String departmentName = usingFormBackParam.getDepartmentName(); Long operatorId = usingFormBackParam.getOperatorId(); String operatorName = usingFormBackParam.getOperatorName(); Long backTime = usingFormBackParam.getDealTime(); String procureDoc = usingFormBackParam.getProcureDoc(); - List<UsingFormBackGoodsInfo> usingFormBackGoodsInfo = usingFormBackParam.getGoods(); + List<UsingFormBackGoodsInfo> goodsList = 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(); - - UsingFormBackGoods usingFormBackGoods = new UsingFormBackGoods(); - usingFormBackGoods.setId(IdUtil.generateId()); - usingFormBackGoods.setUsingFormBackId(usingFormBackId); - usingFormBackGoods.setBaseGoodsTemplateId(baseGoodsTemplateId); - usingFormBackGoods.setBaseGoodsTemplateName(goodsTemplateName); - - 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); -// usingFormBackGoods.setTransOutWarehouseType(); -// usingFormBackGoods.setTransOutWarehouseId(); - - 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); - } - - + // 妫�鏌ラ儴闂ㄦ槸鍚﹀瓨鍦� + FinSysTenantDepartment department = finSysTenantDepartmentService.getById(departmentId); + if (department == null) { + throw new RuntimeException("閮ㄩ棬涓嶅瓨鍦�"); } + String departmentName = department.getName(); + + // 娣诲姞閫�鍥炶〃鍗� + Long usingFormBackId = addUsingFormBack(sysInfo, departmentId, departmentName, operatorId, operatorName, backTime, procureDoc); + + // 鎵归噺鎻掑叆閫�鍥炲晢鍝佸拰閫�鍥炲晢鍝佹ā鍨� + List<UsingFormBackGoods> goodsBatch = new ArrayList<>(); + List<UsingFormBackModel> modelBatch = new ArrayList<>(); + + for (UsingFormBackGoodsInfo goodsInfo : goodsList) { + UsingFormBackGoods goods = createUsingFormBackGoods(usingFormBackId, goodsInfo); + goodsBatch.add(goods); + + for (baseGoodModel model : goodsInfo.getModels()) { + UsingFormBackModel formModel = createUsingFormBackModel(usingFormBackId, goods.getId(), goodsInfo, model); + modelBatch.add(formModel); + } + } + + // 鎵归噺鎻掑叆閫�鍥炲晢鍝佸拰閫�鍥炲晢鍝佹ā鍨� + 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()); + + 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) { @@ -180,7 +213,7 @@ map.put("agencyId", agencyId); } if (StringUtils.isNotEmpty(createName)) { - sql.append("AND ufb.CREATE_NAME = :createName "); + sql.append("AND ufb.OPERATOR_NAME = :createName "); map.put("createName", createName); } sql.append("ORDER BY ufb.CREATE_TIME DESC "); @@ -194,7 +227,8 @@ Long id = usingFormBackVO.getId(); StringBuilder countSql = new StringBuilder("SELECT \n" + "\tufbg.BASE_GOODS_TEMPLATE_NAME,\n" - + "\tsum(ufbm.COUNTS) count\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" @@ -350,7 +384,7 @@ map.put("agencyId", agencyId); } if (StringUtils.isNotEmpty(createName)) { - sql.append("AND ufb.CREATE_NAME = :createName "); + sql.append("AND ufb.OPERATOR_NAME = :createName "); map.put("createName", createName); } sql.append("ORDER BY ufb.CREATE_TIME DESC "); @@ -373,9 +407,9 @@ UsingFormBack usingFormBack = new UsingFormBack(); usingFormBack.setId(IdUtil.generateId()); usingFormBack.setBusinessFormCode(codeGeneratorService.createBusinessFormCode(CodeGeneratorEnum.GOBACK)); -// usingFormBack.setOutWarehouseType(); -// usingFormBack.setOutWarehouseId(); -// usingFormBack.setOutWarehouseName(); + usingFormBack.setOutWarehouseType(1); + usingFormBack.setOutWarehouseId(departmentId); + usingFormBack.setOutWarehouseName(departmentName); String tenantId = sysInfo.getTenantId(); String tenantName = sysInfo.getTenantName(); @@ -384,9 +418,14 @@ usingFormBack.setCreateTime(DateUtils.getDateTimeNumber(System.currentTimeMillis())); usingFormBack.setStates(1); - usingFormBack.setDepartmentId(departmentId); - usingFormBack.setDepartmentName(departmentName); - usingFormBack.setOperatorId(operatorId); + Long sysDeptId = sysInfo.getSysDeptId(); + FinSysTenantDepartment department = finSysTenantDepartmentService.getById(sysDeptId); + if (department == null) { + throw new RuntimeException("閮ㄩ棬涓嶅瓨鍦�"); + } + usingFormBack.setDepartmentId(department.getId()); + usingFormBack.setDepartmentName(department.getName()); + usingFormBack.setOperatorId(sysInfo.getId()); usingFormBack.setOperatorName(operatorName); usingFormBack.setDealTime(backTime); usingFormBack.setProcureDoc(procureDoc); -- Gitblit v1.9.1