From 2ca9993b57bdd090c4345ea6767687e2fbb83014 Mon Sep 17 00:00:00 2001
From: zhongrj <646384940@qq.com>
Date: Tue, 27 Jun 2023 11:00:09 +0800
Subject: [PATCH] 新增任务导出接口

---
 src/main/java/org/springblade/modules/taskqd/mapper/TaskqdMapper.xml |  181 ++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 162 insertions(+), 19 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 85052d2..03b10fa 100644
--- a/src/main/java/org/springblade/modules/taskqd/mapper/TaskqdMapper.xml
+++ b/src/main/java/org/springblade/modules/taskqd/mapper/TaskqdMapper.xml
@@ -10,7 +10,6 @@
         <result column="time" property="time"/>
         <result column="province" property="province"/>
         <result column="city" property="city"/>
-        <result column="county" property="county"/>
         <result column="jnum" property="jnum"/>
         <result column="line" property="line"/>
         <result column="rtype" property="rtype"/>
@@ -44,24 +43,73 @@
         where id = #{id}
     </update>
     <update id="updateRtype">
+        UPDATE sys_taskqd
+        <set>
+            <if test='type == "0" '>rtype=#{type},stime = now(),</if>
+            <if test='type == "1" '>rtype=#{type},sendtime = now(),</if>
+        </set>
+        WHERE id = #{rid}
+    </update>
+
+    <update id="updateSerid">
         update sys_taskqd
-        SET rtype=#{type}
+        SET serid=#{serid},team=#{newteam},num=#{newnum}
         where id = #{rid}
     </update>
 
-
     <!--日常任务列表-->
+    <select id="getlist" resultMap="taskResultMap">
+        SELECT
+        *
+        FROM
+        sys_taskqd
+        WHERE
+        serid LIKE concat("%",#{id},"%")
+        <if test="type == 3">
+            and rtype = 1
+        </if>
+        <if test="type == 2">
+            AND ( rtype = "0" OR rtype = "2" )
+        </if>
+    </select>
+
+    <!--任务统计-->
     <select id="selectList" resultMap="taskResultMap">
-        select jnum, num, serid, team
+        select jnum, num, serid, team ,time,endtime
         from sys_taskqd
         where id = #{id}
     </select>
+    <select id="taskCount" resultType="java.util.HashMap">
+        SELECT
+            count( * ) AS count
+        FROM
+            sys_taskqd
+        WHERE
+            serid LIKE  concat("%",#{id},"%")
+            AND rtype = "1" UNION ALL
+        SELECT
+            count( * ) AS count
+        FROM
+            sys_taskqd
+        WHERE
+            serid LIKE concat("%",#{id},"%")
+            AND ( rtype = "0" OR rtype = "2" )
+    </select>
+    <select id="allTask" resultType="java.util.HashMap">
+        SELECT
+        *
+        FROM
+        sys_taskqd
+        WHERE 1 = 1
+        AND ( rtype = "0" OR rtype = "2" )
+
+    </select>
 
     <select id="queryReceiver" resultType="java.util.HashMap">
-        SELECT u.* ,
-	    r.role_name
-        FROM blade_user
-        LEFT JOIN ( SELECT id, role_name FROM blade_role ) r on u.role_id = r.id
+        SELECT u.*,
+               r.role_name
+        FROM blade_user u
+                 LEFT JOIN (SELECT id, role_name FROM blade_role) r on u.role_id = r.id
         WHERE u.id in (${serid})
     </select>
 
@@ -69,15 +117,45 @@
         SELECT A.*,IFNULL(B.num,0) as nums FROM (
         select qd.* from sys_taskqd qd LEFT JOIN sys_jurisdiction j ON j.id = qd.jurisdiction where 1=1 AND
         <if test="type==0">
-            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
+            (qd.rtype = "2" or qd.rtype = "0") AND
+            <if test="serid != '1123598821738675201'">
+                find_in_set(#{serid}, serid) and
+            </if>
+            qd.tasktype=#{tasktype}) A LEFT JOIN (SELECT COUNT(*) as num,hdid,serid
+            FROM
+            sys_taskfk WHERE 1 = 1
+            <if test="serid != '1123598821738675201'">
+                and serid=#{serid}
+            </if>
+            GROUP BY hdid,serid) B ON A.id=B.hdid
+        </if>
+        <if test="type==2">
+            qd.rtype = "1" AND
+            <if test="serid != '1123598821738675201'">
+                find_in_set(#{serid}, serid) and
+            </if>
+            qd.tasktype=#{tasktype}) A LEFT JOIN (SELECT COUNT(*) as num,hdid,serid
+            FROM
+            sys_taskfk WHERE 1 = 1
+            <if test="serid != '1123598821738675201'">
+                and serid=#{serid}
+            </if>
+            GROUP BY hdid,serid) B ON A.id=B.hdid
         </if>
         <if test="type==1">
             <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})
+                <if test="tasktype !=2">
+                    qd.jnum!=qd.num AND
+                </if>
+                qd.rtype = "2"
+                and qd.tasktype=#{tasktype}
+                <if test="serid != '1123598821738675201'">
+                    and (!find_in_set(#{serid}, serid) OR serid IS NULL )
+                </if>
+                and
+                ((j.id =#{jurisdiction} or
+                j.parent_id = #{jurisdiction}) or (j.id =#{workjurisdiction} or
+                j.parent_id = #{workjurisdiction}))
             </if>
             ) A LEFT JOIN (SELECT
             COUNT(*)
@@ -86,17 +164,82 @@
     </select>
 
     <select id="selectNum" resultType="java.util.HashMap">
-        SELECT COUNT(*) as num,tasktype
+        SELECT COUNT(*) as num, tasktype
         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})
-          or (j.id =#{workjurisdiction} or j.parent_id = #{workjurisdiction})
+           (!find_in_set(#{serid}
+            , serid)
+           OR serid IS NULL )
+          and ((j.id =#{jurisdiction}
+           or j.parent_id = #{jurisdiction})
+           or (j.id =#{workjurisdiction}
+           or j.parent_id = #{workjurisdiction}))
         GROUP BY tasktype
     </select>
 
     <select id="querySerid" resultType="java.lang.String">
-        SELECT serid from sys_taskqd where id = #{rid}
+        SELECT serid
+        from sys_taskqd
+        where id = #{rid}
+    </select>
+
+    <select id="countTaskByJur" resultType="org.springblade.modules.taskqd.entity.Taskqd">
+        SELECT *
+        FROM sys_taskqd qd
+        WHERE qd.jurisdiction = #{jurisdiction}
+        <choose>
+            <when test='period=="day" '>
+                AND TO_DAYS(qd.time) = TO_DAYS(#{startTime})
+            </when>
+            <when test='period == "week" '>
+                 AND YEARWEEK(DATE_FORMAT(qd.time,"%Y-%m-%d"),1) = YEARWEEK(#{startTime},1)
+             </when>
+            <when test='period == "month" '>
+                AND DATE_FORMAT(qd.time,"%Y-%m") = DATE_FORMAT(#{startTime},"%Y-%m")
+            </when>
+            <when test='period == "all" '></when>
+        </choose>
+        LIMIT 0,15
+    </select>
+
+    <select id="getRealTime" resultType="java.lang.Integer">
+        SELECT (UNIX_TIMESTAMP(sendtime)-UNIX_TIMESTAMP(stime))
+            subsecond
+        FROM sys_taskqd
+        WHERE id = #{hdid}
+    </select>
+
+    <!--自定义分页查询-->
+    <select id="selectTaskQdPage" resultType="org.springblade.modules.taskqd.vo.TaskqdVO">
+        select * from sys_taskqd where 1=1
+    </select>
+
+    <!--导出任务数据-->
+    <select id="selectTaskList" resultType="org.springblade.modules.taskqd.excel.TaskExcel">
+        select
+        st.id,st.rname,st.time,st.endtime,st.content,st.gathername,st.fname,st.integral,
+		sr.role_name as trainName,
+        case when rtype='0' then '正在进行'
+         when rtype='1' then '已结束'
+         when rtype='2' then '任务未开始'
+        end as rtypeName,
+        sj.dept_name as jurisdictionName
+        from sys_taskqd st
+        left join sys_jurisdiction sj on sj.id = st.jurisdiction
+        left join blade_role sr on sr.id = st.train
+        where 1=1
+        <if test="task.tasktype!=null and task.tasktype!=''">
+            and st.tasktype = #{task.tasktype}
+        </if>
+        <if test="task.rtype!=null and task.rtype!=''">
+            and st.rtype = #{task.rtype}
+        </if>
+        <if test="task.rname!=null and task.rname!=''">
+            and st.rname like concat('%',#{task.rname},'%')
+        </if>
+        <if test="task.jurisdiction!=null and task.jurisdiction!=''">
+            and st.jurisdiction = #{task.jurisdiction}
+        </if>
     </select>
 </mapper>

--
Gitblit v1.9.3