From 3836720e3b0fc9ab884d178e0ac27e942b175da2 Mon Sep 17 00:00:00 2001
From: futian.liu <liufutianyoo@163.com>
Date: 星期二, 05 十二月 2023 15:23:01 +0800
Subject: [PATCH] 报废单添加金额字段

---
 consum-base/src/main/java/com/consum/base/service/LWhGoodsService.java |  320 ++++++-----------------------------------------------
 1 files changed, 38 insertions(+), 282 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 ffd249e..81a48ef 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,295 +1,51 @@
 package com.consum.base.service;
 
-import com.consum.base.core.utils.MapperUtil;
-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;
 import java.util.Map;
-import java.util.stream.Collectors;
+
+import com.consum.base.pojo.dto.GoodsModelCountDTO;
+import com.walker.jdbc.service.BaseService;
 
 /**
- * @ClassName LWhGoodsService
- * @Date 2023/10/24
- * @Description
- * @Version 1.0
+ * LWhGoodsService
+ *
+ * @author asus
+ * @version 2023/12/05 13:52
  **/
-@Service
-public class LWhGoodsService extends BaseServiceImpl {
+public interface LWhGoodsService extends BaseService {
+    int queryGoodsModelNum(Integer warehouseType, Long warehouseId, Long baseGoodsModelsId, Integer states,
+        Integer buyType);
 
+    List<Map<String, Object>> queryOutGoods(Integer warehouseType, Long warehouseId, Long baseGoodsModelsId,
+        Integer states, Integer buyType, Integer goodsModelNum);
+
+    List<Long> queryOutGoodsId(Integer warehouseType, Long warehouseId, Long baseGoodsModelsId, Integer states,
+        Integer buyType, Integer goodsModelNum);
+
+    long queryGoodsPriceById(List<Long> goodsIds);
+
+    List<Map<String, Object>> queryScrappedGoods(Integer warehouseType, Long warehouseId, Long transBusinessId,
+        String nowUserName, Long baseGoodsModelsId, Short states, Integer goodsModelNum);
+
+    List<Long> queryScrappedGoodsIds(Integer warehouseType, Long warehouseId, Long transBusinessId, String nowUserName,
+        Long baseGoodsModelsId, Short states, Integer goodsModelNum);
+
+    int modGoodsTransfering(List<Long> whGoods, Integer warehouseType, Long toWarehouseId, String toWarehouseName,
+        Integer states);
+
+    // 鎸夋満鏋勭粺璁$墿鍝佷环鍊笺�佹暟閲�/閲戦绛�
+    List<Map<String, Object>> getGoodsNumPrice(Long agencyId);
+
+    // 鎸夋満鏋勭粺璁$墿鍝佷环鍊笺�佹暟閲�/閲戦绛�
+    List<Map<String, Object>> getGoodsNumByMonth(Long agencyId);
 
     /**
-     * @param warehouseType       浠撳簱绫诲瀷0鏈烘瀯1閮ㄩ棬
-     * @param warehouseId       鎵�灞炰粨搴撲粨搴撶紪鍙�
-     * @param baseGoodsModelsId 瑙勬牸鍨嬪彿缂栧彿
-     * @param states            锛�0=鍦ㄩ�旇皟鎷紱1=鍏ュ簱鏈垎鍙戯紱2=宸蹭笅鍙戯紱3=鎶ュ簾锛�
-     * @param buyType 閲囪喘鏂瑰紡锛�1锛氶泦閲囷紱2=鑷噰锛�
-     * @return 鏌ヨ鏌愪釜鍨嬪彿鍦ㄤ粨搴撲腑鐨勬暟閲�
-     */
-    private static String query_Goods_Model_Num = "SELECT COUNT(1) from L_WH_GOODS where 1=1";
-
-    public int queryGoodsModelNum(Integer warehouseType, Long warehouseId, Long baseGoodsModelsId, Integer states, Integer 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_MODELS_ID=:baseGoodsModelsId");
-            paramts.put("baseGoodsModelsId", baseGoodsModelsId);
-        }
-        if (states != null) {
-            sql.append(" and STATES=:states");
-            paramts.put("states", states);
-        }
-        if (buyType != null) {
-            sql.append(" and BUY_TYPE=:buyType");
-            paramts.put("buyType", buyType);
-        }
-        return queryForInt(sql.toString(), paramts);
-    }
-
-
-    /**
-     * 鍑哄簱鏃跺�欙紝鍏堝叆搴撶殑鍏堝嚭搴擄紝鍚屾椂鍏ュ簱鐨勶紝鎸変环鏍奸珮鐨勫厛鍑哄簱
-     *
-     * @param warehouseId       鎵�灞炰粨搴撲粨搴撶紪鍙�
-     * @param baseGoodsModelsId 瑙勬牸鍨嬪彿缂栧彿
-     * @param states            鐘舵�侊紙0=鍦ㄩ�旇皟鎷紱1=鍏ュ簱鏈垎鍙戯紱2=宸蹭笅鍙戯紱3=鎶ュ簾锛�
-     * @param buyType           閲囪喘鏂瑰紡锛�1锛氶泦閲囷紱2=鑷噰锛�
-     * @param goodsModelNum 鍙栧嚭鐨勬暟閲�
+     * 鏍规嵁鍨嬪彿鏌ヨ鍟嗗搧鎬讳环
+     * 
+     * @param baseGoodsModelsId
+     * @param type <br>
+     *            鐘舵�侊紙0=鍦ㄩ�旇皟鎷紱1=鍏ュ簱鏈垎鍙戯紱2=宸蹭笅鍙戯紱3=鎶ュ簾 4 闆舵槦鍑哄簱
      * @return
      */
-    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, Integer states, Integer 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);
-        }
-        if (baseGoodsModelsId != null) {
-            sql.append(" and BASE_GOODS_MODELS_ID=:baseGoodsModelsId");
-            paramts.put("baseGoodsModelsId", baseGoodsModelsId);
-        }
-        if (states != null) {
-            sql.append(" and STATES=:states");
-            paramts.put("states", states);
-        }
-        if (buyType != null) {
-            sql.append(" and BUY_TYPE=:buyType");
-            paramts.put("buyType", buyType);
-        }
-        return select(sql.append(" limit ").append(goodsModelNum).toString(), paramts);
-    }
-
-
-    /**
-     * 鍑哄簱鏃跺�欙紝鍏堝叆搴撶殑鍏堝嚭搴擄紝鍚屾椂鍏ュ簱鐨勶紝鎸変环鏍奸珮鐨勫厛鍑哄簱
-     *
-     * @param warehouseId       鎵�灞炰粨搴撲粨搴撶紪鍙�
-     * @param baseGoodsModelsId 瑙勬牸鍨嬪彿缂栧彿
-     * @param states            鐘舵�侊紙0=鍦ㄩ�旇皟鎷紱1=鍏ュ簱鏈垎鍙戯紱2=宸蹭笅鍙戯紱3=鎶ュ簾锛�
-     * @param buyType           閲囪喘鏂瑰紡锛�1锛氶泦閲囷紱2=鑷噰锛�
-     * @param goodsModelNum     鍙栧嚭鐨勬暟閲�
-     * @return
-     */
-    public List<Long> queryOutGoodsId(Integer warehouseType, Long warehouseId, Long baseGoodsModelsId, Integer states, Integer 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;
-    }
-
-    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
-     * @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, goods.PRICE 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=1 AND flow.BUSINESS_FORM_ID=:transBusinessId)";
-    private static String QUERY_SCRAPPED_GOODS_PREFIX_2_MODEL_NOT_NULL = " 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=1 AND flow.BUSINESS_FORM_ID=:transBusinessId AND lwgr.BASE_GOODS_MODELS_ID = :lwgrGoodsModelId)";
-    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) {
-            if (baseGoodsModelsId != null) {
-                sql.append(QUERY_SCRAPPED_GOODS_PREFIX_2_MODEL_NOT_NULL);
-                paramts.put("transBusinessId", transBusinessId);
-                paramts.put("lwgrGoodsModelId", baseGoodsModelsId);
-            } else {
-                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;
-    }
-
-
-    /**
-     * 璁剧疆鐗╁搧鐘舵�佷负璋冩嫧涓�
-     *
-     * @param whGoods
-     * @param toWarehouseId
-     * @param toWarehouseName
-     * @return
-     */
-    private static String MOD_GOODS_TRANSFERING_PREFIX = "update L_WH_GOODS set ";
-
-    public int modGoodsTransfering(List<Long> whGoods, Integer warehouseType, Long toWarehouseId, String toWarehouseName, Integer states) {
-        StringBuilder sql = new StringBuilder(MOD_GOODS_TRANSFERING_PREFIX);
-        ArrayList<Object> params = new ArrayList<>();
-        if (warehouseType != 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(").append(StringUtils.join(whGoods, ",")).append(")");
-        return update(sql.toString(), params.toArray());
-    }
-
-    private static String GOODS_NUM_PRICE = "SELECT t.tenantId,count(id) total_Num,count(CASE WHEN STATES=2 THEN 1 END) xia_fa_num,IFNULL(round(sum(PRICE)/1000000,2),0) total_price,IFNULL(ROUND(count(CASE WHEN STATES=2 THEN 1 END)/count(id),4),0)*100 AS zhan_you_percent,count(CASE COST_TYPE WHEN 1 THEN 1 END) a_total_Num,count(CASE COST_TYPE WHEN 2 THEN 1 END) b_total_Num,count(CASE COST_TYPE WHEN 3 THEN 1 END) c_total_Num,IFNULL( round( sum( CASE COST_TYPE WHEN 1 THEN PRICE END  )/ 1000000, 2 ), 0 )  a_total_price,IFNULL( round( sum( CASE COST_TYPE WHEN 2 THEN PRICE END  )/ 1000000, 2 ), 0 ) b_total_price,IFNULL( round( sum( CASE COST_TYPE WHEN 3 THEN PRICE END  )/ 1000000, 2 ), 0 ) c_total_price FROM (SELECT tCangKu.tenantId,tKuCun.id,tKuCun.STATES,tKuCun.COST_TYPE,tKuCun.price FROM (SELECT tenant.id tenantId,tenant.NAME AS org_name,ware.*FROM fin_sys_tenant tenant RIGHT JOIN ( SELECT 0 WAREHOUSE_TYPE,id,AGENCY_ID,WAREHOUSE_NAME FROM BASE_WAREHOUSE UNION ALL SELECT 1 WAREHOUSE_TYPE,id,TENANT_ID AGENCY_ID,`NAME` WAREHOUSE_NAME FROM fin_sys_tenant_department) ware ON tenant.id=ware.AGENCY_ID WHERE 1=1 ";
-    private static String GOODS_NUM_PRICE_END = ") tCangKu LEFT JOIN L_WH_GOODS tKuCun ON tCangKu.WAREHOUSE_TYPE=tKuCun.WAREHOUSE_TYPE AND tCangKu.id=tKuCun.WAREHOUSE_ID AND tKuCun.STATES BETWEEN 1 AND 2 where tKuCun.id is not null) t GROUP BY t.tenantId";
-
-    //鎸夋満鏋勭粺璁$墿鍝佷环鍊笺�佹暟閲�/閲戦绛�
-    public List<Map<String, Object>> getGoodsNumPrice(Long agencyId) {
-        StringBuilder sql = new StringBuilder(GOODS_NUM_PRICE);
-        Map<String, Object> paramts = new HashMap<>();
-        sql.append(" and tenant.id=:agencyId");
-        paramts.put("agencyId", agencyId);
-        return select(sql.append(GOODS_NUM_PRICE_END).toString(), paramts, new MapperUtil());
-    }
-
-
-    private static String GET_GOODS_NUM_BY_MONTH = "SELECT monthT.month_Num,IFNULL(datat.total_Num,0) total_Num,IFNULL(datat.add_total_Num,0) add_total_Num,IFNULL(datat.reduce_total_Num,0) reduce_total_Num FROM (SELECT monthT.month_Num FROM (SELECT ( SELECT 1) month_Num UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9 UNION SELECT 10 UNION SELECT 11 UNION SELECT 12) monthT) monthT LEFT JOIN ( SELECT t.tenantId,count(t.THIS_COUNT) total_Num,count(CASE t.THIS_TYPE WHEN 1 THEN t.THIS_COUNT END) add_total_Num,count(CASE t.THIS_TYPE WHEN 2 THEN t.THIS_COUNT END) reduce_total_Num,SUBSTR(DEAL_TIME,5,2) data_month FROM ( SELECT tCangKu.tenantId,tKuCun.id,tKuCun.THIS_TYPE,tKuCun.THIS_COUNT,tKuCun.DEAL_TIME FROM (SELECT tenant.id tenantId,tenant.NAME AS org_name,ware.*FROM fin_sys_tenant tenant RIGHT JOIN ( SELECT 0 WAREHOUSE_TYPE,id,AGENCY_ID,WAREHOUSE_NAME FROM BASE_WAREHOUSE UNION ALL SELECT 1 WAREHOUSE_TYPE,id,TENANT_ID AGENCY_ID,`NAME` WAREHOUSE_NAME FROM fin_sys_tenant_department) ware ON tenant.id=ware.AGENCY_ID WHERE 1=1 ";
-    private static String GET_GOODS_NUM_BY_MONTH_END = ")tCangKu LEFT JOIN L_WH_GOODS_RECORD tKuCun ON tCangKu.WAREHOUSE_TYPE=tKuCun.WAREHOUSE_TYPE AND tCangKu.id=tKuCun.WAREHOUSE_ID and tKuCun.DEAL_TIME between cast(CONCAT(DATE_FORMAT(NOW(), '%Y'),'1231240000') as UNSIGNED) and  cast(CONCAT(DATE_FORMAT(NOW(), '%Y'),'0101000000') as UNSIGNED)) t GROUP BY t.tenantId,SUBSTR(DEAL_TIME,5,2)) datat ON datat.data_month=monthT.month_Num ORDER BY monthT.month_Num ASC";
-
-    //鎸夋満鏋勭粺璁$墿鍝佷环鍊笺�佹暟閲�/閲戦绛�
-    public List<Map<String, Object>> getGoodsNumByMonth(Long agencyId) {
-        StringBuilder sql = new StringBuilder(GET_GOODS_NUM_BY_MONTH);
-        Map<String, Object> paramts = new HashMap<>();
-        sql.append(" and tenant.id=:agencyId");
-        paramts.put("agencyId", agencyId);
-        return select(sql.append(GET_GOODS_NUM_BY_MONTH_END).toString(), paramts, new MapperUtil());
-    }
+    GoodsModelCountDTO queryGoodsAmount(Long baseGoodsModelsId, Integer type);
 }

--
Gitblit v1.9.1