From f14c50cb0036d3ddd655ce4e34732ba396a836c4 Mon Sep 17 00:00:00 2001
From: java110 <928255095@qq.com>
Date: 星期二, 30 五月 2023 12:42:03 +0800
Subject: [PATCH] optimize 统计

---
 java110-db/src/main/resources/mapper/store/UserStorehouseServiceDaoImplMapper.xml |  129 +++++++++++++++++++++++++++++++++++-------
 1 files changed, 107 insertions(+), 22 deletions(-)

diff --git a/java110-db/src/main/resources/mapper/store/UserStorehouseServiceDaoImplMapper.xml b/java110-db/src/main/resources/mapper/store/UserStorehouseServiceDaoImplMapper.xml
index 25718c1..0b2a9af 100644
--- a/java110-db/src/main/resources/mapper/store/UserStorehouseServiceDaoImplMapper.xml
+++ b/java110-db/src/main/resources/mapper/store/UserStorehouseServiceDaoImplMapper.xml
@@ -7,24 +7,25 @@
     <!-- 淇濆瓨涓汉鐗╁搧淇℃伅 add by wuxw 2018-07-03 -->
     <insert id="saveBusinessUserStorehouseInfo" parameterType="Map">
         insert into business_user_storehouse(
-        res_name,operate,b_id,store_id,stock,res_id,user_id,us_id
+        res_name,operate,b_id,store_id,stock,res_id,res_code,user_id,us_id,mini_stock,times_id
         ) values (
-        #{resName},#{operate},#{bId},#{storeId},#{stock},#{resId},#{userId},#{usId}
+        #{resName},#{operate},#{bId},#{storeId},#{stock},#{resId},#{resCode},#{userId},#{usId},#{miniStock},#{timesId}
         )
     </insert>
 
     <insert id="saveUserStorehouses" parameterType="Map">
         insert into user_storehouse(
-        res_name,b_id,store_id,stock,res_id,user_id,us_id
+        res_name,b_id,store_id,stock,res_id,res_code,user_id,us_id,mini_stock,times_id
         ) values (
-        #{resName},'-1',#{storeId},#{stock},#{resId},#{userId},#{usId}
+        #{resName},'-1',#{storeId},#{stock},#{resId},#{resCode},#{userId},#{usId},#{miniStock},#{timesId}
         )
     </insert>
 
     <!-- 鏌ヨ涓汉鐗╁搧淇℃伅锛圔usiness锛� add by wuxw 2018-07-03 -->
     <select id="getBusinessUserStorehouseInfo" parameterType="Map" resultType="Map">
         select t.res_name,t.res_name resName,t.operate,t.b_id,t.b_id bId,t.store_id,t.store_id
-        storeId,t.stock,t.res_id,t.res_id resId,t.user_id,t.user_id userId,t.us_id,t.us_id usId
+        storeId,t.stock,t.res_id,t.res_id resId,t.res_code,t.res_code resCode,t.user_id,t.user_id userId,t.us_id,t.us_id usId,
+        t.mini_stock,t.mini_stock miniStock,t.times_id,t.times_id timesId
         from business_user_storehouse t
         where 1 =1
         <if test="resName !=null and resName != ''">
@@ -45,19 +46,28 @@
         <if test="resId !=null and resId != ''">
             and t.res_id= #{resId}
         </if>
+        <if test="resCode !=null and resCode != ''">
+            and t.res_code= #{resCode}
+        </if>
         <if test="userId !=null and userId != ''">
             and t.user_id= #{userId}
         </if>
         <if test="usId !=null and usId != ''">
             and t.us_id= #{usId}
         </if>
+        <if test="miniStock !=null and miniStock != ''">
+            and t.mini_stock= #{miniStock}
+        </if>
+        <if test="timesId !=null and timesId != ''">
+            and t.times_id= #{timesId}
+        </if>
     </select>
 
     <!-- 淇濆瓨涓汉鐗╁搧淇℃伅鑷� instance琛ㄤ腑 add by wuxw 2018-07-03 -->
     <insert id="saveUserStorehouseInfoInstance" parameterType="Map">
         insert into user_storehouse(
-        res_name,status_cd,b_id,store_id,stock,res_id,user_id,us_id
-        ) select t.res_name,'0',t.b_id,t.store_id,t.stock,t.res_id,t.user_id,t.us_id from business_user_storehouse t
+        res_name,status_cd,b_id,store_id,stock,res_id,res_code,user_id,us_id,mini_stock
+        ) select t.res_name,'0',t.b_id,t.store_id,t.stock,t.res_id,t.res_code,t.user_id,t.us_id,t.mini_stock from business_user_storehouse t
         where 1=1
         <if test="resName !=null and resName != ''">
             and t.res_name= #{resName}
@@ -75,11 +85,17 @@
         <if test="resId !=null and resId != ''">
             and t.res_id= #{resId}
         </if>
+        <if test="resCode !=null and resCode != ''">
+            and t.res_code= #{resCode}
+        </if>
         <if test="userId !=null and userId != ''">
             and t.user_id= #{userId}
         </if>
         <if test="usId !=null and usId != ''">
             and t.us_id= #{usId}
+        </if>
+        <if test="miniStock !=null and miniStock != ''">
+            and t.mini_stock= #{miniStock}
         </if>
     </insert>
 
@@ -87,12 +103,27 @@
     <select id="getUserStorehouseInfo" parameterType="Map" resultType="Map">
         select t.res_name,t.res_name resName,t.status_cd,t.status_cd statusCd,t.b_id,t.b_id bId,t.store_id,t.store_id
         storeId,t.stock,t.res_id,t.res_id resId,t.user_id,t.user_id userId,t.us_id,t.us_id usId,rs.res_code resCode,
-        rs.goods_type goodsType,rst.name goodsTypeName from user_storehouse t
-        left join resource_store rs on t.res_id = rs.res_id and rs.status_cd = '0'
-        left join resource_store_type rst on rs.goods_type = rst.goods_type and rst.status_cd = '0'
+        rs.out_low_price outLowPrice,rs.out_high_price outHighPrice,rst.name rstName,rst1.name parentRstName,rss.spec_name specName,t.mini_stock miniStock,
+        rs.unit_code unitCode,rs.mini_unit_code miniUnitCode,rs.mini_unit_stock miniUnitStock,t.times_id,t.times_id timesId,
+        td.name unitCodeName,td1.name miniUnitCodeName,u.name userName,rs.is_fixed isFixed,td2.name isFixedName
+        from user_storehouse t
+        left join resource_store rs on t.res_code = rs.res_code and rs.status_cd = '0' and t.res_id = rs.res_id
+        left join resource_store_type rst on rs.rst_id = rst.rst_id
+        left join resource_store_type rst1 on rs.parent_rst_id = rst1.rst_id
+        left join resource_store_specification rss on rs.rss_id = rss.rss_id
+        left join t_dict td on rs.unit_code = td.status_cd and td.table_name = 'resource_store' and td.table_columns = 'unit_code'
+        left join t_dict td1 on rs.mini_unit_code = td1.status_cd and td1.table_name = 'resource_store' and td1.table_columns = 'unit_code'
+        left join t_dict td2 on rs.is_fixed = td2.status_cd and td2.table_name = 'resource_store' and td2.table_columns = 'is_fixed'
+        left join u_user u on t.user_id = u.user_id
         where 1 = 1
+        <if test='lagerStockZero !=null and lagerStockZero == "1"'>
+            and t.stock &gt; 0
+        </if>
         <if test="resName !=null and resName != ''">
-            and t.res_name= #{resName}
+            and t.res_name like '%${resName}%'
+        </if>
+        <if test="resName !=null and resName != ''">
+            and t.res_name like '%${resName}%'
         </if>
         <if test="statusCd !=null and statusCd != ''">
             and t.status_cd= #{statusCd}
@@ -109,15 +140,35 @@
         <if test="resId !=null and resId != ''">
             and t.res_id= #{resId}
         </if>
+        <if test="resCode !=null and resCode != ''">
+            and rs.res_code= #{resCode}
+        </if>
         <if test="userId !=null and userId != ''">
             and t.user_id= #{userId}
         </if>
-        <if test="goodsType !=null and goodsType != ''">
-            and rs.goods_type= #{goodsType}
+        <if test="rstId !=null and rstId != ''">
+            and rs.rst_id= #{rstId}
+        </if>
+        <if test="parentRstId !=null and parentRstId != ''">
+            and rs.parent_rst_id= #{parentRstId}
+        </if>
+        <if test="rssId !=null and rssId != ''">
+            and rs.rss_id= #{rssId}
+        </if>
+        <if test="isFixed !=null and isFixed != ''">
+            and rs.is_fixed= #{isFixed}
         </if>
         <if test="usId !=null and usId != ''">
             and t.us_id= #{usId}
         </if>
+        <if test="userId !=null and userId != ''">
+            and t.user_id= #{userId}
+        </if>
+        <if test="userName !=null and userName != ''">
+            and u.name= #{userName}
+        </if>
+<!--        杩欓噷鍏堟敞閲� 鍥犱负 mysql 8.0  鏈夐棶棰� 鍚庨潰閬囧埌闂 鍒嗘瀽 涓哄暐閲嶅 浼樺寲 sql-->
+<!--        GROUP BY t.us_id-->
         order by t.create_time desc
         <if test="page != -1 and page != null ">
             limit #{page}, #{row}
@@ -136,14 +187,18 @@
         <if test="storeId !=null and storeId != ''">
             , t.store_id= #{storeId}
         </if>
-        <if test="stock !=null and stock != ''">
-            , t.stock= #{stock}
-        </if>
+        , t.stock= #{stock}
         <if test="resId !=null and resId != ''">
             , t.res_id= #{resId}
         </if>
+        <if test="resCode !=null and resCode != ''">
+            , t.res_code= #{resCode}
+        </if>
         <if test="userId !=null and userId != ''">
             , t.user_id= #{userId}
+        </if>
+        <if test="miniStock !=null and miniStock != ''">
+            , t.mini_stock= #{miniStock}
         </if>
         where 1=1
         <if test="bId !=null and bId != ''">
@@ -156,12 +211,17 @@
 
     <!-- 鏌ヨ涓汉鐗╁搧鏁伴噺 add by wuxw 2018-07-03 -->
     <select id="queryUserStorehousesCount" parameterType="Map" resultType="Map">
-        select count(1) count from user_storehouse t
-        left join resource_store rs on t.res_id = rs.res_id and rs.status_cd = '0'
-        left join resource_store_type rst on rs.goods_type = rst.goods_type and rst.status_cd = '0'
+        SELECT count(*) count FROM (select count(1) count from user_storehouse t
+        left join resource_store rs on t.res_code = rs.res_code and rs.status_cd = '0'
+        left join resource_store_type rst on rs.rst_id = rst.rst_id and rst.status_cd = '0'
+        left join resource_store_specification rss on rs.rss_id = rss.rss_id
+        left join u_user u on t.user_id = u.user_id
         where 1 = 1
+        <if test='lagerStockZero !=null and lagerStockZero == "1"'>
+            and t.stock &gt; 0
+        </if>
         <if test="resName !=null and resName != ''">
-            and t.res_name= #{resName}
+            and t.res_name like '%${resName}%'
         </if>
         <if test="statusCd !=null and statusCd != ''">
             and t.status_cd= #{statusCd}
@@ -178,14 +238,39 @@
         <if test="resId !=null and resId != ''">
             and t.res_id= #{resId}
         </if>
+        <if test="resCode !=null and resCode != ''">
+            and t.res_code= #{resCode}
+        </if>
+        <if test="resCode !=null and resCode != ''">
+            and rs.res_code= #{resCode}
+        </if>
         <if test="userId !=null and userId != ''">
             and t.user_id= #{userId}
         </if>
-        <if test="goodsType !=null and goodsType != ''">
-            and rs.goods_type= #{goodsType}
+        <if test="rstId !=null and rstId != ''">
+            and rs.rst_id= #{rstId}
+        </if>
+        <if test="isFixed !=null and isFixed != ''">
+            and rs.is_fixed= #{isFixed}
+        </if>
+        <if test="parentRstId !=null and parentRstId != ''">
+            and rs.parent_rst_id= #{parentRstId}
+        </if>
+        <if test="rssId !=null and rssId != ''">
+            and rs.rss_id= #{rssId}
         </if>
         <if test="usId !=null and usId != ''">
             and t.us_id= #{usId}
         </if>
+        <if test="userId !=null and userId != ''">
+            and t.user_id= #{userId}
+        </if>
+        <if test="userName !=null and userName != ''">
+            and u.name= #{userName}
+        </if>
+        <if test="miniStock !=null and miniStock != ''">
+            and t.mini_stock= #{miniStock}
+        </if>
+        GROUP BY t.us_id)a
     </select>
 </mapper>

--
Gitblit v1.8.0