From 7a852f6db3d9bb3908d55f0a49ff9e92b4062621 Mon Sep 17 00:00:00 2001
From: zengh <123456>
Date: Tue, 22 Feb 2022 21:00:28 +0800
Subject: [PATCH] 问题修复

---
 src/main/java/org/springblade/modules/taskqd/mapper/TaskqdMapper.xml |   29 +++++++++++++++++++++++------
 1 files changed, 23 insertions(+), 6 deletions(-)

diff --git a/src/main/java/org/springblade/modules/taskqd/mapper/TaskqdMapper.xml b/src/main/java/org/springblade/modules/taskqd/mapper/TaskqdMapper.xml
index ab713c5..e1b8270 100644
--- a/src/main/java/org/springblade/modules/taskqd/mapper/TaskqdMapper.xml
+++ b/src/main/java/org/springblade/modules/taskqd/mapper/TaskqdMapper.xml
@@ -38,6 +38,11 @@
         </if>
         where id = #{id}
     </update>
+    <update id="updateRtype">
+        update sys_taskqd
+        SET rtype=#{type}
+        where id = #{rid}
+    </update>
 
 
     <!--日常任务列表-->
@@ -55,20 +60,32 @@
 
     <select id="selectLi" resultMap="taskResultMap">
         SELECT A.*,IFNULL(B.num,0) as nums FROM (
-        select qd.* from sys_taskqd LEFT JOIN sys_jurisdiction j ON j.id = qd.jurisdiction where 1=1
+        select qd.* from sys_taskqd qd LEFT JOIN sys_jurisdiction j ON j.id = qd.jurisdiction where 1=1 AND
         <if test="type==0">
-            and find_in_set(#{serid}, serid)) A LEFT JOIN (SELECT COUNT(*) as num,hdid,serid FROM sys_taskfk WHERE
+            find_in_set(#{serid}, serid)) A LEFT JOIN (SELECT COUNT(*) as num,hdid,serid FROM sys_taskfk WHERE
             serid=#{serid} GROUP BY hdid,serid) B ON A.id=B.hdid
         </if>
         <if test="type==1">
-            and id NOT IN ( SELECT id FROM sys_taskqd WHERE find_in_set(#{serid}, serid ))
-            <if test="jurisdiction!=null and jurisdiction!=''">
+            <if test="jurisdiction!='1372091709474910209'">
+                qd.jnum!=qd.num AND qd.rtype = "2"
+                and (!find_in_set(#{serid}, serid) OR serid IS NULL )
                 and (j.id =#{jurisdiction} or
-                j.parent_id = #{jurisdiction}) AND qd.jnum!=qd.num
+                j.parent_id = #{jurisdiction})
             </if>
             ) A LEFT JOIN (SELECT
             COUNT(*)
-            as num,hdid,serid FROM sys_taskfk WHERE serid=#{serid} GROUP BY hdid,serid) B ON A.id=B.hdid
+            as num,hdid FROM sys_taskfk GROUP BY hdid) B ON A.id=B.hdid
         </if>
     </select>
+
+    <select id="selectNum" resultType="java.lang.Integer">
+        SELECT COUNT(*) as num
+        FROM sys_taskqd qd
+                 LEFT JOIN sys_jurisdiction j ON j.id = qd.jurisdiction
+        WHERE jnum!=num AND qd.rtype = "2" AND
+           (!find_in_set(#{serid}, serid) OR serid IS NULL )
+          and (j.id =#{jurisdiction}
+           or
+            j.parent_id = #{jurisdiction})
+    </select>
 </mapper>

--
Gitblit v1.9.3