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 > 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 > 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