From d7f0b77a81c6c6f8895af082214edcbed29e3ab9 Mon Sep 17 00:00:00 2001 From: cy <1664593601@qq.com> Date: 星期一, 06 十一月 2023 16:27:04 +0800 Subject: [PATCH] feat: 调拨调整 --- consum-base/src/main/java/com/consum/base/service/LWhGoodsService.java | 146 ++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 134 insertions(+), 12 deletions(-) diff --git a/consum-base/src/main/java/com/consum/base/service/LWhGoodsService.java b/consum-base/src/main/java/com/consum/base/service/LWhGoodsService.java index 3275512..ea3b9ea 100644 --- a/consum-base/src/main/java/com/consum/base/service/LWhGoodsService.java +++ b/consum-base/src/main/java/com/consum/base/service/LWhGoodsService.java @@ -2,8 +2,10 @@ import com.walker.infrastructure.utils.CollectionUtils; import com.walker.jdbc.service.BaseServiceImpl; +import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -11,7 +13,6 @@ /** * @ClassName LWhGoodsService - * @Author cy * @Date 2023/10/24 * @Description * @Version 1.0 @@ -21,6 +22,7 @@ /** + * @param warehouseType 浠撳簱绫诲瀷0鏈烘瀯1閮ㄩ棬 * @param warehouseId 鎵�灞炰粨搴撲粨搴撶紪鍙� * @param baseGoodsModelsId 瑙勬牸鍨嬪彿缂栧彿 * @param states 锛�0=鍦ㄩ�旇皟鎷紱1=鍏ュ簱鏈垎鍙戯紱2=宸蹭笅鍙戯紱3=鎶ュ簾锛� @@ -29,20 +31,24 @@ */ private static String query_Goods_Model_Num = "SELECT COUNT(1) from L_WH_GOODS where 1=1"; - public int queryGoodsModelNum(Long warehouseId, Long baseGoodsModelsId, Short states, Short buyType) { + public int queryGoodsModelNum(Integer warehouseType, Long warehouseId, Long baseGoodsModelsId, Short states, Short buyType) { StringBuilder sql = new StringBuilder(query_Goods_Model_Num); Map<String, Object> paramts = new HashMap<>(); + if (warehouseType != null) { + sql.append(" and WAREHOUSE_TYPE=:warehouseType"); + paramts.put("warehouseType", warehouseType); + } if (warehouseId != null) { sql.append(" and WAREHOUSE_ID=:warehouseId"); paramts.put("warehouseId", warehouseId); } if (baseGoodsModelsId != null) { - sql.append(" and BASE_GOODS_TEMPLATE_ID=:baseGoodsModelsId"); + sql.append(" and BASE_GOODS_MODELS_ID=:baseGoodsModelsId"); paramts.put("baseGoodsModelsId", baseGoodsModelsId); } if (states != null) { - sql.append(" and STATES=:STATES"); + sql.append(" and STATES=:states"); paramts.put("states", states); } if (buyType != null) { @@ -65,9 +71,13 @@ */ private static String QUERY_OUT_GOODS_ID = "SELECT*FROM L_WH_GOODS WHERE 1=1"; - public List<Map<String, Object>> queryOutGoods(Long warehouseId, Long baseGoodsModelsId, Short states, Short buyType, Integer goodsModelNum) { + public List<Map<String, Object>> queryOutGoods(Integer warehouseType, Long warehouseId, Long baseGoodsModelsId, Short states, Short buyType, Integer goodsModelNum) { StringBuilder sql = new StringBuilder(QUERY_OUT_GOODS_ID); Map<String, Object> paramts = new HashMap<>(); + if (warehouseType != null) { + sql.append(" and WAREHOUSE_TYPE=:warehouseType"); + paramts.put("warehouseType", warehouseType); + } if (warehouseId != null) { sql.append(" and WAREHOUSE_ID=:warehouseId"); paramts.put("warehouseId", warehouseId); @@ -77,7 +87,7 @@ paramts.put("baseGoodsModelsId", baseGoodsModelsId); } if (states != null) { - sql.append(" and STATES=:STATES"); + sql.append(" and STATES=:states"); paramts.put("states", states); } if (buyType != null) { @@ -98,14 +108,105 @@ * @param goodsModelNum 鍙栧嚭鐨勬暟閲� * @return */ - public List<Long> queryOutGoodsId(Long warehouseId, Long baseGoodsModelsId, Short states, Short buyType, Integer goodsModelNum) { - List<Map<String, Object>> outGoods = queryOutGoods(warehouseId, baseGoodsModelsId, states, buyType, goodsModelNum); + public List<Long> queryOutGoodsId(Integer warehouseType, Long warehouseId, Long baseGoodsModelsId, Short states, Short buyType, Integer goodsModelNum) { + List<Map<String, Object>> outGoods = queryOutGoods(warehouseType, warehouseId, baseGoodsModelsId, states, buyType, goodsModelNum); if (CollectionUtils.isEmpty(outGoods)) { return null; } List<Long> whGoodsIds = outGoods.stream().map(map -> (Long) map.get("id")).collect(Collectors.toList()); return whGoodsIds; } + + + /** + * 鏌ヨ鎶ュ簾鐗╁搧 + * 榛樿浼樺厛鎶ュ簾鏈�楂樹环鐨勭墿鍝� + * + * @param warehouseType + * @param warehouseId + * @param transBusinessId 璋冩嫧鍗曞彿 + * @param nowUserName 浣跨敤浜哄鍚� + * @param baseGoodsModelsId 鐗╁搧鍨嬪彿 + * @param states 鐘舵�侊紙0=鍦ㄩ�旇皟鎷紱1=鍏ュ簱鏈垎鍙戯紱2=宸蹭笅鍙戯紱3=鎶ュ簾 4 闆舵槦鍑哄簱锛� + * @param goodsModelNum 鍙栧嚭鐨勬暟閲� + * @return + */ + + private static String QUERY_SCRAPPED_GOODS_PREFIX_1 = "SELECT goods.id FROM L_WH_GOODS goods LEFT JOIN L_GOODS_USER_RECORD useRecord ON goods.id=useRecord.WH_GOODS_ID AND useRecord.LAST_RECORD=1 WHERE 1=1 "; + private static String QUERY_SCRAPPED_GOODS_PREFIX_2 = " AND goods.id IN (SELECT lwgrd.WH_GOODS_ID FROM L_WAREHOUSE_FLOW flow LEFT JOIN L_WH_GOODS_RECORD lwgr ON lwgr.WAREHOUSE_FLOW_ID=flow.id LEFT JOIN L_WH_GOODS_RECORD_DETAILS lwgrd ON lwgrd.WH_GOODS_RECORD_ID=lwgr.id WHERE flow.THIS_TYPE=4 AND flow.BUSINESS_FORM_ID=:transBusinessId)"; + private static String QUERY_SCRAPPED_GOODS_END = " ORDER BY goods.PRICE DESC,goods.PROCURE_DATE ASC,goods.id"; + + public List<Map<String, Object>> queryScrappedGoods(Integer warehouseType, + Long warehouseId, + Long transBusinessId, + String nowUserName, + Long baseGoodsModelsId, + Short states, + Integer goodsModelNum) { + if (warehouseType == null) { + warehouseType = 0; + } + StringBuilder sql = new StringBuilder(QUERY_SCRAPPED_GOODS_PREFIX_1); + Map<String, Object> paramts = new HashMap<>(); + if (warehouseType != null) { + sql.append(" AND goods.WAREHOUSE_TYPE=:warehouseType"); + paramts.put("warehouseType", warehouseType); + } + if (warehouseId != null) { + sql.append(" AND goods.WAREHOUSE_ID=:warehouseId"); + paramts.put("warehouseId", warehouseId); + } + if (StringUtils.isNotEmpty(nowUserName)) { + sql.append(" AND useRecord.NOW_USER_NAME=:nowUserName"); + paramts.put("nowUserName", nowUserName); + } + if (baseGoodsModelsId != null) { + sql.append(" AND goods.BASE_GOODS_MODELS_ID=:baseGoodsModelsId"); + paramts.put("baseGoodsModelsId", baseGoodsModelsId); + } + if (states != null) { + sql.append(" AND goods.STATES=:states"); + paramts.put("states", states); + } + if (transBusinessId != null) { + sql.append(QUERY_SCRAPPED_GOODS_PREFIX_2); + paramts.put("transBusinessId", transBusinessId); + } + sql.append(QUERY_SCRAPPED_GOODS_END); + if (goodsModelNum != null) { + sql.append(" limit").append(goodsModelNum); + } + return select(sql.toString(), paramts); + } + + /** + * 鏌ヨ鎶ュ簾鐗╁搧 + * 榛樿浼樺厛鎶ュ簾鏈�楂樹环鐨勭墿鍝� + * + * @param warehouseType + * @param warehouseId + * @param transBusinessId 璋冩嫧鍗曞彿 + * @param nowUserName 浣跨敤浜哄鍚� + * @param baseGoodsModelsId 鐗╁搧鍨嬪彿 + * @param states 鐘舵�侊紙0=鍦ㄩ�旇皟鎷紱1=鍏ュ簱鏈垎鍙戯紱2=宸蹭笅鍙戯紱3=鎶ュ簾 4 闆舵槦鍑哄簱锛� + * @param goodsModelNum 鍙栧嚭鐨勬暟閲� + * @return + */ + public List<Long> queryScrappedGoodsIds(Integer warehouseType, + Long warehouseId, + Long transBusinessId, + String nowUserName, + Long baseGoodsModelsId, + Short states, + Integer goodsModelNum) { + List<Map<String, Object>> outGoods = queryScrappedGoods(warehouseType, warehouseId, transBusinessId, nowUserName, baseGoodsModelsId, states, goodsModelNum); + if (CollectionUtils.isEmpty(outGoods)) { + return null; + } + List<Long> whGoodsIds = outGoods.stream().map(map -> (Long) map.get("id")).collect(Collectors.toList()); + return whGoodsIds; + } + /** * 璁剧疆鐗╁搧鐘舵�佷负璋冩嫧涓� @@ -115,10 +216,31 @@ * @param toWarehouseName * @return */ - private static String MOD_GOODS_TRANSFERING = ""; + private static String MOD_GOODS_TRANSFERING_PREFIX = "update L_WH_GOODS set"; - public int modGoodsTransfering(List<Long> whGoods, Long toWarehouseId, String toWarehouseName) { -//upda - return 0; + public int modGoodsTransfering(List<Long> whGoods, Integer warehouseType, Long toWarehouseId, String toWarehouseName, Short states) { + StringBuilder sql = new StringBuilder(MOD_GOODS_TRANSFERING_PREFIX); + ArrayList<Object> params = new ArrayList<>(); + if (toWarehouseId != null) { + sql.append(", WAREHOUSE_TYPE=?"); + params.add(warehouseType); + } + if (toWarehouseId != null) { + sql.append(", WAREHOUSE_ID=?"); + params.add(toWarehouseId); + } + if (toWarehouseName != null) { + sql.append(", WAREHOUSE_NAME=?"); + params.add(toWarehouseName); + } + if (states != null) { + sql.append(", STATES=?"); + params.add(states); + } + sql.deleteCharAt(22); + sql.append(" where id in(?)"); + params.add(whGoods); + return update(sql.toString(), params.toArray()); } + } -- Gitblit v1.9.1