From ed0a71a11aeffcbb441d5a67e2a5663bd0f0e8ed Mon Sep 17 00:00:00 2001
From: zhongrj <646384940@qq.com>
Date: Mon, 03 Apr 2023 08:57:42 +0800
Subject: [PATCH] 巡查项接口新增调整

---
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/controller/PatrolGroupController.java        |   10 +
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/mapper/PatrolTaskMapper.java                 |   18 ++
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/service/IPatrolGroupService.java             |    6 
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/service/IPatrolGroupItemService.java         |    5 
 skjcmanager/skjcmanager-common/src/main/java/cn/gistack/common/node/TreeNode.java                                              |   43 +++++
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/controller/PatrolGroupItemController.java    |    9 
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/vo/PatrolTaskStatisticsVO.java               |   30 +++
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/vo/PatrolTaskVO.java                         |   19 ++
 skjcmanager/skjcmanager-common/src/main/java/cn/gistack/common/utils/NodeTreeUtil.java                                         |   58 +++++++
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/service/impl/PatrolGroupServiceImpl.java     |   17 ++
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/entity/PatrolTask.java                       |   50 ++++-
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/mapper/PatrolGroupItemMapper.java            |    3 
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/mapper/PatrolGroupItemMapper.xml             |   15 +
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/service/IPatrolTaskService.java              |   17 ++
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/mapper/PatrolTaskMapper.xml                  |   33 +++-
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/service/impl/PatrolTaskServiceImpl.java      |   20 ++
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/vo/PatrolGroupItemVO.java                    |   19 ++
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/service/impl/PatrolGroupItemServiceImpl.java |    5 
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/controller/PatrolTaskController.java         |   17 +
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/mapper/PatrolGroupMapper.java                |   15 +
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/mapper/PatrolGroupMapper.xml                 |   56 +++++++
 21 files changed, 425 insertions(+), 40 deletions(-)

diff --git a/skjcmanager/skjcmanager-common/src/main/java/cn/gistack/common/node/TreeNode.java b/skjcmanager/skjcmanager-common/src/main/java/cn/gistack/common/node/TreeNode.java
new file mode 100644
index 0000000..9805600
--- /dev/null
+++ b/skjcmanager/skjcmanager-common/src/main/java/cn/gistack/common/node/TreeNode.java
@@ -0,0 +1,43 @@
+package cn.gistack.common.node;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 树节点
+ * @author zhongrj
+ * @date 2023-03-30
+ */
+@Data
+public class TreeNode implements Serializable {
+
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * id
+	 */
+	private String id;
+
+	/**
+	 * 父id
+	 */
+	private String parentId;
+
+	/**
+	 * 名称
+	 */
+	private String name;
+
+	/**
+	 * 子孙节点
+	 */
+	private List<TreeNode> children = new ArrayList<>();
+
+	/**
+	 * 是否有子孙节点
+	 */
+	private Boolean hasChildren;
+}
diff --git a/skjcmanager/skjcmanager-common/src/main/java/cn/gistack/common/utils/NodeTreeUtil.java b/skjcmanager/skjcmanager-common/src/main/java/cn/gistack/common/utils/NodeTreeUtil.java
new file mode 100644
index 0000000..082799b
--- /dev/null
+++ b/skjcmanager/skjcmanager-common/src/main/java/cn/gistack/common/utils/NodeTreeUtil.java
@@ -0,0 +1,58 @@
+package cn.gistack.common.utils;
+
+import cn.gistack.common.node.TreeNode;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * node tree 工具类
+ * @author zhongrj
+ * @since 2021-11-23
+ */
+public class NodeTreeUtil {
+
+	/**
+	 * map 转 tree 组织机构(父子id不会重复的情况,数据查询来自同一个表)
+	 * @param treeMap
+	 * @return
+	 */
+	public  static List<TreeNode> getNodeTree(Map<String, TreeNode> treeMap){
+		List<TreeNode> tree = new ArrayList<>();
+		if (treeMap.size() > 1) {
+			treeMap.forEach((id, treeNode) -> {
+				if (treeMap.containsKey(treeNode.getParentId())) {
+					treeMap.get(treeNode.getParentId()).getChildren().add(treeNode);
+				} else {
+					tree.add(treeNode);
+				}
+			});
+		}
+		return tree;
+	}
+
+	/**
+	 * list 转 tree 组织机构
+	 * @param parentList
+	 * @param childrenList
+	 * @return
+	 */
+	public  static List<TreeNode> getNodeTree(List<TreeNode> parentList,List<TreeNode> childrenList){
+		// 遍历
+		for (TreeNode parentNode : parentList) {
+			// 判断是否有孩子
+			if (parentNode.getHasChildren()) {
+				List<TreeNode> tree = new ArrayList<>();
+				// 遍历子集合
+				for (TreeNode childrenNode : childrenList) {
+					if (parentNode.getId().equals(childrenNode.getParentId())) {
+						tree.add(childrenNode);
+					}
+				}
+				// 设置孩子节点
+				parentNode.setChildren(tree);
+			}
+		}
+		return parentList;
+	}
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/controller/PatrolGroupController.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/controller/PatrolGroupController.java
index 87c3065..eeb598e 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/controller/PatrolGroupController.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/controller/PatrolGroupController.java
@@ -128,4 +128,14 @@
 		List<PatrolGroup> list = patrolGroupService.list();
 		return R.data(list);
 	}
+
+	/**
+	 * 查询巡查项树数据
+	 * @return
+	 */
+	@ApiOperation(value = "查询巡查项树数据", notes = "查询巡查项树数据")
+	@GetMapping(value = "/getPatrolGroupTree")
+	public R getPatrolGroupTree() {
+		return R.data(patrolGroupService.getPatrolGroupTree());
+	}
 }
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/controller/PatrolGroupItemController.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/controller/PatrolGroupItemController.java
index f293fb7..0fce399 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/controller/PatrolGroupItemController.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/controller/PatrolGroupItemController.java
@@ -8,6 +8,7 @@
 import cn.gistack.sm.patrol.entity.PatrolGroup;
 import cn.gistack.sm.patrol.entity.PatrolGroupItem;
 import cn.gistack.sm.patrol.service.IPatrolGroupItemService;
+import cn.gistack.sm.patrol.vo.PatrolGroupItemVO;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import lombok.AllArgsConstructor;
 
@@ -44,8 +45,8 @@
 	 */
 	@ApiOperation(value="巡查指标项目-分页列表查询", notes="巡查指标项目-分页列表查询")
 	@GetMapping(value = "/list")
-	public R queryPageList(PatrolGroupItem patrolGroupItem, Query query) {
-		IPage<PatrolGroupItem> pageList = patrolGroupItemService.selectPatrolConfig(Condition.getPage(query),patrolGroupItem);
+	public R queryPageList(PatrolGroupItemVO patrolGroupItem, Query query) {
+		IPage<PatrolGroupItemVO> pageList = patrolGroupItemService.selectPatrolConfig(Condition.getPage(query),patrolGroupItem);
 		return R.data(pageList);
 	}
 
@@ -57,8 +58,8 @@
 	 */
 	@ApiOperation(value="巡查指标项目-列表查询", notes="巡查指标项目-列表查询")
 	@GetMapping(value = "/queryList")
-	public R queryList(PatrolGroupItem patrolGroupItem) {
-		List<PatrolGroupItem> list = patrolGroupItemService.selectPatrolGroupItemList(patrolGroupItem);
+	public R queryList(PatrolGroupItemVO patrolGroupItem) {
+		List<PatrolGroupItemVO> list = patrolGroupItemService.selectPatrolGroupItemList(patrolGroupItem);
 		return R.data(list);
 	}
 
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 6812782..957f49c 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
@@ -3,6 +3,7 @@
 import cn.gistack.sm.patrol.entity.PatrolTask;
 import cn.gistack.sm.patrol.entity.PatrolTask;
 import cn.gistack.sm.patrol.service.IPatrolTaskService;
+import cn.gistack.sm.patrol.vo.PatrolTaskVO;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -34,8 +35,8 @@
     */
    @ApiOperation(value="巡查任务-分页列表查询", notes="巡查任务-分页列表查询")
    @GetMapping(value = "/list")
-   public R queryPageList(PatrolTask patrolTask, Query query) {
-       IPage<PatrolTask> pageList = patrolTaskService.selectPatrolTask(Condition.getPage(query),patrolTask);
+   public R queryPageList(PatrolTaskVO patrolTask, Query query) {
+       IPage<PatrolTaskVO> pageList = patrolTaskService.selectPatrolTask(Condition.getPage(query),patrolTask);
 //		IPage<PatrolTask> pageList = patrolTaskService.page(Condition.getPage(query), Condition.getQueryWrapper(PatrolTask));
        return R.data(pageList);
    }
@@ -107,4 +108,16 @@
    }
 
 
+	/**
+	 * 查询巡查人员统计数据信息
+	 * @param patrolTask
+	 * @return
+	 */
+	@ApiOperation(value="查询巡查人员统计数据信息", notes="查询巡查人员统计数据信息")
+	@GetMapping(value = "/getPatrolTaskStatistic")
+	public R getPatrolTaskStatistic(PatrolTaskVO patrolTask) {
+		return R.data(patrolTaskService.getPatrolTaskStatistic(patrolTask));
+	}
+
+
 }
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/entity/PatrolTask.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/entity/PatrolTask.java
index b7e5da7..d862c1c 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/entity/PatrolTask.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/entity/PatrolTask.java
@@ -18,49 +18,75 @@
 @TableName("sm_patrol_task")
 @EqualsAndHashCode(callSuper = false)
 @Accessors(chain = true)
-@ApiModel(value="sm_patrol_task对象", description="巡查任务")
+@ApiModel(value = "sm_patrol_task对象", description = "巡查任务")
 public class PatrolTask extends TenantEntity {
-	/**标题*/
+	/**
+	 * 标题
+	 */
 	@ApiModelProperty(value = "标题")
 	private String title;
 
-	/**开始时间*/
+	/**
+	 * 开始时间
+	 */
 	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
 	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
 	@ApiModelProperty(value = "开始时间")
 	private String startTime;
 
-	/**结束时间*/
+	/**
+	 * 结束时间
+	 */
 	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
 	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
 	@ApiModelProperty(value = "结束时间")
 	private String endTime;
 
-	/**内容*/
+	/**
+	 * 内容
+	 */
 	@ApiModelProperty(value = "内容")
 	private String content;
 
-	/**巡检人员*/
+	/**
+	 * 巡检人员
+	 */
 	@ApiModelProperty(value = "巡检人员")
 	private String toUserId;
 
-	/**路线id*/
+	/**
+	 * 路线id
+	 */
 	@ApiModelProperty(value = "路线id")
 	private String routeId;
 
-	/**任务状态*/
+	/**
+	 * 任务状态
+	 */
 	@ApiModelProperty(value = "任务状态")
 	private String state;
 
-	/**任务来源*/
+	/**
+	 * 任务来源
+	 */
 	@ApiModelProperty(value = "任务来源")
 	private String source;
 
-	/**任务类型*/
+	/**
+	 * 任务类型
+	 */
 	@ApiModelProperty(value = "任务类型")
 	private String taskType;
 
-	/**任务类型*/
-	@ApiModelProperty(value = "任务类型")
+	/**
+	 * 水库id
+	 */
+	@ApiModelProperty(value = "水库id")
 	private String projectId;
+
+	/**
+	 * 巡查项ID
+	 */
+	@ApiModelProperty(value = "巡查项ID(多个)")
+	private String patrolGroupItemId;
 }
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/mapper/PatrolGroupItemMapper.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/mapper/PatrolGroupItemMapper.java
index 2cfe310..dd38aed 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/mapper/PatrolGroupItemMapper.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/mapper/PatrolGroupItemMapper.java
@@ -3,6 +3,7 @@
 import java.util.List;
 
 import cn.gistack.sm.patrol.entity.PatrolGroupItem;
+import cn.gistack.sm.patrol.vo.PatrolGroupItemVO;
 import org.apache.ibatis.annotations.Param;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 
@@ -11,5 +12,5 @@
  */
 public interface PatrolGroupItemMapper extends BaseMapper<PatrolGroupItem> {
 
-    List<PatrolGroupItem> selectPatrolGroupItemList(@Param("patrolGroupItem") PatrolGroupItem patrolGroupItem);
+    List<PatrolGroupItemVO> selectPatrolGroupItemList(@Param("patrolGroupItem") PatrolGroupItemVO patrolGroupItem);
 }
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/mapper/PatrolGroupItemMapper.xml b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/mapper/PatrolGroupItemMapper.xml
index 1a77925..7c8592c 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/mapper/PatrolGroupItemMapper.xml
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/mapper/PatrolGroupItemMapper.xml
@@ -2,16 +2,21 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="cn.gistack.sm.patrol.mapper.PatrolGroupItemMapper">
 
-    <select id="selectPatrolGroupItemList" resultType="cn.gistack.sm.patrol.entity.PatrolGroupItem">
-        SELECT id,group_id,items_name,description FROM SM_PATROL_GROUP_ITEM WHERE is_deleted = 0
+    <select id="selectPatrolGroupItemList" resultType="cn.gistack.sm.patrol.vo.PatrolGroupItemVO">
+        SELECT
+            spgi.id,spgi.group_id,spgi.items_name,spgi.description,
+            spg.name as groupName
+        FROM SM_PATROL_GROUP_ITEM spgi
+        left join SM_PATROL_GROUP spg on spg.id = spgi.group_id
+        WHERE spgi.is_deleted = 0
         <if test="patrolGroupItem.groupId != null and patrolGroupItem.groupId != '' ">
-            and group_id = #{patrolGroupItem.groupId}
+            and spgi.group_id = #{patrolGroupItem.groupId}
         </if>
         <if test="patrolGroupItem.itemsName !=null and patrolGroupItem.itemsName !=''">
-            AND items_name LIKE CONCAT('%',#{patrolGroupItem.itemsName},'%')
+            AND spgi.items_name LIKE CONCAT('%',#{patrolGroupItem.itemsName},'%')
         </if>
         <if test="patrolGroupItem.description !=null and patrolGroupItem.description !=''">
-            AND name LIKE CONCAT('%',#{patrolGroupItem.description},'%')
+            AND spgi.description LIKE CONCAT('%',#{patrolGroupItem.description},'%')
         </if>
     </select>
 </mapper>
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/mapper/PatrolGroupMapper.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/mapper/PatrolGroupMapper.java
index b87fcd8..a7bc2bd 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/mapper/PatrolGroupMapper.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/mapper/PatrolGroupMapper.java
@@ -1,10 +1,13 @@
 package cn.gistack.sm.patrol.mapper;
 
+import cn.gistack.common.node.TreeNode;
 import cn.gistack.sm.patrol.entity.PatrolGroup;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.MapKey;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * @Description: 巡查指标组
@@ -12,4 +15,16 @@
 public interface PatrolGroupMapper extends BaseMapper<PatrolGroup> {
 
 	List<PatrolGroup> getPatrolGroupByProjectId(@Param("projectId") String projectId);
+
+	/**
+	 * 查询巡查项树数据
+	 * @return
+	 */
+    List<TreeNode> getPatrolGroupTree();
+
+	/**
+	 * 查询巡查项树数据
+	 * @return
+	 */
+	List<TreeNode> getPatrolGroupItemTree();
 }
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/mapper/PatrolGroupMapper.xml b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/mapper/PatrolGroupMapper.xml
index 9035d02..6329b8f 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/mapper/PatrolGroupMapper.xml
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/mapper/PatrolGroupMapper.xml
@@ -8,4 +8,60 @@
         WHERE g.is_deleted = 0
         AND g.project_id = #{projectId}
     </select>
+
+    <!--查询巡查项树数据-->
+<!--    <select id="getPatrolGroupTree" resultType="cn.gistack.common.node.TreeNode" >-->
+<!--        (-->
+<!--        SELECT-->
+<!--        spg.id,-->
+<!--        spg.name,-->
+<!--        0 as parentId,-->
+<!--        (-->
+<!--            SELECT-->
+<!--                CASE WHEN count(1) > 0 THEN 1 ELSE 0 END-->
+<!--            FROM-->
+<!--                sm_patrol_group_item-->
+<!--            WHERE-->
+<!--                group_id = spg.id and is_deleted = 0-->
+<!--        ) AS "has_children"-->
+<!--        FROM sm_patrol_group spg where spg.is_deleted = 0-->
+<!--        )-->
+<!--        union all-->
+<!--        (-->
+<!--        SELECT-->
+<!--        spgi.id,-->
+<!--        spgi.items_name as name,-->
+<!--        spgi.group_id as parentId,-->
+<!--        false AS hasChildren-->
+<!--        FROM sm_patrol_group_item spgi where spgi.is_deleted = 0-->
+<!--        )-->
+<!--    </select>-->
+
+
+    <!--查询巡查项树数据-->
+    <select id="getPatrolGroupTree" resultType="cn.gistack.common.node.TreeNode" >
+        SELECT
+        spg.id,
+        spg.name,
+        0 as parentId,
+        (
+            SELECT
+                CASE WHEN count(1) > 0 THEN 1 ELSE 0 END
+            FROM
+                sm_patrol_group_item
+            WHERE
+                group_id = spg.id and is_deleted = 0
+        ) AS "has_children"
+        FROM sm_patrol_group spg where spg.is_deleted = 0
+    </select>
+
+    <!--查询巡查项树数据-->
+    <select id="getPatrolGroupItemTree" resultType="cn.gistack.common.node.TreeNode" >
+        SELECT
+            spgi.id,
+            spgi.items_name as name,
+            spgi.group_id as parentId,
+            false AS hasChildren
+        FROM sm_patrol_group_item spgi where spgi.is_deleted = 0
+    </select>
 </mapper>
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 d62fb72..d931540 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
@@ -1,11 +1,27 @@
 package cn.gistack.sm.patrol.mapper;
 
 import cn.gistack.sm.patrol.entity.PatrolTask;
+import cn.gistack.sm.patrol.vo.PatrolTaskStatisticsVO;
+import cn.gistack.sm.patrol.vo.PatrolTaskVO;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
+import java.util.Map;
 
 public interface PatrolTaskMapper extends BaseMapper<PatrolTask> {
-	List<PatrolTask> selectPatrolTask(@Param("patrolTask") PatrolTask patrolTask);
+
+	/**
+	 * 自定义分页查询
+	 * @param patrolTask
+	 * @return
+	 */
+	List<PatrolTaskVO> selectPatrolTask(@Param("patrolTask") PatrolTaskVO patrolTask);
+
+	/**
+	 * 查询巡查人员统计数据信息
+	 * @param patrolTask
+	 * @return
+	 */
+	List<PatrolTaskStatisticsVO> getPatrolTaskStatistic(@Param("patrolTask") PatrolTaskVO patrolTask);
 }
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 aa20557..be80c42 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
@@ -2,22 +2,37 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="cn.gistack.sm.patrol.mapper.PatrolTaskMapper">
 
-
-    <select id="selectPatrolTask" resultType="cn.gistack.sm.patrol.entity.PatrolTask">
-        SELECT id,title,start_time,end_time,content,to_user_id,route_id,state,source,task_type,project_id
-        FROM sm_patrol_task
-        WHERE is_deleted = 0
+    <!--自定义分页查询-->
+    <select id="selectPatrolTask" resultType="cn.gistack.sm.patrol.vo.PatrolTaskVO">
+        SELECT
+        spt.*,
+        spt2.name as patrolTypeName
+        FROM sm_patrol_task spt
+        left join sm_patrol_type spt2 on spt.task_type = spt2.id
+        WHERE spt.is_deleted = 0
         <if test="patrolTask.title !=null and patrolTask.title!=''">
-            AND title LIKE CONCAT('%',#{patrolTask.title},'%')
+            AND spt.title LIKE CONCAT('%',#{patrolTask.title},'%')
         </if>
         <if test="patrolTask.startTime !=null and patrolTask.startTime !=''">
-            AND DATE_FORMAT(start_time,'%Y-%m-%d') &gt;= #{patrolTask.startTime}
+            AND DATE_FORMAT(spt.start_time,'%Y-%m-%d') &gt;= #{patrolTask.startTime}
         </if>
         <if test="patrolTask.endTime !=null and patrolTask.endTime !=''">
-            AND DATE_FORMAT(end_time,'%Y-%m-%d') &lt;= #{patrolTask.endTime}
+            AND DATE_FORMAT(spt.end_time,'%Y-%m-%d') &lt;= #{patrolTask.endTime}
         </if>
         <if test="patrolTask.projectId !=null and patrolTask.projectId !='' ">
-            AND project_id = #{patrolTask.projectId}
+            AND spt.project_id = #{patrolTask.projectId}
         </if>
     </select>
+
+    <!--查询巡查人员统计数据信息-->
+    <select id="getPatrolTaskStatistic" resultType="cn.gistack.sm.patrol.vo.PatrolTaskStatisticsVO">
+        SELECT
+        spt.patrol_type as patrolType,
+        spt2.name as patrolTypeName,
+        count(*) as number
+        FROM BLADEX.sm_patrol_task spt
+        left join BLADEX.sm_patrol_type spt2 on spt.task_type = spt2.id
+        WHERE spt.is_deleted = 0
+        group by spt.task_type,spt2.name
+    </select>
 </mapper>
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/service/IPatrolGroupItemService.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/service/IPatrolGroupItemService.java
index bc2346b..d8e5ac2 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/service/IPatrolGroupItemService.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/service/IPatrolGroupItemService.java
@@ -1,6 +1,7 @@
 package cn.gistack.sm.patrol.service;
 
 import cn.gistack.sm.patrol.entity.PatrolGroupItem;
+import cn.gistack.sm.patrol.vo.PatrolGroupItemVO;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.springblade.core.mp.base.BaseService;
 
@@ -11,7 +12,7 @@
  */
 public interface IPatrolGroupItemService extends BaseService<PatrolGroupItem> {
 
-    List<PatrolGroupItem> selectPatrolGroupItemList(PatrolGroupItem patrolGroupItem);
+    List<PatrolGroupItemVO> selectPatrolGroupItemList(PatrolGroupItemVO patrolGroupItem);
 
-	IPage<PatrolGroupItem> selectPatrolConfig(IPage<PatrolGroupItem> page, PatrolGroupItem patrolGroupItem);
+	IPage<PatrolGroupItemVO> selectPatrolConfig(IPage<PatrolGroupItemVO> page, PatrolGroupItemVO patrolGroupItem);
 }
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/service/IPatrolGroupService.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/service/IPatrolGroupService.java
index 1d1b9f2..ec7d240 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/service/IPatrolGroupService.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/service/IPatrolGroupService.java
@@ -14,4 +14,10 @@
 	IPage<PatrolGroup> selectPatrolConfig(IPage<Object> page, PatrolGroup patrolGroup);
 
 	List<PatrolGroup> getPatrolGroupByProjectId(String projectId);
+
+	/**
+	 * 查询巡查项树数据
+	 * @return
+	 */
+    Object getPatrolGroupTree();
 }
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 9156b54..c5839d4 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
@@ -1,9 +1,24 @@
 package cn.gistack.sm.patrol.service;
 
 import cn.gistack.sm.patrol.entity.PatrolTask;
+import cn.gistack.sm.patrol.vo.PatrolTaskVO;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.springblade.core.mp.base.BaseService;
 
 public interface IPatrolTaskService extends BaseService<PatrolTask> {
-	IPage<PatrolTask> selectPatrolTask(IPage<PatrolTask> page, PatrolTask patrolTask);
+
+	/**
+	 * 自定义分页查询
+	 * @param page
+	 * @param patrolTask
+	 * @return
+	 */
+	IPage<PatrolTaskVO> selectPatrolTask(IPage<PatrolTaskVO> page, PatrolTaskVO patrolTask);
+
+	/**
+	 * 查询巡查人员统计数据信息
+	 * @param patrolTask
+	 * @return
+	 */
+    Object getPatrolTaskStatistic(PatrolTaskVO patrolTask);
 }
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/service/impl/PatrolGroupItemServiceImpl.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/service/impl/PatrolGroupItemServiceImpl.java
index af190ec..e7bbe5c 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/service/impl/PatrolGroupItemServiceImpl.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/service/impl/PatrolGroupItemServiceImpl.java
@@ -3,6 +3,7 @@
 import cn.gistack.sm.patrol.entity.PatrolGroupItem;
 import cn.gistack.sm.patrol.mapper.PatrolGroupItemMapper;
 import cn.gistack.sm.patrol.service.IPatrolGroupItemService;
+import cn.gistack.sm.patrol.vo.PatrolGroupItemVO;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.springblade.core.mp.base.BaseServiceImpl;
 import org.springframework.stereotype.Service;
@@ -19,12 +20,12 @@
 
 
 	@Override
-	public List<PatrolGroupItem> selectPatrolGroupItemList(PatrolGroupItem patrolGroupItem) {
+	public List<PatrolGroupItemVO> selectPatrolGroupItemList(PatrolGroupItemVO patrolGroupItem) {
 		return baseMapper.selectPatrolGroupItemList(patrolGroupItem);
 	}
 
 	@Override
-	public IPage<PatrolGroupItem> selectPatrolConfig(IPage<PatrolGroupItem> page, PatrolGroupItem patrolGroupItem) {
+	public IPage<PatrolGroupItemVO> selectPatrolConfig(IPage<PatrolGroupItemVO> page, PatrolGroupItemVO patrolGroupItem) {
 		return page.setRecords(baseMapper.selectPatrolGroupItemList(patrolGroupItem));
 	}
 }
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/service/impl/PatrolGroupServiceImpl.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/service/impl/PatrolGroupServiceImpl.java
index 32bfcd1..a07aacd 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/service/impl/PatrolGroupServiceImpl.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/service/impl/PatrolGroupServiceImpl.java
@@ -1,6 +1,8 @@
 package cn.gistack.sm.patrol.service.impl;
 
 
+import cn.gistack.common.node.TreeNode;
+import cn.gistack.common.utils.NodeTreeUtil;
 import cn.gistack.sm.patrol.entity.PatrolGroup;
 import cn.gistack.sm.patrol.mapper.PatrolGroupMapper;
 import cn.gistack.sm.patrol.service.IPatrolGroupService;
@@ -11,6 +13,7 @@
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * @Description: 巡查指标组
@@ -27,4 +30,18 @@
 	public List<PatrolGroup> getPatrolGroupByProjectId(String projectId) {
 		return baseMapper.getPatrolGroupByProjectId(projectId);
 	}
+
+	/**
+	 * 查询巡查项树数据
+	 * @return
+	 */
+	@Override
+	public Object getPatrolGroupTree() {
+		// 查询父树目录
+		List<TreeNode> patrolGroupTree = baseMapper.getPatrolGroupTree();
+		// 查询孩子树目录
+		List<TreeNode> patrolGroupItemTree = baseMapper.getPatrolGroupItemTree();
+		// 数据处理
+		return NodeTreeUtil.getNodeTree(patrolGroupTree,patrolGroupItemTree);
+	}
 }
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 d6dee8b..99d7f2e 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
@@ -3,14 +3,32 @@
 import cn.gistack.sm.patrol.entity.PatrolTask;
 import cn.gistack.sm.patrol.mapper.PatrolTaskMapper;
 import cn.gistack.sm.patrol.service.IPatrolTaskService;
+import cn.gistack.sm.patrol.vo.PatrolTaskVO;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.springblade.core.mp.base.BaseServiceImpl;
 import org.springframework.stereotype.Service;
 
 @Service
 public class PatrolTaskServiceImpl extends BaseServiceImpl<PatrolTaskMapper, PatrolTask> implements IPatrolTaskService {
+
+	/**
+	 * 自定义分页查询
+	 * @param page
+	 * @param patrolTask
+	 * @return
+	 */
 	@Override
-	public IPage<PatrolTask> selectPatrolTask(IPage<PatrolTask> page, PatrolTask patrolTask) {
+	public IPage<PatrolTaskVO> selectPatrolTask(IPage<PatrolTaskVO> page, PatrolTaskVO patrolTask) {
 		return page.setRecords(baseMapper.selectPatrolTask(patrolTask));
 	}
+
+	/**
+	 * 查询巡查人员统计数据信息
+	 * @param patrolTask
+	 * @return
+	 */
+	@Override
+	public Object getPatrolTaskStatistic(PatrolTaskVO patrolTask) {
+		return baseMapper.getPatrolTaskStatistic(patrolTask);
+	}
 }
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/vo/PatrolGroupItemVO.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/vo/PatrolGroupItemVO.java
new file mode 100644
index 0000000..706ff6f
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/vo/PatrolGroupItemVO.java
@@ -0,0 +1,19 @@
+package cn.gistack.sm.patrol.vo;
+
+import cn.gistack.sm.patrol.entity.PatrolGroupItem;
+import cn.gistack.sm.patrol.entity.PatrolRoute;
+import lombok.Data;
+
+/**
+ * 巡查组明细 vo
+ * @author zhongrj
+ * @date 2023-03-31
+ */
+@Data
+public class PatrolGroupItemVO extends PatrolGroupItem {
+
+	/**
+	 * 组名称
+	 */
+	private String groupName;
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/vo/PatrolTaskStatisticsVO.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/vo/PatrolTaskStatisticsVO.java
new file mode 100644
index 0000000..15b22d6
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/vo/PatrolTaskStatisticsVO.java
@@ -0,0 +1,30 @@
+package cn.gistack.sm.patrol.vo;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @author zhongrj
+ * @Description: 巡查人员统计 vo
+ * @date 2023-03-31
+ */
+@Data
+public class PatrolTaskStatisticsVO implements Serializable {
+
+    /**
+     * 巡查类型id
+     */
+    private String patrolType;
+
+    /**
+     * 巡查类型名称
+     */
+    private String patrolTypeName;
+
+    /**
+     * 数量
+     */
+    private Integer number;
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/vo/PatrolTaskVO.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/vo/PatrolTaskVO.java
new file mode 100644
index 0000000..4af75ac
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/vo/PatrolTaskVO.java
@@ -0,0 +1,19 @@
+package cn.gistack.sm.patrol.vo;
+
+import cn.gistack.sm.patrol.entity.PatrolGroupItem;
+import cn.gistack.sm.patrol.entity.PatrolTask;
+import lombok.Data;
+
+/**
+ * 巡查组明细 vo
+ * @author zhongrj
+ * @date 2023-03-31
+ */
+@Data
+public class PatrolTaskVO extends PatrolTask {
+
+	/**
+	 * 任务类型名称
+	 */
+	private String patrolTypeName;
+}

--
Gitblit v1.9.3