From 1df02b011c951ed5f57e40663e014fd913cbbe20 Mon Sep 17 00:00:00 2001
From: guoshilong <123456>
Date: Tue, 23 May 2023 19:44:53 +0800
Subject: [PATCH] 巡检报表接口

---
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/service/IPatrolTaskService.java         |    4 
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/mapper/PatrolTaskMapper.java            |   24 +++++-
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/vo/PatrolTaskReport.java                |   17 ++++
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/mapper/PatrolTaskMapper.xml             |  119 ++++++++++++++++++++++++-----
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/service/impl/PatrolTaskServiceImpl.java |   45 ++++++++--
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/controller/PatrolTaskController.java    |   16 +++
 6 files changed, 183 insertions(+), 42 deletions(-)

diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/controller/PatrolTaskController.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/controller/PatrolTaskController.java
index 4418e5e..4e14d8e 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/controller/PatrolTaskController.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/controller/PatrolTaskController.java
@@ -290,9 +290,19 @@
 	 */
 	@PostMapping("getTaskReport")
 	@ApiOperation(value = "巡查任务报表")
-	public R getTaskReport(@RequestBody PatrolTaskReport patrolTaskReport) {
-		List<PatrolTaskReport> list = patrolTaskService.getTaskReport(patrolTaskReport);
-		return R.data(list);
+	public R getTaskReport( PatrolTaskReport patrolTaskReport , Query query) {
+		IPage<PatrolTaskReport> pageList = patrolTaskService.getTaskReport(Condition.getPage(query),patrolTaskReport);
+		return R.data(pageList);
+	}
+
+	/**
+	 * 巡查任务报表
+	 */
+	@PostMapping("getTaskReportDetail")
+	@ApiOperation(value = "巡查任务报表")
+	public R getTaskReportDetail( PatrolTaskReport patrolTaskReport , Query query) {
+		IPage<PatrolTaskReport> pageList = patrolTaskService.getTaskReportDetail(Condition.getPage(query),patrolTaskReport);
+		return R.data(pageList);
 	}
 
 
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/mapper/PatrolTaskMapper.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/mapper/PatrolTaskMapper.java
index 7d250fb..5866db7 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/mapper/PatrolTaskMapper.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/mapper/PatrolTaskMapper.java
@@ -58,16 +58,32 @@
     PatrolTask customizeGetById(@Param("id") String id);
 
 	/**
-	 * 巡查报表,获取区域
+	 * 巡查报表,市拿区
 	 * @param patrolTaskReport
 	 * @return
 	 */
-    List<PatrolTaskReport> getTaskReportRegion(@Param("patrolTaskReport") PatrolTaskReport patrolTaskReport);
+    List<PatrolTaskReport> getTaskReportRegion(IPage<PatrolTaskReport> page,@Param("patrolTaskReport") PatrolTaskReport patrolTaskReport);
 
 	/**
-	 * 巡查报表,获取水库
+	 * 巡查报表,区拿水库
 	 * @param patrolTaskReport
 	 * @return
 	 */
-	List<PatrolTaskReport> getTaskReportReservoir(@Param("patrolTaskReport") PatrolTaskReport patrolTaskReport);
+	List<PatrolTaskReport> getTaskReportReservoir(IPage<PatrolTaskReport> page,@Param("patrolTaskReport") PatrolTaskReport patrolTaskReport);
+
+	/**
+	 * 巡查报表,省拿市
+	 * @param page
+	 * @param patrolTaskReport
+	 * @return
+	 */
+    List<PatrolTaskReport> getTaskReportProvince(IPage<PatrolTaskReport> page,@Param("patrolTaskReport") PatrolTaskReport patrolTaskReport);
+
+	/**
+	 * 巡查报表详情 获取行政区下的水库
+	 * @param page
+	 * @param patrolTaskReport
+	 * @return
+	 */
+	List<PatrolTaskReport> getTaskReportDetailRegion(IPage<PatrolTaskReport> page,@Param("patrolTaskReport")PatrolTaskReport patrolTaskReport);
 }
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/mapper/PatrolTaskMapper.xml b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/mapper/PatrolTaskMapper.xml
index c315ef5..a62cf87 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/mapper/PatrolTaskMapper.xml
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/mapper/PatrolTaskMapper.xml
@@ -182,41 +182,48 @@
         WHERE T.ID = #{id}
         AND T.IS_DELETED = 0
     </select>
-
+    <!--市查区-->
     <select id="getTaskReportRegion" resultType="cn.gistack.sm.patrol.vo.PatrolTaskReport">
         SELECT
-            aab."ad_name" AS adName,
-            aab."guid" AS adCode,
-            to_char(t.start_time,'yyyy-mm-dd') AS statisticsTime,
-            COUNT(*) AS need,
-            SUM(CASE WHEN t.state = 3 THEN 1 ELSE 0 END) AS finish,
-            SUM(CASE WHEN t.state = 1 THEN 1 ELSE 0 END) AS todo
+        aab."ad_name" AS adName,
+        aab."guid" AS adCode,
+        #{patrolTaskReport.startTime} AS startTime,
+        #{patrolTaskReport.endTime} AS endTime,
+        COUNT(*) AS need,
+        SUM(CASE WHEN t.state = 3 THEN 1 ELSE 0 END) AS finish,
+        SUM(CASE WHEN t.state = 1 or state = 2 THEN 1 ELSE 0 END) AS todo
         FROM SM_PATROL_TASK t
-            LEFT JOIN SJZT_MD."att_res_base" arb on arb."guid" = t.project_id
-            LEFT JOIN SJZT_MD."att_ad_base" aab on aab."guid" = CONCAT(arb."ad_guid",'000000')
+        LEFT JOIN SJZT_MD."att_res_base" arb on arb."guid" = t.project_id
+        LEFT JOIN SJZT_MD."att_ad_base" aab on aab."guid" = CONCAT(arb."ad_guid",'000000')
         WHERE t.IS_DELETED = 0
         <if test="patrolTaskReport.padCode !=null and patrolTaskReport.padCode !=''">
             AND aab."p_ad_code" = #{patrolTaskReport.padCode}
         </if>
-        <if test="patrolTaskReport.statisticsTime !=null and patrolTaskReport.statisticsTime !=''">
-            AND to_char(t.start_time,'yyyy-mm-dd') = #{patrolTaskReport.statisticsTime}
+        <if test="patrolTaskReport.startTime !=null and patrolTaskReport.startTime !=''">
+            AND DATE_FORMAT(t.start_time,'%Y-%m-%d') &gt;= #{patrolTaskReport.startTime}
         </if>
-        GROUP BY (aab."ad_name",aab."guid",to_char(t.start_time,'yyyy-mm-dd'))
+        <if test="patrolTaskReport.endTime !=null and patrolTaskReport.endTime !=''">
+            AND DATE_FORMAT(t.start_time,'%Y-%m-%d') &lt;= #{patrolTaskReport.endTime}
+        </if>
+        GROUP BY (aab."ad_name",aab."guid")
     </select>
+    <!--区查水库-->
     <select id="getTaskReportReservoir" resultType="cn.gistack.sm.patrol.vo.PatrolTaskReport">
         SELECT
-            arb."guid" AS reservoirId,
-            arb."name" AS reservoirName,
-            aab."guid" AS adCode,
-            aab."ad_name" AS adName,
-            COUNT(*) AS need,
-            SUM(CASE WHEN t.state = 3 THEN 1 ELSE 0 END) AS finish,
-            SUM(CASE WHEN t.state = 1 THEN 1 ELSE 0 END) AS todo
+        arb."guid" AS reservoirId,
+        arb."name" AS reservoirName,
+        aab."guid" AS adCode,
+        aab."ad_name" AS adName,
+        #{patrolTaskReport.startTime} AS startTime,
+        #{patrolTaskReport.endTime} AS endTime,
+        COUNT(*) AS need,
+        SUM(CASE WHEN t.state = 3 THEN 1 ELSE 0 END) AS finish,
+        SUM(CASE WHEN t.state = 1 or state = 2 THEN 1 ELSE 0 END) AS todo
         FROM SK002.SM_PATROL_TASK t
-            LEFT JOIN SJZT_MD."att_res_base" arb on arb."guid" = t.project_id
-            LEFT JOIN SJZT_MD."att_ad_base" aab on aab."guid" = CONCAT(arb."ad_guid",'000000')
+        LEFT JOIN SJZT_MD."att_res_base" arb on arb."guid" = t.project_id
+        LEFT JOIN SJZT_MD."att_ad_base" aab on aab."guid" = CONCAT(arb."ad_guid",'000000')
         WHERE
-            t.IS_DELETED = 0
+        t.IS_DELETED = 0
         <if test="patrolTaskReport.adCode != null and patrolTaskReport.adCode !=''">
             AND aab."ad_code" = #{patrolTaskReport.adCode}
         </if>
@@ -228,5 +235,73 @@
         </if>
         GROUP BY (arb."guid",arb."name",aab."guid",aab."ad_name")
     </select>
+    <!--省查市-->
+    <select id="getTaskReportProvince" resultType="cn.gistack.sm.patrol.vo.PatrolTaskReport">
+        SELECT
+        a."p_ad_code" adCode,
+        a."p_ad_name" adName,
+        sum(a.need) AS need,
+        sum(a.finish) AS finish,
+        sum(a.todo) AS todo,
+        #{patrolTaskReport.startTime} AS startTime,
+        #{patrolTaskReport.endTime} AS endTime
+        FROM (
+            SELECT
+                aab."p_ad_code",aab."p_ad_name",
+                COUNT(*) AS need,
+                SUM(CASE WHEN t.state = 3 THEN 1 ELSE 0 END) AS finish,
+                SUM(CASE WHEN t.state = 1 or state = 2 THEN 1 ELSE 0 END) AS todo
+            FROM SK002.SM_PATROL_TASK t
+                LEFT JOIN SJZT_MD."att_res_base" arb on arb."guid" = t.project_id
+                LEFT JOIN SJZT_MD."att_ad_base" aab on aab."guid" = CONCAT(arb."ad_guid",'000000')
+                where t.is_deleted = 0 AND aab."p_ad_code" != '420000000000'
+                <if test="patrolTaskReport.startTime !=null and patrolTaskReport.startTime !=''">
+                    AND DATE_FORMAT(t.start_time,'%Y-%m-%d') &gt;= #{patrolTaskReport.startTime}
+                </if>
+                <if test="patrolTaskReport.endTime !=null and patrolTaskReport.endTime !=''">
+                    AND DATE_FORMAT(t.start_time,'%Y-%m-%d') &lt;= #{patrolTaskReport.endTime}
+                </if>
+                GROUP BY (aab."p_ad_code",aab."p_ad_name")
+            ) A
+        GROUP BY (a."p_ad_code",a."p_ad_name") order by a."p_ad_code"
+    </select>
+    <!--获取市下的所有水库巡查-->
+    <select id="getTaskReportDetailRegion" resultType="cn.gistack.sm.patrol.vo.PatrolTaskReport">
+        SELECT
+            arb."guid" AS reservoirId,
+            arb."name" AS reservoirName,
+            aab."ad_name" AS adName,
+            aab."guid" AS adCode,
+            t.start_time,
+            u.real_name patrolUserName,
+            t.state,
+            (
+                CASE t.state
+                WHEN '1' THEN '未完成'
+                WHEN '2' THEN '进行中'
+                ELSE '已完成'
+                END
+            )stateName
+        FROM SM_PATROL_TASK T
+            LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = t.project_id
+            LEFT JOIN SJZT_MD."att_ad_base" aab ON aab."guid" = CONCAT(arb."ad_guid",'000000')
+            LEFT JOIN BLADE_USER u ON u.id = t.to_user_id
+        WHERE T.IS_DELETED = 0
+        <if test="patrolTaskReport.adCode !=null and patrolTaskReport.adCode !=''">
+            AND aab."guid" LIKE CONCAT('%',#{patrolTaskReport.adCode},'%')
+        </if>
+        <if test="patrolTaskReport.reservoirName !=null and patrolTaskReport.reservoirName !=''">
+            AND arb."name" LIKE CONCAT('%',#{patrolTaskReport.reservoirName},'%')
+        </if>
+        <if test="patrolTaskReport.startTime !=null and patrolTaskReport.startTime !=''">
+            AND DATE_FORMAT(t.start_time,'%Y-%m-%d') &gt;= #{patrolTaskReport.startTime}
+        </if>
+        <if test="patrolTaskReport.endTime !=null and patrolTaskReport.endTime !=''">
+            AND DATE_FORMAT(t.start_time,'%Y-%m-%d') &lt;= #{patrolTaskReport.endTime}
+        </if>
+        <if test="patrolTaskReport.reservoirId !=null and patrolTaskReport.reservoirId !=''">
+            AND arb."guid" =  #{patrolTaskReport.reservoirId}
+        </if>
+    </select>
 
 </mapper>
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/service/IPatrolTaskService.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/service/IPatrolTaskService.java
index 58d2216..9f74dee 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/service/IPatrolTaskService.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/service/IPatrolTaskService.java
@@ -71,5 +71,7 @@
 	 * @param patrolTaskReport
 	 * @return
 	 */
-    List<PatrolTaskReport> getTaskReport(PatrolTaskReport patrolTaskReport);
+	IPage<PatrolTaskReport> getTaskReport(IPage<PatrolTaskReport> page,PatrolTaskReport patrolTaskReport);
+
+	IPage<PatrolTaskReport> getTaskReportDetail(IPage<PatrolTaskReport> page, PatrolTaskReport patrolTaskReport);
 }
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/service/impl/PatrolTaskServiceImpl.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/service/impl/PatrolTaskServiceImpl.java
index c25a0bd..ff86cf0 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/service/impl/PatrolTaskServiceImpl.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/service/impl/PatrolTaskServiceImpl.java
@@ -33,10 +33,7 @@
 import org.springframework.transaction.annotation.Transactional;
 
 import java.net.http.HttpRequest;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.stream.Collectors;
 
 import static org.springblade.core.launch.constant.FlowConstant.TASK_USR_PREFIX;
@@ -212,14 +209,40 @@
 	}
 
 	@Override
-	public List<PatrolTaskReport> getTaskReport(PatrolTaskReport patrolTaskReport) {
-
-		if (Func.equals(patrolTaskReport.getRegionFlag(),"2")){
-			return baseMapper.getTaskReportReservoir(patrolTaskReport);
-		}else {
-			return baseMapper.getTaskReportRegion(patrolTaskReport);
-
+	public IPage<PatrolTaskReport> getTaskReport(IPage<PatrolTaskReport> page,PatrolTaskReport patrolTaskReport) {
+		List<PatrolTaskReport> list = new ArrayList();
+		if (Func.equals(patrolTaskReport.getRegionFlag(),"0")){
+			//省  返回市
+			list =  baseMapper.getTaskReportProvince(page,patrolTaskReport);
+		}else if (Func.equals(patrolTaskReport.getRegionFlag(),"1")){
+			//市 返回区
+			list = baseMapper.getTaskReportRegion(page,patrolTaskReport);
+		}else if (Func.equals(patrolTaskReport.getRegionFlag(),"2")){
+			//区 返回水库
+			list = baseMapper.getTaskReportReservoir(page,patrolTaskReport);
 		}
+		return page.setRecords(list);
+	}
+
+	@Override
+	public IPage<PatrolTaskReport> getTaskReportDetail(IPage<PatrolTaskReport> page, PatrolTaskReport patrolTaskReport) {
+
+		List<PatrolTaskReport> list = new ArrayList();
+		if (Func.isNotEmpty(patrolTaskReport.getReservoirId())){
+			//获取该水库的巡查
+			list = baseMapper.getTaskReportDetailRegion(page,patrolTaskReport);
+		}else {
+			String code = patrolTaskReport.getAdCode();
+			if (code.substring(0,4).indexOf("00") > -1) {
+				//前4位包含00 =》省
+				patrolTaskReport.setAdCode(code.substring(0,2));
+			} else if (code.substring(0,6).indexOf("00") > -1) {
+				//前六位包含00 =》市
+				patrolTaskReport.setAdCode(code.substring(0,4));
+			}
+			list = baseMapper.getTaskReportDetailRegion(page,patrolTaskReport);
+		}
+		return page.setRecords(list);
 	}
 
 	public void saveReport(PatrolTask patrolTask){
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/vo/PatrolTaskReport.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/vo/PatrolTaskReport.java
index 6b1eb7d..34dfd80 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/vo/PatrolTaskReport.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/vo/PatrolTaskReport.java
@@ -59,7 +59,7 @@
 	private String todo;
 
 	/**
-	 * 0、省;1、市;2、区
+	 * 0、省;1、市;2、区  3、水库
 	 */
 	private String regionFlag;
 
@@ -72,4 +72,19 @@
 	 * 结束时间
 	 */
 	private String endTime;
+
+	/**
+	 * 巡查责任人名字
+	 */
+	private String patrolUserName;
+
+	/**
+	 * 任务状态名
+	 */
+	private String stateName;
+	/**
+	 * 任务状态
+	 */
+	private String state;
+
 }

--
Gitblit v1.9.3