From 4ee56e307915e4e71baab476be819e7642e78269 Mon Sep 17 00:00:00 2001 From: futian.liu <liufutianyoo@163.com> Date: 星期三, 08 十一月 2023 18:19:34 +0800 Subject: [PATCH] --部门物品分发与明细 --采购fix --- consum-base/src/main/java/com/consum/base/service/LWhFormTransferServiceImpl.java | 187 +++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 164 insertions(+), 23 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 da88dcb..810a5bf 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 @@ -2,28 +2,40 @@ import com.consum.base.core.CodeGeneratorEnum; import com.consum.base.core.CodeGeneratorService; -import com.consum.base.core.WhBusinessEnum; +import com.consum.base.core.tools.MapRowMapper; import com.consum.base.pojo.LWhFormTransferParam; import com.consum.base.pojo.LWhProcureModelParams; +import com.consum.base.pojo.LWhProcureModelUserDTO; +import com.consum.base.pojo.query.TransferQryDto; import com.consum.base.util.IdUtil; -import com.consum.model.po.*; +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.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; /** * @Description 璋冩嫧绠$悊 @@ -51,8 +63,11 @@ private LWhGoodsRecordService lWhGoodsRecordService; @Autowired private BaseGoodsModelsServiceImpl baseGoodsModelsService; + @Autowired + private LWhProcureModelUserServiceImpl lWhProcureModelUserService; private static String QUERY_FORM_TRANSFER_LIST = "SELECT * FROM l_wh_form_transfer WHERE 1 = 1"; + /** * @Description 鏂板 @@ -65,7 +80,12 @@ //璋冩嫧鍗昳d long lWhFormTransferId = IdUtil.generateId(); lWhFormTransfer.setId(lWhFormTransferId); - lWhFormTransfer.setBusinessType(0); + + Integer businessType = param.getTransferBusinessType(); + // 涓氬姟绫诲瀷 璋冩嫧/閮ㄩ棬鍒嗗彂/閮ㄩ棬閫�鍥� 鍗曟嵁绫诲瀷銆�0浠撳簱璋冩嫧锛�1閮ㄩ棬鍒嗗彂锛�2閮ㄩ棬鐗╁搧鍥為�� + // TODO 鏋氫妇瀛楀吀 + lWhFormTransfer.setBusinessType(businessType); + lWhFormTransfer.setBusinessFormCode(codeGeneratorService.createBusinessFormCode(CodeGeneratorEnum.Transfer)); Long warehouseId = param.getInWarehouseId(); lWhFormTransfer.setInWarehouseId(warehouseId); @@ -89,43 +109,80 @@ lWhFormTransfer.setOperatorId(sysInfo.getId()); lWhFormTransfer.setOperatorName(sysInfo.getUserName()); lWhFormTransfer.setCreateTime(param.getCreateTime()); + //0=寰呭嚭搴擄紱1=寰呮帴鏀讹紱2=宸插叆搴撳簱:4=宸叉挙閿� lWhFormTransfer.setStates(0); lWhFormTransfer.setProcureDoc(param.getProcureDoc()); + + //3.褰撲笟鍔$被鍨嬩负閮ㄩ棬鍒嗗彂鏃� 娣诲姞閮ㄩ棬鍒嗗彂璁板綍鍜屼娇鐢ㄤ汉 + if (businessType == 1) { + //閮ㄩ棬鍒嗗彂绫诲瀷 鍑哄簱浠撳簱绫诲瀷0鏈烘瀯1閮ㄩ棬 + // TODO 鍑哄簱涓氬姟绫诲瀷 鑱旂郴鐢佃瘽 + lWhFormTransfer.setOutWarehouseType(1); + } int flag1 = this.insert(lWhFormTransfer); if (flag1 == 0) { log.error("鏂板璋冩嫧鍗曞け璐�"); return 0; } + //2.鏂板鐗╁搧鍨嬪彿璁板綍 List<LWhProcureModelParams> models = param.getModels(); List<LWhProcureModel> modelList = new ArrayList<>(); for (LWhProcureModelParams model : models) { LWhProcureModel lWhProcureModel = new LWhProcureModel(); lWhProcureModel.setId(IdUtil.generateId()); - lWhProcureModel.setBusinessType(2); + // 鐗╁搧鍨嬪彿涓氬姟绫诲瀷 + 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); + 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); + } + int procureInsertNum = lWhProcureModelUserService.insert(procureModelUserList); + if (procureInsertNum != procureModelUserList.size()) { + log.error("鏂板鐗╁搧浣跨敤淇℃伅澶辫触"); + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return 0; + } + } + modelList.add(lWhProcureModel); } + int flag2 = this.lWhProcureModelService.insert(modelList); if (flag2 != modelList.size()) { log.error("鏂板鐗╁搧鍨嬪彿澶辫触"); TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); return 0; } + return 1; } + /** - * @Description 鍒楄〃鏌ヨ + * @Description 鍒楄〃鏌ヨ * @Author 鍗㈠簡闃� * @Date 2023/10/30 */ - public GenericPager<LWhFormTransfer> queryFormTransferList(LWhFormTransferParam param) { + public GenericPager<LWhFormTransfer> queryFormTransferList(TransferQryDto param) { HashMap<String, Object> paramts = new HashMap<>(); StringBuilder sql = new StringBuilder(QUERY_FORM_TRANSFER_LIST); //璋冩嫧鍗曞彿 @@ -135,18 +192,19 @@ } //鐗╁搧鍚嶇О 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)"); + 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)"); paramts.put("goodsTemplateName", StringUtils.CHAR_PERCENT + param.getGoodsTemplateName() + StringUtils.CHAR_PERCENT); } //璋冩嫧鏈烘瀯 - if (param.getOutAgencyId() != null){ + if (param.getOutAgencyId() != null) { sql.append(" and OUT_AGENCY_ID = :OUT_AGENCY_ID "); paramts.put("OUT_AGENCY_ID", param.getOutAgencyId()); } //鎺ユ敹鏈烘瀯 - if (param.getInAgencyId() != null){ + if (param.getInAgencyId() != null) { sql.append(" and IN_AGENCY_ID = :IN_AGENCY_ID "); - paramts.put("IN_AGENCY_ID", param.getInAgencyId() ); + paramts.put("IN_AGENCY_ID", param.getInAgencyId()); } //鐘舵�� if (param.getStates() != null) { @@ -184,7 +242,7 @@ } /** - * @Description 鏍规嵁id鏌ヨ璇︽儏 + * @Description 鏍规嵁id鏌ヨ璇︽儏 * @Author 鍗㈠簡闃� * @Date 2023/10/30 */ @@ -193,18 +251,32 @@ //1.鏌ヨ璋冩嫧鍗� LWhFormTransfer lWhFormTransfer = this.get(new LWhFormTransfer(id)); if (lWhFormTransfer != null) { - BeanUtils.copyProperties(lWhFormTransfer,vo); + BeanUtils.copyProperties(lWhFormTransfer, vo); } //2.鏌ヨ鐗╁搧鍨嬪彿 - List<LWhProcureModel> models = this.lWhProcureModelService.getModelByForm(WhBusinessEnum.DIAOBO, id); +// List<LWhProcureModel> models = this.lWhProcureModelService.getModelByForm(WhBusinessEnum.DIAOBO, id); + List<LWhProcureModel> models = this.lWhProcureModelService.getModelByForm(null, id); + if (!CollectionUtils.isEmpty(models)) { - vo.setModels(models); + List<LWhProcureModelVo> lWhProcureModelVoList = Lists.newArrayList(); + for (LWhProcureModel model : models) { + LWhProcureModelVo lWhProcureModelVo = new LWhProcureModelVo(); + BeanUtils.copyProperties(model, lWhProcureModelVo); + + LWhProcureModelUser lWhProcureModelUser = new LWhProcureModelUser(); + lWhProcureModelUser.setWhProcureModelId(model.getId()); + List<LWhProcureModelUser> select = lWhProcureModelUserService.select(lWhProcureModelUser); + lWhProcureModelVo.setProcureModelUsersList(select); + lWhProcureModelVoList.add(lWhProcureModelVo); + } + vo.setModels(lWhProcureModelVoList); } return vo; } + /** - * @Description 瀵煎嚭璋冩嫧鍑哄簱鍗� + * @Description 瀵煎嚭璋冩嫧鍑哄簱鍗� * @Author 鍗㈠簡闃� * @Date 2023/10/31 */ @@ -215,8 +287,8 @@ Long outWarehouseFormId = this.lWhFormOutputCoreService.createOutFormByTransId(id, currentUser, dealTime); //2.鍑哄簱鍗昳d鏌ヨ鍑哄簱鍗� LWhFormOutput lWhFormOutput = this.lWhFormOutputService.get(new LWhFormOutput(outWarehouseFormId)); - if (lWhFormOutput!= null) { - BeanUtils.copyProperties(lWhFormOutput,result); + if (lWhFormOutput != null) { + BeanUtils.copyProperties(lWhFormOutput, result); } //3.鏍规嵁杩涘嚭搴撴祦姘存�昏〃id鏌ヨl_wh_goods_record LWhGoodsRecord record = new LWhGoodsRecord(); @@ -226,7 +298,7 @@ if (!CollectionUtils.isEmpty(recordList)) { for (LWhGoodsRecord lWhGoodsRecord : recordList) { LWhGoodsRecordVo vo = new LWhGoodsRecordVo(); - BeanUtils.copyProperties(lWhGoodsRecord,vo); + BeanUtils.copyProperties(lWhGoodsRecord, vo); //鏍规嵁鍨嬪彿id鏌ヨ鍨嬪彿 BaseGoodsModels baseGoodsModels = baseGoodsModelsService.get(new BaseGoodsModels(id)); if (baseGoodsModels != null) { @@ -242,6 +314,7 @@ /** * 鎾ら攢 + * * @author 鍗㈠簡闃� * @date 2023/10/31 */ @@ -250,4 +323,72 @@ lWhFormTransfer.setStates(4); return this.update(lWhFormTransfer); } + + public GenericPager<Map<String, Object>> queryTransferInfo(TransferQryDto transferQryDto) { + + 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 "); + //鍗曞彿 + if (StringUtils.isNotEmpty(transferQryDto.getBusinessFormCode())) { + sql.append("AND BUSINESS_FORM_CODE like :businessFormCode "); + paramts.put("businessFormCode", StringUtils.CHAR_PERCENT + transferQryDto.getBusinessFormCode() + StringUtils.CHAR_PERCENT); + } + //鐗╁搧鍚嶇О + if (StringUtils.isNotEmpty(transferQryDto.getGoodsTemplateName())) { + sql.append("AND bgt.GOODS_NAME like:goodsName "); + paramts.put("goodsName", StringUtils.CHAR_PERCENT + transferQryDto.getGoodsTemplateName() + StringUtils.CHAR_PERCENT); + } + // 瑙勬牸鍨嬪彿 + if (transferQryDto.getBaseGoodsTemplateId() != null) { + sql.append("AND bgm.id =:goodsModelId "); + paramts.put("goodsModelId", transferQryDto.getBaseGoodsTemplateId()); + } + //璋冩嫧鏈烘瀯 + if (transferQryDto.getOutAgencyId() != null) { + sql.append("AND OUT_AGENCY_ID = :OUT_AGENCY_ID "); + paramts.put("OUT_AGENCY_ID", transferQryDto.getOutAgencyId()); + } + + //鍒涘缓浜� + if (StringUtils.isNotEmpty(transferQryDto.getOperatorName())) { + sql.append("AND ft.OPERATOR_NAME =:OPERATOR_NAME "); + paramts.put("OPERATOR_NAME", transferQryDto.getOperatorName()); + } + //鐢宠鏃堕棿 + if (transferQryDto.getCreateTimeStart() != null) { + sql.append("AND ft.CREATE_TIME >=:createTimeStart "); + paramts.put("createTimeStart", transferQryDto.getCreateTimeStart() * 1000000); + } + if (transferQryDto.getCreateTimeEnd() != null) { + sql.append("AND ft.CREATE_TIME <:createTimeEnd "); + paramts.put("createTimeEnd", transferQryDto.getCreateTimeEnd() * 1000000 + 240000); + } + sql.append("ORDER BY ft.CREATE_TIME DESC"); + + GenericPager<Map<String, Object>> mapGenericPager = this.selectSplit(sql.toString(), paramts, transferQryDto.getPageNum(), transferQryDto.getPageSize(), + new MapRowMapper()); + + return mapGenericPager; + } + + } -- Gitblit v1.9.1