From 6d1fcbe98f3dc8f75ac3f7784152b5a04942a89f Mon Sep 17 00:00:00 2001
From: cy <1664593601@qq.com>
Date: 星期二, 31 十月 2023 19:26:29 +0800
Subject: [PATCH] feat: 报废单报废

---
 consum-base/src/main/java/com/consum/base/service/LWhGoodsService.java |  113 +++++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 107 insertions(+), 6 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 25bf8ac..495a2cf 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,6 +2,7 @@
 
 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;
@@ -22,6 +23,7 @@
 
 
     /**
+     * @param warehouseType       浠撳簱绫诲瀷0鏈烘瀯1閮ㄩ棬
      * @param warehouseId       鎵�灞炰粨搴撲粨搴撶紪鍙�
      * @param baseGoodsModelsId 瑙勬牸鍨嬪彿缂栧彿
      * @param states            锛�0=鍦ㄩ�旇皟鎷紱1=鍏ュ簱鏈垎鍙戯紱2=宸蹭笅鍙戯紱3=鎶ュ簾锛�
@@ -30,10 +32,14 @@
      */
     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);
@@ -66,9 +72,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);
@@ -78,7 +88,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) {
@@ -99,14 +109,99 @@
      * @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 = "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_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);
+        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 (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");
+            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);
+        }
+        return select(sql.append(QUERY_SCRAPPED_GOODS_END).append(" limit").append(goodsModelNum).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;
+    }
+
 
     /**
      * 璁剧疆鐗╁搧鐘舵�佷负璋冩嫧涓�
@@ -118,9 +213,13 @@
      */
     private static String MOD_GOODS_TRANSFERING_PREFIX = "update L_WH_GOODS set";
 
-    public int modGoodsTransfering(List<Long> whGoods, Long toWarehouseId, String toWarehouseName, Short states) {
+    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);
@@ -138,4 +237,6 @@
         params.add(whGoods);
         return update(sql.toString(), params.toArray());
     }
+
+
 }

--
Gitblit v1.9.1