From 30f7705239334a3df2c7a296fb11abd1b28355cb Mon Sep 17 00:00:00 2001
From: zhongrj <646384940@qq.com>
Date: Fri, 02 Feb 2024 22:46:01 +0800
Subject: [PATCH] 机构新增字段,警务网格字段调整

---
 src/main/java/org/springblade/modules/police/entity/PoliceAffairsGridEntity.java |    4 
 src/main/java/org/springblade/modules/system/mapper/RegionMapper.java            |   10 +++
 src/main/java/org/springblade/modules/system/controller/DeptController.java      |    9 ++
 src/main/java/org/springblade/modules/system/mapper/RegionMapper.xml             |   18 ++++++
 src/main/java/org/springblade/modules/system/service/IRegionService.java         |    3 
 src/main/java/org/springblade/modules/system/service/impl/DeptServiceImpl.java   |   37 ++++++++++++
 src/main/java/org/springblade/modules/system/vo/RegionParamVO.java               |   52 +++++++++++++++++
 src/main/java/org/springblade/modules/system/entity/Dept.java                    |    6 ++
 src/main/java/org/springblade/modules/system/service/IDeptService.java           |    5 +
 src/main/java/org/springblade/modules/system/controller/RegionController.java    |    3 
 src/main/java/org/springblade/modules/police/entity/PoliceStationEntity.java     |   19 +++++-
 src/main/java/org/springblade/modules/system/service/impl/RegionServiceImpl.java |   11 +++
 12 files changed, 165 insertions(+), 12 deletions(-)

diff --git a/src/main/java/org/springblade/modules/police/entity/PoliceAffairsGridEntity.java b/src/main/java/org/springblade/modules/police/entity/PoliceAffairsGridEntity.java
index f4c65f7..bd39c48 100644
--- a/src/main/java/org/springblade/modules/police/entity/PoliceAffairsGridEntity.java
+++ b/src/main/java/org/springblade/modules/police/entity/PoliceAffairsGridEntity.java
@@ -30,8 +30,8 @@
 	 */
 	@JsonSerialize(using = ToStringSerializer.class)
 	@ApiModelProperty("主键id")
-	@TableId(value = "id", type = IdType.AUTO)
-	private Integer id;
+	@TableId(value = "id", type = IdType.ASSIGN_ID)
+	private Long id;
 	/**
 	 * 警务网格编号
 	 */
diff --git a/src/main/java/org/springblade/modules/police/entity/PoliceStationEntity.java b/src/main/java/org/springblade/modules/police/entity/PoliceStationEntity.java
index 51f293d..d41f523 100644
--- a/src/main/java/org/springblade/modules/police/entity/PoliceStationEntity.java
+++ b/src/main/java/org/springblade/modules/police/entity/PoliceStationEntity.java
@@ -34,15 +34,20 @@
 	private Integer id;
 
 	/**
-	 * 派出所编号
+	 * 编号
 	 */
-	@ApiModelProperty(value = "派出所编号")
+	@ApiModelProperty(value = "编号")
 	private String code;
 	/**
-	 * 派出所名称
+	 * 名称
 	 */
-	@ApiModelProperty(value = "派出所名称")
+	@ApiModelProperty(value = "名称")
 	private String name;
+	/**
+	 * 父级编号
+	 */
+	@ApiModelProperty(value = "父级编号")
+	private String parentCode;
 	/*
 	 * 辖区面数据
 	 * @TableField(typeHandler = GeometryTypeHandler.class) 操作面的时候用,平时注释掉
@@ -57,6 +62,12 @@
 	private Integer sort;
 
 	/**
+	 * 层级
+	 */
+	@ApiModelProperty(value = "层级")
+	private Integer level;
+
+	/**
 	 * 创建人
 	 */
 	@JsonSerialize(using = ToStringSerializer.class)
diff --git a/src/main/java/org/springblade/modules/system/controller/DeptController.java b/src/main/java/org/springblade/modules/system/controller/DeptController.java
index e9335f6..a23c600 100644
--- a/src/main/java/org/springblade/modules/system/controller/DeptController.java
+++ b/src/main/java/org/springblade/modules/system/controller/DeptController.java
@@ -228,8 +228,13 @@
 		return R.data(deptService.getDeptAndUserTree(treeNode));
 	}
 
-
-
+	/**
+	 * 数据处理(社区绑定)-- 处理社区(派出所下)
+	 */
+	@GetMapping("/dataHandleCommunityByPolice")
+	public R dataHandleCommunityByPolice() {
+		return R.data(deptService.dataHandleCommunityByPolice());
+	}
 
 
 
diff --git a/src/main/java/org/springblade/modules/system/controller/RegionController.java b/src/main/java/org/springblade/modules/system/controller/RegionController.java
index 58d1a92..2f3eda8 100644
--- a/src/main/java/org/springblade/modules/system/controller/RegionController.java
+++ b/src/main/java/org/springblade/modules/system/controller/RegionController.java
@@ -35,6 +35,7 @@
 import org.springblade.modules.system.excel.RegionExcel;
 import org.springblade.modules.system.excel.RegionImporter;
 import org.springblade.modules.system.service.IRegionService;
+import org.springblade.modules.system.vo.RegionParamVO;
 import org.springblade.modules.system.vo.RegionVO;
 import org.springblade.modules.system.wrapper.RegionWrapper;
 import org.springframework.web.bind.annotation.*;
@@ -131,7 +132,7 @@
 	 */
 	@GetMapping("/tree")
 	@ApiOperation(value = "树列表", notes = "传入menu")
-	public R getTree(RegionVO region) {
+	public R getTree(RegionParamVO region) {
 		return R.data(regionService.getTree(region));
 	}
 
diff --git a/src/main/java/org/springblade/modules/system/entity/Dept.java b/src/main/java/org/springblade/modules/system/entity/Dept.java
index a70149d..12a326e 100644
--- a/src/main/java/org/springblade/modules/system/entity/Dept.java
+++ b/src/main/java/org/springblade/modules/system/entity/Dept.java
@@ -86,6 +86,12 @@
 	private Integer deptCategory;
 
 	/**
+	 * 机构性质  1:公安  2:非公安
+	 */
+	@ApiModelProperty(value = "机构性质  1:公安  2:非公安")
+	private Integer deptNature;
+
+	/**
 	 * 管辖区域编号
 	 */
 	@ApiModelProperty(value = "管辖区域编号")
diff --git a/src/main/java/org/springblade/modules/system/mapper/RegionMapper.java b/src/main/java/org/springblade/modules/system/mapper/RegionMapper.java
index f238f50..eb0f7a0 100644
--- a/src/main/java/org/springblade/modules/system/mapper/RegionMapper.java
+++ b/src/main/java/org/springblade/modules/system/mapper/RegionMapper.java
@@ -23,6 +23,7 @@
 import org.springblade.common.node.TreeStringNode;
 import org.springblade.modules.system.entity.Region;
 import org.springblade.modules.system.excel.RegionExcel;
+import org.springblade.modules.system.vo.RegionParamVO;
 import org.springblade.modules.system.vo.RegionVO;
 
 import java.util.List;
@@ -67,7 +68,7 @@
 	 * @return
 	 */
 	@MapKey(value = "id")
-    Map<String, TreeStringNode> getTreeList(@Param("region") RegionVO region,
+    Map<String, TreeStringNode> getTreeList(@Param("region") RegionParamVO region,
 											@Param("regionChildCodesList") List<String> regionChildCodesList,
 											@Param("isAdministrator") Integer isAdministrator);
 
@@ -98,4 +99,11 @@
 	 * @return
 	 */
     List<Region> getRegionChildList(@Param("regionCode") String regionCode);
+
+	/**
+	 * 查询公安对应的辖区树
+	 * @return
+	 */
+	@MapKey(value = "id")
+	Map<String, TreeStringNode> getPoliceTreeList();
 }
diff --git a/src/main/java/org/springblade/modules/system/mapper/RegionMapper.xml b/src/main/java/org/springblade/modules/system/mapper/RegionMapper.xml
index 1c437c4..8cbf376 100644
--- a/src/main/java/org/springblade/modules/system/mapper/RegionMapper.xml
+++ b/src/main/java/org/springblade/modules/system/mapper/RegionMapper.xml
@@ -248,4 +248,22 @@
         )
     </select>
 
+
+    <!--查询公安对应的辖区树-->
+    <select id="getPoliceTreeList" resultType="org.springblade.common.node.TreeStringNode">
+        SELECT
+            CODE AS id,
+            parent_code AS parentId,
+            NAME
+        FROM jczz_police_station
+        WHERE is_deleted = 0
+        UNION ALL
+        SELECT
+            jw_grid_code AS id,
+            pcs_code AS parentId,
+            community_name AS NAME
+        FROM jczz_police_affairs_grid
+        WHERE is_deleted = 0  AND pcs_code IS NOT NULL
+    </select>
+
 </mapper>
diff --git a/src/main/java/org/springblade/modules/system/service/IDeptService.java b/src/main/java/org/springblade/modules/system/service/IDeptService.java
index 4872d74..ec2f554 100644
--- a/src/main/java/org/springblade/modules/system/service/IDeptService.java
+++ b/src/main/java/org/springblade/modules/system/service/IDeptService.java
@@ -141,4 +141,9 @@
 	Object dataHandleCommunity();
 
 	List<DeptUserTreeNode> getDeptAndUserTree(DeptUserTreeNode treeNode);
+
+	/**
+	 * 数据处理(社区绑定)-- 处理社区(派出所下)
+	 */
+    Object dataHandleCommunityByPolice();
 }
diff --git a/src/main/java/org/springblade/modules/system/service/IRegionService.java b/src/main/java/org/springblade/modules/system/service/IRegionService.java
index cc25d59..d3eaf5a 100644
--- a/src/main/java/org/springblade/modules/system/service/IRegionService.java
+++ b/src/main/java/org/springblade/modules/system/service/IRegionService.java
@@ -22,6 +22,7 @@
 import org.springblade.common.node.TreeStringNode;
 import org.springblade.modules.system.entity.Region;
 import org.springblade.modules.system.excel.RegionExcel;
+import org.springblade.modules.system.vo.RegionParamVO;
 import org.springblade.modules.system.vo.RegionVO;
 
 import java.util.List;
@@ -90,7 +91,7 @@
 	 * @param region
 	 * @return
 	 */
-	List<TreeStringNode> getTree(RegionVO region);
+	List<TreeStringNode> getTree(RegionParamVO region);
 
 	/**
 	 * 树列表(获取当前树)
diff --git a/src/main/java/org/springblade/modules/system/service/impl/DeptServiceImpl.java b/src/main/java/org/springblade/modules/system/service/impl/DeptServiceImpl.java
index 90bdf3c..9e51e45 100644
--- a/src/main/java/org/springblade/modules/system/service/impl/DeptServiceImpl.java
+++ b/src/main/java/org/springblade/modules/system/service/impl/DeptServiceImpl.java
@@ -36,6 +36,8 @@
 import org.springblade.modules.community.service.ICommunityService;
 import org.springblade.modules.grid.entity.GridEntity;
 import org.springblade.modules.grid.service.IGridService;
+import org.springblade.modules.police.entity.PoliceAffairsGridEntity;
+import org.springblade.modules.police.service.IPoliceAffairsGridService;
 import org.springblade.modules.property.entity.PropertyCompanyEntity;
 import org.springblade.modules.property.service.IPropertyCompanyService;
 import org.springblade.modules.system.entity.Dept;
@@ -413,4 +415,39 @@
 		// 处理并返回
 		return deptAndUserNodeTree;
 	}
+
+	/**
+	 * 数据处理(社区绑定)-- 处理社区(派出所下)
+	 */
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	public Object dataHandleCommunityByPolice() {
+		// 查询所有的派出所
+		QueryWrapper<Dept> wrapper = new QueryWrapper<>();
+		wrapper.eq("is_deleted",0).like("dept_name","派出所");
+		List<Dept> list = list(wrapper);
+		// 遍历
+		for (Dept dept : list) {
+			// 通过派出所名称查询对应的警务网格信息
+			QueryWrapper<PoliceAffairsGridEntity> queryWrapper = new QueryWrapper<>();
+			queryWrapper.eq("is_deleted",0).eq("pcs_name",dept.getDeptName());
+			List<PoliceAffairsGridEntity> policeAffairsGridEntityList
+				= SpringUtil.getBean(IPoliceAffairsGridService.class).list(queryWrapper);
+			// 遍历
+			for (PoliceAffairsGridEntity policeAffairsGridEntity : policeAffairsGridEntityList) {
+				Dept deptInfo = new Dept();
+				deptInfo.setTenantId("000000");
+				deptInfo.setDeptName(policeAffairsGridEntity.getCommunityName());
+				deptInfo.setFullName(policeAffairsGridEntity.getCommunityName());
+				deptInfo.setDeptCategory(1);
+				deptInfo.setDeptNature(1);
+				deptInfo.setParentId(dept.getId());
+				deptInfo.setAncestors(dept.getAncestors() + "," + dept.getId());
+				deptInfo.setRegionCode(policeAffairsGridEntity.getJwGridCode());
+				// 保存
+				save(deptInfo);
+			}
+		}
+		return null;
+	}
 }
diff --git a/src/main/java/org/springblade/modules/system/service/impl/RegionServiceImpl.java b/src/main/java/org/springblade/modules/system/service/impl/RegionServiceImpl.java
index dd2e9cb..938b5ce 100644
--- a/src/main/java/org/springblade/modules/system/service/impl/RegionServiceImpl.java
+++ b/src/main/java/org/springblade/modules/system/service/impl/RegionServiceImpl.java
@@ -35,6 +35,7 @@
 import org.springblade.modules.system.mapper.RegionMapper;
 import org.springblade.modules.system.service.IDeptService;
 import org.springblade.modules.system.service.IRegionService;
+import org.springblade.modules.system.vo.RegionParamVO;
 import org.springblade.modules.system.vo.RegionVO;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -136,9 +137,17 @@
 	 * @return
 	 */
 	@Override
-	public List<TreeStringNode> getTree(RegionVO region) {
+	public List<TreeStringNode> getTree(RegionParamVO region) {
 		List<String> regionChildCodesList = SysCache.getRegionChildCodesByDeptId(AuthUtil.getDeptId());
 		Integer isAdministrator = AuthUtil.isAdministrator()==true?1:2;
+		if (null!=region.getDeptNature()){
+			// 公安
+			if (region.getDeptNature()==1){
+				// 查询公安对应的辖区树
+				return NodeTreeUtil.getStringNodeTree(baseMapper.getPoliceTreeList());
+			}
+		}
+		// 非公安
 		return NodeTreeUtil.getStringNodeTree(baseMapper.getTreeList(region,regionChildCodesList,isAdministrator));
 	}
 
diff --git a/src/main/java/org/springblade/modules/system/vo/RegionParamVO.java b/src/main/java/org/springblade/modules/system/vo/RegionParamVO.java
new file mode 100644
index 0000000..9eee04c
--- /dev/null
+++ b/src/main/java/org/springblade/modules/system/vo/RegionParamVO.java
@@ -0,0 +1,52 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package org.springblade.modules.system.vo;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springblade.core.tool.node.INode;
+import org.springblade.core.tool.utils.Func;
+import org.springblade.modules.system.entity.Region;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 行政区划表视图实体类
+ *
+ * @author Chill
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ApiModel(value = "RegionVO对象", description = "行政区划表")
+public class RegionParamVO extends Region{
+	private static final long serialVersionUID = 1L;
+
+	private String regionCode;
+
+	private List<Map<String, Object>> nineTypeStatistics;
+
+	/**
+	 * 机构行政类型 1:公安  2:非公安
+	 */
+	private Integer deptNature;
+}

--
Gitblit v1.9.3