From b0841619e23dd01b8fba9561ad9036c7c3d6aa08 Mon Sep 17 00:00:00 2001
From: futian.liu <liufutianyoo@163.com>
Date: 星期二, 14 十一月 2023 14:05:20 +0800
Subject: [PATCH] 出库单管理

---
 consum-base/src/main/java/com/consum/base/service/LWhGoodsService.java |  116 +++++++++++++++++++++++++++++----------------------------
 1 files changed, 59 insertions(+), 57 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..e53939c 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,19 +1,18 @@
 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.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.stream.Collectors;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.stereotype.Service;
 
 /**
  * @ClassName LWhGoodsService
- * @Author cy
  * @Date 2023/10/24
  * @Description
  * @Version 1.0
@@ -70,9 +69,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 +84,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 +95,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);
     }
 
 
@@ -120,8 +120,7 @@
 
 
     /**
-     * 鏌ヨ鎶ュ簾鐗╁搧
-     * 榛樿浼樺厛鎶ュ簾鏈�楂樹环鐨勭墿鍝�
+     * 鏌ヨ鎶ュ簾鐗╁搧 榛樿浼樺厛鎶ュ簾鏈�楂樹环鐨勭墿鍝�
      *
      * @param warehouseType
      * @param warehouseId
@@ -132,20 +131,22 @@
      * @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,
-                                                        Long warehouseId,
-                                                        Long transBusinessId,
-                                                        String nowUserName,
-                                                        Long baseGoodsModelsId,
-                                                        Short states,
-                                                        Integer goodsModelNum) {
+        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);
+        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 +155,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 +168,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
@@ -188,13 +192,14 @@
      * @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);
+        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;
         }
@@ -211,32 +216,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