From 3836720e3b0fc9ab884d178e0ac27e942b175da2 Mon Sep 17 00:00:00 2001 From: futian.liu <liufutianyoo@163.com> Date: 星期二, 05 十二月 2023 15:23:01 +0800 Subject: [PATCH] 报废单添加金额字段 --- consum-base/src/main/java/com/consum/base/service/LWhFormInventoryServiceImpl.java | 211 +++++++++++++++++++++++++--------------------------- 1 files changed, 101 insertions(+), 110 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 79c9669..b828350 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 @@ -1,11 +1,25 @@ package com.consum.base.service; +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.context.annotation.Lazy; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.CollectionUtils; + import com.consum.base.core.CodeGeneratorEnum; import com.consum.base.core.CodeGeneratorService; +import com.consum.base.core.type.InventoryStatesType; import com.consum.base.core.utils.IdUtil; 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.excel.InventoryExcelTemplate; import com.consum.base.pojo.query.LWhFormInventoryQry; import com.consum.base.pojo.request.FormInventoryParam; import com.consum.base.pojo.request.LWhFormInventoryParam; @@ -21,17 +35,8 @@ import com.walker.infrastructure.utils.DateUtils; import com.walker.infrastructure.utils.StringUtils; import com.walker.jdbc.service.BaseServiceImpl; -import java.util.HashMap; -import java.util.List; -import java.util.Map; + import lombok.extern.slf4j.Slf4j; -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.transaction.annotation.Transactional; -import org.springframework.util.CollectionUtils; /** * @Description 鐩樼偣 @@ -40,12 +45,12 @@ */ @Slf4j @Service -public class LWhFormInventoryServiceImpl extends BaseServiceImpl { +public class LWhFormInventoryServiceImpl extends BaseServiceImpl implements LWhFormInventoryService { @Autowired private CodeGeneratorService codeGeneratorService; @Autowired - private BaseWarehouseServiceImpl baseWarehouseService; + private BaseWarehouseService baseWarehouseService; @Autowired private LWhFormInventoryGoodsServiceImpl inventoryGoodsService; @Autowired @@ -56,15 +61,7 @@ @Lazy private LWhFormInventoryCoreService lWhFormInventoryCoreService; - private static final String QUERY_LIST = "select * from l_wh_form_inventory where 1=1 "; - - private static final String QUERY_PD_List = "SELECT bgt.GOODS_NAME goodsName,model.MODEL_NAME modelName,bgt.CLASSIFICATION,model.UNIT,\n" - + " record.endCount,bgt.ID goodsTemplateId,model.ID modelsId\n" + "FROM BASE_GOODS_MODELS model\n" - + " LEFT JOIN (SELECT COUNT(1) endCount, BASE_GOODS_MODELS_ID\n" + " FROM L_WH_GOODS\n" - + " WHERE WAREHOUSE_TYPE = 0\n" + " AND WAREHOUSE_ID = 1\n" + " AND STATES = ?\n" - + " GROUP BY BASE_GOODS_MODELS_ID) record ON record.BASE_GOODS_MODELS_ID = model.id\n" - + "left join base_goods_template bgt on bgt.ID = model.GOODS_TEMPLATES_ID; "; private static final String QUERY_PD_DETAIL_LIST = "SELECT fig.id,fi.WAREHOUSE_NAME,fig.GOODS_TEMPLATE_NAME,fig.BASE_GOODS_MODELS_NAME,fig.INVENTORY_RESULT,fig.INIT_COUNTS,fig.INVENTORY_COUNTS," @@ -74,23 +71,25 @@ /** * @param param - * @param currentUser 褰撳墠鐧诲綍鐢ㄦ埛 + * @param currentUser 褰撳墠鐧诲綍鐢ㄦ埛 * @param operatorUser 鐩樼偣浜� - * @param monitorUser 鐩戠洏浜� + * @param monitorUser 鐩戠洏浜� * @return * @Description 鏂板 * @Author 鍗㈠簡闃� * @Date 2023/10/31 */ - public int add(FormInventoryParam param, FinSysTenantUser currentUser, FinSysTenantUser operatorUser, FinSysTenantUser monitorUser) { - //鏂板鐩樼偣鍗� + @Override + public int add(FormInventoryParam param, FinSysTenantUser currentUser, FinSysTenantUser operatorUser, + FinSysTenantUser monitorUser) { + // 鏂板鐩樼偣鍗� LWhFormInventory lWhFormInventory = new LWhFormInventory(); BeanUtils.copyProperties(param, lWhFormInventory); lWhFormInventory.setId(IdUtil.generateId()); - //鐩樼偣鍗曠紪鐮� + // 鐩樼偣鍗曠紪鐮� String businessFormCode = codeGeneratorService.createBusinessFormCode(CodeGeneratorEnum.Inventory); lWhFormInventory.setBusinessFormCode(businessFormCode); - //鏍规嵁浠撳簱id鏌ヨ浠撳簱 + // 鏍规嵁浠撳簱id鏌ヨ浠撳簱 BaseWarehouse baseWarehouse = this.baseWarehouseService.getById(param.getWarehouseId()); if (baseWarehouse != null) { lWhFormInventory.setWarehouseName(baseWarehouse.getWarehouseName()); @@ -104,7 +103,7 @@ lWhFormInventory.setOperatorName2(monitorUser.getUserName()); } - lWhFormInventory.setStates(0); + lWhFormInventory.setStates(InventoryStatesType.NEW.getValue()); lWhFormInventory.setAgencyId(Long.valueOf(currentUser.getTenantId())); FinSysTenant finSysTenant = finSysTenantService.selectById(Long.valueOf(currentUser.getTenantId())); lWhFormInventory.setAgencyName(finSysTenant.getName()); @@ -120,26 +119,28 @@ * @Author 鍗㈠簡闃� * @Date 2023/10/31 */ + @Override public GenericPager<LWhFormInventory> queryList(LWhFormInventoryQry param, FinSysTenantUser sysInfo) { StringBuilder sql = new StringBuilder(QUERY_LIST); HashMap<String, Object> paramts = new HashMap<>(); - //鐩樼偣鍗曞彿 + // 鐩樼偣鍗曞彿 if (!StringUtils.isEmpty(param.getBusinessFormCode())) { sql.append("and BUSINESS_FORM_CODE =:BUSINESS_FORM_CODE "); paramts.put("BUSINESS_FORM_CODE", param.getBusinessFormCode()); } - //鐩樼偣鍗曞悕绉� + // 鐩樼偣鍗曞悕绉� if (!StringUtils.isEmpty(param.getBusinessFormName())) { sql.append("and BUSINESS_FORM_NAME like :BUSINESS_FORM_NAME "); - paramts.put("BUSINESS_FORM_NAME", StringUtils.CHAR_PERCENT + param.getBusinessFormName() + StringUtils.CHAR_PERCENT); + paramts.put("BUSINESS_FORM_NAME", + StringUtils.CHAR_PERCENT + param.getBusinessFormName() + StringUtils.CHAR_PERCENT); } - //浠撳簱缂栧彿 + // 浠撳簱缂栧彿 if (param.getWarehouseId() != null) { sql.append("and WAREHOUSE_ID =:WAREHOUSE_ID "); paramts.put("WAREHOUSE_ID", param.getWarehouseId()); } - //鐩樼偣鏃堕棿 + // 鐩樼偣鏃堕棿 if (param.getStartTime() != null) { sql.append("and INVENTORY_DATE >=:inventoryDateStart "); paramts.put("inventoryDateStart", param.getStartTime() * 1000000); @@ -148,7 +149,7 @@ sql.append("and INVENTORY_DATE <:inventoryDateEnd "); paramts.put("inventoryDateEnd", param.getEndTime() * 1000000 + 240000); } - //鏈烘瀯 + // 鏈烘瀯 sql.append("and AGENCY_ID =:AGENCY_ID "); paramts.put("AGENCY_ID", sysInfo.getTenantId()); @@ -156,30 +157,29 @@ return selectSplit(sql.toString(), paramts, new LWhFormInventory()); } - - public List<FormInventoryGoodsVO> saveInventory(FormInventoryVO dto, Long id) { - //1.鏍规嵁鐩樼偣鍗昳d鏌ヨ鐩樼偣鍗� + @Override + public FormInventoryVO saveInventory(FormInventoryVO dto, Long id) { + // 1.鏍规嵁鐩樼偣鍗昳d鏌ヨ鐩樼偣鍗� LWhFormInventory lWhFormInventory = this.get(new LWhFormInventory(id)); if (lWhFormInventory == null) { log.error("鏍规嵁鐩樼偣鍗昳d鏌ヨ鐩樼偣鍗曞け璐�"); } - //2.淇敼鐩樼偣鍗� - lWhFormInventory.setStates(1); + // 2.淇敼鐩樼偣鍗� + lWhFormInventory.setStates(InventoryStatesType.PENDING.getValue()); lWhFormInventory.setInventoryDate(DateUtils.getDateTimeNumber(System.currentTimeMillis())); int flag1 = this.update(lWhFormInventory); if (flag1 == 0) { log.error("淇敼鐩樼偣鍗曞け璐�"); } - //3.娣诲姞鐩樼偣鍗曠墿鍝� + // 3.娣诲姞鐩樼偣鍗曠墿鍝� List<FormInventoryGoodsVO> formInventoryGoodsList = dto.getFormInventoryGoodsList(); if (CollectionUtils.isEmpty(formInventoryGoodsList)) { log.error("鐩樼偣鍗曠墿鍝佷负绌�"); } List<FormInventoryGoodsVO> result = inventoryGoodsService.add(formInventoryGoodsList, id); - - return result; + dto.setFormInventoryGoodsList(result); + return dto; } - /** * 淇濆瓨鐩樼偣淇℃伅 @@ -188,27 +188,30 @@ * @date 2023/10/31 */ @Transactional(rollbackFor = Exception.class) - public int updateInventoryInfo(LWhFormInventoryParam dto, Integer state, S_user_core currentUser, FinSysTenantUser sysInfo) { - //1.鏍规嵁鐩樼偣鍗昳d鏌ヨ鐩樼偣鍗� + @Override + 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; } - //娣诲姞鐩樼偣鍗曠墿鍝� + // 娣诲姞鐩樼偣鍗曠墿鍝� 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); + // 瀹屾垚鐩樼偣鏃惰缃畬鎴愮洏鐐规椂闂� + String inOutFormByInventoryId = + lWhFormInventoryCoreService.createInOutFormByInventoryId(dto.getId(), currentUser, sysInfo); if (!StringUtils.isEmpty(inOutFormByInventoryId)) { log.error(inOutFormByInventoryId); return 0; @@ -226,101 +229,57 @@ } /** - * 瀹屾垚鐩樼偣 - * - * @author 鍗㈠簡闃� - * @date 2023/10/31 - */ -// public int finishPd(LWhFormInventoryParam dto) { -// //1.鏍规嵁鐩樼偣鍗昳d鏌ヨ鐩樼偣鍗� -// LWhFormInventory lWhFormInventory = this.get(new LWhFormInventory(dto.getId())); -// if (lWhFormInventory == null) { -// log.error("鏍规嵁鐩樼偣鍗昳d鏌ヨ鐩樼偣鍗� 澶辫触"); -// return 0; -// } -// //2.淇敼鐩樼偣鍗� -// lWhFormInventory.setStates(2); -// lWhFormInventory.setStopTime(DateUtils.getDateTimeNumber(System.currentTimeMillis())); -// int flag1 = this.update(lWhFormInventory); -// if (flag1 == 0) { -// log.error("淇敼鐩樼偣鍗� 澶辫触"); -// return 0; -// } -// //3.鏇存柊鐩樼偣鍗曠墿鍝� -// List<LWhFormInventoryGoods> inventoryGoodsList = dto.getInventoryGoodsList(); -// if (CollectionUtils.isEmpty(inventoryGoodsList)) { -// log.error("鐩樼偣鍗曠墿鍝� 涓虹┖"); -// return 0; -// } -// for (LWhFormInventoryGoods inventoryGoods : inventoryGoodsList) { -// int errorCounts = inventoryGoods.getInitCounts() - inventoryGoods.getInventoryCounts(); -// if (errorCounts > 0) { -// inventoryGoods.setInventoryResult(3); -// } else if (errorCounts < 0) { -// inventoryGoods.setInventoryResult(2); -// } else { -// inventoryGoods.setInventoryResult(1); -// } -// inventoryGoods.setErrorCounts(Math.abs(errorCounts)); -// } -// int flag2 = inventoryGoodsService.update(inventoryGoodsList); -// if (flag2 != inventoryGoodsList.size()) { -// log.error("鏇存柊鐩樼偣鍗曠墿鍝� 澶辫触"); -// return 0; -// } -// return 1; -// } - - /** * @return * @Description 寮傚父鏄庣粏鍒楄〃鏌ヨ * @Author 鍗㈠簡闃� * @Date 2023/11/1 */ + @Override public PageUtil<FormInventoryDetailVO> queryPdDetailList(LWhFormInventoryQry param, FinSysTenantUser sysInfo) { StringBuilder sql = new StringBuilder(QUERY_PD_DETAIL_LIST); HashMap<String, Object> paramts = new HashMap<>(); - //鏈烘瀯 + // 鏈烘瀯 sql.append(" and AGENCY_ID like:AGENCY_ID "); if (param.getAgencyId() != null) { paramts.put("AGENCY_ID", param.getAgencyId() + StringUtils.CHAR_PERCENT); } else { paramts.put("AGENCY_ID", sysInfo.getTenantId() + StringUtils.CHAR_PERCENT); } - //浠撳簱缂栧彿 + // 浠撳簱缂栧彿 if (param.getWarehouseId() != null) { 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 "); - paramts.put("GOODS_TEMPLATE_NAME", StringUtils.CHAR_PERCENT + param.getGoodsTemplateName() + StringUtils.CHAR_PERCENT); + 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 "); paramts.put("BASE_GOODS_MODELS_ID", param.getBaseGoodsModelsId()); } - //绫诲瀷(鍑哄叆搴撶被鍨�) + // 绫诲瀷(鍑哄叆搴撶被鍨�) Integer inventoryResult = param.getInventoryResult(); if (inventoryResult != null) { sql.append("and INVENTORY_RESULT =:INVENTORY_RESULT "); paramts.put("INVENTORY_RESULT", inventoryResult); } - //鍑哄叆搴撳崟鍙� + // 鍑哄叆搴撳崟鍙� if (param.getWarehouseFormCode() != null) { 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 "); paramts.put("OPERATOR_NAME", StringUtils.CHAR_PERCENT + param.getOperatorName() + StringUtils.CHAR_PERCENT); } - //缁撴潫鏃堕棿 + // 缁撴潫鏃堕棿 if (param.getStartTime() != null) { sql.append("and STOP_TIME >=:stopTimeStart "); paramts.put("stopTimeStart", param.getStartTime() * 1000000); @@ -331,15 +290,16 @@ } 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()); + 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.setInventoryResultType(formInventoryDetailVO.getInventoryResult() == null ? null + : (formInventoryDetailVO.getInventoryResult() == 2 ? "鐩樼泩" : "鐩樹簭")); + formInventoryDetailVO.setInventoryType(formInventoryDetailVO.getInventoryResult() == null ? null + : (formInventoryDetailVO.getInventoryResult() == 2 ? "鐩樼泩鍏ュ簱" : "鐩樹簭鍑哄簱")); formInventoryDetailVO.setWarehouseFormCode(formInventoryDetailVO.getWarehouseFormCode()); result.add(formInventoryDetailVO); }); @@ -347,6 +307,7 @@ return pageUtil; } + @Override 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," @@ -363,6 +324,7 @@ return result; } + @Override public FormInventoryVO queryInventBaseGoodTemplate(Long id) { FormInventoryVO formInventoryVO = new FormInventoryVO(); @@ -390,11 +352,40 @@ List<FormInventoryGoodsVO> goodsVOList = Lists.newArrayList(); result.forEach(item -> { FormInventoryGoodsVO baseGoodsModels = MapUtils.convertMapToObj(item, FormInventoryGoodsVO.class); - int inventoryCount = this.lWhGoodsService.queryGoodsModelNum(warehouseType, warehouseId, baseGoodsModels.getId(), 1, null); + int inventoryCount = + this.lWhGoodsService.queryGoodsModelNum(warehouseType, warehouseId, baseGoodsModels.getId(), 1, null); baseGoodsModels.setInventoryCount(inventoryCount); goodsVOList.add(baseGoodsModels); }); formInventoryVO.setFormInventoryGoodsList(goodsVOList); return formInventoryVO; } + + @Override + public List<InventoryExcelTemplate> getExportList(Long id) { + String sql = "SELECT\n" + "\tfi.INVENTORY_DATE createTime,\n" + "\tfi.STOP_TIME endTime,\n" + + "\tfi.OPERATOR_NAME,\n" + "\tfi.OPERATOR_NAME2 monitorName,\n" + "\tfi.AGENCY_NAME tenantName,\n" + + "\tfig.GOODS_TEMPLATE_NAME templateName,\n" + "\tfig.BASE_GOODS_MODELS_NAME baseModelName,\n" + + "\tfig.INVENTORY_COUNTS num,\n" + "\tfig.INIT_COUNTS stockNum,\n" + "\tfig.INVENTORY_RESULT,\n" + + "\tBEIZ1 remark\n" + "FROM\n" + "\tl_wh_form_inventory fi\n" + + "\tLEFT JOIN l_wh_form_inventory_goods fig ON fi.ID = fig.WH_FORM_INVENTORY_ID\n" + "WHERE\n" + + "\tfi.ID = :id"; + HashMap<String, Object> param = new HashMap<>(); + param.put("id", id); + List<Map<String, Object>> select = this.select(sql, param, new MapperUtil()); + if (CollectionUtils.isEmpty(select)) { + return null; + } + List<InventoryExcelTemplate> list = Lists.newArrayList(); + select.forEach(item -> { + InventoryExcelTemplate inventoryExcelTemplate = + MapUtils.convertMapToObj(item, InventoryExcelTemplate.class); + inventoryExcelTemplate.setInventoryDeception(inventoryExcelTemplate.getInventoryResult() == 1 ? "鏄�" : "鍚�"); + inventoryExcelTemplate.setDeception(inventoryExcelTemplate.getInventoryResult() == 1 ? "姝e父" + : (inventoryExcelTemplate.getInventoryResult() == 2 ? "鐩樼泩" : "鐩樹簭")); + list.add(inventoryExcelTemplate); + }); + return list; + + } } -- Gitblit v1.9.1