From dc1800d4d2d252b7b37d80d9f54285200c94ff3c Mon Sep 17 00:00:00 2001 From: futian.liu <liufutianyoo@163.com> Date: 星期三, 15 十一月 2023 19:34:40 +0800 Subject: [PATCH] 出库单管理 --- consum-base/src/main/java/com/consum/base/service/LWhFormInventoryServiceImpl.java | 155 +++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 149 insertions(+), 6 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 5076e20..f1ad54d 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 @@ -2,9 +2,10 @@ import com.consum.base.core.CodeGeneratorEnum; import com.consum.base.core.CodeGeneratorService; +import com.consum.base.core.utils.MapRowMapper; import com.consum.base.pojo.LWhFormInventoryDto; import com.consum.base.pojo.LWhFormInventoryParam; -import com.consum.base.util.IdUtil; +import com.consum.base.core.utils.IdUtil; import com.consum.model.po.*; import com.iplatform.model.po.S_user_core; import com.walker.db.page.GenericPager; @@ -17,7 +18,6 @@ import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; -import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -53,6 +53,18 @@ " 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 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 "; /** * @Description 鏂板 @@ -165,9 +177,140 @@ */ public int temporaryStorage(LWhFormInventoryDto dto) { //1.鏍规嵁鐩樼偣鍗昳d鏌ヨ鐩樼偣鍗� - - //2.鍒犻櫎鐩樼偣鍗曠墿鍝� - //3.鏂板鐩樼偣鍗曠墿鍝� - return 0; + LWhFormInventory lWhFormInventory = this.get(new LWhFormInventory(dto.getId())); + if (lWhFormInventory == null) { + log.error("鏍规嵁鐩樼偣鍗昳d鏌ヨ鐩樼偣鍗� 澶辫触"); + return 0; + } + //2.淇敼鐩樼偣鍗� + lWhFormInventory.setStates(1); + lWhFormInventory.setInventoryDate(DateUtils.getDateTimeNumber(System.currentTimeMillis())); + int flag1 = this.update(lWhFormInventory); + if (flag1 == 0) { + log.error("淇敼鐩樼偣鍗� 澶辫触"); + return 0; + } + //3.鏇存柊鐩樼偣鍗曠墿鍝� + List<LWhFormInventoryGoods> inventoryGoodsList = dto.getInventoryGoodsList(); + int flag2 = inventoryGoodsService.update(inventoryGoodsList); + if (flag2 != inventoryGoodsList.size()) { + log.error("鏇存柊鐩樼偣鍗曠墿鍝� 澶辫触"); + return 0; + } + return 1; } + + /** + * 瀹屾垚鐩樼偣 + * @author 鍗㈠簡闃� + * @date 2023/10/31 + */ + public int finishPd(LWhFormInventoryDto 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; + } + + /** + * @Description 寮傚父鏄庣粏鍒楄〃鏌ヨ + * @Author 鍗㈠簡闃� + * @Date 2023/11/1 + * @return + */ + public GenericPager<Map<String, Object>> queryPdDetailList(LWhFormInventoryParam 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); + } + //瑙勬牸鍨嬪彿 + 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) { + 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); + } + } + //鎿嶄綔浜� + 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.getStopTimeStart() != null) { + sql.append(" and STOP_TIME >=:stopTimeStart "); + paramts.put("stopTimeStart", param.getStopTimeStart() * 1000000); + } + if (param.getStopTimeEnd() != null) { + sql.append(" and STOP_TIME <:stopTimeEnd "); + paramts.put("stopTimeEnd", param.getStopTimeEnd() * 1000000 + 240000); + } + + sql.append(" ORDER BY CREATE_TIME DESC "); + + return selectSplit(sql.toString(), paramts, param.getPageNum(), param.getPageSize(), new MapRowMapper()); + } + } -- Gitblit v1.9.1