From b8dc4ccc6ee580b084aa860e64af2d90d1cb5979 Mon Sep 17 00:00:00 2001 From: 石广澎 <shiguangpeng@163.com> Date: 星期三, 29 十一月 2023 10:11:52 +0800 Subject: [PATCH] feat: 1、首页接口对接 2、部门物品分发 --- consum-base/src/main/java/com/consum/base/service/LWhFormInventoryServiceImpl.java | 167 +++++++++++++++++++++++++++++++------------------------ 1 files changed, 95 insertions(+), 72 deletions(-) diff --git a/consum-base/src/main/java/com/consum/base/service/LWhFormInventoryServiceImpl.java b/consum-base/src/main/java/com/consum/base/service/LWhFormInventoryServiceImpl.java index df1ea64..02129e7 100644 --- a/consum-base/src/main/java/com/consum/base/service/LWhFormInventoryServiceImpl.java +++ b/consum-base/src/main/java/com/consum/base/service/LWhFormInventoryServiceImpl.java @@ -3,16 +3,20 @@ import com.consum.base.core.CodeGeneratorEnum; 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.core.utils.PageUtil; +import com.consum.base.pojo.query.LWhFormInventoryQry; import com.consum.base.pojo.request.FormInventoryParam; import com.consum.base.pojo.request.LWhFormInventoryParam; +import com.consum.base.pojo.response.FormInventoryDetailVO; import com.consum.base.pojo.response.FormInventoryGoodsVO; import com.consum.base.pojo.response.FormInventoryVO; import com.consum.model.po.BaseWarehouse; +import com.consum.model.po.FinSysTenant; import com.consum.model.po.FinSysTenantUser; import com.consum.model.po.LWhFormInventory; +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; @@ -24,6 +28,7 @@ import org.apache.commons.compress.utils.Lists; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; @@ -41,13 +46,14 @@ @Autowired private BaseWarehouseServiceImpl baseWarehouseService; @Autowired - private FinSysTenantUserServiceImpl finSysTenantUserService; - @Autowired private LWhFormInventoryGoodsServiceImpl inventoryGoodsService; @Autowired - private BaseGoodsTemplateServiceImpl baseGoodsTemplateService; - @Autowired private LWhGoodsService lWhGoodsService; + @Autowired + private FinSysTenantServiceImpl finSysTenantService; + @Autowired + @Lazy + private LWhFormInventoryCoreService lWhFormInventoryCoreService; private static final String QUERY_LIST = "select * from l_wh_form_inventory where 1=1 "; @@ -60,10 +66,10 @@ + "left join base_goods_template bgt on bgt.ID = model.GOODS_TEMPLATES_ID; "; private static final String QUERY_PD_DETAIL_LIST = - "select lwfi.WAREHOUSE_NAME,lwfig.GOODS_TEMPLATE_NAME,\n" + " lwfig.BASE_GOODS_MODELS_NAME,\n" + " lwfig.INVENTORY_RESULT,\n" - + " lwfig.INIT_COUNTS,\n" + " lwfig.INVENTORY_COUNTS,\n" + " lwfig.ERROR_COUNTS,\n" + " lwfi.AGENCY_NAME,\n" - + " lwfi.OPERATOR_NAME,\n" + " lwfi.STOP_TIME\n" + "from l_wh_form_inventory lwfi\n" - + " inner join l_wh_form_inventory_goods lwfig on lwfi.ID = lwfig.WH_FORM_INVENTORY_ID "; + "SELECT fig.id,fi.WAREHOUSE_NAME,fig.GOODS_TEMPLATE_NAME,fig.BASE_GOODS_MODELS_NAME,fig.INVENTORY_RESULT,fig.INIT_COUNTS,fig.INVENTORY_COUNTS," + + "fig.ERROR_COUNTS,fi.AGENCY_NAME,fi.OPERATOR_NAME,fi.STOP_TIME operatorTime," + + "CASE WHEN fig.INVENTORY_RESULT = 2 THEN fi.IN_BUSINESS_FORM_CODE WHEN fig.INVENTORY_RESULT = 3 THEN fi.OUT_BUSINESS_FORM_CODE END warehouseFormCode " + + "FROM l_wh_form_inventory fi INNER JOIN l_wh_form_inventory_goods fig ON fi.ID = fig.WH_FORM_INVENTORY_ID where 1=1 "; /** * @param param @@ -99,7 +105,8 @@ lWhFormInventory.setStates(0); lWhFormInventory.setAgencyId(Long.valueOf(currentUser.getTenantId())); - lWhFormInventory.setAgencyName(currentUser.getTenantName()); + FinSysTenant finSysTenant = finSysTenantService.selectById(Long.valueOf(currentUser.getTenantId())); + lWhFormInventory.setAgencyName(finSysTenant.getName()); lWhFormInventory.setCreatorId(currentUser.getSysUserId()); lWhFormInventory.setCreatorName(currentUser.getUserName()); lWhFormInventory.setCreateTime(DateUtils.getDateTimeNumber(System.currentTimeMillis())); @@ -112,7 +119,7 @@ * @Author 鍗㈠簡闃� * @Date 2023/10/31 */ - public GenericPager<LWhFormInventory> queryList(com.consum.base.pojo.LWhFormInventoryParam param, FinSysTenantUser sysInfo) { + public GenericPager<LWhFormInventory> queryList(LWhFormInventoryQry param, FinSysTenantUser sysInfo) { StringBuilder sql = new StringBuilder(QUERY_LIST); HashMap<String, Object> paramts = new HashMap<>(); @@ -148,48 +155,65 @@ return selectSplit(sql.toString(), paramts, new LWhFormInventory()); } - /** - * @param id 鐩樼偣鍗昳d - * @Description 鐩樼偣 - * @Author 鍗㈠簡闃� - * @Date 2023/10/31 - */ - public List queryPdList(Long id) { + + public void saveInventory(FormInventoryVO dto, Long id) { //1.鏍规嵁鐩樼偣鍗昳d鏌ヨ鐩樼偣鍗� LWhFormInventory lWhFormInventory = this.get(new LWhFormInventory(id)); if (lWhFormInventory == null) { - log.error("鐩樼偣澶辫触"); + log.error("鏍规嵁鐩樼偣鍗昳d鏌ヨ鐩樼偣鍗曞け璐�"); } - //2.鏌ヨ鐩樼偣鍗曟暟鎹� - List<Map<String, Object>> list = this.select(QUERY_PD_List, new Object[]{lWhFormInventory.getWarehouseId()}); - if (CollectionUtils.isEmpty(list)) { - log.error("鐩樼偣澶辫触"); - return null; + //2.淇敼鐩樼偣鍗� + lWhFormInventory.setStates(1); + lWhFormInventory.setInventoryDate(DateUtils.getDateTimeNumber(System.currentTimeMillis())); + int flag1 = this.update(lWhFormInventory); + if (flag1 == 0) { + log.error("淇敼鐩樼偣鍗曞け璐�"); } - //3.鏂板鐩樼偣鍗曠墿鍝佽褰� -// int flag = inventoryGoodsService.add(list, lWhFormInventory.getWarehouseId()); -// if (flag != list.size()) { -// log.error("鏂板鐩樼偣鍗曡褰�"); -// return null; -// } - //4.鏍规嵁鐩樼偣鍗昳d鏌ヨ鐩樼偣鍗曠墿鍝� - return inventoryGoodsService.getByInventoryId(id); + //3.娣诲姞鐩樼偣鍗曠墿鍝� + List<FormInventoryGoodsVO> formInventoryGoodsList = dto.getFormInventoryGoodsList(); + if (CollectionUtils.isEmpty(formInventoryGoodsList)) { + log.error("鐩樼偣鍗曠墿鍝佷负绌�"); + } + int num = inventoryGoodsService.add(formInventoryGoodsList, id); + if (num != formInventoryGoodsList.size()) { + log.error("鏇存柊鐩樼偣鍗曠墿鍝佸け璐�"); + } + } + /** - * 鏆傚瓨 + * 淇濆瓨鐩樼偣淇℃伅 * * @author 鍗㈠簡闃� * @date 2023/10/31 */ - public int temporaryStorage(LWhFormInventoryParam dto, Integer state) { + public int updateInventoryInfo(LWhFormInventoryParam dto, Integer state, S_user_core currentUser, FinSysTenantUser sysInfo) { //1.鏍规嵁鐩樼偣鍗昳d鏌ヨ鐩樼偣鍗� LWhFormInventory lWhFormInventory = this.get(new LWhFormInventory(dto.getId())); if (lWhFormInventory == null) { log.error("鏍规嵁鐩樼偣鍗昳d鏌ヨ鐩樼偣鍗曞け璐�"); return 0; } - //2.淇敼鐩樼偣鍗� + //娣诲姞鐩樼偣鍗曠墿鍝� + List<FormInventoryGoodsVO> inventoryGoodsList = dto.getInventoryGoodsList(); + if (CollectionUtils.isEmpty(inventoryGoodsList)) { + log.error("鐩樼偣鍗曠墿鍝佷负绌�"); + return 0; + } + this.inventoryGoodsService.updateInventoryGoods(inventoryGoodsList); + //淇敼鐩樼偣鍗� + if (state == 2) { + //瀹屾垚鐩樼偣鏃惰缃畬鎴愮洏鐐规椂闂� + lWhFormInventory.setStopTime(DateUtils.getDateTimeNumber(System.currentTimeMillis())); + + //瀹屾垚鐩樼偣鏃惰缃畬鎴愮洏鐐规椂闂� + String inOutFormByInventoryId = lWhFormInventoryCoreService.createInOutFormByInventoryId(dto.getId(), currentUser, sysInfo); + if (!StringUtils.isEmpty(inOutFormByInventoryId)) { + log.error(inOutFormByInventoryId); + return 0; + } + } lWhFormInventory.setStates(state); lWhFormInventory.setInventoryDate(DateUtils.getDateTimeNumber(System.currentTimeMillis())); int flag1 = this.update(lWhFormInventory); @@ -197,17 +221,7 @@ log.error("淇敼鐩樼偣鍗曞け璐�"); return 0; } - //3.娣诲姞鐩樼偣鍗曠墿鍝� - List<FormInventoryGoodsVO> inventoryGoodsList = dto.getInventoryGoodsList(); - if (CollectionUtils.isEmpty(inventoryGoodsList)) { - log.error("鐩樼偣鍗曠墿鍝佷负绌�"); - return 0; - } - int flag2 = inventoryGoodsService.add(inventoryGoodsList, lWhFormInventory.getWarehouseId()); - if (flag2 != inventoryGoodsList.size()) { - log.error("鏇存柊鐩樼偣鍗曠墿鍝佸け璐�"); - return 0; - } + return 1; } @@ -263,7 +277,7 @@ * @Author 鍗㈠簡闃� * @Date 2023/11/1 */ - public GenericPager<Map<String, Object>> queryPdDetailList(com.consum.base.pojo.LWhFormInventoryParam param, FinSysTenantUser sysInfo) { + public PageUtil<FormInventoryDetailVO> queryPdDetailList(LWhFormInventoryQry param, FinSysTenantUser sysInfo) { StringBuilder sql = new StringBuilder(QUERY_PD_DETAIL_LIST); HashMap<String, Object> paramts = new HashMap<>(); @@ -276,60 +290,68 @@ } //浠撳簱缂栧彿 if (param.getWarehouseId() != null) { - sql.append(" and WAREHOUSE_ID =:WAREHOUSE_ID "); + sql.append("and WAREHOUSE_ID =:WAREHOUSE_ID "); paramts.put("WAREHOUSE_ID", param.getWarehouseId()); } //鐗╁搧鍚嶇О if (!StringUtils.isEmpty(param.getGoodsTemplateName())) { - sql.append(" and GOODS_TEMPLATE_NAME =:GOODS_TEMPLATE_NAME "); + sql.append("and GOODS_TEMPLATE_NAME =:GOODS_TEMPLATE_NAME "); paramts.put("GOODS_TEMPLATE_NAME", StringUtils.CHAR_PERCENT + param.getGoodsTemplateName() + StringUtils.CHAR_PERCENT); } //瑙勬牸鍨嬪彿 if (param.getBaseGoodsModelsId() != null) { - sql.append(" and BASE_GOODS_MODELS_ID =:BASE_GOODS_MODELS_ID "); + sql.append("and BASE_GOODS_MODELS_ID =:BASE_GOODS_MODELS_ID "); paramts.put("BASE_GOODS_MODELS_ID", param.getBaseGoodsModelsId()); } //绫诲瀷(鍑哄叆搴撶被鍨�) Integer inventoryResult = param.getInventoryResult(); if (inventoryResult != null) { - sql.append(" and INVENTORY_RESULT =:INVENTORY_RESULT "); + sql.append("and INVENTORY_RESULT =:INVENTORY_RESULT "); paramts.put("INVENTORY_RESULT", inventoryResult); } //鍑哄叆搴撳崟鍙� if (param.getWarehouseFormCode() != null) { - if (inventoryResult == 2) { //鐩樼泩鍏ュ簱 - sql.append(" and IN_BUSINESS_FORM_CODE =:IN_BUSINESS_FORM_CODE "); - paramts.put("IN_BUSINESS_FORM_CODE", StringUtils.CHAR_PERCENT + param.getWarehouseFormCode() + StringUtils.CHAR_PERCENT); - } else { //鐩樹簭鍑哄簱 - sql.append(" and OUT_BUSINESS_FORM_CODE =:OUT_BUSINESS_FORM_CODE "); - paramts.put("OUT_BUSINESS_FORM_CODE", StringUtils.CHAR_PERCENT + param.getWarehouseFormCode() + StringUtils.CHAR_PERCENT); - } + sql.append( + " and CASE WHEN fig.INVENTORY_RESULT = 2 THEN fi.IN_BUSINESS_FORM_CODE =:warehouseFormCode WHEN fig.INVENTORY_RESULT = 3 THEN fi.OUT_BUSINESS_FORM_CODE =:warehouseFormCode END "); + paramts.put("warehouseFormCode", param.getWarehouseFormCode()); } //鎿嶄綔浜� if (!StringUtils.isEmpty(param.getOperatorName())) { - sql.append(" and OPERATOR_NAME =:OPERATOR_NAME "); + sql.append("and OPERATOR_NAME =:OPERATOR_NAME "); paramts.put("OPERATOR_NAME", StringUtils.CHAR_PERCENT + param.getOperatorName() + StringUtils.CHAR_PERCENT); } //缁撴潫鏃堕棿 - if (param.getStopTimeStart() != null) { - sql.append(" and STOP_TIME >=:stopTimeStart "); - paramts.put("stopTimeStart", param.getStopTimeStart() * 1000000); + if (param.getStartTime() != null) { + sql.append("and STOP_TIME >=:stopTimeStart "); + paramts.put("stopTimeStart", param.getStartTime() * 1000000); } - if (param.getStopTimeEnd() != null) { - sql.append(" and STOP_TIME <:stopTimeEnd "); - paramts.put("stopTimeEnd", param.getStopTimeEnd() * 1000000 + 240000); + if (param.getEndTime() != null) { + sql.append("and STOP_TIME <:stopTimeEnd "); + paramts.put("stopTimeEnd", param.getEndTime() * 1000000 + 240000); } - - sql.append(" ORDER BY CREATE_TIME DESC "); - - return selectSplit(sql.toString(), paramts, param.getPageNum(), param.getPageSize(), new MapRowMapper()); + sql.append("AND fig.INVENTORY_RESULT in(2,3) "); + sql.append("ORDER BY CREATE_TIME DESC "); + GenericPager<Map<String, Object>> mapGenericPager = selectSplit(sql.toString(), paramts, param.getPageNum(), param.getPageSize(), new MapperUtil()); + PageUtil<FormInventoryDetailVO> pageUtil = new PageUtil<>(mapGenericPager); + List<FormInventoryDetailVO> result = Lists.newArrayList(); + mapGenericPager.getDatas().forEach(item -> { + FormInventoryDetailVO formInventoryDetailVO = MapUtils.convertMapToObj(item, FormInventoryDetailVO.class); + formInventoryDetailVO.setInventoryResultType( + formInventoryDetailVO.getInventoryResult() == null ? null : (formInventoryDetailVO.getInventoryResult() == 2 ? "鐩樼泩" : "鐩樹簭")); + formInventoryDetailVO.setInventoryType( + formInventoryDetailVO.getInventoryResult() == null ? null : (formInventoryDetailVO.getInventoryResult() == 2 ? "鐩樼泩鍏ュ簱" : "鐩樹簭鍑哄簱")); + formInventoryDetailVO.setWarehouseFormCode(formInventoryDetailVO.getWarehouseFormCode()); + result.add(formInventoryDetailVO); + }); + pageUtil.setDatas(result); + return pageUtil; } public List<FormInventoryGoodsVO> selectDetailById(Long id) { String sql = "select fig.id, fig.BASE_GOODS_TEMPLATE_ID,fig.GOODS_TEMPLATE_NAME,fig.BASE_GOODS_MODELS_NAME," - + "fig.INIT_COUNTS total,fig.INVENTORY_COUNTS,fig.INVENTORY_RESULT status from " - + "l_wh_form_inventory_goods fig where fig.WH_FORM_INVENTORY_ID = :id"; + + "fig.INIT_COUNTS inventoryCount,fig.INVENTORY_COUNTS realNum,fig.INVENTORY_RESULT status,fig.unit,bgt.CLASSIFICATION type from " + + "l_wh_form_inventory_goods fig left join base_goods_template bgt on bgt.id =fig.BASE_GOODS_TEMPLATE_ID where fig.WH_FORM_INVENTORY_ID = :id"; HashMap<String, Object> param = new HashMap<>(); param.put("id", id); List<Map<String, Object>> select = select(sql, param, new MapperUtil()); @@ -359,7 +381,8 @@ formInventoryVO.setWarehouseName(inventory.getWarehouseName()); String sql = - "select bgm.id,bgt.id baseGoodsTemplateId,bgt.GOODS_NAME goodsTemplateName,bgm.MODEL_NAME baseGoodsModelsName,bgt.CLASSIFICATION type,bgm.UNIT from base_goods_models bgm left join base_goods_template bgt on bgm.GOODS_TEMPLATES_ID = bgt.id " + "select bgm.id,bgt.id baseGoodsTemplateId,bgt.GOODS_NAME goodsTemplateName,bgm.MODEL_NAME baseGoodsModelsName,bgt.CLASSIFICATION type,bgm.UNIT " + + "from base_goods_models bgm left join base_goods_template bgt on bgm.GOODS_TEMPLATES_ID = bgt.id " + "where bgt.AGENCY_ID = :agencyId"; HashMap<String, Object> param = new HashMap<>(); param.put("agencyId", inventory.getAgencyId()); -- Gitblit v1.9.1