dylan пре 3 година
родитељ
комит
a14697f04a
100 измењених фајлова са 3832 додато и 285 уклоњено
  1. 11 1
      src/main/java/org/springblade/constant/BusinessConstant.java
  2. 5 0
      src/main/java/org/springblade/constant/MyAppConstant.java
  3. 80 0
      src/main/java/org/springblade/etl/EtlMvAttStBaseDataTask.java
  4. 13 1
      src/main/java/org/springblade/etl/EtlTaskManager.java
  5. 51 0
      src/main/java/org/springblade/etl/entity/EtlAdCdEntity.java
  6. 40 0
      src/main/java/org/springblade/etl/entity/EtlMvAttStBaseEntity.java
  7. 27 0
      src/main/java/org/springblade/etl/mapper/EtlAdCdMapper.java
  8. 27 0
      src/main/java/org/springblade/etl/mapper/EtlAdCdMapper.xml
  9. 27 0
      src/main/java/org/springblade/etl/mapper/EtlMvAttStBaseMapper.java
  10. 23 0
      src/main/java/org/springblade/etl/mapper/EtlMvAttStBaseMapper.xml
  11. 27 0
      src/main/java/org/springblade/etl/service/IEtlAdCdService.java
  12. 26 0
      src/main/java/org/springblade/etl/service/IEtlMvAttStBaseService.java
  13. 36 0
      src/main/java/org/springblade/etl/service/impl/EtlAdCdServiceImpl.java
  14. 37 0
      src/main/java/org/springblade/etl/service/impl/EtlMvAttStBaseServiceImpl.java
  15. 90 0
      src/main/java/org/springblade/modules/baseinfo/org/controller/BaseInfoOrgController.java
  16. 63 0
      src/main/java/org/springblade/modules/baseinfo/org/entity/OrgInfoEntity.java
  17. 23 0
      src/main/java/org/springblade/modules/baseinfo/org/mapper/OrgInfoMapper.java
  18. 16 0
      src/main/java/org/springblade/modules/baseinfo/org/mapper/OrgInfoMapper.xml
  19. 22 0
      src/main/java/org/springblade/modules/baseinfo/org/service/IBaseInfoOrgService.java
  20. 26 0
      src/main/java/org/springblade/modules/baseinfo/org/service/impl/BaseInfoOrgServiceImpl.java
  21. 32 0
      src/main/java/org/springblade/modules/baseinfo/org/vo/OrgInfoVO.java
  22. 46 0
      src/main/java/org/springblade/modules/baseinfo/org/wrapper/OrgInfoWrapper.java
  23. 502 0
      src/main/java/org/springblade/modules/baseinfo/region/controller/BaseInfoRegionController.java
  24. 51 0
      src/main/java/org/springblade/modules/baseinfo/region/dto/RegionInfoDTO.java
  25. 82 0
      src/main/java/org/springblade/modules/baseinfo/region/entity/OrgRegionInfoEntity.java
  26. 63 0
      src/main/java/org/springblade/modules/baseinfo/region/entity/RegionInfoEntity.java
  27. 49 0
      src/main/java/org/springblade/modules/baseinfo/region/entity/RegionTreeNodeEntity.java
  28. 23 0
      src/main/java/org/springblade/modules/baseinfo/region/mapper/OrgRegionInfoMapper.java
  29. 42 0
      src/main/java/org/springblade/modules/baseinfo/region/mapper/OrgRegionInfoMapper.xml
  30. 29 0
      src/main/java/org/springblade/modules/baseinfo/region/mapper/RegionInfoMapper.java
  31. 23 0
      src/main/java/org/springblade/modules/baseinfo/region/mapper/RegionInfoMapper.xml
  32. 26 0
      src/main/java/org/springblade/modules/baseinfo/region/service/IBaseInfoRegionService.java
  33. 22 0
      src/main/java/org/springblade/modules/baseinfo/region/service/IOrgRegionInfoService.java
  34. 26 0
      src/main/java/org/springblade/modules/baseinfo/region/service/impl/BaseInfoRegionServiceImpl.java
  35. 31 0
      src/main/java/org/springblade/modules/baseinfo/region/service/impl/OrgRegionInfoServiceImpl.java
  36. 67 0
      src/main/java/org/springblade/modules/baseinfo/region/vo/RegionInfoVO.java
  37. 60 0
      src/main/java/org/springblade/modules/baseinfo/region/wrapper/RegionInfoNodeWrapper.java
  38. 65 0
      src/main/java/org/springblade/modules/baseinfo/region/wrapper/RegionInfoWrapper.java
  39. 40 0
      src/main/java/org/springblade/modules/baseinfo/stbase/entity/MvAttStBaseEntity.java
  40. 24 0
      src/main/java/org/springblade/modules/baseinfo/stbase/service/IMvAttStBaseService.java
  41. 31 0
      src/main/java/org/springblade/modules/baseinfo/stbase/service/impl/MvAttStBaseServiceImpl.java
  42. 97 27
      src/main/java/org/springblade/modules/business/check/order/controller/RtuCheckOrderController.java
  43. 6 0
      src/main/java/org/springblade/modules/business/check/order/dto/CheckOrderInfoDTO.java
  44. 2 2
      src/main/java/org/springblade/modules/business/check/order/entity/CheckOrderInfoEntity.java
  45. 15 10
      src/main/java/org/springblade/modules/business/check/order/mapper/RtuCheckOrderMapper.xml
  46. 88 0
      src/main/java/org/springblade/modules/business/check/order/vo/CheckOrderInfoVO.java
  47. 48 2
      src/main/java/org/springblade/modules/business/check/order/wrapper/RtuCheckOrderWrapper.java
  48. 19 7
      src/main/java/org/springblade/modules/business/check/process/controller/RtuOrderProcessController.java
  49. 2 10
      src/main/java/org/springblade/modules/business/check/process/entity/OrderProcessInfoEntity.java
  50. 1 1
      src/main/java/org/springblade/modules/business/check/process/mapper/RtuOrderProcessMapper.java
  51. 3 3
      src/main/java/org/springblade/modules/business/check/process/mapper/RtuOrderProcessMapper.xml
  52. 1 1
      src/main/java/org/springblade/modules/business/check/process/service/IRtuOrderProcessService.java
  53. 1 1
      src/main/java/org/springblade/modules/business/check/process/service/impl/RtuOrderProcessServiceImpl.java
  54. 9 1
      src/main/java/org/springblade/modules/business/check/process/wrapper/RtuOrderProcessWrapper.java
  55. 672 39
      src/main/java/org/springblade/modules/business/data/manage/controller/DataManageController.java
  56. 240 0
      src/main/java/org/springblade/modules/business/data/manage/deptCache/DeptCacheTaskManager.java
  57. 69 0
      src/main/java/org/springblade/modules/business/data/manage/entity/RtuImportRecordEntity.java
  58. 28 0
      src/main/java/org/springblade/modules/business/data/manage/mapper/RtuImportRecordMapper.java
  59. 21 0
      src/main/java/org/springblade/modules/business/data/manage/mapper/RtuImportRecordMapper.xml
  60. 32 0
      src/main/java/org/springblade/modules/business/data/manage/service/IRtuImportRecordService.java
  61. 42 0
      src/main/java/org/springblade/modules/business/data/manage/service/impl/RtuImportRecordServiceImpl.java
  62. 1 1
      src/main/java/org/springblade/modules/business/desk/controller/NoticeController.java
  63. 1 1
      src/main/java/org/springblade/modules/business/equipment/inspection/base/controller/EquipmentInspectionController.java
  64. 7 10
      src/main/java/org/springblade/modules/business/equipment/inspection/plan/controller/EquipmentInspectionPlanController.java
  65. 7 0
      src/main/java/org/springblade/modules/business/equipment/inspection/plan/dto/EquipmentInspectionRtuDTO.java
  66. 8 5
      src/main/java/org/springblade/modules/business/equipment/inspection/plan/mapper/EquipmentInspectionPlanRtuMapper.xml
  67. 23 3
      src/main/java/org/springblade/modules/business/equipment/inspection/report/controller/EquipmentInspectionReportController.java
  68. 6 0
      src/main/java/org/springblade/modules/business/equipment/inspection/report/dto/EquipmentInspectionReportDTO.java
  69. 27 0
      src/main/java/org/springblade/modules/business/equipment/inspection/report/entity/EquipmentInspectionReportEntity.java
  70. 20 23
      src/main/java/org/springblade/modules/business/equipment/inspection/report/mapper/EquipmentInspectionReportMapper.xml
  71. 25 0
      src/main/java/org/springblade/modules/business/equipment/inspection/report/vo/EquipmentInspectionReportVO.java
  72. 10 0
      src/main/java/org/springblade/modules/business/equipment/inspection/report/wrapper/EquipmentInspectionReportWrapper.java
  73. 1 1
      src/main/java/org/springblade/modules/business/project/base/controller/ProjectBaseInfoController.java
  74. 41 42
      src/main/java/org/springblade/modules/business/project/servicePerson/controller/ProjectServicePersonController.java
  75. 1 1
      src/main/java/org/springblade/modules/business/project/servicePerson/entity/ServicePersonEntity.java
  76. 3 1
      src/main/java/org/springblade/modules/business/project/servicePerson/mapper/ProjectServicePersonMapper.java
  77. 41 9
      src/main/java/org/springblade/modules/business/project/servicePerson/mapper/ProjectServicePersonMapper.xml
  78. 4 1
      src/main/java/org/springblade/modules/business/project/servicePerson/service/IProjectServicePersonService.java
  79. 9 2
      src/main/java/org/springblade/modules/business/project/servicePerson/service/impl/ProjectServicePersonServiceImpl.java
  80. 6 0
      src/main/java/org/springblade/modules/business/project/servicePerson/vo/ServicePersonVO.java
  81. 2 2
      src/main/java/org/springblade/modules/business/rtu/base/controller/RtuBaseInfoController.java
  82. 3 0
      src/main/java/org/springblade/modules/business/rtu/base/dto/RtuInfoDTO.java
  83. 2 0
      src/main/java/org/springblade/modules/business/rtu/base/mapper/RtuInfoMapper.java
  84. 29 6
      src/main/java/org/springblade/modules/business/rtu/base/mapper/RtuInfoMapper.xml
  85. 3 0
      src/main/java/org/springblade/modules/business/rtu/base/service/IRtuBaseInfoService.java
  86. 5 0
      src/main/java/org/springblade/modules/business/rtu/base/service/impl/RtuBaseInfoServiceImpl.java
  87. 0 1
      src/main/java/org/springblade/modules/business/rtu/base/vo/RtuInfoVO.java
  88. 16 10
      src/main/java/org/springblade/modules/business/rtu/data/controller/RtuDataGroundController.java
  89. 15 10
      src/main/java/org/springblade/modules/business/rtu/data/controller/RtuDataRainController.java
  90. 15 10
      src/main/java/org/springblade/modules/business/rtu/data/controller/RtuDataRiverController.java
  91. 15 10
      src/main/java/org/springblade/modules/business/rtu/data/controller/RtuDataRsvrController.java
  92. 7 0
      src/main/java/org/springblade/modules/business/rtu/data/dto/RtuDataGroundDTO.java
  93. 6 0
      src/main/java/org/springblade/modules/business/rtu/data/dto/RtuDataRainDTO.java
  94. 6 0
      src/main/java/org/springblade/modules/business/rtu/data/dto/RtuDataRiverDTO.java
  95. 6 0
      src/main/java/org/springblade/modules/business/rtu/data/dto/RtuDataRsvrDTO.java
  96. 11 7
      src/main/java/org/springblade/modules/business/rtu/data/mapper/RtuDataGroundMapper.xml
  97. 10 7
      src/main/java/org/springblade/modules/business/rtu/data/mapper/RtuDataRainMapper.xml
  98. 11 7
      src/main/java/org/springblade/modules/business/rtu/data/mapper/RtuDataRiverMapper.xml
  99. 11 9
      src/main/java/org/springblade/modules/business/rtu/data/mapper/RtuDataRsvrMapper.xml
  100. 18 0
      src/main/java/org/springblade/modules/business/rtu/data/vo/RtuDataGroundVO.java

+ 11 - 1
src/main/java/org/springblade/constant/BusinessConstant.java

@@ -18,7 +18,6 @@ package org.springblade.constant;
 public class BusinessConstant {
 	public static final  String ROLE_SUPER_ADMIN ="administrator";
 
-
 	public static final  String ROLE_ADMIN ="admin";
 
 	public static final  String ROLE_ORG_ADMIN ="org_admin";
@@ -26,4 +25,15 @@ public class BusinessConstant {
 	public static final  String ROLE_ORG_SERVICE_PERSON ="org_servcie_person";
 
 	public static final  String ROLE_ORG_SERVICE_PERSON_ID ="1123598816738675205";
+
+	public static final  String SERVICE_PERSON_POST_ID ="1562994107637354498";
+
+	public static final String ACCOUNT_PW_SUFFIX="@2022";
+
+	public static final Long ORG_ADMIN_ID=1123598813738675201L;
+
+	public static final String DEPT_NM_ADCODE="150000000000000";
+
+
+
 }

+ 5 - 0
src/main/java/org/springblade/constant/MyAppConstant.java

@@ -0,0 +1,5 @@
+package org.springblade.constant;
+
+public interface MyAppConstant {
+	String APPLICATION_BUSINESS_NAME="galaxy-business";
+}

+ 80 - 0
src/main/java/org/springblade/etl/EtlMvAttStBaseDataTask.java

@@ -0,0 +1,80 @@
+/**
+ * Copyright
+ * All right reserved.
+ * 项目名称:
+ * 创建日期:2022/5/22
+ */
+package org.springblade.etl;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import lombok.extern.slf4j.Slf4j;
+import org.springblade.core.tool.utils.ConcurrentDateFormat;
+import org.springblade.core.tool.utils.Func;
+import org.springblade.etl.entity.EtlMvAttStBaseEntity;
+import org.springblade.etl.entity.EtlRainDataEntity;
+import org.springblade.etl.service.IEtlMvAttStBaseService;
+import org.springblade.etl.service.IEtlRainDataService;
+import org.springblade.modules.baseinfo.stbase.entity.MvAttStBaseEntity;
+import org.springblade.modules.baseinfo.stbase.service.IMvAttStBaseService;
+import org.springblade.modules.business.rtu.data.entity.RtuDataRainEntity;
+import org.springblade.modules.business.rtu.data.service.IRtuDataRainService;
+import org.springframework.data.redis.core.HashOperations;
+import org.springframework.data.redis.core.RedisTemplate;
+
+import java.util.Date;
+import java.util.List;
+import java.util.concurrent.Callable;
+
+/***
+ * Date:2022/5/22
+ * Title: 环境辐射与气象监测系统(KRS) 模块
+ * Description:MODBUS TCP 协议传输 ,读取任务
+ * @author swp
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+@Slf4j
+public class EtlMvAttStBaseDataTask implements Callable<Integer> {
+
+	private IEtlMvAttStBaseService etlMvAttStBaseService;
+	private IMvAttStBaseService mvAttStBaseService;
+
+	EtlMvAttStBaseDataTask(IEtlMvAttStBaseService etlMvAttStBaseService, IMvAttStBaseService mvAttStBaseService) {
+		this.etlMvAttStBaseService = etlMvAttStBaseService;
+		this.mvAttStBaseService = mvAttStBaseService;
+	}
+
+	@Override
+	public Integer call() {
+		try {
+
+			List<EtlMvAttStBaseEntity> list = etlMvAttStBaseService.selectList();
+			if (list != null && list.size() > 0) {
+				for (int i = 0; i < list.size(); i++) {
+					EtlMvAttStBaseEntity entity = list.get(i);
+					LambdaQueryWrapper<MvAttStBaseEntity> dataWrapper = Wrappers.<MvAttStBaseEntity>query().lambda();
+					dataWrapper.eq(MvAttStBaseEntity::getStCode, entity.getStCode());
+					MvAttStBaseEntity baseEntity = mvAttStBaseService.getOne(dataWrapper);
+					if (null == baseEntity) {
+						baseEntity = new MvAttStBaseEntity();
+						baseEntity.setCreateTime(new Date());
+						baseEntity.setStatus(1);
+						baseEntity.setIsDeleted(0);
+					}
+					baseEntity.setStCode(entity.getStCode());
+					baseEntity.setStName(entity.getStName());
+					baseEntity.setAdCode(entity.getAdCode());
+					baseEntity.setAdName(entity.getAdName());
+					baseEntity.setUpdateTime(new Date());
+
+					mvAttStBaseService.saveOrUpdate(baseEntity);
+				}
+			}
+		} catch (Exception e) {
+			log.error("实时数据统计任务异常 {}", e.getMessage());
+		}
+		return 0;
+	}
+}

+ 13 - 1
src/main/java/org/springblade/etl/EtlTaskManager.java

@@ -10,6 +10,7 @@ package org.springblade.etl;
 import lombok.extern.slf4j.Slf4j;
 import org.glassfish.jersey.internal.guava.ThreadFactoryBuilder;
 import org.springblade.etl.service.*;
+import org.springblade.modules.baseinfo.stbase.service.IMvAttStBaseService;
 import org.springblade.modules.business.project.base.service.IProjectBaseInfoService;
 import org.springblade.modules.business.rtu.base.service.IRtuBaseInfoService;
 import org.springblade.modules.business.rtu.data.service.IRtuDataGroundService;
@@ -105,10 +106,21 @@ public class EtlTaskManager {
 	@Resource
 	private IEtlGroundDataService etlGroundDataService;
 
+	@Resource
+	private IEtlMvAttStBaseService etlMvAttStBaseService;
+
+	@Resource
+	private IMvAttStBaseService mvAttStBaseService;
+
 
-	@Scheduled(cron = "0 0/5 * * * * ")
+	@Scheduled(cron = "0 0/1 * * * * ")
 	public void warnTask() {
 		try {
+//			EtlMvAttStBaseDataTask task = new EtlMvAttStBaseDataTask(etlMvAttStBaseService, mvAttStBaseService);
+//			FutureTask<Integer> futureTask = new FutureTask<>(task);
+//			publicThreadPool.execute(futureTask);
+
+
 //			EtlRainDataTask task = new EtlRainDataTask(redisTemplate, etlRainDataService, dataRainService);
 //			FutureTask<Integer> futureTask = new FutureTask<>(task);
 //			publicThreadPool.execute(futureTask);

+ 51 - 0
src/main/java/org/springblade/etl/entity/EtlAdCdEntity.java

@@ -0,0 +1,51 @@
+/**
+ * Copyright 2019 DH
+ * All right reserved.
+ * 项目名称: 大恒泰山系统
+ * 创建日期:2022/9/8
+ */
+package org.springblade.etl.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springblade.core.mp.base.BaseEntity;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+/***
+ * Date:2022/9/8
+ * Title:文件所属模块(必须填写)
+ * Description:对本文件的详细描述,原则上不能少于30字
+ * @author dylan
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("etl_ad_cd_b")
+public class EtlAdCdEntity extends BaseEntity {
+	private static final long serialVersionUID = 1L;
+
+	@ApiModelProperty("编码")
+	private String adcd;
+
+	@ApiModelProperty("行政区划名称")
+	private String adnm;
+
+	@ApiModelProperty("经度")
+	private String lgtd;
+
+	@ApiModelProperty("纬度")
+	private String lttd;
+
+	@ApiModelProperty("上级行政区划代码")
+	private String superioradcd;
+
+	@ApiModelProperty("政区类型")
+	private String addtype;
+
+}

+ 40 - 0
src/main/java/org/springblade/etl/entity/EtlMvAttStBaseEntity.java

@@ -0,0 +1,40 @@
+/**
+ * Copyright 2019 DH
+ * All right reserved.
+ * 项目名称: 大恒泰山系统
+ * 创建日期:2022/9/8
+ */
+package org.springblade.etl.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springblade.core.mp.base.BaseEntity;
+
+/***
+ * Date:2022/9/8
+ * Title:文件所属模块(必须填写)
+ * Description:对本文件的详细描述,原则上不能少于30字
+ * @author dylan
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("etl_mv_att_st_base")
+public class EtlMvAttStBaseEntity extends BaseEntity {
+	private static final long serialVersionUID = 1L;
+
+	@ApiModelProperty("测站编码")
+	private String stCode;
+
+	@ApiModelProperty("测站名称")
+	private String stName;
+
+	@ApiModelProperty("行政区划代码")
+	private String adCode;
+
+	@ApiModelProperty("行政区划名称")
+	private String adName;
+}

+ 27 - 0
src/main/java/org/springblade/etl/mapper/EtlAdCdMapper.java

@@ -0,0 +1,27 @@
+/**
+ * Copyright 2019 DH
+ * All right reserved.
+ * 项目名称: 大恒泰山系统
+ * 创建日期:2022/8/24
+ */
+package org.springblade.etl.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+import org.springblade.etl.entity.EtlAdCdEntity;
+import org.springblade.etl.entity.EtlGroundDataEntity;
+
+import java.util.List;
+
+
+/***
+ * Date:2022/8/24
+ * Title:文件所属模块(必须填写)
+ * Description:对本文件的详细描述,原则上不能少于30字
+ * @author dylan
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+public interface EtlAdCdMapper extends BaseMapper<EtlAdCdEntity> {
+	List<EtlAdCdEntity> selectList(@Param("parentCode") String parentCode);
+}

+ 27 - 0
src/main/java/org/springblade/etl/mapper/EtlAdCdMapper.xml

@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="org.springblade.etl.mapper.EtlAdCdMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="adcdEntityResultMap" type="org.springblade.etl.entity.EtlAdCdEntity">
+        <result column="ADCD" property="adcd"/>
+        <result column="ADNM" property="adnm"/>
+        <result column="LGTD" property="lgtd"/>
+        <result column="LTTD" property="lttd"/>
+        <result column="SUPERIORADCD" property="superioradcd"/>
+        <result column="ADDTYPE" property="addtype"/>
+
+    </resultMap>
+
+    <select id="selectList" resultMap="adcdEntityResultMap">
+        SELECT
+        d.*
+        FROM
+        etl_ad_cd_b d
+        WHERE 1=1
+        <if test="parentCode!=null">
+            and d.SUPERIORADCD = #{parentCode}
+        </if>
+
+    </select>
+</mapper>

+ 27 - 0
src/main/java/org/springblade/etl/mapper/EtlMvAttStBaseMapper.java

@@ -0,0 +1,27 @@
+/**
+ * Copyright 2019 DH
+ * All right reserved.
+ * 项目名称: 大恒泰山系统
+ * 创建日期:2022/8/24
+ */
+package org.springblade.etl.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+import org.springblade.etl.entity.EtlAdCdEntity;
+import org.springblade.etl.entity.EtlMvAttStBaseEntity;
+
+import java.util.List;
+
+
+/***
+ * Date:2022/8/24
+ * Title:文件所属模块(必须填写)
+ * Description:对本文件的详细描述,原则上不能少于30字
+ * @author dylan
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+public interface EtlMvAttStBaseMapper extends BaseMapper<EtlMvAttStBaseEntity> {
+	List<EtlMvAttStBaseEntity> selectList();
+}

+ 23 - 0
src/main/java/org/springblade/etl/mapper/EtlMvAttStBaseMapper.xml

@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="org.springblade.etl.mapper.EtlMvAttStBaseMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="stBaseEntityResultMap" type="org.springblade.etl.entity.EtlMvAttStBaseEntity">
+        <result column="ST_CODE" property="stCode"/>
+        <result column="ST_NAME" property="stName"/>
+        <result column="AD_CODE" property="adCode"/>
+        <result column="AD_NAME" property="adName"/>
+
+    </resultMap>
+
+
+    <select id="selectList" resultMap="stBaseEntityResultMap">
+        SELECT
+        d.*
+        FROM
+        etl_mv_att_st_base d
+        WHERE 1=1
+        order  by d.ST_CODE
+    </select>
+</mapper>

+ 27 - 0
src/main/java/org/springblade/etl/service/IEtlAdCdService.java

@@ -0,0 +1,27 @@
+/**
+ * Copyright 2019 DH
+ * All right reserved.
+ * 项目名称: 大恒泰山系统
+ * 创建日期:2022/9/8
+ */
+package org.springblade.etl.service;
+
+import org.springblade.core.mp.base.BaseService;
+import org.springblade.etl.entity.EtlAdCdEntity;
+import org.springblade.etl.entity.EtlGroundDataEntity;
+import org.springblade.etl.entity.EtlWarningInfoEntity;
+
+import java.util.List;
+
+
+/***
+ * Date:2022/9/8
+ * Title:文件所属模块(必须填写)
+ * Description:对本文件的详细描述,原则上不能少于30字
+ * @author dylan
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+public interface IEtlAdCdService extends BaseService<EtlAdCdEntity> {
+	List<EtlAdCdEntity> selectList(String parentCode);
+}

+ 26 - 0
src/main/java/org/springblade/etl/service/IEtlMvAttStBaseService.java

@@ -0,0 +1,26 @@
+/**
+ * Copyright 2019 DH
+ * All right reserved.
+ * 项目名称: 大恒泰山系统
+ * 创建日期:2022/9/8
+ */
+package org.springblade.etl.service;
+
+import org.springblade.core.mp.base.BaseService;
+import org.springblade.etl.entity.EtlAdCdEntity;
+import org.springblade.etl.entity.EtlMvAttStBaseEntity;
+
+import java.util.List;
+
+
+/***
+ * Date:2022/9/8
+ * Title:文件所属模块(必须填写)
+ * Description:对本文件的详细描述,原则上不能少于30字
+ * @author dylan
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+public interface IEtlMvAttStBaseService extends BaseService<EtlMvAttStBaseEntity> {
+	List<EtlMvAttStBaseEntity> selectList();
+}

+ 36 - 0
src/main/java/org/springblade/etl/service/impl/EtlAdCdServiceImpl.java

@@ -0,0 +1,36 @@
+/**
+ * Copyright 2019 DH
+ * All right reserved.
+ * 项目名称: 大恒泰山系统
+ * 创建日期:2022/9/8
+ */
+package org.springblade.etl.service.impl;
+
+import org.springblade.core.mp.base.BaseServiceImpl;
+import org.springblade.etl.entity.EtlAdCdEntity;
+import org.springblade.etl.entity.EtlGroundDataEntity;
+import org.springblade.etl.mapper.EtlAdCdMapper;
+import org.springblade.etl.mapper.EtlGroundDataMapper;
+import org.springblade.etl.service.IEtlAdCdService;
+import org.springblade.etl.service.IEtlGroundDataService;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+
+/***
+ * Date:2022/9/8
+ * Title:文件所属模块(必须填写)
+ * Description:对本文件的详细描述,原则上不能少于30字
+ * @author dylan
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+@Service
+public class EtlAdCdServiceImpl extends BaseServiceImpl<EtlAdCdMapper, EtlAdCdEntity> implements IEtlAdCdService {
+
+	@Override
+	public List<EtlAdCdEntity> selectList(String parentCode) {
+		return baseMapper.selectList(parentCode);
+	}
+}

+ 37 - 0
src/main/java/org/springblade/etl/service/impl/EtlMvAttStBaseServiceImpl.java

@@ -0,0 +1,37 @@
+/**
+ * Copyright 2019 DH
+ * All right reserved.
+ * 项目名称: 大恒泰山系统
+ * 创建日期:2022/9/8
+ */
+package org.springblade.etl.service.impl;
+
+import org.springblade.core.mp.base.BaseServiceImpl;
+import org.springblade.etl.entity.EtlAdCdEntity;
+import org.springblade.etl.entity.EtlMvAttStBaseEntity;
+import org.springblade.etl.mapper.EtlAdCdMapper;
+import org.springblade.etl.mapper.EtlMvAttStBaseMapper;
+import org.springblade.etl.service.IEtlAdCdService;
+import org.springblade.etl.service.IEtlMvAttStBaseService;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+
+/***
+ * Date:2022/9/8
+ * Title:文件所属模块(必须填写)
+ * Description:对本文件的详细描述,原则上不能少于30字
+ * @author dylan
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+@Service
+public class EtlMvAttStBaseServiceImpl extends BaseServiceImpl<EtlMvAttStBaseMapper, EtlMvAttStBaseEntity> implements IEtlMvAttStBaseService {
+
+
+	@Override
+	public List<EtlMvAttStBaseEntity> selectList() {
+		return this.baseMapper.selectList();
+	}
+}

+ 90 - 0
src/main/java/org/springblade/modules/baseinfo/org/controller/BaseInfoOrgController.java

@@ -0,0 +1,90 @@
+/**
+ * Copyright 2019 DH
+ * All right reserved.
+ * 项目名称: 大恒泰山系统
+ * 创建日期:2022/8/22
+ */
+package org.springblade.modules.baseinfo.org.controller;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import io.swagger.annotations.*;
+import lombok.AllArgsConstructor;
+import org.springblade.constant.BusinessConstant;
+import org.springblade.core.boot.ctrl.BladeController;
+import org.springblade.core.launch.constant.AppConstant;
+import org.springblade.core.mp.support.Condition;
+import org.springblade.core.secure.BladeUser;
+import org.springblade.core.secure.utils.AuthUtil;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.Func;
+import org.springblade.etl.entity.EtlAdCdEntity;
+import org.springblade.etl.service.IEtlAdCdService;
+import org.springblade.modules.baseinfo.org.entity.OrgInfoEntity;
+import org.springblade.modules.baseinfo.org.service.IBaseInfoOrgService;
+import org.springblade.modules.baseinfo.org.vo.OrgInfoVO;
+import org.springblade.modules.baseinfo.org.wrapper.OrgInfoWrapper;
+import org.springblade.modules.baseinfo.region.dto.RegionInfoDTO;
+import org.springblade.modules.baseinfo.region.entity.RegionInfoEntity;
+import org.springblade.modules.baseinfo.region.entity.RegionTreeNodeEntity;
+import org.springblade.modules.baseinfo.region.service.IBaseInfoRegionService;
+import org.springblade.modules.baseinfo.region.vo.RegionInfoVO;
+import org.springblade.modules.baseinfo.region.wrapper.RegionInfoNodeWrapper;
+import org.springblade.modules.baseinfo.region.wrapper.RegionInfoWrapper;
+import org.springblade.modules.system.entity.Dept;
+import org.springblade.modules.system.service.IDeptService;
+import org.springblade.modules.system.service.IRegionService;
+import org.springblade.modules.system.vo.DeptVO;
+import org.springblade.modules.system.wrapper.DeptWrapper;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.LinkedList;
+import java.util.List;
+
+
+/***
+ * Date:2022/8/22
+ * Title:行政区划管理
+ * Description:对本文件的详细描述,原则上不能少于30字
+ * @author dylan
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+@RestController
+@RequestMapping("galaxy-business/baseinfo/org")
+@AllArgsConstructor
+@Api(value = "运维单位管理", tags = "运维单位管理")
+public class BaseInfoOrgController extends BladeController {
+	private final IBaseInfoOrgService orgService;
+	private final IDeptService deptService;
+
+
+	@GetMapping("/list")
+	@ApiOperationSupport(order = 2)
+	@ApiOperation(value = "不分页")
+	public R<List<OrgInfoVO>> list() {
+		BladeUser user = AuthUtil.getUser();
+		if (BusinessConstant.ROLE_ORG_ADMIN.equals(user.getRoleName()) || BusinessConstant.ROLE_ORG_SERVICE_PERSON.equals(user.getRoleName())) {
+
+			Dept dept = deptService.getById(Func.toLong(user.getDeptId()));
+			List<Dept> list = new LinkedList<>();
+			list.add(dept);
+			return R.data(OrgInfoWrapper.build().listVO(list));
+		} else {
+
+			LambdaQueryWrapper<Dept> queryWrapper = Wrappers.<Dept>query().lambda();
+			queryWrapper.eq(Dept::getIsDeleted, 0);
+			queryWrapper.eq(Dept::getParentId, BusinessConstant.ORG_ADMIN_ID);
+			List<Dept> list = deptService.list(queryWrapper);
+			return R.data(OrgInfoWrapper.build().listVO(list));
+		}
+
+
+	}
+
+
+
+
+}

+ 63 - 0
src/main/java/org/springblade/modules/baseinfo/org/entity/OrgInfoEntity.java

@@ -0,0 +1,63 @@
+/**
+ * Copyright
+ * All right reserved.
+ * 项目名称:
+ * 创建日期:2022/3/9
+ */
+package org.springblade.modules.baseinfo.org.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springblade.core.mp.base.BaseEntity;
+
+
+/**
+ * 运维单位实体
+ *
+ * @author swp
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("blade_dept")
+public class OrgInfoEntity extends BaseEntity {
+
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * 租户ID
+	 */
+	@ApiModelProperty("租户ID")
+	private String tenantId;
+
+	/**
+	 * 父主键
+	 */
+	@ApiModelProperty(value = "父主键")
+	private Long parentId;
+
+	/**
+	 * 祖级列表
+	 */
+	@ApiModelProperty(value = "祖级列表")
+	private String ancestors;
+
+	/**
+	 * 部门类型
+	 */
+	@ApiModelProperty(value = "部门类型")
+	private Integer deptCategory;
+
+	/**
+	 * 部门名
+	 */
+	@ApiModelProperty(value = "部门名")
+	private String deptName;
+
+	/**
+	 * 部门全称
+	 */
+	@ApiModelProperty(value = "部门全称")
+	private String fullName;
+}

+ 23 - 0
src/main/java/org/springblade/modules/baseinfo/org/mapper/OrgInfoMapper.java

@@ -0,0 +1,23 @@
+/**
+ * Copyright 2019 DH
+ * All right reserved.
+ * 项目名称: 大恒泰山系统
+ * 创建日期:2022/8/22
+ */
+package org.springblade.modules.baseinfo.org.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.springblade.modules.baseinfo.org.entity.OrgInfoEntity;
+import org.springblade.modules.baseinfo.region.entity.RegionInfoEntity;
+
+/***
+ * Date:2022/8/22
+ * Title:文件所属模块(必须填写)
+ * Description:对本文件的详细描述,原则上不能少于30字
+ * @author dylan
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+public interface OrgInfoMapper extends BaseMapper<OrgInfoEntity> {
+
+}

+ 16 - 0
src/main/java/org/springblade/modules/baseinfo/org/mapper/OrgInfoMapper.xml

@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="org.springblade.modules.baseinfo.org.mapper.OrgInfoMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="baseinfoOrgResultMap" type="org.springblade.modules.baseinfo.org.entity.OrgInfoEntity">
+        <result column="id" property="id"/>
+        <result column="is_deleted" property="isDeleted"/>
+        <result column="parent_id" property="parentId"/>
+        <result column="ancestors" property="ancestors"/>
+        <result column="dept_category" property="deptCategory"/>
+        <result column="dept_name" property="deptName"/>
+        <result column="full_name" property="fullName"/>
+    </resultMap>
+
+</mapper>

+ 22 - 0
src/main/java/org/springblade/modules/baseinfo/org/service/IBaseInfoOrgService.java

@@ -0,0 +1,22 @@
+/**
+ * Copyright 2019 DH
+ * All right reserved.
+ * 项目名称: 大恒泰山系统
+ * 创建日期:2022/8/22
+ */
+package org.springblade.modules.baseinfo.org.service;
+
+import org.springblade.core.mp.base.BaseService;
+import org.springblade.modules.baseinfo.org.entity.OrgInfoEntity;
+
+/***
+ * Date:2022/8/22
+ * Title:文件所属模块(必须填写)
+ * Description:对本文件的详细描述,原则上不能少于30字
+ * @author dylan
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+public interface IBaseInfoOrgService extends BaseService<OrgInfoEntity> {
+
+}

+ 26 - 0
src/main/java/org/springblade/modules/baseinfo/org/service/impl/BaseInfoOrgServiceImpl.java

@@ -0,0 +1,26 @@
+/**
+ * Copyright 2019 DH
+ * All right reserved.
+ * 项目名称: 大恒泰山系统
+ * 创建日期:2022/8/22
+ */
+package org.springblade.modules.baseinfo.org.service.impl;
+
+import org.springblade.core.mp.base.BaseServiceImpl;
+import org.springblade.modules.baseinfo.org.entity.OrgInfoEntity;
+import org.springblade.modules.baseinfo.org.mapper.OrgInfoMapper;
+import org.springblade.modules.baseinfo.org.service.IBaseInfoOrgService;
+import org.springframework.stereotype.Service;
+
+/***
+ * Date:2022/8/22
+ * Title:文件所属模块(必须填写)
+ * Description:对本文件的详细描述,原则上不能少于30字
+ * @author dylan
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+@Service
+public class BaseInfoOrgServiceImpl extends BaseServiceImpl<OrgInfoMapper, OrgInfoEntity> implements IBaseInfoOrgService {
+
+}

+ 32 - 0
src/main/java/org/springblade/modules/baseinfo/org/vo/OrgInfoVO.java

@@ -0,0 +1,32 @@
+/**
+ * Copyright 2019 DH
+ * All right reserved.
+ * 项目名称: 大恒泰山系统
+ * 创建日期:2022/8/22
+ */
+package org.springblade.modules.baseinfo.org.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springblade.modules.baseinfo.org.entity.OrgInfoEntity;
+import org.springblade.modules.baseinfo.region.entity.RegionInfoEntity;
+
+/***
+ * Date:2022/8/22
+ * Title:文件所属模块(必须填写)
+ * Description:对本文件的详细描述,原则上不能少于30字
+ * @author dylan
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class OrgInfoVO extends OrgInfoEntity {
+	/**
+	 * 字典名称
+	 */
+	@ApiModelProperty(value = "字典名称")
+	private String dictValue;
+
+}

+ 46 - 0
src/main/java/org/springblade/modules/baseinfo/org/wrapper/OrgInfoWrapper.java

@@ -0,0 +1,46 @@
+/**
+ * Copyright 2019 DH
+ * All right reserved.
+ * 项目名称: 大恒泰山系统
+ * 创建日期:2022/8/22
+ */
+package org.springblade.modules.baseinfo.org.wrapper;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import org.springblade.core.mp.support.BaseEntityWrapper;
+import org.springblade.core.tool.utils.BeanUtil;
+import org.springblade.core.tool.utils.SpringUtil;
+import org.springblade.modules.baseinfo.org.entity.OrgInfoEntity;
+import org.springblade.modules.baseinfo.org.vo.OrgInfoVO;
+import org.springblade.modules.baseinfo.region.entity.RegionInfoEntity;
+import org.springblade.modules.baseinfo.region.service.IBaseInfoRegionService;
+import org.springblade.modules.baseinfo.region.vo.RegionInfoVO;
+import org.springblade.modules.system.entity.Dept;
+
+import java.util.Objects;
+
+/***
+ * Date:2022/8/22
+ * Title:文件所属模块(必须填写)
+ * Description:对本文件的详细描述,原则上不能少于30字
+ * @author dylan
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+public class OrgInfoWrapper extends BaseEntityWrapper<Dept, OrgInfoVO> {
+
+	public static OrgInfoWrapper build() {
+		return new OrgInfoWrapper();
+	}
+
+	@Override
+	public OrgInfoVO entityVO(Dept entity) {
+		OrgInfoVO orgInfoVO = new OrgInfoVO();
+		orgInfoVO.setId(entity.getId());
+		orgInfoVO.setDictValue(entity.getDeptName());
+		return orgInfoVO;
+	}
+
+}

+ 502 - 0
src/main/java/org/springblade/modules/baseinfo/region/controller/BaseInfoRegionController.java

@@ -0,0 +1,502 @@
+/**
+ * Copyright 2019 DH
+ * All right reserved.
+ * 项目名称: 大恒泰山系统
+ * 创建日期:2022/8/22
+ */
+package org.springblade.modules.baseinfo.region.controller;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.TypeReference;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import io.swagger.annotations.*;
+import lombok.AllArgsConstructor;
+import org.springblade.constant.BusinessConstant;
+import org.springblade.core.boot.ctrl.BladeController;
+import org.springblade.core.launch.constant.AppConstant;
+import org.springblade.core.mp.support.Condition;
+import org.springblade.core.secure.BladeUser;
+import org.springblade.core.secure.utils.AuthUtil;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.Func;
+import org.springblade.etl.entity.EtlAdCdEntity;
+import org.springblade.etl.service.IEtlAdCdService;
+import org.springblade.modules.baseinfo.region.dto.RegionInfoDTO;
+import org.springblade.modules.baseinfo.region.entity.OrgRegionInfoEntity;
+import org.springblade.modules.baseinfo.region.entity.RegionInfoEntity;
+import org.springblade.modules.baseinfo.region.entity.RegionTreeNodeEntity;
+import org.springblade.modules.baseinfo.region.service.IBaseInfoRegionService;
+import org.springblade.modules.baseinfo.region.service.IOrgRegionInfoService;
+import org.springblade.modules.baseinfo.region.vo.RegionInfoVO;
+import org.springblade.modules.baseinfo.region.wrapper.RegionInfoNodeWrapper;
+import org.springblade.modules.baseinfo.region.wrapper.RegionInfoWrapper;
+import org.springblade.modules.system.service.IDeptService;
+import org.springblade.modules.system.service.IRegionService;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.data.redis.core.ValueOperations;
+import org.springframework.web.bind.annotation.*;
+import springfox.documentation.annotations.ApiIgnore;
+
+import javax.annotation.Resource;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Objects;
+
+
+/***
+ * Date:2022/8/22
+ * Title:行政区划管理
+ * Description:对本文件的详细描述,原则上不能少于30字
+ * @author dylan
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+@RestController
+@RequestMapping("galaxy-business/baseinfo/region")
+@AllArgsConstructor
+@Api(value = "行政区划管理", tags = "行政区划管理")
+public class BaseInfoRegionController extends BladeController {
+	private final IBaseInfoRegionService iBaseInfoRegionService;
+	private final IDeptService deptService;
+	private final IRegionService regionService;
+	private final IEtlAdCdService etlAdCdService;
+	private final IOrgRegionInfoService iOrgRegionInfoService;
+	@Resource
+	private RedisTemplate redisTemplate;
+
+	@GetMapping("/lazy-tree")
+	@ApiImplicitParams({
+		@ApiImplicitParam(name = "adcd", value = "行政区划代码", paramType = "query", dataType = "string"),
+	})
+	@ApiOperationSupport(order = 2)
+	@ApiOperation(value = "树")
+	public R<List<RegionTreeNodeEntity>> lazyTree(@ApiIgnore OrgRegionInfoEntity orgRegionInfoEntity) {
+		List<RegionTreeNodeEntity> nodeEntities = new LinkedList<>();
+		BladeUser user = AuthUtil.getUser();
+		if (BusinessConstant.ROLE_ORG_ADMIN.equals(user.getRoleName()) || BusinessConstant.ROLE_ORG_SERVICE_PERSON.equals(user.getRoleName())) {
+			LambdaQueryWrapper<OrgRegionInfoEntity> queryWrapper = Wrappers.<OrgRegionInfoEntity>query().lambda();
+			if (orgRegionInfoEntity.getAdcd() != null) {
+				queryWrapper.eq(OrgRegionInfoEntity::getParentCode, orgRegionInfoEntity.getAdcd());
+			} else {
+				queryWrapper.eq(OrgRegionInfoEntity::getParentCode, BusinessConstant.DEPT_NM_ADCODE);
+			}
+			queryWrapper.eq(OrgRegionInfoEntity::getDeptId, Func.toLong(user.getDeptId()));
+			queryWrapper.eq(OrgRegionInfoEntity::getRegionActive, 1);
+			List<OrgRegionInfoEntity> list = iOrgRegionInfoService.list(queryWrapper);
+			for (OrgRegionInfoEntity entity : list) {
+				if (entity.getRtuCount() > 0) {
+					RegionTreeNodeEntity nodeEntity = new RegionTreeNodeEntity();
+					nodeEntity.setId(entity.getAdcd());
+					nodeEntity.setValue(entity.getAdcd());
+					nodeEntity.setTitle(entity.getAdnm());
+					nodeEntity.setKey(entity.getAdcd());
+					nodeEntity.setParentId(entity.getParentCode());
+
+					nodeEntities.add(nodeEntity);
+				}
+			}
+		} else {
+			LambdaQueryWrapper<RegionInfoEntity> queryWrapper = Wrappers.<RegionInfoEntity>query().lambda();
+			if (orgRegionInfoEntity.getAdcd() != null) {
+				queryWrapper.eq(RegionInfoEntity::getParentCode, orgRegionInfoEntity.getAdcd());
+			} else {
+				queryWrapper.eq(RegionInfoEntity::getParentCode, BusinessConstant.DEPT_NM_ADCODE);
+			}
+			List<RegionInfoEntity> list = iBaseInfoRegionService.list(queryWrapper);
+			for (RegionInfoEntity entity : list) {
+				RegionTreeNodeEntity nodeEntity = new RegionTreeNodeEntity();
+				nodeEntity.setId(entity.getAdcd());
+				nodeEntity.setValue(entity.getAdcd());
+				nodeEntity.setTitle(entity.getAdnm());
+				nodeEntity.setKey(entity.getAdcd());
+				nodeEntity.setParentId(entity.getParentCode());
+				nodeEntities.add(nodeEntity);
+			}
+		}
+		return R.data(nodeEntities);
+	}
+
+	@GetMapping("/tree")
+	@ApiOperationSupport(order = 2)
+	@ApiOperation(value = "树")
+	public R<List<RegionTreeNodeEntity>> regionTree() {
+		ValueOperations<String, String> opsHash = redisTemplate.opsForValue();
+		List<RegionTreeNodeEntity> nodeEntities = new LinkedList<>();
+		BladeUser user = AuthUtil.getUser();
+		if (BusinessConstant.ROLE_ORG_ADMIN.equals(user.getRoleName()) || BusinessConstant.ROLE_ORG_SERVICE_PERSON.equals(user.getRoleName())) {
+			String regionJson = opsHash.get("region." + user.getDeptId());
+			if (null != regionJson) {
+				nodeEntities = JSON.parseObject(regionJson,new TypeReference<List<RegionTreeNodeEntity>>() {});
+			}else {
+				LambdaQueryWrapper<OrgRegionInfoEntity> queryWrapper = Wrappers.<OrgRegionInfoEntity>query().lambda();
+				queryWrapper.eq(OrgRegionInfoEntity::getParentCode, "00");
+				queryWrapper.eq(OrgRegionInfoEntity::getDeptId, Func.toLong(user.getDeptId()));
+				queryWrapper.eq(OrgRegionInfoEntity::getRegionActive, 1);
+				List<OrgRegionInfoEntity> list = iOrgRegionInfoService.list(queryWrapper);
+				for (OrgRegionInfoEntity entity : list) {
+					RegionTreeNodeEntity nodeEntity = new RegionTreeNodeEntity();
+					nodeEntity.setId(entity.getAdcd());
+					nodeEntity.setValue(entity.getAdcd());
+					nodeEntity.setTitle(entity.getAdnm());
+					nodeEntity.setText(entity.getAdnm());
+					nodeEntity.setKey(entity.getAdcd());
+					nodeEntity.setParentId(entity.getParentCode());
+					getChildren(nodeEntity, entity);
+					if (nodeEntity.getChildren() != null && nodeEntity.getChildren().size() > 0) {
+						nodeEntity.setHasChildren(true);
+					} else {
+						nodeEntity.setHasChildren(false);
+					}
+					nodeEntities.add(nodeEntity);
+				}
+			}
+		} else {
+			String regionJson = opsHash.get("region.admin");
+			if (null != regionJson) {
+				nodeEntities = JSON.parseObject(regionJson,new TypeReference<List<RegionTreeNodeEntity>>() {});
+			}else {
+				LambdaQueryWrapper<RegionInfoEntity> queryWrapper = Wrappers.<RegionInfoEntity>query().lambda();
+				queryWrapper.eq(RegionInfoEntity::getParentCode, "00");
+				List<RegionInfoEntity> list = iBaseInfoRegionService.list(queryWrapper);
+				for (RegionInfoEntity entity : list) {
+					RegionTreeNodeEntity nodeEntity = new RegionTreeNodeEntity();
+					nodeEntity.setId(entity.getAdcd());
+					nodeEntity.setValue(entity.getAdcd());
+					nodeEntity.setTitle(entity.getAdnm());
+					nodeEntity.setText(entity.getAdnm());
+					nodeEntity.setKey(entity.getAdcd());
+					nodeEntity.setParentId(entity.getParentCode());
+					getChildren(nodeEntity, entity);
+					if (nodeEntity.getChildren() != null && nodeEntity.getChildren().size() > 0) {
+						nodeEntity.setHasChildren(true);
+					} else {
+						nodeEntity.setHasChildren(false);
+					}
+					nodeEntities.add(nodeEntity);
+				}
+			}
+		}
+		return R.data(nodeEntities);
+	}
+
+
+	private boolean getChildren(RegionTreeNodeEntity nodeEntity, OrgRegionInfoEntity regionInfoEntity) {
+		LambdaQueryWrapper<OrgRegionInfoEntity> queryWrapper = Wrappers.<OrgRegionInfoEntity>query().lambda();
+		queryWrapper.eq(OrgRegionInfoEntity::getParentCode, regionInfoEntity.getAdcd());
+		queryWrapper.eq(OrgRegionInfoEntity::getDeptId, regionInfoEntity.getDeptId());
+		queryWrapper.eq(OrgRegionInfoEntity::getRegionActive, 1);
+		List<OrgRegionInfoEntity> list = iOrgRegionInfoService.list(queryWrapper);
+		if (null != list && list.size() > 0) {
+			List<RegionTreeNodeEntity> nodeEntities = new LinkedList<>();
+			for (OrgRegionInfoEntity entity : list) {
+				if (entity.getRtuCount() > 0) {
+					RegionTreeNodeEntity node = new RegionTreeNodeEntity();
+					node.setId(entity.getAdcd());
+					node.setValue(entity.getAdcd());
+					node.setTitle(entity.getAdnm());
+					node.setText(entity.getAdnm());
+					node.setKey(entity.getAdcd());
+					node.setParentId(entity.getParentCode());
+					getChildren(node, entity);
+					if (node.getChildren() != null && node.getChildren().size() > 0) {
+						node.setHasChildren(true);
+					} else {
+						node.setHasChildren(false);
+					}
+					nodeEntities.add(node);
+				}
+			}
+			nodeEntity.setChildren(nodeEntities);
+		}
+		return true;
+	}
+
+	private boolean getChildren(RegionTreeNodeEntity nodeEntity, RegionInfoEntity regionInfoEntity) {
+		LambdaQueryWrapper<RegionInfoEntity> queryWrapper = Wrappers.<RegionInfoEntity>query().lambda();
+		queryWrapper.eq(RegionInfoEntity::getParentCode, regionInfoEntity.getAdcd());
+		List<RegionInfoEntity> list = iBaseInfoRegionService.list(queryWrapper);
+		if (null != list && list.size() > 0) {
+			List<RegionTreeNodeEntity> nodeEntities = new LinkedList<>();
+			for (RegionInfoEntity entity : list) {
+				RegionTreeNodeEntity node = new RegionTreeNodeEntity();
+				node.setId(entity.getAdcd());
+				node.setValue(entity.getAdcd());
+				node.setTitle(entity.getAdnm());
+				node.setText(entity.getAdnm());
+				node.setKey(entity.getAdcd());
+				node.setParentId(entity.getParentCode());
+				getChildren(node, entity);
+				if (node.getChildren() != null && node.getChildren().size() > 0) {
+					node.setHasChildren(true);
+				} else {
+					node.setHasChildren(false);
+				}
+				nodeEntities.add(node);
+			}
+			nodeEntity.setChildren(nodeEntities);
+		}
+		return true;
+	}
+
+
+	/**
+	 * 多表联合查询列表,不分页
+	 */
+//	@GetMapping("/list")
+//	@ApiOperationSupport(order = 2)
+//	@ApiOperation(value = "不分页")
+//	public R<IPage<RtuInfoVO>> list(Query query) {
+//		LambdaQueryWrapper<RtuInfoEntity> wrapper = Wrappers.<RtuInfoEntity>query().lambda();
+//		BladeUser user = AuthUtil.getUser();
+//		if (BusinessConstant.ROLE_ADMIN.equals(user.getRoleName())) {
+//		} else if (BusinessConstant.ROLE_ORG_ADMIN.equals(user.getRoleName()) || BusinessConstant.ROLE_ORG_SERVICE_PERSON.equals(user.getRoleName())) {
+//			wrapper.eq(RtuInfoEntity::getOrgId,user.getDeptId());
+//		}
+//		wrapper.eq(RtuInfoEntity::getIsDeleted,0);
+//		wrapper.orderByAsc(RtuInfoEntity::getOrgId);
+//		wrapper.orderByAsc(RtuInfoEntity::getProjectId);
+//		wrapper.orderByAsc(RtuInfoEntity::getRtuCode);
+//
+//		IPage<RegionInfoEntity> pages = baseInfoRegionService.page(Condition.getPage(query),wrapper);
+//		return R.data(RegionInfoNodeWrapper.build().pageVO(pages));
+//	}
+
+	/**
+	 * 多表联合查询自定义分页
+	 */
+//	@GetMapping("/page")
+//	@ApiImplicitParams({
+//		@ApiImplicitParam(name = "projectName", value = "项目名称", paramType = "query", dataType = "long"),
+//		@ApiImplicitParam(name = "rtuName", value = "测站名称", paramType = "query", dataType = "string"),
+//		@ApiImplicitParam(name = "rtuCode", value = "测站编码", paramType = "query", dataType = "string"),
+//	})
+//	@ApiOperationSupport(order = 3)
+//	@ApiOperation(value = "分页")
+//	public R<IPage<RtuInfoVO>> page(@ApiIgnore RtuInfoDTO rtuInfoDTO, Query query) {
+//
+//		BladeUser user = AuthUtil.getUser();
+//		if (BusinessConstant.ROLE_ADMIN.equals(user.getRoleName())) {
+//		} else if (BusinessConstant.ROLE_ORG_ADMIN.equals(user.getRoleName()) || BusinessConstant.ROLE_ORG_SERVICE_PERSON.equals(user.getRoleName())) {
+//			rtuInfoDTO.setOrgId(Func.toLong(user.getDeptId()));
+//		}
+//
+//		IPage<RtuInfoVO> pages = rtuBaseInfoService.selectPage(Condition.getPage(query),rtuInfoDTO);
+//		List<RtuInfoVO> list = pages.getRecords();
+//		for (RtuInfoVO rtuInfoVO : list) {
+//			RtuInfoWrapper.build().appendInfo(rtuInfoVO);
+//		}
+//		return R.data(pages);
+//	}
+
+
+	/**
+	 * 详情
+	 */
+	@GetMapping("/detail")
+	@ApiOperationSupport(order = 1)
+	@ApiOperation(value = "详情", notes = "传入RegionInfoEntity")
+	public R<RegionInfoVO> detail(RegionInfoDTO regionInfoDTO) {
+		regionInfoDTO.setAdcd(regionInfoDTO.getCode());
+		regionInfoDTO.setIsDeleted(0);
+		RegionInfoEntity detail = iBaseInfoRegionService.getOne(Condition.getQueryWrapper(regionInfoDTO));
+		return R.data(RegionInfoWrapper.build().entityVO(detail));
+	}
+
+
+	/**
+	 * 新增
+	 */
+//	@PostMapping("/save")
+//	@ApiOperationSupport(order = 4)
+//	@ApiOperation(value = "新增", notes = "传入rtuInfoEntity")
+//	public R save(@RequestBody RtuInfoEntity rtuInfoEntity) {
+//		return R.status(rtuBaseInfoService.save(rtuInfoEntity));
+//	}
+
+	/**
+	 * 修改
+	 */
+//	@PostMapping("/update")
+//	@ApiOperationSupport(order = 5)
+//	@ApiOperation(value = "修改", notes = "传入rtuInfoEntity")
+//	public R update(@RequestBody RtuInfoEntity rtuInfoEntity) {
+//		return R.status(rtuBaseInfoService.updateById(rtuInfoEntity));
+//	}
+
+	/**
+	 * 新增或修改
+	 */
+	@PostMapping("/submit")
+	@ApiOperationSupport(order = 6)
+	@ApiOperation(value = "新增或修改", notes = "传入RegionInfoDTO")
+	public R submit(@RequestBody RegionInfoDTO regionInfoDTO) {
+
+		LambdaQueryWrapper<RegionInfoEntity> queryWrapper = Wrappers.<RegionInfoEntity>query().lambda();
+		queryWrapper.eq(RegionInfoEntity::getAdcd, regionInfoDTO.getCode());
+		queryWrapper.eq(RegionInfoEntity::getIsDeleted, 0);
+		RegionInfoEntity entity = iBaseInfoRegionService.getOne(queryWrapper);
+
+		if (entity != null) {
+			entity.setAdcd(regionInfoDTO.getCode());
+			entity.setAdnm(regionInfoDTO.getName());
+			entity.setStatus(1);
+			entity.setIsDeleted(0);
+			return R.status(iBaseInfoRegionService.updateById(entity));
+		} else {
+			entity = new RegionInfoEntity();
+			entity.setAdcd(regionInfoDTO.getCode());
+			entity.setAdnm(regionInfoDTO.getName());
+			entity.setParentCode(regionInfoDTO.getParentCode());
+			entity.setStatus(1);
+			entity.setIsDeleted(0);
+
+			entity.setAncestors(regionInfoDTO.getAncestors() + "," + regionInfoDTO.getParentCode());
+			return R.status(iBaseInfoRegionService.save(entity));
+		}
+
+	}
+
+	/**
+	 * 删除
+	 */
+	@PostMapping("/remove")
+	@ApiOperationSupport(order = 7)
+	@ApiOperation(value = "逻辑删除", notes = "传入ID数组")
+	public R remove(@ApiParam(value = "主键集合") @RequestParam String id) {
+		LambdaUpdateWrapper<RegionInfoEntity> queryWrapper = Wrappers.<RegionInfoEntity>update().lambda();
+		queryWrapper.eq(RegionInfoEntity::getAdcd, id);
+		boolean temp = iBaseInfoRegionService.remove(queryWrapper);
+		return R.status(temp);
+	}
+
+//	@GetMapping("/dict/list")
+//	@ApiOperationSupport(order = 2)
+//	@ApiOperation(value = "分页")
+//	public R<List<DictBiz>> dictList(@RequestParam String code) {
+//		List<DictBiz> dicts = DictBizCache.getList(code);
+//
+//		return R.data(dicts);
+//	}
+
+
+	/**
+	 * 按机构统计测站信息
+	 * @return
+	 */
+//	@GetMapping("/statistics")
+//	@ApiOperationSupport(order = 2)
+//	@ApiOperation(value = "分页")
+//	public R<List<RtuStatisticsInfoVO>> rtuStatistics() {
+//		List<RtuStatisticsInfoVO> list = new LinkedList<>();
+//		BladeUser user = AuthUtil.getUser();
+//		List<Dept> root = this.deptService.getDeptChild(Func.toLong(user.getDeptId()));
+//
+//		for (Dept dept : root) {
+//			RtuStatisticsInfoVO rtuStatisticsInfoVO = new RtuStatisticsInfoVO();
+//			rtuStatisticsInfoVO.setId(dept.getId());
+//			rtuStatisticsInfoVO.setOrgName(dept.getDeptName());
+//			LambdaQueryWrapper<RtuInfoEntity> wrapper = Wrappers.<RtuInfoEntity>query().lambda();
+//			wrapper.eq(RtuInfoEntity::getOrgId,dept.getId());
+//			wrapper.eq(RtuInfoEntity::getIsDeleted,0);
+//			Long rtus =rtuBaseInfoService.count(wrapper);
+//			rtuStatisticsInfoVO.setRtuCount(rtus);
+//
+//			RtuWarningInfoDTO rtuWarningInfoDTO=new RtuWarningInfoDTO();
+//			rtuWarningInfoDTO.setOrgId(dept.getId());
+//			Long warningRtus = rtuWarningService.warningRtuCount(rtuWarningInfoDTO);
+//			rtuStatisticsInfoVO.setWarningRtuCount(warningRtus);
+//
+//			list.add(rtuStatisticsInfoVO);
+//		}
+//
+//		return R.data(list);
+	//}
+
+
+	/**
+	 * 新增或修改
+	 */
+	@PostMapping("/import")
+	@ApiImplicitParams({
+		@ApiImplicitParam(name = "regionLevel", value = "行政区划层级", paramType = "query", dataType = "int"),
+		@ApiImplicitParam(name = "isCovered", value = "是否覆盖", paramType = "query", dataType = "int"),
+	})
+	@ApiOperationSupport(order = 6)
+	@ApiOperation(value = "导入", notes = "传入RegionInfoDTO")
+	public R importSubmit(@RequestBody RegionInfoDTO regionInfoDTO) {
+		if (regionInfoDTO.getIsCovered() == 1) {
+			LambdaUpdateWrapper<RegionInfoEntity> updateWrapper = Wrappers.<RegionInfoEntity>update().lambda();
+			updateWrapper.ne(RegionInfoEntity::getAdcd, "00");
+			updateWrapper.eq(RegionInfoEntity::getIsDeleted, 0);
+			iBaseInfoRegionService.remove(updateWrapper);
+		}
+		//	LambdaQueryWrapper<EtlAdCdEntity> wrapper = Wrappers.<EtlAdCdEntity>query().lambda();
+		//wrapper.eq(EtlAdCdEntity::getSuperioradcd, "0");
+		List<EtlAdCdEntity> list = etlAdCdService.selectList("0");
+
+		if (null != list && list.size() == 1) {
+
+			String code = list.get(0).getAdcd();
+			LambdaQueryWrapper<RegionInfoEntity> requestWrapper = Wrappers.<RegionInfoEntity>query().lambda();
+			requestWrapper.eq(RegionInfoEntity::getAdcd, code);
+			requestWrapper.eq(RegionInfoEntity::getIsDeleted, 0);
+			RegionInfoEntity regionInfoEntity = iBaseInfoRegionService.getOne(requestWrapper);
+			if (null != regionInfoEntity) {
+				regionInfoEntity.setAdnm(list.get(0).getAdnm());
+				iBaseInfoRegionService.updateById(regionInfoEntity);
+			} else {
+				regionInfoEntity = new RegionInfoEntity();
+				regionInfoEntity.setAdcd(code);
+				regionInfoEntity.setAdnm(list.get(0).getAdnm());
+				regionInfoEntity.setParentCode("00");
+				regionInfoEntity.setAncestors("00");
+				regionInfoEntity.setStatus(1);
+				regionInfoEntity.setIsDeleted(0);
+				iBaseInfoRegionService.save(regionInfoEntity);
+			}
+			importAdcd(regionInfoDTO.getRegionLevel(), 2, code, "00," + code);
+		}
+		return R.status(true);
+	}
+
+	private boolean importAdcd(int level, int currLevel, String parentCode, String ancestors) {
+		if (currLevel > level) {
+			return true;
+		}
+//		LambdaQueryWrapper<EtlAdCdEntity> wrapper = Wrappers.<EtlAdCdEntity>query().lambda();
+//		wrapper.eq(EtlAdCdEntity::getSuperioradcd, parentCode);
+		List<EtlAdCdEntity> list = etlAdCdService.selectList(parentCode);
+
+		if (null != list && list.size() > 0) {
+
+			for (EtlAdCdEntity adCdEntity : list) {
+				LambdaQueryWrapper<RegionInfoEntity> requestWrapper = Wrappers.<RegionInfoEntity>query().lambda();
+				requestWrapper.eq(RegionInfoEntity::getAdcd, adCdEntity.getAdcd());
+				requestWrapper.eq(RegionInfoEntity::getIsDeleted, 0);
+				RegionInfoEntity regionInfoEntity = iBaseInfoRegionService.getOne(requestWrapper);
+				if (null != regionInfoEntity) {
+					regionInfoEntity.setAdnm(adCdEntity.getAdnm());
+					iBaseInfoRegionService.updateById(regionInfoEntity);
+				} else {
+					regionInfoEntity = new RegionInfoEntity();
+					regionInfoEntity.setAdcd(adCdEntity.getAdcd());
+					regionInfoEntity.setAdnm(adCdEntity.getAdnm());
+					regionInfoEntity.setParentCode(parentCode);
+					regionInfoEntity.setAncestors(ancestors);
+					regionInfoEntity.setStatus(1);
+					regionInfoEntity.setIsDeleted(0);
+					iBaseInfoRegionService.save(regionInfoEntity);
+				}
+
+				importAdcd(level, currLevel + 1, adCdEntity.getAdcd(), ancestors + "," + adCdEntity.getAdcd());
+
+			}
+
+		}
+		return true;
+	}
+
+}

+ 51 - 0
src/main/java/org/springblade/modules/baseinfo/region/dto/RegionInfoDTO.java

@@ -0,0 +1,51 @@
+/**
+ * Copyright 2019 DH
+ * All right reserved.
+ * 项目名称: 大恒泰山系统
+ * 创建日期:2022/8/22
+ */
+package org.springblade.modules.baseinfo.region.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springblade.modules.baseinfo.region.entity.RegionInfoEntity;
+
+
+/***
+ * Date:2022/8/22
+ * Title:文件所属模块(必须填写)
+ * Description:对本文件的详细描述,原则上不能少于30字
+ * @author dylan
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class RegionInfoDTO extends RegionInfoEntity {
+
+	/**
+	 * 行政区划名称
+	 */
+	@ApiModelProperty(value = "行政区划名称")
+	private String name;
+
+	/**
+	 * 父级行政区划名称
+	 */
+	@ApiModelProperty(value = "父级行政区划名称")
+	private String parentName;
+
+	/**
+	 * 行政区划代码
+	 */
+	@ApiModelProperty(value = "行政区划代码")
+	private String code;
+
+	@ApiModelProperty(value = "行政区划层级")
+	private Integer regionLevel;
+
+	@ApiModelProperty(value = "是否覆盖")
+	private Integer isCovered;
+
+}

+ 82 - 0
src/main/java/org/springblade/modules/baseinfo/region/entity/OrgRegionInfoEntity.java

@@ -0,0 +1,82 @@
+/**
+ * Copyright
+ * All right reserved.
+ * 项目名称:
+ * 创建日期:2022/3/9
+ */
+package org.springblade.modules.baseinfo.region.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModelProperty;
+import io.swagger.models.auth.In;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springblade.core.mp.base.BaseEntity;
+
+
+/**
+ * 运维单位实体
+ *
+ * @author swp
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("data_dept_region_cache")
+public class OrgRegionInfoEntity extends BaseEntity {
+
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * 租户ID
+	 */
+	@ApiModelProperty("租户ID")
+	private String tenantId;
+
+	/**
+	 * 部门ID
+	 */
+	@ApiModelProperty(value = "部门ID")
+	private Long deptId;
+
+	/**
+	 * 行政区划代码
+	 */
+	@ApiModelProperty(value = "行政区划代码")
+	private String adcd;
+
+	/**
+	 * 行政区划名称
+	 */
+	@ApiModelProperty(value = "行政区划名称")
+	private String adnm;
+
+	/**
+	 * 父行政区划
+	 */
+	@ApiModelProperty(value = "父行政区划")
+	private String parentCode;
+
+	/**
+	 * 祖级列表,行政区划代码
+	 */
+	@ApiModelProperty(value = "祖级列表,行政区划代码")
+	private String ancestors;
+
+	/**
+	 * 政区类型
+	 */
+	@ApiModelProperty(value = "政区类型")
+	private String addType;
+
+	/**
+	 * 行政区下测站数量
+	 */
+	@ApiModelProperty(value = "行政区下测站数量")
+	private Long rtuCount;
+
+	/**
+	 * 行政区下测站数量
+	 */
+	@ApiModelProperty(value = "行政区下测站数量")
+	private Integer regionActive;
+}

+ 63 - 0
src/main/java/org/springblade/modules/baseinfo/region/entity/RegionInfoEntity.java

@@ -0,0 +1,63 @@
+/**
+ * Copyright
+ * All right reserved.
+ * 项目名称:
+ * 创建日期:2022/3/9
+ */
+package org.springblade.modules.baseinfo.region.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springblade.core.mp.base.BaseEntity;
+
+
+/**
+ * 业务行政区划实体类,用于实际所需的行政区划管理,本项目只管理内蒙的行政区划
+ *
+ * @author swp
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("data_ad_cd_b")
+public class RegionInfoEntity extends BaseEntity {
+
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * 租户ID
+	 */
+	@ApiModelProperty("租户ID")
+	private String tenantId;
+
+	/**
+	 * 行政区划代码
+	 */
+	@ApiModelProperty(value = "行政区划代码")
+	private String adcd;
+
+	/**
+	 * 行政区划名称
+	 */
+	@ApiModelProperty(value = "行政区划名称")
+	private String adnm;
+
+	/**
+	 * 父行政区划
+	 */
+	@ApiModelProperty(value = "父行政区划")
+	private String parentCode;
+
+	/**
+	 * 祖级列表,行政区划代码
+	 */
+	@ApiModelProperty(value = "祖级列表,行政区划代码")
+	private String ancestors;
+
+	/**
+	 * 政区类型
+	 */
+	@ApiModelProperty(value = "政区类型")
+	private String addType;
+}

+ 49 - 0
src/main/java/org/springblade/modules/baseinfo/region/entity/RegionTreeNodeEntity.java

@@ -0,0 +1,49 @@
+/**
+ * Copyright 2019 DH
+ * All right reserved.
+ * 项目名称: 大恒泰山系统
+ * 创建日期:2022/9/6
+ */
+package org.springblade.modules.baseinfo.region.entity;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/***
+ * Date:2022/9/6
+ * Title: 行政区划功能模块
+ * Description:树节点实体类,AVUE TREE 适用
+ * @author dylan
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+@Data
+public class RegionTreeNodeEntity {
+
+	@ApiModelProperty("ID")
+	private String id;
+
+	@ApiModelProperty("父ID")
+	private String parentId;
+
+	@ApiModelProperty("键")
+	private String key;
+
+	@ApiModelProperty("节点值")
+	private String value;
+
+	@ApiModelProperty("标题")
+	private String  title;
+
+	@ApiModelProperty("标题")
+	private String  text;
+
+	@ApiModelProperty("子节点")
+	List<RegionTreeNodeEntity> children;
+
+	@ApiModelProperty("是否有子节点")
+	private Boolean hasChildren;
+
+}

+ 23 - 0
src/main/java/org/springblade/modules/baseinfo/region/mapper/OrgRegionInfoMapper.java

@@ -0,0 +1,23 @@
+/**
+ * Copyright 2019 DH
+ * All right reserved.
+ * 项目名称: 大恒泰山系统
+ * 创建日期:2022/8/22
+ */
+package org.springblade.modules.baseinfo.region.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+import org.springblade.modules.baseinfo.region.entity.OrgRegionInfoEntity;
+
+/***
+ * Date:2022/8/22
+ * Title:文件所属模块(必须填写)
+ * Description:对本文件的详细描述,原则上不能少于30字
+ * @author dylan
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+public interface OrgRegionInfoMapper extends BaseMapper<OrgRegionInfoEntity> {
+	OrgRegionInfoEntity queryOrgRegionInfo(@Param("orgId") Long orgId, @Param("adCode") String adCode);
+}

+ 42 - 0
src/main/java/org/springblade/modules/baseinfo/region/mapper/OrgRegionInfoMapper.xml

@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="org.springblade.modules.baseinfo.region.mapper.OrgRegionInfoMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="orgRegionResultMap" type="org.springblade.modules.baseinfo.region.entity.OrgRegionInfoEntity">
+        <result column="id" property="id"/>
+        <result column="create_user" property="createUser"/>
+        <result column="create_time" property="createTime"/>
+        <result column="update_user" property="updateUser"/>
+        <result column="update_time" property="updateTime"/>
+        <result column="status" property="status"/>
+        <result column="is_deleted" property="isDeleted"/>
+
+        <result column="dept_id" property="deptId"/>
+        <result column="adcd" property="adcd"/>
+        <result column="adnm" property="adnm"/>
+        <result column="parent_code" property="parentCode"/>
+        <result column="ancestors" property="ancestors"/>
+        <result column="add_type" property="addType"/>
+        <result column="rtu_count" property="rtuCount"/>
+        <result column="region_active" property="regionActive"/>
+
+    </resultMap>
+
+    <select id="queryOrgRegionInfo" resultMap="orgRegionResultMap">
+        SELECT
+        n.*
+        FROM
+        data_dept_region_cache n
+        WHERE
+        n.is_deleted = 0
+        <if test="orgId!=null">
+            and n.dept_id = #{orgId}
+        </if>
+        <if test="adCode!=null">
+            and n.adcd =#{adCode}
+        </if>
+       limit 1
+
+    </select>
+</mapper>

+ 29 - 0
src/main/java/org/springblade/modules/baseinfo/region/mapper/RegionInfoMapper.java

@@ -0,0 +1,29 @@
+/**
+ * Copyright 2019 DH
+ * All right reserved.
+ * 项目名称: 大恒泰山系统
+ * 创建日期:2022/8/22
+ */
+package org.springblade.modules.baseinfo.region.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.apache.ibatis.annotations.Param;
+import org.springblade.modules.baseinfo.region.entity.RegionInfoEntity;
+import org.springblade.modules.business.rtu.base.dto.RtuInfoDTO;
+import org.springblade.modules.business.rtu.base.entity.RtuInfoEntity;
+import org.springblade.modules.business.rtu.base.vo.RtuInfoVO;
+
+import java.util.List;
+
+/***
+ * Date:2022/8/22
+ * Title:文件所属模块(必须填写)
+ * Description:对本文件的详细描述,原则上不能少于30字
+ * @author dylan
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+public interface RegionInfoMapper extends BaseMapper<RegionInfoEntity> {
+
+}

+ 23 - 0
src/main/java/org/springblade/modules/baseinfo/region/mapper/RegionInfoMapper.xml

@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="org.springblade.modules.baseinfo.region.mapper.RegionInfoMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="baseinfoRegionResultMap" type="org.springblade.modules.baseinfo.region.entity.RegionInfoEntity">
+        <result column="id" property="id"/>
+        <result column="create_user" property="createUser"/>
+        <result column="create_time" property="createTime"/>
+        <result column="update_user" property="updateUser"/>
+        <result column="update_time" property="updateTime"/>
+        <result column="status" property="status"/>
+        <result column="is_deleted" property="isDeleted"/>
+
+        <result column="adcd" property="adcd"/>
+        <result column="adnm" property="adnm"/>
+        <result column="parent_code" property="parentCode"/>
+        <result column="ancestors" property="ancestors"/>
+        <result column="add_type" property="addType"/>
+
+    </resultMap>
+
+</mapper>

+ 26 - 0
src/main/java/org/springblade/modules/baseinfo/region/service/IBaseInfoRegionService.java

@@ -0,0 +1,26 @@
+/**
+ * Copyright 2019 DH
+ * All right reserved.
+ * 项目名称: 大恒泰山系统
+ * 创建日期:2022/8/22
+ */
+package org.springblade.modules.baseinfo.region.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.springblade.core.mp.base.BaseService;
+import org.springblade.modules.baseinfo.region.entity.RegionInfoEntity;
+import org.springblade.modules.business.rtu.base.dto.RtuInfoDTO;
+import org.springblade.modules.business.rtu.base.entity.RtuInfoEntity;
+import org.springblade.modules.business.rtu.base.vo.RtuInfoVO;
+
+/***
+ * Date:2022/8/22
+ * Title:文件所属模块(必须填写)
+ * Description:对本文件的详细描述,原则上不能少于30字
+ * @author dylan
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+public interface IBaseInfoRegionService extends BaseService<RegionInfoEntity> {
+
+}

+ 22 - 0
src/main/java/org/springblade/modules/baseinfo/region/service/IOrgRegionInfoService.java

@@ -0,0 +1,22 @@
+/**
+ * Copyright 2019 DH
+ * All right reserved.
+ * 项目名称: 大恒泰山系统
+ * 创建日期:2022/8/22
+ */
+package org.springblade.modules.baseinfo.region.service;
+
+import org.springblade.core.mp.base.BaseService;
+import org.springblade.modules.baseinfo.region.entity.OrgRegionInfoEntity;
+
+/***
+ * Date:2022/8/22
+ * Title:文件所属模块(必须填写)
+ * Description:对本文件的详细描述,原则上不能少于30字
+ * @author dylan
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+public interface IOrgRegionInfoService extends BaseService<OrgRegionInfoEntity> {
+	OrgRegionInfoEntity getOrgRegionInfo(Long orgId,String adCode);
+}

+ 26 - 0
src/main/java/org/springblade/modules/baseinfo/region/service/impl/BaseInfoRegionServiceImpl.java

@@ -0,0 +1,26 @@
+/**
+ * Copyright 2019 DH
+ * All right reserved.
+ * 项目名称: 大恒泰山系统
+ * 创建日期:2022/8/22
+ */
+package org.springblade.modules.baseinfo.region.service.impl;
+
+import org.springblade.core.mp.base.BaseServiceImpl;
+import org.springblade.modules.baseinfo.region.entity.RegionInfoEntity;
+import org.springblade.modules.baseinfo.region.mapper.RegionInfoMapper;
+import org.springblade.modules.baseinfo.region.service.IBaseInfoRegionService;
+import org.springframework.stereotype.Service;
+
+/***
+ * Date:2022/8/22
+ * Title:文件所属模块(必须填写)
+ * Description:对本文件的详细描述,原则上不能少于30字
+ * @author dylan
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+@Service
+public class BaseInfoRegionServiceImpl extends BaseServiceImpl<RegionInfoMapper, RegionInfoEntity> implements IBaseInfoRegionService {
+
+}

+ 31 - 0
src/main/java/org/springblade/modules/baseinfo/region/service/impl/OrgRegionInfoServiceImpl.java

@@ -0,0 +1,31 @@
+/**
+ * Copyright 2019 DH
+ * All right reserved.
+ * 项目名称: 大恒泰山系统
+ * 创建日期:2022/8/22
+ */
+package org.springblade.modules.baseinfo.region.service.impl;
+
+import org.springblade.core.mp.base.BaseServiceImpl;
+import org.springblade.modules.baseinfo.region.entity.OrgRegionInfoEntity;
+import org.springblade.modules.baseinfo.region.mapper.OrgRegionInfoMapper;
+import org.springblade.modules.baseinfo.region.service.IOrgRegionInfoService;
+import org.springframework.stereotype.Service;
+
+/***
+ * Date:2022/8/22
+ * Title:文件所属模块(必须填写)
+ * Description:对本文件的详细描述,原则上不能少于30字
+ * @author dylan
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+@Service
+public class OrgRegionInfoServiceImpl extends BaseServiceImpl<OrgRegionInfoMapper, OrgRegionInfoEntity> implements IOrgRegionInfoService {
+
+
+	@Override
+	public OrgRegionInfoEntity getOrgRegionInfo(Long orgId, String adCode) {
+		return baseMapper.queryOrgRegionInfo(orgId,adCode);
+	}
+}

+ 67 - 0
src/main/java/org/springblade/modules/baseinfo/region/vo/RegionInfoVO.java

@@ -0,0 +1,67 @@
+/**
+ * Copyright 2019 DH
+ * All right reserved.
+ * 项目名称: 大恒泰山系统
+ * 创建日期:2022/8/22
+ */
+package org.springblade.modules.baseinfo.region.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springblade.modules.baseinfo.region.entity.RegionInfoEntity;
+
+/***
+ * Date:2022/8/22
+ * Title:文件所属模块(必须填写)
+ * Description:对本文件的详细描述,原则上不能少于30字
+ * @author dylan
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class RegionInfoVO extends RegionInfoEntity {
+
+	/**
+	 * 行政区划代码
+	 */
+	@ApiModelProperty(value = "行政区划代码")
+	private String code;
+
+	/**
+	 * 行政区划名称
+	 */
+	@ApiModelProperty(value = "行政区划名称")
+	private String name;
+
+	/**
+	 * 父级行政区划代码
+	 */
+	@ApiModelProperty(value = "父级行政区划代码")
+	private String parentId;
+
+	/**
+	 * 父级行政区划名称
+	 */
+	@ApiModelProperty(value = "父级行政区划名称")
+	private String parentName;
+
+	/**
+	 * 排序
+	 */
+	@ApiModelProperty(value = "排序")
+	private Integer sort;
+
+	/**
+	 * 行政区划层级
+	 */
+	@ApiModelProperty(value = "行政区划层级")
+	private Integer regionLevel;
+
+	/**
+	 * 备注
+	 */
+	@ApiModelProperty(value = "备注")
+	private String remark;
+}

+ 60 - 0
src/main/java/org/springblade/modules/baseinfo/region/wrapper/RegionInfoNodeWrapper.java

@@ -0,0 +1,60 @@
+/**
+ * Copyright 2019 DH
+ * All right reserved.
+ * 项目名称: 大恒泰山系统
+ * 创建日期:2022/8/22
+ */
+package org.springblade.modules.baseinfo.region.wrapper;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import org.springblade.core.mp.support.BaseEntityWrapper;
+import org.springblade.core.tool.utils.SpringUtil;
+import org.springblade.modules.baseinfo.region.entity.RegionInfoEntity;
+import org.springblade.modules.baseinfo.region.entity.RegionTreeNodeEntity;
+import org.springblade.modules.baseinfo.region.service.IBaseInfoRegionService;
+
+/***
+ * Date:2022/8/22
+ * Title:文件所属模块(必须填写)
+ * Description:对本文件的详细描述,原则上不能少于30字
+ * @author dylan
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+public class RegionInfoNodeWrapper extends BaseEntityWrapper<RegionInfoEntity, RegionTreeNodeEntity> {
+
+	private static IBaseInfoRegionService baseInfoRegionService;
+
+	private static IBaseInfoRegionService getBaseInfoRegionService() {
+		if (baseInfoRegionService == null) {
+			baseInfoRegionService = SpringUtil.getBean(IBaseInfoRegionService.class);
+		}
+		return baseInfoRegionService;
+	}
+
+	public static RegionInfoNodeWrapper build() {
+		return new RegionInfoNodeWrapper();
+	}
+
+	@Override
+	public RegionTreeNodeEntity entityVO(RegionInfoEntity entity) {
+		RegionTreeNodeEntity nodeEntity = new RegionTreeNodeEntity();
+		nodeEntity.setId(entity.getAdcd());
+		nodeEntity.setValue(entity.getAdcd());
+		nodeEntity.setTitle(entity.getAdnm());
+		nodeEntity.setKey(entity.getAdcd());
+		nodeEntity.setParentId(entity.getParentCode());
+		LambdaQueryWrapper<RegionInfoEntity> queryWrapper= Wrappers.<RegionInfoEntity>query().lambda();
+		queryWrapper.eq(RegionInfoEntity::getParentCode,entity.getAdcd());
+		queryWrapper.eq(RegionInfoEntity::getIsDeleted,0);
+		if (getBaseInfoRegionService().count(queryWrapper)>0){
+			nodeEntity.setHasChildren(true);
+		}else{
+			nodeEntity.setHasChildren(false);
+		}
+		return nodeEntity;
+	}
+
+}

+ 65 - 0
src/main/java/org/springblade/modules/baseinfo/region/wrapper/RegionInfoWrapper.java

@@ -0,0 +1,65 @@
+/**
+ * Copyright 2019 DH
+ * All right reserved.
+ * 项目名称: 大恒泰山系统
+ * 创建日期:2022/8/22
+ */
+package org.springblade.modules.baseinfo.region.wrapper;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import org.springblade.core.mp.support.BaseEntityWrapper;
+import org.springblade.core.tool.utils.BeanUtil;
+import org.springblade.core.tool.utils.SpringUtil;
+import org.springblade.modules.baseinfo.region.entity.RegionInfoEntity;
+import org.springblade.modules.baseinfo.region.entity.RegionTreeNodeEntity;
+import org.springblade.modules.baseinfo.region.service.IBaseInfoRegionService;
+import org.springblade.modules.baseinfo.region.vo.RegionInfoVO;
+import org.springblade.modules.business.desk.vo.NoticeVO;
+
+import java.util.Objects;
+
+/***
+ * Date:2022/8/22
+ * Title:文件所属模块(必须填写)
+ * Description:对本文件的详细描述,原则上不能少于30字
+ * @author dylan
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+public class RegionInfoWrapper extends BaseEntityWrapper<RegionInfoEntity, RegionInfoVO> {
+
+	private static IBaseInfoRegionService baseInfoRegionService;
+
+	private static IBaseInfoRegionService getBaseInfoRegionService() {
+		if (baseInfoRegionService == null) {
+			baseInfoRegionService = SpringUtil.getBean(IBaseInfoRegionService.class);
+		}
+		return baseInfoRegionService;
+	}
+
+	public static RegionInfoWrapper build() {
+		return new RegionInfoWrapper();
+	}
+
+	@Override
+	public RegionInfoVO entityVO(RegionInfoEntity entity) {
+		RegionInfoVO regionInfoVO = Objects.requireNonNull(BeanUtil.copy(entity, RegionInfoVO.class));
+		regionInfoVO.setCode(entity.getAdcd());
+		regionInfoVO.setName(entity.getAdnm());
+		regionInfoVO.setSort(1);
+		regionInfoVO.setRegionLevel(1);
+		LambdaQueryWrapper<RegionInfoEntity> queryWrapper= Wrappers.<RegionInfoEntity>query().lambda();
+		queryWrapper.eq(RegionInfoEntity::getAdcd,entity.getParentCode());
+		queryWrapper.eq(RegionInfoEntity::getIsDeleted,0);
+		RegionInfoEntity parentEntity= getBaseInfoRegionService().getOne(queryWrapper);
+		if (null != parentEntity){
+			regionInfoVO.setParentId(parentEntity.getAdcd());
+			regionInfoVO.setParentName(parentEntity.getAdnm());
+		}
+
+		return regionInfoVO;
+	}
+
+}

+ 40 - 0
src/main/java/org/springblade/modules/baseinfo/stbase/entity/MvAttStBaseEntity.java

@@ -0,0 +1,40 @@
+/**
+ * Copyright 2019 DH
+ * All right reserved.
+ * 项目名称: 大恒泰山系统
+ * 创建日期:2022/9/8
+ */
+package org.springblade.modules.baseinfo.stbase.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springblade.core.mp.base.BaseEntity;
+
+/***
+ * Date:2022/9/8
+ * Title:文件所属模块(必须填写)
+ * Description:对本文件的详细描述,原则上不能少于30字
+ * @author dylan
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("data_mv_att_st_base")
+public class MvAttStBaseEntity extends BaseEntity {
+	private static final long serialVersionUID = 1L;
+
+	@ApiModelProperty("测站编码")
+	private String stCode;
+
+	@ApiModelProperty("测站名称")
+	private String stName;
+
+	@ApiModelProperty("行政区划代码")
+	private String adCode;
+
+	@ApiModelProperty("行政区划名称")
+	private String adName;
+}

+ 24 - 0
src/main/java/org/springblade/modules/baseinfo/stbase/service/IMvAttStBaseService.java

@@ -0,0 +1,24 @@
+/**
+ * Copyright 2019 DH
+ * All right reserved.
+ * 项目名称: 大恒泰山系统
+ * 创建日期:2022/9/8
+ */
+package org.springblade.modules.baseinfo.stbase.service;
+
+import org.springblade.core.mp.base.BaseService;
+import org.springblade.etl.entity.EtlMvAttStBaseEntity;
+import org.springblade.modules.baseinfo.stbase.entity.MvAttStBaseEntity;
+
+
+/***
+ * Date:2022/9/8
+ * Title:文件所属模块(必须填写)
+ * Description:对本文件的详细描述,原则上不能少于30字
+ * @author dylan
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+public interface IMvAttStBaseService extends BaseService<MvAttStBaseEntity> {
+
+}

+ 31 - 0
src/main/java/org/springblade/modules/baseinfo/stbase/service/impl/MvAttStBaseServiceImpl.java

@@ -0,0 +1,31 @@
+/**
+ * Copyright 2019 DH
+ * All right reserved.
+ * 项目名称: 大恒泰山系统
+ * 创建日期:2022/9/8
+ */
+package org.springblade.modules.baseinfo.stbase.service.impl;
+
+import org.springblade.core.mp.base.BaseServiceImpl;
+import org.springblade.etl.entity.EtlMvAttStBaseEntity;
+import org.springblade.etl.mapper.EtlMvAttStBaseMapper;
+import org.springblade.etl.service.IEtlMvAttStBaseService;
+import org.springblade.modules.baseinfo.stbase.entity.MvAttStBaseEntity;
+import org.springblade.modules.baseinfo.stbase.mapper.MvAttStBaseMapper;
+import org.springblade.modules.baseinfo.stbase.service.IMvAttStBaseService;
+import org.springframework.stereotype.Service;
+
+
+/***
+ * Date:2022/9/8
+ * Title:文件所属模块(必须填写)
+ * Description:对本文件的详细描述,原则上不能少于30字
+ * @author dylan
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+@Service
+public class MvAttStBaseServiceImpl extends BaseServiceImpl<MvAttStBaseMapper, MvAttStBaseEntity> implements IMvAttStBaseService {
+
+
+}

+ 97 - 27
src/main/java/org/springblade/modules/business/check/order/controller/RtuCheckOrderController.java

@@ -25,6 +25,7 @@ import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.ConcurrentDateFormat;
 import org.springblade.core.tool.utils.Func;
 import org.springblade.enums.*;
+import org.springblade.modules.baseinfo.stbase.service.IMvAttStBaseService;
 import org.springblade.modules.business.check.order.dto.CheckOrderInfoDTO;
 import org.springblade.modules.business.check.order.entity.CheckOrderInfoEntity;
 import org.springblade.modules.business.check.order.mapper.RtuCheckOrderMapper;
@@ -40,7 +41,15 @@ import org.springblade.modules.business.check.process.wrapper.RtuOrderProcessWra
 import org.springblade.modules.business.equipment.inspection.plan.entity.EquipmentInspectionPlanEntity;
 import org.springblade.modules.business.project.base.entity.ProjectTreeNodeEntity;
 import org.springblade.modules.business.rtu.base.entity.RtuInfoEntity;
+import org.springblade.modules.business.rtu.base.service.IRtuBaseInfoService;
 import org.springblade.modules.business.rtu.base.vo.RtuStatisticsInfoVO;
+import org.springblade.modules.business.rtu.data.entity.RtuDataRainEntity;
+import org.springblade.modules.business.rtu.data.entity.RtuDataRiverEntity;
+import org.springblade.modules.business.rtu.data.entity.RtuDataRsvrEntity;
+import org.springblade.modules.business.rtu.data.service.IRtuDataGroundService;
+import org.springblade.modules.business.rtu.data.service.IRtuDataRainService;
+import org.springblade.modules.business.rtu.data.service.IRtuDataRiverService;
+import org.springblade.modules.business.rtu.data.service.IRtuDataRsvrService;
 import org.springblade.modules.business.rtumanage.entity.RtuStatusEntity;
 import org.springblade.modules.business.rtumanage.service.IRtuManageService;
 import org.springblade.modules.business.warning.dto.RtuWarningInfoDTO;
@@ -68,7 +77,7 @@ import java.util.List;
  * Remark:认为有必要的其他信息
  */
 @RestController
-@RequestMapping(AppConstant.APPLICATION_TEST_NAME + "/rtu/check/order")
+@RequestMapping("galaxy-business/rtu/check/order")
 @AllArgsConstructor
 @Api(value = "测站设备故障工单管理模块", tags = "测站设备故障工单管理模块")
 public class RtuCheckOrderController extends BladeController {
@@ -80,6 +89,14 @@ public class RtuCheckOrderController extends BladeController {
 	private final IRtuManageService manageService;
 	private final IUserService userService;
 	private final IDeptService deptService;
+	private final IRtuBaseInfoService rtuBaseInfoService;
+	private final IMvAttStBaseService iMvAttStBaseService;
+	private final IRtuDataRainService iRtuDataRainService;
+	private final IRtuDataRiverService iRtuDataRiverService;
+	private final IRtuDataRsvrService iRtuDataRsvrService;
+	private final IRtuDataGroundService iRtuDataGroundService;
+	private final IRtuManageService iRtuManageService;
+
 	@GetMapping("/list")
 	@ApiOperationSupport(order = 3)
 	@ApiOperation(value = "列表", notes = "传入CheckOrderInfoDTO")
@@ -105,8 +122,10 @@ public class RtuCheckOrderController extends BladeController {
 	@ApiImplicitParams({
 		@ApiImplicitParam(name = "rtuCode", value = "测站编码", paramType = "query", dataType = "string"),
 		@ApiImplicitParam(name = "rtuName", value = "测站名称", paramType = "query", dataType = "string"),
-		@ApiImplicitParam(name = "orgId", value = "机构ID", paramType = "query", dataType = "string"),
-		@ApiImplicitParam(name = "projectId", value = "项目ID", paramType = "query", dataType = "string")
+		@ApiImplicitParam(name = "adCode", value = "行政区划编码", paramType = "query", dataType = "string"),
+		@ApiImplicitParam(name = "orgId", value = "机构ID", paramType = "query", dataType = "long"),
+		@ApiImplicitParam(name = "orderConfirm", value = "是否确认", paramType = "query", dataType = "int"),
+		@ApiImplicitParam(name = "orderClose", value = "是否关闭", paramType = "query", dataType = "int"),
 	})
 	@ApiOperationSupport(order = 3)
 	@ApiOperation(value = "分页", notes = "传入checkOrderInfoDTO")
@@ -114,11 +133,6 @@ public class RtuCheckOrderController extends BladeController {
 		BladeUser user = AuthUtil.getUser();
 		if (BusinessConstant.ROLE_ORG_ADMIN.equals(user.getRoleName()) || BusinessConstant.ROLE_ORG_SERVICE_PERSON.equals(user.getRoleName())) {
 			checkOrderInfoDTO.setOrgId(Func.toLong(user.getDeptId()));
-		} else {
-			if (user.getDeptId().equals("" + checkOrderInfoDTO.getOrgId())) {
-				checkOrderInfoDTO.setOrgId(null);
-				checkOrderInfoDTO.setProjectId(null);
-			}
 		}
 		IPage<CheckOrderInfoVO> pages = checkOrderService.selectPage(Condition.getPage(query), checkOrderInfoDTO);
 		List<CheckOrderInfoVO> list = pages.getRecords();
@@ -211,7 +225,63 @@ public class RtuCheckOrderController extends BladeController {
 	@ApiOperation(value = "详情", notes = "传入CheckOrderInfoEntity")
 	public R<CheckOrderInfoVO> detail(CheckOrderInfoEntity checkOrderInfoEntity) {
 		CheckOrderInfoEntity detail = checkOrderService.getOne(Condition.getQueryWrapper(checkOrderInfoEntity));
-		return R.data(RtuCheckOrderWrapper.build().entityVO(detail));
+
+		LambdaQueryWrapper<RtuInfoEntity> wrapper = Wrappers.<RtuInfoEntity>query().lambda();
+		wrapper.eq(RtuInfoEntity::getRtuCode, detail.getRtuCode());
+		wrapper.eq(RtuInfoEntity::getIsDeleted, 0L);
+		RtuInfoEntity rtuInfoEntity = rtuBaseInfoService.getOne(wrapper);
+
+		CheckOrderInfoVO vo = RtuCheckOrderWrapper.build().entityVO(detail);
+
+		vo.setRtuName(rtuInfoEntity.getRtuName());
+		vo.setAdCity(rtuInfoEntity.getAdCity());
+		vo.setAdDist(rtuInfoEntity.getAdDist());
+		vo.setAreaName(rtuInfoEntity.getAdCity() + "/" + rtuInfoEntity.getAdDist());
+		vo.setLocationDesc(rtuInfoEntity.getLocationDesc());
+		vo.setLng(rtuInfoEntity.getLng());
+		vo.setLat(rtuInfoEntity.getLat());
+
+		LambdaQueryWrapper<RtuStatusEntity> statusWwrapper = Wrappers.<RtuStatusEntity>query().lambda();
+		statusWwrapper.eq(RtuStatusEntity::getRtuCode, detail.getRtuCode());
+		statusWwrapper.eq(RtuStatusEntity::getIsDeleted, 0L);
+		RtuStatusEntity statusEntity = iRtuManageService.getOne(statusWwrapper);
+		if (null != statusEntity) {
+			vo.setLastUpTime(statusEntity.getLastUpTime());
+		}
+
+		vo.setIsRain(rtuInfoEntity.getIsRain());
+		vo.setIsRiver(rtuInfoEntity.getIsRiver());
+		vo.setIsRes(rtuInfoEntity.getIsRes());
+		vo.setIsGround(rtuInfoEntity.getIsGround());
+
+		if (rtuInfoEntity.getIsRain() == 1) {
+			LambdaQueryWrapper<RtuDataRainEntity> rainwrapper = Wrappers.<RtuDataRainEntity>query().lambda();
+			rainwrapper.eq(RtuDataRainEntity::getRtuCode, detail.getRtuCode());
+			rainwrapper.eq(RtuDataRainEntity::getIsDeleted, 0L);
+			RtuDataRainEntity rainEntity = iRtuDataRainService.getOne(rainwrapper);
+			vo.setDrp(rainEntity.getDrp());
+		} else if (rtuInfoEntity.getIsRiver() == 1) {
+			LambdaQueryWrapper<RtuDataRiverEntity> riverwrapper = Wrappers.<RtuDataRiverEntity>query().lambda();
+			riverwrapper.eq(RtuDataRiverEntity::getRtuCode, detail.getRtuCode());
+			riverwrapper.eq(RtuDataRiverEntity::getIsDeleted, 0L);
+			RtuDataRiverEntity riverEntity = iRtuDataRiverService.getOne(riverwrapper);
+			vo.setZ(riverEntity.getZ());
+		} else if (rtuInfoEntity.getIsRes() == 1) {
+			LambdaQueryWrapper<RtuDataRsvrEntity> rsvrWrapper = Wrappers.<RtuDataRsvrEntity>query().lambda();
+			rsvrWrapper.eq(RtuDataRsvrEntity::getRtuCode, detail.getRtuCode());
+			rsvrWrapper.eq(RtuDataRsvrEntity::getIsDeleted, 0L);
+			RtuDataRsvrEntity rsvrEntity = iRtuDataRsvrService.getOne(rsvrWrapper);
+			vo.setRz(rsvrEntity.getRz());
+		} else if (rtuInfoEntity.getIsGround() == 1) {
+//			LambdaQueryWrapper<RtuDataRainEntity> rainwrapper = Wrappers.<RtuDataRainEntity>query().lambda();
+//			rainwrapper.eq(RtuDataRainEntity::getRtuCode,detail.getRtuCode());
+//			rainwrapper.eq(RtuDataRainEntity::getIsDeleted,0L);
+//			RtuDataRainEntity rainEntity=iRtuDataRainService.getOne(rainwrapper);
+//			vo.setDrp(rainEntity.getDrp());
+		}
+
+
+		return R.data(vo);
 	}
 
 	/**
@@ -290,7 +360,6 @@ public class RtuCheckOrderController extends BladeController {
 				break;
 			}
 		}
-
 		CheckOrderInfoEntity detail = this.checkOrderService.getById(checkOrderInfoEntity.getId());
 		if (null == detail || detail.getOrderClose() == OrderCloseEnum.ACTIVE_CLOSE.getCode()) {
 			return R.status(false);
@@ -300,7 +369,6 @@ public class RtuCheckOrderController extends BladeController {
 		detail.setUpdateTime(new Date());
 		detail.setUpdateUser(user.getUserId());
 		checkOrderService.updateById(detail);
-
 		OrderProcessInfoEntity processInfoEntity = new OrderProcessInfoEntity();
 		processInfoEntity.setOrderId(detail.getId());
 		processInfoEntity.setOrderStatusKey(detail.getOrderStatusKey());
@@ -308,25 +376,25 @@ public class RtuCheckOrderController extends BladeController {
 		processInfoEntity.setCreateUser(user.getUserId());
 		processInfoEntity.setUpdateUser(user.getUserId());
 		processService.save(processInfoEntity);
-
-
-		List<DictBiz> orderFromDict = dictBizService.getList("rtu_check_order_from");
-		for (DictBiz biz : orderFromDict) {
-			if (biz.getDictKey().equals(OrderFromEnum.FROM_WARNING.getCode())) {
-				RtuWarningInfoEntity warningInfoEntity = this.warningService.getById(detail.getWarnId());
-				warningInfoEntity.setWarningRecoveryTime(new Date());
-				warningInfoEntity.setWarningStatus(WarningStatusEnum.STATUS_CLOSE.getCode());
-				warningInfoEntity.setUpdateTime(new Date());
-				warningInfoEntity.setUpdateUser(user.getUserId());
-				this.warningService.updateById(warningInfoEntity);
-				break;
+		if (null != detail.getWarnId()) {
+			List<DictBiz> orderFromDict = dictBizService.getList("rtu_check_order_from");
+			for (DictBiz biz : orderFromDict) {
+				if (biz.getDictKey().equals(OrderFromEnum.FROM_WARNING.getCode())) {
+					RtuWarningInfoEntity warningInfoEntity = this.warningService.getById(detail.getWarnId());
+					if (null != warningInfoEntity) {
+						warningInfoEntity.setWarningRecoveryTime(new Date());
+						warningInfoEntity.setWarningStatus(WarningStatusEnum.STATUS_CLOSE.getCode());
+						warningInfoEntity.setUpdateTime(new Date());
+						warningInfoEntity.setUpdateUser(user.getUserId());
+						this.warningService.updateById(warningInfoEntity);
+					}
+					break;
+				}
 			}
 		}
-
 		RtuStatusEntity rtuStatusEntity = new RtuStatusEntity();
 		rtuStatusEntity.setRunStatusId(EquipmentStatusEnum.STATUS_RUN.getCode());
 		this.manageService.updateRtuStatus(rtuStatusEntity);
-
 		return R.success("工单关闭已操作成功!");
 	}
 
@@ -371,7 +439,7 @@ public class RtuCheckOrderController extends BladeController {
 			return R.status(false);
 		}
 
-        detail.setOrderConfirm(OrderConfirmEnum.ACTIVE_CONFIRM.getCode());
+		detail.setOrderConfirm(OrderConfirmEnum.ACTIVE_CONFIRM.getCode());
 		detail.setOrderStatusKey(checkOrderInfoEntity.getOrderStatusKey());
 		detail.setOrderConfirmUser(user.getUserId());
 		detail.setOrderConfirmTime(new Date());
@@ -381,13 +449,14 @@ public class RtuCheckOrderController extends BladeController {
 		OrderProcessInfoEntity processInfoEntity = new OrderProcessInfoEntity();
 		processInfoEntity.setOrderId(checkOrderInfoEntity.getId());
 		processInfoEntity.setOrderStatusKey(checkOrderInfoEntity.getOrderStatusKey());
-		processInfoEntity.setProcessDesc("工单确认: "+userInfo.getRealName());
+		processInfoEntity.setProcessDesc("工单确认: " + userInfo.getRealName());
 		return R.status(processService.save(processInfoEntity));
 	}
 
 
 	/**
 	 * 工单统计
+	 *
 	 * @return
 	 */
 	@GetMapping("/statistics")
@@ -407,6 +476,7 @@ public class RtuCheckOrderController extends BladeController {
 
 	/**
 	 * 按机构统计工单
+	 *
 	 * @return
 	 */
 	@GetMapping("/org/statistics")

+ 6 - 0
src/main/java/org/springblade/modules/business/check/order/dto/CheckOrderInfoDTO.java

@@ -41,4 +41,10 @@ public class CheckOrderInfoDTO extends CheckOrderInfoEntity {
 	 */
 	@ApiModelProperty("项目ID")
 	private Long projectId;
+
+	/**
+	 * 行政区划编码
+	 */
+	@ApiModelProperty(value = "行政区划编码")
+	private String adCode;
 }

+ 2 - 2
src/main/java/org/springblade/modules/business/check/order/entity/CheckOrderInfoEntity.java

@@ -41,14 +41,12 @@ public class CheckOrderInfoEntity extends BaseEntity {
 	@ApiModelProperty("测站编码")
 	private String rtuCode;
 
-
 	/**
 	 * 工单来源,字典
 	 */
 	@ApiModelProperty("工单来源")
 	private Long orderFromKey;
 
-
 	/**
 	 * 工单状态,字典
 	 */
@@ -60,11 +58,13 @@ public class CheckOrderInfoEntity extends BaseEntity {
 	 */
 	@ApiModelProperty(value = "工单说明")
 	private String orderDesc;
+
 	/**
 	 * 工单确认人
 	 */
 	@ApiModelProperty(value = "工单确认人")
 	private Long orderConfirmUser;
+
 	/**
 	 * 预警ID
 	 */

+ 15 - 10
src/main/java/org/springblade/modules/business/check/order/mapper/RtuCheckOrderMapper.xml

@@ -47,8 +47,10 @@
         <result column="location_desc" property="locationDesc"/>
         <result column="rtu_name" property="rtuName"/>
         <result column="real_name" property="processorName"/>
-        <result column="project_name" property="projectName"/>
         <result column="org_name" property="orgName"/>
+        <result column="ad_city" property="adCity"/>
+        <result column="ad_dist" property="adDist"/>
+        <result column="warn_kind" property="warnKind"/>
     </resultMap>
 
     <resultMap id="checkOrderCountVOResultMap" type="org.springblade.modules.business.check.order.vo.CheckOrderCountVO">
@@ -57,18 +59,21 @@
         <result column="order_count" property="orderCount"/>
         <result column="processing_order_count" property="processingOrderCount"/>
 
+
     </resultMap>
 
     <select id="selectPage" resultMap="checkOrderInfoVOResultMap">
         SELECT
-        o.*,u.real_name,i.rtu_name,p.project_name,d2.dept_name AS org_name,i.lng,i.lat,i.location_desc
+        o.*,u.real_name,i.rtu_name,dept.dept_name AS org_name,i.lng,i.lat,i.location_desc,i.ad_city,i.ad_dist, w.warning_kind AS warn_kind
         FROM
         rtu_failure_check_order o
         LEFT JOIN rtu_info i ON i.rtu_code = o.rtu_code
-        LEFT JOIN blade_user u ON u.id = o.update_user
-        LEFT JOIN project_info p ON i.project_id = p.id
-        LEFT JOIN blade_user_dept ud ON ud.user_id=u.id
-        LEFT JOIN blade_dept d2 ON ud.dept_id = d2.id
+        LEFT JOIN data_mv_att_st_base p ON i.rtu_code = p.st_code and p.is_deleted=0
+        LEFT JOIN data_ad_cd_b a ON a.adcd = p.ad_code and a.is_deleted=0
+        LEFT JOIN blade_dept dept ON dept.id = i.org_id and dept.is_deleted=0
+        LEFT JOIN blade_user u ON u.id = o.update_user and u.is_deleted=0
+        LEFT JOIN rtu_warning w ON w.is_deleted=0 and  w.id = o.warn_id
+
         WHERE
         o.is_deleted = 0
         <if test="checkOrderInfoDTO.rtuCode!=null">
@@ -80,9 +85,6 @@
         <if test="checkOrderInfoDTO.orgId!=null">
             and i.org_id = #{checkOrderInfoDTO.orgId}
         </if>
-        <if test="checkOrderInfoDTO.projectId !=null">
-            and i.project_id = #{checkOrderInfoDTO.projectId}
-        </if>
         <if test="checkOrderInfoDTO.orderConfirmUser!=null">
             and o.order_confirm_user = #{checkOrderInfoDTO.orderConfirmUser}
         </if>
@@ -92,7 +94,10 @@
         <if test="checkOrderInfoDTO.orderClose!=null">
             and o.order_close = #{checkOrderInfoDTO.orderClose}
         </if>
-        order by o.order_confirm ASC ,o.order_close ASC,o.update_time desc
+        <if test="checkOrderInfoDTO.adCode!=null">
+            and (p.ad_code =#{checkOrderInfoDTO.adCode} or a.ancestors in (SELECT ancestors FROM data_ad_cd_b WHERE ancestors  like concat(concat('%', #{checkOrderInfoDTO.adCode}), '%')))
+        </if>
+        order by o.update_time ,o.order_confirm  ,o.order_close ,i.org_id
     </select>
 
 

+ 88 - 0
src/main/java/org/springblade/modules/business/check/order/vo/CheckOrderInfoVO.java

@@ -6,10 +6,14 @@
  */
 package org.springblade.modules.business.check.order.vo;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import org.springblade.modules.business.check.order.entity.CheckOrderInfoEntity;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
 
 /***
  * Date:2022/8/22
@@ -82,4 +86,88 @@ public class CheckOrderInfoVO extends CheckOrderInfoEntity {
 	 */
 	@ApiModelProperty(value = "是否确认")
 	private Integer isConfirm;
+
+	/**
+	 * 所属盟市
+	 */
+	@ApiModelProperty(value = "所属盟市")
+	private String adCity;
+
+	/**
+	 * 所属盟县旗区
+	 */
+	@ApiModelProperty(value = "所属盟县旗区")
+	private String adDist;
+
+	/**
+	 * 行政区
+	 */
+	@ApiModelProperty(value = "行政区")
+	private String areaName;
+
+	/**
+	 * 预警类别
+	 */
+	@ApiModelProperty(value = "预警类别")
+	private String warnKind;
+
+	/**
+	 * 是否雨量站
+	 */
+	@ApiModelProperty(value = "是否雨量站")
+	private Integer isRain;
+
+	/**
+	 * 是否河道站
+	 */
+	@ApiModelProperty(value = "是否河道站")
+	private Integer isRiver;
+
+	/**
+	 * 是否水库站
+	 */
+	@ApiModelProperty(value = "是否水库站")
+	private Integer isRes;
+
+	/**
+	 * 是否墒情站
+	 */
+	@ApiModelProperty(value = "是否墒情站")
+	private Integer isGround;
+
+	/**
+	 * 降水
+	 */
+	@ApiModelProperty(value = "降水")
+	private Double drp;
+
+	/**
+	 * 河道站水位
+	 */
+	@ApiModelProperty(value = "河道站水位")
+	private Double z;
+
+	/**
+	 * 水库站水位
+	 */
+	@ApiModelProperty(value = "水库站水位")
+	private Double rz;
+
+	/**
+	 * 最后上报时间
+	 */
+	@ApiModelProperty(value = "最后上报时间")
+	@DateTimeFormat(
+		pattern = "yyyy-MM-dd HH:mm:ss"
+	)
+	@JsonFormat(
+		pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8"
+	)
+	private Date lastUpTime;
+
+	/**
+	 * 维修时长
+	 */
+	@ApiModelProperty(value = "维修时长")
+	private String taskTime;
 }

+ 48 - 2
src/main/java/org/springblade/modules/business/check/order/wrapper/RtuCheckOrderWrapper.java

@@ -9,14 +9,17 @@ package org.springblade.modules.business.check.order.wrapper;
 import org.springblade.common.cache.DictBizCache;
 import org.springblade.core.mp.support.BaseEntityWrapper;
 import org.springblade.core.tool.utils.BeanUtil;
+import org.springblade.core.tool.utils.Func;
 import org.springblade.modules.business.check.order.entity.CheckOrderInfoEntity;
 import org.springblade.modules.business.check.order.vo.CheckOrderInfoVO;
 import org.springblade.modules.business.project.base.entity.ProjectInfoEntity;
 import org.springblade.modules.business.project.base.vo.ProjectInfoVO;
 import org.springblade.modules.business.project.base.wrapper.ProjectInfoWrapper;
+import org.springblade.modules.business.rtu.base.vo.RtuInfoVO;
 import org.springblade.modules.system.entity.DictBiz;
 
-import java.util.Objects;
+import java.time.Duration;
+import java.util.*;
 
 /***
  * Date:2022/8/22
@@ -38,16 +41,37 @@ public class RtuCheckOrderWrapper extends BaseEntityWrapper<CheckOrderInfoEntity
 		checkOrderInfoVO.setOrderFromName(biz.getDictValue());
 		biz=DictBizCache.getById(checkOrderInfoVO.getOrderStatusKey());
 		checkOrderInfoVO.setOrderStatusName(biz.getDictValue());
-
 		if (checkOrderInfoVO.getOrderConfirmUser() != null){
 			checkOrderInfoVO.setIsConfirm(1);
 		}else{
 			checkOrderInfoVO.setIsConfirm(0);
 		}
+		if (checkOrderInfoVO.getOrderConfirmTime()!=null) {
+			Duration duration = Func.between(checkOrderInfoVO.getOrderConfirmTime(), new Date());
+			long second = duration.getSeconds();
+			String taskTime = "";
+			if (second >= 60 * 60) {
+				if (second >= 24 * 60 * 60) {
+					taskTime = "" + second / (24 * 60 * 60) + "天";
+					second = second % (24 * 60 * 60);
+				}
+				if (second >= 60 * 60) {
+					taskTime += "" + second / (60 * 60) + "小时";
+					second = second % (60 * 60);
+				}
+				if (second >= 60) {
+					taskTime += "" + second / (60) + "分";
+				}
+			} else {
+				taskTime = "1小时内";
+			}
+			checkOrderInfoVO.setTaskTime(taskTime);
+		}
 		return checkOrderInfoVO;
 	}
 
 	public CheckOrderInfoVO addInfoVO(CheckOrderInfoVO checkOrderInfoVO) {
+		checkOrderInfoVO.setAreaName(checkOrderInfoVO.getAdCity() + "/" + checkOrderInfoVO.getAdDist());
 		DictBiz biz=DictBizCache.getById(checkOrderInfoVO.getOrderFromKey());
 		checkOrderInfoVO.setOrderFromName(biz.getDictValue());
 		biz=DictBizCache.getById(checkOrderInfoVO.getOrderStatusKey());
@@ -57,6 +81,28 @@ public class RtuCheckOrderWrapper extends BaseEntityWrapper<CheckOrderInfoEntity
 		}else{
 			checkOrderInfoVO.setIsConfirm(0);
 		}
+		if (checkOrderInfoVO.getOrderConfirmTime()!=null) {
+			Duration duration = Func.between(checkOrderInfoVO.getOrderConfirmTime(), new Date());
+			long second = duration.getSeconds();
+			String taskTime = "";
+			if (second >= 60 * 60) {
+				if (second >= 24 * 60 * 60) {
+					taskTime = "" + second / (24 * 60 * 60) + "天";
+					second = second % (24 * 60 * 60);
+				}
+				if (second >= 60 * 60) {
+					taskTime += "" + second / (60 * 60) + "小时";
+					second = second % (60 * 60);
+				}
+				if (second >= 60) {
+					taskTime += "" + second / (60) + "分";
+				}
+			} else {
+				taskTime = "1小时内";
+			}
+			checkOrderInfoVO.setTaskTime(taskTime);
+		}
 		return checkOrderInfoVO;
 	}
+
 }

+ 19 - 7
src/main/java/org/springblade/modules/business/check/process/controller/RtuOrderProcessController.java

@@ -6,7 +6,9 @@
  */
 package org.springblade.modules.business.check.process.controller;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
 import io.swagger.annotations.*;
 import lombok.AllArgsConstructor;
@@ -52,7 +54,7 @@ import java.util.List;
  * Remark:认为有必要的其他信息
  */
 @RestController
-@RequestMapping(AppConstant.APPLICATION_TEST_NAME + "/rtu/check/order/process")
+@RequestMapping("galaxy-business/rtu/check/order/process")
 @AllArgsConstructor
 @Api(value = "工单处理管理模块", tags = "工单处理管理模块")
 public class RtuOrderProcessController extends BladeController {
@@ -64,11 +66,17 @@ public class RtuOrderProcessController extends BladeController {
 	 * 分页
 	 */
 	@GetMapping("/list")
+	@ApiImplicitParams({
+		@ApiImplicitParam(name = "orderId", value = "工单ID", paramType = "query", dataType = "long")
+	})
 	@ApiOperationSupport(order = 2)
-	@ApiOperation(value = "分页")
-	public R<IPage<OrderProcessInfoVO>> list(Query query) {
-		IPage<OrderProcessInfoEntity> pages = rtuOrderProcessService.page(Condition.getPage(query));
-		return R.data(RtuOrderProcessWrapper.build().pageVO(pages));
+	@ApiOperation(value = "不分页", notes = "传入checkOrderInfoDTO")
+	public R<List<OrderProcessInfoVO>> list(OrderProcessInfoDTO orderProcessInfoDTO) {
+		LambdaQueryWrapper<OrderProcessInfoEntity> wrapper = Wrappers.<OrderProcessInfoEntity>query().lambda();
+		wrapper.eq(OrderProcessInfoEntity::getOrderId,orderProcessInfoDTO.getOrderId());
+		wrapper.orderByAsc(OrderProcessInfoEntity::getCreateTime);
+		List<OrderProcessInfoEntity> list = rtuOrderProcessService.list(wrapper);
+		return R.data(RtuOrderProcessWrapper.build().listVO(list));
 	}
 
 	/**
@@ -105,8 +113,12 @@ public class RtuOrderProcessController extends BladeController {
 	@ApiOperationSupport(order = 3)
 	@ApiOperation(value = "分页", notes = "传入checkOrderInfoDTO")
 	public R<IPage<OrderProcessInfoVO>> page(CheckOrderInfoDTO checkOrderInfoDTO, Query query) {
-		IPage<OrderProcessInfoEntity> pages = rtuOrderProcessService.selectPage(Condition.getPage(query), checkOrderInfoDTO);
-		return R.data(RtuOrderProcessWrapper.build().pageVO(pages));
+		IPage<OrderProcessInfoVO> pages = rtuOrderProcessService.selectPage(Condition.getPage(query), checkOrderInfoDTO);
+		List<OrderProcessInfoVO> list = pages.getRecords();
+		for (OrderProcessInfoVO v : list) {
+			RtuOrderProcessWrapper.build().addInfoVO(v);
+		}
+		return R.data(pages);
 	}
 
 

+ 2 - 10
src/main/java/org/springblade/modules/business/check/process/entity/OrderProcessInfoEntity.java

@@ -35,14 +35,12 @@ public class OrderProcessInfoEntity extends BaseEntity {
 	@ApiModelProperty("租户ID")
 	private String tenantId;
 
-
 	/**
 	 * 工单ID
 	 */
 	@ApiModelProperty("工单ID")
 	private Long orderId;
 
-
 	/**
 	 * 处理说明
 	 */
@@ -55,7 +53,6 @@ public class OrderProcessInfoEntity extends BaseEntity {
 	@ApiModelProperty("图片一是否拍摄")
 	private Integer basePhoto1Take;
 
-
 	/**
 	 * 图片一路径
 	 */
@@ -105,8 +102,6 @@ public class OrderProcessInfoEntity extends BaseEntity {
 	@ApiModelProperty("RTU图片路径")
 	private String rtuPhotoUrl;
 
-
-
 	/**
 	 * 测站运行状态:0 正常 1未修复
 	 */
@@ -119,6 +114,7 @@ public class OrderProcessInfoEntity extends BaseEntity {
 	@ApiModelProperty("翻斗式雨量计是否更换")
 	private Integer rainSensorReplace;
 
+
 	/**
 	 * 雨量计说明
 	 */
@@ -149,8 +145,6 @@ public class OrderProcessInfoEntity extends BaseEntity {
 	@ApiModelProperty("雨量计图片路径")
 	private String rainSensorPhotoUrl;
 
-
-
 	/**
 	 * 水位计是否更换:0 否,1更换
 	 */
@@ -175,8 +169,6 @@ public class OrderProcessInfoEntity extends BaseEntity {
 	@ApiModelProperty("水位计状态")
 	private Integer waterLevelSensorStatus;
 
-
-
 	/**
 	 * 水位计图片是否拍摄
 	 */
@@ -189,7 +181,6 @@ public class OrderProcessInfoEntity extends BaseEntity {
 	@ApiModelProperty("水位计图片路径")
 	private String waterSensorPhotoUrl;
 
-
 	/**
 	 * 墒情传感器是否更换:0 否,1更换
 	 */
@@ -314,4 +305,5 @@ public class OrderProcessInfoEntity extends BaseEntity {
 	 */
 	@ApiModelProperty("卫星通讯说明")
 	private String satelliteDesc;
+
 }

+ 1 - 1
src/main/java/org/springblade/modules/business/check/process/mapper/RtuOrderProcessMapper.java

@@ -25,7 +25,7 @@ import java.util.List;
  * Remark:认为有必要的其他信息
  */
 public interface RtuOrderProcessMapper  extends BaseMapper<OrderProcessInfoEntity> {
-	List<OrderProcessInfoEntity> selectPage(IPage page, @Param("checkOrderInfoDTO") CheckOrderInfoDTO checkOrderInfoDTO);
+	List<OrderProcessInfoVO> selectPage(IPage page, @Param("checkOrderInfoDTO") CheckOrderInfoDTO checkOrderInfoDTO);
 	/**
 	 * 查询当天提交的工单填报信息
 	 * @param processInfoDTO

+ 3 - 3
src/main/java/org/springblade/modules/business/check/process/mapper/RtuOrderProcessMapper.xml

@@ -129,14 +129,14 @@
         <result column="real_name" property="orderProcessUserName"/>
         <result column="dict_value" property="orderStatusName"/>
 
-
     </resultMap>
 
-    <select id="selectPage" resultMap="orderProcessInfoResultMap">
+    <select id="selectPage" resultMap="orderProcessInfoVOResultMap">
         SELECT
-        p.*
+        p.*,u.real_name
         FROM
         rtu_failure_check_order_process p
+        LEFT JOIN blade_user u ON u.id = p.update_user and u.is_deleted=0
         WHERE
         p.is_deleted = 0
         <if test="checkOrderInfoDTO.id!=null">

+ 1 - 1
src/main/java/org/springblade/modules/business/check/process/service/IRtuOrderProcessService.java

@@ -30,7 +30,7 @@ public interface IRtuOrderProcessService extends BaseService<OrderProcessInfoEnt
 	 * @param checkOrderInfoDTO
 	 * @return
 	 */
-	IPage<OrderProcessInfoEntity> selectPage(IPage<OrderProcessInfoEntity> page, CheckOrderInfoDTO checkOrderInfoDTO);
+	IPage<OrderProcessInfoVO> selectPage(IPage<OrderProcessInfoVO> page, CheckOrderInfoDTO checkOrderInfoDTO);
 
 	/**
 	 * 查询当天提交的工单填报信息

+ 1 - 1
src/main/java/org/springblade/modules/business/check/process/service/impl/RtuOrderProcessServiceImpl.java

@@ -30,7 +30,7 @@ import java.util.List;
 @Service
 public class RtuOrderProcessServiceImpl  extends BaseServiceImpl<RtuOrderProcessMapper, OrderProcessInfoEntity> implements IRtuOrderProcessService {
 	@Override
-	public IPage<OrderProcessInfoEntity> selectPage(IPage<OrderProcessInfoEntity> page, CheckOrderInfoDTO checkOrderInfoDTO) {
+	public IPage<OrderProcessInfoVO> selectPage(IPage<OrderProcessInfoVO> page, CheckOrderInfoDTO checkOrderInfoDTO) {
 		return page.setRecords(baseMapper.selectPage(page, checkOrderInfoDTO));
 	}
 

+ 9 - 1
src/main/java/org/springblade/modules/business/check/process/wrapper/RtuOrderProcessWrapper.java

@@ -9,6 +9,7 @@ package org.springblade.modules.business.check.process.wrapper;
 import org.springblade.common.cache.DictBizCache;
 import org.springblade.core.mp.support.BaseEntityWrapper;
 import org.springblade.core.tool.utils.BeanUtil;
+import org.springblade.modules.business.check.order.vo.CheckOrderInfoVO;
 import org.springblade.modules.business.check.process.entity.OrderProcessInfoEntity;
 import org.springblade.modules.business.check.process.vo.OrderProcessInfoVO;
 import org.springblade.modules.business.project.base.entity.ProjectInfoEntity;
@@ -30,10 +31,17 @@ public class RtuOrderProcessWrapper extends BaseEntityWrapper<OrderProcessInfoEn
 	public static RtuOrderProcessWrapper build() {
 		return new RtuOrderProcessWrapper();
 	}
+
 	@Override
 	public OrderProcessInfoVO entityVO(OrderProcessInfoEntity entity) {
 		OrderProcessInfoVO orderProcessInfoVO = Objects.requireNonNull(BeanUtil.copy(entity, OrderProcessInfoVO.class));
-		DictBiz biz= DictBizCache.getById(entity.getOrderStatusKey());
+		DictBiz biz = DictBizCache.getById(entity.getOrderStatusKey());
+		orderProcessInfoVO.setOrderStatusName(biz.getDictValue());
+		return orderProcessInfoVO;
+	}
+
+	public OrderProcessInfoVO addInfoVO(OrderProcessInfoVO orderProcessInfoVO) {
+		DictBiz biz = DictBizCache.getById(orderProcessInfoVO.getOrderStatusKey());
 		orderProcessInfoVO.setOrderStatusName(biz.getDictValue());
 		return orderProcessInfoVO;
 	}

+ 672 - 39
src/main/java/org/springblade/modules/business/data/manage/controller/DataManageController.java

@@ -11,6 +11,9 @@ import com.alibaba.excel.EasyExcel;
 import com.alibaba.excel.context.AnalysisContext;
 import com.alibaba.excel.read.listener.ReadListener;
 import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.bstek.ureport.parser.impl.searchform.DatetimeInputParser;
 import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
 import io.swagger.annotations.Api;
@@ -20,15 +23,23 @@ import org.springblade.common.cache.DictBizCache;
 import org.springblade.core.boot.ctrl.BladeController;
 import org.springblade.core.launch.constant.AppConstant;
 import org.springblade.core.log.annotation.ApiLog;
+import org.springblade.core.mp.support.Condition;
+import org.springblade.core.mp.support.Query;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.ConcurrentDateFormat;
 import org.springblade.core.tool.utils.Func;
+import org.springblade.modules.baseinfo.stbase.entity.MvAttStBaseEntity;
+import org.springblade.modules.baseinfo.stbase.service.IMvAttStBaseService;
+import org.springblade.modules.business.data.manage.entity.RtuImportRecordEntity;
 import org.springblade.modules.business.data.manage.entity.RtuInfoTableDataEntity;
+import org.springblade.modules.business.data.manage.service.IRtuImportRecordService;
 import org.springblade.modules.business.project.base.entity.ProjectInfoEntity;
 import org.springblade.modules.business.project.base.service.IProjectBaseInfoService;
 import org.springblade.modules.business.rtu.base.entity.RtuInfoEntity;
 import org.springblade.modules.business.rtu.base.service.IRtuBaseInfoService;
+import org.springblade.modules.system.entity.Dept;
 import org.springblade.modules.system.entity.DictBiz;
+import org.springblade.modules.system.service.IDeptService;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
@@ -46,7 +57,7 @@ import java.util.*;
  * Remark:认为有必要的其他信息
  */
 @RestController
-@RequestMapping(AppConstant.APPLICATION_TEST_NAME + "/data/manage")
+@RequestMapping("galaxy-business/data/manage")
 @AllArgsConstructor
 @Api(value = "数据管理模块", tags = "数据管理模块")
 public class DataManageController extends BladeController {
@@ -55,6 +66,11 @@ public class DataManageController extends BladeController {
 
 	final IRtuBaseInfoService rtuBaseInfoService;
 
+	final IRtuImportRecordService rtuImportRecordService;
+	final IDeptService deptService;
+
+	final IMvAttStBaseService mvAttStBaseService;
+
 	private Double tranformPos(String lng) {
 		lng = lng
 			.trim()
@@ -193,6 +209,15 @@ public class DataManageController extends BladeController {
 		return str.matches(regex);
 	}
 
+	@GetMapping("/page")
+	@ApiOperationSupport(order = 2)
+	@ApiOperation(value = "分页")
+	public R<IPage<RtuImportRecordEntity>> list(Query query) {
+		LambdaQueryWrapper<RtuImportRecordEntity> wrapper = Wrappers.<RtuImportRecordEntity>query().lambda();
+		wrapper.orderByDesc(RtuImportRecordEntity::getImportTime);
+		return R.data(rtuImportRecordService.page(Condition.getPage(query),wrapper));
+	}
+
 
 	@ApiLog("测站信息-导入")
 	@GetMapping(value = "/import/rtu/test")
@@ -259,10 +284,10 @@ public class DataManageController extends BladeController {
 
 
 	@ApiLog("测站信息-导入")
-	@PostMapping(value = "/import/rtu")
+	@PostMapping(value = "/import/rtu2")
 	@ApiOperationSupport(order = 6)
 	@ApiOperation(value = "导入测站信息", notes = "")
-	public R<Map<String, String>> importRtuTable(MultipartFile file, @RequestParam Map<String, Object> postData) {
+	public R<Map<String, String>> importRtuTable2(MultipartFile file, @RequestParam Map<String, Object> postData) {
 		try {
 			if (file.isEmpty() || !postData.containsKey("projectId")) {
 				return R.fail("上传文件为空");
@@ -371,20 +396,20 @@ public class DataManageController extends BladeController {
 											for (int l = 0; l < location.length(); l++) {
 												String subtext = location.substring(l, l + 1);
 												if (Func.isNumeric(subtext)) {
-													String str = textArr.get(textArr.size()-1);
+													String str = textArr.get(textArr.size() - 1);
 													str += subtext;
-													textArr.set(textArr.size()-1,str);
+													textArr.set(textArr.size() - 1, str);
 												} else {
 													textArr.add("");
 												}
 											}
 											ArrayList<String> tmp = new ArrayList<>();
-											for(String text:textArr){
-												if (text.length()>0){
+											for (String text : textArr) {
+												if (text.length() > 0) {
 													tmp.add(text);
 												}
 											}
-											if (tmp.size() >=4 ) {
+											if (tmp.size() >= 4) {
 												//度分秒,秒有小数点
 												String v = tmp.get(2) + "." + tmp.get(3);
 												double lat = Double.parseDouble(v);
@@ -421,20 +446,20 @@ public class DataManageController extends BladeController {
 											for (int l = 0; l < location.length(); l++) {
 												String subtext = location.substring(l, l + 1);
 												if (Func.isNumeric(subtext)) {
-													String str = textArr.get(textArr.size()-1);
+													String str = textArr.get(textArr.size() - 1);
 													str += subtext;
-													textArr.set(textArr.size()-1,str);
+													textArr.set(textArr.size() - 1, str);
 												} else {
 													textArr.add("");
 												}
 											}
 											ArrayList<String> tmp = new ArrayList<>();
-											for(String text:textArr){
-												if (text.length()>0){
+											for (String text : textArr) {
+												if (text.length() > 0) {
 													tmp.add(text);
 												}
 											}
-											if (tmp.size() >=4 ) {
+											if (tmp.size() >= 4) {
 												//度分秒,秒有小数点
 												String v = tmp.get(2) + "." + tmp.get(3);
 												double lat = Double.parseDouble(v);
@@ -483,16 +508,16 @@ public class DataManageController extends BladeController {
 											for (int l = 0; l < replaceDate.length(); l++) {
 												String subtext = replaceDate.substring(l, l + 1);
 												if (Func.isNumeric(subtext)) {
-													String str = textArr.get(textArr.size()-1);
+													String str = textArr.get(textArr.size() - 1);
 													str += subtext;
-													textArr.set(textArr.size()-1,str);
+													textArr.set(textArr.size() - 1, str);
 												} else {
 													textArr.add("");
 												}
 											}
 											ArrayList<String> tmp = new ArrayList<>();
-											for(String text:textArr){
-												if (text.length()>0){
+											for (String text : textArr) {
+												if (text.length() > 0) {
 													tmp.add(text);
 												}
 											}
@@ -554,16 +579,16 @@ public class DataManageController extends BladeController {
 											for (int l = 0; l < replaceDate.length(); l++) {
 												String subtext = replaceDate.substring(l, l + 1);
 												if (Func.isNumeric(subtext)) {
-													String str = textArr.get(textArr.size()-1);
+													String str = textArr.get(textArr.size() - 1);
 													str += subtext;
-													textArr.set(textArr.size()-1,str);
+													textArr.set(textArr.size() - 1, str);
 												} else {
 													textArr.add("");
 												}
 											}
 											ArrayList<String> tmp = new ArrayList<>();
-											for(String text:textArr){
-												if (text.length()>0){
+											for (String text : textArr) {
+												if (text.length() > 0) {
 													tmp.add(text);
 												}
 											}
@@ -606,16 +631,16 @@ public class DataManageController extends BladeController {
 											for (int l = 0; l < replaceDate.length(); l++) {
 												String subtext = replaceDate.substring(l, l + 1);
 												if (Func.isNumeric(subtext)) {
-													String str = textArr.get(textArr.size()-1);
+													String str = textArr.get(textArr.size() - 1);
 													str += subtext;
-													textArr.set(textArr.size()-1,str);
+													textArr.set(textArr.size() - 1, str);
 												} else {
 													textArr.add("");
 												}
 											}
 											ArrayList<String> tmp = new ArrayList<>();
-											for(String text:textArr){
-												if (text.length()>0){
+											for (String text : textArr) {
+												if (text.length() > 0) {
 													tmp.add(text);
 												}
 											}
@@ -658,16 +683,16 @@ public class DataManageController extends BladeController {
 											for (int l = 0; l < replaceDate.length(); l++) {
 												String subtext = replaceDate.substring(l, l + 1);
 												if (Func.isNumeric(subtext)) {
-													String str = textArr.get(textArr.size()-1);
+													String str = textArr.get(textArr.size() - 1);
 													str += subtext;
-													textArr.set(textArr.size()-1,str);
+													textArr.set(textArr.size() - 1, str);
 												} else {
 													textArr.add("");
 												}
 											}
 											ArrayList<String> tmp = new ArrayList<>();
-											for(String text:textArr){
-												if (text.length()>0){
+											for (String text : textArr) {
+												if (text.length() > 0) {
 													tmp.add(text);
 												}
 											}
@@ -696,16 +721,16 @@ public class DataManageController extends BladeController {
 											for (int l = 0; l < replaceDate.length(); l++) {
 												String subtext = replaceDate.substring(l, l + 1);
 												if (Func.isNumeric(subtext)) {
-													String str = textArr.get(textArr.size()-1);
+													String str = textArr.get(textArr.size() - 1);
 													str += subtext;
-													textArr.set(textArr.size()-1,str);
+													textArr.set(textArr.size() - 1, str);
 												} else {
 													textArr.add("");
 												}
 											}
 											ArrayList<String> tmp = new ArrayList<>();
-											for(String text:textArr){
-												if (text.length()>0){
+											for (String text : textArr) {
+												if (text.length() > 0) {
 													tmp.add(text);
 												}
 											}
@@ -742,16 +767,16 @@ public class DataManageController extends BladeController {
 											for (int l = 0; l < replaceDate.length(); l++) {
 												String subtext = replaceDate.substring(l, l + 1);
 												if (Func.isNumeric(subtext)) {
-													String str = textArr.get(textArr.size()-1);
+													String str = textArr.get(textArr.size() - 1);
 													str += subtext;
-													textArr.set(textArr.size()-1,str);
+													textArr.set(textArr.size() - 1, str);
 												} else {
 													textArr.add("");
 												}
 											}
 											ArrayList<String> tmp = new ArrayList<>();
-											for(String text:textArr){
-												if (text.length()>0){
+											for (String text : textArr) {
+												if (text.length() > 0) {
 													tmp.add(text);
 												}
 											}
@@ -807,7 +832,611 @@ public class DataManageController extends BladeController {
 
 										System.out.println("save record********************");
 
-									}else{
+									} else {
+										System.out.println(" record is null ********************");
+										System.out.println(JSON.toJSON(dataEntity).toString());
+									}
+								} else {
+									System.out.println(" record is null ********************");
+									System.out.println(JSON.toJSON(dataEntity).toString());
+								}
+							} else {
+								System.out.println(" record is null ********************");
+								System.out.println(JSON.toJSON(dataEntity).toString());
+							}
+
+						}
+
+						//更新导入时间
+						projectBaseInfoService.updateImportTime(projectId, new Date());
+					}
+				}).sheet().doRead();
+
+			} else {
+				return R.fail("上传文件格式错误");
+			}
+
+			return R.success("导入成功");
+		} catch (IOException e) {
+			e.printStackTrace();
+			return R.fail("导入错误 " + e.getMessage());
+		} catch (Exception e) {
+			e.printStackTrace();
+			return R.fail("导入错误 " + e.getMessage());
+		}
+	}
+
+	@ApiLog("测站信息-导入")
+	@PostMapping(value = "/import/rtu")
+	@ApiOperationSupport(order = 6)
+	@ApiOperation(value = "导入测站信息", notes = "")
+	public R<Map<String, String>> importRtuTable(MultipartFile file, @RequestParam Map<String, Object> postData) {
+		try {
+			if (file.isEmpty() || !postData.containsKey("orgId")) {
+				return R.fail("上传文件为空");
+			}
+			if (!postData.containsKey("orgId")) {
+				return R.fail("参数为空");
+			}
+			String orgIdText = (String) postData.get("orgId");
+			Long orgId = Long.parseLong(orgIdText);
+
+			Dept dept=deptService.getById(orgId);
+
+			RtuImportRecordEntity recordEntity=new RtuImportRecordEntity();
+			recordEntity.setImportStatus(0L);
+			recordEntity.setOrgName(dept.getDeptName());
+			recordEntity.setOrgId(orgId);
+			recordEntity.setImportTime(Func.formatDateTime(new Date()));
+			this.rtuImportRecordService.save(recordEntity);
+
+
+
+			//	ProjectInfoEntity projectInfoEntity = projectBaseInfoService.getById(projectId);
+			//	Long orgId = projectInfoEntity.getOrgId();
+
+			InputStream inputStream = file.getInputStream();
+			String fileName = file.getOriginalFilename();
+			List<RtuInfoTableDataEntity> list = new LinkedList<>();
+			if (fileName.endsWith("xlsx")) {
+				EasyExcel.read(inputStream, RtuInfoTableDataEntity.class, new ReadListener() {
+					@Override
+					public void invoke(Object o, AnalysisContext analysisContext) {
+						RtuInfoTableDataEntity dataEntity = (RtuInfoTableDataEntity) o;
+						list.add(dataEntity);
+					}
+
+					@Override
+					public void doAfterAllAnalysed(AnalysisContext analysisContext) {
+						for (int i = 2; i < list.size(); i++) {
+							RtuInfoTableDataEntity dataEntity = list.get(i);
+							if (null != dataEntity.getRtuCode()) {
+								String rtuCode = dataEntity.getRtuCode().trim();
+								if (rtuCode.length() > 0) {
+									if (isLetterDigit(rtuCode)) {
+										RtuInfoEntity rtuInfoEntity = new RtuInfoEntity();
+										rtuInfoEntity.setRtuCode(rtuCode);
+										if (null != dataEntity.getCity()) {
+											rtuInfoEntity.setAdCity(dataEntity.getCity().trim());
+										}
+										if (null != dataEntity.getDist()) {
+											rtuInfoEntity.setAdDist(dataEntity.getDist().trim());
+										}
+										if (null != dataEntity.getRtuName()) {
+											rtuInfoEntity.setRtuName(dataEntity.getRtuName().trim());
+										}
+										if (null != dataEntity.getRtuKind()) {
+											rtuInfoEntity.setIsRain(0);
+											rtuInfoEntity.setIsRiver(0);
+											rtuInfoEntity.setIsRes(0);
+											rtuInfoEntity.setIsGround(0);
+											String kinds = dataEntity.getRtuKind().trim();
+											if (kinds.length() > 0) {
+												List<DictBiz> bizs = DictBizCache.getList("rtu_kind");
+												String kindList = "";
+												if (kinds.contains("水位")) {
+													rtuInfoEntity.setIsRes(1);
+													rtuInfoEntity.setIsRiver(1);
+													for (DictBiz biz : bizs) {
+														if (biz.getDictKey().equals("river")) {
+															if (kindList.length() > 0) {
+																kindList += ",";
+															}
+															kindList += Long.toString(biz.getId());
+														} else if (biz.getDictKey().equals("rsvr")) {
+															if (kindList.length() > 0) {
+																kindList += ",";
+															}
+															kindList += Long.toString(biz.getId());
+														}
+													}
+													rtuInfoEntity.setRtuKinds(kindList);
+												}
+												if (kinds.contains("雨量")) {
+													rtuInfoEntity.setIsRain(1);
+													for (DictBiz biz : bizs) {
+														if (biz.getDictKey().equals("rain")) {
+															if (kindList.length() > 0) {
+																kindList += ",";
+															}
+															kindList += Long.toString(biz.getId());
+															break;
+														}
+													}
+												}
+												if (kinds.contains("墒情")) {
+													rtuInfoEntity.setIsGround(1);
+													for (DictBiz biz : bizs) {
+														if (biz.getDictKey().equals("ground")) {
+															if (kindList.length() > 0) {
+																kindList += ",";
+															}
+															kindList += Long.toString(biz.getId());
+															break;
+														}
+													}
+												}
+												rtuInfoEntity.setRtuKinds(kindList);
+											}
+										}
+
+										if (null != dataEntity.getLocationDesc()) {
+											rtuInfoEntity.setLocationDesc(dataEntity.getLocationDesc().trim());
+										}
+
+										if (null != dataEntity.getLng()) {
+											ArrayList<String> textArr = new ArrayList<>();
+											textArr.add("");
+											String location = dataEntity.getLng().trim();
+											for (int l = 0; l < location.length(); l++) {
+												String subtext = location.substring(l, l + 1);
+												if (Func.isNumeric(subtext)) {
+													String str = textArr.get(textArr.size() - 1);
+													str += subtext;
+													textArr.set(textArr.size() - 1, str);
+												} else {
+													textArr.add("");
+												}
+											}
+											ArrayList<String> tmp = new ArrayList<>();
+											for (String text : textArr) {
+												if (text.length() > 0) {
+													tmp.add(text);
+												}
+											}
+											if (tmp.size() >= 4) {
+												//度分秒,秒有小数点
+												String v = tmp.get(2) + "." + tmp.get(3);
+												double lat = Double.parseDouble(v);
+												lat = lat / 60.0;
+												v = tmp.get(1);
+												lat = (Double.parseDouble(v) + lat) / 60.0;
+												v = tmp.get(0);
+												lat = Double.parseDouble(v) + lat;
+												rtuInfoEntity.setLng(String.format("%.06f", lat));
+											} else if (tmp.size() == 3) {
+												//度分秒
+												String v = tmp.get(2);
+												double lat = Double.parseDouble(v);
+												lat = lat / 60.0;
+												v = tmp.get(1);
+												lat = (Double.parseDouble(v) + lat) / 60.0;
+												v = tmp.get(0);
+												lat = Double.parseDouble(v) + lat;
+												rtuInfoEntity.setLng(String.format("%.06f", lat));
+
+											} else if (tmp.size() == 2) {
+												//度
+												String v = tmp.get(0) + "." + tmp.get(1);
+												double lat = Double.parseDouble(v);
+												rtuInfoEntity.setLng(String.format("%.06f", lat));
+											}
+
+										}
+
+										if (null != dataEntity.getLat()) {
+											ArrayList<String> textArr = new ArrayList<>();
+											textArr.add("");
+											String location = dataEntity.getLat().trim();
+											for (int l = 0; l < location.length(); l++) {
+												String subtext = location.substring(l, l + 1);
+												if (Func.isNumeric(subtext)) {
+													String str = textArr.get(textArr.size() - 1);
+													str += subtext;
+													textArr.set(textArr.size() - 1, str);
+												} else {
+													textArr.add("");
+												}
+											}
+											ArrayList<String> tmp = new ArrayList<>();
+											for (String text : textArr) {
+												if (text.length() > 0) {
+													tmp.add(text);
+												}
+											}
+											if (tmp.size() >= 4) {
+												//度分秒,秒有小数点
+												String v = tmp.get(2) + "." + tmp.get(3);
+												double lat = Double.parseDouble(v);
+												lat = lat / 60.0;
+												v = tmp.get(1);
+												lat = (Double.parseDouble(v) + lat) / 60.0;
+												v = tmp.get(0);
+												lat = Double.parseDouble(v) + lat;
+												rtuInfoEntity.setLat(String.format("%.06f", lat));
+											} else if (tmp.size() == 3) {
+												//度分秒
+												String v = tmp.get(2);
+												double lat = Double.parseDouble(v);
+												lat = lat / 60.0;
+												v = tmp.get(1);
+												lat = (Double.parseDouble(v) + lat) / 60.0;
+												v = tmp.get(0);
+												lat = Double.parseDouble(v) + lat;
+												rtuInfoEntity.setLat(String.format("%.06f", lat));
+
+											} else if (tmp.size() == 2) {
+												//度
+												String v = tmp.get(0) + "." + tmp.get(1);
+												double lat = Double.parseDouble(v);
+												rtuInfoEntity.setLat(String.format("%.06f", lat));
+											}
+
+										}
+										if (null != dataEntity.getManageCompany()) {
+											rtuInfoEntity.setManageCompany(dataEntity.getManageCompany().trim());
+										}
+
+
+										if (null != dataEntity.getRtuBrand()) {
+											rtuInfoEntity.setRtuBrand(dataEntity.getRtuBrand().trim());
+										}
+
+										if (null != dataEntity.getRtuModel()) {
+											rtuInfoEntity.setRtuModel(dataEntity.getRtuModel().trim());
+										}
+
+										if (null != dataEntity.getRtuReplaceDate()) {
+											ArrayList<String> textArr = new ArrayList<>();
+											textArr.add("");
+											String replaceDate = dataEntity.getRtuReplaceDate().trim();
+											for (int l = 0; l < replaceDate.length(); l++) {
+												String subtext = replaceDate.substring(l, l + 1);
+												if (Func.isNumeric(subtext)) {
+													String str = textArr.get(textArr.size() - 1);
+													str += subtext;
+													textArr.set(textArr.size() - 1, str);
+												} else {
+													textArr.add("");
+												}
+											}
+											ArrayList<String> tmp = new ArrayList<>();
+											for (String text : textArr) {
+												if (text.length() > 0) {
+													tmp.add(text);
+												}
+											}
+
+											if (tmp.size() >= 3) {
+												String v = tmp.get(0) + "-" + tmp.get(1) + "-" + tmp.get(2);
+												Date dt = Func.parse(v, ConcurrentDateFormat.of("yyyy-MM-dd"));
+												rtuInfoEntity.setRtuReplaceDate(dt);
+											} else if (tmp.size() == 2) {
+												String v = tmp.get(0) + "-" + tmp.get(1) + "-01";
+												Date dt = Func.parse(v, ConcurrentDateFormat.of("yyyy-MM-dd"));
+												rtuInfoEntity.setRtuReplaceDate(dt);
+											}
+
+										}
+										if (null != dataEntity.getToSheng()) {
+											if (dataEntity.getToSheng().trim().equals("是")) {
+												rtuInfoEntity.setDatagramToSheng(1);
+											} else {
+												rtuInfoEntity.setDatagramToSheng(0);
+											}
+										} else {
+											rtuInfoEntity.setDatagramToSheng(0);
+										}
+
+										if (null != dataEntity.getToShi()) {
+											if (dataEntity.getToShi().trim().equals("是")) {
+												rtuInfoEntity.setDatagramToShi(1);
+											} else {
+												rtuInfoEntity.setDatagramToShi(0);
+											}
+										} else {
+											rtuInfoEntity.setDatagramToShi(0);
+										}
+
+										if (null != dataEntity.getToQu()) {
+											if (dataEntity.getToQu().trim().equals("是")) {
+												rtuInfoEntity.setDatagramToQu(1);
+											} else {
+												rtuInfoEntity.setDatagramToQu(0);
+											}
+										} else {
+											rtuInfoEntity.setDatagramToQu(0);
+										}
+
+										if (null != dataEntity.getRainSensorBrand()) {
+											rtuInfoEntity.setRainSensorBrand(dataEntity.getRainSensorBrand().trim());
+										}
+
+										if (null != dataEntity.getRainSensorModel()) {
+											rtuInfoEntity.setRainSensorModel(dataEntity.getRainSensorModel().trim());
+										}
+
+										if (null != dataEntity.getRainSensorReplaceDate()) {
+
+											ArrayList<String> textArr = new ArrayList<>();
+											textArr.add("");
+											String replaceDate = dataEntity.getRainSensorReplaceDate().trim();
+											for (int l = 0; l < replaceDate.length(); l++) {
+												String subtext = replaceDate.substring(l, l + 1);
+												if (Func.isNumeric(subtext)) {
+													String str = textArr.get(textArr.size() - 1);
+													str += subtext;
+													textArr.set(textArr.size() - 1, str);
+												} else {
+													textArr.add("");
+												}
+											}
+											ArrayList<String> tmp = new ArrayList<>();
+											for (String text : textArr) {
+												if (text.length() > 0) {
+													tmp.add(text);
+												}
+											}
+
+											if (tmp.size() >= 3) {
+												String v = tmp.get(0) + "-" + tmp.get(1) + "-" + tmp.get(2);
+												Date dt = Func.parse(v, ConcurrentDateFormat.of("yyyy-MM-dd"));
+												rtuInfoEntity.setRainSensorReplaceDate(dt);
+											} else if (tmp.size() == 2) {
+												String v = tmp.get(0) + "-" + tmp.get(1) + "-01";
+												Date dt = Func.parse(v, ConcurrentDateFormat.of("yyyy-MM-dd"));
+												rtuInfoEntity.setRainSensorReplaceDate(dt);
+											}
+
+
+										}
+
+										if (null != dataEntity.getWaterSensorType()) {
+											List<DictBiz> bizs = DictBizCache.getList("water_level_sensor_type");
+											for (DictBiz biz : bizs) {
+												if (dataEntity.getWaterSensorType().trim().contains(biz.getDictValue())) {
+													rtuInfoEntity.setWaterSensorType(biz.getId());
+													break;
+												}
+											}
+										}
+
+										if (null != dataEntity.getWaterSensorBrand()) {
+											rtuInfoEntity.setWaterSensorBrand(dataEntity.getWaterSensorBrand().trim());
+										}
+
+										if (null != dataEntity.getWaterSensorModel()) {
+											rtuInfoEntity.setWaterSensorModel(dataEntity.getWaterSensorModel().trim());
+										}
+
+										if (null != dataEntity.getWaterSensorReplaceDate()) {
+											ArrayList<String> textArr = new ArrayList<>();
+											textArr.add("");
+											String replaceDate = dataEntity.getWaterSensorReplaceDate().trim();
+											for (int l = 0; l < replaceDate.length(); l++) {
+												String subtext = replaceDate.substring(l, l + 1);
+												if (Func.isNumeric(subtext)) {
+													String str = textArr.get(textArr.size() - 1);
+													str += subtext;
+													textArr.set(textArr.size() - 1, str);
+												} else {
+													textArr.add("");
+												}
+											}
+											ArrayList<String> tmp = new ArrayList<>();
+											for (String text : textArr) {
+												if (text.length() > 0) {
+													tmp.add(text);
+												}
+											}
+
+											if (tmp.size() >= 3) {
+												String v = tmp.get(0) + "-" + tmp.get(1) + "-" + tmp.get(2);
+												Date dt = Func.parse(v, ConcurrentDateFormat.of("yyyy-MM-dd"));
+												rtuInfoEntity.setWaterSensorReplaceDate(dt);
+											} else if (tmp.size() == 2) {
+												String v = tmp.get(0) + "-" + tmp.get(1) + "-01";
+												Date dt = Func.parse(v, ConcurrentDateFormat.of("yyyy-MM-dd"));
+												rtuInfoEntity.setWaterSensorReplaceDate(dt);
+											}
+
+
+										}
+
+										if (null != dataEntity.getGroundSensorType()) {
+											List<DictBiz> bizs = DictBizCache.getList("ground_water_sensor_type");
+											for (DictBiz biz : bizs) {
+												if (dataEntity.getGroundSensorType().trim().contains(biz.getDictValue())) {
+													rtuInfoEntity.setGroundSensorType(biz.getId());
+													break;
+												}
+											}
+										}
+
+										if (null != dataEntity.getGroundSensorBrand()) {
+											rtuInfoEntity.setGroundSensorBrand(dataEntity.getGroundSensorBrand().trim());
+										}
+
+										if (null != dataEntity.getGroundSensorModel()) {
+											rtuInfoEntity.setGroundSensorModel(dataEntity.getGroundSensorModel().trim());
+										}
+
+										if (null != dataEntity.getGroundSensorReplaceDate()) {
+											ArrayList<String> textArr = new ArrayList<>();
+											textArr.add("");
+											String replaceDate = dataEntity.getGroundSensorReplaceDate().trim();
+											for (int l = 0; l < replaceDate.length(); l++) {
+												String subtext = replaceDate.substring(l, l + 1);
+												if (Func.isNumeric(subtext)) {
+													String str = textArr.get(textArr.size() - 1);
+													str += subtext;
+													textArr.set(textArr.size() - 1, str);
+												} else {
+													textArr.add("");
+												}
+											}
+											ArrayList<String> tmp = new ArrayList<>();
+											for (String text : textArr) {
+												if (text.length() > 0) {
+													tmp.add(text);
+												}
+											}
+
+											if (tmp.size() >= 3) {
+												String v = tmp.get(0) + "-" + tmp.get(1) + "-" + tmp.get(2);
+												Date dt = Func.parse(v, ConcurrentDateFormat.of("yyyy-MM-dd"));
+												rtuInfoEntity.setGroundSensorReplaceDate(dt);
+											} else if (tmp.size() == 2) {
+												String v = tmp.get(0) + "-" + tmp.get(1) + "-01";
+												Date dt = Func.parse(v, ConcurrentDateFormat.of("yyyy-MM-dd"));
+												rtuInfoEntity.setGroundSensorReplaceDate(dt);
+											}
+
+
+										}
+
+										if (null != dataEntity.getBatteryModel()) {
+											rtuInfoEntity.setBatteryModel(dataEntity.getBatteryModel().trim());
+										}
+
+										if (null != dataEntity.getBatteryReplaceDate()) {
+											ArrayList<String> textArr = new ArrayList<>();
+											textArr.add("");
+											String replaceDate = dataEntity.getBatteryReplaceDate().trim();
+											for (int l = 0; l < replaceDate.length(); l++) {
+												String subtext = replaceDate.substring(l, l + 1);
+												if (Func.isNumeric(subtext)) {
+													String str = textArr.get(textArr.size() - 1);
+													str += subtext;
+													textArr.set(textArr.size() - 1, str);
+												} else {
+													textArr.add("");
+												}
+											}
+											ArrayList<String> tmp = new ArrayList<>();
+											for (String text : textArr) {
+												if (text.length() > 0) {
+													tmp.add(text);
+												}
+											}
+
+											if (tmp.size() >= 3) {
+												String v = tmp.get(0) + "-" + tmp.get(1) + "-" + tmp.get(2);
+												Date dt = Func.parse(v, ConcurrentDateFormat.of("yyyy-MM-dd"));
+												rtuInfoEntity.setBatteryReplaceDate(dt);
+											} else if (tmp.size() == 2) {
+												String v = tmp.get(0) + "-" + tmp.get(1) + "-01";
+												Date dt = Func.parse(v, ConcurrentDateFormat.of("yyyy-MM-dd"));
+												rtuInfoEntity.setBatteryReplaceDate(dt);
+											}
+
+
+										}
+
+										if (null != dataEntity.getSunModel()) {
+											rtuInfoEntity.setSunPowerModel(dataEntity.getSunModel().trim());
+										}
+
+										if (null != dataEntity.getSimId()) {
+											rtuInfoEntity.setNetworkSimId(dataEntity.getSimId().trim());
+										}
+
+										if (null != dataEntity.getSimPay()) {
+											rtuInfoEntity.setNetworkPayer(dataEntity.getSimPay().trim());
+										}
+
+										if (null != dataEntity.getSimOverdate()) {
+											ArrayList<String> textArr = new ArrayList<>();
+											textArr.add("");
+											String replaceDate = dataEntity.getSimOverdate().trim();
+											for (int l = 0; l < replaceDate.length(); l++) {
+												String subtext = replaceDate.substring(l, l + 1);
+												if (Func.isNumeric(subtext)) {
+													String str = textArr.get(textArr.size() - 1);
+													str += subtext;
+													textArr.set(textArr.size() - 1, str);
+												} else {
+													textArr.add("");
+												}
+											}
+											ArrayList<String> tmp = new ArrayList<>();
+											for (String text : textArr) {
+												if (text.length() > 0) {
+													tmp.add(text);
+												}
+											}
+
+											if (tmp.size() >= 3) {
+												String v = tmp.get(0) + "-" + tmp.get(1) + "-" + tmp.get(2);
+												Date dt = Func.parse(v, ConcurrentDateFormat.of("yyyy-MM-dd"));
+												rtuInfoEntity.setNetworkPayEndDate(dt);
+											} else if (tmp.size() == 2) {
+												String v = tmp.get(0) + "-" + tmp.get(1) + "-01";
+												Date dt = Func.parse(v, ConcurrentDateFormat.of("yyyy-MM-dd"));
+												rtuInfoEntity.setNetworkPayEndDate(dt);
+											}
+
+
+										}
+
+										if (null != dataEntity.getSatellite()) {
+											if (dataEntity.getSatellite().trim().equals("是")) {
+												rtuInfoEntity.setIsSatellite(1);
+											} else {
+												rtuInfoEntity.setIsSatellite(0);
+											}
+
+										} else {
+											rtuInfoEntity.setIsSatellite(0);
+										}
+
+										if (null != dataEntity.getSatelliteModel()) {
+											List<DictBiz> bizs = DictBizCache.getList("satellite_model");
+											for (DictBiz biz : bizs) {
+												if (dataEntity.getSatelliteModel().trim().contains(biz.getDictValue())) {
+													rtuInfoEntity.setSatelliteModel(biz.getId());
+													break;
+												}
+											}
+
+										}
+
+										if (null != dataEntity.getRemark()) {
+											rtuInfoEntity.setRemark(dataEntity.getRemark().trim());
+										}
+
+										//rtuInfoEntity.setProjectId(projectId);
+										rtuInfoEntity.setOrgId(orgId);
+
+										LambdaQueryWrapper<MvAttStBaseEntity> wrapper = Wrappers.<MvAttStBaseEntity>query().lambda();
+										wrapper.eq(MvAttStBaseEntity::getIsDeleted,0);
+										wrapper.eq(MvAttStBaseEntity::getStCode,rtuInfoEntity.getRtuCode());
+
+
+//										MvAttStBaseEntity mvAttStBaseEntity=mvAttStBaseService.getOne(wrapper);
+//										if (null != mvAttStBaseEntity){
+//											rtuInfoEntity.
+//										}
+
+										RtuInfoEntity entity = rtuBaseInfoService.rtuInfoByRtuCode(rtuInfoEntity.getRtuCode());
+										if (null != entity) {
+											rtuInfoEntity.setId(entity.getId());
+										}
+										rtuBaseInfoService.saveOrUpdate(rtuInfoEntity);
+
+										System.out.println("save record********************");
+
+									} else {
 										System.out.println(" record is null ********************");
 										System.out.println(JSON.toJSON(dataEntity).toString());
 									}
@@ -822,12 +1451,16 @@ public class DataManageController extends BladeController {
 
 						}
 
+						recordEntity.setImportStatus(1L);
+						rtuImportRecordService.saveOrUpdate(recordEntity);
 						//更新导入时间
-						projectBaseInfoService.updateImportTime(projectId,new Date());
+						//projectBaseInfoService.updateImportTime(orgId, new Date());
 					}
 				}).sheet().doRead();
 
 			} else {
+				recordEntity.setImportStatus(2L);
+				rtuImportRecordService.saveOrUpdate(recordEntity);
 				return R.fail("上传文件格式错误");
 			}
 

+ 240 - 0
src/main/java/org/springblade/modules/business/data/manage/deptCache/DeptCacheTaskManager.java

@@ -0,0 +1,240 @@
+/**
+ * Copyright
+ * All right reserved.
+ * 项目名称:
+ * 创建日期:2022/5/23
+ */
+package org.springblade.modules.business.data.manage.deptCache;
+
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import lombok.extern.slf4j.Slf4j;
+import org.glassfish.jersey.internal.guava.ThreadFactoryBuilder;
+import org.springblade.constant.BusinessConstant;
+import org.springblade.core.secure.BladeUser;
+import org.springblade.core.secure.utils.AuthUtil;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.Func;
+import org.springblade.modules.baseinfo.region.entity.OrgRegionInfoEntity;
+import org.springblade.modules.baseinfo.region.entity.RegionTreeNodeEntity;
+import org.springblade.modules.baseinfo.region.service.IOrgRegionInfoService;
+import org.springblade.modules.baseinfo.region.entity.RegionInfoEntity;
+import org.springblade.modules.baseinfo.region.service.IBaseInfoRegionService;
+import org.springblade.modules.business.rtu.base.service.IRtuBaseInfoService;
+import org.springblade.modules.system.entity.Dept;
+import org.springblade.modules.system.service.IDeptService;
+import org.springframework.data.redis.core.HashOperations;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.data.redis.core.ValueOperations;
+import org.springframework.scheduling.annotation.EnableScheduling;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.concurrent.*;
+
+/***
+ * Date:2022/5/22
+ * Title: 环境辐射与气象监测系统(KRS) 模块
+ * Description:MODBUS TCP 协议传输 ,任务管理
+ * @author swp
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+@Slf4j
+@Component
+@EnableScheduling
+public class DeptCacheTaskManager {
+
+	/**
+	 * 公共线程池
+	 **/
+	private static ThreadFactory publicThreadFactory = new ThreadFactoryBuilder().setNameFormat("public-thread-pool-%d").build();
+	private static ExecutorService publicThreadPool = new ThreadPoolExecutor(1, 1,
+		0L, TimeUnit.MILLISECONDS, new LinkedBlockingQueue<Runnable>(1024), publicThreadFactory, new ThreadPoolExecutor.AbortPolicy());
+
+	@Resource
+	private IRtuBaseInfoService iRtuBaseInfoService;
+
+	@Resource
+	private RedisTemplate redisTemplate;
+
+	@Resource
+	private IDeptService iDeptService;
+
+	@Resource
+	private IOrgRegionInfoService iOrgRegionInfoService;
+
+	@Resource
+	private IBaseInfoRegionService iBaseInfoRegionService;
+
+
+	@Scheduled(cron = "0 0 0 * * * ")
+	public void deptUpdateTask() {
+		try {
+			DeptUpdateTask task = new DeptUpdateTask();
+			FutureTask<Integer> futureTask = new FutureTask<>(task);
+			publicThreadPool.execute(futureTask);
+		} catch (Exception e) {
+			log.error("{}", e.getMessage());
+		}
+	}
+
+	private class DeptUpdateTask implements Callable<Integer> {
+
+		@Override
+		public Integer call() {
+			try {
+				log.info("组织机构下的行政区划数据处理");
+				ValueOperations<String, String> opsHash = redisTemplate.opsForValue();
+				//把机构区划表所有记录更新到删除状态
+				LambdaUpdateWrapper<OrgRegionInfoEntity> wrapper = Wrappers.<OrgRegionInfoEntity>update().lambda();
+				wrapper.set(OrgRegionInfoEntity::getRegionActive, 0);
+				iOrgRegionInfoService.update(wrapper);
+				//取所有组织机构信息
+				List<Dept> depts = iDeptService.getDeptChild(BusinessConstant.ORG_ADMIN_ID);
+				if (null != depts && depts.size() > 0) {
+					//取最新的行政区划信息
+					List<RegionInfoEntity> regions = iBaseInfoRegionService.list();
+					for (Dept dept : depts) {
+						for (RegionInfoEntity regionInfoEntity : regions) {
+							//计算地区下的测站数量
+							Long rtuCount = iRtuBaseInfoService.rtuCount(dept.getId(), regionInfoEntity.getAdcd());
+							//更新
+							OrgRegionInfoEntity orgRegionInfoEntity = iOrgRegionInfoService.getOrgRegionInfo(dept.getId(), regionInfoEntity.getAdcd());
+							if (null == orgRegionInfoEntity) {
+								orgRegionInfoEntity = new OrgRegionInfoEntity();
+								orgRegionInfoEntity.setDeptId(dept.getId());
+								orgRegionInfoEntity.setAdcd(regionInfoEntity.getAdcd());
+							}
+							orgRegionInfoEntity.setAdnm(regionInfoEntity.getAdnm());
+							orgRegionInfoEntity.setAncestors(regionInfoEntity.getAncestors());
+							orgRegionInfoEntity.setAddType(regionInfoEntity.getAddType());
+							orgRegionInfoEntity.setParentCode(regionInfoEntity.getParentCode());
+							orgRegionInfoEntity.setRegionActive(1);
+							orgRegionInfoEntity.setRtuCount(rtuCount);
+							iOrgRegionInfoService.saveOrUpdate(orgRegionInfoEntity);
+						}
+						//更新机构行政区划到缓存
+						List<RegionTreeNodeEntity> nodeEntities = new LinkedList<>();
+						LambdaQueryWrapper<OrgRegionInfoEntity> queryWrapper = Wrappers.<OrgRegionInfoEntity>query().lambda();
+						queryWrapper.eq(OrgRegionInfoEntity::getParentCode, "00");
+						queryWrapper.eq(OrgRegionInfoEntity::getDeptId, dept.getId());
+						queryWrapper.eq(OrgRegionInfoEntity::getRegionActive, 1);
+						List<OrgRegionInfoEntity> list = iOrgRegionInfoService.list(queryWrapper);
+						for (OrgRegionInfoEntity entity : list) {
+							RegionTreeNodeEntity nodeEntity = new RegionTreeNodeEntity();
+							nodeEntity.setId(entity.getAdcd());
+							nodeEntity.setValue(entity.getAdcd());
+							nodeEntity.setTitle(entity.getAdnm());
+							nodeEntity.setText(entity.getAdnm());
+							nodeEntity.setKey(entity.getAdcd());
+							nodeEntity.setParentId(entity.getParentCode());
+							getChildren(nodeEntity, entity);
+							if (nodeEntity.getChildren() != null && nodeEntity.getChildren().size() > 0) {
+								nodeEntity.setHasChildren(true);
+							} else {
+								nodeEntity.setHasChildren(false);
+							}
+							nodeEntities.add(nodeEntity);
+						}
+						String regionString = JSON.toJSONString(nodeEntities);
+						opsHash.set("region."+Func.toStr(dept.getId()), regionString);
+						log.info("机构 "+dept.getDeptName()+" 行政区划已更新到缓存");
+					}
+				}
+				//更新管理员行政区划到缓存
+				List<RegionTreeNodeEntity> adminNodeEntities = new LinkedList<>();
+				LambdaQueryWrapper<RegionInfoEntity> queryWrapper = Wrappers.<RegionInfoEntity>query().lambda();
+				queryWrapper.eq(RegionInfoEntity::getParentCode, "00");
+				List<RegionInfoEntity> list = iBaseInfoRegionService.list(queryWrapper);
+				for (RegionInfoEntity entity : list) {
+					RegionTreeNodeEntity nodeEntity = new RegionTreeNodeEntity();
+					nodeEntity.setId(entity.getAdcd());
+					nodeEntity.setValue(entity.getAdcd());
+					nodeEntity.setTitle(entity.getAdnm());
+					nodeEntity.setText(entity.getAdnm());
+					nodeEntity.setKey(entity.getAdcd());
+					nodeEntity.setParentId(entity.getParentCode());
+					getChildren(nodeEntity, entity);
+					if (nodeEntity.getChildren() != null && nodeEntity.getChildren().size() > 0) {
+						nodeEntity.setHasChildren(true);
+					} else {
+						nodeEntity.setHasChildren(false);
+					}
+					adminNodeEntities.add(nodeEntity);
+				}
+				String regionString = JSON.toJSONString(adminNodeEntities);
+				opsHash.set("region.admin", regionString);
+				log.info("管理员行政区划已更新到缓存");
+			} catch (Exception e) {
+				log.error("数据任务异常 {}", e.getMessage());
+			}
+			return 0;
+		}
+
+		private boolean getChildren(RegionTreeNodeEntity nodeEntity, OrgRegionInfoEntity regionInfoEntity) {
+			LambdaQueryWrapper<OrgRegionInfoEntity> queryWrapper = Wrappers.<OrgRegionInfoEntity>query().lambda();
+			queryWrapper.eq(OrgRegionInfoEntity::getParentCode, regionInfoEntity.getAdcd());
+			queryWrapper.eq(OrgRegionInfoEntity::getDeptId, regionInfoEntity.getDeptId());
+			queryWrapper.eq(OrgRegionInfoEntity::getRegionActive, 1);
+			List<OrgRegionInfoEntity> list = iOrgRegionInfoService.list(queryWrapper);
+			if (null != list && list.size() > 0) {
+				List<RegionTreeNodeEntity> nodeEntities = new LinkedList<>();
+				for (OrgRegionInfoEntity entity : list) {
+					if (entity.getRtuCount() > 0) {
+						RegionTreeNodeEntity node = new RegionTreeNodeEntity();
+						node.setId(entity.getAdcd());
+						node.setValue(entity.getAdcd());
+						node.setTitle(entity.getAdnm());
+						node.setText(entity.getAdnm());
+						node.setKey(entity.getAdcd());
+						node.setParentId(entity.getParentCode());
+						getChildren(node, entity);
+						if (node.getChildren() != null && node.getChildren().size() > 0) {
+							node.setHasChildren(true);
+						} else {
+							node.setHasChildren(false);
+						}
+						nodeEntities.add(node);
+					}
+				}
+				nodeEntity.setChildren(nodeEntities);
+			}
+			return true;
+		}
+
+		private boolean getChildren(RegionTreeNodeEntity nodeEntity, RegionInfoEntity regionInfoEntity) {
+			LambdaQueryWrapper<RegionInfoEntity> queryWrapper = Wrappers.<RegionInfoEntity>query().lambda();
+			queryWrapper.eq(RegionInfoEntity::getParentCode, regionInfoEntity.getAdcd());
+			List<RegionInfoEntity> list = iBaseInfoRegionService.list(queryWrapper);
+			if (null != list && list.size() > 0) {
+				List<RegionTreeNodeEntity> nodeEntities = new LinkedList<>();
+				for (RegionInfoEntity entity : list) {
+					RegionTreeNodeEntity node = new RegionTreeNodeEntity();
+					node.setId(entity.getAdcd());
+					node.setValue(entity.getAdcd());
+					node.setTitle(entity.getAdnm());
+					node.setText(entity.getAdnm());
+					node.setKey(entity.getAdcd());
+					node.setParentId(entity.getParentCode());
+					getChildren(node, entity);
+					if (node.getChildren() != null && node.getChildren().size() > 0) {
+						node.setHasChildren(true);
+					} else {
+						node.setHasChildren(false);
+					}
+					nodeEntities.add(node);
+				}
+				nodeEntity.setChildren(nodeEntities);
+			}
+			return true;
+		}
+	}
+}

+ 69 - 0
src/main/java/org/springblade/modules/business/data/manage/entity/RtuImportRecordEntity.java

@@ -0,0 +1,69 @@
+/**
+ * Copyright 2019 DH
+ * All right reserved.
+ * 项目名称: 大恒泰山系统
+ * 创建日期:2022/8/22
+ */
+package org.springblade.modules.business.data.manage.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springblade.core.mp.base.BaseEntity;
+import org.springframework.format.annotation.DateTimeFormat;
+
+/***
+ * Date:2022/8/22
+ * Title:文件所属模块(必须填写)
+ * Description:对本文件的详细描述,原则上不能少于30字
+ * @author dylan
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("rtu_import_record")
+public class RtuImportRecordEntity extends BaseEntity {
+
+	private static final long serialVersionUID = 1L;
+	/**
+	 * 租户ID
+	 */
+	@ApiModelProperty("租户ID")
+	private String tenantId;
+
+
+	/**
+	 * 机构名称
+	 */
+	@ApiModelProperty(value = "机构名称")
+	private String orgName;
+
+	/**
+	 * 机构ID
+	 */
+	@ApiModelProperty(value = "机构ID")
+	private Long orgId;
+
+	/**
+	 * 测站导入时间
+	 */
+	@DateTimeFormat(
+		pattern = "yyyy-MM-dd HH:mm:ss"
+	)
+	@JsonFormat(
+		pattern = "yyyy-MM-dd HH:mm:ss",
+		timezone = "GMT+8"
+	)
+	@ApiModelProperty(value = "测站导入时间")
+	private String importTime;
+
+	/**
+	 * 0: 导入中,1:导入成功,2:导入失败
+	 */
+	@ApiModelProperty(value = "导入状态")
+	private Long importStatus;
+
+}

+ 28 - 0
src/main/java/org/springblade/modules/business/data/manage/mapper/RtuImportRecordMapper.java

@@ -0,0 +1,28 @@
+/**
+ * Copyright 2019 DH
+ * All right reserved.
+ * 项目名称: 大恒泰山系统
+ * 创建日期:2022/8/22
+ */
+package org.springblade.modules.business.data.manage.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.apache.ibatis.annotations.Param;
+import org.springblade.modules.business.data.manage.entity.RtuImportRecordEntity;
+import org.springblade.modules.business.project.base.entity.ProjectInfoEntity;
+import org.springblade.modules.business.project.base.vo.ProjectInfoVO;
+
+import java.util.List;
+
+/***
+ * Date:2022/8/22
+ * Title:文件所属模块(必须填写)
+ * Description:对本文件的详细描述,原则上不能少于30字
+ * @author dylan
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+public interface RtuImportRecordMapper extends BaseMapper<RtuImportRecordEntity> {
+
+}

+ 21 - 0
src/main/java/org/springblade/modules/business/data/manage/mapper/RtuImportRecordMapper.xml

@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="org.springblade.modules.business.data.manage.mapper.RtuImportRecordMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="rtuImportRecordResultMap" type="org.springblade.modules.business.data.manage.entity.RtuImportRecordEntity">
+        <result column="id" property="id"/>
+        <result column="create_user" property="createUser"/>
+        <result column="create_time" property="createTime"/>
+        <result column="update_user" property="updateUser"/>
+        <result column="update_time" property="updateTime"/>
+        <result column="status" property="status"/>
+        <result column="is_deleted" property="isDeleted"/>
+        <result column="org_name" property="orgName"/>
+        <result column="org_id" property="orgId"/>
+        <result column="import_time" property="importTime"/>
+        <result column="import_status" property="importStatus"/>
+
+    </resultMap>
+
+</mapper>

+ 32 - 0
src/main/java/org/springblade/modules/business/data/manage/service/IRtuImportRecordService.java

@@ -0,0 +1,32 @@
+/**
+ * Copyright 2019 DH
+ * All right reserved.
+ * 项目名称: 大恒泰山系统
+ * 创建日期:2022/8/22
+ */
+package org.springblade.modules.business.data.manage.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.springblade.core.mp.base.BaseService;
+import org.springblade.modules.business.data.manage.entity.RtuImportRecordEntity;
+import org.springblade.modules.business.project.base.entity.ProjectInfoEntity;
+import org.springblade.modules.business.project.base.entity.ProjectWarningSettingEntity;
+import org.springblade.modules.business.project.base.vo.ProjectInfoVO;
+import org.springblade.modules.business.rtu.base.dto.RtuInfoDTO;
+import org.springblade.modules.business.rtu.base.vo.RtuInfoVO;
+
+import java.util.Date;
+import java.util.List;
+
+
+/***
+ * Date:2022/8/22
+ * Title:文件所属模块(必须填写)
+ * Description:对本文件的详细描述,原则上不能少于30字
+ * @author dylan
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+public interface IRtuImportRecordService extends BaseService<RtuImportRecordEntity> {
+
+}

+ 42 - 0
src/main/java/org/springblade/modules/business/data/manage/service/impl/RtuImportRecordServiceImpl.java

@@ -0,0 +1,42 @@
+/**
+ * Copyright 2019 DH
+ * All right reserved.
+ * 项目名称: 大恒泰山系统
+ * 创建日期:2022/8/22
+ */
+package org.springblade.modules.business.data.manage.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import org.springblade.core.mp.base.BaseServiceImpl;
+import org.springblade.core.tool.utils.Func;
+import org.springblade.modules.business.data.manage.entity.RtuImportRecordEntity;
+import org.springblade.modules.business.data.manage.mapper.RtuImportRecordMapper;
+import org.springblade.modules.business.data.manage.service.IRtuImportRecordService;
+import org.springblade.modules.business.project.base.entity.ProjectInfoEntity;
+import org.springblade.modules.business.project.base.entity.ProjectWarningSettingEntity;
+import org.springblade.modules.business.project.base.mapper.ProjectInfoMapper;
+import org.springblade.modules.business.project.base.service.IProjectBaseInfoService;
+import org.springblade.modules.business.project.base.vo.ProjectInfoVO;
+import org.springblade.modules.system.entity.Dept;
+import org.springblade.modules.system.service.IDeptService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.Date;
+import java.util.List;
+
+/***
+ * Date:2022/8/22
+ * Title:文件所属模块(必须填写)
+ * Description:对本文件的详细描述,原则上不能少于30字
+ * @author dylan
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+@Service
+public class RtuImportRecordServiceImpl extends BaseServiceImpl<RtuImportRecordMapper, RtuImportRecordEntity> implements IRtuImportRecordService {
+
+}

+ 1 - 1
src/main/java/org/springblade/modules/business/desk/controller/NoticeController.java

@@ -51,7 +51,7 @@ import java.util.Map;
  */
 @TenantDS
 @RestController
-@RequestMapping(AppConstant.APPLICATION_TEST_NAME+ "/notice")
+@RequestMapping(AppConstant.APPLICATION_DESK_NAME+ "/notice")
 @AllArgsConstructor
 @ApiSort(2)
 @Api(value = "通知公告", tags = "通知公告")

+ 1 - 1
src/main/java/org/springblade/modules/business/equipment/inspection/base/controller/EquipmentInspectionController.java

@@ -54,7 +54,7 @@ import java.util.List;
  * Remark:认为有必要的其他信息
  */
 @RestController
-@RequestMapping(AppConstant.APPLICATION_TEST_NAME + "/equipment/inspection")
+@RequestMapping("galaxy-business/equipment/inspection")
 @AllArgsConstructor
 @Api(value = "设备巡检管理模块", tags = "设备巡检管理模块")
 public class EquipmentInspectionController extends BladeController {

+ 7 - 10
src/main/java/org/springblade/modules/business/equipment/inspection/plan/controller/EquipmentInspectionPlanController.java

@@ -61,7 +61,7 @@ import java.util.*;
  * Remark:认为有必要的其他信息
  */
 @RestController
-@RequestMapping(AppConstant.APPLICATION_TEST_NAME + "/equipment/inspection/plan")
+@RequestMapping("galaxy-business/equipment/inspection/plan")
 @AllArgsConstructor
 @Api(value = "设备巡检计划管理模块", tags = "设备巡检计划管理模块")
 public class EquipmentInspectionPlanController extends BladeController {
@@ -160,26 +160,23 @@ public class EquipmentInspectionPlanController extends BladeController {
 	 */
 	@GetMapping("/my/page")
 	@ApiImplicitParams({
-		@ApiImplicitParam(name = "orgId", value = "机构ID", paramType = "query", dataType = "long"),
-		@ApiImplicitParam(name = "projectId", value = "项目ID", paramType = "query", dataType = "long"),
+		@ApiImplicitParam(name = "adCode", value = "行政区划编码", paramType = "query", dataType = "string"),
 	})
 	@ApiOperationSupport(order = 2)
 	@ApiOperation(value = "分页")
 	public R<IPage<EquipmentInspectionRtuVO>> myRtuPage(@ApiIgnore EquipmentInspectionRtuDTO rtuDTO, Query query) {
 		BladeUser user = AuthUtil.getUser();
 		if (BusinessConstant.ROLE_ORG_ADMIN.equals(user.getRoleName()) || BusinessConstant.ROLE_ORG_SERVICE_PERSON.equals(user.getRoleName())) {
-
+			rtuDTO.setOrgId(Func.toLong(user.getDeptId()));
 		} else {
-			if (user.getDeptId().equals(""+rtuDTO.getOrgId())){
-				rtuDTO.setOrgId(null);
-				rtuDTO.setProjectId(null);
-			}
+//			if (user.getDeptId().equals(""+rtuDTO.getOrgId())){
+//				rtuDTO.setOrgId(null);
+//				rtuDTO.setProjectId(null);
+//			}
 		}
 		EquipmentInspectionPlanEntity planEntity= planService.yearPlan();
 		rtuDTO.setPlanId(planEntity.getId());
-
 		IPage<EquipmentInspectionRtuVO> page = planRtuService.myPage(Condition.getPage(query), rtuDTO);
-
 		return R.data(page);
 	}
 

+ 7 - 0
src/main/java/org/springblade/modules/business/equipment/inspection/plan/dto/EquipmentInspectionRtuDTO.java

@@ -45,4 +45,11 @@ public class EquipmentInspectionRtuDTO extends RtuInfoEntity {
 	 */
 	@ApiModelProperty("计划ID")
 	private Long planId;
+
+
+	/**
+	 * 行政区划编码
+	 */
+	@ApiModelProperty(value = "行政区划编码")
+	private String adCode;
 }

+ 8 - 5
src/main/java/org/springblade/modules/business/equipment/inspection/plan/mapper/EquipmentInspectionPlanRtuMapper.xml

@@ -129,7 +129,7 @@
 
         <result column="satellite_model" property="satelliteModel"/>
 
-        <result column="project_name" property="projectName"/>
+
         <result column="org_name" property="orgName"/>
 
         <result column="run_status_id" property="runStatus"/>
@@ -170,11 +170,12 @@
     <select id="myPage" resultMap="equipmentInspectionVOResultMap">
         SELECT
         n.*,
-        p.project_name ,d.dept_name AS org_name,s.run_status_id
+         d.dept_name AS org_name,s.run_status_id
         FROM
         rtu_info n
-        LEFT JOIN  project_info p ON n.project_id = p.id
         LEFT JOIN  blade_dept d ON n.org_id = d.id
+        LEFT JOIN data_mv_att_st_base p ON n.rtu_code = p.st_code and p.is_deleted=0
+        LEFT JOIN data_ad_cd_b a ON a.adcd = p.ad_code and a.is_deleted=0
         LEFT JOIN equipment_inspection_report_info r ON r.rtu_code= n.rtu_code
         LEFT JOIN rtu_status s ON s.rtu_code = n.rtu_code
         WHERE
@@ -182,9 +183,11 @@
         <if test="rtuDTO.orgId!=null">
             and n.org_id = #{rtuDTO.orgId}
         </if>
-        <if test="rtuDTO.projectId!=null">
-            and n.project_id = #{rtuDTO.projectId}
+
+        <if test="rtuDTO.adCode!=null">
+            and (p.ad_code =#{rtuDTO.adCode} or a.ancestors in (SELECT ancestors FROM data_ad_cd_b WHERE ancestors  like concat(concat('%', #{rtuDTO.adCode}), '%')))
         </if>
+
         <if test="rtuDTO.planId!=null">
             and (r.plan_id is null OR r.plan_id = #{rtuDTO.planId})
         </if>

+ 23 - 3
src/main/java/org/springblade/modules/business/equipment/inspection/report/controller/EquipmentInspectionReportController.java

@@ -24,10 +24,13 @@ import org.springblade.core.tool.utils.ConcurrentDateFormat;
 import org.springblade.core.tool.utils.Func;
 
 
+import org.springblade.modules.business.check.order.vo.CheckOrderInfoVO;
+import org.springblade.modules.business.check.order.wrapper.RtuCheckOrderWrapper;
 import org.springblade.modules.business.check.process.dto.OrderProcessInfoDTO;
 import org.springblade.modules.business.check.process.vo.OrderProcessInfoVO;
 import org.springblade.modules.business.equipment.inspection.plan.entity.EquipmentInspectionPlanEntity;
 import org.springblade.modules.business.equipment.inspection.plan.service.IEquipmentInspectionPlanService;
+import org.springblade.modules.business.equipment.inspection.plan.wrapper.EquipmentInspectionPlanWrapper;
 import org.springblade.modules.business.equipment.inspection.report.dto.EquipmentInspectionReportDTO;
 import org.springblade.modules.business.equipment.inspection.report.entity.EquipmentInspectionReportEntity;
 import org.springblade.modules.business.equipment.inspection.report.service.IEquipmentInspectionReportService;
@@ -50,7 +53,7 @@ import java.util.Map;
  * Remark:认为有必要的其他信息
  */
 @RestController
-@RequestMapping(AppConstant.APPLICATION_TEST_NAME + "/equipment/inspection/report")
+@RequestMapping("galaxy-business/equipment/inspection/report")
 @AllArgsConstructor
 @Api(value = "设备巡检填报管理模块", tags = "设备巡检填报管理模块")
 public class EquipmentInspectionReportController extends BladeController {
@@ -78,15 +81,32 @@ public class EquipmentInspectionReportController extends BladeController {
 	@GetMapping("/page")
 	@ApiImplicitParams({
 		@ApiImplicitParam(name = "planId", value = "巡检计划ID", paramType = "query", dataType = "long"),
-		@ApiImplicitParam(name = "orgId", value = "机构ID", paramType = "query", dataType = "long"),
-		@ApiImplicitParam(name = "projectId", value = "项目ID", paramType = "query", dataType = "long"),
+		@ApiImplicitParam(name = "adCode", value = "行政区划编码", paramType = "query", dataType = "string"),
 		@ApiImplicitParam(name = "rtuName", value = "测站名称", paramType = "query", dataType = "string"),
 		@ApiImplicitParam(name = "rtuCode", value = "测站编码", paramType = "query", dataType = "string"),
 	})
 	@ApiOperationSupport(order = 2)
 	@ApiOperation(value = "分页")
 	public R<IPage<EquipmentInspectionReportVO>> page(@ApiIgnore EquipmentInspectionReportDTO reportDTO, Query query) {
+		BladeUser user = AuthUtil.getUser();
+		if (BusinessConstant.ROLE_ORG_ADMIN.equals(user.getRoleName()) || BusinessConstant.ROLE_ORG_SERVICE_PERSON.equals(user.getRoleName())) {
+			reportDTO.setOrgId(Func.toLong(user.getDeptId()));
+		} else {
+			reportDTO.setOrgId(null);
+		}
+		LambdaQueryWrapper<EquipmentInspectionPlanEntity> wrapper = Wrappers.<EquipmentInspectionPlanEntity>query().lambda();
+		wrapper.eq(EquipmentInspectionPlanEntity::getIsDeleted, 0L);
+		wrapper.orderByDesc(EquipmentInspectionPlanEntity::getInspectionStartTime);
+		List<EquipmentInspectionPlanEntity> planEntities = planService.list(wrapper);
+		if (null != planEntities && planEntities.size() > 0) {
+			Long planId = planEntities.get(0).getId();
+			reportDTO.setPlanId(planId);
+		}
 		IPage<EquipmentInspectionReportVO> pages = reportService.selectPage(Condition.getPage(query), reportDTO);
+		List<EquipmentInspectionReportVO> list = pages.getRecords();
+		for (EquipmentInspectionReportVO v : list) {
+			EquipmentInspectionReportWrapper.build().toVoInfo(v);
+		}
 		return R.data(pages);
 	}
 

+ 6 - 0
src/main/java/org/springblade/modules/business/equipment/inspection/report/dto/EquipmentInspectionReportDTO.java

@@ -39,4 +39,10 @@ public class EquipmentInspectionReportDTO extends EquipmentInspectionReportEntit
 	 */
 	@ApiModelProperty("测站名称")
 	private String rtuName;
+
+	/**
+	 * 行政区划编码
+	 */
+	@ApiModelProperty(value = "行政区划编码")
+	private String adCode;
 }

+ 27 - 0
src/main/java/org/springblade/modules/business/equipment/inspection/report/entity/EquipmentInspectionReportEntity.java

@@ -156,6 +156,12 @@ public class EquipmentInspectionReportEntity extends BaseEntity {
 	@ApiModelProperty("RTU说明")
 	private String rtuDesc;
 
+	/**
+	 * RTU是否更换:0 否,1更换
+	 */
+	@ApiModelProperty("RTU是否更换")
+	private Integer rtuReplace;
+
 	/**
 	 * 测站运行状态:0 正常 1故障
 	 */
@@ -229,6 +235,11 @@ public class EquipmentInspectionReportEntity extends BaseEntity {
 	@ApiModelProperty("雨量计图片路径")
 	private String rainSensorPhotoUrl;
 
+	/**
+	 * 翻斗式雨量计是否更换:0 否,1更换
+	 */
+	@ApiModelProperty("翻斗式雨量计是否更换")
+	private Integer rainSensorReplace;
 
 	/**
 	 * 水位计传感器类型(雷达/超声波),字典,传入ID
@@ -291,6 +302,11 @@ public class EquipmentInspectionReportEntity extends BaseEntity {
 	@ApiModelProperty("水位计图片路径")
 	private String waterSensorPhotoUrl;
 
+	/**
+	 * 水位计是否更换:0 否,1更换
+	 */
+	@ApiModelProperty("水位计是否更换:0 否,1更换")
+	private Integer waterSensorReplace;
 
 	/**
 	 * 墒情站传感器类型(插针式、导管式),字典,传入ID
@@ -351,6 +367,11 @@ public class EquipmentInspectionReportEntity extends BaseEntity {
 	@ApiModelProperty("墒情图片路径")
 	private String groundSensorPhotoUrl;
 
+	/**
+	 * 墒情传感器是否更换:0 否,1更换
+	 */
+	@ApiModelProperty("墒情传感器是否更换:0 否,1更换")
+	private Integer groundSensorReplace;
 
 	/**
 	 * 蓄电池容量(AH)
@@ -463,6 +484,12 @@ public class EquipmentInspectionReportEntity extends BaseEntity {
 	private Integer networkStatus;
 
 
+	/**
+	 * 移动网络是否欠费: 0 正常,1 欠费
+	 */
+	@ApiModelProperty("移动网络是否欠费")
+	private Integer networkOverdue;
+
 	/**
 	 * 移动网络说明
 	 */

+ 20 - 23
src/main/java/org/springblade/modules/business/equipment/inspection/report/mapper/EquipmentInspectionReportMapper.xml

@@ -27,19 +27,19 @@
         <result column="datagram_to_level2" property="datagramToLevel2"/>
         <result column="datagram_to_level3" property="datagramToLevel3"/>
         <result column="rtu_desc" property="rtuDesc"/>
-
+        <result column="rtu_replace" property="rtuReplace"/>
         <result column="rain_sensor_brand" property="rainSensorBrand"/>
         <result column="rain_sensor_model" property="rainSensorModel"/>
         <result column="rain_sensor_replace_date" property="rainSensorReplaceDate"/>
-
         <result column="rain_sensor_desc" property="rainSensorDesc"/>
+        <result column="rain_sensor_replace" property="rainSensorReplace"/>
 
         <result column="water_sensor_type" property="waterSensorType"/>
         <result column="water_sensor_brand" property="waterSensorBrand"/>
         <result column="water_sensor_model" property="waterSensorModel"/>
         <result column="water_sensor_replace_date" property="waterSensorReplaceDate"/>
         <result column="water_sensor_desc" property="waterSensorDesc"/>
-
+        <result column="water_sensor_replace" property="waterSensorReplace"/>
 
 
         <result column="ground_sensor_type" property="groundSensorType"/>
@@ -47,14 +47,14 @@
         <result column="ground_sensor_model" property="groundSensorModel"/>
         <result column="ground_sensor_replace_date" property="groundSensorReplaceDate"/>
         <result column="ground_sensor_desc" property="groundSensorDesc"/>
-
+        <result column="ground_sensor_replace_date" property="groundSensorReplace"/>
 
         <result column="battery_model" property="batteryModel"/>
         <result column="battery_replace_date" property="batteryReplaceDate"/>
         <result column="sun_power_model" property="sunPowerModel"/>
         <result column="sun_power_replace_date" property="sunPowerReplaceDate"/>
         <result column="power_desc" property="powerDesc"/>
-
+        <result column="sun_power_replace" property="sunPowerReplace"/>
 
         <result column="sim_ccid" property="simCcid"/>
         <result column="sim_pay" property="simPay"/>
@@ -80,7 +80,7 @@
         <result column="network_active" property="networkActive"/>
         <result column="satellite_active" property="satelliteActive"/>
 
-
+        <result column="network_overdue" property="networkOverdue"/>
         <result column="base_photo1_take" property="basePhoto1Take"/>
         <result column="base_photo1_url" property="basePhoto1Url"/>
         <result column="base_photo2_take" property="basePhoto2Take"/>
@@ -137,22 +137,18 @@
         <result column="water_sensor_replace_date" property="waterSensorReplaceDate"/>
         <result column="water_sensor_desc" property="waterSensorDesc"/>
 
-
-
         <result column="ground_sensor_type" property="groundSensorType"/>
         <result column="ground_sensor_brand" property="groundSensorBrand"/>
         <result column="ground_sensor_model" property="groundSensorModel"/>
         <result column="ground_sensor_replace_date" property="groundSensorReplaceDate"/>
         <result column="ground_sensor_desc" property="groundSensorDesc"/>
 
-
         <result column="battery_model" property="batteryModel"/>
         <result column="battery_replace_date" property="batteryReplaceDate"/>
         <result column="sun_power_model" property="sunPowerModel"/>
         <result column="sun_power_replace_date" property="sunPowerReplaceDate"/>
         <result column="power_desc" property="powerDesc"/>
 
-
         <result column="sim_ccid" property="simCcid"/>
         <result column="sim_pay" property="simPay"/>
         <result column="sim_pay_end_date" property="simPayEndDate"/>
@@ -176,8 +172,7 @@
         <result column="ground_water_sensor_active" property="groundWaterSensorActive"/>
         <result column="network_active" property="networkActive"/>
         <result column="satellite_active" property="satelliteActive"/>
-
-
+        <result column="network_overdue" property="networkOverdue"/>
         <result column="base_photo1_take" property="basePhoto1Take"/>
         <result column="base_photo1_url" property="basePhoto1Url"/>
         <result column="base_photo2_take" property="basePhoto2Take"/>
@@ -196,21 +191,23 @@
         <result column="sun_photo_url" property="sunPhotoUrl"/>
 
         <result column="org_id" property="orgId"/>
-        <result column="project_id" property="projectId"/>
         <result column="rtu_name" property="rtuName"/>
-
         <result column="real_name" property="servicePersonName"/>
-
-
+        <result column="org_name" property="orgName"/>
+        <result column="ad_city" property="adCity"/>
+        <result column="ad_dist" property="adDist"/>
     </resultMap>
 
     <select id="selectPage" resultMap="reportVOResultMap">
         SELECT
-        r.*, rtu.rtu_name,rtu.org_id,rtu.project_id,u.real_name
+        r.*, rtu.rtu_name,rtu.org_id,dept.dept_name AS org_name,u.real_name,rtu.ad_city,rtu.ad_dist
         FROM
         equipment_inspection_report_info r
-        LEFT JOIN  rtu_info rtu ON rtu.rtu_code = r.rtu_code
-        LEFT JOIN  blade_user u ON u.id = r.create_user
+        LEFT JOIN  rtu_info rtu ON rtu.rtu_code = r.rtu_code and rtu.is_deleted=0
+        LEFT JOIN  blade_user u ON u.id = r.create_user and u.is_deleted=0
+        LEFT JOIN data_mv_att_st_base p ON rtu.rtu_code = p.st_code and p.is_deleted=0
+        LEFT JOIN data_ad_cd_b a ON a.adcd = p.ad_code and a.is_deleted=0
+        LEFT JOIN blade_dept dept ON dept.id = rtu.org_id and dept.is_deleted=0
         WHERE
         r.is_deleted = 0
         and r.plan_id = #{reportDTO.planId}
@@ -223,13 +220,13 @@
         <if test="reportDTO.orgId!=null">
             and rtu.org_id = #{reportDTO.orgId}
         </if>
-        <if test="reportDTO.projectId!=null ">
-            and rtu.project_id = #{reportDTO.projectId}
-        </if>
         <if test="reportDTO.createUser!=null ">
             and r.create_user = #{reportDTO.createUser}
         </if>
-        order by  r.create_time desc
+        <if test="reportDTO.adCode!=null">
+            and (p.ad_code =#{reportDTO.adCode} or a.ancestors in (SELECT ancestors FROM data_ad_cd_b WHERE ancestors  like concat(concat('%', #{reportDTO.adCode}), '%')))
+        </if>
+        order by  rtu.org_id ASC,rtu.rtu_code ASC,r.create_time desc
     </select>
 
     <select id="yearPlanEquipmentInspectionReportCount" resultType="java.lang.Long">

+ 25 - 0
src/main/java/org/springblade/modules/business/equipment/inspection/report/vo/EquipmentInspectionReportVO.java

@@ -63,4 +63,29 @@ public class EquipmentInspectionReportVO extends EquipmentInspectionReportEntity
 	 */
 	@ApiModelProperty("填报人姓名")
 	private String servicePersonName;
+
+	/**
+	 * 机构名称
+	 */
+	@ApiModelProperty(value = "机构名称")
+	private String orgName;
+
+	/**
+	 * 所属盟市
+	 */
+	@ApiModelProperty(value = "所属盟市")
+	private String adCity;
+
+	/**
+	 * 所属盟县旗区
+	 */
+	@ApiModelProperty(value = "所属盟县旗区")
+	private String adDist;
+
+	/**
+	 * 行政区
+	 */
+	@ApiModelProperty(value = "行政区")
+	private String areaName;
+
 }

+ 10 - 0
src/main/java/org/springblade/modules/business/equipment/inspection/report/wrapper/EquipmentInspectionReportWrapper.java

@@ -10,11 +10,15 @@ import org.springblade.common.cache.DictBizCache;
 import org.springblade.core.mp.support.BaseEntityWrapper;
 import org.springblade.core.tool.utils.BeanUtil;
 import org.springblade.core.tool.utils.Func;
+import org.springblade.enums.EquipmentStatusEnum;
 import org.springblade.modules.business.equipment.inspection.base.wrapper.EquipmentInspectionWrapper;
 import org.springblade.modules.business.equipment.inspection.report.entity.EquipmentInspectionReportEntity;
 import org.springblade.modules.business.equipment.inspection.report.vo.EquipmentInspectionReportVO;
+import org.springblade.modules.business.rtumanage.vo.RtuStatusVO;
 import org.springblade.modules.system.entity.DictBiz;
 
+import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 import java.util.Objects;
 
@@ -63,4 +67,10 @@ public class EquipmentInspectionReportWrapper extends BaseEntityWrapper<Equipmen
 			report.remove(searchKey);
 		}
 	}
+
+	public void toVoInfo(EquipmentInspectionReportVO reportVO) {
+
+		reportVO.setAreaName(reportVO.getAdCity() + "/" + reportVO.getAdDist());
+
+	}
 }

+ 1 - 1
src/main/java/org/springblade/modules/business/project/base/controller/ProjectBaseInfoController.java

@@ -52,7 +52,7 @@ import java.util.List;
  * Remark:认为有必要的其他信息
  */
 @RestController
-@RequestMapping(AppConstant.APPLICATION_TEST_NAME + "/project/base")
+@RequestMapping("galaxy-business/project/base")
 @AllArgsConstructor
 @Api(value = "项目信息基础管理", tags = "项目信息基础管理")
 public class ProjectBaseInfoController extends BladeController {

+ 41 - 42
src/main/java/org/springblade/modules/business/project/servicePerson/controller/ProjectServicePersonController.java

@@ -10,9 +10,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import io.swagger.annotations.ApiParam;
+import io.swagger.annotations.*;
 import lombok.AllArgsConstructor;
 import org.flowable.idm.engine.impl.persistence.entity.UserEntity;
 import org.flowable.spring.security.UserDto;
@@ -32,16 +30,19 @@ import org.springblade.modules.business.project.servicePerson.service.IProjectSe
 import org.springblade.modules.business.project.servicePerson.vo.OrgPersonContactVO;
 import org.springblade.modules.business.project.servicePerson.vo.ServicePersonVO;
 import org.springblade.modules.business.project.servicePerson.wrapper.ProjectServicePersonWrapper;
+import org.springblade.modules.business.rtu.base.dto.RtuInfoDTO;
 import org.springblade.modules.system.entity.Dept;
 import org.springblade.modules.system.entity.User;
 import org.springblade.modules.system.service.IDeptService;
 import org.springblade.modules.system.service.IUserService;
 import org.springframework.util.DigestUtils;
 import org.springframework.web.bind.annotation.*;
+import springfox.documentation.annotations.ApiIgnore;
 
 import java.util.ArrayList;
 import java.util.LinkedList;
 import java.util.List;
+import java.util.Objects;
 
 /***
  * Date:2022/8/22
@@ -52,7 +53,7 @@ import java.util.List;
  * Remark:认为有必要的其他信息
  */
 @RestController
-@RequestMapping(AppConstant.APPLICATION_TEST_NAME + "/project/person")
+@RequestMapping("galaxy-business/project/person")
 @AllArgsConstructor
 @Api(value = "项目运维人员管理", tags = "项目运维人员管理")
 public class ProjectServicePersonController extends BladeController {
@@ -60,33 +61,23 @@ public class ProjectServicePersonController extends BladeController {
 	private final IUserService userService;
 	private final IDeptService deptService;
 
-	@GetMapping("/org/list")
+	@GetMapping("/org/page")
+	@ApiImplicitParams({
+		@ApiImplicitParam(name = "personName", value = "人员名称", paramType = "query", dataType = "string"),
+		@ApiImplicitParam(name = "contactPhone", value = "联系电话", paramType = "query", dataType = "string"),
+	})
 	@ApiOperationSupport(order = 2)
 	@ApiOperation(value = "分页")
-	public R<IPage<ServicePersonVO>> orgPersonList(Query query) {
-		LambdaQueryWrapper<ServicePersonEntity> wrapper = Wrappers.<ServicePersonEntity>query().lambda();
+	public R<IPage<ServicePersonVO>> orgPersonList(@ApiIgnore ServicePersonEntity personEntity, Query query) {
 		BladeUser user = AuthUtil.getUser();
+		personEntity.setOrgId(null);
 		if (BusinessConstant.ROLE_ORG_ADMIN.equals(user.getRoleName()) || BusinessConstant.ROLE_ORG_SERVICE_PERSON.equals(user.getRoleName())) {
-			wrapper.eq(ServicePersonEntity::getOrgId, user.getDeptId());
+			personEntity.setOrgId(Func.toLong(user.getDeptId()));
 		}
-		wrapper.eq(ServicePersonEntity::getIsDeleted, 0);
-
-		IPage<ServicePersonEntity> pages = servicePersonService.page(Condition.getPage(query), wrapper);
-		return R.data(ProjectServicePersonWrapper.build().pageVO(pages));
-	}
-
-	/**
-	 * 分页
-	 */
-	@GetMapping("/list")
-	@ApiOperationSupport(order = 2)
-	@ApiOperation(value = "分页")
-	public R<IPage<ServicePersonVO>> list(Query query) {
-		IPage<ServicePersonEntity> pages = servicePersonService.page(Condition.getPage(query));
-		return R.data(ProjectServicePersonWrapper.build().pageVO(pages));
+		IPage<ServicePersonVO> pages = servicePersonService.selectPage(Condition.getPage(query), personEntity);
+		return R.data(pages);
 	}
 
-
 	/**
 	 * 详情
 	 */
@@ -98,7 +89,6 @@ public class ProjectServicePersonController extends BladeController {
 		return R.data(ProjectServicePersonWrapper.build().entityVO(detail));
 	}
 
-
 	/**
 	 * 新增
 	 */
@@ -116,17 +106,19 @@ public class ProjectServicePersonController extends BladeController {
 		User u = new User();
 		u.setAccount(servicePersonEntity.getUserAccount());
 		u.setPhone(servicePersonEntity.getContactPhone());
+		u.setEmail(servicePersonEntity.getMail());
 		u.setName(servicePersonEntity.getPersonName());
 		u.setRealName(servicePersonEntity.getPersonName());
-		u.setPassword(DigestUtil.encrypt(servicePersonEntity.getUserAccount() + "@2022"));
-		u.setDeptId(servicePersonEntity.getOrgId());
+		u.setPassword(DigestUtil.encrypt(servicePersonEntity.getUserAccount() + BusinessConstant.ACCOUNT_PW_SUFFIX));
+		BladeUser user = AuthUtil.getUser();
+		u.setDeptId(user.getDeptId());
+		//u.setDeptId(Func.toStr(servicePersonEntity.getOrgId()));
 		u.setRoleId(BusinessConstant.ROLE_ORG_SERVICE_PERSON_ID);
-		u.setPostId("1562994107637354498");
+		u.setPostId(BusinessConstant.SERVICE_PERSON_POST_ID);
 		u.setUserType(1);
 		userService.save(u);
-
 		servicePersonEntity.setUserId(u.getId());
-
+		servicePersonEntity.setOrgId(Func.toLong(user.getDeptId()));
 		return R.status(servicePersonService.save(servicePersonEntity));
 	}
 
@@ -137,20 +129,18 @@ public class ProjectServicePersonController extends BladeController {
 	@ApiOperationSupport(order = 5)
 	@ApiOperation(value = "修改", notes = "传入servicePersonEntity")
 	public R update(@RequestBody ServicePersonEntity servicePersonEntity) {
-
+		if (Objects.isNull(servicePersonEntity.getUserId())) {
+			return R.fail("用户ID不能为空!");
+		}
+		User u = userService.getById(servicePersonEntity.getUserId());
+		u.setPhone(servicePersonEntity.getContactPhone());
+		u.setName(servicePersonEntity.getPersonName());
+		u.setEmail(servicePersonEntity.getMail());
+		u.setRealName(servicePersonEntity.getPersonName());
+		userService.updateById(u);
 		return R.status(servicePersonService.updateById(servicePersonEntity));
 	}
 
-	/**
-	 * 新增或修改
-	 */
-	@PostMapping("/submit")
-	@ApiOperationSupport(order = 6)
-	@ApiOperation(value = "新增或修改", notes = "传入servicePersonEntity")
-	public R submit(@RequestBody ServicePersonEntity servicePersonEntity) {
-		return R.status(servicePersonService.saveOrUpdate(servicePersonEntity));
-	}
-
 	/**
 	 * 删除
 	 */
@@ -158,6 +148,13 @@ public class ProjectServicePersonController extends BladeController {
 	@ApiOperationSupport(order = 7)
 	@ApiOperation(value = "逻辑删除", notes = "传入servicePersonEntity")
 	public R remove(@ApiParam(value = "主键集合") @RequestParam String ids) {
+		List<Long> list = Func.toLongList(ids);
+		if (null != list && list.size() > 0) {
+			for (Long id : list) {
+				ServicePersonEntity entity = servicePersonService.getById(id);
+				userService.removeById(entity.getUserId());
+			}
+		}
 		boolean temp = servicePersonService.deleteLogic(Func.toLongList(ids));
 		return R.status(temp);
 	}
@@ -194,7 +191,9 @@ public class ProjectServicePersonController extends BladeController {
 			OrgPersonContactVO contactVO = new OrgPersonContactVO();
 			contactVO.setId(dept.getId());
 			contactVO.setOrgName(dept.getDeptName());
-			List<ServicePersonVO> personVOList = this.servicePersonService.servicePersonList(contactVO.getId());
+			ServicePersonEntity personEntity = new ServicePersonEntity();
+			personEntity.setOrgId(contactVO.getId());
+			List<ServicePersonVO> personVOList = this.servicePersonService.selectAllList(personEntity);
 			contactVO.setServicePersonVOList(personVOList);
 			list.add(contactVO);
 		}

+ 1 - 1
src/main/java/org/springblade/modules/business/project/servicePerson/entity/ServicePersonEntity.java

@@ -42,7 +42,7 @@ public class ServicePersonEntity extends BaseEntity {
 	 * 机构ID
 	 */
 	@ApiModelProperty(value = "机构ID")
-	private String orgId;
+	private Long orgId;
 
 	/**
 	 * 联系电话

+ 3 - 1
src/main/java/org/springblade/modules/business/project/servicePerson/mapper/ProjectServicePersonMapper.java

@@ -7,6 +7,7 @@
 package org.springblade.modules.business.project.servicePerson.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.apache.ibatis.annotations.Param;
 import org.springblade.modules.business.project.servicePerson.entity.ServicePersonEntity;
 import org.springblade.modules.business.project.servicePerson.vo.ServicePersonVO;
@@ -22,5 +23,6 @@ import java.util.List;
  * Remark:认为有必要的其他信息
  */
 public interface ProjectServicePersonMapper extends BaseMapper<ServicePersonEntity> {
-	List<ServicePersonVO> servicePersonList(@Param("orgId") Long orgId);
+	IPage<ServicePersonVO> selectPage(IPage page, @Param("entity") ServicePersonEntity entity);
+	List<ServicePersonVO> selectAllList(@Param("entity") ServicePersonEntity entity);
 }

+ 41 - 9
src/main/java/org/springblade/modules/business/project/servicePerson/mapper/ProjectServicePersonMapper.xml

@@ -19,7 +19,7 @@
         <result column="user_account" property="userAccount"/>
     </resultMap>
 
-    <resultMap id="personListResultMap" type="org.springblade.modules.business.project.servicePerson.vo.ServicePersonVO">
+    <resultMap id="servicePersonVOResultMap" type="org.springblade.modules.business.project.servicePerson.vo.ServicePersonVO">
         <result column="id" property="id"/>
         <result column="create_user" property="createUser"/>
         <result column="create_time" property="createTime"/>
@@ -34,24 +34,56 @@
         <result column="remark" property="remark"/>
         <result column="account" property="userAccount"/>
         <result column="role_name" property="roleName"/>
+        <result column="dept_name" property="orgName"/>
     </resultMap>
 
-    <select id="servicePersonList" resultMap="personListResultMap">
+    <select id="selectPage" resultMap="servicePersonVOResultMap">
+
+        SELECT
+        p.*,
+        r.role_name,d.dept_name,u.real_name,u.account,u.phone,u.dept_id
+        FROM
+        project_service_person p
+        LEFT JOIN blade_user u ON u.id = p.user_id and u.is_deleted = 0
+        LEFT JOIN blade_role r ON r.id = u.role_id and r.is_deleted = 0
+        LEFT JOIN blade_dept d ON p.org_id = d.id and d.is_deleted = 0
+        WHERE
+        p.is_deleted = 0
+        <if test="entity.personName!=null">
+            and p.person_name like concat(concat('%', #{entity.personName}), '%')
+        </if>
+        <if test="entity.contactPhone!=null">
+            and p.contact_phone like concat(concat('%', #{entity.contactPhone}), '%')
+        </if>
+        <if test="entity.orgId!=null">
+            and p.org_id =#{entity.orgId}
+        </if>
+        ORDER BY
+        p.person_name
+    </select>
+
+    <select id="selectAllList" resultMap="servicePersonVOResultMap">
 
         SELECT
         u.*,
-        r.role_name,p.mail,p.remark
+        r.role_name,d.dept_name
         FROM
         blade_user u
-        LEFT JOIN project_service_person p ON u.id = p.user_id
-        LEFT JOIN blade_role r ON r.id = u.role_id
+        LEFT JOIN project_service_person p ON u.id = p.user_id and u.is_deleted = 0
+        LEFT JOIN blade_role r ON r.id = u.role_id and r.is_deleted = 0
+        LEFT JOIN blade_dept d ON u.dept_id = d.id and d.is_deleted = 0
         WHERE
-        u.is_deleted = 0
-        <if test="orgId!=null">
-            and u.dept_id =#{orgId}
+        p.is_deleted = 0
+        <if test="entity.personName!=null">
+            and p.person_name like concat(concat('%', #{entity.personName}), '%')
+        </if>
+        <if test="entity.contactPhone!=null">
+            and p.contact_phone like concat(concat('%', #{entity.contactPhone}), '%')
+        </if>
+        <if test="entity.orgId!=null">
+            and u.dept_id =#{entity.orgId}
         </if>
         ORDER BY
         p.person_name
     </select>
-
 </mapper>

+ 4 - 1
src/main/java/org/springblade/modules/business/project/servicePerson/service/IProjectServicePersonService.java

@@ -6,9 +6,11 @@
  */
 package org.springblade.modules.business.project.servicePerson.service;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.springblade.core.mp.base.BaseService;
 import org.springblade.modules.business.project.servicePerson.entity.ServicePersonEntity;
 import org.springblade.modules.business.project.servicePerson.vo.ServicePersonVO;
+import org.springblade.modules.business.rtu.base.vo.RtuInfoVO;
 
 import java.util.List;
 
@@ -21,5 +23,6 @@ import java.util.List;
  * Remark:认为有必要的其他信息
  */
 public interface IProjectServicePersonService extends BaseService<ServicePersonEntity> {
-	List<ServicePersonVO> servicePersonList(Long orgId);
+	IPage<ServicePersonVO> selectPage(IPage<ServicePersonVO> page, ServicePersonEntity entity);
+	List<ServicePersonVO> selectAllList( ServicePersonEntity entity);
 }

+ 9 - 2
src/main/java/org/springblade/modules/business/project/servicePerson/service/impl/ProjectServicePersonServiceImpl.java

@@ -6,6 +6,7 @@
  */
 package org.springblade.modules.business.project.servicePerson.service.impl;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.springblade.core.mp.base.BaseServiceImpl;
 import org.springblade.modules.business.project.servicePerson.entity.ServicePersonEntity;
 import org.springblade.modules.business.project.servicePerson.mapper.ProjectServicePersonMapper;
@@ -26,8 +27,14 @@ import java.util.List;
 @Service
 public class ProjectServicePersonServiceImpl  extends BaseServiceImpl<ProjectServicePersonMapper,ServicePersonEntity> implements IProjectServicePersonService {
 
+
+	@Override
+	public IPage<ServicePersonVO> selectPage(IPage<ServicePersonVO> page, ServicePersonEntity entity) {
+		return this.baseMapper.selectPage(page,entity);
+	}
+
 	@Override
-	public List<ServicePersonVO> servicePersonList(Long orgId) {
-		return baseMapper.servicePersonList(orgId);
+	public List<ServicePersonVO> selectAllList(ServicePersonEntity entity) {
+		return this.baseMapper.selectAllList(entity);
 	}
 }

+ 6 - 0
src/main/java/org/springblade/modules/business/project/servicePerson/vo/ServicePersonVO.java

@@ -27,4 +27,10 @@ public class ServicePersonVO extends ServicePersonEntity {
 	 */
 	@ApiModelProperty(value = "角色名称")
 	private String roleName;
+
+	/**
+	 * 机构名称
+	 */
+	@ApiModelProperty(value = "机构名称")
+	private String orgName;
 }

+ 2 - 2
src/main/java/org/springblade/modules/business/rtu/base/controller/RtuBaseInfoController.java

@@ -53,7 +53,7 @@ import java.util.List;
  * Remark:认为有必要的其他信息
  */
 @RestController
-@RequestMapping(AppConstant.APPLICATION_TEST_NAME + "/rtu/base")
+@RequestMapping("galaxy-business/rtu/base")
 @AllArgsConstructor
 @Api(value = "测站设备基础管理", tags = "测站设备基础管理")
 public class RtuBaseInfoController extends BladeController {
@@ -88,9 +88,9 @@ public class RtuBaseInfoController extends BladeController {
 	 */
 	@GetMapping("/page")
 	@ApiImplicitParams({
-		@ApiImplicitParam(name = "projectName", value = "项目名称", paramType = "query", dataType = "long"),
 		@ApiImplicitParam(name = "rtuName", value = "测站名称", paramType = "query", dataType = "string"),
 		@ApiImplicitParam(name = "rtuCode", value = "测站编码", paramType = "query", dataType = "string"),
+		@ApiImplicitParam(name = "adCode", value = "行政区划编码", paramType = "query", dataType = "string"),
 	})
 	@ApiOperationSupport(order = 3)
 	@ApiOperation(value = "分页")

+ 3 - 0
src/main/java/org/springblade/modules/business/rtu/base/dto/RtuInfoDTO.java

@@ -27,4 +27,7 @@ public class RtuInfoDTO extends RtuInfoEntity {
 	 */
 	@ApiModelProperty(value = "项目名称")
 	private String projectName;
+
+	@ApiModelProperty(value = "行政区划编码")
+	private String adCode;
 }

+ 2 - 0
src/main/java/org/springblade/modules/business/rtu/base/mapper/RtuInfoMapper.java

@@ -15,6 +15,7 @@ import org.springblade.modules.business.rtu.base.dto.RtuInfoDTO;
 import org.springblade.modules.business.rtu.base.entity.RtuInfoEntity;
 import org.springblade.modules.business.rtu.base.vo.RtuInfoVO;
 
+import javax.ws.rs.PATCH;
 import java.util.List;
 
 /***
@@ -35,4 +36,5 @@ public interface RtuInfoMapper extends BaseMapper<RtuInfoEntity> {
 	List<RtuInfoVO> selectPage(IPage page,@Param("rtuInfoDTO") RtuInfoDTO rtuInfoDTO);
 
 
+	Long rtuCount(@Param("orgId") Long orgId, @Param("adCode") String adCode);
 }

+ 29 - 6
src/main/java/org/springblade/modules/business/rtu/base/mapper/RtuInfoMapper.xml

@@ -129,17 +129,20 @@
 
         <result column="project_name" property="projectName"/>
         <result column="org_name" property="orgName"/>
+
+
     </resultMap>
 
 
     <select id="selectPage" resultMap="rtuInfoVOResultMap">
         SELECT
         n.*,
-        p.project_name ,d.dept_name AS org_name
+        d.dept_name AS org_name
         FROM
         rtu_info n
-        LEFT JOIN  project_info p ON n.project_id = p.id
-        LEFT JOIN  blade_dept d ON n.org_id = d.id
+        LEFT JOIN  data_mv_att_st_base p ON n.rtu_code = p.st_code and p.is_deleted=0
+        LEFT JOIN  data_ad_cd_b a ON a.adcd = p.ad_code and a.is_deleted=0
+        LEFT JOIN  blade_dept d ON n.org_id = d.id and d.is_deleted=0
         WHERE
         n.is_deleted = 0
         <if test="rtuInfoDTO.orgId!=null">
@@ -151,10 +154,30 @@
         <if test="rtuInfoDTO.rtuCode!=null">
             and n.rtu_code like concat(concat('%', #{rtuInfoDTO.rtuCode}), '%')
         </if>
-        <if test="rtuInfoDTO.projectName!=null">
-            and p.project_name like concat(concat('%', #{rtuInfoDTO.projectName}), '%')
+        <if test="rtuInfoDTO.adCode!=null">
+            and (p.ad_code =#{rtuInfoDTO.adCode} or a.ancestors in (SELECT ancestors FROM data_ad_cd_b WHERE ancestors  like concat(concat('%', #{rtuInfoDTO.adCode}), '%')))
+        </if>
+        order  by n.org_id,n.rtu_code
+
+    </select>
+
+
+    <select id="rtuCount" resultType="java.lang.Long">
+        SELECT
+        count(r.rtu_code)
+        FROM
+        rtu_info r
+        LEFT JOIN  data_mv_att_st_base p ON r.rtu_code = p.st_code and p.is_deleted=0
+        LEFT JOIN  data_ad_cd_b a ON a.adcd = p.ad_code and a.is_deleted=0
+        WHERE
+        r.is_deleted = 0
+        and a.adcd is not null
+        <if test="orgId!=null">
+            and r.org_id = #{orgId}
+        </if>
+        <if test="adCode!=null">
+            and (a.adcd =#{adCode} or a.ancestors in (SELECT ancestors FROM data_ad_cd_b WHERE ancestors  like concat(concat('%', #{adCode}), '%')))
         </if>
-        order  by n.org_id,n.project_id,n.rtu_code
 
     </select>
 </mapper>

+ 3 - 0
src/main/java/org/springblade/modules/business/rtu/base/service/IRtuBaseInfoService.java

@@ -7,6 +7,7 @@
 package org.springblade.modules.business.rtu.base.service;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.apache.ibatis.annotations.Param;
 import org.springblade.core.mp.base.BaseService;
 import org.springblade.modules.business.project.base.vo.ProjectInfoVO;
 import org.springblade.modules.business.rtu.base.dto.RtuInfoDTO;
@@ -30,4 +31,6 @@ public interface IRtuBaseInfoService extends BaseService<RtuInfoEntity> {
 	IPage<RtuInfoVO> selectPage(IPage<RtuInfoVO> page, RtuInfoDTO rtuInfoDTO);
 
 	RtuInfoEntity rtuInfoByRtuCode(String rtuCode);
+
+	Long rtuCount(Long orgId, String adCode);
 }

+ 5 - 0
src/main/java/org/springblade/modules/business/rtu/base/service/impl/RtuBaseInfoServiceImpl.java

@@ -41,4 +41,9 @@ public class RtuBaseInfoServiceImpl extends BaseServiceImpl<RtuInfoMapper, RtuIn
 		RtuInfoEntity rtuInfoEntity =  this.getOne(wrapper);
 		return rtuInfoEntity;
 	}
+
+	@Override
+	public Long rtuCount(Long orgId, String adCode) {
+		return baseMapper.rtuCount(orgId,adCode);
+	}
 }

+ 0 - 1
src/main/java/org/springblade/modules/business/rtu/base/vo/RtuInfoVO.java

@@ -67,5 +67,4 @@ public class RtuInfoVO extends RtuInfoEntity {
 	@ApiModelProperty(value = "填报状态")
 	private Integer reportStatus;
 
-
 }

+ 16 - 10
src/main/java/org/springblade/modules/business/rtu/data/controller/RtuDataGroundController.java

@@ -21,6 +21,10 @@ import org.springblade.core.mp.support.Query;
 import org.springblade.core.secure.BladeUser;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.Func;
+import org.springblade.modules.business.equipment.inspection.plan.entity.EquipmentInspectionPlanEntity;
+import org.springblade.modules.business.rtu.base.vo.RtuInfoVO;
+import org.springblade.modules.business.rtu.base.wrapper.RtuInfoWrapper;
 import org.springblade.modules.business.rtu.data.dto.RtuDataGroundDTO;
 import org.springblade.modules.business.rtu.data.entity.RtuDataGroundEntity;
 import org.springblade.modules.business.rtu.data.service.IRtuDataGroundService;
@@ -31,6 +35,8 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 import springfox.documentation.annotations.ApiIgnore;
 
+import java.util.List;
+
 /***
  * Date:2022/8/28
  * Title:文件所属模块(必须填写)
@@ -40,7 +46,7 @@ import springfox.documentation.annotations.ApiIgnore;
  * Remark:认为有必要的其他信息
  */
 @RestController
-@RequestMapping(AppConstant.APPLICATION_TEST_NAME + "/rtu/data/ground")
+@RequestMapping("galaxy-business/rtu/data/ground")
 @AllArgsConstructor
 @Api(value = "墒情实时数据管理", tags = "测站实时数据管理")
 public class RtuDataGroundController extends BladeController {
@@ -52,23 +58,23 @@ public class RtuDataGroundController extends BladeController {
 	@GetMapping("/page")
 	@ApiImplicitParams({
 		@ApiImplicitParam(name = "rtuName", value = "测站名称", paramType = "query", dataType = "string"),
-		@ApiImplicitParam(name = "orgId", value = "机构ID", paramType = "query", dataType = "long"),
-		@ApiImplicitParam(name = "projectId", value = "项目ID", paramType = "query", dataType = "long")
+		@ApiImplicitParam(name = "adCode", value = "行政区划编码", paramType = "query", dataType = "string"),
 	})
 	@ApiOperationSupport(order = 2)
 	@ApiOperation(value = "分页")
 	public R<IPage<RtuDataGroundVO>> page(@ApiIgnore RtuDataGroundDTO rtuDataGroundDTO, Query query) {
 		BladeUser user = AuthUtil.getUser();
 		if (BusinessConstant.ROLE_ORG_ADMIN.equals(user.getRoleName()) || BusinessConstant.ROLE_ORG_SERVICE_PERSON.equals(user.getRoleName())) {
-
-		} else if (BusinessConstant.ROLE_ADMIN.equals(user.getRoleName())) {
-			if (user.getDeptId().equals(""+rtuDataGroundDTO.getOrgId())) {
-				rtuDataGroundDTO.setOrgId(null);
-				rtuDataGroundDTO.setProjectId(null);
-			}
-
+			rtuDataGroundDTO.setOrgId(Func.toLong(user.getDeptId()));
+		} else {
+			rtuDataGroundDTO.setOrgId(null);
 		}
+
 		IPage<RtuDataGroundVO> pages = dataGroundService.selectPage(Condition.getPage(query), rtuDataGroundDTO);
+		List<RtuDataGroundVO> list = pages.getRecords();
+		for (RtuDataGroundVO rtuInfoVO : list) {
+			RtuDataGroundWrapper.build().appendInfo(rtuInfoVO);
+		}
 		return R.data(pages);
 	}
 

+ 15 - 10
src/main/java/org/springblade/modules/business/rtu/data/controller/RtuDataRainController.java

@@ -21,14 +21,20 @@ import org.springblade.core.mp.support.Query;
 import org.springblade.core.secure.BladeUser;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.Func;
 import org.springblade.modules.business.rtu.data.dto.RtuDataRainDTO;
 import org.springblade.modules.business.rtu.data.service.IRtuDataRainService;
+import org.springblade.modules.business.rtu.data.vo.RtuDataGroundVO;
 import org.springblade.modules.business.rtu.data.vo.RtuDataRainVO;
+import org.springblade.modules.business.rtu.data.wrapper.RtuDataGroundWrapper;
+import org.springblade.modules.business.rtu.data.wrapper.RtuDataRainWrapper;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 import springfox.documentation.annotations.ApiIgnore;
 
+import java.util.List;
+
 
 /***
  * Date:2022/8/28
@@ -39,7 +45,7 @@ import springfox.documentation.annotations.ApiIgnore;
  * Remark:认为有必要的其他信息
  */
 @RestController
-@RequestMapping(AppConstant.APPLICATION_TEST_NAME + "/rtu/data/rain")
+@RequestMapping("galaxy-business/rtu/data/rain")
 @AllArgsConstructor
 @Api(value = "降水实时数据管理", tags = "测站实时数据管理")
 public class RtuDataRainController extends BladeController {
@@ -51,23 +57,22 @@ public class RtuDataRainController extends BladeController {
 	@GetMapping("/page")
 	@ApiImplicitParams({
 		@ApiImplicitParam(name = "rtuName", value = "测站名称", paramType = "query", dataType = "string"),
-		@ApiImplicitParam(name = "orgId", value = "机构ID", paramType = "query", dataType = "long"),
-		@ApiImplicitParam(name = "projectId", value = "项目ID", paramType = "query", dataType = "long")
+		@ApiImplicitParam(name = "adCode", value = "行政区划编码", paramType = "query", dataType = "string"),
 	})
 	@ApiOperationSupport(order = 2)
 	@ApiOperation(value = "分页")
 	public R<IPage<RtuDataRainVO>> page(@ApiIgnore RtuDataRainDTO rtuDataRainDTO, Query query) {
 		BladeUser user = AuthUtil.getUser();
 		if (BusinessConstant.ROLE_ORG_ADMIN.equals(user.getRoleName()) || BusinessConstant.ROLE_ORG_SERVICE_PERSON.equals(user.getRoleName())) {
-
-		} else if (BusinessConstant.ROLE_ADMIN.equals(user.getRoleName())) {
-			if (user.getDeptId().equals(""+rtuDataRainDTO.getOrgId())) {
-				rtuDataRainDTO.setOrgId(null);
-				rtuDataRainDTO.setProjectId(null);
-			}
-
+			rtuDataRainDTO.setOrgId(Func.toLong(user.getDeptId()));
+		} else {
+			rtuDataRainDTO.setOrgId(null);
 		}
 		IPage<RtuDataRainVO> pages = dataRainService.selectPage(Condition.getPage(query), rtuDataRainDTO);
+		List<RtuDataRainVO> list = pages.getRecords();
+		for (RtuDataRainVO rtuInfoVO : list) {
+			RtuDataRainWrapper.build().appendInfo(rtuInfoVO);
+		}
 		return R.data(pages);
 	}
 }

+ 15 - 10
src/main/java/org/springblade/modules/business/rtu/data/controller/RtuDataRiverController.java

@@ -21,14 +21,20 @@ import org.springblade.core.mp.support.Query;
 import org.springblade.core.secure.BladeUser;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.Func;
 import org.springblade.modules.business.rtu.data.dto.RtuDataRiverDTO;
 import org.springblade.modules.business.rtu.data.service.IRtuDataRiverService;
+import org.springblade.modules.business.rtu.data.vo.RtuDataRainVO;
 import org.springblade.modules.business.rtu.data.vo.RtuDataRiverVO;
+import org.springblade.modules.business.rtu.data.wrapper.RtuDataRainWrapper;
+import org.springblade.modules.business.rtu.data.wrapper.RtuDataRiverWrapper;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 import springfox.documentation.annotations.ApiIgnore;
 
+import java.util.List;
+
 /***
  * Date:2022/8/28
  * Title:文件所属模块(必须填写)
@@ -38,7 +44,7 @@ import springfox.documentation.annotations.ApiIgnore;
  * Remark:认为有必要的其他信息
  */
 @RestController
-@RequestMapping(AppConstant.APPLICATION_TEST_NAME + "/rtu/data/river")
+@RequestMapping("galaxy-business/rtu/data/river")
 @AllArgsConstructor
 @Api(value = "河道水情实时数据管理", tags = "测站实时数据管理")
 public class RtuDataRiverController extends BladeController {
@@ -49,23 +55,22 @@ public class RtuDataRiverController extends BladeController {
 	@GetMapping("/page")
 	@ApiImplicitParams({
 		@ApiImplicitParam(name = "rtuName", value = "测站名称", paramType = "query", dataType = "string"),
-		@ApiImplicitParam(name = "orgId", value = "机构ID", paramType = "query", dataType = "long"),
-		@ApiImplicitParam(name = "projectId", value = "项目ID", paramType = "query", dataType = "long")
+		@ApiImplicitParam(name = "adCode", value = "行政区划编码", paramType = "query", dataType = "string"),
 	})
 	@ApiOperationSupport(order = 2)
 	@ApiOperation(value = "分页")
 	public R<IPage<RtuDataRiverVO>> page(@ApiIgnore RtuDataRiverDTO rtuDataRiverDTO, Query query) {
 		BladeUser user = AuthUtil.getUser();
 		if (BusinessConstant.ROLE_ORG_ADMIN.equals(user.getRoleName()) || BusinessConstant.ROLE_ORG_SERVICE_PERSON.equals(user.getRoleName())) {
-
-		} else if (BusinessConstant.ROLE_ADMIN.equals(user.getRoleName())) {
-			if (user.getDeptId().equals(""+rtuDataRiverDTO.getOrgId())) {
-				rtuDataRiverDTO.setOrgId(null);
-				rtuDataRiverDTO.setProjectId(null);
-			}
-
+			rtuDataRiverDTO.setOrgId(Func.toLong(user.getDeptId()));
+		} else {
+			rtuDataRiverDTO.setOrgId(null);
 		}
 		IPage<RtuDataRiverVO> pages = dataRiverService.selectPage(Condition.getPage(query),rtuDataRiverDTO);
+		List<RtuDataRiverVO> list = pages.getRecords();
+		for (RtuDataRiverVO rtuInfoVO : list) {
+			RtuDataRiverWrapper.build().appendInfo(rtuInfoVO);
+		}
 		return R.data(pages);
 	}
 }

+ 15 - 10
src/main/java/org/springblade/modules/business/rtu/data/controller/RtuDataRsvrController.java

@@ -21,14 +21,20 @@ import org.springblade.core.mp.support.Query;
 import org.springblade.core.secure.BladeUser;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.Func;
 import org.springblade.modules.business.rtu.data.dto.RtuDataRsvrDTO;
 import org.springblade.modules.business.rtu.data.service.IRtuDataRsvrService;
+import org.springblade.modules.business.rtu.data.vo.RtuDataRiverVO;
 import org.springblade.modules.business.rtu.data.vo.RtuDataRsvrVO;
+import org.springblade.modules.business.rtu.data.wrapper.RtuDataRiverWrapper;
+import org.springblade.modules.business.rtu.data.wrapper.RtuDataRsvrWrapper;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 import springfox.documentation.annotations.ApiIgnore;
 
+import java.util.List;
+
 /***
  * Date:2022/8/28
  * Title:文件所属模块(必须填写)
@@ -38,7 +44,7 @@ import springfox.documentation.annotations.ApiIgnore;
  * Remark:认为有必要的其他信息
  */
 @RestController
-@RequestMapping(AppConstant.APPLICATION_TEST_NAME + "/rtu/data/rsvr")
+@RequestMapping("galaxy-business/rtu/data/rsvr")
 @AllArgsConstructor
 @Api(value = "河道水情实时数据管理", tags = "测站实时数据管理")
 public class RtuDataRsvrController extends BladeController {
@@ -49,23 +55,22 @@ public class RtuDataRsvrController extends BladeController {
 	@GetMapping("/page")
 	@ApiImplicitParams({
 		@ApiImplicitParam(name = "rtuName", value = "测站名称", paramType = "query", dataType = "string"),
-		@ApiImplicitParam(name = "orgId", value = "机构ID", paramType = "query", dataType = "long"),
-		@ApiImplicitParam(name = "projectId", value = "项目ID", paramType = "query", dataType = "long")
+		@ApiImplicitParam(name = "adCode", value = "行政区划编码", paramType = "query", dataType = "string"),
 	})
 	@ApiOperationSupport(order = 2)
 	@ApiOperation(value = "分页")
 	public R<IPage<RtuDataRsvrVO>> page(@ApiIgnore RtuDataRsvrDTO rtuDataRsvrDTO, Query query) {
 		BladeUser user = AuthUtil.getUser();
 		if (BusinessConstant.ROLE_ORG_ADMIN.equals(user.getRoleName()) || BusinessConstant.ROLE_ORG_SERVICE_PERSON.equals(user.getRoleName())) {
-
-		} else if (BusinessConstant.ROLE_ADMIN.equals(user.getRoleName())) {
-			if (user.getDeptId().equals(""+rtuDataRsvrDTO.getOrgId())) {
-				rtuDataRsvrDTO.setOrgId(null);
-				rtuDataRsvrDTO.setProjectId(null);
-			}
-
+			rtuDataRsvrDTO.setOrgId(Func.toLong(user.getDeptId()));
+		} else {
+			rtuDataRsvrDTO.setOrgId(null);
 		}
 		IPage<RtuDataRsvrVO> pages = dataRsvrService.selectPage(Condition.getPage(query),rtuDataRsvrDTO);
+		List<RtuDataRsvrVO> list = pages.getRecords();
+		for (RtuDataRsvrVO rtuInfoVO : list) {
+			RtuDataRsvrWrapper.build().appendInfo(rtuInfoVO);
+		}
 		return R.data(pages);
 	}
 }

+ 7 - 0
src/main/java/org/springblade/modules/business/rtu/data/dto/RtuDataGroundDTO.java

@@ -39,4 +39,11 @@ public class RtuDataGroundDTO extends BaseEntity {
 	 */
 	@ApiModelProperty("项目ID")
 	private Long projectId;
+
+	/**
+	 * 行政区划编码
+	 */
+	@ApiModelProperty("行政区划编码")
+	private String adCode;
+
 }

+ 6 - 0
src/main/java/org/springblade/modules/business/rtu/data/dto/RtuDataRainDTO.java

@@ -39,4 +39,10 @@ public class RtuDataRainDTO extends BaseEntity {
 	 */
 	@ApiModelProperty("项目ID")
 	private Long projectId;
+
+	/**
+	 * 行政区划编码
+	 */
+	@ApiModelProperty("行政区划编码")
+	private String adCode;
 }

+ 6 - 0
src/main/java/org/springblade/modules/business/rtu/data/dto/RtuDataRiverDTO.java

@@ -39,4 +39,10 @@ public class RtuDataRiverDTO extends BaseEntity {
 	 */
 	@ApiModelProperty("项目ID")
 	private Long projectId;
+
+	/**
+	 * 行政区划编码
+	 */
+	@ApiModelProperty("行政区划编码")
+	private String adCode;
 }

+ 6 - 0
src/main/java/org/springblade/modules/business/rtu/data/dto/RtuDataRsvrDTO.java

@@ -39,4 +39,10 @@ public class RtuDataRsvrDTO extends BaseEntity {
 	 */
 	@ApiModelProperty("项目ID")
 	private Long projectId;
+
+	/**
+	 * 行政区划编码
+	 */
+	@ApiModelProperty("行政区划编码")
+	private String adCode;
 }

+ 11 - 7
src/main/java/org/springblade/modules/business/rtu/data/mapper/RtuDataGroundMapper.xml

@@ -46,27 +46,31 @@
         <result column="slm60" property="slm60"/>
         <result column="slm80" property="slm80"/>
         <result column="slm100" property="slm100"/>
+        <result column="ad_city" property="adCity"/>
+        <result column="ad_dist" property="adDist"/>
+
     </resultMap>
 
 
     <select id="selectPage" resultMap="rtuGroundDataVOResultMap">
         SELECT
         n.*,
-        p.rtu_name
+        r.rtu_name,r.ad_city,r.ad_dist
         FROM
         data_att_st_somo_cache n
-        LEFT JOIN  rtu_info p ON n.rtu_code = p.rtu_code
-
+        LEFT JOIN  rtu_info r ON n.rtu_code = r.rtu_code and r.is_deleted=0
+        LEFT JOIN  data_mv_att_st_base p ON r.rtu_code = p.st_code and p.is_deleted=0
+        LEFT JOIN  data_ad_cd_b a ON a.adcd = p.ad_code and a.is_deleted=0
         WHERE
         n.is_deleted = 0
         <if test="groundDTO.rtuName!=null">
-            and p.rtu_name LIKE concat(concat('%', #{groundDTO.rtuName}), '%')
+            and r.rtu_name LIKE concat(concat('%', #{groundDTO.rtuName}), '%')
         </if>
         <if test="groundDTO.orgId!=null">
-            and p.org_id = #{groundDTO.orgId}
+            and r.org_id = #{groundDTO.orgId}
         </if>
-        <if test="groundDTO.projectId!=null">
-            and p.project_id = #{groundDTO.projectId}
+        <if test="groundDTO.adCode!=null">
+            and (p.ad_code =#{groundDTO.adCode} or a.ancestors in (SELECT ancestors FROM data_ad_cd_b WHERE ancestors  like concat(concat('%', #{groundDTO.adCode}), '%')))
         </if>
 
     </select>

+ 10 - 7
src/main/java/org/springblade/modules/business/rtu/data/mapper/RtuDataRainMapper.xml

@@ -30,27 +30,30 @@
         <result column="tm" property="tm"/>
         <result column="drp" property="drp"/>
         <result column="rtu_name" property="rtuName"/>
+        <result column="ad_city" property="adCity"/>
+        <result column="ad_dist" property="adDist"/>
     </resultMap>
 
 
     <select id="selectPage" resultMap="rtuRainDataVOResultMap">
         SELECT
         n.*,
-        p.rtu_name
+        r.rtu_name,r.ad_city,r.ad_dist
         FROM
         data_att_st_prec_cache n
-        LEFT JOIN  rtu_info p ON n.rtu_code = p.rtu_code
-
+        LEFT JOIN  rtu_info r ON n.rtu_code = r.rtu_code and r.is_deleted=0
+        LEFT JOIN  data_mv_att_st_base p ON r.rtu_code = p.st_code and p.is_deleted=0
+        LEFT JOIN  data_ad_cd_b a ON a.adcd = p.ad_code and a.is_deleted=0
         WHERE
         n.is_deleted = 0
         <if test="rtuDataRainDTO.rtuName!=null ">
-            and p.rtu_name LIKE concat(concat('%', #{rtuDataRainDTO.rtuName}), '%')
+            and r.rtu_name LIKE concat(concat('%', #{rtuDataRainDTO.rtuName}), '%')
         </if>
         <if test="rtuDataRainDTO.orgId!=null">
-            and p.org_id = #{rtuDataRainDTO.orgId}
+            and r.org_id = #{rtuDataRainDTO.orgId}
         </if>
-        <if test="rtuDataRainDTO.projectId!=null ">
-            and p.project_id = #{rtuDataRainDTO.projectId}
+        <if test="rtuDataRainDTO.adCode!=null">
+            and (p.ad_code =#{rtuDataRainDTO.adCode} or a.ancestors in (SELECT ancestors FROM data_ad_cd_b WHERE ancestors  like concat(concat('%', #{rtuDataRainDTO.adCode}), '%')))
         </if>
 
     </select>

+ 11 - 7
src/main/java/org/springblade/modules/business/rtu/data/mapper/RtuDataRiverMapper.xml

@@ -28,25 +28,29 @@
         <result column="rtu_code" property="rtuCode"/>
         <result column="tm" property="tm"/>
         <result column="z" property="z"/>
+        <result column="ad_city" property="adCity"/>
+        <result column="ad_dist" property="adDist"/>
     </resultMap>
 
     <select id="selectPage" resultMap="rtuRiverDataVOResultMap">
         SELECT
         n.*,
-        p.rtu_name
+        r.rtu_name,r.ad_city,r.ad_dist
         FROM
         data_att_st_waco_ware_cache n
-        LEFT JOIN  rtu_info p ON n.rtu_code = p.rtu_code
+        LEFT JOIN  rtu_info r ON n.rtu_code = r.rtu_code and r.is_deleted=0
+        LEFT JOIN  data_mv_att_st_base p ON r.rtu_code = p.st_code and p.is_deleted=0
+        LEFT JOIN  data_ad_cd_b a ON a.adcd = p.ad_code and a.is_deleted=0
         WHERE
         n.is_deleted = 0
         <if test="riverDTO.rtuName!=null ">
-            and p.rtu_name LIKE concat(concat('%', #{riverDTO.rtuName}), '%')
+            and r.rtu_name LIKE concat(concat('%', #{riverDTO.rtuName}), '%')
         </if>
-        <if test="riverDTO.orgId!=null ">
-            and p.org_id = #{riverDTO.orgId}
+        <if test="riverDTO.orgId!=null">
+            and r.org_id = #{riverDTO.orgId}
         </if>
-        <if test="riverDTO.projectId!=null ">
-            and p.project_id = #{riverDTO.projectId}
+        <if test="riverDTO.adCode!=null">
+            and (p.ad_code =#{riverDTO.adCode} or a.ancestors in (SELECT ancestors FROM data_ad_cd_b WHERE ancestors  like concat(concat('%', #{riverDTO.adCode}), '%')))
         </if>
     </select>
 </mapper>

+ 11 - 9
src/main/java/org/springblade/modules/business/rtu/data/mapper/RtuDataRsvrMapper.xml

@@ -28,28 +28,30 @@
         <result column="tm" property="tm"/>
         <result column="rz" property="rz"/>
         <result column="rtu_name" property="rtuName"/>
+        <result column="ad_city" property="adCity"/>
+        <result column="ad_dist" property="adDist"/>
     </resultMap>
 
 
-
     <select id="selectPage" resultMap="rtuRsvrDataVOResultMap">
         SELECT
         n.*,
-        p.rtu_name
+        r.rtu_name,r.ad_city,r.ad_dist
         FROM
         data_att_st_res_ware_cache n
-        LEFT JOIN  rtu_info p ON n.rtu_code = p.rtu_code
-
+        LEFT JOIN  rtu_info r ON n.rtu_code = r.rtu_code and r.is_deleted=0
+        LEFT JOIN  data_mv_att_st_base p ON r.rtu_code = p.st_code and p.is_deleted=0
+        LEFT JOIN  data_ad_cd_b a ON a.adcd = p.ad_code and a.is_deleted=0
         WHERE
         n.is_deleted = 0
         <if test="rsvrDTO.rtuName!=null ">
-            and p.rtu_name LIKE concat(concat('%', #{rsvrDTO.rtuName}), '%')
+            and r.rtu_name LIKE concat(concat('%', #{rsvrDTO.rtuName}), '%')
         </if>
-        <if test="rsvrDTO.orgId!=null ">
-            and p.org_id = #{rsvrDTO.orgId}
+        <if test="rsvrDTO.orgId!=null">
+            and r.org_id = #{rsvrDTO.orgId}
         </if>
-        <if test="rsvrDTO.projectId!=null ">
-            and p.project_id = #{rsvrDTO.projectId}
+        <if test="rsvrDTO.adCode!=null">
+            and (p.ad_code =#{rsvrDTO.adCode} or a.ancestors in (SELECT ancestors FROM data_ad_cd_b WHERE ancestors  like concat(concat('%', #{rsvrDTO.adCode}), '%')))
         </if>
     </select>
 </mapper>

+ 18 - 0
src/main/java/org/springblade/modules/business/rtu/data/vo/RtuDataGroundVO.java

@@ -29,4 +29,22 @@ public class RtuDataGroundVO extends RtuDataGroundEntity {
 	 */
 	@ApiModelProperty("测站名称")
 	private String rtuName;
+
+	/**
+	 * 所属盟市
+	 */
+	@ApiModelProperty(value = "所属盟市")
+	private String adCity;
+
+	/**
+	 * 所属盟县旗区
+	 */
+	@ApiModelProperty(value = "所属盟县旗区")
+	private String adDist;
+
+	/**
+	 * 行政区
+	 */
+	@ApiModelProperty(value = "行政区")
+	private String areaName;
 }

Неке датотеке нису приказане због велике количине промена