From 5f7f52e93266dc8795ad1543b333a64444c22727 Mon Sep 17 00:00:00 2001
From: guoshilong <123456>
Date: Wed, 28 Sep 2022 11:05:47 +0800
Subject: [PATCH] 修正加工表数据统计结果,取消user,detail接口的访问权限
---
src/main/java/org/springblade/modules/sale/mapper/SaleMapper.xml | 4
src/main/java/org/springblade/modules/recovery/mapper/RecoveryMapper.xml | 62 ++++++++++++++------
src/main/java/org/springblade/modules/process/mapper/ProcessMapper.xml | 94 +++++++++++++++++++-----------
src/main/java/org/springblade/modules/system/controller/UserController.java | 2
4 files changed, 104 insertions(+), 58 deletions(-)
diff --git a/src/main/java/org/springblade/modules/process/mapper/ProcessMapper.xml b/src/main/java/org/springblade/modules/process/mapper/ProcessMapper.xml
index 287e5f0..abbab9e 100644
--- a/src/main/java/org/springblade/modules/process/mapper/ProcessMapper.xml
+++ b/src/main/java/org/springblade/modules/process/mapper/ProcessMapper.xml
@@ -23,7 +23,7 @@
<select id="selectProcessPage" resultMap="processResultMap">
- SELECT DISTINCT p.id,
+ SELECT DISTINCT p.id,
p.strain_id,
p.land_id,
p.sale_time,
@@ -42,7 +42,7 @@
LEFT JOIN (SELECT mm.id,mm.machining_type FROM sys_machining mm) a ON a.id = p.parent_id
WHERE p.is_deleted = 0
<if test="process.farmId!=null and process.farmId!=''">
- AND (sl.farm_id = #{process.farmId} or inv.fps_id = #{process.farmId})
+ AND (sl.farm_id = #{process.farmId} or (inv.fps_id = #{process.farmId} AND p.land_id IS NULL))
</if>
<if test="process.strainId !=null and process.strainId !=''">
and p.strain_id = #{process.strainId}
@@ -71,17 +71,20 @@
</update>
<select id="statistics" resultType="java.lang.Double">
- SELECT SUM(p.process_num) AS sum
- FROM sys_process p
- LEFT JOIN sys_land land ON land.id = p.land_id
- LEFT JOIN sys_process_inv inv ON inv.product_id = p.process_id
- WHERE 1=1 AND p.is_deleted = 0
- <if test="year!=null and year!=''">
- and YEAR ( p.sale_time ) = #{year}
- </if>
- <if test="farmId!=null and farmId!=''">
- and (land.farm_id = #{farmId} or inv.fps_id = #{farmId})
- </if>
+ SELECT SUM(a.process_num)as sum FROM
+ (
+ SELECT DISTINCT p.process_num
+ FROM sys_process p
+ LEFT JOIN sys_land land ON land.id = p.land_id
+ LEFT JOIN sys_process_inv inv ON inv.product_id = p.process_id
+ WHERE 1=1 AND p.is_deleted = 0
+ <if test="year!=null and year!=''">
+ and YEAR ( p.sale_time ) = #{year}
+ </if>
+ <if test="farmId!=null and farmId!=''">
+ and (land.farm_id = #{farmId} or (inv.fps_id = #{farmId} AND p.land_id IS NULL))
+ </if>
+ ) a
</select>
<select id="statisticsMonth" resultType="java.util.Map">
SELECT
@@ -165,17 +168,24 @@
x.d <= y.last
AND ADDDATE( y.FIRST, x.d - 1 ) <= CURDATE( )
) AS lefttable
- LEFT JOIN (
- SELECT
- IFNULL( sum( process.process_num ), 0 ) AS m,
- DATE_FORMAT( process.sale_time, '%Y-%c-%d' ) AS gptime
- FROM
- sys_process process
- left join sys_land sl on sl.id = process.land_id
- WHERE DATE_FORMAT( process.sale_time, '%Y-%m' ) = #{year}
- and sl.farm_id = #{farmId}
- GROUP BY
- gptime
+ LEFT JOIN
+ (
+ SELECT
+ IFNULL( sum( middle.process_num ), 0 ) AS m,
+ middle.gptime
+ FROM
+ (
+ SELECT DISTINCT
+ process.process_num,
+ DATE_FORMAT( process.sale_time, '%Y-%c-%d' ) AS gptime
+ FROM
+ sys_process process
+ left join sys_land sl on sl.id = process.land_id
+ LEFT JOIN sys_process_inv inv ON inv.product_id = process.process_id
+ WHERE
+ DATE_FORMAT( process.sale_time, '%Y-%m' ) = #{year}
+ and (sl.farm_id = #{farmId} OR ( inv.fps_id = #{farmId} AND process.land_id IS NULL ))
+ )middle GROUP BY middle.gptime
) AS righttable ON DATE_FORMAT( lefttable.date, '%Y-%c-%d' ) = righttable.gptime
ORDER BY time
@@ -199,11 +209,18 @@
) m
left join
(
- select month(p.sale_time) a,sum(p.process_num) b from sys_process p
- left join sys_land sl on sl.id = p.land_id
- where year(p.sale_time) = #{year}
- and sl.farm_id = #{farmId}
- GROUP BY month(p.sale_time)
+ SELECT middle.a,SUM(middle.process_num) b FROM
+ (
+ select DISTINCT
+ month(p.sale_time) a,
+ p.process_num
+ from sys_process p
+ left join sys_land sl on sl.id = p.land_id
+ LEFT JOIN sys_process_inv inv ON inv.product_id = p.process_id
+ where
+ year(p.sale_time) = #{year}
+ and (sl.farm_id = #{farmId} OR ( inv.fps_id = #{farmId} AND p.land_id IS NULL ))
+ ) middle GROUP BY middle.a
) n
on m.id = n.a
order by id
@@ -227,12 +244,19 @@
) as a
LEFT JOIN
(
- SELECT HOUR(process.sale_time) AS order_hour, SUM(process.process_num) AS num from sys_process process
- left join sys_land sl on sl.id = process.land_id
- WHERE process.sale_time >= str_to_date(concat(#{year},' 00:00:00'),'%Y-%m-%d %T')
- AND process.sale_time <= str_to_date(concat(#{year},' 23:59:59'),'%Y-%m-%d %T')
- and sl.farm_id = #{farmId}
- GROUP BY order_hour
+ SELECT middle.order_hour,SUM(middle.process_num) num FROM
+ (
+ SELECT DISTINCT
+ HOUR(process.sale_time) AS order_hour,
+ process.process_num
+ from sys_process process
+ left join sys_land sl on sl.id = process.land_id
+ LEFT JOIN sys_process_inv inv ON inv.product_id = process.process_id
+ WHERE
+ process.sale_time >= str_to_date(concat(#{year},' 00:00:00'),'%Y-%m-%d %T')
+ AND process.sale_time <= str_to_date(concat(#{year},' 23:59:59'),'%Y-%m-%d %T')
+ and (sl.farm_id = #{farmId} OR ( inv.fps_id = #{farmId} AND process.land_id IS NULL ))
+ ) middle GROUP BY middle.order_hour
) b ON a.order_hour=b.order_hour
ORDER BY a.order_hour
</select>
diff --git a/src/main/java/org/springblade/modules/recovery/mapper/RecoveryMapper.xml b/src/main/java/org/springblade/modules/recovery/mapper/RecoveryMapper.xml
index 81bcf81..af07b4e 100644
--- a/src/main/java/org/springblade/modules/recovery/mapper/RecoveryMapper.xml
+++ b/src/main/java/org/springblade/modules/recovery/mapper/RecoveryMapper.xml
@@ -66,7 +66,11 @@
where sr.id = #{recoveryId}
</select>
<select id="recoveryStatistics" resultType="org.springblade.modules.recovery.vo.RecoveryVO">
- SELECT sr.strain_id,SUM(sr.weight) AS weight,sr.dept_id,strain.strain_name,strain.url
+ SELECT
+ sr.strain_id,
+ SUM(sr.weight) AS weight,
+ strain.strain_name,
+ strain.url
FROM sys_recovery sr
LEFT JOIN sys_strain strain ON sr.strain_id = strain.id
WHERE 1=1
@@ -83,24 +87,35 @@
UNION
- SELECT p.process_id,SUM(p.process_num),inv.fps_id,m.machining_type,m.machining_tp
- FROM sys_process p
- LEFT JOIN sys_machining m ON p.process_id = m.id
- LEFT JOIN sys_process_inv inv ON inv.product_id = p.process_id
- WHERE 1=1 AND p.is_deleted = 0
- <if test="recovery.deptId !=null and recovery.deptId !=''">
- AND inv.fps_id = #{recovery.deptId}
- </if>
- <if test="recovery.startTime != null and recovery.startTime !=''">
- AND DATE_FORMAT(p.sale_time,'%Y-%m-%d') >= #{recovery.startTime}
- </if>
- <if test="recovery.endTime != null and recovery.endTime !=''">
- and DATE_FORMAT(p.sale_time,'%Y-%m-%d') <= #{recovery.endTime}
- </if>
- GROUP BY p.process_id
+ SELECT a.process_id,SUM(a.process_num),a.machining_type,a.machining_tp FROM
+ (
+ SELECT DISTINCT
+ p.process_id,
+ p.process_num,
+ m.machining_type,
+ m.machining_tp
+ FROM sys_process p
+ LEFT JOIN sys_machining m ON p.process_id = m.id
+ LEFT JOIN sys_land sl ON sl.id = p.land_id
+ LEFT JOIN sys_process_inv inv ON inv.product_id = p.process_id
+ WHERE 1=1 AND p.is_deleted = 0
+ <if test="recovery.deptId !=null and recovery.deptId !=''">
+ AND( sl.farm_id = #{recovery.deptId} OR (inv.fps_id = #{recovery.deptId} AND p.land_id IS NULL))
+ </if>
+ <if test="recovery.startTime != null and recovery.startTime !=''">
+ AND DATE_FORMAT(p.sale_time,'%Y-%m-%d') >= #{recovery.startTime}
+ </if>
+ <if test="recovery.endTime != null and recovery.endTime !=''">
+ and DATE_FORMAT(p.sale_time,'%Y-%m-%d') <= #{recovery.endTime}
+ </if>
+ ) a GROUP BY a.process_id
</select>
<select id="recoveryStatisticsx" resultType="org.springblade.modules.recovery.vo.RecoveryVO">
- SELECT sr.strain_id,SUM(sr.weight) AS weight,sr.dept_id,strain.strain_name,strain.url
+ SELECT
+ sr.strain_id,
+ SUM(sr.weight) AS weight,
+ strain.strain_name,
+ strain.url
FROM sys_recovery sr
LEFT JOIN sys_strain strain ON sr.strain_id = strain.id
WHERE 1=1
@@ -117,13 +132,20 @@
UNION
- SELECT p.process_id,SUM(p.process_num),inv.fps_id,m.machining_type,m.machining_tp
+ SELECT a.process_id,SUM(a.process_num),a.machining_type,a.machining_tp FROM
+ (
+ SELECT DISTINCT
+ p.process_id,
+ p.process_num,
+ m.machining_type,
+ m.machining_tp
FROM sys_process p
LEFT JOIN sys_machining m ON p.process_id = m.id
+ LEFT JOIN sys_land sl ON sl.id = p.land_id
LEFT JOIN sys_process_inv inv ON inv.product_id = p.process_id
WHERE 1=1 AND p.is_deleted = 0
<if test="recovery.deptId !=null and recovery.deptId !=''">
- AND inv.fps_id = #{recovery.deptId}
+ AND( sl.farm_id = #{recovery.deptId} OR (inv.fps_id = #{recovery.deptId} AND p.land_id IS NULL))
</if>
<if test="recovery.startTime != null and recovery.startTime !=''">
AND DATE_FORMAT(p.sale_time,'%Y-%m-%d') >= #{recovery.startTime}
@@ -131,6 +153,6 @@
<if test="recovery.endTime != null and recovery.endTime !=''">
and DATE_FORMAT(p.sale_time,'%Y-%m-%d') <= #{recovery.endTime}
</if>
- GROUP BY p.process_id
+ ) a GROUP BY a.process_id
</select>
</mapper>
diff --git a/src/main/java/org/springblade/modules/sale/mapper/SaleMapper.xml b/src/main/java/org/springblade/modules/sale/mapper/SaleMapper.xml
index e30f44e..9a28c0f 100644
--- a/src/main/java/org/springblade/modules/sale/mapper/SaleMapper.xml
+++ b/src/main/java/org/springblade/modules/sale/mapper/SaleMapper.xml
@@ -173,6 +173,7 @@
sys_sale sale
LEFT JOIN sys_district dis ON sale.sale_destination = dis.CODE
LEFT JOIN sys_land sl ON sl.id = sale.land_id
+ LEFT JOIN sys_process_inv inv ON inv.id = sale.prod_id
WHERE 1 = 1 AND sale.is_deleted = 0
<if test="startTime != null and startTime != ''">
and sale_time >= #{startTime}
@@ -183,9 +184,8 @@
<if test="startTime == null and endTime == null ">
and YEAR ( sale_time ) = YEAR ( NOW( ) )
</if>
-
<if test="farmId != null and farmId != ''">
- and sl.farm_id = #{farmId}
+ and (sl.farm_id = #{farmId} or inv.fps_id = #{farmId})
</if>
GROUP BY
dis.NAME,
diff --git a/src/main/java/org/springblade/modules/system/controller/UserController.java b/src/main/java/org/springblade/modules/system/controller/UserController.java
index 88d8fd8..901fd37 100644
--- a/src/main/java/org/springblade/modules/system/controller/UserController.java
+++ b/src/main/java/org/springblade/modules/system/controller/UserController.java
@@ -83,7 +83,7 @@
@ApiOperationSupport(order = 1)
@ApiOperation(value = "查看详情", notes = "传入id")
@GetMapping("/detail")
- @PreAuth(RoleConstant.HAS_ROLE_ADMIN)
+// @PreAuth(RoleConstant.HAS_ROLE_ADMIN)
public R<UserVO> detail(User user) {
User detail = userService.getOne(Condition.getQueryWrapper(user));
return R.data(UserWrapper.build().entityVO(detail));
--
Gitblit v1.9.3