From d8fb6d11aa24b77b8bbcc5740140d31f5692837d Mon Sep 17 00:00:00 2001 From: cy <1664593601@qq.com> Date: 星期四, 16 十一月 2023 16:11:05 +0800 Subject: [PATCH] feat: 调拨调整 --- consum-base/src/main/java/com/consum/base/service/LWhFormTransferServiceImpl.java | 211 +++++++++++++++++++++++++++++++--------------------- 1 files changed, 124 insertions(+), 87 deletions(-) diff --git a/consum-base/src/main/java/com/consum/base/service/LWhFormTransferServiceImpl.java b/consum-base/src/main/java/com/consum/base/service/LWhFormTransferServiceImpl.java index 6cda935..80a1143 100644 --- a/consum-base/src/main/java/com/consum/base/service/LWhFormTransferServiceImpl.java +++ b/consum-base/src/main/java/com/consum/base/service/LWhFormTransferServiceImpl.java @@ -4,38 +4,35 @@ import com.consum.base.core.CodeGeneratorService; import com.consum.base.core.utils.IdUtil; import com.consum.base.core.utils.MapRowMapper; +import com.consum.base.core.utils.MapUtils; +import com.consum.base.core.utils.MapperUtil; +import com.consum.base.pojo.LWhFormTransferGoodsInfoParam; import com.consum.base.pojo.LWhFormTransferParam; -import com.consum.base.pojo.LWhProcureModelParams; -import com.consum.base.pojo.LWhProcureModelUserDTO; +import com.consum.base.pojo.LWhProcureModelUserParam; +import com.consum.base.pojo.LWhTransferModelParam; import com.consum.base.pojo.query.TransferQry; -import com.consum.model.po.BaseGoodsModels; -import com.consum.model.po.BaseWarehouse; -import com.consum.model.po.FinSysTenant; -import com.consum.model.po.FinSysTenantUser; -import com.consum.model.po.LWhFormOutput; -import com.consum.model.po.LWhFormTransfer; -import com.consum.model.po.LWhGoodsRecord; -import com.consum.model.po.LWhProcureModel; -import com.consum.model.po.LWhProcureModelUser; +import com.consum.base.pojo.response.FormTransferGoodsVO; +import com.consum.base.pojo.response.GoodsModelVO; +import com.consum.base.pojo.response.LWHFromTransferExtendVO; +import com.consum.model.po.*; import com.consum.model.vo.LWhFormOutputVo; -import com.consum.model.vo.LWhFormTransferVo; import com.consum.model.vo.LWhGoodsRecordVo; -import com.consum.model.vo.LWhProcureModelVo; import com.iplatform.model.po.S_user_core; import com.walker.db.page.GenericPager; 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 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 java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; /** * @Description 璋冩嫧绠$悊 @@ -74,7 +71,7 @@ * @Author 鍗㈠簡闃� * @Date 2023/10/30 */ - public int add(LWhFormTransferParam param, S_user_core currentUser, FinSysTenantUser sysInfo) { + public int add(LWhFormTransferParam param, FinSysTenantUser sysInfo) throws Exception { //1.鏂板璋冩嫧鍗曡褰� LWhFormTransfer lWhFormTransfer = new LWhFormTransfer(); //璋冩嫧鍗昳d @@ -82,21 +79,23 @@ lWhFormTransfer.setId(lWhFormTransferId); Integer businessType = param.getTransferBusinessType(); - // 涓氬姟绫诲瀷 璋冩嫧/閮ㄩ棬鍒嗗彂/閮ㄩ棬閫�鍥� 鍗曟嵁绫诲瀷銆�0浠撳簱璋冩嫧锛�1閮ㄩ棬鍒嗗彂锛�2閮ㄩ棬鐗╁搧鍥為�� + // 鍗曟嵁绫诲瀷銆�0浠撳簱璋冩嫧锛�1閮ㄩ棬鍒嗗彂锛�2閮ㄩ棬鐗╁搧鍥為�� // TODO 鏋氫妇瀛楀吀 lWhFormTransfer.setBusinessType(businessType); lWhFormTransfer.setBusinessFormCode(codeGeneratorService.createBusinessFormCode(CodeGeneratorEnum.Transfer)); Long warehouseId = param.getInWarehouseId(); lWhFormTransfer.setInWarehouseId(warehouseId); - //鏍规嵁浠撳簱id鏌ヨ浠撳簱 - BaseWarehouse warehouse = this.baseWarehouseService.getById(warehouseId); + //鍏ュ簱浠撳簱涓哄綋鍓嶇敤鎴风殑榛樿浠撳簱 + String tenantId = sysInfo.getTenantId(); + BaseWarehouse warehouse = baseWarehouseService.getDefaultWarehouseByAgencyId(Long.valueOf(tenantId)); if (warehouse == null) { log.error("浠撳簱涓嶅瓨鍦�"); - return 0; + throw new Exception("浠撳簱涓嶅瓨鍦�"); } + lWhFormTransfer.setInWarehouseId(warehouse.getId()); lWhFormTransfer.setInWarehouseName(warehouse.getWarehouseName()); - lWhFormTransfer.setInAgencyId(Long.valueOf(sysInfo.getTenantId())); + lWhFormTransfer.setInAgencyId(Long.valueOf(tenantId)); lWhFormTransfer.setInAgencyName(sysInfo.getTenantName()); //鏍规嵁鏈烘瀯id鏌ヨ璋冩嫧鏈烘瀯 FinSysTenant finSysTenant = finSysTenantService.get(new FinSysTenant(param.getOutAgencyId())); @@ -126,44 +125,64 @@ } //2.鏂板鐗╁搧鍨嬪彿璁板綍 - List<LWhProcureModelParams> models = param.getModels(); + List<LWhFormTransferGoodsInfoParam> transferGoods = param.getTransferGoods(); List<LWhProcureModel> modelList = new ArrayList<>(); - for (LWhProcureModelParams model : models) { - LWhProcureModel lWhProcureModel = new LWhProcureModel(); - lWhProcureModel.setId(IdUtil.generateId()); - // 鐗╁搧鍨嬪彿涓氬姟绫诲瀷 - lWhProcureModel.setBusinessType(model.getProcureModelBusinessType()); - lWhProcureModel.setBusinessId(lWhFormTransferId); - lWhProcureModel.setBaseGoodsModelsId(model.getBaseGoodsModelsId()); - lWhProcureModel.setCounts(model.getCounts()); - //鏍规嵁鐗╁搧鍨嬪彿鏌ヨ鐗╁搧搴撳瓨 - int goodsNum = this.lWhGoodsService.queryGoodsModelNum(0, warehouseId, model.getBaseGoodsModelsId(), (short) 1, null); - lWhProcureModel.setWorehouseCount(goodsNum); + for (LWhFormTransferGoodsInfoParam transferGoodsInfo : transferGoods) { + for (LWhTransferModelParam model : transferGoodsInfo.getModels()) { + LWhProcureModel lWhProcureModel = new LWhProcureModel(); + lWhProcureModel.setId(IdUtil.generateId()); + // 鐗╁搧鍨嬪彿涓氬姟绫诲瀷 + // 鐗╁搧绫诲瀷 1 閲囪喘2 璋冩嫧 3鍑哄簱4閮ㄩ棬鍒嗗彂 + switch (businessType) { + case 0: + lWhProcureModel.setBusinessType(2); + break; + case 1: + lWhProcureModel.setBusinessType(4); + break; + default: + lWhProcureModel.setBusinessType(null); + } + lWhProcureModel.setBusinessId(lWhFormTransferId); + lWhProcureModel.setBaseGoodsModelsId(model.getBaseGoodsModelsId()); + lWhProcureModel.setCounts(model.getCounts()); + //鏍规嵁鍨嬪彿id鏌ヨ鍨嬪彿 + BaseGoodsModels baseGoodsModels = this.baseGoodsModelsService.get(new BaseGoodsModels(model.getBaseGoodsModelsId())); + if (baseGoodsModels != null) { + lWhProcureModel.setBaseGoodsModelsName(baseGoodsModels.getModelName()); + } + // TODO 浠锋牸 + lWhProcureModel.setPrice(10L); + //鏍规嵁鐗╁搧鍨嬪彿鏌ヨ鐗╁搧搴撳瓨 + int goodsNum = this.lWhGoodsService.queryGoodsModelNum(0, warehouseId, model.getBaseGoodsModelsId(), (short) 1, null); + lWhProcureModel.setWorehouseCount(goodsNum); - //3.褰撲笟鍔$被鍨嬩负閮ㄩ棬鍒嗗彂鏃� 娣诲姞閮ㄩ棬鍒嗗彂璁板綍鍜屼娇鐢ㄤ汉 - // 鍗曟嵁绫诲瀷 1 閲囪喘2 璋冩嫧 3鍑哄簱4閮ㄩ棬鍒嗗彂 - if (model.getProcureModelBusinessType() == 4) { - List<LWhProcureModelUser> procureModelUserList = Lists.newArrayList(); - for (LWhProcureModelUserDTO lWhProcureModelUserDTO : model.getLWhProcureModelUserList()) { - LWhProcureModelUser lWhProcureModelUser = new LWhProcureModelUser(); - lWhProcureModelUser.setId(IdUtil.generateId()); - lWhProcureModelUser.setTransBusinessId(lWhFormTransferId); - lWhProcureModelUser.setWhProcureModelId(lWhProcureModel.getId()); - lWhProcureModelUser.setBaseGoodsModelsId(model.getBaseGoodsModelsId()); - lWhProcureModelUser.setNowUserName(lWhProcureModelUserDTO.getNowUserName()); - lWhProcureModelUser.setNowUserPhone(lWhProcureModelUserDTO.getNowUserPhone()); - lWhProcureModelUser.setGoodsNum(lWhProcureModelUserDTO.getGoodsNum()); - procureModelUserList.add(lWhProcureModelUser); + //3.褰撲笟鍔$被鍨嬩负閮ㄩ棬鍒嗗彂鏃� 娣诲姞閮ㄩ棬鍒嗗彂璁板綍鍜屼娇鐢ㄤ汉 + // 鍗曟嵁绫诲瀷 1 閲囪喘2 璋冩嫧 3鍑哄簱4閮ㄩ棬鍒嗗彂 + //TODO 閮ㄩ棬鍒嗗彂绫诲瀷 + if (businessType == 1) { + List<LWhProcureModelUser> procureModelUserList = Lists.newArrayList(); + for (LWhProcureModelUserParam lWhProcureModelUserParam : model.getProcureModelUserList()) { + LWhProcureModelUser lWhProcureModelUser = new LWhProcureModelUser(); + lWhProcureModelUser.setId(IdUtil.generateId()); + lWhProcureModelUser.setTransBusinessId(lWhFormTransferId); + lWhProcureModelUser.setWhProcureModelId(lWhProcureModel.getId()); + lWhProcureModelUser.setBaseGoodsModelsId(model.getBaseGoodsModelsId()); + lWhProcureModelUser.setNowUserName(lWhProcureModelUserParam.getNowUserName()); + lWhProcureModelUser.setNowUserPhone(lWhProcureModelUserParam.getNowUserPhone()); + lWhProcureModelUser.setGoodsNum(lWhProcureModelUserParam.getGoodsNum()); + procureModelUserList.add(lWhProcureModelUser); + } + int procureInsertNum = lWhProcureModelUserService.insert(procureModelUserList); + if (procureInsertNum != procureModelUserList.size()) { + log.error("鏂板鐗╁搧浣跨敤淇℃伅澶辫触"); + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return 0; + } } - int procureInsertNum = lWhProcureModelUserService.insert(procureModelUserList); - if (procureInsertNum != procureModelUserList.size()) { - log.error("鏂板鐗╁搧浣跨敤淇℃伅澶辫触"); - TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); - return 0; - } + + modelList.add(lWhProcureModel); } - - modelList.add(lWhProcureModel); } int flag2 = this.lWhProcureModelService.insert(modelList); @@ -187,13 +206,13 @@ StringBuilder sql = new StringBuilder(QUERY_FORM_TRANSFER_LIST); //璋冩嫧鍗曞彿 if (!StringUtils.isEmpty(param.getBusinessFormCode())) { - sql.append(" and BUSINESS_FORM_CODE like :businessFormCode "); - paramts.put("businessFormCode", StringUtils.CHAR_PERCENT + param.getBusinessFormCode() + StringUtils.CHAR_PERCENT); + sql.append(" and BUSINESS_FORM_CODE = :businessFormCode "); + paramts.put("businessFormCode", param.getBusinessFormCode()); } //鐗╁搧鍚嶇О if (!StringUtils.isEmpty(param.getGoodsTemplateName())) { sql.append( - " AND id IN (SELECT BUSINESS_ID FROM L_WH_PROCURE_MODEL procureModel LEFT JOIN BASE_GOODS_MODELS baseModel ON procureModel.BASE_GOODS_MODELS_ID=baseModel.ID LEFT JOIN BASE_GOODS_TEMPLATE baseTemp ON baseModel.GOODS_TEMPLATES_ID=baseTemp.id WHERE procureModel.BUSINESS_TYPE=1 AND baseTemp.GOODS_NAME LIKE :goodsTemplateName)"); + " AND id IN (SELECT BUSINESS_ID FROM L_WH_PROCURE_MODEL procureModel LEFT JOIN BASE_GOODS_MODELS baseModel ON procureModel.BASE_GOODS_MODELS_ID=baseModel.ID LEFT JOIN BASE_GOODS_TEMPLATE baseTemp ON baseModel.GOODS_TEMPLATES_ID=baseTemp.id WHERE procureModel.BUSINESS_TYPE=2 AND baseTemp.GOODS_NAME LIKE :goodsTemplateName)"); paramts.put("goodsTemplateName", StringUtils.CHAR_PERCENT + param.getGoodsTemplateName() + StringUtils.CHAR_PERCENT); } //璋冩嫧鏈烘瀯 @@ -246,15 +265,43 @@ * @Author 鍗㈠簡闃� * @Date 2023/10/30 */ - public LWhFormTransferVo getById(Long id) { - LWhFormTransferVo vo = new LWhFormTransferVo(); + public LWHFromTransferExtendVO getById(Long id) { + LWHFromTransferExtendVO result = new LWHFromTransferExtendVO(); //1.鏌ヨ璋冩嫧鍗� LWhFormTransfer lWhFormTransfer = this.get(new LWhFormTransfer(id)); if (lWhFormTransfer != null) { - BeanUtils.copyProperties(lWhFormTransfer, vo); + BeanUtils.copyProperties(lWhFormTransfer, result); } - //2.鏌ヨ鐗╁搧鍨嬪彿 -// List<LWhProcureModel> models = this.lWhProcureModelService.getModelByForm(WhBusinessEnum.DIAOBO, id); + + String sql = "SELECT bgt.id, CATEGORY_ID, CATEGORY_NAME, GOODS_NAME " + + "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 = lWhFormOutputService.select(sql, paramMap, new MapperUtil()); + List<FormTransferGoodsVO> formTransferGoods = Lists.newArrayList(); + for (Map<String, Object> map : procureModelList) { + FormTransferGoodsVO procureTemplateInfoVO = MapUtils.convertMapToObj(map, FormTransferGoodsVO.class); + + // 鏌ヨ鍨嬪彿鏁伴噺 + 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"; + List<Map<String, Object>> modelList = lWhFormOutputService.select(sql2, paramMap, new MapperUtil()); + modelList.forEach(item -> { + GoodsModelVO goodsModelVO = MapUtils.convertMapToObj(item, GoodsModelVO.class); + goodsModelVOList.add(goodsModelVO); + }); + procureTemplateInfoVO.setModels(goodsModelVOList); + formTransferGoods.add(procureTemplateInfoVO); + } + result.setFormTransferGoods(formTransferGoods); + + /*//2.鏌ヨ鐗╁搧鍨嬪彿 + //List<LWhProcureModel> models = this.lWhProcureModelService.getModelByForm(WhBusinessEnum.DIAOBO, id); List<LWhProcureModel> models = this.lWhProcureModelService.getModelByForm(null, id); if (!CollectionUtils.isEmpty(models)) { @@ -270,8 +317,8 @@ lWhProcureModelVoList.add(lWhProcureModelVo); } vo.setModels(lWhProcureModelVoList); - } - return vo; + }*/ + return result; } @@ -327,26 +374,16 @@ public GenericPager<Map<String, Object>> queryTransferInfo(TransferQry transferQry) { HashMap<String, Object> paramts = new HashMap<>(); - StringBuilder sql = new StringBuilder("SELECT\n" - + "\tft.id,\n" - + "\tft.BUSINESS_FORM_CODE businessCode,\n" - + "\tbgt.GOODS_NAME goodsName,\n" - + "\tbgt.CLASSIFICATION goodsType,\n" - + "\tbgm.id goodsModelId,\n" - + "\tbgm.MODEL_NAME goodsModelName,\n" - + "\tpm.COUNTS goodsCount,\n" - + "\tfst.`name` tennatName,\n" - + "\tfstd.NAME departmentName,\n" - + "\tft.OPERATOR_ID distributor,\n" - + "\tft.CREATE_TIME TIME \n" - + "FROM\n" - + "\tl_wh_form_transfer ft\n" - + "\tLEFT JOIN l_wh_procure_model pm ON ft.ID = pm.BUSINESS_ID\n" - + "\tLEFT JOIN base_goods_models bgm ON bgm.GOODS_TEMPLATES_ID = pm.BASE_GOODS_MODELS_ID\n" - + "\tLEFT JOIN base_goods_template bgt ON bgt.id = bgm.GOODS_TEMPLATES_ID\n" - + "\tLEFT JOIN fin_sys_tenant_user fstu ON fstu.id = ft.OPERATOR_ID\n" - + "\tLEFT JOIN fin_sys_tenant_department fstd ON fstu.SYS_DEPT_ID = fstd.ID \n" - + "\tLEFT JOIN fin_sys_tenant fst ON fst.id = fstd.TENANT_ID where 1=1 "); + StringBuilder sql = new StringBuilder( + "SELECT\n" + "\tft.id,\n" + "\tft.BUSINESS_FORM_CODE businessCode,\n" + "\tbgt.GOODS_NAME goodsName,\n" + "\tbgt.CLASSIFICATION goodsType,\n" + + "\tbgm.id goodsModelId,\n" + "\tbgm.MODEL_NAME goodsModelName,\n" + "\tpm.COUNTS goodsCount,\n" + "\tfst.`name` tennatName,\n" + + "\tfstd.NAME departmentName,\n" + "\tft.OPERATOR_ID distributor,\n" + "\tft.CREATE_TIME TIME \n" + "FROM\n" + "\tl_wh_form_transfer ft\n" + + "\tLEFT JOIN l_wh_procure_model pm ON ft.ID = pm.BUSINESS_ID\n" + + "\tLEFT JOIN base_goods_models bgm ON bgm.GOODS_TEMPLATES_ID = pm.BASE_GOODS_MODELS_ID\n" + + "\tLEFT JOIN base_goods_template bgt ON bgt.id = bgm.GOODS_TEMPLATES_ID\n" + + "\tLEFT JOIN fin_sys_tenant_user fstu ON fstu.id = ft.OPERATOR_ID\n" + + "\tLEFT JOIN fin_sys_tenant_department fstd ON fstu.SYS_DEPT_ID = fstd.ID \n" + + "\tLEFT JOIN fin_sys_tenant fst ON fst.id = fstd.TENANT_ID where 1=1 "); //鍗曞彿 if (StringUtils.isNotEmpty(transferQry.getBusinessFormCode())) { sql.append("AND BUSINESS_FORM_CODE like :businessFormCode "); -- Gitblit v1.9.1