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/LWhGoodsService.java | 105 +++++++++++++++++++++++++++++++--------------------- 1 files changed, 63 insertions(+), 42 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 495a2cf..007e80b 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 @@ -1,10 +1,12 @@ package com.consum.base.service; +import com.consum.model.po.LWhGoods; 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.math.BigDecimal; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -13,7 +15,6 @@ /** * @ClassName LWhGoodsService - * @Author cy * @Date 2023/10/24 * @Description * @Version 1.0 @@ -70,9 +71,10 @@ * @param goodsModelNum 鍙栧嚭鐨勬暟閲� * @return */ - private static String QUERY_OUT_GOODS_ID = "SELECT*FROM L_WH_GOODS WHERE 1=1"; + private static String QUERY_OUT_GOODS_ID = "SELECT * FROM L_WH_GOODS WHERE 1=1"; - public List<Map<String, Object>> queryOutGoods(Integer warehouseType, 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) { @@ -84,7 +86,7 @@ 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) { @@ -95,7 +97,7 @@ sql.append(" and BUY_TYPE=:buyType"); paramts.put("buyType", buyType); } - return select(sql.append(" limit").append(goodsModelNum).toString(), paramts); + return select(sql.append(" limit ").append(goodsModelNum).toString(), paramts); } @@ -118,10 +120,26 @@ return whGoodsIds; } + private static String QUERY_GOODS_PRICE_BY_ID = "SELECT sum(PRICE)totalPrice from L_WH_GOODS goods where 1=1"; + + public long queryGoodsPriceById(List<Long> goodsIds) { + StringBuilder sql = new StringBuilder(QUERY_GOODS_PRICE_BY_ID); + Map<String, Object> paramts = new HashMap<>(); + if (!CollectionUtils.isEmpty(goodsIds)) { + sql.append(" and id in(:goodsIds)"); + paramts.put("goodsIds", goodsIds); + } + List<Map<String, Object>> map = this.select(sql.toString(), paramts); + if (CollectionUtils.isEmpty(map)) { + return 0; + } + BigDecimal totalPrice = (BigDecimal) map.get(0).get("totalPrice"); + return totalPrice.longValue(); + } + /** - * 鏌ヨ鎶ュ簾鐗╁搧 - * 榛樿浼樺厛鎶ュ簾鏈�楂樹环鐨勭墿鍝� + * 鏌ヨ鎶ュ簾鐗╁搧 榛樿浼樺厛鎶ュ簾鏈�楂樹环鐨勭墿鍝� * * @param warehouseType * @param warehouseId @@ -132,7 +150,9 @@ * @param goodsModelNum 鍙栧嚭鐨勬暟閲� * @return */ - private static String QUERY_SCRAPPED_GOODS_PREFIX = "SELECT goods.id FROM L_WH_GOODS goods LEFT JOIN (SELECT t2.*FROM (SELECT max(DEAL_TIME) DEAL_TIME,WH_GOODS_ID FROM L_GOODS_USER_RECORD GROUP BY WH_GOODS_ID) t1 LEFT JOIN L_GOODS_USER_RECORD t2 ON t1.DEAL_TIME=t2.DEAL_TIME AND t1.WH_GOODS_ID=t2.WH_GOODS_ID) useRecord ON goods.id=useRecord.WH_GOODS_ID WHERE 1=1"; + + 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, @@ -145,7 +165,7 @@ if (warehouseType == null) { warehouseType = 0; } - StringBuilder sql = new StringBuilder(QUERY_SCRAPPED_GOODS_PREFIX); + 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"); @@ -154,10 +174,6 @@ if (warehouseId != null) { sql.append(" AND goods.WAREHOUSE_ID=:warehouseId"); paramts.put("warehouseId", warehouseId); - } - if (transBusinessId != null) { - sql.append(" and useRecord.TRANS_BUSINESS_ID=:transBusinessId"); - paramts.put("transBusinessId", transBusinessId); } if (StringUtils.isNotEmpty(nowUserName)) { sql.append(" AND useRecord.NOW_USER_NAME=:nowUserName"); @@ -171,12 +187,19 @@ sql.append(" AND goods.STATES=:states"); paramts.put("states", states); } - return select(sql.append(QUERY_SCRAPPED_GOODS_END).append(" limit").append(goodsModelNum).toString(), paramts); + 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 @@ -194,7 +217,8 @@ Long baseGoodsModelsId, Short states, Integer goodsModelNum) { - List<Map<String, Object>> outGoods = queryScrappedGoods(warehouseType, warehouseId, transBusinessId, nowUserName, baseGoodsModelsId, states, goodsModelNum); + List<Map<String, Object>> outGoods = queryScrappedGoods(warehouseType, warehouseId, transBusinessId, nowUserName, baseGoodsModelsId, states, + goodsModelNum); if (CollectionUtils.isEmpty(outGoods)) { return null; } @@ -211,32 +235,29 @@ * @param toWarehouseName * @return */ - private static String MOD_GOODS_TRANSFERING_PREFIX = "update L_WH_GOODS set"; + private static String MOD_GOODS_TRANSFERING_PREFIX = "update L_WH_GOODS set "; - 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()); + public int modGoodsTransfering(List<Long> whGoods, Integer warehouseType, Long toWarehouseId, String toWarehouseName, Integer states) { + + List<LWhGoods> params = new ArrayList<>(); + whGoods.stream().forEach(id -> { + LWhGoods lWhGoods = new LWhGoods(); + lWhGoods.setId(id); + if (toWarehouseId != null) { + lWhGoods.setWarehouseType(warehouseType); + } + if (toWarehouseId != null) { + lWhGoods.setWarehouseId(toWarehouseId); + } + if (toWarehouseName != null) { + lWhGoods.setWarehouseName(toWarehouseName); + } + if (states != null) { + lWhGoods.setStates(states); + } + params.add(lWhGoods); + }); + return updateBatch(params); } - } -- Gitblit v1.9.1