lchao 2 months ago
commit
bbad331e10
100 changed files with 8686 additions and 0 deletions
  1. 107 0
      pom.xml
  2. 38 0
      src/main/java/com/sooka/sponest/mobile/SookaMobileApplication.java
  3. 13 0
      src/main/java/com/sooka/sponest/mobile/aop/NoRepeatSubmit.java
  4. 54 0
      src/main/java/com/sooka/sponest/mobile/aop/NoRepeatSubmitAop.java
  5. 18 0
      src/main/java/com/sooka/sponest/mobile/aop/UrlCache.java
  6. 610 0
      src/main/java/com/sooka/sponest/mobile/appbigdata/controller/AppBigDataController.java
  7. 236 0
      src/main/java/com/sooka/sponest/mobile/appbigdata/controller/AppBigDataCountController.java
  8. 15 0
      src/main/java/com/sooka/sponest/mobile/appbigdata/domain/CenterdataTEnvironmentRyList.java
  9. 33 0
      src/main/java/com/sooka/sponest/mobile/appbigdata/domain/ForestCloudRYList.java
  10. 16 0
      src/main/java/com/sooka/sponest/mobile/appbigdata/domain/bo/EnvironmentCloudRYBO.java
  11. 20 0
      src/main/java/com/sooka/sponest/mobile/appbigdata/domain/bo/EnvironmentCloudRyZxUerIdBO.java
  12. 16 0
      src/main/java/com/sooka/sponest/mobile/appbigdata/domain/bo/ForestCloudRYBO.java
  13. 20 0
      src/main/java/com/sooka/sponest/mobile/appbigdata/domain/bo/ForestCloudRyZxUerIdBO.java
  14. 17 0
      src/main/java/com/sooka/sponest/mobile/appbigdata/domain/bo/ImportBo.java
  15. 70 0
      src/main/java/com/sooka/sponest/mobile/appbigdata/domain/bo/KeyProjectsScheduleBO.java
  16. 24 0
      src/main/java/com/sooka/sponest/mobile/appbigdata/domain/bo/VisuForestResourceBO.java
  17. 18 0
      src/main/java/com/sooka/sponest/mobile/appbigdata/domain/bo/VisualBO.java
  18. 34 0
      src/main/java/com/sooka/sponest/mobile/appbigdata/domain/vo/BaseESBO.java
  19. 15 0
      src/main/java/com/sooka/sponest/mobile/appbigdata/domain/vo/CameraVO.java
  20. 43 0
      src/main/java/com/sooka/sponest/mobile/appbigdata/domain/vo/ForestCloudMapVO.java
  21. 22 0
      src/main/java/com/sooka/sponest/mobile/appbigdata/domain/vo/VisuFireSendingSMSVo.java
  22. 31 0
      src/main/java/com/sooka/sponest/mobile/appbigdata/domain/vo/VisuForestCloudMapVO.java
  23. 18 0
      src/main/java/com/sooka/sponest/mobile/appbigdata/domain/vo/VisuForestDataCenterVO.java
  24. 97 0
      src/main/java/com/sooka/sponest/mobile/base/controller/AppAttendanceController.java
  25. 108 0
      src/main/java/com/sooka/sponest/mobile/base/controller/AppBaseController.java
  26. 11 0
      src/main/java/com/sooka/sponest/mobile/base/domain/AppBaseBO.java
  27. 10 0
      src/main/java/com/sooka/sponest/mobile/base/domain/AppBaseVO.java
  28. 34 0
      src/main/java/com/sooka/sponest/mobile/base/domain/AppUserLocusVO.java
  29. 52 0
      src/main/java/com/sooka/sponest/mobile/base/domain/CenterdataTHydraulicPatrolPlanRecord.java
  30. 81 0
      src/main/java/com/sooka/sponest/mobile/base/domain/CenterdataTHydraulicPatrolTask.java
  31. 39 0
      src/main/java/com/sooka/sponest/mobile/base/domain/CenterdataTHydraulicTrack.java
  32. 96 0
      src/main/java/com/sooka/sponest/mobile/base/domain/ModulesServiceNameContants.java
  33. 52 0
      src/main/java/com/sooka/sponest/mobile/base/domain/SysAttendance.java
  34. 58 0
      src/main/java/com/sooka/sponest/mobile/base/service/AppAttendanceService.java
  35. 201 0
      src/main/java/com/sooka/sponest/mobile/base/service/impl/AppAttendanceServiceImpl.java
  36. 125 0
      src/main/java/com/sooka/sponest/mobile/comprehensive/ConflictDefuseController/AppConflictResolutionController.java
  37. 107 0
      src/main/java/com/sooka/sponest/mobile/comprehensive/RoadCaseController/AppRoadCaseController.java
  38. 94 0
      src/main/java/com/sooka/sponest/mobile/comprehensive/RoadCaseController/AppRoadProtectionController.java
  39. 120 0
      src/main/java/com/sooka/sponest/mobile/comprehensive/actualPeopleController/AppOverseasPersonInfoController.java
  40. 109 0
      src/main/java/com/sooka/sponest/mobile/comprehensive/actualPeopleController/AppRentalHousingController.java
  41. 121 0
      src/main/java/com/sooka/sponest/mobile/comprehensive/comprehensiveconflictdefuseController/AppGridLeaderController.java
  42. 48 0
      src/main/java/com/sooka/sponest/mobile/comprehensive/dict/AppDictController.java
  43. 33 0
      src/main/java/com/sooka/sponest/mobile/comprehensive/eventController/EventCompletedController.java
  44. 162 0
      src/main/java/com/sooka/sponest/mobile/comprehensive/eventController/EventController.java
  45. 55 0
      src/main/java/com/sooka/sponest/mobile/comprehensive/eventController/EventDistributeController.java
  46. 36 0
      src/main/java/com/sooka/sponest/mobile/comprehensive/eventController/EventFileController.java
  47. 70 0
      src/main/java/com/sooka/sponest/mobile/comprehensive/eventController/EventTodoController.java
  48. 51 0
      src/main/java/com/sooka/sponest/mobile/comprehensive/eventController/EventTypeController.java
  49. 62 0
      src/main/java/com/sooka/sponest/mobile/comprehensive/eventController/EventVerfiedController.java
  50. 119 0
      src/main/java/com/sooka/sponest/mobile/comprehensive/nonPublicEconomicOrganizationsController/APPComprehensiveNonPublicEconomicOrganizationsController.java
  51. 116 0
      src/main/java/com/sooka/sponest/mobile/comprehensive/nonPublicEconomicOrganizationsController/APPComprehensiveSocialOrganizationController.java
  52. 103 0
      src/main/java/com/sooka/sponest/mobile/comprehensive/organizationAndInstitutionController/APPComprehensiveManagementCenterController.java
  53. 89 0
      src/main/java/com/sooka/sponest/mobile/comprehensive/organizationAndInstitutionController/APPComprehensiveTGrossCaseController.java
  54. 95 0
      src/main/java/com/sooka/sponest/mobile/comprehensive/organizationAndInstitutionController/APPComprehensiveTPreventionOrganizationController.java
  55. 98 0
      src/main/java/com/sooka/sponest/mobile/comprehensive/organizationAndInstitutionController/APPComprehensiveTPreventionTeam.java
  56. 94 0
      src/main/java/com/sooka/sponest/mobile/comprehensive/organizationAndInstitutionController/AppBuildingController.java
  57. 127 0
      src/main/java/com/sooka/sponest/mobile/comprehensive/organizationAndInstitutionController/AppBuildingLeaderController.java
  58. 99 0
      src/main/java/com/sooka/sponest/mobile/comprehensive/organizationAndInstitutionController/AppHousingEstateController.java
  59. 109 0
      src/main/java/com/sooka/sponest/mobile/comprehensive/organizationAndInstitutionController/AppInstitutionsController.java
  60. 100 0
      src/main/java/com/sooka/sponest/mobile/comprehensive/organizationAndInstitutionController/AppLeadershipController.java
  61. 120 0
      src/main/java/com/sooka/sponest/mobile/comprehensive/organizationAndInstitutionController/AppPatrolPlanController.java
  62. 110 0
      src/main/java/com/sooka/sponest/mobile/comprehensive/organizationAndInstitutionController/AppPatrolTaskController.java
  63. 83 0
      src/main/java/com/sooka/sponest/mobile/comprehensive/organizationAndInstitutionController/AppPatrolTrackController.java
  64. 81 0
      src/main/java/com/sooka/sponest/mobile/comprehensive/organizationAndInstitutionController/AppPublicSafetyMonitoringController.java
  65. 175 0
      src/main/java/com/sooka/sponest/mobile/comprehensive/organizationAndInstitutionController/AppRoomController.java
  66. 110 0
      src/main/java/com/sooka/sponest/mobile/comprehensive/organizationAndInstitutionController/AppTeamController.java
  67. 87 0
      src/main/java/com/sooka/sponest/mobile/comprehensive/organizationAndInstitutionController/AppVideoNetworkingController.java
  68. 511 0
      src/main/java/com/sooka/sponest/mobile/comprehensive/personBasicInfoController/AppPersonBasicInfoController.java
  69. 108 0
      src/main/java/com/sooka/sponest/mobile/comprehensive/schoolSafetyController/AppSafetyInvolvedController.java
  70. 101 0
      src/main/java/com/sooka/sponest/mobile/comprehensive/schoolSafetyController/AppSchoolController.java
  71. 83 0
      src/main/java/com/sooka/sponest/mobile/comprehensive/socialPolicingController/AppBasicHomicideInformationController.java
  72. 97 0
      src/main/java/com/sooka/sponest/mobile/comprehensive/socialPolicingController/AppRemediationInKeyAreaController.java
  73. 111 0
      src/main/java/com/sooka/sponest/mobile/comprehensive/socialPolicingController/AppSafetyManagementController.java
  74. 144 0
      src/main/java/com/sooka/sponest/mobile/comprehensive/socialPolicingController/AppVictimController.java
  75. 80 0
      src/main/java/com/sooka/sponest/mobile/data/basicdatacontroller/CarController.java
  76. 81 0
      src/main/java/com/sooka/sponest/mobile/data/basicdatacontroller/CarRepairController.java
  77. 89 0
      src/main/java/com/sooka/sponest/mobile/data/basicdatacontroller/FireHydrantController.java
  78. 92 0
      src/main/java/com/sooka/sponest/mobile/data/basicdatacontroller/WaterCraneController.java
  79. 91 0
      src/main/java/com/sooka/sponest/mobile/data/basicdatacontroller/WaterIntakeController.java
  80. 132 0
      src/main/java/com/sooka/sponest/mobile/data/commoncontroller/commonController.java
  81. 24 0
      src/main/java/com/sooka/sponest/mobile/data/commoncontroller/domain/AppDigitalForestVO.java
  82. 75 0
      src/main/java/com/sooka/sponest/mobile/data/digitalagriculture/controller/AgriculturalMachineryInfoController.java
  83. 75 0
      src/main/java/com/sooka/sponest/mobile/data/digitalagriculture/controller/AlongController.java
  84. 87 0
      src/main/java/com/sooka/sponest/mobile/data/digitalagriculture/controller/BotanyProtectInfoController.java
  85. 81 0
      src/main/java/com/sooka/sponest/mobile/data/digitalagriculture/controller/BreedingFarmController.java
  86. 77 0
      src/main/java/com/sooka/sponest/mobile/data/digitalagriculture/controller/CesspitCollectController.java
  87. 75 0
      src/main/java/com/sooka/sponest/mobile/data/digitalagriculture/controller/ChemicalFertilizerInfoController.java
  88. 86 0
      src/main/java/com/sooka/sponest/mobile/data/digitalagriculture/controller/CollectiveFarmlandController.java
  89. 75 0
      src/main/java/com/sooka/sponest/mobile/data/digitalagriculture/controller/ContractManagementController.java
  90. 87 0
      src/main/java/com/sooka/sponest/mobile/data/digitalagriculture/controller/CooperativesController.java
  91. 112 0
      src/main/java/com/sooka/sponest/mobile/data/digitalagriculture/controller/DataController.java
  92. 88 0
      src/main/java/com/sooka/sponest/mobile/data/digitalagriculture/controller/EnterpriseController.java
  93. 87 0
      src/main/java/com/sooka/sponest/mobile/data/digitalagriculture/controller/ExcrementdisposeController.java
  94. 88 0
      src/main/java/com/sooka/sponest/mobile/data/digitalagriculture/controller/FilingsLivestockController.java
  95. 90 0
      src/main/java/com/sooka/sponest/mobile/data/digitalagriculture/controller/GarbageTransferController.java
  96. 87 0
      src/main/java/com/sooka/sponest/mobile/data/digitalagriculture/controller/GreenhousefilmController.java
  97. 75 0
      src/main/java/com/sooka/sponest/mobile/data/digitalagriculture/controller/ImplementsInfoController.java
  98. 75 0
      src/main/java/com/sooka/sponest/mobile/data/digitalagriculture/controller/InformationController.java
  99. 87 0
      src/main/java/com/sooka/sponest/mobile/data/digitalagriculture/controller/LivestockController.java
  100. 0 0
      src/main/java/com/sooka/sponest/mobile/data/digitalagriculture/controller/MachineryInfoController.java

+ 107 - 0
pom.xml

@@ -0,0 +1,107 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <groupId>com.ruoyi</groupId>
+        <artifactId>ruoyi-modules</artifactId>
+        <version>3.4.0</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <groupId>com.sooka.onest</groupId>
+    <artifactId>sooka-mobile</artifactId>
+
+    <dependencies>
+
+        <!-- SpringCloud Alibaba Nacos -->
+        <dependency>
+            <groupId>com.alibaba.cloud</groupId>
+            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
+        </dependency>
+
+        <!-- SpringCloud Alibaba Nacos Config -->
+        <dependency>
+            <groupId>com.alibaba.cloud</groupId>
+            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
+        </dependency>
+
+        <!-- SpringCloud Alibaba Sentinel -->
+        <dependency>
+            <groupId>com.alibaba.cloud</groupId>
+            <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
+        </dependency>
+
+        <!-- Swagger UI -->
+        <dependency>
+            <groupId>io.springfox</groupId>
+            <artifactId>springfox-swagger-ui</artifactId>
+            <version>${swagger.fox.version}</version>
+        </dependency>
+
+        <!-- Mysql Connector -->
+        <dependency>
+            <groupId>mysql</groupId>
+            <artifactId>mysql-connector-java</artifactId>
+        </dependency>
+
+        <!-- RuoYi Common DataSource -->
+        <dependency>
+            <groupId>com.ruoyi</groupId>
+            <artifactId>sooka-sponest-common-datasource</artifactId>
+        </dependency>
+
+        <!-- RuoYi Common DataScope -->
+        <dependency>
+            <groupId>com.ruoyi</groupId>
+            <artifactId>sooka-sponest-common-datascope</artifactId>
+        </dependency>
+
+        <!-- RuoYi Common Log -->
+        <dependency>
+            <groupId>com.ruoyi</groupId>
+            <artifactId>sooka-sponest-common-log</artifactId>
+        </dependency>
+
+        <!-- RuoYi Common Swagger -->
+        <dependency>
+            <groupId>com.ruoyi</groupId>
+            <artifactId>sooka-sponest-common-swagger</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>com.ruoyi</groupId>
+            <artifactId>sooka-sponest-api-comprehensive</artifactId>
+            <version>3.4.0</version>
+        </dependency>
+
+        <dependency>
+            <groupId>com.ruoyi</groupId>
+            <artifactId>sooka-sponest-api-data</artifactId>
+            <version>3.4.0</version>
+        </dependency>
+
+    </dependencies>
+
+    <build>
+        <finalName>${project.artifactId}</finalName>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+                <version>2.1.5.RELEASE</version>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>repackage</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+            </plugin>
+        </plugins>
+    </build>
+</project>

+ 38 - 0
src/main/java/com/sooka/sponest/mobile/SookaMobileApplication.java

@@ -0,0 +1,38 @@
+package com.sooka.sponest.mobile;
+
+import com.ruoyi.common.security.annotation.EnableCustomConfig;
+import com.ruoyi.common.security.annotation.EnableRyFeignClients;
+import com.ruoyi.common.swagger.annotation.EnableCustomSwagger2;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.boot.web.servlet.MultipartConfigFactory;
+import org.springframework.context.annotation.Bean;
+import org.springframework.util.unit.DataSize;
+
+import javax.servlet.MultipartConfigElement;
+
+@EnableCustomConfig
+@EnableCustomSwagger2
+@EnableRyFeignClients
+@SpringBootApplication
+public class SookaMobileApplication {
+
+    public static void main(String[] args) {
+        SpringApplication.run(SookaMobileApplication.class, args);
+        System.out.println("(♥◠‿◠)ノ゙  首佳科技 手机端 启动成功   ლ(´ڡ`ლ)゙  \n" +
+                "  __________   ____ |  | _______          ____________   ____   ____   ____   _______/  |_\n" +
+                " /  ___/  _ \\ /  _ \\|  |/ /\\__  \\        /  ___/\\____ \\ /  _ \\ /    \\_/ __ \\ /  ___/\\   __\\\n" +
+                " \\___ (  <_> |  <_> )    <  / __ \\_      \\___ \\ |  |_> >  <_> )   |  \\  ___/ \\___ \\  |  |\n" +
+                "/____  >____/ \\____/|__|_ \\(____  /     /____  >|   __/ \\____/|___|  /\\___  >____  > |__|\n" +
+                "     \\/                  \\/     \\/           \\/ |__|               \\/     \\/     \\/\n"
+        );
+    }
+
+    @Bean
+    public MultipartConfigElement multipartConfigElement() {
+        MultipartConfigFactory factory = new MultipartConfigFactory();
+        factory.setMaxFileSize(DataSize.parse("10240000KB"));
+        factory.setMaxRequestSize(DataSize.parse("10240000KB"));
+        return factory.createMultipartConfig();
+    }
+}

+ 13 - 0
src/main/java/com/sooka/sponest/mobile/aop/NoRepeatSubmit.java

@@ -0,0 +1,13 @@
+package com.sooka.sponest.mobile.aop;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * @Author 杨洺硕
+ */
+@Target(ElementType.METHOD)                                     // 作用到方法上
+@Retention(RetentionPolicy.RUNTIME)                             // 运行时有效
+public @interface NoRepeatSubmit {
+}

+ 54 - 0
src/main/java/com/sooka/sponest/mobile/aop/NoRepeatSubmitAop.java

@@ -0,0 +1,54 @@
+package com.sooka.sponest.mobile.aop;
+
+import com.google.common.cache.Cache;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import org.aspectj.lang.ProceedingJoinPoint;
+import org.aspectj.lang.annotation.Around;
+import org.aspectj.lang.annotation.Aspect;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Component;
+import org.springframework.web.context.request.RequestContextHolder;
+import org.springframework.web.context.request.ServletRequestAttributes;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import java.util.Objects;
+
+/**
+ * @Author 杨洺硕
+ */
+@Aspect
+@Component
+public class NoRepeatSubmitAop {
+    private static final Logger log = LoggerFactory.getLogger(NoRepeatSubmitAop.class);
+
+
+    @Resource
+    private Cache<String, Integer> cache;
+
+    @Around("execution(* com.sooka.sponest.mobile..*Controller.*(..)) && @annotation(nrs)")
+    public Object around(ProceedingJoinPoint pjp, NoRepeatSubmit nrs) {
+        try {
+            ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
+            String sessionId = Objects.requireNonNull(RequestContextHolder.getRequestAttributes()).getSessionId();
+            HttpServletRequest request;
+            if (attributes != null) {
+                request = attributes.getRequest();
+                String key = sessionId + "-" + request.getServletPath();
+                if (cache.getIfPresent(key) == null) {
+                    Object o = pjp.proceed();
+                    cache.put(key, 0);
+                    return o;
+                } else {
+                    return AjaxResult.error("抱歉,请勿重复操作");
+                }
+            }
+        } catch (Throwable e) {
+            log.error(e.getMessage());
+            return AjaxResult.error("验证重复操作时出现未知异常!");
+        }
+        return null;
+    }
+
+}

+ 18 - 0
src/main/java/com/sooka/sponest/mobile/aop/UrlCache.java

@@ -0,0 +1,18 @@
+package com.sooka.sponest.mobile.aop;
+
+import com.google.common.cache.Cache;
+import com.google.common.cache.CacheBuilder;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+import java.util.concurrent.TimeUnit;
+/**
+ * @Author 杨洺硕
+ */
+@Configuration
+public class UrlCache {
+    @Bean
+    public Cache<String, Integer> getCache() {
+        return CacheBuilder.newBuilder().expireAfterWrite(5L, TimeUnit.SECONDS).build();
+    }
+}

+ 610 - 0
src/main/java/com/sooka/sponest/mobile/appbigdata/controller/AppBigDataController.java

@@ -0,0 +1,610 @@
+package com.sooka.sponest.mobile.appbigdata.controller;
+
+import com.ruoyi.common.core.constant.EventTypeMenuConstants;
+import com.ruoyi.common.core.constant.HttpStatus;
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.web.page.TableDataInfo;
+import com.ruoyi.common.security.utils.DictUtils;
+import com.ruoyi.system.api.domain.SysMenuEventType;
+import com.sooka.sponest.mobile.aop.NoRepeatSubmit;
+import com.sooka.sponest.mobile.appbigdata.domain.bo.ImportBo;
+import com.sooka.sponest.mobile.appbigdata.domain.bo.KeyProjectsScheduleBO;
+import com.sooka.sponest.mobile.appbigdata.domain.bo.VisuForestResourceBO;
+import com.sooka.sponest.mobile.appbigdata.domain.vo.VisuFireSendingSMSVo;
+import com.sooka.sponest.mobile.appbigdata.domain.vo.VisuForestCloudMapVO;
+import com.sooka.sponest.mobile.appbigdata.domain.vo.VisuForestDataCenterVO;
+import com.sooka.sponest.mobile.base.service.AppAttendanceService;
+import com.sooka.sponest.mobile.data.digitalagriculture.domain.VisuBaseService;
+import com.sooka.sponest.mobile.remoteapi.RemoteDataBaseService;
+import com.sooka.sponest.mobile.remoteapi.RemoteEventBaseService;
+import com.sooka.sponest.mobile.remoteapi.RemoteSystemBaseService;
+import com.sooka.sponest.mobile.remoteapi.domain.CenterdataTForestFireteam;
+import com.sooka.sponest.mobile.remoteapi.domain.CommandCenterBO;
+import com.sooka.sponest.mobile.utils.PictureReplaceAll;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.*;
+
+@RestController
+@RequestMapping("/AppBigDataController")
+public class AppBigDataController extends VisuBaseService {
+
+    @Resource
+    RemoteDataBaseService remoteDataBaseService;
+    @Resource
+    RemoteEventBaseService remoteEventBaseService;
+
+    @Resource
+    RemoteSystemBaseService remoteSystemBaseService;
+
+    public static final String EVENT_TYPE = "eventType";
+    public static final String FOREST_EVENT_STATUS_2 = "forest_event_status_2";
+    public static final String FOREST_EVENT_STATUS_5 = "forest_event_status_5";
+    public static final String NAME_CHINESE = "name_chinese";
+    public static final String NAME_ORIGINAL = "name_original";
+    public static final String EVENT = "event";
+    public static final String PHOTO_ID = "photoId";
+
+
+    /**
+     * 手机端获取全部事件
+     *
+     * @return com.ruoyi.common.core.domain.R
+     * @author pengyu
+     * @date 2023/2/22 13:34
+     **/
+    @ApiOperation(value = "全部事件", notes = "全部事件")
+    @NoRepeatSubmit
+    @PostMapping("getAllData")
+    public R getAllData() {
+        return R.ok(remoteDataBaseService.getAllData().getData());
+    }
+
+    /**
+     * 手机端获取林业事件统计
+     *
+     * @return com.ruoyi.common.core.web.domain.AjaxResult
+     * @author pengyu
+     * @date 2023/2/22 13:43
+     **/
+    @ApiOperation(value = "林业事件统计", notes = "林业事件统计")
+    //@NoRepeatSubmit
+    @PostMapping("getFireData")
+    public AjaxResult getFireData() {
+        SysMenuEventType sysMenuEventType = new SysMenuEventType();
+        sysMenuEventType.setMenuId(EventTypeMenuConstants.FOREST);
+        Map<String, String[]> stringMap = appAttendanceService.selectByMenuId(sysMenuEventType).getData();
+        VisuForestCloudMapVO visuForestCloudMapVO = new VisuForestCloudMapVO();
+        visuForestCloudMapVO.setEventTypeId(stringMap.get(EVENT_TYPE));
+        List<String> list = new ArrayList<>();
+        list.add(FOREST_EVENT_STATUS_2);
+        list.add(FOREST_EVENT_STATUS_5);
+        visuForestCloudMapVO.setEventStatus(list);
+        Map<String, Object> map = new HashMap<>();
+        //基础数据
+        List<Map> dataMap = (List<Map>) remoteDataBaseService.getFireData().getData();
+        for (Map data : dataMap) {
+            data.put(NAME_CHINESE, data.get("name").toString().split("\\(")[0] + "(" + data.get("name").toString().split("\\(")[1].split("\\)")[0] + ")");
+            data.put(NAME_ORIGINAL, data.get("name").toString().split("\\(")[0]);
+        }
+        map.put("rows", dataMap);
+        //事件
+        map.put(EVENT, remoteEventBaseService.getEventCountGroupByEventStatus(visuForestCloudMapVO).getData());
+        return AjaxResult.success(map);
+    }
+
+    @Resource
+    AppAttendanceService appAttendanceService;
+
+    /**
+     * 手机端消防统计数据
+     *
+     * @return com.ruoyi.common.core.web.domain.AjaxResult
+     * @author pengyu
+     * @date 2023/2/22 11:23
+     */
+    @ApiOperation(value = "消防统计数据", notes = "消防统计数据")
+    @NoRepeatSubmit
+    @PostMapping("getFireControlData")
+    public AjaxResult getFireControlData() {
+        SysMenuEventType sysMenuEventType = new SysMenuEventType();
+        sysMenuEventType.setMenuId(EventTypeMenuConstants.FIRECONTROL);
+        Map<String, String[]> stringMap = appAttendanceService.selectByMenuId(sysMenuEventType).getData();
+        VisuForestCloudMapVO visuForestCloudMapVO = new VisuForestCloudMapVO();
+        visuForestCloudMapVO.setEventTypeId(stringMap.get(EVENT_TYPE));
+        List<String> list = new ArrayList<>();
+        list.add(FOREST_EVENT_STATUS_2);
+        list.add(FOREST_EVENT_STATUS_5);
+        visuForestCloudMapVO.setEventStatus(list);
+        Map<String, Object> map = new HashMap<>();
+        //基础数据
+        List<Map> dataMap = remoteDataBaseService.fireControlViewList().getData();
+        Iterator<Map> iterator = dataMap.iterator();
+        while (iterator.hasNext()) {
+            Map data = iterator.next();
+            if ("centerdata_t_forest_fireteam".equals(data.get("type").toString())) {
+                iterator.remove();
+            } else {
+                data.put(NAME_CHINESE, data.get("name").toString().split("\\(")[0] + "(" + data.get("name").toString().split("\\(")[1].split("\\)")[0] + ")");
+                data.put(NAME_ORIGINAL, data.get("name").toString().split("\\(")[0]);
+            }
+        }
+        //基础数据
+        map.put("rows", dataMap);
+        //事件
+        map.put(EVENT, remoteEventBaseService.getEventCountGroupByEventStatus(visuForestCloudMapVO).getData());
+        return AjaxResult.success(map);
+    }
+
+    /**
+     * 手机端环保首页大数据
+     *
+     * @return com.ruoyi.common.core.web.domain.AjaxResult
+     * @author pengyu
+     * @date 2023/2/22 9:55
+     */
+    @ApiOperation(value = "环保大数据", notes = "环保大数据")
+    @NoRepeatSubmit
+    @PostMapping("getEnvironmentControlData")
+    public AjaxResult getEnvironmentControlData() {
+        SysMenuEventType sysMenuEventType = new SysMenuEventType();
+        sysMenuEventType.setMenuId(EventTypeMenuConstants.ENVIRONMENT);
+        Map<String, String[]> stringMap = appAttendanceService.selectByMenuId(sysMenuEventType).getData();
+        VisuForestCloudMapVO visuForestCloudMapVO = new VisuForestCloudMapVO();
+        visuForestCloudMapVO.setEventTypeId(stringMap.get(EVENT_TYPE));
+        List<String> list = new ArrayList<>();
+        list.add(FOREST_EVENT_STATUS_2);
+        list.add(FOREST_EVENT_STATUS_5);
+        visuForestCloudMapVO.setEventStatus(list);
+        Map<String, Object> map = new HashMap<>();
+        List<Map> dataMap = (List<Map>) remoteDataBaseService.getEnvironmentControlData().getData();
+        for (Map data : dataMap) {
+            data.put(NAME_CHINESE, data.get("name").toString().split("\\(")[0] + "(" + data.get("name").toString().split("\\(")[1].split("\\)")[0] + ")");
+            data.put(NAME_ORIGINAL, data.get("name").toString().split("\\(")[0]);
+        }
+        //基础数据
+        map.put("rows", dataMap);
+        //事件
+        map.put(EVENT, remoteEventBaseService.getEventCountGroupByEventStatus(visuForestCloudMapVO).getData());
+        return AjaxResult.success(map);
+    }
+
+    /**
+     * 林业统计
+     *
+     * @return
+     * @Version 1.0
+     * @author wang_xy
+     * @since 2023/2/23 8:57
+     */
+    @ApiOperation(value = "林业统计", notes = "林业统计")
+    @NoRepeatSubmit
+    @PostMapping("getLocationData")
+    public R getLocationData(@RequestBody VisuForestResourceBO visuForestResourceBO) {
+        Map<String, Object> map = new HashMap<>();
+        map.put("up", remoteDataBaseService.getCountGroupByDept(visuForestResourceBO).getData());
+        map.put("down", remoteDataBaseService.getLocation(visuForestResourceBO).getData());
+        return R.ok(map);
+    }
+
+    /**
+     * 手机端水利首页大数据
+     *
+     * @return com.ruoyi.common.core.web.domain.AjaxResult
+     * @author pengyu
+     * @date 2023/2/22 9:55
+     */
+    @ApiOperation(value = "水利大数据", notes = "水利大数据")
+    @PostMapping("getWaterControlData")
+    public AjaxResult getWaterControlData() {
+        SysMenuEventType sysMenuEventType = new SysMenuEventType();
+        sysMenuEventType.setMenuId(EventTypeMenuConstants.WATER);
+        Map<String, String[]> stringMap = appAttendanceService.selectByMenuId(sysMenuEventType).getData();
+        VisuForestCloudMapVO visuForestCloudMapVO = new VisuForestCloudMapVO();
+        visuForestCloudMapVO.setEventTypeId(stringMap.get(EVENT_TYPE));
+        List<String> list = new ArrayList<>();
+        list.add(FOREST_EVENT_STATUS_2);
+        list.add(FOREST_EVENT_STATUS_5);
+        visuForestCloudMapVO.setEventStatus(list);
+        Map<String, Object> map = new HashMap<>();
+        //基础数据
+        VisuForestDataCenterVO visuForestDataCenterVO = new VisuForestDataCenterVO();
+        setSookaDataBase(visuForestDataCenterVO);
+        List<Map> dataMap = (List<Map>) remoteDataBaseService.getWaterResourceCount().getData();
+        for (Map data : dataMap) {
+            data.put(NAME_CHINESE, data.get("name").toString().split("\\(")[0] + "(" + data.get("name").toString().split("\\(")[1].split("\\)")[0] + ")");
+            data.put(NAME_ORIGINAL, data.get("name").toString().split("\\(")[0]);
+        }
+        map.put("rows", dataMap);
+        //事件
+        map.put(EVENT, remoteEventBaseService.getEventCountGroupByEventStatus(visuForestCloudMapVO).getData());
+        return AjaxResult.success(map);
+    }
+
+    /**
+     * 手机端资源首页大数据
+     *
+     * @return com.ruoyi.common.core.web.domain.AjaxResult
+     * @author pengyu
+     * @date 2023/2/22 9:55
+     */
+    @ApiOperation(value = "资源大数据", notes = "资源大数据")
+    @PostMapping("getResourcesControlData")
+    public AjaxResult getResourcesControlData() {
+        SysMenuEventType sysMenuEventType = new SysMenuEventType();
+        sysMenuEventType.setMenuId(EventTypeMenuConstants.RESOURCES);
+        Map<String, String[]> stringMap = appAttendanceService.selectByMenuId(sysMenuEventType).getData();
+        VisuForestCloudMapVO visuForestCloudMapVO = new VisuForestCloudMapVO();
+        visuForestCloudMapVO.setEventTypeId(stringMap.get(EVENT_TYPE));
+        List<String> list = new ArrayList<>();
+        list.add(FOREST_EVENT_STATUS_2);
+        list.add(FOREST_EVENT_STATUS_5);
+        visuForestCloudMapVO.setEventStatus(list);
+        Map<String, Object> map = new HashMap<>();
+        //基础数据
+        VisuForestDataCenterVO visuForestDataCenterVO = new VisuForestDataCenterVO();
+        setSookaDataBase(visuForestDataCenterVO);
+        List<Map<String, String>> datalist = remoteDataBaseService.getResourcesResourceCount().getData();
+        for (Map data : datalist) {
+            data.put(NAME_CHINESE, data.get("name").toString().split("\\(")[0] + "(" + data.get("name").toString().split("\\(")[1].split("\\)")[0] + ")");
+            data.put(NAME_ORIGINAL, data.get("name").toString().split("\\(")[0]);
+        }
+        map.put("rows", datalist);
+        //事件
+        map.put(EVENT, remoteEventBaseService.getEventCountGroupByEventStatus(visuForestCloudMapVO).getData());
+        return AjaxResult.success(map);
+    }
+
+    /**
+     * 手机端应急首页大数据
+     *
+     * @return com.ruoyi.common.core.web.domain.AjaxResult
+     * @author pengyu
+     * @date 2023/2/22 9:55
+     */
+    @ApiOperation(value = "应急大数据", notes = "应急大数据")
+    @PostMapping("getEmergencyControlData")
+    public AjaxResult getEmergencyControlData() {
+        SysMenuEventType sysMenuEventType = new SysMenuEventType();
+        sysMenuEventType.setMenuId(EventTypeMenuConstants.EMERGENCY);
+        Map<String, String[]> stringMap = appAttendanceService.selectByMenuId(sysMenuEventType).getData();
+        VisuForestCloudMapVO visuForestCloudMapVO = new VisuForestCloudMapVO();
+        visuForestCloudMapVO.setEventTypeId(stringMap.get(EVENT_TYPE));
+        List<String> list = new ArrayList<>();
+        list.add(FOREST_EVENT_STATUS_2);
+        list.add(FOREST_EVENT_STATUS_5);
+        visuForestCloudMapVO.setEventStatus(list);
+        Map<String, Object> map = new HashMap<>();
+        //基础数据
+        VisuForestDataCenterVO visuForestDataCenterVO = new VisuForestDataCenterVO();
+        setSookaDataBase(visuForestDataCenterVO);
+        List<Map> dataMap = remoteDataBaseService.getEmergencyResourceCount().getData();
+        for (Map<String, String> data : dataMap) {
+            data.put(NAME_CHINESE, data.get("name").toString().split("\\(")[0] + "(" + data.get("name").toString().split("\\(")[1].split("\\)")[0] + ")");
+            data.put(NAME_ORIGINAL, data.get("name").toString().split("\\(")[0]);
+        }
+        map.put("rows", dataMap);
+        //事件
+        map.put(EVENT, remoteEventBaseService.getEventCountGroupByEventStatus(visuForestCloudMapVO).getData());
+        return AjaxResult.success(map);
+    }
+
+    /**
+     * 手机端交通首页大数据
+     *
+     * @return com.ruoyi.common.core.web.domain.AjaxResult
+     * @author pengyu
+     * @date 2023/2/22 9:55
+     */
+    @ApiOperation(value = "交通大数据", notes = "交通大数据")
+    @PostMapping("getTrafficControlData")
+    public AjaxResult getTrafficControlData() {
+        SysMenuEventType sysMenuEventType = new SysMenuEventType();
+        sysMenuEventType.setMenuId(EventTypeMenuConstants.TRAFFIC);
+        Map<String, String[]> stringMap = appAttendanceService.selectByMenuId(sysMenuEventType).getData();
+        VisuForestCloudMapVO visuForestCloudMapVO = new VisuForestCloudMapVO();
+        visuForestCloudMapVO.setEventTypeId(stringMap.get(EVENT_TYPE));
+        List<String> list = new ArrayList<>();
+        list.add(FOREST_EVENT_STATUS_2);
+        list.add(FOREST_EVENT_STATUS_5);
+        visuForestCloudMapVO.setEventStatus(list);
+        Map<String, Object> map = new HashMap<>();
+        //基础数据
+        VisuForestDataCenterVO visuForestDataCenterVO = new VisuForestDataCenterVO();
+        setSookaDataBase(visuForestDataCenterVO);
+        List<Map> dataMap = remoteDataBaseService.getTrafficResourcesCount().getData();
+
+        for (Map data : dataMap) {
+            data.put(NAME_CHINESE, data.get("name").toString().split("\\(")[0] + "(" + data.get("name").toString().split("\\(")[1].split("\\)")[0] + ")");
+            data.put(NAME_ORIGINAL, data.get("name").toString().split("\\(")[0]);
+        }
+        map.put("rows", dataMap);
+        //事件
+        map.put(EVENT, remoteEventBaseService.getEventCountGroupByEventStatus(visuForestCloudMapVO).getData());
+        return AjaxResult.success(map);
+    }
+
+
+    /**************************************************市局领导页面接口——开始****************************************************/
+    /**
+     * 获取重点工程
+     * 无分页,无筛选
+     *
+     * @return
+     * @Version 1.0
+     * @author wang_xy
+     * @since 2023/4/24 15:09
+     */
+    @ApiOperation(value = "获取重点工程(无分页,无筛选)", notes = "获取重点工程(无分页,无筛选)")
+    @GetMapping("getKeyProjects")
+    public AjaxResult getKeyProjects(Long deptId, String state) {
+        AjaxResult ajaxResult = remoteDataBaseService.getKeyProjects(deptId, state);
+        if ("200".equals(ajaxResult.get("code").toString())) {
+            List<LinkedHashMap<String, Object>> list = (List<LinkedHashMap<String, Object>>) ajaxResult.get("data");
+            list.forEach(map -> {
+                if (null != map.get("cameraCode")) {
+                    map.put("cameraCode", map.get("cameraCode").toString().split(","));
+                }
+            });
+            PictureReplaceAll.replaceAllPictureUrl(list, "photoId");
+        }
+        return ajaxResult;
+    }
+
+    /**
+     * @throws
+     * @description
+     * @author LG
+     * @param[1] null
+     * @time 2023/8/16 9:33
+     * 有分页,有筛选
+     */
+    @ApiOperation(value = "获取重点工程(有分页, 有筛选)", notes = "获取重点工程(有分页, 有筛选)")
+    @PostMapping("getKeyProjectsByParams")
+    public AjaxResult getKeyProjectsByParams(@RequestBody CommandCenterBO bo) {
+        TableDataInfo keyProjectsByParams = remoteDataBaseService.getKeyProjectsByParams(bo.getPageNum(), bo.getPageSize(), bo.getDeptId(), bo.getPark(), bo.getProjectName(), bo.getTerritoriality(), bo.getNature(), bo.getState(), bo.getYear(), bo.getAdministrativeRegion());
+        if (HttpStatus.SUCCESS == keyProjectsByParams.getCode()) {
+            List<LinkedHashMap<String, Object>> list = (List<LinkedHashMap<String, Object>>) keyProjectsByParams.getRows();
+            list.forEach(map -> {
+                if (null != map.get("cameraCode")) {
+                    map.put("cameraCode", map.get("cameraCode").toString().split(","));
+                }
+            });
+            PictureReplaceAll.replaceAllPictureUrl(list, "photoId");
+            return AjaxResult.success(list);
+        } else {
+            return AjaxResult.error(keyProjectsByParams.getMsg());
+        }
+    }
+
+    /**
+     * 根据重点工程id获取进度列表
+     */
+    @ApiOperation(value = "根据重点工程id获取进度列表", notes = "根据重点工程id获取进度列表")
+    @GetMapping("/appGetScheduleByTime")
+    public AjaxResult appGetScheduleByTime(KeyProjectsScheduleBO bo) throws Exception {
+        AjaxResult ajaxResult = remoteDataBaseService.appGetScheduleByTime(bo.getKeyProjectsId(), bo.getStartTime(), bo.getEndTime());
+        if ("200".equals(ajaxResult.get("code").toString())) {
+            List<LinkedHashMap<String, Object>> list = (List<LinkedHashMap<String, Object>>) ajaxResult.get("data");
+            PictureReplaceAll.replaceAllPictureUrl(list, "schedulePictures");
+        }
+        return ajaxResult;
+    }
+
+    /**
+     * 获取重点区域
+     *
+     * @return
+     * @Version 1.0
+     * @author wang_xy
+     * @since 2023/4/24 15:09
+     */
+    @ApiOperation(value = "获取重点区域", notes = "获取重点区域")
+    @GetMapping("getImportAreaList")
+    public AjaxResult getImportAreaList(Long deptId) {
+        List<Map> ajax = (List) remoteDataBaseService.getImportAreaList(deptId).get("data");
+        for (int i = 0; i < ajax.size(); i++) {
+            Map map = ajax.get(i);
+            List<Map> areaList = (List) map.get("areaList");
+            for (int j = 0; j < areaList.size(); j++) {
+                Map area = areaList.get(j);
+                String photoId = area.containsKey(PHOTO_ID) && null != area.get(PHOTO_ID) ? area.get(PHOTO_ID).toString().replaceAll("172.18.1.32:8081", "218.27.3.115:9301") : "";
+                photoId = photoId.replaceAll("10.6.52.32:8081", "218.27.3.115:9301");
+                area.put(PHOTO_ID, photoId);
+                areaList.set(j, area);
+            }
+            ajax.set(i, map);
+        }
+        return AjaxResult.success(ajax);
+    }
+
+    /**
+     * 获取重点区域
+     * 带筛选,带分页
+     *
+     * @return
+     * @Version 1.0
+     * @author wang_xy
+     * @since 2023/4/24 15:09
+     */
+    @ApiOperation(value = "获取重点区域(分页,筛选)", notes = "获取重点区域(分页,筛选)")
+    @GetMapping("getImportAreaListByParams")
+    public AjaxResult getImportAreaListByParams(ImportBo bo) {
+        TableDataInfo importAreaListByParams = remoteDataBaseService.getImportAreaListByParams(bo.getAreaName(), bo.getProjectType(), bo.getProjectLevel(), bo.getPageNum(), bo.getPageSize());
+        if (HttpStatus.SUCCESS == importAreaListByParams.getCode()) {
+            List<HashMap<String, Object>> list = (List<HashMap<String, Object>>) importAreaListByParams.getRows();
+            Map<String, Object> areaType = DictUtils.getDictCacheToMap("area_type");
+            Map<String, Object> projectLevel = DictUtils.getDictCacheToMap("centerdata_project_level");
+            for (HashMap<String, Object> area : list) {
+                String photoId = area.containsKey(PHOTO_ID) && null != area.get(PHOTO_ID) ? area.get(PHOTO_ID).toString().replaceAll("172.18.1.32:8081", "218.27.3.115:9301") : "";
+                photoId = photoId.replaceAll("10.6.52.32:8081", "218.27.3.115:9301");
+                area.put(PHOTO_ID, photoId);
+
+                area.put("projectTypeLabel", areaType.get(area.get("projectType")));
+                area.put("projectLevelLabel", projectLevel.get(area.get("projectLevel")));
+            }
+            return AjaxResult.success(list);
+        } else {
+            return AjaxResult.error(importAreaListByParams.getCode(), importAreaListByParams.getMsg());
+        }
+    }
+
+    /**
+     * 实时关注
+     *
+     * @return
+     * @Version 1.0
+     * @author wang_xy
+     * @since 2023/4/24 15:09
+     */
+    @ApiOperation(value = "实时关注", notes = "实时关注")
+    @GetMapping("getDeptEventCount")
+    public AjaxResult getDeptEventCount(Long deptId) {
+        AjaxResult ret = remoteEventBaseService.getDeptEventCount(deptId);
+        ArrayList list = (ArrayList) ret.get("data");
+        Integer count = 0;
+        for (int i = 0; i < list.size(); i++) {
+            count += (Integer) ((LinkedHashMap) list.get(i)).get("num");
+        }
+        Map rets = new HashMap();
+        rets.put("count", count);
+        rets.put("list", list);
+        return AjaxResult.success(rets);
+    }
+
+    /**
+     * app事件统计
+     *
+     * @param deptId
+     * @return
+     */
+    @ApiOperation(value = "app事件统计", notes = "app事件统计")
+    @GetMapping("appEventStatistics")
+    public AjaxResult appEventStatistics(Long deptId) {
+        return remoteEventBaseService.appEventStatistics(deptId);
+    }
+
+    /**
+     * 四长统计
+     *
+     * @param deptId
+     * @return
+     */
+    @ApiOperation(value = "四长统计", notes = "四长统计")
+    @GetMapping("fourLengthOverview")
+    public AjaxResult fourLengthOverview(Long deptId) {
+        return remoteDataBaseService.fourLengthOverview(deptId);
+    }
+
+    /**
+     * 四长概况点击事件
+     *
+     * @param CommandCenterBO
+     * @return
+     */
+    @ApiOperation(value = "四长统计点击事件", notes = "四长统计点击事件")
+    @GetMapping("fourLengthOverviewOther")
+    public AjaxResult fourLengthOverviewOther(CommandCenterBO CommandCenterBO) {
+        Map data = (Map) remoteDataBaseService.fourLengthOverviewOther(CommandCenterBO.getDeptId()).get("data");
+        Map structure = (Map) data.get("structure");
+        Map structureNew = new HashMap();
+        structureNew.put("one", structure.get("1"));
+        structureNew.put("two", structure.get("2"));
+        structureNew.put("three", structure.get("3"));
+        structureNew.put("four", structure.get("4"));
+        data.put("structure", structureNew);
+        return AjaxResult.success(data);
+    }
+
+    /**
+     * 手机端四长接口
+     *
+     * @param CommandCenterBO
+     * @return
+     */
+    @ApiOperation(value = "手机端四长接口", notes = "手机端四长接口")
+    @GetMapping("fourLengthOver")
+    public AjaxResult fourLengthOver(CommandCenterBO CommandCenterBO) {
+
+        return AjaxResult.success(remoteDataBaseService.fourLengthOver(CommandCenterBO.getDeptId(), CommandCenterBO.getTimeTag(), CommandCenterBO.getKeyWord()).get("data"));
+    }
+
+    /**
+     * 通讯录组织机构
+     *
+     * @return
+     */
+    @ApiOperation(value = "通讯录组织机构", notes = "通讯录组织机构")
+    @GetMapping("/getDeptList")
+    public AjaxResult getDeptList() {
+        return remoteSystemBaseService.getDeptList("");
+    }
+
+    /**
+     * 根据部门id获取通讯录列表
+     *
+     * @param deptId
+     * @param pageNum
+     * @param pageSize
+     * @param selectParam
+     * @return
+     */
+    @ApiOperation(value = "根据部门id获取通讯录列表", notes = "根据部门id获取通讯录列表")
+    @GetMapping("/getCommunicationByDeptId")
+    public AjaxResult getCommunicationByDeptId(String deptId, int pageNum, int pageSize, String selectParam) {
+        return remoteDataBaseService.getCommunicationByDeptId(deptId, selectParam, pageNum, pageSize);
+    }
+
+    /**
+     * 大事迹按部门搜索
+     *
+     * @param deptId
+     * @return
+     */
+    @ApiOperation(value = "大事迹按部门搜索", notes = "大事迹按部门搜索")
+    @GetMapping("/greatdeedsApp")
+    public AjaxResult greatdeedsApp(Long deptId) {
+        AjaxResult ajaxResult = remoteDataBaseService.greatdeedsApp(deptId);
+        return ajaxResult;
+    }
+
+    /**
+     * 防火队发送短信
+     *
+     * @param visuFireSendingSMSVo
+     * @return
+     */
+    @ApiOperation(value = "防火队发送短信", notes = "防火队发送短信")
+    @PostMapping("firesendingSMSApp")
+    public AjaxResult firesendingSMSApp(@RequestBody VisuFireSendingSMSVo visuFireSendingSMSVo) {
+        AjaxResult ajaxResult = remoteEventBaseService.firesendingSMSApp(visuFireSendingSMSVo);
+        return ajaxResult;
+    }
+
+    /**
+     * 防火队列表
+     *
+     * @param dataBO
+     * @return
+     */
+    @ApiOperation(value = "防火队列表", notes = "防火队列表")
+    @PostMapping("forestViewPointApp")
+    public R forestViewPointApp(@RequestBody CenterdataTForestFireteam dataBO) {
+        R R = remoteDataBaseService.forestViewPointApp(dataBO);
+        return R;
+    }
+
+    @ApiOperation(value = "上报防火办", notes = "上报防火办")
+    @PostMapping("eventcatalogueApp")
+    public AjaxResult eventcatalogueApp(@RequestBody VisuFireSendingSMSVo visuFireSendingSMSVo) {
+        AjaxResult ajaxResult = remoteEventBaseService.eventcatalogueApp(visuFireSendingSMSVo);
+        return ajaxResult;
+    }
+
+
+    /**************************************************市局领导页面接口——结束****************************************************/
+
+}

+ 236 - 0
src/main/java/com/sooka/sponest/mobile/appbigdata/controller/AppBigDataCountController.java

@@ -0,0 +1,236 @@
+package com.sooka.sponest.mobile.appbigdata.controller;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.ruoyi.common.core.constant.EventTypeMenuConstants;
+import com.ruoyi.common.core.constant.HttpStatus;
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.system.api.domain.SysMenuEventType;
+import com.sooka.sponest.mobile.appbigdata.domain.CenterdataTEnvironmentRyList;
+import com.sooka.sponest.mobile.appbigdata.domain.ForestCloudRYList;
+import com.sooka.sponest.mobile.appbigdata.domain.bo.EnvironmentCloudRYBO;
+import com.sooka.sponest.mobile.appbigdata.domain.bo.ForestCloudRYBO;
+import com.sooka.sponest.mobile.appbigdata.domain.bo.VisualBO;
+import com.sooka.sponest.mobile.appbigdata.domain.vo.ForestCloudMapVO;
+import com.sooka.sponest.mobile.appbigdata.domain.vo.VisuForestCloudMapVO;
+import com.sooka.sponest.mobile.base.service.AppAttendanceService;
+import com.sooka.sponest.mobile.data.digitalagriculture.domain.VisuBaseService;
+import com.sooka.sponest.mobile.remoteapi.RemoteDataBaseService;
+import com.sooka.sponest.mobile.remoteapi.RemoteEventBaseService;
+import com.sooka.sponest.mobile.remoteapi.RemoteMiddlewareService;
+import com.sooka.sponest.mobile.remoteapi.domain.DataVO;
+import com.sooka.sponest.mobile.utils.PictureReplaceAll;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.*;
+
+@RestController
+@RequestMapping("/AppBigDataCountController")
+public class AppBigDataCountController extends VisuBaseService {
+
+    public static final String EVENT_TYPE = "eventType";
+    public static final String FOREST_EVENT_STATUS_2 = "forest_event_status_2";
+    public static final String FOREST_EVENT_STATUS_5 = "forest_event_status_5";
+    public static final String EVENT = "event";
+    public static final String NAME_CHINESE = "name_chinese";
+    public static final String NAME_ORIGINAL = "name_original";
+
+    @Autowired
+    private RemoteMiddlewareService middlewareService;
+    @Autowired
+    private AppAttendanceService appAttendanceService;
+    @Autowired
+    private RemoteEventBaseService remoteEventBaseService;
+    @Autowired
+    private RemoteDataBaseService dataBaseService;
+
+    /**
+     * 查询落点集合接口
+     *
+     * @param vb
+     * @return
+     */
+    @PostMapping("getResourcePoint")
+    public AjaxResult getResourcePoint(@RequestBody VisualBO vb) {
+        R<List<DataVO>> resourcePoint = middlewareService.getResourcePoint(vb);
+        if (HttpStatus.SUCCESS == resourcePoint.getCode()) {
+            return AjaxResult.success(resourcePoint.getData());
+        } else {
+            return AjaxResult.error(resourcePoint.getMsg());
+        }
+    }
+
+    /**
+     * 查询落点详情接口
+     * 未完成 --- 等待es编写接口后远程调用
+     *
+     * @return
+     */
+    @PostMapping("getResourceDetailById")
+    public AjaxResult getResourcePointById(@RequestBody VisualBO vb) {
+        R resultData = middlewareService.getResourcePointById(vb.getId(), vb.getType());
+        if (HttpStatus.SUCCESS == resultData.getCode()) {
+            Map<String, Object> data = (Map<String, Object>) resultData.getData();
+            if (data.containsKey("pictures")) {
+                List<String> pictures = (List<String>) data.get("pictures");
+                if (!pictures.isEmpty()) {
+                    List<String> strList = PictureReplaceAll.replacePicturesList(pictures);
+                    data.put("pictures", strList);
+                }
+            }
+            return AjaxResult.success(data);
+        } else {
+            return AjaxResult.error(resultData.getMsg());
+        }
+    }
+
+    /**
+     * 查询事件统计和资源统计接口
+     *
+     * @param vb
+     * @return
+     */
+    @GetMapping("getResourceList")
+    public AjaxResult getResourceList(VisualBO vb) {
+        SysMenuEventType sysMenuEventType = new SysMenuEventType();
+        switch (vb.getType()) {
+            case "linye":
+                sysMenuEventType.setMenuId(EventTypeMenuConstants.FOREST);
+                break;
+            case "nongye":
+                sysMenuEventType.setMenuId(EventTypeMenuConstants.FARMING);
+                break;
+            case "shuili":
+                sysMenuEventType.setMenuId(EventTypeMenuConstants.WATER);
+                break;
+            case "huanbao":
+                sysMenuEventType.setMenuId(EventTypeMenuConstants.ENVIRONMENT);
+                break;
+            case "yingji":
+                sysMenuEventType.setMenuId(EventTypeMenuConstants.EMERGENCY);
+                break;
+            case "jiaotong":
+                sysMenuEventType.setMenuId(EventTypeMenuConstants.TRAFFIC);
+                break;
+            case "ziyuan":
+                sysMenuEventType.setMenuId(EventTypeMenuConstants.RESOURCES);
+                break;
+            case "xiaofang":
+                sysMenuEventType.setMenuId(EventTypeMenuConstants.FIRECONTROL);
+                break;
+        }
+        VisuForestCloudMapVO eventData = getEventData(sysMenuEventType);
+        eventData.setDeptId(vb.getDeptId());
+        Map<String, Object> map = new HashMap<>();
+        map.put(EVENT, remoteEventBaseService.getEventCountGroupByEventStatus(eventData).getData());
+
+        List<Map> dataMap = (List<Map>) middlewareService.getResourceList(vb.getAssort(), vb.getName(), vb.getType(), vb.getDeptId(), vb.getLongitude(), vb.getLatitude(), vb.getRadius()).getData();
+        Iterator<Map> iterator = dataMap.iterator();
+        while (iterator.hasNext()) {
+            Map data = iterator.next();
+            if ("centerdata_t_forest_fireteam".equals(data.get("type").toString()) && !"linye".equals(vb.getType())) {
+                iterator.remove();
+            } else {
+                data.put(NAME_CHINESE, data.get("name").toString().split("\\(")[0] + "(" + data.get("name").toString().split("\\(")[1].split("\\)")[0] + ")");
+                data.put(NAME_ORIGINAL, data.get("name").toString().split("\\(")[0]);
+            }
+        }
+        map.put("rows", dataMap);
+        return AjaxResult.success(map);
+    }
+
+    public VisuForestCloudMapVO getEventData(SysMenuEventType sysMenuEventType) {
+        Map<String, String[]> stringMap = appAttendanceService.selectByMenuId(sysMenuEventType).getData();
+        VisuForestCloudMapVO visuForestCloudMapVO = new VisuForestCloudMapVO();
+        visuForestCloudMapVO.setEventTypeId(stringMap.get(EVENT_TYPE));
+        List<String> list = new ArrayList<>();
+        list.add(FOREST_EVENT_STATUS_2);
+        list.add(FOREST_EVENT_STATUS_5);
+        visuForestCloudMapVO.setEventStatus(list);
+        return visuForestCloudMapVO;
+    }
+
+    /******************************************************************************************************************************************************/
+    public JSONArray typeUnity(ArrayList<?> list) {
+        JSONArray result = new JSONArray();
+        for (Object data : list) {
+            JSONObject jsonObject = (JSONObject) JSONObject.toJSON(data);
+            if (jsonObject.containsKey("dictType")) {
+                jsonObject.put("jobValue", jsonObject.remove("dictType"));
+            }
+            result.add(jsonObject);
+        }
+        return result;
+    }
+
+    /**
+     * @throws
+     * @description
+     * @author LG
+     * @param[1] deptId
+     * @param[2] leadType
+     * @Api 河长,路长,田长,获取人员类型
+     * @time 2023/8/16 18:29
+     */
+    private ArrayList<Map<String, Object>> getRyListByJob(Long deptId, String leadType) {
+        AjaxResult waterResult = dataBaseService.getRyListToWaterConservancyViewByType(deptId, leadType);
+        LinkedHashMap<String, Object> data = (LinkedHashMap<String, Object>) waterResult.get("data");
+        return (ArrayList<Map<String, Object>>) data.get("ryList");
+    }
+
+    /**
+     * 获取航管局对应的人员类型
+     *
+     * @param dictValue 行管局类型 1:林业;2:农业;3:水利;4:环保;5:应急;6:交通;7:资源;8:消防
+     * @param deptId    部门id
+     * @param leadType  人员类型
+     * @return AjaxResult
+     */
+    @GetMapping("/getPersonTypeBySystem")
+    public AjaxResult getPersonTypeBySystem(String dictValue, Long deptId, String leadType) {
+        ForestCloudMapVO forestMapVo = new ForestCloudMapVO();
+        forestMapVo.setDeptId(deptId);
+        switch (dictValue) {
+            case "1"://林业
+                R<ForestCloudRYList> ryListToForestView = dataBaseService.getRyListToForestView(forestMapVo);
+                if (HttpStatus.SUCCESS == ryListToForestView.getCode()) {
+                    ArrayList<ForestCloudRYBO> visuForestCloudRYBO = (ArrayList<ForestCloudRYBO>) ryListToForestView.getData().getVisuForestCloudRYBO();
+                    return AjaxResult.success(typeUnity(visuForestCloudRYBO));
+                } else {
+                    return AjaxResult.error(ryListToForestView.getCode(), ryListToForestView.getMsg());
+                }
+            case "2"://农业
+                //无
+                return AjaxResult.success(new JSONArray());
+            case "3"://水利
+                return AjaxResult.success(typeUnity(getRyListByJob(deptId, leadType)));
+            case "4"://环保
+                R<CenterdataTEnvironmentRyList> ryListToEnvironmentView = dataBaseService.getRyListToEnvironmentView(forestMapVo);
+                if (HttpStatus.SUCCESS == ryListToEnvironmentView.getCode()) {
+                    ArrayList<EnvironmentCloudRYBO> userList = (ArrayList<EnvironmentCloudRYBO>) ryListToEnvironmentView.getData().getUser();
+                    return AjaxResult.success(typeUnity(userList));
+                } else {
+                    return AjaxResult.error(ryListToEnvironmentView.getCode(), ryListToEnvironmentView.getMsg());
+                }
+            case "5"://应急
+                return AjaxResult.success(new JSONArray());
+            case "6"://交通
+                return AjaxResult.success(typeUnity(getRyListByJob(deptId, leadType)));
+            case "7"://资源
+                return AjaxResult.success(typeUnity(getRyListByJob(deptId, leadType)));
+            case "8"://消防
+                R<Map<String, Object>> ryListToFireControlView = dataBaseService.getRyListToFireControlView(deptId);
+                if (HttpStatus.SUCCESS == ryListToFireControlView.getCode()) {
+                    ArrayList<Map<String, Object>> fireControlList = (ArrayList<Map<String, Object>>) ryListToFireControlView.getData().get("ryList");
+                    return AjaxResult.success(typeUnity(fireControlList));
+                } else {
+                    return AjaxResult.error(ryListToFireControlView.getCode(), ryListToFireControlView.getMsg());
+                }
+            default: {
+                return AjaxResult.error(500, "航管局类型错误");
+            }
+        }
+    }
+}

+ 15 - 0
src/main/java/com/sooka/sponest/mobile/appbigdata/domain/CenterdataTEnvironmentRyList.java

@@ -0,0 +1,15 @@
+package com.sooka.sponest.mobile.appbigdata.domain;
+
+import com.sooka.sponest.mobile.appbigdata.domain.bo.EnvironmentCloudRYBO;
+import com.sooka.sponest.mobile.appbigdata.domain.bo.EnvironmentCloudRyZxUerIdBO;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class CenterdataTEnvironmentRyList {
+
+    private List<EnvironmentCloudRyZxUerIdBO> userIdList;
+
+    private List<EnvironmentCloudRYBO> user;
+}

+ 33 - 0
src/main/java/com/sooka/sponest/mobile/appbigdata/domain/ForestCloudRYList.java

@@ -0,0 +1,33 @@
+package com.sooka.sponest.mobile.appbigdata.domain;
+
+
+import com.sooka.sponest.mobile.appbigdata.domain.bo.ForestCloudRYBO;
+import com.sooka.sponest.mobile.appbigdata.domain.bo.ForestCloudRyZxUerIdBO;
+
+import java.util.List;
+
+/**
+ * @author zhaozhan
+ * @date 2023/6/27
+ */
+public class ForestCloudRYList {
+    private List<ForestCloudRYBO> visuForestCloudRYBO;
+
+    private List<ForestCloudRyZxUerIdBO> userList;
+
+    public List<ForestCloudRYBO> getVisuForestCloudRYBO() {
+        return visuForestCloudRYBO;
+    }
+
+    public void setVisuForestCloudRYBO(List<ForestCloudRYBO> visuForestCloudRYBO) {
+        this.visuForestCloudRYBO = visuForestCloudRYBO;
+    }
+
+    public List<ForestCloudRyZxUerIdBO> getUserList() {
+        return userList;
+    }
+
+    public void setUserList(List<ForestCloudRyZxUerIdBO> userList) {
+        this.userList = userList;
+    }
+}

+ 16 - 0
src/main/java/com/sooka/sponest/mobile/appbigdata/domain/bo/EnvironmentCloudRYBO.java

@@ -0,0 +1,16 @@
+package com.sooka.sponest.mobile.appbigdata.domain.bo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+@Getter
+@Setter
+public class EnvironmentCloudRYBO {
+
+    //职位
+    private String job;
+    private String jobValue;
+    private String jobType;
+    private String number;
+
+}

+ 20 - 0
src/main/java/com/sooka/sponest/mobile/appbigdata/domain/bo/EnvironmentCloudRyZxUerIdBO.java

@@ -0,0 +1,20 @@
+package com.sooka.sponest.mobile.appbigdata.domain.bo;
+
+import com.sooka.sponest.data.api.base.BaseBusinessEntity;
+import lombok.Getter;
+import lombok.Setter;
+
+@Getter
+@Setter
+public class EnvironmentCloudRyZxUerIdBO extends BaseBusinessEntity {
+
+
+
+  /* 在线人员 uerid*/
+    private String userId;
+
+
+
+
+
+}

+ 16 - 0
src/main/java/com/sooka/sponest/mobile/appbigdata/domain/bo/ForestCloudRYBO.java

@@ -0,0 +1,16 @@
+package com.sooka.sponest.mobile.appbigdata.domain.bo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+@Getter
+@Setter
+public class ForestCloudRYBO {
+
+    //职位
+    private String job;
+    private String jobValue;
+    private String jobType;
+    private String number;
+
+}

+ 20 - 0
src/main/java/com/sooka/sponest/mobile/appbigdata/domain/bo/ForestCloudRyZxUerIdBO.java

@@ -0,0 +1,20 @@
+package com.sooka.sponest.mobile.appbigdata.domain.bo;
+
+import com.sooka.sponest.data.api.base.BaseBusinessEntity;
+import lombok.Getter;
+import lombok.Setter;
+
+@Getter
+@Setter
+public class ForestCloudRyZxUerIdBO extends BaseBusinessEntity {
+
+
+
+  /* 在线人员 uerid*/
+    private String userId;
+
+
+
+
+
+}

+ 17 - 0
src/main/java/com/sooka/sponest/mobile/appbigdata/domain/bo/ImportBo.java

@@ -0,0 +1,17 @@
+package com.sooka.sponest.mobile.appbigdata.domain.bo;
+
+import lombok.Data;
+
+/**
+ * @Author LG
+ * @Date 2023/9/7 - 11:22
+ */
+@Data
+public class ImportBo {
+    private Long deptId;
+    private String areaName;
+    private String projectType;
+    private String projectLevel;
+    private Integer pageNum;
+    private Integer pageSize;
+}

+ 70 - 0
src/main/java/com/sooka/sponest/mobile/appbigdata/domain/bo/KeyProjectsScheduleBO.java

@@ -0,0 +1,70 @@
+package com.sooka.sponest.mobile.appbigdata.domain.bo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.common.datascope.base.domain.BaseBusinessEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.apache.ibatis.type.Alias;
+
+import java.util.Date;
+
+@Data
+@Alias("ProjectsSchedule")
+@ApiModel(description = "重点工程进度管理对象")
+public class KeyProjectsScheduleBO extends BaseBusinessEntity {
+
+    /**
+     * 进度ID
+     */
+    @ApiModelProperty(value = "主键id")
+    private String scheduleId;
+
+    /**
+     * 重点工程ID
+     */
+    @ApiModelProperty(value = "重点工程主键Id",required = true)
+    private String keyProjectsId;
+
+    /**
+     * 进度图片
+     */
+    @ApiModelProperty(value = "图片路径",required = true)
+    private String schedulePictures;
+
+    /**
+     * 所属部门id
+     */
+    @ApiModelProperty(value = "上传人所属部门id")
+    private Long deptId;
+
+    /**
+     * 所属部门名称
+     */
+    @ApiModelProperty(value = "上传人所属部门名称")
+    private String deptName;
+
+    /**
+     * 数据时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date scheduleTime;
+
+    /**
+     * 数据备注
+     */
+    private String scheduleRemark;
+
+
+    /**
+     * 查询开始时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private String startTime;
+
+    /**
+     * 查询结束时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private String endTime;
+}

+ 24 - 0
src/main/java/com/sooka/sponest/mobile/appbigdata/domain/bo/VisuForestResourceBO.java

@@ -0,0 +1,24 @@
+package com.sooka.sponest.mobile.appbigdata.domain.bo;
+
+import com.ruoyi.common.datascope.base.domain.BaseBusinessEntity;
+import lombok.Data;
+
+/**
+ * 应急预案对象 centerdata_t_reserve
+ *
+ * @author ruoyi
+ * @date 2022-05-04
+ */
+@Data
+public class VisuForestResourceBO extends BaseBusinessEntity {
+
+    private String longitude;
+
+    private String latitude;
+
+    private String type;
+
+    private String radius;
+
+    private String tbName;
+}

+ 18 - 0
src/main/java/com/sooka/sponest/mobile/appbigdata/domain/bo/VisualBO.java

@@ -0,0 +1,18 @@
+package com.sooka.sponest.mobile.appbigdata.domain.bo;
+
+import com.sooka.sponest.mobile.appbigdata.domain.vo.BaseESBO;
+import lombok.Data;
+
+@Data
+public class VisualBO extends BaseESBO {
+
+    private String assort = "view";// 请求来源标识 view: 可视化;app: 手机端;leader: 领导页面
+
+    private String name;
+
+    private String type;// 行管局标识或表名
+
+    private Long deptId;
+
+    private String id;
+}

+ 34 - 0
src/main/java/com/sooka/sponest/mobile/appbigdata/domain/vo/BaseESBO.java

@@ -0,0 +1,34 @@
+package com.sooka.sponest.mobile.appbigdata.domain.vo;
+
+import lombok.Data;
+import org.elasticsearch.search.sort.SortOrder;
+
+/**
+ * @Auther: lyq
+ * @Date: 2023/7/25
+ * @Description: com.sooka.sponest.middleware.base.bo
+ * @version: 1.0
+ */
+@Data
+public class BaseESBO {
+
+    private String[] indexNames;
+
+    private String[] includeFields = {};
+
+    private String[] excludeFields = {};
+
+    private Integer pageNum;
+
+    private Integer pageSize;
+
+    private String sortFiled;
+
+    private SortOrder sortOrder;
+
+    private String latitude;
+
+    private String longitude;
+
+    private Long radius = 999999999L * 1000;// 距离,单位:米
+}

+ 15 - 0
src/main/java/com/sooka/sponest/mobile/appbigdata/domain/vo/CameraVO.java

@@ -0,0 +1,15 @@
+package com.sooka.sponest.mobile.appbigdata.domain.vo;
+
+import lombok.Data;
+
+@Data
+public class CameraVO {
+    private String cameraId;
+    private String cameraCode;
+    private String cameraName;
+    private String cameraFactory;
+    private String longitude;
+    private String latitude;
+    private String cameraRadius;
+    private String cameraType;
+}

+ 43 - 0
src/main/java/com/sooka/sponest/mobile/appbigdata/domain/vo/ForestCloudMapVO.java

@@ -0,0 +1,43 @@
+package com.sooka.sponest.mobile.appbigdata.domain.vo;
+
+import com.sooka.sponest.data.api.base.BaseBusinessEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+@ApiModel(value = "数据中心大数据查询实体类对象",description = "数据中心大数据查询实体类对象")
+public class ForestCloudMapVO extends BaseBusinessEntity {
+
+    //部门ID
+    @ApiModelProperty(value = "部门ID", required = false)
+    private Long deptId;
+
+    //查询日期 yyyy-mm-dd
+    @ApiModelProperty(value = "查询日期 yyyy-mm-dd", required = false)
+    private String day;
+
+    //事件编码
+    @ApiModelProperty(value = "事件编码", required = false)
+    private String eventCode;
+
+    @ApiModelProperty(value = "年月", required = false)
+    private List yearMonth;
+
+    @ApiModelProperty(value = "事件状态值", required = false)
+    private String eventStatusValue;
+
+    @ApiModelProperty(value = "事件类型大类", required = false)
+    private String[] eventTypeIdDl;
+
+    @ApiModelProperty(value = "事件类型小类", required = false)
+    private String[] eventTypeId;
+
+    @ApiModelProperty(value = "部门ids", required = false)
+    private Long[] deptIds;
+
+    @ApiModelProperty(value = "所属系统", required = false)
+    private String availableSystem;
+}

+ 22 - 0
src/main/java/com/sooka/sponest/mobile/appbigdata/domain/vo/VisuFireSendingSMSVo.java

@@ -0,0 +1,22 @@
+package com.sooka.sponest.mobile.appbigdata.domain.vo;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @Auther: mjq
+ * @Date: 2023/5/23 - 05 - 23 - 15:39
+ * @Description: com.sooka.sponest.mobile.appbigdata.domain
+ * @version: 1.0
+ */
+@Data
+public class VisuFireSendingSMSVo {
+    private String message;
+    private List<String> phones;
+    private String  id;
+    private String deptId;
+    private String eventCode;
+    private String address;
+
+}

+ 31 - 0
src/main/java/com/sooka/sponest/mobile/appbigdata/domain/vo/VisuForestCloudMapVO.java

@@ -0,0 +1,31 @@
+package com.sooka.sponest.mobile.appbigdata.domain.vo;
+
+import com.ruoyi.common.datascope.base.domain.BaseBusinessEntity;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class VisuForestCloudMapVO extends BaseBusinessEntity {
+
+    //部门ID
+    private Long deptId;
+
+    //查询日期 yyyy-mm-dd
+    private String day;
+
+    //事件编码
+    private String eventCode;
+
+    private List yearMonth;
+
+    private String eventStatusValue;
+
+    private String[] eventTypeIdDl;
+
+    private String[] eventTypeId;
+
+    private List<String> eventStatus;
+
+
+}

+ 18 - 0
src/main/java/com/sooka/sponest/mobile/appbigdata/domain/vo/VisuForestDataCenterVO.java

@@ -0,0 +1,18 @@
+package com.sooka.sponest.mobile.appbigdata.domain.vo;
+
+import com.ruoyi.common.datascope.base.domain.BaseBusinessEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+@Getter
+@Setter
+@ApiModel(description = "可视化数据中心相关入参实体类对象")
+public class VisuForestDataCenterVO extends BaseBusinessEntity {
+    @ApiModelProperty(value = "部门id", required = false)
+    private Long deptId;
+    @ApiModelProperty(value = "返回资源数据库表", required = false)
+    private String resourceTable;
+
+}

+ 97 - 0
src/main/java/com/sooka/sponest/mobile/base/controller/AppAttendanceController.java

@@ -0,0 +1,97 @@
+package com.sooka.sponest.mobile.base.controller;
+
+import com.alibaba.fastjson.JSONArray;
+import com.ruoyi.common.core.constant.HttpStatus;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.web.page.TableDataInfo;
+import com.sooka.sponest.mobile.base.domain.AppUserLocusVO;
+import com.sooka.sponest.mobile.base.domain.CenterdataTHydraulicPatrolTask;
+import com.sooka.sponest.mobile.base.domain.SysAttendance;
+import com.sooka.sponest.mobile.base.service.AppAttendanceService;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.HashMap;
+
+@RestController
+@RequestMapping("AppAttendanceController")
+public class AppAttendanceController {
+
+    @Resource
+    AppAttendanceService appAttendanceService;
+
+
+    /**
+     * 手机端新增考勤打卡
+     *
+     * @param vo
+     * @return com.ruoyi.common.core.web.domain.AjaxResult
+     * @author pengyu
+     * @date 2023/2/21 15:52
+     */
+    @PutMapping("addAttendance")
+    public AjaxResult addAttendance(@RequestBody SysAttendance vo) {
+        return appAttendanceService.addAttendance(vo);
+    }
+
+
+    /**
+     * 手机端查询考勤打卡
+     *
+     * @param userId
+     * @return com.ruoyi.common.core.web.domain.AjaxResult
+     * @author pengyu
+     * @date 2023/2/21 15:53
+     */
+    @GetMapping("getAttendance")
+    public AjaxResult getAttendance(Long userId) {
+        return appAttendanceService.getAttendance(userId);
+    }
+
+    /**
+     * 查询任务列表
+     * @Version 1.0
+     * @return
+     * @author wang_xy
+     * @since 2023/3/30 14:21
+     */
+    @GetMapping("/taskList")
+    public AjaxResult taskList(CenterdataTHydraulicPatrolTask centerdataTHydraulicPatrolTask){
+        TableDataInfo tableDataInfo = appAttendanceService.taskList(centerdataTHydraulicPatrolTask);
+        if(HttpStatus.SUCCESS == tableDataInfo.getCode()){
+            ArrayList<HashMap<String, Object>> rows = (ArrayList<HashMap<String, Object>>) tableDataInfo.getRows();
+            for (HashMap<String, Object> row : rows) {
+                String patrolTrajectory = String.valueOf(row.get("patrolTrajectory"));
+                row.put("patrolTrajectory", "".equals(patrolTrajectory) ? new ArrayList<>() : JSONArray.parseArray(patrolTrajectory));
+            }
+            return AjaxResult.success(rows);
+        }else{
+            return AjaxResult.error(tableDataInfo.getCode(),tableDataInfo.getMsg());
+        }
+    }
+    /**
+     * 手机端新增各个可视化人员轨迹接口
+     * @Version 1.0
+     * @return com.ruoyi.common.core.web.domain.AjaxResult
+     * @author wang_xy
+     * @since 2023/3/30 9:59
+     */
+    @PostMapping("addAppUserLocus")
+    public AjaxResult addAppUserLocus(@RequestBody AppUserLocusVO appUserLocusVO) {
+        return appAttendanceService.addAppUserLocus(appUserLocusVO);
+    }
+
+    /**
+     * 获取所有部门列表
+     * @Version 1.0
+     * @return com.ruoyi.common.core.web.domain.AjaxResult
+     * @author wang_xy
+     * @since 2023/4/24 9:59
+     */
+    @GetMapping("getDeptList")
+    public AjaxResult getDeptList(String deptName) {
+        return appAttendanceService.getDeptList(deptName);
+    }
+
+}

+ 108 - 0
src/main/java/com/sooka/sponest/mobile/base/controller/AppBaseController.java

@@ -0,0 +1,108 @@
+package com.sooka.sponest.mobile.base.controller;
+
+import com.github.pagehelper.PageInfo;
+import com.ruoyi.common.core.constant.HttpStatus;
+import com.ruoyi.common.core.utils.DateUtils;
+import com.ruoyi.common.core.utils.PageUtils;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.web.page.TableDataInfo;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.web.bind.WebDataBinder;
+import org.springframework.web.bind.annotation.InitBinder;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.beans.PropertyEditorSupport;
+import java.util.Date;
+import java.util.List;
+
+@RestController
+@RequestMapping("/BaseController")
+public class AppBaseController {
+
+    protected final Logger logger = LoggerFactory.getLogger(this.getClass());
+
+    /**
+     * 将前台传递过来的日期格式的字符串,自动转化为Date类型
+     */
+    @InitBinder
+    public void initBinder(WebDataBinder binder) {
+        // Date 类型转换
+        binder.registerCustomEditor(Date.class, new PropertyEditorSupport() {
+            @Override
+            public void setAsText(String text) {
+                setValue(DateUtils.parseDate(text));
+            }
+        });
+    }
+
+    /**
+     * 设置请求分页数据
+     */
+    protected void startPage() {
+        PageUtils.startPage();
+    }
+
+    /**
+     * 响应请求分页数据
+     */
+    @SuppressWarnings({"rawtypes", "unchecked"})
+    protected TableDataInfo getDataTable(List<?> list) {
+        TableDataInfo rspData = new TableDataInfo();
+        rspData.setCode(HttpStatus.SUCCESS);
+        rspData.setRows(list);
+        rspData.setMsg("查询成功");
+        rspData.setTotal(new PageInfo(list).getTotal());
+        return rspData;
+    }
+
+    /**
+     * 响应返回结果
+     *
+     * @param rows 影响行数
+     * @return 操作结果
+     */
+    protected AjaxResult toAjax(int rows) {
+        return rows > 0 ? AjaxResult.success() : AjaxResult.error();
+    }
+
+    /**
+     * 响应返回结果
+     *
+     * @param result 结果
+     * @return 操作结果
+     */
+    protected AjaxResult toAjax(boolean result) {
+        return result ? success() : error();
+    }
+
+    /**
+     * 返回成功
+     */
+    public AjaxResult success() {
+        return AjaxResult.success();
+    }
+
+    /**
+     * 返回失败消息
+     */
+    public AjaxResult error() {
+        return AjaxResult.error();
+    }
+
+    /**
+     * 返回成功消息
+     */
+    public AjaxResult success(String message) {
+        return AjaxResult.success(message);
+    }
+
+    /**
+     * 返回失败消息
+     */
+    public AjaxResult error(String message) {
+        return AjaxResult.error(message);
+    }
+
+}

+ 11 - 0
src/main/java/com/sooka/sponest/mobile/base/domain/AppBaseBO.java

@@ -0,0 +1,11 @@
+package com.sooka.sponest.mobile.base.domain;
+
+import com.sooka.sponest.data.api.base.BaseBusinessEntity;
+import lombok.Getter;
+import lombok.Setter;
+
+@Getter
+@Setter
+public class AppBaseBO extends BaseBusinessEntity {
+
+}

+ 10 - 0
src/main/java/com/sooka/sponest/mobile/base/domain/AppBaseVO.java

@@ -0,0 +1,10 @@
+package com.sooka.sponest.mobile.base.domain;
+
+import com.sooka.sponest.data.api.base.BaseBusinessEntity;
+import lombok.Getter;
+import lombok.Setter;
+
+@Getter
+@Setter
+public class AppBaseVO extends BaseBusinessEntity {
+}

+ 34 - 0
src/main/java/com/sooka/sponest/mobile/base/domain/AppUserLocusVO.java

@@ -0,0 +1,34 @@
+package com.sooka.sponest.mobile.base.domain;
+
+import lombok.Data;
+
+/**
+ * @author wang_xy
+ * @params ${PARAM}
+ * @return ${RETURN}
+ * @since 2023/3/30 9:58
+ */
+@Data
+public class AppUserLocusVO {
+
+    private String forestryId;//林业关联任务id
+    private String waterId;//水利关联任务id
+    private String resourcesId;//资源关联任务id
+    private String environmentId;//环保关联任务id
+    private String fireControlId;//消防关联任务id
+    private String trafficId;//交通关联任务id
+
+    private String forestryRecoedId;//林业关联轨迹id
+    private String waterRecoedId;//水利关联轨迹id
+    private String resourcesRecoedId;//资源关联轨迹id
+    private String environmentRecoedId;//环保关联轨迹id
+    private String fireControlRecoedId;//消防关联轨迹id
+    private String trafficRecoedId;//交通关联轨迹id
+
+    private String userId;//人员id
+
+    private String longitude;//经度
+    private String latitude;//纬度
+
+    private String dateFlag;//开始巡查结束巡查标识类型    开始巡查start  结束巡查end  中间的不用串
+}

+ 52 - 0
src/main/java/com/sooka/sponest/mobile/base/domain/CenterdataTHydraulicPatrolPlanRecord.java

@@ -0,0 +1,52 @@
+package com.sooka.sponest.mobile.base.domain;
+
+import com.ruoyi.common.core.annotation.Excel;
+import com.ruoyi.common.core.web.domain.BaseEntity;
+import lombok.Data;
+
+/**
+ * 水利巡查记录对象 centerdata_t_hydraulic_patrol_plan_record
+ *
+ * @author ruoyi
+ * @date 2023-03-02
+ */
+@Data
+public class CenterdataTHydraulicPatrolPlanRecord extends BaseEntity {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    private String id;
+
+    /**
+     * 开始时间
+     */
+    @Excel(name = "开始时间")
+    private String beginTime;
+
+    /**
+     * 结束时间
+     */
+    @Excel(name = "结束时间")
+    private String endTime;
+
+    /**
+     * 巡查人员
+     */
+    private String userId;
+
+    /**
+     * 状态
+     */
+    private String status;
+
+
+    /**
+     * 任务ID
+     */
+    private String taskId;
+
+    private String type;
+
+}

+ 81 - 0
src/main/java/com/sooka/sponest/mobile/base/domain/CenterdataTHydraulicPatrolTask.java

@@ -0,0 +1,81 @@
+package com.sooka.sponest.mobile.base.domain;
+
+import com.ruoyi.common.core.annotation.Excel;
+import com.ruoyi.common.core.web.domain.BaseEntity;
+import lombok.Data;
+
+/**
+ * 水利巡查任务对象 centerdata_t_hydraulic_patrol_task
+ *
+ * @author ruoyi
+ * @date 2023-03-02
+ */
+@Data
+public class CenterdataTHydraulicPatrolTask extends BaseEntity {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    private String id;
+
+    /**
+     * 计划名称
+     */
+    @Excel(name = "任务名称")
+    private String taskName;
+
+    /**
+     * 所属计划
+     */
+    private String planId;
+
+    /**
+     * 计划名称
+     */
+    @Excel(name = "计划名称")
+    private String planName;
+
+    /**
+     * 任务状态
+     */
+    private String status;
+
+    /**
+     * 部门id
+     */
+    private Long deptId;
+
+    /**
+     * 部门名称
+     */
+    @Excel(name = "部门名称")
+    private String deptName;
+
+    /**
+     * 创建人名称
+     */
+    @Excel(name = "创建人名称")
+    private String createName;
+
+    /**
+     * 更新人名称
+     */
+    @Excel(name = "更新人名称")
+    private String updateName;
+
+    /**
+     * 数据状态
+     */
+    private String dataStatus;
+
+    private String userId;
+
+    private String type;
+
+
+    private Integer pageNum;
+    private Integer pageSize;
+
+
+}

+ 39 - 0
src/main/java/com/sooka/sponest/mobile/base/domain/CenterdataTHydraulicTrack.java

@@ -0,0 +1,39 @@
+package com.sooka.sponest.mobile.base.domain;
+
+import com.ruoyi.common.core.annotation.Excel;
+import com.ruoyi.common.core.web.domain.BaseEntity;
+import lombok.Data;
+
+/**
+ * 轨迹对象 centerdata_t_hydraulic_track
+ *
+ * @author ruoyi
+ * @date 2023-02-28
+ */
+@Data
+public class CenterdataTHydraulicTrack extends BaseEntity {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    private String id;
+
+    /**
+     * 经度
+     */
+    @Excel(name = "经度")
+    private String longitude;
+
+    /**
+     * 纬度
+     */
+    @Excel(name = "纬度")
+    private String latitude;
+
+    /**
+     * 巡查记录ID
+     */
+    private String recordId;
+
+}

+ 96 - 0
src/main/java/com/sooka/sponest/mobile/base/domain/ModulesServiceNameContants.java

@@ -0,0 +1,96 @@
+package com.sooka.sponest.mobile.base.domain;
+
+import com.ruoyi.common.core.constant.ServiceNameConstants;
+
+public class ModulesServiceNameContants extends ServiceNameConstants {
+
+ /**
+  * 认证服务的serviceid
+  */
+
+    //综合治理中心
+   public static final String CENTER_COMPREHENSIVE = "sooka-sponest-center-comprehensive";
+
+   //数据中心
+   public static final String CENTER_DATA = "sooka-sponest-center-data";
+    //数据中心IP+端口
+    public static final String CENTER_DATA_URL = "http://10.7.99.10:10002";
+    //数据中心IP+端口
+    public static final String CENTER_DATA_URL_1 = "http://10.7.99.11:10002";
+
+   //测评中心
+   public static final String CENTER_EVALUATION = "sooka-sponest-center-evaluation";
+
+    //事件中心
+    public static final String CENTER_EVENT = "sooka-sponest-center-event";
+    //事件中心IP+端口
+    public static final String CENTER_EVENT_URL = "http://10.7.99.11:10003";
+    //事件中心IP+端口
+    public static final String CENTER_EVENT_URL_1 = "http://10.7.99.10:10003";
+
+    //森林防火中心
+    public static final String CENTER_FIRE = "sooka-sponest-center-fire";
+
+    //监控中心
+    public static final String CENTER_MONITOR = "sooka-sponest-center-monitor";
+    //监控中心IP+端口
+    public static final String CENTER_MONITOR_URL = "http://10.7.99.11:10004";
+    //监控中心IP+端口
+    public static final String CENTER_MONITOR_URL_1 = "http://10.7.99.10:10004";
+
+    //一体化平台
+    public static final String CENTER_ONEST = "sooka-sponest-center-onest";
+
+    //病虫灾害中心
+    public static final String CENTER_PESTS = "sooka-sponest-center-pests";
+
+    //秸秆禁烧中心
+    public static final String CENTER_STRAW = "sooka-sponest-center-straw";
+
+    //认证中心
+    public static final String CENTER_AUTH = "sooka-sponest-auth";
+    //认证中心IP+端口
+    public static final String CENTER_AUTH_URL = "http://10.7.99.10:3200";
+    //认证中心IP+端口
+    public static final String CENTER_AUTH_URL_1 = "http://10.7.99.11:3200";
+
+    //任务中心
+    public static final String CENTER_TASK = "sooka-sponest-center-task";
+    //任务中心IP+端口
+    public static final String CENTER_TASK_URL = "http://10.7.99.10:10005";
+    //任务中心IP+端口
+    public static final String CENTER_TASK_URL_1 = "http://10.7.99.11:10005";
+
+    //运管中心
+    public static final String CENTER_TRANMANAGER = "sooka-sponest-system";
+    //运管中心IP+端口
+    public static final String CENTER_TRANMANAGER_URL = "http://10.7.99.10:3201";
+    //运管中心IP+端口
+    public static final String CENTER_TRANMANAGER_URL_1 = "http://10.7.99.11:3201";
+
+    //消息中心
+    public static final String CENTER_MESSAGE = "sooka-sponest-center-message";
+    //消息中心IP+端口
+    public static final String CENTER_MESSAGE_URL = "http://10.7.99.10:10012";
+    //消息中心IP+端口
+    public static final String CENTER_MESSAGE_URL_1 = "http://10.7.99.11:10012";
+
+    //农业中心
+    public static final String CENTER_AGRICULTURE = "sooka-sponest-center-agriculture";
+    //农业中心IP+端口
+    public static final String CENTER_AGRICULTURE_URL = "http://10.7.99.10:10018";
+    //农业中心IP+端口
+    public static final String CENTER_AGRICULTURE_URL_1 = "http://10.7.99.11:10018";
+
+
+    //手机端文件服务中心
+    public static final String CENTER_FILE = "sooka-sponest-file";
+    //手机端文件服务中心IP+端口
+    public static final String CENTER_FILE_URL = "http://10.7.99.10:9300";
+    //手机端文件服务中心IP+端口
+    public static final String CENTER_FILE_URL_1 = "http://10.7.99.11:9300";
+
+    //中间件服务中心
+    public static final String SOOKA_MIDDLEWARE = "sooka-sponest-middleware";
+
+}

+ 52 - 0
src/main/java/com/sooka/sponest/mobile/base/domain/SysAttendance.java

@@ -0,0 +1,52 @@
+package com.sooka.sponest.mobile.base.domain;
+
+import com.ruoyi.common.core.annotation.Excel;
+import com.ruoyi.common.core.web.domain.BaseEntity;
+import lombok.Getter;
+import lombok.Setter;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+/**
+ * 考勤打卡对象 sys_attendance
+ *
+ * @author ruoyi
+ * @date 2022-08-01
+ */
+@Getter
+@Setter
+public class SysAttendance extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 主键ID */
+    private String id;
+
+    /** 经度 */
+    @Excel(name = "经度")
+    private String longitude;
+
+    /** 纬度 */
+    @Excel(name = "纬度")
+    private String latitude;
+
+    /** 用户Id */
+    @Excel(name = "用户Id")
+    private Long userId;
+
+    /** 用户名称 */
+    @Excel(name = "用户名称")
+    private String userName;
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("id", getId())
+            .append("longitude", getLongitude())
+                .append("createTime", getCreateTime())
+            .append("latitude", getLatitude())
+            .append("userId", getUserId())
+            .append("userName", getUserName())
+            .toString();
+    }
+}

+ 58 - 0
src/main/java/com/sooka/sponest/mobile/base/service/AppAttendanceService.java

@@ -0,0 +1,58 @@
+package com.sooka.sponest.mobile.base.service;
+
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.web.page.TableDataInfo;
+import com.ruoyi.system.api.domain.SysMenuEventType;
+import com.sooka.sponest.mobile.base.domain.AppUserLocusVO;
+import com.sooka.sponest.mobile.base.domain.CenterdataTHydraulicPatrolTask;
+import com.sooka.sponest.mobile.base.domain.SysAttendance;
+
+import java.util.Map;
+
+public interface AppAttendanceService {
+
+    /**
+     * 手机端新增考勤打卡
+     *
+     * @param vo
+     * @return com.ruoyi.common.core.web.domain.AjaxResult
+     * @author pengyu
+     * @date 2023/2/21 16:23
+     */
+    AjaxResult addAttendance(SysAttendance vo);
+
+    /**
+     * 手机端查询考勤打卡
+     *
+     * @param userId
+     * @return com.ruoyi.common.core.web.domain.AjaxResult
+     * @author pengyu
+     * @date 2023/2/21 16:23
+     */
+    AjaxResult getAttendance(Long userId);
+
+    TableDataInfo taskList(CenterdataTHydraulicPatrolTask centerdataTHydraulicPatrolTask);
+
+    /**
+     * 手机端新增各个可视化人员轨迹接口
+     * @Version 1.0
+     * @return com.ruoyi.common.core.web.domain.AjaxResult
+     * @author wang_xy
+     * @since 2023/3/30 9:59
+     */
+    AjaxResult addAppUserLocus(AppUserLocusVO appUserLocusVO);
+
+    /**
+     * 获取所有部门列表
+     * @Version 1.0
+     * @return com.ruoyi.common.core.web.domain.AjaxResult
+     * @author wang_xy
+     * @since 2023/4/24 9:59
+     */
+    AjaxResult getDeptList(String deptName);
+
+    R<Map<String,String[]>> selectByMenuId(SysMenuEventType sysMenuEventType);
+
+
+}

+ 201 - 0
src/main/java/com/sooka/sponest/mobile/base/service/impl/AppAttendanceServiceImpl.java

@@ -0,0 +1,201 @@
+package com.sooka.sponest.mobile.base.service.impl;
+
+import com.alibaba.fastjson.JSONObject;
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.utils.DateUtils;
+import com.ruoyi.common.core.utils.StringUtils;
+import com.ruoyi.common.core.utils.uuid.IdUtils;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.web.page.TableDataInfo;
+import com.ruoyi.system.api.domain.SysMenuEventType;
+import com.sooka.sponest.mobile.base.domain.*;
+import com.sooka.sponest.mobile.base.service.AppAttendanceService;
+import com.sooka.sponest.mobile.remoteapi.RemoteDataBaseService;
+import com.sooka.sponest.mobile.remoteapi.RemoteSystemBaseService;
+import org.springframework.stereotype.Service;
+import org.springframework.util.ObjectUtils;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+@Service
+public class AppAttendanceServiceImpl implements AppAttendanceService {
+
+    @Resource
+    RemoteSystemBaseService remoteSystemBaseService;
+
+    @Resource
+    RemoteDataBaseService remoteDataBaseService;
+
+    /**
+     * 手机端新增考勤打卡
+     *
+     * @param sys
+     * @return com.ruoyi.common.core.web.domain.AjaxResult
+     * @author pengyu
+     * @date 2023/2/21 16:23
+     */
+    @Override
+    public AjaxResult addAttendance(SysAttendance sys) {
+        sys.setId(IdUtils.simpleUUID());
+        sys.setCreateTime(DateUtils.getNowDate());
+        return remoteSystemBaseService.addAttendance(sys);
+    }
+
+    /**
+     * 手机端查询考勤打卡
+     *
+     * @param userId
+     * @return com.ruoyi.common.core.web.domain.AjaxResult
+     * @author pengyu
+     * @date 2023/2/21 16:23
+     */
+    @Override
+    public AjaxResult getAttendance(Long userId) {
+        return remoteSystemBaseService.getAttendance(userId);
+    }
+
+    @Override
+    public TableDataInfo taskList(CenterdataTHydraulicPatrolTask centerdataTHydraulicPatrolTask) {
+        return remoteDataBaseService.taskList(centerdataTHydraulicPatrolTask.getPageNum(),centerdataTHydraulicPatrolTask.getPageSize(),centerdataTHydraulicPatrolTask);
+    }
+
+    @Override
+    public AjaxResult addAppUserLocus(AppUserLocusVO appUserLocusVO) {
+        if(StringUtils.isNotEmpty(appUserLocusVO.getDateFlag())){//不为空证明巡查开始或结束
+            if("start".equals(appUserLocusVO.getDateFlag())){//start开始巡查
+                JSONObject retJson = new JSONObject();
+                CenterdataTHydraulicPatrolPlanRecord c = new CenterdataTHydraulicPatrolPlanRecord();
+                c.setUserId(appUserLocusVO.getUserId());
+                if(StringUtils.isNotEmpty(appUserLocusVO.getForestryId())){//林业关联id
+                    c.setTaskId(appUserLocusVO.getForestryId());
+                    c.setType("1");
+                    String recoedId = remoteDataBaseService.startRecoed(c).get("msg").toString();
+                    retJson.put("forestryRecoedId",recoedId);
+                }
+                if(StringUtils.isNotEmpty(appUserLocusVO.getWaterId())){//水利关联id
+                    c.setTaskId(appUserLocusVO.getWaterId());
+                    c.setType("2");
+                    String recoedId = remoteDataBaseService.startRecoed(c).get("msg").toString();
+                    retJson.put("waterRecoedId",recoedId);
+                }
+                if(StringUtils.isNotEmpty(appUserLocusVO.getResourcesId())){//资源关联id
+                    c.setTaskId(appUserLocusVO.getResourcesId());
+                    c.setType("6");
+                    String recoedId = remoteDataBaseService.startRecoed(c).get("msg").toString();
+                    retJson.put("resourcesRecoedId",recoedId);
+                }
+                if(StringUtils.isNotEmpty(appUserLocusVO.getEnvironmentId())){//环保关联id
+                    c.setTaskId(appUserLocusVO.getEnvironmentId());
+                    c.setType("4");
+                    String recoedId = remoteDataBaseService.startRecoed(c).get("msg").toString();
+                    retJson.put("environmentRecoedId",recoedId);
+                }
+                if(StringUtils.isNotEmpty(appUserLocusVO.getFireControlId())){//消防关联id
+                    c.setTaskId(appUserLocusVO.getFireControlId());
+                    c.setType("5");
+                    String recoedId = remoteDataBaseService.startRecoed(c).get("msg").toString();
+                    retJson.put("fireControlRecoedId",recoedId);
+                }
+                if(StringUtils.isNotEmpty(appUserLocusVO.getTrafficId())){//交通关联id
+                    c.setTaskId(appUserLocusVO.getTrafficId());
+                    c.setType("3");
+                    String recoedId = remoteDataBaseService.startRecoed(c).get("msg").toString();
+                    retJson.put("trafficRecoedId",recoedId);
+                }
+                return AjaxResult.success(retJson);
+            }else{//end结束巡查
+                CenterdataTHydraulicPatrolPlanRecord c = new CenterdataTHydraulicPatrolPlanRecord();
+                c.setUserId(appUserLocusVO.getUserId());
+                if(StringUtils.isNotEmpty(appUserLocusVO.getForestryRecoedId())){//林业关联id
+                    c.setId(appUserLocusVO.getForestryRecoedId());
+                    c.setType("1");
+                    remoteDataBaseService.finishThisRecoed(c);
+                }
+                if(StringUtils.isNotEmpty(appUserLocusVO.getWaterRecoedId())){//水利关联id
+                    c.setId(appUserLocusVO.getWaterRecoedId());
+                    c.setType("2");
+                    remoteDataBaseService.finishThisRecoed(c);
+                }
+                if(StringUtils.isNotEmpty(appUserLocusVO.getResourcesRecoedId())){//资源关联id
+                    c.setId(appUserLocusVO.getResourcesRecoedId());
+                    c.setType("6");
+                    remoteDataBaseService.finishThisRecoed(c);
+                }
+                if(StringUtils.isNotEmpty(appUserLocusVO.getEnvironmentRecoedId())){//环保关联id
+                    c.setId(appUserLocusVO.getEnvironmentRecoedId());
+                    c.setType("4");
+                    remoteDataBaseService.finishThisRecoed(c);
+                }
+                if(StringUtils.isNotEmpty(appUserLocusVO.getFireControlRecoedId())){//消防关联id
+                    c.setId(appUserLocusVO.getFireControlRecoedId());
+                    c.setType("5");
+                    remoteDataBaseService.finishThisRecoed(c);
+                }
+                if(StringUtils.isNotEmpty(appUserLocusVO.getTrafficRecoedId())){//交通关联id
+                    c.setId(appUserLocusVO.getTrafficRecoedId());
+                    c.setType("3");
+                    remoteDataBaseService.finishThisRecoed(c);
+                }
+                return AjaxResult.success();
+            }
+        }else{//为空证明巡查中
+            CenterdataTHydraulicTrack track = new CenterdataTHydraulicTrack();
+            track.setLongitude(appUserLocusVO.getLongitude());
+            track.setLatitude(appUserLocusVO.getLatitude());
+            if(StringUtils.isNotEmpty(appUserLocusVO.getForestryRecoedId())){//林业关联id
+                track.setRecordId(appUserLocusVO.getForestryRecoedId());
+                remoteDataBaseService.addTrack(track);
+            }
+            if(StringUtils.isNotEmpty(appUserLocusVO.getWaterRecoedId())){//水利关联id
+                track.setRecordId(appUserLocusVO.getWaterRecoedId());
+                remoteDataBaseService.addTrack(track);
+            }
+            if(StringUtils.isNotEmpty(appUserLocusVO.getResourcesRecoedId())){//资源关联id
+                track.setRecordId(appUserLocusVO.getResourcesRecoedId());
+                remoteDataBaseService.addTrack(track);
+            }
+            if(StringUtils.isNotEmpty(appUserLocusVO.getEnvironmentRecoedId())){//环保关联id
+                track.setRecordId(appUserLocusVO.getEnvironmentRecoedId());
+                remoteDataBaseService.addTrack(track);
+            }
+            if(StringUtils.isNotEmpty(appUserLocusVO.getFireControlRecoedId())){//消防关联id
+                track.setRecordId(appUserLocusVO.getFireControlRecoedId());
+                remoteDataBaseService.addTrack(track);
+            }
+            if(StringUtils.isNotEmpty(appUserLocusVO.getTrafficRecoedId())){//交通关联id
+                track.setRecordId(appUserLocusVO.getTrafficRecoedId());
+                remoteDataBaseService.addTrack(track);
+            }
+        }
+        return null;
+    }
+
+    @Override
+    public AjaxResult getDeptList(String deptName) {
+        return remoteSystemBaseService.getDeptList(deptName);
+    }
+
+    @Override
+    public R<Map<String, String[]>> selectByMenuId(SysMenuEventType sysMenuEventType) {
+        List<SysMenuEventType> eventTypeList = remoteSystemBaseService.selectByMenuId(sysMenuEventType).getData();
+        Map<String, String[]> map = new HashMap<>();
+        List<String> eventType = new ArrayList<>();
+        List<String> eventTypeDl = new ArrayList<>();
+        if (ObjectUtils.isEmpty(eventTypeList)) {
+            eventType.add("-1");
+            eventTypeDl.add("-1");
+        } else {
+            eventTypeList.forEach(item -> {
+                eventType.add(item.getEventTypeXl());
+                eventTypeDl.add(item.getEventType());
+            });
+        }
+        map.put("eventType", eventType.toArray(new String[eventType.size()]));
+        map.put("eventTypeDl", eventTypeDl.toArray(new String[eventTypeDl.size()]));
+        return R.ok(map);
+    }
+}

+ 125 - 0
src/main/java/com/sooka/sponest/mobile/comprehensive/ConflictDefuseController/AppConflictResolutionController.java

@@ -0,0 +1,125 @@
+package com.sooka.sponest.mobile.comprehensive.conflictDefuseController;
+
+import com.ruoyi.common.core.constant.HttpStatus;
+import com.ruoyi.common.core.domain.DictKeys;
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.web.controller.BaseController;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.web.page.PageDomain;
+import com.ruoyi.common.core.web.page.TableDataInfo;
+import com.ruoyi.common.core.web.page.TableSupport;
+import com.ruoyi.common.security.utils.DictUtils;
+import com.sooka.sponest.comprehensive.api.comprehensiveConflictDefuse.domain.ConflictResolution;
+import com.sooka.sponest.comprehensive.api.comprehensiveConflictDefuse.service.RemoteConflictResolutionService;
+import org.apache.commons.collections4.MapUtils;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.List;
+import java.util.Map;
+
+@RestController
+@RequestMapping("/AppConflictResolutionController")
+public class AppConflictResolutionController extends BaseController {
+    @Resource
+    private RemoteConflictResolutionService remoteConflictResolutionService;
+
+    /**
+     * 查询矛盾纠纷排查化解
+     */
+    @GetMapping("/conflict/list")
+    public AjaxResult list(ConflictResolution conflictResolution) {
+        PageDomain pageDomain = TableSupport.buildPageRequest();
+        Integer pageNum = pageDomain.getPageNum();
+        Integer pageSize = pageDomain.getPageSize();
+        TableDataInfo tableDataInfo = remoteConflictResolutionService.selectConflictResolutionList(pageNum, pageSize, conflictResolution.getTemp(),conflictResolution.getEventName(),conflictResolution.getMainPersonName(),conflictResolution.getResolutionResponsibleName());
+        if (HttpStatus.SUCCESS == tableDataInfo.getCode()) {
+            List<Map<String,Object>> rows = (List<Map<String, Object>>) tableDataInfo.getRows();
+            Map<String,Object> comprehensiveCertificateCode = DictUtils.getDictCacheToMap(DictKeys.COMPREHENSIVE_CERTIFICATE_CODE);
+            Map<String,Object> comprehensiveSex = DictUtils.getDictCacheToMap(DictKeys.COMPREHENSIVE_SEX);
+            Map<String,Object> comprehensiveNation = DictUtils.getDictCacheToMap(DictKeys.COMPREHENSIVE_NATION);
+            Map<String,Object> comprehensiveEducationalBackground = DictUtils.getDictCacheToMap(DictKeys.COMPREHENSIVE_EDUCATIONAL_BACKGROUND);
+            Map<String,Object> comprehensiveEventSize = DictUtils.getDictCacheToMap(DictKeys.COMPREHENSIVE_EVENT_SIZE);
+
+
+            Map<String,Object> comprehensiveEventType = DictUtils.getComprehensiveDictCacheToMap(DictKeys.COMPREHENSIVE_EVENT_TYPE);
+            Map<String,Object> comprehensivePartiesInvolved = DictUtils.getComprehensiveDictCacheToMap(DictKeys.COMPREHENSIVE_PARTIES_INVOLVED);
+            Map<String,Object> comprehensiveWaysResolving = DictUtils.getComprehensiveDictCacheToMap(DictKeys.COMPREHENSIVE_WAYS_RESOLVING);
+
+            for (Map<String, Object> row : rows) {
+                row.put("mainPersonIdCodeLabel",MapUtils.getString(comprehensiveCertificateCode,MapUtils.getString(row,"mainPersonIdCode")));
+                row.put("mainPersonGenderLabel",MapUtils.getString(comprehensiveSex,MapUtils.getString(row,"mainPersonGender")));
+                row.put("mainPersonNationalityLabel",MapUtils.getString(comprehensiveNation,MapUtils.getString(row,"mainPersonNationality")));
+                row.put("mainPersonEducationLabel",MapUtils.getString(comprehensiveEducationalBackground,MapUtils.getString(row,"mainPersonEducation")));
+                row.put("eventScaleLabel",MapUtils.getString(comprehensiveEventSize,MapUtils.getString(row,"eventScale")));
+                row.put("resolutionSuccessLabel",!MapUtils.getString(row,"resolutionSuccess").isEmpty()?("1".equals(conflictResolution.getResolutionSuccess())?"是":"否"):"");
+
+                row.put("eventCategoryLabel",MapUtils.getString(comprehensiveEventType,MapUtils.getString(row,"eventCategory")));
+                row.put("mainPersonCategoryLabel",MapUtils.getString(comprehensivePartiesInvolved,MapUtils.getString(row,"mainPersonCategory")));
+                row.put("resolutionMethodLabel",MapUtils.getString(comprehensiveWaysResolving,MapUtils.getString(row,"resolutionMethod")));
+
+
+            }
+
+            return AjaxResult.success(rows);
+        } else {
+            return AjaxResult.error(tableDataInfo.getCode(), tableDataInfo.getMsg());
+        }
+    }
+
+
+    /**
+     * 获取矛盾纠纷排查化解详细信息
+     */
+    @GetMapping("/conflict/edit")
+    public AjaxResult getInfo(String id) {
+        R<ConflictResolution> edit = remoteConflictResolutionService.selectConflictResolutionById(id);
+        if(HttpStatus.SUCCESS == edit.getCode()){
+            ConflictResolution conflictResolution = edit.getData();
+            Map<String,Object> comprehensiveEventType = DictUtils.getComprehensiveDictCacheToMap(DictKeys.COMPREHENSIVE_EVENT_TYPE);
+            Map<String,Object> comprehensivePartiesInvolved = DictUtils.getComprehensiveDictCacheToMap(DictKeys.COMPREHENSIVE_PARTIES_INVOLVED);
+            Map<String,Object> comprehensiveWaysResolving = DictUtils.getComprehensiveDictCacheToMap(DictKeys.COMPREHENSIVE_WAYS_RESOLVING);
+
+
+            conflictResolution.setMainPersonIdCodeLabel(DictUtils.getDictDataByValue(DictKeys.COMPREHENSIVE_CERTIFICATE_CODE, conflictResolution.getMainPersonIdCode()));
+            conflictResolution.setMainPersonGenderLabel(DictUtils.getDictDataByValue(DictKeys.COMPREHENSIVE_SEX, conflictResolution.getMainPersonGender()));
+            conflictResolution.setMainPersonNationalityLabel(DictUtils.getDictDataByValue(DictKeys.COMPREHENSIVE_NATION, conflictResolution.getMainPersonNationality()));
+            conflictResolution.setMainPersonEducationLabel(DictUtils.getDictDataByValue(DictKeys.COMPREHENSIVE_EDUCATIONAL_BACKGROUND, conflictResolution.getMainPersonEducation()));
+            conflictResolution.setEventScaleLabel(DictUtils.getDictDataByValue(DictKeys.COMPREHENSIVE_EVENT_SIZE, conflictResolution.getEventScale()));
+            conflictResolution.setResolutionSuccessLabel(!conflictResolution.getResolutionSuccess().isEmpty()?("1".equals(conflictResolution.getResolutionSuccess())?"是":"否"):"");
+
+            conflictResolution.setEventCategoryLabel(MapUtils.getString(comprehensiveEventType,conflictResolution.getEventCategory()));
+            conflictResolution.setMainPersonCategoryLabel(MapUtils.getString(comprehensivePartiesInvolved,conflictResolution.getMainPersonCategory()));
+            conflictResolution.setResolutionMethodLabel(MapUtils.getString(comprehensiveWaysResolving,conflictResolution.getResolutionMethod()));
+
+
+            return AjaxResult.success(conflictResolution);
+        }else{
+            return AjaxResult.error(edit.getCode(), edit.getMsg());
+        }
+    }
+
+    /**
+     * 新增矛盾纠纷排查化解
+     */
+    @PostMapping("/conflict")
+    public AjaxResult add(@RequestBody String json) {
+        return remoteConflictResolutionService.insertConflictResolution(json);
+    }
+
+    /**
+     * 修改矛盾纠纷排查化解
+     */
+    @PostMapping("/conflict/put")
+    public AjaxResult edit(@RequestBody String json) {
+        return remoteConflictResolutionService.updateConflictResolution(json);
+    }
+
+    /**
+     * 删除矛盾纠纷排查化解
+     */
+    @GetMapping("/conflict/del")
+    public AjaxResult remove(@RequestParam("id") List<String> id) {
+        return remoteConflictResolutionService.deleteConflictResolutionByIds(id.toArray(new String[0]));
+    }
+}

+ 107 - 0
src/main/java/com/sooka/sponest/mobile/comprehensive/RoadCaseController/AppRoadCaseController.java

@@ -0,0 +1,107 @@
+package com.sooka.sponest.mobile.comprehensive.RoadCaseController;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.ruoyi.common.core.constant.HttpStatus;
+import com.ruoyi.common.core.domain.DictKeys;
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.web.controller.BaseController;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.web.page.PageDomain;
+import com.ruoyi.common.core.web.page.TableDataInfo;
+import com.ruoyi.common.core.web.page.TableSupport;
+import com.ruoyi.common.security.utils.DictUtils;
+import com.sooka.sponest.comprehensive.api.comprehensiveOrganizationAndInstitution.domain.ComprehensiveRoom;
+import com.sooka.sponest.comprehensive.api.comprehensivePersonBasicInfo.domain.OtherPersonInfo;
+import com.sooka.sponest.comprehensive.api.comprehensivePersonBasicInfo.domain.PersonBasicInfo;
+import com.sooka.sponest.comprehensive.api.comprehensivePersonBasicInfo.service.RemotePersonBasicInfoService;
+import com.sooka.sponest.comprehensive.api.comprehensiveRoadCase.domain.ComprehensiveRoadCase;
+import com.sooka.sponest.comprehensive.api.comprehensiveRoadCase.service.RemoteRoadCaseService;
+import com.sooka.sponest.data.api.digitalenvironment.domain.EnvironmentBiggas;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.*;
+
+/**
+ * @Author LG
+ * @Date 2023/9/8 - 9:38
+ */
+@RestController
+@RequestMapping("/AppRoadCaseController")
+public class AppRoadCaseController  extends BaseController {
+
+    @Resource
+    RemoteRoadCaseService remoteRoadCaseService;
+
+    /**
+     * 查询涉及线、路案(事)件列表
+     */
+    @GetMapping("/RoadCase/list")
+    public AjaxResult list(ComprehensiveRoadCase comprehensiveRoadcase) {
+        PageDomain pageDomain = TableSupport.buildPageRequest();
+        Integer pageNum = pageDomain.getPageNum();
+        Integer pageSize = pageDomain.getPageSize();
+        TableDataInfo tableDataInfo = remoteRoadCaseService.selectComprehensiveRoadCaseList(pageNum, pageSize, comprehensiveRoadcase.getCaseName());
+        Map<String, Object> maps = DictUtils.getDictCacheToMap(DictKeys.COMPREHENSIVE_NATURE_OF_THE_CASE);
+        Map<String, Object> maps1 = DictUtils.getDictCacheToMap(DictKeys.COMPREHENSIVE_CERTIFICATE_CODE);
+        List<HashMap<String, Object>> rows = (List<HashMap<String, Object>>) tableDataInfo.getRows();
+        if (HttpStatus.SUCCESS == tableDataInfo.getCode()) {
+            if (!rows.isEmpty()) {
+                for (HashMap<String, Object> row : rows) {
+                    row.put("caseNatureLabel",maps.get(row.get("caseNature")));
+                    row.put("mainSuspectIdCodeLabel",maps1.get(row.get("mainSuspectIdCode")));
+                    row.put("solvedLabel","1".equals(row.get("solved")) ? "是" : "否");
+                }
+            }
+            return AjaxResult.success(tableDataInfo.getRows());
+        } else {
+            return AjaxResult.error(tableDataInfo.getCode(), tableDataInfo.getMsg());
+        }
+    }
+
+
+    /**
+     * 获取涉及线、路案(事)件列表详细信息
+     */
+    @GetMapping("/RoadCase/edit")
+    public AjaxResult getInfo(String id) {
+        R<ComprehensiveRoadCase> edit = remoteRoadCaseService.selectComprehensiveRoadCaseById(id);
+        ComprehensiveRoadCase data = edit.getData();
+        data.setSolvedLabel("1".equals(data.getSolved()) ? "是" : "否");
+        if (HttpStatus.SUCCESS == edit.getCode()){
+            data.setCaseNatureLabel(DictUtils.getDictDataByValue(DictKeys.COMPREHENSIVE_NATURE_OF_THE_CASE,data.getCaseNature()));
+            data.setMainSuspectIdCodeLabel(DictUtils.getDictDataByValue(DictKeys.COMPREHENSIVE_CERTIFICATE_CODE,data.getMainSuspectIdCode()));
+            data.setIsEdit(true);
+        }else if (HttpStatus.ERROR == edit.getCode() && null != edit.getData()) {
+            data.setIsEdit(false);
+        }else {
+            return AjaxResult.error(edit.getCode(), edit.getMsg());
+        }
+        return AjaxResult.success(data);
+    }
+
+    /**
+     * 新增涉及线、路案(事)件列表
+     */
+    @PostMapping("/RoadCase")
+    public AjaxResult add(@RequestBody String json) {
+        return remoteRoadCaseService.insertComprehensiveRoadCase(json);
+    }
+
+    /**
+     * 修改涉及线、路案(事)件列表
+     */
+    @PostMapping("/RoadCase/put")
+    public AjaxResult edit(@RequestBody String json) {
+        return remoteRoadCaseService.updateComprehensiveRoadCase(json);
+    }
+
+    /**
+     * 删除涉及线、路案(事)件列表
+     */
+    @GetMapping("/RoadCase/del")
+    public AjaxResult remove(@RequestParam("id") List<String> id) {
+        return remoteRoadCaseService.deleteComprehensiveRoadCaseByIds(id.toArray(new String[0]));
+    }
+}

+ 94 - 0
src/main/java/com/sooka/sponest/mobile/comprehensive/RoadCaseController/AppRoadProtectionController.java

@@ -0,0 +1,94 @@
+package com.sooka.sponest.mobile.comprehensive.RoadCaseController;
+
+import com.ruoyi.common.core.constant.HttpStatus;
+import com.ruoyi.common.core.web.controller.BaseController;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.web.page.PageDomain;
+import com.ruoyi.common.core.web.page.TableDataInfo;
+import com.ruoyi.common.core.web.page.TableSupport;
+import com.ruoyi.common.security.utils.DictUtils;
+import com.sooka.sponest.comprehensive.api.comprehensiveRoadCase.domain.ComprehensiveRoadProtection;
+import com.sooka.sponest.comprehensive.api.comprehensiveRoadCase.service.RemoteRoadProtectionService;
+import com.ruoyi.common.core.domain.DictKeys;
+import org.apache.commons.collections4.MapUtils;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+@RestController
+@RequestMapping("/AppRoadProtectionController")
+public class AppRoadProtectionController extends BaseController {
+    @Resource
+    private RemoteRoadProtectionService remoteRoadProtectionService;
+
+    /**
+     * 查询护路护线
+     */
+    @GetMapping("/RoadProtection/list")
+    public AjaxResult list(ComprehensiveRoadProtection comprehensiveRoadProtection) {
+        PageDomain pageDomain = TableSupport.buildPageRequest();
+        Integer pageNum = pageDomain.getPageNum();
+        Integer pageSize = pageDomain.getPageSize();
+        TableDataInfo tableDataInfo = remoteRoadProtectionService.selectComprehensiveRoadProtectionList(pageNum, pageSize, comprehensiveRoadProtection.getName());
+        if (HttpStatus.SUCCESS == tableDataInfo.getCode()) {
+            List<HashMap<String, Object>> rows = (List<HashMap<String, Object>>) tableDataInfo.getRows();
+            Map<String, Object> dictCacheToMap = DictUtils.getDictCacheToMap(DictKeys.COMPREHENSIVE_LINE_TYPE);
+            Map<String, Object> dictCacheToMap1 = DictUtils.getDictCacheToMap(DictKeys.COMPREHENSIVE_POLICING_LEVEL);
+            if (!rows.isEmpty()) {
+                for (HashMap<String, Object> row : rows) {
+                    row.put("routeTypeLabel", dictCacheToMap.get(row.get("routeType")));
+                    row.put("publicSecurityHazardLevelLabel", dictCacheToMap1.get(row.get("publicSecurityHazardLevel")));
+                }
+            }
+            return AjaxResult.success(tableDataInfo.getRows());
+        } else {
+            return AjaxResult.error(tableDataInfo.getCode(), tableDataInfo.getMsg());
+        }
+    }
+
+
+
+    /**
+     * 获取护路护线详细信息
+     */
+    @GetMapping("/RoadProtection/edit")
+    public AjaxResult getInfo(String id) {
+        AjaxResult ajaxResult =   remoteRoadProtectionService.selectComprehensiveRoadProtectionById(id);
+        if("200".equals(MapUtils.getString(ajaxResult,"code"))){
+            HashMap<String,Object> comprehensiveRoadProtection = (HashMap<String, Object>) ajaxResult.get("data");
+            comprehensiveRoadProtection.put("routeTypeLabel",DictUtils.getDictDataByValue(DictKeys.COMPREHENSIVE_LINE_TYPE, MapUtils.getString(comprehensiveRoadProtection,"routeType")));
+            comprehensiveRoadProtection.put("publicSecurityHazardLevelLabel",DictUtils.getDictDataByValue(DictKeys.COMPREHENSIVE_POLICING_LEVEL,MapUtils.getString(comprehensiveRoadProtection,"publicSecurityHazardLevel")));
+            return AjaxResult.success(comprehensiveRoadProtection);
+        }else{
+            return AjaxResult.error(MapUtils.getString(ajaxResult,"code"), MapUtils.getString(ajaxResult,"msg"));
+        }
+
+    }
+
+    /**
+     * 新增护路护线
+     */
+    @PostMapping("/RoadProtection")
+    public AjaxResult add(@RequestBody String json) {
+        return remoteRoadProtectionService.insertComprehensiveRoadProtection(json);
+    }
+
+    /**
+     * 修改护路护线
+     */
+    @PostMapping("/RoadProtection/put")
+    public AjaxResult edit(@RequestBody String json) {
+        return remoteRoadProtectionService.updateComprehensiveRoadProtection(json);
+    }
+
+    /**
+     * 删除护路护线
+     */
+    @GetMapping("/RoadProtection/del")
+    public AjaxResult remove(@RequestParam("id") List<String> id) {
+        return remoteRoadProtectionService.deleteComprehensiveRoadProtectionByIds(id.toArray(new String[0]));
+    }
+}

+ 120 - 0
src/main/java/com/sooka/sponest/mobile/comprehensive/actualPeopleController/AppOverseasPersonInfoController.java

@@ -0,0 +1,120 @@
+package com.sooka.sponest.mobile.comprehensive.actualPeopleController;
+
+import com.ruoyi.common.core.constant.HttpStatus;
+import com.ruoyi.common.core.domain.DictKeys;
+import com.ruoyi.common.core.web.controller.BaseController;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.web.page.PageDomain;
+import com.ruoyi.common.core.web.page.TableDataInfo;
+import com.ruoyi.common.core.web.page.TableSupport;
+import com.ruoyi.common.security.utils.DictUtils;
+import com.sooka.sponest.comprehensive.api.comprehensiveActualPeople.domain.ComprehensiveRhfOverseasPersonInfo;
+import com.sooka.sponest.comprehensive.api.comprehensiveActualPeople.service.RemoteOverseasPersonInfoService;
+import org.apache.commons.collections4.MapUtils;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 境外人员App
+ *
+ * @author hanfucheng
+ * @date 2023/9/6 14:57
+ */
+@RestController
+@RequestMapping("/AppOverseasPersonInfoController")
+public class AppOverseasPersonInfoController extends BaseController {
+
+    @Resource
+    RemoteOverseasPersonInfoService remoteOverseasPersonInfoService;
+
+    /**
+     * 查询境外人员列表
+     */
+    @GetMapping("/info/list")
+    public AjaxResult list(ComprehensiveRhfOverseasPersonInfo comprehensiveRhfOverseasPersonInfo) {
+        PageDomain pageDomain = TableSupport.buildPageRequest();
+        Integer pageNum = pageDomain.getPageNum();
+        Integer pageSize = pageDomain.getPageSize();
+        TableDataInfo tableDataInfo = remoteOverseasPersonInfoService.selectComprehensiveRhfOverseasPersonInfoList(pageNum, pageSize, comprehensiveRhfOverseasPersonInfo.getIdentityNumber(), comprehensiveRhfOverseasPersonInfo.getPhone());
+        if(HttpStatus.SUCCESS == tableDataInfo.getCode()){
+            List<Map<String,Object>> rows = (List<Map<String, Object>>) tableDataInfo.getRows();
+            Map<String,Object> comprehensiveCityCode = DictUtils.getComprehensiveDictCacheToMap(DictKeys.COMPREHENSIVE_CITY_CODE);//2260
+            Map<String,Object> comprehensiveSex = DictUtils.getDictCacheToMap(DictKeys.COMPREHENSIVE_SEX);
+            Map<String,Object> comprehensiveInternation = DictUtils.getDictCacheToMap(DictKeys.COMPREHENSIVE_INTERNATION);
+            Map<String,Object> comprehensiveReligiousBelief = DictUtils.getDictCacheToMap(DictKeys.COMPREHENSIVE_RELIGIOUS_BELIEF);
+            Map<String,Object> comprehensiveCertificateCode = DictUtils.getDictCacheToMap(DictKeys.COMPREHENSIVE_CERTIFICATE_CODE);
+            Map<String,Object> comprehensiveComingToChinaPurpose = DictUtils.getDictCacheToMap(DictKeys.COMPREHENSIVE_COMING_TO_CHINA_PURPOSE);
+            Map<String,Object> comprehensiveOccupationalCategory = DictUtils.getDictCacheToMap(DictKeys.COMPREHENSIVE_OCCUPATIONAL_CATEGORY);
+
+            for (Map<String, Object> row : rows) {
+                row.put("genderLabel",comprehensiveSex.get(MapUtils.getString(row,"gender")));
+                row.put("nativePlaceLabel",comprehensiveInternation.get(MapUtils.getString(row,"nativePlace")));
+                row.put("religiousBeliefLabel",comprehensiveReligiousBelief.get(MapUtils.getString(row,"religiousBelief")));
+                row.put("identityCodeLabel",comprehensiveCertificateCode.get(MapUtils.getString(row,"identityCode")));
+                row.put("purposeComingChinaLabel",comprehensiveComingToChinaPurpose.get(MapUtils.getString(row,"purposeComingChina")));
+                row.put("occupationalCategoryLabel",comprehensiveOccupationalCategory.get(MapUtils.getString(row,"occupationalCategory")));
+                row.put("focusPeopleLabel",null == row.get("focusPeople")?"":(MapUtils.getInteger(row,"focusPeople")== 1?"是":"否"));
+                row.put("currentResidencePlaceLabel",comprehensiveCityCode.get(MapUtils.getString(row,"currentResidencePlace")));
+            }
+            return AjaxResult.success(rows);
+        }else{
+            return AjaxResult.error(tableDataInfo.getCode(),tableDataInfo.getMsg());
+        }
+    }
+
+
+    /**
+     * 获取境外人员详细信息
+     */
+    @GetMapping("/info/edit")
+    public AjaxResult getInfo(String id) {
+        AjaxResult ajaxResult =  remoteOverseasPersonInfoService.selectComprehensiveRhfOverseasPersonInfoById(id);
+        if("200".equals(MapUtils.getString(ajaxResult,"code"))){
+            HashMap<String,Object> comprehensiveRhfOverseasPersonInfo = (HashMap<String, Object>) ajaxResult.get("data");
+            Map<String,Object> comprehensiveCityCode = DictUtils.getComprehensiveDictCacheToMap(DictKeys.COMPREHENSIVE_CITY_CODE);
+
+            comprehensiveRhfOverseasPersonInfo.put("genderLabel",DictUtils.getDictDataByValue(DictKeys.COMPREHENSIVE_SEX,MapUtils.getString(comprehensiveRhfOverseasPersonInfo,"gender")));
+            comprehensiveRhfOverseasPersonInfo.put("nativePlaceLabel",DictUtils.getDictDataByValue(DictKeys.COMPREHENSIVE_INTERNATION,MapUtils.getString(comprehensiveRhfOverseasPersonInfo,"nativePlace")));
+            comprehensiveRhfOverseasPersonInfo.put("religiousBeliefLabel",DictUtils.getDictDataByValue(DictKeys.COMPREHENSIVE_RELIGIOUS_BELIEF,MapUtils.getString(comprehensiveRhfOverseasPersonInfo,"religiousBelief")));
+            comprehensiveRhfOverseasPersonInfo.put("identityCodeLabel",DictUtils.getDictDataByValue(DictKeys.COMPREHENSIVE_CERTIFICATE_CODE,MapUtils.getString(comprehensiveRhfOverseasPersonInfo,"identityCode")));
+            comprehensiveRhfOverseasPersonInfo.put("purposeComingChinaLabel",DictUtils.getDictDataByValue(DictKeys.COMPREHENSIVE_COMING_TO_CHINA_PURPOSE,MapUtils.getString(comprehensiveRhfOverseasPersonInfo,"purposeComingChina")));
+            comprehensiveRhfOverseasPersonInfo.put("occupationalCategoryLabel",DictUtils.getDictDataByValue(DictKeys.COMPREHENSIVE_OCCUPATIONAL_CATEGORY,MapUtils.getString(comprehensiveRhfOverseasPersonInfo,"occupationalCategory")));
+            comprehensiveRhfOverseasPersonInfo.put("focusPeopleLabel",null == comprehensiveRhfOverseasPersonInfo.get("focusPeople")?"":(MapUtils.getInteger(comprehensiveRhfOverseasPersonInfo,"focusPeople")== 1?"是":"否"));
+            comprehensiveRhfOverseasPersonInfo.put("currentResidencePlaceLabel",comprehensiveCityCode.get(MapUtils.getString(comprehensiveRhfOverseasPersonInfo,"currentResidencePlace")));
+
+            return AjaxResult.success(comprehensiveRhfOverseasPersonInfo);
+        }else{
+            return AjaxResult.error(MapUtils.getString(ajaxResult,"code"), MapUtils.getString(ajaxResult,"msg"));
+        }
+
+    }
+
+    /**
+     * 新增境外人员
+     */
+    @PostMapping("/info")
+    public AjaxResult add(@RequestBody String json) {
+        return remoteOverseasPersonInfoService.insertComprehensiveRhfOverseasPersonInfo(json);
+    }
+    /**
+     * 修改境外人员
+     */
+    @PostMapping("/info/put")
+    public AjaxResult edit(@RequestBody String json) {
+        return remoteOverseasPersonInfoService.updateComprehensiveRhfOverseasPersonInfo(json);
+    }
+
+    /**
+     * 删除境外人员
+     */
+    @GetMapping("/info/del")
+    public AjaxResult remove(@RequestParam("id") List<String> id) {
+        return remoteOverseasPersonInfoService.deleteComprehensiveRhfOverseasPersonInfoByIds(id.toArray(new String[0]));
+    }
+
+
+}

+ 109 - 0
src/main/java/com/sooka/sponest/mobile/comprehensive/actualPeopleController/AppRentalHousingController.java

@@ -0,0 +1,109 @@
+package com.sooka.sponest.mobile.comprehensive.actualPeopleController;
+
+import com.ruoyi.common.core.constant.HttpStatus;
+import com.ruoyi.common.core.domain.DictKeys;
+import com.ruoyi.common.core.web.controller.BaseController;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.web.page.PageDomain;
+import com.ruoyi.common.core.web.page.TableDataInfo;
+import com.ruoyi.common.core.web.page.TableSupport;
+import com.ruoyi.common.security.utils.DictUtils;
+import com.sooka.sponest.comprehensive.api.comprehensiveActualPeople.domain.ComprehensiveRhfRentalHousing;
+import com.sooka.sponest.comprehensive.api.comprehensiveActualPeople.service.RemoteRentalHousingService;
+import org.apache.commons.collections4.MapUtils;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 出租房App
+ *
+ * @author hanfucheng
+ * @date 2023/9/6 14:57
+ */
+@RestController
+@RequestMapping("/AppRentalHousingController")
+public class AppRentalHousingController extends BaseController {
+
+    @Resource
+    RemoteRentalHousingService remoteRentalHousingService;
+
+    /**
+     * 查询出租房列表
+     */
+    @GetMapping("/housing/list")
+    public AjaxResult list(ComprehensiveRhfRentalHousing comprehensiveRhfRentalHousing) {
+        PageDomain pageDomain = TableSupport.buildPageRequest();
+        Integer pageNum = pageDomain.getPageNum();
+        Integer pageSize = pageDomain.getPageSize();
+        TableDataInfo tableDataInfo = remoteRentalHousingService.selectComprehensiveRhfRentalHousingList(pageNum, pageSize, comprehensiveRhfRentalHousing.getName(), comprehensiveRhfRentalHousing.getHouseNumber(), comprehensiveRhfRentalHousing.getPhone());
+        if(HttpStatus.SUCCESS == tableDataInfo.getCode()){
+            List<Map<String,Object>> rows = (List<Map<String, Object>>) tableDataInfo.getRows();
+            Map<String,Object> comprehensiveBuildingUse = DictUtils.getDictCacheToMap(DictKeys.COMPREHENSIVE_BUILDING_USE);
+            Map<String,Object> comprehensiveCertificateCode = DictUtils.getDictCacheToMap(DictKeys.COMPREHENSIVE_CERTIFICATE_CODE);
+            Map<String,Object> comprehensiveRentalUse = DictUtils.getDictCacheToMap(DictKeys.COMPREHENSIVE_RENTAL_USE);
+            Map<String,Object> comprehensiveHazardType = DictUtils.getDictCacheToMap(DictKeys.COMPREHENSIVE_HAZARD_TYPE);
+            for (Map<String, Object> row : rows) {
+
+                row.put("buildingUseLabel",comprehensiveBuildingUse.get(MapUtils.getString(row,"buildingUse")));
+                row.put("identityCodeLabel",comprehensiveCertificateCode.get(MapUtils.getString(row,"identityCode")));
+                row.put("rentalUseLabel",comprehensiveRentalUse.get(MapUtils.getString(row,"rentalUse")));
+                row.put("hiddenDangerTypeLabel",comprehensiveHazardType.get(MapUtils.getString(row,"hiddenDangerType")));
+
+            }
+            return AjaxResult.success(rows);
+        }else{
+            return AjaxResult.error(tableDataInfo.getCode(),tableDataInfo.getMsg());
+        }
+    }
+
+
+    /**
+     * 获取出租房详细信息
+     */
+    @GetMapping("/housing/edit")
+    public AjaxResult getInfo(String id) {
+        AjaxResult ajaxResult = remoteRentalHousingService.selectComprehensiveRhfRentalHousingById(id);
+        if("200".equals(MapUtils.getString(ajaxResult,"code"))){
+
+            HashMap<String,Object> comprehensiveRhfRentalHousing = (HashMap<String, Object>) ajaxResult.get("data");
+            comprehensiveRhfRentalHousing.put("buildingUseLabel",DictUtils.getDictDataByValue(DictKeys.COMPREHENSIVE_BUILDING_USE, MapUtils.getString(comprehensiveRhfRentalHousing,"buildingUse")));
+            comprehensiveRhfRentalHousing.put("identityCodeLabel",DictUtils.getDictDataByValue(DictKeys.COMPREHENSIVE_CERTIFICATE_CODE, MapUtils.getString(comprehensiveRhfRentalHousing,"identityCode")));
+            comprehensiveRhfRentalHousing.put("rentalUseLabel",DictUtils.getDictDataByValue(DictKeys.COMPREHENSIVE_RENTAL_USE, MapUtils.getString(comprehensiveRhfRentalHousing,"rentalUse")));
+            comprehensiveRhfRentalHousing.put("hiddenDangerTypeLabel",DictUtils.getDictDataByValue(DictKeys.COMPREHENSIVE_HAZARD_TYPE, MapUtils.getString(comprehensiveRhfRentalHousing,"hiddenDangerType")));
+
+            return AjaxResult.success(comprehensiveRhfRentalHousing);
+        }else{
+            return AjaxResult.error(MapUtils.getString(ajaxResult,"code"), MapUtils.getString(ajaxResult,"msg"));
+        }
+
+    }
+
+    /**
+     * 新增出租房
+     */
+    @PostMapping("/housing")
+    public AjaxResult add(@RequestBody String json) {
+        return remoteRentalHousingService.insertComprehensiveRhfRentalHousing(json);
+    }
+    /**
+     * 修改出租房
+     */
+    @PostMapping("/housing/put")
+    public AjaxResult edit(@RequestBody String json) {
+        return remoteRentalHousingService.updateComprehensiveRhfRentalHousing(json);
+    }
+
+    /**
+     * 删除出租房
+     */
+    @GetMapping("/housing/del")
+    public AjaxResult remove(@RequestParam("id") List<String> id) {
+        return remoteRentalHousingService.deleteComprehensiveRhfRentalHousingByIds(id.toArray(new String[0]));
+    }
+
+
+}

+ 121 - 0
src/main/java/com/sooka/sponest/mobile/comprehensive/comprehensiveconflictdefuseController/AppGridLeaderController.java

@@ -0,0 +1,121 @@
+package com.sooka.sponest.mobile.comprehensive.comprehensiveconflictdefuseController;
+
+import com.ruoyi.common.core.constant.HttpStatus;
+import com.ruoyi.common.core.domain.DictKeys;
+import com.ruoyi.common.core.web.controller.BaseController;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.web.page.PageDomain;
+import com.ruoyi.common.core.web.page.TableDataInfo;
+import com.ruoyi.common.core.web.page.TableSupport;
+import com.ruoyi.common.security.utils.DictUtils;
+import com.sooka.sponest.comprehensive.api.comprehensiveOrganizationAndInstitution.domain.ComprehensiveRfhGridLeader;
+import com.sooka.sponest.comprehensive.api.comprehensiveOrganizationAndInstitution.service.RemoteRfhGridLeaderService;
+import org.apache.commons.collections4.MapUtils;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.List;
+import java.util.Map;
+
+import static com.ruoyi.common.security.utils.DictUtils.getComprehensiveDictCacheToMap;
+
+/**
+ * 网格长管理App
+ *
+ * @author hanfucheng
+ * @date 2023/9/6 14:57
+ */
+@RestController
+@RequestMapping("/AppGridLeaderController")
+public class    AppGridLeaderController extends BaseController {
+
+    @Resource
+    RemoteRfhGridLeaderService remoteRfhGridLeaderService;
+
+    /**
+     * 查询网格长管理列表
+     */
+    @GetMapping("/leader/list")
+    public AjaxResult list(ComprehensiveRfhGridLeader comprehensiveRfhGridLeader) {
+        PageDomain pageDomain = TableSupport.buildPageRequest();
+        Integer pageNum = pageDomain.getPageNum();
+        Integer pageSize = pageDomain.getPageSize();
+        TableDataInfo tableDataInfo = remoteRfhGridLeaderService.selectComprehensiveRfhGridLeaderList(pageNum, pageSize, comprehensiveRfhGridLeader.getUserName(), comprehensiveRfhGridLeader.getMemberName());
+        if(HttpStatus.SUCCESS == tableDataInfo.getCode()){
+            List<Map<String,Object>> rows = (List<Map<String, Object>>) tableDataInfo.getRows();
+            Map<String,Object> map = DictUtils.getDictCacheToMap(DictKeys.COMPREHENSIVE_SEX);//性别
+            Map<String,Object> map1 = DictUtils.getDictCacheToMap(DictKeys.COMPREHENSIVE_NATION);//民族
+            Map<String,Object> map2 = DictUtils.getDictCacheToMap(DictKeys.COMPREHENSIVE_POLITICAL_STATUS);//政治面貌
+            Map<String,Object> map3 = DictUtils.getDictCacheToMap(DictKeys.COMPREHENSIVE_EDUCATIONAL_BACKGROUND);//学历
+            for (Map<String, Object> row : rows) {
+                row.put("genderLabel",map.get(MapUtils.getString(row,"gender")));
+                row.put("nationLabel",map1.get(MapUtils.getString(row,"nation")));
+                row.put("politicalOutlookLabel",map2.get(MapUtils.getString(row,"politicalOutlook")));
+                row.put("educationLabel",map3.get(MapUtils.getString(row,"education")));
+            }
+            return AjaxResult.success(tableDataInfo.getRows());
+        }else{
+            return AjaxResult.error(tableDataInfo.getCode(),tableDataInfo.getMsg());
+        }
+    }
+
+    @GetMapping("/leader/listAll")
+    public AjaxResult listAll(ComprehensiveRfhGridLeader comprehensiveRfhGridLeader) {
+        AjaxResult ajaxResult = remoteRfhGridLeaderService.listAll();
+        if ("200".equals(ajaxResult.get("code").toString())){
+            Map<String,Object> map = DictUtils.getDictCacheToMap(DictKeys.COMPREHENSIVE_SEX);//性别
+            Map<String,Object> map1 = DictUtils.getDictCacheToMap(DictKeys.COMPREHENSIVE_NATION);//民族
+            Map<String,Object> map2 = DictUtils.getDictCacheToMap(DictKeys.COMPREHENSIVE_POLITICAL_STATUS);//政治面貌
+            Map<String,Object> map3 = DictUtils.getDictCacheToMap(DictKeys.COMPREHENSIVE_EDUCATIONAL_BACKGROUND);//学历
+            List<Map<String, Object>> data = (List<Map<String, Object>>) ajaxResult.get("data");
+            for (Map<String, Object> row : data) {
+                row.put("genderLabel",map.get(MapUtils.getString(row,"gender")));
+                row.put("nationLabel",map1.get(MapUtils.getString(row,"nation")));
+                row.put("politicalOutlookLabel",map2.get(MapUtils.getString(row,"politicalOutlook")));
+                row.put("educationLabel",map3.get(MapUtils.getString(row,"education")));
+            }
+        }
+        return ajaxResult;
+    }
+
+    /**
+     * 获取网格长管理详细信息
+     */
+    @GetMapping("/leader/edit")
+    public AjaxResult getInfo(String id) {
+        AjaxResult ajaxResult = remoteRfhGridLeaderService.selectComprehensiveRfhGridLeaderById(id);
+        if ("200".equals(ajaxResult.get("code").toString())){
+            Map<String, Object> data = (Map<String, Object>) ajaxResult.get("data");
+            data.put("genderLabel",DictUtils.getDictDataByValue(DictKeys.COMPREHENSIVE_SEX, MapUtils.getString(data,"gender")));
+            data.put("nationLabel",DictUtils.getDictDataByValue(DictKeys.COMPREHENSIVE_NATION, MapUtils.getString(data,"nation")));
+            data.put("politicalOutlookLabel",DictUtils.getDictDataByValue(DictKeys.COMPREHENSIVE_POLITICAL_STATUS, MapUtils.getString(data,"politicalOutlook")));
+            data.put("educationLabel",DictUtils.getDictDataByValue(DictKeys.COMPREHENSIVE_EDUCATIONAL_BACKGROUND, MapUtils.getString(data,"education")));
+        }
+        return ajaxResult;
+    }
+
+    /**
+     * 新增网格长管理
+     */
+    @PostMapping("/leader")
+    public AjaxResult add(@RequestBody String json) {
+        return remoteRfhGridLeaderService.insertComprehensiveRfhGridLeader(json);
+    }
+    /**
+     * 修改网格长管理
+     */
+    @PostMapping("/leader/put")
+    public AjaxResult edit(@RequestBody String json) {
+        return remoteRfhGridLeaderService.updateComprehensiveRfhGridLeader(json);
+    }
+
+    /**
+     * 删除网格长管理
+     */
+    @GetMapping("/leader/del")
+    public AjaxResult remove(@RequestParam("id") List<String> id) {
+        return remoteRfhGridLeaderService.deleteComprehensiveRfhGridLeaderByIds(id.toArray(new String[0]));
+    }
+
+
+}

+ 48 - 0
src/main/java/com/sooka/sponest/mobile/comprehensive/dict/AppDictController.java

@@ -0,0 +1,48 @@
+package com.sooka.sponest.mobile.comprehensive.dict;
+
+import com.ruoyi.common.core.web.controller.BaseController;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.sooka.sponest.comprehensive.api.dict.domain.DataDict;
+import com.sooka.sponest.comprehensive.api.dict.service.DataDictService;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+@RestController
+@RequestMapping("/AppDataDictController")
+public class AppDictController extends BaseController {
+
+    @Resource
+    private DataDictService dataDictService;
+
+    /**
+     * 手机端树形接口
+     */
+    @GetMapping("/dictTree")
+    public AjaxResult dictTree(DataDict dataDict) {
+        List list = dataDictService.dictTree(dataDict.getType(), dataDict.getResultType());
+        if(!list.isEmpty() && null != list){
+            return AjaxResult.success(list);
+        }else{
+            return AjaxResult.error(500, "list is null!");
+        }
+    }
+
+    /**
+     * 手机端树形接口
+     */
+    @GetMapping("/dictByPid")
+    public AjaxResult dictByPid(DataDict dataDict) {
+        List list = dataDictService.dictByPid(dataDict.getParentId() , dataDict.getType());
+        if(!list.isEmpty() && null != list){
+            return AjaxResult.success(list);
+        }else{
+            return AjaxResult.error(500, "list is null!");
+        }
+    }
+
+}
+

+ 33 - 0
src/main/java/com/sooka/sponest/mobile/comprehensive/eventController/EventCompletedController.java

@@ -0,0 +1,33 @@
+package com.sooka.sponest.mobile.comprehensive.eventController;
+
+import com.ruoyi.common.core.constant.HttpStatus;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.web.page.TableDataInfo;
+import com.sooka.sponest.comprehensive.api.comprehensiveEvent.service.RemoteEventCompletedService;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+
+@RestController
+@RequestMapping("/AppEventComplated")
+public class EventCompletedController {
+
+    @Resource
+    private RemoteEventCompletedService eventCompletedService;
+
+    /**
+     * 查询已办事件列表
+     */
+    @GetMapping("/eventCompleted/list")
+    public AjaxResult getList(@RequestParam("pageNum") String pageNum, @RequestParam("pageSize") String pageSize){
+        TableDataInfo data = eventCompletedService.getList(pageNum, pageSize);
+        if(HttpStatus.SUCCESS == data.getCode()){
+            return AjaxResult.success(data.getRows());
+        }else{
+            return AjaxResult.error(data.getCode(), data.getMsg());
+        }
+    }
+}

+ 162 - 0
src/main/java/com/sooka/sponest/mobile/comprehensive/eventController/EventController.java

@@ -0,0 +1,162 @@
+package com.sooka.sponest.mobile.comprehensive.eventController;
+
+import com.alibaba.fastjson.JSONObject;
+import com.ruoyi.common.core.constant.HttpStatus;
+import com.ruoyi.common.core.utils.SpringUtils;
+import com.ruoyi.common.core.utils.StringUtils;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.web.page.TableDataInfo;
+import com.ruoyi.common.redis.service.RedisService;
+import com.ruoyi.common.security.utils.DictUtils;
+import com.ruoyi.system.api.domain.SysDictData;
+import com.sooka.sponest.comprehensive.api.comprehensiveEvent.domain.ZhsqEvent;
+import com.sooka.sponest.comprehensive.api.comprehensiveEvent.service.*;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+@RestController
+@RequestMapping("/AppComprehensiveEvent")
+public class EventController {
+    @Resource
+    private RemoteEventService eventService;
+
+    @Resource
+    private RemoteEventTodoService eventTodoService;
+
+    @Resource
+    private RemoteEventCompletedService eventCompletedService;
+
+    @Resource
+    private RemoteEventVerfiedService eventVerfiedService;
+
+    @Resource
+    private RemoteEventDistributeService eventDistributeService;
+
+    @Resource
+    private RemoteEventFileService eventFileService;
+
+    /**
+     * 查询事件列表接口(分页)
+     * @param pageNum
+     * @param pageSize
+     * @return
+     */
+    @GetMapping("/event/getList")
+    public AjaxResult getEventList(@RequestParam("pageNum") String pageNum, @RequestParam("pageSize") String pageSize, @RequestParam("eventType") String eventType) {
+        TableDataInfo data = new TableDataInfo();
+
+        switch (eventType){
+            case "1":
+                data = eventService.getList(pageNum,pageSize);
+                return setLabel(data, "eventState");
+            case "2":
+                data = eventTodoService.getList(pageNum,pageSize);
+                return setLabel(data, "sjczCzzt");
+            case "3":
+                data = eventCompletedService.getList(pageNum,pageSize);
+                return setLabel(data, "eventState");
+            case "4":
+                data = eventVerfiedService.getList(pageNum,pageSize);
+                return setLabel(data, "eventState");
+            case "5":
+                data = eventDistributeService.getList(pageNum,pageSize);
+                return setLabel(data, "sjczCzzt");
+            case "6":
+                data = eventFileService.getList(pageNum,pageSize);
+                return setLabel(data, "eventState");
+            default:
+                return AjaxResult.error(500, "参数错误");
+        }
+
+    }
+
+    private AjaxResult setLabel(TableDataInfo data, String keys){
+        if (HttpStatus.SUCCESS == data.getCode()) {
+            Map<String, Object> eventType1 = DictUtils.getDictCacheToMap("eventType");
+            List<HashMap<String, Object>> rows = (List<HashMap<String, Object>>) data.getRows();
+            for (HashMap<String, Object> row : rows) {
+                row.put("eventStateLabel", eventType1.get(row.get(keys).toString()));
+            }
+            return AjaxResult.success(rows);
+        } else {
+            return AjaxResult.error(data.getCode(), data.getMsg());
+        }
+    }
+
+    /**
+     * 查询事件详情接口
+     * @param eventId
+     * @return
+     */
+    @GetMapping("/event/edit")
+    public AjaxResult getEdit(@RequestParam("eventId") String eventId){
+        AjaxResult result = eventService.getEdit(eventId);
+        if("200".equals(String.valueOf(result.get("code")))){
+            HashMap<String, Object> data = (HashMap<String, Object>) result.get("data");
+            String keys = "zhsqEventType";
+            List<JSONObject> list = SpringUtils.getBean(RedisService.class).getCacheList(keys);
+            for (JSONObject map : list) {
+                if(map.getString("eventTypeId").equals(String.valueOf(data.get("eventTypeId")))){
+                    data.put("eventTypeLabel", map.get("eventTypeName"));
+                    break;
+                }
+            }
+            return AjaxResult.success(data);
+        }else{
+            return AjaxResult.error(String.valueOf(result.get("code")), result.get("msg"));
+        }
+    }
+
+    /**
+     * 新增事件接口
+     * @param event
+     */
+    @PostMapping("/event/addComprehensiveEvent")
+    public AjaxResult add(@RequestBody ZhsqEvent event) {
+        return eventService.add(event);
+    }
+
+    /**
+     * 修改事件接口
+     * @param zhsqEvent
+     * @return
+     */
+    @PostMapping("/event/put")
+    public AjaxResult put(@RequestBody ZhsqEvent zhsqEvent){
+        return eventService.put(zhsqEvent);
+    }
+
+    /**
+     * 事件删除接口
+     * @param id
+     * @return
+     */
+    @GetMapping("/event/del")
+    public AjaxResult del(@RequestParam("id") List<String> id){
+        return eventService.del(id.toArray(new String[0]));
+    }
+
+    /**
+     * 上报事件
+     * @param eventId
+     * @return
+     */
+    @GetMapping("/event/report/eventId")
+    public AjaxResult reportEventId(@RequestParam("eventId") String eventId){
+        return eventService.reportEventId(eventId);
+    }
+
+    /**
+     * 获取事件日志
+     */
+    @GetMapping("/event/eventLog")
+    public AjaxResult getEventLog(@RequestParam("eventId") String eventId){
+        return eventService.getEventLog(eventId);
+    }
+
+
+}

+ 55 - 0
src/main/java/com/sooka/sponest/mobile/comprehensive/eventController/EventDistributeController.java

@@ -0,0 +1,55 @@
+package com.sooka.sponest.mobile.comprehensive.eventController;
+
+import com.ruoyi.common.core.constant.HttpStatus;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.web.page.TableDataInfo;
+import com.sooka.sponest.comprehensive.api.comprehensiveEvent.domain.ZhsqEvent;
+import com.sooka.sponest.comprehensive.api.comprehensiveEvent.service.RemoteEventDistributeService;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+@RestController
+@RequestMapping("/AppEventDistribute")
+public class EventDistributeController {
+
+    @Resource
+    private RemoteEventDistributeService eventDistributeService;
+
+    /**
+     * 待分发事件信息列表
+     * @param pageNum
+     * @param pageSize
+     * @return
+     */
+    @GetMapping("/eventDistribute/list")
+    public AjaxResult getList(@RequestParam("pageNum") String pageNum, @RequestParam("pageSize") String pageSize){
+        TableDataInfo data = eventDistributeService.getList(pageNum, pageSize);
+        if(HttpStatus.SUCCESS == data.getCode()){
+            return AjaxResult.success(data.getRows());
+        }else{
+            return AjaxResult.error(data.getCode(), data.getMsg());
+        }
+    }
+
+    /**
+     * 事件分发-重新分发
+     * @param zhsqEvent
+     * @return
+     */
+    @PostMapping("/eventDistribute/redistribute")
+    public AjaxResult redistribute(@RequestBody ZhsqEvent zhsqEvent){
+        return eventDistributeService.redistribute(zhsqEvent);
+    }
+
+    /**
+     * 事件分发-上报区级
+     * @param eventId
+     * @param sjczId
+     * @return
+     */
+    @GetMapping("/eventDistribute/reportDistrict")
+    public AjaxResult reportDistrict(@RequestParam("eventId") String eventId, @RequestParam("sjczId") String sjczId){
+        return eventDistributeService.reportDistrict(eventId, sjczId);
+    }
+}

+ 36 - 0
src/main/java/com/sooka/sponest/mobile/comprehensive/eventController/EventFileController.java

@@ -0,0 +1,36 @@
+package com.sooka.sponest.mobile.comprehensive.eventController;
+
+import com.ruoyi.common.core.constant.HttpStatus;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.web.page.TableDataInfo;
+import com.sooka.sponest.comprehensive.api.comprehensiveEvent.service.RemoteEventDistributeService;
+import com.sooka.sponest.comprehensive.api.comprehensiveEvent.service.RemoteEventFileService;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+
+@RestController
+@RequestMapping("/AppEventFile")
+public class EventFileController {
+    @Resource
+    private RemoteEventFileService eventFileService;
+
+    /**
+     * 查询归档事件列表
+     * @param pageNum
+     * @param pageSize
+     * @return
+     */
+    @GetMapping("/eventFile/list")
+    public AjaxResult getList(@RequestParam("pageNum") String pageNum, @RequestParam("pageSize") String pageSize){
+        TableDataInfo data = eventFileService.getList(pageNum, pageSize);
+        if(HttpStatus.SUCCESS == data.getCode()){
+            return AjaxResult.success(data.getRows());
+        }else{
+            return AjaxResult.error(data.getCode(), data.getMsg());
+        }
+    }
+}

+ 70 - 0
src/main/java/com/sooka/sponest/mobile/comprehensive/eventController/EventTodoController.java

@@ -0,0 +1,70 @@
+package com.sooka.sponest.mobile.comprehensive.eventController;
+
+import com.ruoyi.common.core.constant.HttpStatus;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.web.page.TableDataInfo;
+import com.sooka.sponest.comprehensive.api.comprehensiveEvent.domain.ZhsqEvent;
+import com.sooka.sponest.comprehensive.api.comprehensiveEvent.domain.ZhsqSjcz;
+import com.sooka.sponest.comprehensive.api.comprehensiveEvent.service.RemoteEventTodoService;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+@RestController
+@RequestMapping("/AppEventTodo")
+public class EventTodoController {
+
+    @Resource
+    private RemoteEventTodoService eventTodoService;
+
+    /**
+     * 查询代办事件列表
+     * @param pageNum
+     * @param pageSize
+     * @return
+     */
+    @GetMapping("/eventTodo/list")
+    public AjaxResult getList(@RequestParam("pageNum") String pageNum, @RequestParam("pageSize") String pageSize){
+        TableDataInfo list = eventTodoService.getList(pageNum, pageSize);
+        if(HttpStatus.SUCCESS == list.getCode()){
+            return AjaxResult.success(list.getRows());
+        }else{
+            return AjaxResult.error(list.getCode(), list.getMsg());
+        }
+    }
+
+    /**
+     * 事件签收
+     * @param eventId
+     * @param sjczId
+     * @return
+     */
+    @GetMapping("/eventTodo/signFor")
+    public AjaxResult signFor(@RequestParam("eventId") String eventId, @RequestParam("sjczId") String sjczId){
+        return eventTodoService.signFor(eventId, sjczId);
+    }
+
+    /**
+     * 事件拒签
+     * @param eventId
+     * @param sjczId
+     * @param postId
+     * @return
+     */
+    @GetMapping("/eventTodo/refused")
+    public AjaxResult refused(@RequestParam("eventId") String eventId, @RequestParam("sjczId") String sjczId, @RequestParam("postId") String postId){
+        return eventTodoService.refused(eventId, sjczId, postId);
+    }
+
+    /**
+     * 待办事件申请办结
+     * @param zhsqSjcz
+     * @return
+     */
+    @PostMapping("/eventTodo/complete")
+    public AjaxResult complete(@RequestBody ZhsqSjcz zhsqSjcz){
+        return eventTodoService.complete(zhsqSjcz);
+    }
+
+
+}

+ 51 - 0
src/main/java/com/sooka/sponest/mobile/comprehensive/eventController/EventTypeController.java

@@ -0,0 +1,51 @@
+package com.sooka.sponest.mobile.comprehensive.eventController;
+
+import com.ruoyi.common.core.constant.HttpStatus;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.web.page.TableDataInfo;
+import com.sooka.sponest.comprehensive.api.comprehensiveEvent.service.RemoteEventTypeService;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+@RestController
+@RequestMapping("/AppEventType")
+public class EventTypeController {
+
+    @Resource
+    private RemoteEventTypeService eventTypeService;
+
+    /**
+     * 查询事件分类列表
+     */
+    @GetMapping("/eventType/list")
+    public AjaxResult getList(){
+        TableDataInfo data = eventTypeService.getList();
+        if(HttpStatus.SUCCESS == data.getCode()){
+            if(!data.getRows().isEmpty()){
+                List<Map<String, Object>> list = new ArrayList<>();
+                for (Map<String, Object> row : (List<Map<String, Object>>) data.getRows()) {
+                    Map<String, Object> map = new HashMap<>();
+                    map.put("id", row.get("eventTypeId").toString());
+                    map.put("name", row.get("eventTypeName").toString());
+                    map.put("type", row.get("type").toString());
+                    map.put("parentId", row.get("eventTypeParentId").toString());
+                    list.add(map);
+                }
+                return AjaxResult.success(list);
+            }else{
+                return AjaxResult.error(500, "rows is empty");
+            }
+        }else{
+            return AjaxResult.error(data.getCode(), data.getMsg());
+        }
+    }
+}

+ 62 - 0
src/main/java/com/sooka/sponest/mobile/comprehensive/eventController/EventVerfiedController.java

@@ -0,0 +1,62 @@
+package com.sooka.sponest.mobile.comprehensive.eventController;
+
+import com.ruoyi.common.core.constant.HttpStatus;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.web.page.TableDataInfo;
+import com.sooka.sponest.comprehensive.api.comprehensiveEvent.domain.ZhsqEvent;
+import com.sooka.sponest.comprehensive.api.comprehensiveEvent.service.RemoteEventService;
+import com.sooka.sponest.comprehensive.api.comprehensiveEvent.service.RemoteEventVerfiedService;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+
+@RestController
+@RequestMapping("/AppEventVerfied")
+public class EventVerfiedController {
+
+    @Resource
+    private RemoteEventVerfiedService eventVerfiedService;
+
+    /**
+     * 查询待核验事件列表
+     */
+    @GetMapping("/eventVerfied/list")
+    public AjaxResult getList(@RequestParam("pageNum") String pageNum, @RequestParam("pageSize") String pageSize){
+        TableDataInfo data = eventVerfiedService.getList(pageNum, pageSize);
+        if(HttpStatus.SUCCESS == data.getCode()){
+            return AjaxResult.success(data.getRows());
+        }else{
+            return AjaxResult.error(data.getCode(), data.getMsg());
+        }
+    }
+
+    /**
+     * 事件核验-核查通过
+     */
+    @GetMapping("/eventVerfied/verificationPassed")
+    public AjaxResult verificationPassed(ZhsqEvent zhsqEvent){
+        return eventVerfiedService.verificationPassed(zhsqEvent.getEventSbrDeptId(), zhsqEvent.getEventSbrDeptName(), zhsqEvent.getEventId(), zhsqEvent.getEventTypeId(), zhsqEvent.getEventHcyj());
+    }
+
+    /**
+     * 事件核验-退回重办
+     */
+    @GetMapping("/eventVerfied/reHandle")
+    public AjaxResult reHandle(ZhsqEvent zhsqEvent){
+        return eventVerfiedService.reHandle(zhsqEvent.getEventSbrDeptId(), zhsqEvent.getEventSbrDeptName(), zhsqEvent.getEventId(), zhsqEvent.getEventTypeId(), zhsqEvent.getEventHcyj());
+    }
+
+    /**
+     * 事件核验-归档
+     * @param eventId
+     * @return
+     */
+    @GetMapping("/eventVerfied/eventFile")
+    public AjaxResult eventFile(@RequestParam("eventId") String eventId){
+        return eventVerfiedService.eventFile(eventId);
+    }
+
+}

+ 119 - 0
src/main/java/com/sooka/sponest/mobile/comprehensive/nonPublicEconomicOrganizationsController/APPComprehensiveNonPublicEconomicOrganizationsController.java

@@ -0,0 +1,119 @@
+package com.sooka.sponest.mobile.comprehensive.nonPublicEconomicOrganizationsController;
+
+import com.ruoyi.common.core.constant.HttpStatus;
+import com.ruoyi.common.core.domain.DictKeys;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.web.page.PageDomain;
+import com.ruoyi.common.core.web.page.TableDataInfo;
+import com.ruoyi.common.core.web.page.TableSupport;
+import com.ruoyi.common.security.utils.DictUtils;
+import com.sooka.sponest.comprehensive.api.comprehensiveOrganizationAndInstitution.domain.ComprehensiveNonPublicEconomicOrganizations;
+import com.sooka.sponest.comprehensive.api.comprehensiveOrganizationAndInstitution.service.ComprehensiveNonPublicEconomicOrganizationsService;
+import org.apache.commons.collections4.MapUtils;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+
+/**
+ * @author zhaozhan
+ * @date 2023/9/15
+ */
+@RestController
+@RequestMapping("/APPComprehensiveNonPublicEconomicOrganizationsController")
+public class APPComprehensiveNonPublicEconomicOrganizationsController {
+    @Resource
+    private ComprehensiveNonPublicEconomicOrganizationsService comprehensiveNonPublicEconomicOrganizationsService;
+    /**
+     * 非公有制经济组织列表
+     * @param comprehensiveNonPublicEconomicOrganizations
+     * @return
+     */
+    @GetMapping("/ComprehensiveNonPublicEconomicOrganizations/list")
+    public AjaxResult list(ComprehensiveNonPublicEconomicOrganizations comprehensiveNonPublicEconomicOrganizations) {
+        PageDomain pageDomain = TableSupport.buildPageRequest();
+        Integer pageNum = pageDomain.getPageNum();
+        Integer pageSize = pageDomain.getPageSize();
+        TableDataInfo tableDataInfo = comprehensiveNonPublicEconomicOrganizationsService.list(pageNum, pageSize, comprehensiveNonPublicEconomicOrganizations.getEnterpriseName(), comprehensiveNonPublicEconomicOrganizations.getRegistrationNumbe(), comprehensiveNonPublicEconomicOrganizations.getLegalPersonIdNumber());
+        if(HttpStatus.SUCCESS == tableDataInfo.getCode()){
+            List<Map<String,Object>> rows= (List<Map<String, Object>>) tableDataInfo.getRows();
+            Map<String,Object> comprehensiveBusinessCategory = DictUtils.getDictCacheToMap(DictKeys.COMPREHENSIVE_BUSINESS_CATEGORY);
+            Map<String,Object> comprehensiveCertificateCode = DictUtils.getDictCacheToMap(DictKeys.COMPREHENSIVE_CERTIFICATE_CODE);
+            Map<String,Object> comprehensiveSecurityRisks = DictUtils.getDictCacheToMap(DictKeys.COMPREHENSIVE_SECURITY_RISKS);
+            Map<String,Object> comprehensiveLevelOfAttention = DictUtils.getDictCacheToMap(DictKeys.COMPREHENSIVE_LEVEL_OF_ATTENTION);
+            for (Map<String, Object> row : rows) {
+                row.put("enterpriseCategoryLabel",MapUtils.getString(comprehensiveBusinessCategory, MapUtils.getString(row,"enterpriseCategory")));
+                row.put("legalPersonIdCodeLabel",MapUtils.getString(comprehensiveCertificateCode, MapUtils.getString(row,"legalPersonIdCode")));
+                row.put("safetyHazardsTypeLabel",MapUtils.getString(comprehensiveSecurityRisks, MapUtils.getString(row,"safetyHazardsType")));
+                row.put("attentivenessLabel",MapUtils.getString(comprehensiveLevelOfAttention, MapUtils.getString(row,"attentiveness")));
+                row.put("conditionsEstablishmentLabel",MapUtils.getLong(row,"conditionsEstablishment")==0?"否":"是");
+                row.put("communistOrganizationLabel",MapUtils.getLong(row,"communistOrganization")==0?"否":"是");
+                row.put("tradeUnionLabel",MapUtils.getLong(row,"tradeUnion")==0?"否":"是");
+                row.put("communistYouthLeagueLabel",MapUtils.getLong(row,"communistYouthLeague")==0?"否":"是");
+                row.put("womenFederationLabel",MapUtils.getLong(row,"womenFederation")==0?"否":"是");
+                row.put("hazardousIndustryLabel",MapUtils.getLong(row,"hazardousIndustry")==0?"否":"是");
+            }
+            return AjaxResult.success(rows);
+        }else{
+            return AjaxResult.error(tableDataInfo.getCode(),tableDataInfo.getMsg());
+        }
+    }
+    /**
+     * 非公有制经济组织详情
+     * @param id
+     * @return
+     */
+    @GetMapping("/ComprehensiveNonPublicEconomicOrganizations/edit")
+    public AjaxResult getInfo(String id) {
+        AjaxResult ajaxResult = comprehensiveNonPublicEconomicOrganizationsService.edit(id);
+        if("200".equals(MapUtils.getString(ajaxResult,"code"))){
+            HashMap<String,Object> comprehensiveNonPublicEconomicOrganizations = (HashMap<String, Object>) ajaxResult.get("data");
+
+            comprehensiveNonPublicEconomicOrganizations.put("enterpriseCategoryLabel",DictUtils.getDictDataByValue(DictKeys.COMPREHENSIVE_BUSINESS_CATEGORY, MapUtils.getString(comprehensiveNonPublicEconomicOrganizations,"enterpriseCategory")));
+            comprehensiveNonPublicEconomicOrganizations.put("legalPersonIdCodeLabel",DictUtils.getDictDataByValue(DictKeys.COMPREHENSIVE_CERTIFICATE_CODE, MapUtils.getString(comprehensiveNonPublicEconomicOrganizations,"legalPersonIdCode")));
+            comprehensiveNonPublicEconomicOrganizations.put("safetyHazardsTypeLabel",DictUtils.getDictDataByValue(DictKeys.COMPREHENSIVE_SECURITY_RISKS, MapUtils.getString(comprehensiveNonPublicEconomicOrganizations,"safetyHazardsType")));
+            comprehensiveNonPublicEconomicOrganizations.put("attentivenessLabel",DictUtils.getDictDataByValue(DictKeys.COMPREHENSIVE_LEVEL_OF_ATTENTION, MapUtils.getString(comprehensiveNonPublicEconomicOrganizations,"attentiveness")));
+            comprehensiveNonPublicEconomicOrganizations.put("conditionsEstablishmentLabel",MapUtils.getLong(comprehensiveNonPublicEconomicOrganizations,"conditionsEstablishment")==0?"否":"是");
+            comprehensiveNonPublicEconomicOrganizations.put("communistOrganizationLabel",MapUtils.getLong(comprehensiveNonPublicEconomicOrganizations,"communistOrganization")==0?"否":"是");
+            comprehensiveNonPublicEconomicOrganizations.put("tradeUnionLabel",MapUtils.getLong(comprehensiveNonPublicEconomicOrganizations,"tradeUnion")==0?"否":"是");
+            comprehensiveNonPublicEconomicOrganizations.put("communistYouthLeagueLabel",MapUtils.getLong(comprehensiveNonPublicEconomicOrganizations,"communistYouthLeague")==0?"否":"是");
+            comprehensiveNonPublicEconomicOrganizations.put("womenFederationLabel",MapUtils.getLong(comprehensiveNonPublicEconomicOrganizations,"womenFederation")==0?"否":"是");
+            comprehensiveNonPublicEconomicOrganizations.put("hazardousIndustryLabel",MapUtils.getLong(comprehensiveNonPublicEconomicOrganizations,"hazardousIndustry")==0?"否":"是");
+
+            return AjaxResult.success(comprehensiveNonPublicEconomicOrganizations);
+        }else{
+            return AjaxResult.error(MapUtils.getString(ajaxResult,"code"), MapUtils.getString(ajaxResult,"msg"));
+        }
+
+    }
+    /**
+     * 非公有制经济组织新增
+     * @param json
+     * @return AjaxResult
+     */
+    @PostMapping("/ComprehensiveNonPublicEconomicOrganizations")
+    public AjaxResult add(@RequestBody String json) {
+        return comprehensiveNonPublicEconomicOrganizationsService.add(json);
+    }
+    /**
+     * 非公有制经济组织修改
+     * @param json
+     * @return AjaxResult
+     */
+    @PostMapping("/ComprehensiveNonPublicEconomicOrganizations/put")
+    public AjaxResult edit(@RequestBody String json) {
+        return comprehensiveNonPublicEconomicOrganizationsService.getInfo(json);
+    }
+    /**
+     * 非公有制经济组织删除
+     * @param id
+     * @return AjaxResult
+     */
+    @GetMapping("/ComprehensiveNonPublicEconomicOrganizations/del")
+    public AjaxResult remove(@RequestParam("id") List<String> id) {
+        return comprehensiveNonPublicEconomicOrganizationsService.remove(id.toArray(new String[0]));
+    }
+}

+ 116 - 0
src/main/java/com/sooka/sponest/mobile/comprehensive/nonPublicEconomicOrganizationsController/APPComprehensiveSocialOrganizationController.java

@@ -0,0 +1,116 @@
+package com.sooka.sponest.mobile.comprehensive.nonPublicEconomicOrganizationsController;
+
+import com.ruoyi.common.core.constant.HttpStatus;
+import com.ruoyi.common.core.domain.DictKeys;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.web.page.PageDomain;
+import com.ruoyi.common.core.web.page.TableDataInfo;
+import com.ruoyi.common.core.web.page.TableSupport;
+import com.ruoyi.common.security.utils.DictUtils;
+import com.sooka.sponest.comprehensive.api.comprehensiveOrganizationAndInstitution.domain.ComprehensiveSocialOrganization;
+import com.sooka.sponest.comprehensive.api.comprehensiveOrganizationAndInstitution.service.ComprehensiveSocialOrganizationService;
+import org.apache.commons.collections4.MapUtils;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author zhaozhan
+ * @date 2023/9/15
+ */
+@RestController
+@RequestMapping("/APPComprehensiveSocialOrganizationController")
+public class APPComprehensiveSocialOrganizationController {
+    @Resource
+    private ComprehensiveSocialOrganizationService comprehensiveSocialOrganizationService;
+    /**
+     * 社会组织列表
+     * @param comprehensiveSocialOrganization
+     * @return
+     */
+    @GetMapping("/ComprehensiveSocialOrganization/list")
+    public AjaxResult list(ComprehensiveSocialOrganization comprehensiveSocialOrganization) {
+        PageDomain pageDomain = TableSupport.buildPageRequest();
+        Integer pageNum = pageDomain.getPageNum();
+        Integer pageSize = pageDomain.getPageSize();
+        TableDataInfo tableDataInfo = comprehensiveSocialOrganizationService.list(pageNum, pageSize, comprehensiveSocialOrganization.getSocialOrganizationName(), comprehensiveSocialOrganization.getRegistrationNumbe(), comprehensiveSocialOrganization.getPrincipalIdNumber());
+        if(HttpStatus.SUCCESS == tableDataInfo.getCode()){
+            List<Map<String,Object>> rows = (List<Map<String, Object>>) tableDataInfo.getRows();
+
+            Map<String,Object> comprehensiveSocialOrganization1 = DictUtils.getDictCacheToMap(DictKeys.COMPREHENSIVE_SOCIAL_ORGANIZATION);
+            Map<String,Object> comprehensiveCertificateCode = DictUtils.getDictCacheToMap(DictKeys.COMPREHENSIVE_CERTIFICATE_CODE);
+            Map<String,Object> comprehensiveLevelOfAttention = DictUtils.getDictCacheToMap(DictKeys.COMPREHENSIVE_LEVEL_OF_ATTENTION);
+            for (Map<String, Object> row : rows) {
+
+                row.put("socialOrganizationTypeLabel",MapUtils.getString(comprehensiveSocialOrganization1 , MapUtils.getString(row,"socialOrganizationType")));
+                row.put("principalIdCodeLabel",MapUtils.getString(comprehensiveCertificateCode, MapUtils.getString(row,"principalIdCode")));
+                row.put("attentivenessLabel",MapUtils.getString(comprehensiveLevelOfAttention, MapUtils.getString(row,"attentiveness")));
+                row.put("conditionsEstablishmentLabel",MapUtils.getLong(row,"conditionsEstablishment")==0?"否":"是");
+                row.put("communistOrganizationLabel",MapUtils.getLong(row,"communistOrganization")==0?"否":"是");
+                row.put("tradeUnionLabel",MapUtils.getLong(row,"tradeUnion")==0?"否":"是");
+                row.put("communistYouthLeagueLabel",MapUtils.getLong(row,"communistYouthLeague")==0?"否":"是");
+                row.put("womenFederationLabel",MapUtils.getLong(row,"womenFederation")==0?"否":"是");
+                row.put("overseasBackgroundLabel",MapUtils.getLong(row,"overseasBackground")==0?"否":"是");
+                row.put("statusLabel",MapUtils.getLong(row,"status")==0?"不可用":"可用");
+            }
+            return AjaxResult.success(rows);
+        }else{
+            return AjaxResult.error(tableDataInfo.getCode(),tableDataInfo.getMsg());
+        }
+    }
+    /**
+     * 社会组织详情
+     * @param id
+     * @return AjaxResult
+     */
+    @GetMapping("/ComprehensiveSocialOrganization/edit")
+    public AjaxResult edit(String id) {
+        AjaxResult ajaxResult = comprehensiveSocialOrganizationService.edit(id);
+        if("200".equals(MapUtils.getString(ajaxResult,"code"))){
+            HashMap<String,Object> comprehensiveSocialOrganization = (HashMap<String, Object>) ajaxResult.get("data");
+            comprehensiveSocialOrganization.put("socialOrganizationTypeLabel",DictUtils.getDictDataByValue(DictKeys.COMPREHENSIVE_SOCIAL_ORGANIZATION, MapUtils.getString(comprehensiveSocialOrganization,"socialOrganizationType")));
+            comprehensiveSocialOrganization.put("principalIdCodeLabel",DictUtils.getDictDataByValue(DictKeys.COMPREHENSIVE_CERTIFICATE_CODE, MapUtils.getString(comprehensiveSocialOrganization,"principalIdCode")));
+            comprehensiveSocialOrganization.put("attentivenessLabel",DictUtils.getDictDataByValue(DictKeys.COMPREHENSIVE_LEVEL_OF_ATTENTION, MapUtils.getString(comprehensiveSocialOrganization,"attentiveness")));
+            comprehensiveSocialOrganization.put("conditionsEstablishmentLabel",MapUtils.getLong(comprehensiveSocialOrganization,"conditionsEstablishment")==0?"否":"是");
+            comprehensiveSocialOrganization.put("communistOrganizationLabel",MapUtils.getLong(comprehensiveSocialOrganization,"communistOrganization")==0?"否":"是");
+            comprehensiveSocialOrganization.put("tradeUnionLabel",MapUtils.getLong(comprehensiveSocialOrganization,"tradeUnion")==0?"否":"是");
+            comprehensiveSocialOrganization.put("communistYouthLeagueLabel",MapUtils.getLong(comprehensiveSocialOrganization,"communistYouthLeague")==0?"否":"是");
+            comprehensiveSocialOrganization.put("womenFederationLabel",MapUtils.getLong(comprehensiveSocialOrganization,"womenFederation")==0?"否":"是");
+            comprehensiveSocialOrganization.put("overseasBackgroundLabel",MapUtils.getLong(comprehensiveSocialOrganization,"overseasBackground")==0?"否":"是");
+            comprehensiveSocialOrganization.put("statusLabel",MapUtils.getLong(comprehensiveSocialOrganization,"status")==0?"不可用":"可用");
+            return AjaxResult.success(comprehensiveSocialOrganization);
+        }else{
+            return AjaxResult.error(MapUtils.getString(ajaxResult,"code"), MapUtils.getString(ajaxResult,"msg"));
+        }
+    }
+    /**
+     * 社会组织新增
+     * @param json
+     * @return AjaxResult
+     */
+    @PostMapping("/ComprehensiveSocialOrganization")
+    public AjaxResult add(@RequestBody String json) {
+        return comprehensiveSocialOrganizationService.add(json);
+    }
+    /**
+     * 社会组织修改
+     * @param json
+     * @return AjaxResult
+     */
+    @PostMapping("/ComprehensiveSocialOrganization/put")
+    public AjaxResult getInfo(@RequestBody String json) {
+        return comprehensiveSocialOrganizationService.getInfo(json);
+    }
+    /**
+     * 社会组织删除
+     * @param id
+     * @return AjaxResult
+     */
+    @GetMapping("/ComprehensiveSocialOrganization/del")
+    public AjaxResult remove(@RequestParam("id") List<String> id) {
+        return comprehensiveSocialOrganizationService.remove(id.toArray(new String[0]));
+    }
+}

+ 103 - 0
src/main/java/com/sooka/sponest/mobile/comprehensive/organizationAndInstitutionController/APPComprehensiveManagementCenterController.java

@@ -0,0 +1,103 @@
+package com.sooka.sponest.mobile.comprehensive.organizationAndInstitutionController;
+
+import com.ruoyi.common.core.constant.HttpStatus;
+import com.ruoyi.common.core.domain.DictKeys;
+import com.ruoyi.common.core.web.controller.BaseController;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.web.page.PageDomain;
+import com.ruoyi.common.core.web.page.TableDataInfo;
+import com.ruoyi.common.core.web.page.TableSupport;
+import com.ruoyi.common.security.utils.DictUtils;
+import com.sooka.sponest.comprehensive.api.comprehensiveOrganizationAndInstitution.domain.ComprehensiveManagementCenter;
+import com.sooka.sponest.comprehensive.api.comprehensiveOrganizationAndInstitution.service.ComprehensiveManagementCenterService;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author zhaozhan
+ * @date 2023/9/14
+ */
+@RestController
+@RequestMapping("/APPComprehensiveManagementCenterController")
+public class APPComprehensiveManagementCenterController extends BaseController {
+    @Resource
+    private ComprehensiveManagementCenterService comprehensiveManagementCenterService;
+
+    /**
+     * 综治中心列表
+     *
+     * @param comprehensiveManagementCenter
+     * @return
+     */
+    @GetMapping("/ComprehensiveManagementCenter/list")
+    public AjaxResult list(ComprehensiveManagementCenter comprehensiveManagementCenter) {
+        PageDomain pageDomain = TableSupport.buildPageRequest();
+        Integer pageNum = pageDomain.getPageNum();
+        Integer pageSize = pageDomain.getPageSize();
+        TableDataInfo tableDataInfo = comprehensiveManagementCenterService.list(pageNum, pageSize, comprehensiveManagementCenter.getCenterName(), comprehensiveManagementCenter.getPrincipalName(), comprehensiveManagementCenter.getLevel());
+        if(HttpStatus.SUCCESS == tableDataInfo.getCode()){
+            Map<String, Object> comprehensiveDictCacheToMap = DictUtils.getComprehensiveDictCacheToMap(DictKeys.COMPREHENSIVE_CITY_CODE);// 2260
+            Map<String, Object> levelsCacheToMap = DictUtils.getDictCacheToMap(DictKeys.COMPREHENSIVE_LEVELS);// levels
+            for (Object row : tableDataInfo.getRows()) {
+                HashMap r = (HashMap) row;
+                r.put("placeLabel", comprehensiveDictCacheToMap.get(r.get("place").toString()));//所在地 2260
+                r.put("levelLabel", levelsCacheToMap.get(r.get("level").toString()));//levels
+            }
+            return AjaxResult.success(tableDataInfo.getRows());
+        }else{
+            return AjaxResult.error(tableDataInfo.getCode(),tableDataInfo.getMsg());
+        }
+    }
+    /**
+     * 综治中心详情
+     *
+     * @param id
+     * @return
+     */
+    @GetMapping("/ComprehensiveManagementCenter/edit")
+    public AjaxResult edit(String id) {
+        AjaxResult info = comprehensiveManagementCenterService.edit(id);
+        if ("200".equals(info.get("code").toString())){
+            Map<String, Object> comprehensiveDictCacheToMap = DictUtils.getComprehensiveDictCacheToMap(DictKeys.COMPREHENSIVE_CITY_CODE);// 2260
+            Map<String, Object> levelsCacheToMap = DictUtils.getDictCacheToMap(DictKeys.COMPREHENSIVE_LEVELS);// levels
+            Map<String, Object> data = (Map<String, Object>) info.get("data");
+            data.put("placeLabel", comprehensiveDictCacheToMap.get(data.get("place").toString()));//所在地 2260
+            data.put("levelLabel", levelsCacheToMap.get(data.get("level").toString()));//levels
+        }
+        return info;
+    }
+
+    /**
+     * 综治中心新增
+     *
+     * @param json
+     * @return AjaxResult
+     */
+    @PostMapping("/ComprehensiveManagementCenter")
+    public AjaxResult add(@RequestBody String json) {
+        return comprehensiveManagementCenterService.add(json);
+    }
+    /**
+     * 综治中心修改
+     *
+     * @param json
+     * @return AjaxResult
+     */
+    @PostMapping("/ComprehensiveManagementCenter/put")
+    public AjaxResult getInfo(@RequestBody String json) {
+        return comprehensiveManagementCenterService.getInfo(json);
+    }
+    /**
+     * 综治中心删除
+     * @param id
+     * @return AjaxResult
+     */
+    @GetMapping("/ComprehensiveManagementCenter/del")
+    public AjaxResult remove(@RequestParam("id") List<String> id) {
+        return comprehensiveManagementCenterService.remove(id.toArray(new String[0]));
+    }
+}

+ 89 - 0
src/main/java/com/sooka/sponest/mobile/comprehensive/organizationAndInstitutionController/APPComprehensiveTGrossCaseController.java

@@ -0,0 +1,89 @@
+package com.sooka.sponest.mobile.comprehensive.organizationAndInstitutionController;
+
+import com.ruoyi.common.core.constant.HttpStatus;
+import com.ruoyi.common.core.domain.DictKeys;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.web.page.PageDomain;
+import com.ruoyi.common.core.web.page.TableDataInfo;
+import com.ruoyi.common.core.web.page.TableSupport;
+import com.ruoyi.common.security.utils.DictUtils;
+import com.sooka.sponest.comprehensive.api.comprehensiveOrganizationAndInstitution.domain.ComprehensiveTGrossCase;
+import com.sooka.sponest.comprehensive.api.comprehensiveOrganizationAndInstitution.service.ComprehensiveTGrossCaseService;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author zhaozhan
+ * @date 2023/9/18
+ */
+@RestController
+@RequestMapping("/APPComprehensiveTGrossCaseController")
+public class APPComprehensiveTGrossCaseController {
+    @Resource
+    private ComprehensiveTGrossCaseService comprehensiveTGrossCaseService;
+
+    /**
+     * 查询重特大案(事)件列表
+     */
+    @GetMapping("/grossCase/list")
+    public AjaxResult list(ComprehensiveTGrossCase comprehensiveTGrossCase) {
+        PageDomain pageDomain = TableSupport.buildPageRequest();
+        Integer pageNum = pageDomain.getPageNum();
+        Integer pageSize = pageDomain.getPageSize();
+        TableDataInfo tableDataInfo = comprehensiveTGrossCaseService.list(pageNum, pageSize, comprehensiveTGrossCase.getEventName());
+        if(HttpStatus.SUCCESS == tableDataInfo.getCode()){
+            Map<String, Object> cacheGrading = DictUtils.getDictCacheToMap(DictKeys.COMPREHENSIVE_CASES_GRADING);// 案(事)件分级
+            Map<String, Object> cacheType = DictUtils.getDictCacheToMap(DictKeys.COMPREHENSIVE_CASES_TYPE);// 案(事)件类型
+            for (Object row : tableDataInfo.getRows()) {
+                HashMap r = (HashMap) row;
+                r.put("eventLevelLabel", cacheGrading.get(r.get("eventLevel").toString()));
+                r.put("eventTypeLabel", cacheType.get(r.get("eventType").toString()));
+            }
+            return AjaxResult.success(tableDataInfo.getRows());
+        }else{
+            return AjaxResult.error(tableDataInfo.getCode(),tableDataInfo.getMsg());
+        }
+    }
+    /**
+     * 获取重特大案(事)件详细信息
+     */
+    @GetMapping(value = "/grossCase/edit")
+    public AjaxResult getInfo(String id) {
+        AjaxResult info = comprehensiveTGrossCaseService.getInfo(id);
+        if ("200".equals(info.get("code").toString())){
+            Map<String, Object> cacheGrading = DictUtils.getDictCacheToMap(DictKeys.COMPREHENSIVE_CASES_GRADING);// 案(事)件分级
+            Map<String, Object> cacheType = DictUtils.getDictCacheToMap(DictKeys.COMPREHENSIVE_CASES_TYPE);// 案(事)件类型
+            Map<String, Object> data = (Map<String, Object>) info.get("data");
+            data.put("eventLevelLabel", cacheGrading.get(data.get("eventLevel").toString()));
+            data.put("eventTypeLabel", cacheType.get(data.get("eventType").toString()));
+            return AjaxResult.success(data);
+        }else{
+            return AjaxResult.error(info.get("code").toString(),info.get("msg"));
+        }
+    }
+    /**
+     * 新增重特大案(事)件
+     */
+    @PostMapping("/grossCase")
+    public AjaxResult add(@RequestBody String json) {
+        return comprehensiveTGrossCaseService.add(json);
+    }
+    /**
+     * 修改重特大案(事)件
+     */
+    @PostMapping("/grossCase/put")
+    public AjaxResult edit(@RequestBody String json) {
+        return comprehensiveTGrossCaseService.edit(json);
+    }
+    /**
+     * 删除重特大案(事)件
+     */
+    @GetMapping("/grossCase/del")
+    public AjaxResult remove(@RequestParam("id") List<String> id) {
+        return comprehensiveTGrossCaseService.remove(id.toArray(new String[0]));
+    }
+}

+ 95 - 0
src/main/java/com/sooka/sponest/mobile/comprehensive/organizationAndInstitutionController/APPComprehensiveTPreventionOrganizationController.java

@@ -0,0 +1,95 @@
+package com.sooka.sponest.mobile.comprehensive.organizationAndInstitutionController;
+
+import com.ruoyi.common.core.constant.HttpStatus;
+import com.ruoyi.common.core.domain.DictKeys;
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.web.page.PageDomain;
+import com.ruoyi.common.core.web.page.TableDataInfo;
+import com.ruoyi.common.core.web.page.TableSupport;
+import com.ruoyi.common.security.utils.DictUtils;
+import com.sooka.sponest.comprehensive.api.comprehensiveOrganizationAndInstitution.domain.ComprehensiveHousingEstate;
+import com.sooka.sponest.comprehensive.api.comprehensiveOrganizationAndInstitution.domain.ComprehensiveTPreventionOrganization;
+import com.sooka.sponest.comprehensive.api.comprehensiveOrganizationAndInstitution.service.ComprehensiveTPreventionOrganizationService;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author zhaozhan
+ * @date 2023/9/18
+ */
+@RestController
+@RequestMapping("/APPComprehensiveTPreventionOrganizationController")
+public class APPComprehensiveTPreventionOrganizationController {
+
+    @Resource
+    private ComprehensiveTPreventionOrganizationService comprehensiveTPreventionOrganizationService;
+    /**
+     * 查询群防群治组织列表
+     */
+    @GetMapping("/preventionOrganization/list")
+    public AjaxResult list(ComprehensiveTPreventionOrganization comprehensiveTPreventionOrganization) {
+        PageDomain pageDomain = TableSupport.buildPageRequest();
+        Integer pageNum = pageDomain.getPageNum();
+        Integer pageSize = pageDomain.getPageSize();
+        TableDataInfo tableDataInfo = comprehensiveTPreventionOrganizationService.list(pageNum, pageSize, comprehensiveTPreventionOrganization.getOrganizationName(), comprehensiveTPreventionOrganization.getOrganizationType(), comprehensiveTPreventionOrganization.getLevel(), comprehensiveTPreventionOrganization.getGuidanceDepartment(), comprehensiveTPreventionOrganization.getPersonnel(), comprehensiveTPreventionOrganization.getFunctions());
+        List<HashMap<String, Object>> rows = (List<HashMap<String, Object>>) tableDataInfo.getRows();
+        if(HttpStatus.SUCCESS == tableDataInfo.getCode()){
+            Map<String, Object> comprehensiveOrganizationTypeLabel = DictUtils.getDictCacheToMap(DictKeys.COMPREHENSIVE_ORGANIZATION_TYPE);
+            Map<String, Object> comprehensiveLevelLabel = DictUtils.getDictCacheToMap(DictKeys.COMPREHENSIVE_LEVELS);
+            for (HashMap<String, Object> row:
+                 rows) {
+                row.put("organizationTypeLabel",comprehensiveOrganizationTypeLabel.get(row.get("organizationType").toString()));
+                row.put("levelLabel",comprehensiveLevelLabel.get(row.get("level").toString()));
+            }
+            return AjaxResult.success(tableDataInfo.getRows());
+        }else{
+            return AjaxResult.error(tableDataInfo.getCode(),tableDataInfo.getMsg());
+        }
+    }
+    @GetMapping("/preventionOrganization/getComprehensiveTPreventionOrganization")
+    public AjaxResult getComprehensiveTPreventionOrganization() {
+        return AjaxResult.success(comprehensiveTPreventionOrganizationService.getComprehensiveTPreventionOrganization());
+    }
+    /**
+     * 获取群防群治组织详细信息
+     */
+    @GetMapping(value = "/preventionOrganization/edit")
+    public AjaxResult getInfo(String id) {
+        R<ComprehensiveTPreventionOrganization> edit =comprehensiveTPreventionOrganizationService.getInfo(id);
+        ComprehensiveTPreventionOrganization data = edit.getData();
+        if (HttpStatus.SUCCESS == edit.getCode()){
+            data.setIsEdit(true);
+        }else if (HttpStatus.ERROR == edit.getCode() && null != edit.getData()) {
+            data.setIsEdit(false);
+        }else {
+            return AjaxResult.error(edit.getCode(), edit.getMsg());
+        }
+        return AjaxResult.success(data);
+    }
+    /**
+     * 新增群防群治组织
+     */
+    @PostMapping("/preventionOrganization")
+    public AjaxResult add(@RequestBody String json) {
+        return comprehensiveTPreventionOrganizationService.add(json);
+    }
+    /**
+     * 修改群防群治组织
+     */
+    @PostMapping("/preventionOrganization/put")
+    public AjaxResult edit(@RequestBody String json) {
+        return comprehensiveTPreventionOrganizationService.edit(json);
+    }
+    /**
+     * 删除群防群治组织
+     */
+    @GetMapping("/preventionOrganization/del")
+    public AjaxResult remove(@RequestParam("id") List<String> id) {
+       return comprehensiveTPreventionOrganizationService.remove(id.toArray(new String[0]));
+    }
+}

+ 98 - 0
src/main/java/com/sooka/sponest/mobile/comprehensive/organizationAndInstitutionController/APPComprehensiveTPreventionTeam.java

@@ -0,0 +1,98 @@
+package com.sooka.sponest.mobile.comprehensive.organizationAndInstitutionController;
+
+import com.ruoyi.common.core.constant.HttpStatus;
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.web.page.PageDomain;
+import com.ruoyi.common.core.web.page.TableDataInfo;
+import com.ruoyi.common.core.web.page.TableSupport;
+import com.ruoyi.common.security.utils.DictUtils;
+import com.sooka.sponest.comprehensive.api.comprehensiveOrganizationAndInstitution.domain.ComprehensiveTPreventionTeam;
+import com.sooka.sponest.comprehensive.api.comprehensiveOrganizationAndInstitution.service.ComprehensiveTPreventionTeamService;
+import com.ruoyi.common.core.domain.DictKeys;
+import org.springframework.web.bind.annotation.*;
+import javax.annotation.Resource;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author zhaozhan
+ * @date 2023/9/18
+ */
+@RestController
+@RequestMapping("/APPComprehensiveTPreventionTeam")
+public class APPComprehensiveTPreventionTeam {
+    @Resource
+    private ComprehensiveTPreventionTeamService comprehensiveTPreventionTeamService;
+    /**
+     * 查询群防群治队伍列表
+     */
+    @GetMapping("/preventionTeam/list")
+    public AjaxResult list(ComprehensiveTPreventionTeam comprehensiveTPreventionTeam) {
+        PageDomain pageDomain = TableSupport.buildPageRequest();
+        Integer pageNum = pageDomain.getPageNum();
+        Integer pageSize = pageDomain.getPageSize();
+        TableDataInfo tableDataInfo = comprehensiveTPreventionTeamService.list(pageNum, pageSize, comprehensiveTPreventionTeam.getName());
+        List<HashMap<String, Object>> rows = (List<HashMap<String, Object>>) tableDataInfo.getRows();
+        if(HttpStatus.SUCCESS == tableDataInfo.getCode()){
+            Map<String, Object> comprehensiveGenderLabel = DictUtils.getDictCacheToMap(DictKeys.COMPREHENSIVE_SEX);
+            Map<String, Object> comprehensiveNationLabel = DictUtils.getDictCacheToMap(DictKeys.COMPREHENSIVE_NATION);
+            Map<String, Object> comprehensivePoliticalOutlookLabel = DictUtils.getDictCacheToMap(DictKeys.COMPREHENSIVE_POLITICAL_STATUS);
+            Map<String, Object> comprehensiveCodeLabel = DictUtils.getDictCacheToMap(DictKeys.COMPREHENSIVE_CERTIFICATE_CODE);
+            Map<String, Object> comprehensiveEducationLabel = DictUtils.getDictCacheToMap(DictKeys.COMPREHENSIVE_EDUCATIONAL_BACKGROUND);
+            for (HashMap<String ,Object> row:rows) {
+                row.put("genderLabel",comprehensiveGenderLabel.get(row.get("gender").toString()));
+                row.put("nationLabel",comprehensiveNationLabel.get(row.get("nation").toString()));
+                row.put("politicalOutlookLabel",comprehensivePoliticalOutlookLabel.get(row.get("politicalOutlook").toString()));
+                row.put("educationLabel",comprehensiveEducationLabel.get(row.get("education").toString()));
+                row.put("codeLabel",comprehensiveCodeLabel.get(row.get("code").toString()));
+            }
+            return AjaxResult.success(tableDataInfo.getRows());
+        }else{
+            return AjaxResult.error(tableDataInfo.getCode(),tableDataInfo.getMsg());
+        }
+    }
+    /**
+     * 获取群防群治队伍详细信息
+     */
+    @GetMapping(value = "/preventionTeam/edit")
+    public AjaxResult getInfo(String id) {
+        R<ComprehensiveTPreventionTeam> edit = comprehensiveTPreventionTeamService.getInfo(id);
+        if(HttpStatus.SUCCESS == edit.getCode()){
+            ComprehensiveTPreventionTeam comprehensiveTPreventionTeam = edit.getData();
+            comprehensiveTPreventionTeam.setSpecialityLabel(String.join(",",DictUtils.getDictDataListByValue(DictKeys.COMPREHENSIVE_PROFESSIONAL_EXPERTISE,comprehensiveTPreventionTeam.getSpeciality())));
+            comprehensiveTPreventionTeam.setGenderLabel(DictUtils.getDictDataByValue(DictKeys.COMPREHENSIVE_SEX, comprehensiveTPreventionTeam.getGender()));
+            comprehensiveTPreventionTeam.setNationLabel(DictUtils.getDictDataByValue(DictKeys.COMPREHENSIVE_NATION, comprehensiveTPreventionTeam.getNation()));
+            comprehensiveTPreventionTeam.setPoliticalOutlookLabel(DictUtils.getDictDataByValue(DictKeys.COMPREHENSIVE_POLITICAL_STATUS, comprehensiveTPreventionTeam.getPoliticalOutlook()));
+            comprehensiveTPreventionTeam.setCodeLabel(DictUtils.getDictDataByValue(DictKeys.COMPREHENSIVE_CERTIFICATE_CODE, comprehensiveTPreventionTeam.getCode()));
+            comprehensiveTPreventionTeam.setEducationLabel(DictUtils.getDictDataByValue(DictKeys.COMPREHENSIVE_EDUCATIONAL_BACKGROUND, comprehensiveTPreventionTeam.getEducation()));
+
+            return AjaxResult.success(comprehensiveTPreventionTeam);
+        }else{
+            return AjaxResult.error(edit.getCode(), edit.getMsg());
+        }
+
+    }
+    /**
+     * 新增群防群治队伍
+     */
+    @PostMapping("/preventionTeam")
+    public AjaxResult add(@RequestBody String json) {
+        return comprehensiveTPreventionTeamService.add(json);
+    }
+    /**
+     * 修改群防群治队伍
+     */
+    @PostMapping("/preventionTeam/put")
+    public AjaxResult edit(@RequestBody String json) {
+        return comprehensiveTPreventionTeamService.edit(json);
+    }
+    /**
+     * 删除群防群治队伍
+     */
+    @GetMapping("/preventionTeam/del")
+    public AjaxResult remove(@RequestParam("id") List<String> id) {
+        return comprehensiveTPreventionTeamService.remove(id.toArray(new String[0]));
+    }
+}

+ 94 - 0
src/main/java/com/sooka/sponest/mobile/comprehensive/organizationAndInstitutionController/AppBuildingController.java

@@ -0,0 +1,94 @@
+package com.sooka.sponest.mobile.comprehensive.organizationAndInstitutionController;
+
+import com.ruoyi.common.core.constant.HttpStatus;
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.web.controller.BaseController;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.web.page.PageDomain;
+import com.ruoyi.common.core.web.page.TableDataInfo;
+import com.ruoyi.common.core.web.page.TableSupport;
+import com.sooka.sponest.comprehensive.api.comprehensiveOrganizationAndInstitution.domain.ComprehensiveBuilding;
+import com.sooka.sponest.comprehensive.api.comprehensiveOrganizationAndInstitution.service.RemoteBuildingService;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+/**
+ * 楼栋管理
+ *
+ * @author lidongyu
+ * @date 2023/9/14 10:16
+ */
+@RestController
+@RequestMapping("/AppBuildingController")
+public class AppBuildingController extends BaseController {
+
+    @Resource
+    RemoteBuildingService remoteBuildingService;
+
+    /**
+     * 查询楼栋管理列表
+     */
+    @GetMapping("/comprehensivebuilding/list")
+    public AjaxResult list(ComprehensiveBuilding comprehensivebuilding) {
+        PageDomain pageDomain = TableSupport.buildPageRequest();
+        Integer pageNum = pageDomain.getPageNum();
+        Integer pageSize = pageDomain.getPageSize();
+        TableDataInfo tableDataInfo = remoteBuildingService.selectComprehensiveBuildingList(pageNum, pageSize,comprehensivebuilding.getBuildName(),comprehensivebuilding.getEstateId());
+        if(HttpStatus.SUCCESS == tableDataInfo.getCode()){
+            return AjaxResult.success(tableDataInfo.getRows());
+        }else{
+            return AjaxResult.error(tableDataInfo.getCode(),tableDataInfo.getMsg());
+        }
+    }
+
+    /**
+     * 获取楼栋管理详细信息
+     */
+    @GetMapping("/comprehensivebuilding/edit")
+    public AjaxResult getInfo(String id) {
+        R<ComprehensiveBuilding> edit = remoteBuildingService.selectComprehensiveBuildingById(id);
+        ComprehensiveBuilding data = edit.getData();
+        if (HttpStatus.SUCCESS == edit.getCode()){
+            data.setIsEdit(true);
+        }else if (HttpStatus.ERROR == edit.getCode() && null != edit.getData()) {
+            data.setIsEdit(false);
+        }else {
+            return AjaxResult.error(edit.getCode(), edit.getMsg());
+        }
+        return AjaxResult.success(data);
+    }
+
+    /**
+     * 新增楼栋管理
+     */
+    @PostMapping("/comprehensivebuilding")
+    public AjaxResult add(@RequestBody String json) {
+        return remoteBuildingService.insertComprehensiveBuilding(json);
+    }
+    /**
+     * 修改楼栋管理
+     */
+    @PostMapping("/comprehensivebuilding/put")
+    public AjaxResult edit(@RequestBody String json) {
+        return remoteBuildingService.updateComprehensiveBuilding(json);
+    }
+
+    /**
+     * 删除楼栋管理
+     */
+    @GetMapping("/comprehensivebuilding/del")
+    public AjaxResult remove(@RequestParam("id") List<String> id) {
+        return remoteBuildingService.deleteComprehensiveBuildingByIds(id.toArray(new String[0]));
+    }
+
+    /**
+     * 楼栋下拉选
+     */
+    @GetMapping("/comprehensivebuilding/getbuilding")
+    public AjaxResult getbuilding(@RequestParam("estateId") String estateId) {
+        return remoteBuildingService.getbuilding(estateId);
+    }
+
+}

+ 127 - 0
src/main/java/com/sooka/sponest/mobile/comprehensive/organizationAndInstitutionController/AppBuildingLeaderController.java

@@ -0,0 +1,127 @@
+package com.sooka.sponest.mobile.comprehensive.organizationAndInstitutionController;
+
+import com.ruoyi.common.core.constant.HttpStatus;
+import com.ruoyi.common.core.domain.DictKeys;
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.web.controller.BaseController;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.web.page.PageDomain;
+import com.ruoyi.common.core.web.page.TableDataInfo;
+import com.ruoyi.common.core.web.page.TableSupport;
+import com.ruoyi.common.security.utils.DictUtils;
+import com.sooka.sponest.comprehensive.api.comprehensiveOrganizationAndInstitution.domain.ComprehensiveBuildingLeader;
+import com.sooka.sponest.comprehensive.api.comprehensiveOrganizationAndInstitution.service.RemoteBuildingLeaderService;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import static com.ruoyi.common.security.utils.DictUtils.getComprehensiveDictCacheToMap;
+
+/**
+ * 楼栋长管理
+ *
+ * @author lidongyu
+ * @date 2023/9/14 10:16
+ */
+@RestController
+@RequestMapping("/AppBuildingLeaderController")
+public class AppBuildingLeaderController extends BaseController {
+
+    @Resource
+    RemoteBuildingLeaderService remoteBuildingLeaderService;
+
+    /**
+     * 查询楼栋长管理列表
+     */
+    @GetMapping("/comprehensivebuildingleader/list")
+    public AjaxResult list(ComprehensiveBuildingLeader comprehensivebuildingleader) {
+        PageDomain pageDomain = TableSupport.buildPageRequest();
+        Integer pageNum = pageDomain.getPageNum();
+        Integer pageSize = pageDomain.getPageSize();
+        TableDataInfo tableDataInfo = remoteBuildingLeaderService.selectComprehensiveBuildingLeaderList(pageNum, pageSize,comprehensivebuildingleader.getUserName());
+        List<HashMap<String, Object>> rows = (List<HashMap<String, Object>>) tableDataInfo.getRows();
+        if(HttpStatus.SUCCESS == tableDataInfo.getCode()){
+            Map<String, Object> maps = DictUtils.getDictCacheToMap(DictKeys.COMPREHENSIVE_POLITICAL_STATUS);
+            Map<String, Object> maps1 = DictUtils.getDictCacheToMap(DictKeys.COMPREHENSIVE_NATION);
+            Map<String, Object> maps2 = DictUtils.getDictCacheToMap(DictKeys.COMPREHENSIVE_SEX);
+            Map<String, Object> maps3 = DictUtils.getDictCacheToMap(DictKeys.COMPREHENSIVE_EDUCATIONAL_BACKGROUND);
+            if (!rows.isEmpty()) {
+                for (HashMap<String, Object> row : rows) {
+                    row.put("politicalOutlookLabel", maps.get(row.get("politicalOutlook")));
+                    row.put("nationLabel", maps1.get(row.get("nation")));
+                    row.put("genderLabel", maps2.get(row.get("gender")));
+                    row.put("educationLabel", maps3.get(row.get("education")));
+                }
+            }
+            return AjaxResult.success(tableDataInfo.getRows());
+        }else{
+            return AjaxResult.error(tableDataInfo.getCode(),tableDataInfo.getMsg());
+        }
+    }
+
+    @GetMapping("/comprehensivebuildingleader/listAll")
+    public AjaxResult listAll(ComprehensiveBuildingLeader comprehensivebuildingleader) {
+        AjaxResult allUserInfo = remoteBuildingLeaderService.listAll();
+        if ("200".equals(allUserInfo.get("code").toString())){
+            Map<String, Object> maps = DictUtils.getDictCacheToMap(DictKeys.COMPREHENSIVE_POLITICAL_STATUS);
+            Map<String, Object> maps1 = DictUtils.getDictCacheToMap(DictKeys.COMPREHENSIVE_NATION);
+            Map<String, Object> maps2 = DictUtils.getDictCacheToMap(DictKeys.COMPREHENSIVE_SEX);
+            Map<String, Object> maps3 = DictUtils.getDictCacheToMap(DictKeys.COMPREHENSIVE_EDUCATIONAL_BACKGROUND);
+            List<Map<String, Object>> data = (List<Map<String, Object>>) allUserInfo.get("data");
+            for (Map<String, Object> map : data) {
+                map.put("politicalOutlookLabel", maps.get(map.get("politicalOutlook")));
+                map.put("nationLabel", maps1.get(map.get("nation")));
+                map.put("genderLabel", maps2.get(map.get("gender")));
+                map.put("educationLabel", maps3.get(map.get("education")));
+            }
+        }
+     return allUserInfo;
+    }
+
+    /**
+     * 获取楼栋长管理详细信息
+     */
+    @GetMapping("/comprehensivebuildingleader/edit")
+    public AjaxResult getInfo(String id) {
+        R<ComprehensiveBuildingLeader> edit = remoteBuildingLeaderService.selectComprehensiveBuildingLeaderById(id);
+        ComprehensiveBuildingLeader data = edit.getData();
+        if (HttpStatus.SUCCESS == edit.getCode()){
+            data.setPoliticalOutlookLabel(DictUtils.getDictDataByValue(DictKeys.COMPREHENSIVE_POLITICAL_STATUS,data.getPoliticalOutlook()));
+            data.setNationLabel(DictUtils.getDictDataByValue(DictKeys.COMPREHENSIVE_NATION,data.getNation()));
+            data.setGenderLabel(DictUtils.getDictDataByValue(DictKeys.COMPREHENSIVE_SEX,data.getGender()));
+            data.setIsEdit(true);
+        }else if (HttpStatus.ERROR == edit.getCode() && null != edit.getData()) {
+            data.setIsEdit(false);
+        }else {
+            return AjaxResult.error(edit.getCode(), edit.getMsg());
+        }
+        return AjaxResult.success(data);
+    }
+
+    /**
+     * 新增楼栋长管理
+     */
+    @PostMapping("/comprehensivebuildingleader")
+    public AjaxResult add(@RequestBody String json) {
+        return remoteBuildingLeaderService.insertComprehensiveBuildingLeader(json);
+    }
+    /**
+     * 修改楼栋长管理
+     */
+    @PostMapping("/comprehensivebuildingleader/put")
+    public AjaxResult edit(@RequestBody String json) {
+        return remoteBuildingLeaderService.updateComprehensiveBuildingLeader(json);
+    }
+
+    /**
+     * 删除楼栋长管理
+     */
+    @GetMapping("/comprehensivebuildingleader/del")
+    public AjaxResult remove(@RequestParam("id") List<String> id) {
+        return remoteBuildingLeaderService.deleteComprehensiveBuildingLeaderByIds(id.toArray(new String[0]));
+    }
+
+}

+ 99 - 0
src/main/java/com/sooka/sponest/mobile/comprehensive/organizationAndInstitutionController/AppHousingEstateController.java

@@ -0,0 +1,99 @@
+package com.sooka.sponest.mobile.comprehensive.organizationAndInstitutionController;
+
+import com.ruoyi.common.core.constant.HttpStatus;
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.web.controller.BaseController;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.web.page.PageDomain;
+import com.ruoyi.common.core.web.page.TableDataInfo;
+import com.ruoyi.common.core.web.page.TableSupport;
+import com.sooka.sponest.comprehensive.api.comprehensiveOrganizationAndInstitution.domain.ComprehensiveHousingEstate;
+import com.sooka.sponest.comprehensive.api.comprehensiveOrganizationAndInstitution.service.RemoteHousingEstateService;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+/**
+ * 小区管理
+ *
+ * @author lidongyu
+ * @date 2023/9/14 10:16
+ */
+@RestController
+@RequestMapping("/AppHousingEstateController")
+public class AppHousingEstateController extends BaseController {
+
+    @Resource
+    RemoteHousingEstateService remoteHousingEstateService;
+
+    /**
+     * 查询小区管理列表
+     */
+    @GetMapping("/comprehensivehousingestate/list")
+    public AjaxResult list(ComprehensiveHousingEstate comprehensivehousingestate) {
+        PageDomain pageDomain = TableSupport.buildPageRequest();
+        Integer pageNum = pageDomain.getPageNum();
+        Integer pageSize = pageDomain.getPageSize();
+        TableDataInfo tableDataInfo = remoteHousingEstateService.selectComprehensiveHousingEstaterList(pageNum, pageSize,comprehensivehousingestate.getEstateName());
+        if(HttpStatus.SUCCESS == tableDataInfo.getCode()){
+            return AjaxResult.success(tableDataInfo.getRows());
+        }else{
+            return AjaxResult.error(tableDataInfo.getCode(),tableDataInfo.getMsg());
+        }
+    }
+
+    /**
+     * 获取小区管理详细信息
+     */
+    @GetMapping("/comprehensivehousingestate/edit")
+    public AjaxResult getInfo(String id) {
+        R<ComprehensiveHousingEstate> edit = remoteHousingEstateService.selectComprehensiveHousingEstaterById(id);
+        ComprehensiveHousingEstate data = edit.getData();
+        if (HttpStatus.SUCCESS == edit.getCode()){
+            data.setIsEdit(true);
+        }else if (HttpStatus.ERROR == edit.getCode() && null != edit.getData()) {
+            data.setIsEdit(false);
+        }else {
+            return AjaxResult.error(edit.getCode(), edit.getMsg());
+        }
+        return AjaxResult.success(data);
+    }
+
+    /**
+     * 新增小区管理
+     */
+    @PostMapping("/comprehensivehousingestate")
+    public AjaxResult add(@RequestBody String json) {
+        return remoteHousingEstateService.insertComprehensiveHousingEstater(json);
+    }
+    /**
+     * 修改小区管理
+     */
+    @PostMapping("/comprehensivehousingestate/put")
+    public AjaxResult edit(@RequestBody String json) {
+        return remoteHousingEstateService.updateComprehensiveHousingEstater(json);
+    }
+
+    /**
+     * 删除小区管理
+     */
+    @GetMapping("/comprehensivehousingestate/del")
+    public AjaxResult remove(@RequestParam("id") List<String> id) {
+        return remoteHousingEstateService.deleteComprehensiveHousingEstaterByIds(id.toArray(new String[0]));
+    }
+
+    /**
+     * 小区下拉选小区管理
+     */
+    @GetMapping("/comprehensivehousingestate/getHousingEstate")
+    public AjaxResult getHousingEstate(ComprehensiveHousingEstate housingEstate) {
+        return remoteHousingEstateService.getHousingEstate(housingEstate.getEstateName());
+    }
+
+
+    @GetMapping("/comprehensivehousingestate/getDeptInfo")
+    public AjaxResult getDeptInfo(){
+        return remoteHousingEstateService.getDeptInfo();
+    }
+}

+ 109 - 0
src/main/java/com/sooka/sponest/mobile/comprehensive/organizationAndInstitutionController/AppInstitutionsController.java

@@ -0,0 +1,109 @@
+package com.sooka.sponest.mobile.comprehensive.organizationAndInstitutionController;
+
+import com.ruoyi.common.core.constant.HttpStatus;
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.web.controller.BaseController;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.web.page.PageDomain;
+import com.ruoyi.common.core.web.page.TableDataInfo;
+import com.ruoyi.common.core.web.page.TableSupport;
+import com.ruoyi.common.security.utils.DictUtils;
+import com.sooka.sponest.comprehensive.api.comprehensiveOrganizationAndInstitution.domain.ComprehensiveInstitutions;
+import com.sooka.sponest.comprehensive.api.comprehensiveOrganizationAndInstitution.service.RemoteInstitutionsService;
+import com.ruoyi.common.core.domain.DictKeys;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 综治机构
+ *
+ * @author hanfucheng
+ * @date 2023/9/13 15:37
+ */
+@RestController
+@RequestMapping("/AppInstitutionsController")
+public class AppInstitutionsController extends BaseController {
+
+    @Resource
+    RemoteInstitutionsService remoteInstitutionsService;
+
+    /**
+     * 查询综治机构列表
+     */
+    @GetMapping("/comprehensiveInstitutionsf/list")
+    public AjaxResult list(ComprehensiveInstitutions comprehensiveInstitutions) {
+        PageDomain pageDomain = TableSupport.buildPageRequest();
+        Integer pageNum = pageDomain.getPageNum();
+        Integer pageSize = pageDomain.getPageSize();
+        TableDataInfo tableDataInfo = remoteInstitutionsService.selectComprehensiveInstitutionsList(pageNum, pageSize, comprehensiveInstitutions.getInstitutionName(), comprehensiveInstitutions.getInstitutionType(), comprehensiveInstitutions.getLevel());
+        Map<String, Object> comprehensiveInstitutionsType = DictUtils.getDictCacheToMap(DictKeys.COMPREHENSIVE_INSTITUTIONS_TYPE);
+        Map<String, Object> comprehensiveLevels = DictUtils.getDictCacheToMap(DictKeys.COMPREHENSIVE_LEVELS);
+        List<HashMap<String, Object>> rows = (List<HashMap<String, Object>>) tableDataInfo.getRows();
+        if (HttpStatus.SUCCESS == tableDataInfo.getCode()) {
+            if (!rows.isEmpty()) {
+                for (HashMap<String, Object> row : rows) {
+                    row.put("institutionTypeLabel", comprehensiveInstitutionsType.get(row.get("institutionType")));
+                    row.put("levelLabel", comprehensiveLevels.get(row.get("level")));
+                }
+            }
+            return AjaxResult.success(tableDataInfo.getRows());
+        } else {
+            return AjaxResult.error(tableDataInfo.getCode(), tableDataInfo.getMsg());
+        }
+    }
+
+    @GetMapping("/comprehensiveInstitutionsf/comprehensiveInstitutionsfList")
+    public AjaxResult selectComprehensiveInstitutionsf(ComprehensiveInstitutions comprehensiveInstitutions) {
+        List<ComprehensiveInstitutions> comprehensiveInstitutionsList = remoteInstitutionsService.comprehensiveInstitutionsfList();
+        return AjaxResult.success(comprehensiveInstitutionsList);
+    }
+
+
+    /**
+     * 获取综治机构详细信息
+     */
+    @GetMapping("/comprehensiveInstitutionsf/edit")
+    public AjaxResult getInfo(String id) {
+        R<ComprehensiveInstitutions> comprehensiveInstitutionsR = remoteInstitutionsService.selectComprehensiveInstitutionsById(id);
+        ComprehensiveInstitutions data = comprehensiveInstitutionsR.getData();
+        data.setInstitutionTypeLabel(DictUtils.getDictDataByValue(DictKeys.COMPREHENSIVE_INSTITUTIONS_TYPE, data.getInstitutionType()));
+        data.setLevelLabel(DictUtils.getDictDataByValue(DictKeys.COMPREHENSIVE_LEVELS, data.getLevel()));
+        if (HttpStatus.SUCCESS == comprehensiveInstitutionsR.getCode()) {
+            data.setIsEdit(true);
+        } else if (HttpStatus.ERROR == comprehensiveInstitutionsR.getCode() && null != data) {
+            data.setIsEdit(false);
+        } else {
+            return AjaxResult.error(comprehensiveInstitutionsR.getCode(), comprehensiveInstitutionsR.getMsg());
+        }
+        return AjaxResult.success(data);
+    }
+
+    /**
+     * 新增综治机构
+     */
+    @PostMapping("/comprehensiveInstitutionsf")
+    public AjaxResult add(@RequestBody String json) {
+        return remoteInstitutionsService.insertComprehensiveInstitutions(json);
+    }
+
+    /**
+     * 修改综治机构
+     */
+    @PostMapping("/comprehensiveInstitutionsf/put")
+    public AjaxResult edit(@RequestBody String json) {
+        return remoteInstitutionsService.updateComprehensiveInstitutions(json);
+    }
+
+    /**
+     * 删除综治机构
+     */
+    @GetMapping("/comprehensiveInstitutionsf/del")
+    public AjaxResult remove(@RequestParam("id") List<String> id) {
+        return remoteInstitutionsService.deleteComprehensiveInstitutionsByIds(id.toArray(new String[0]));
+    }
+
+}

+ 100 - 0
src/main/java/com/sooka/sponest/mobile/comprehensive/organizationAndInstitutionController/AppLeadershipController.java

@@ -0,0 +1,100 @@
+package com.sooka.sponest.mobile.comprehensive.organizationAndInstitutionController;
+
+import com.ruoyi.common.core.constant.HttpStatus;
+import com.ruoyi.common.core.domain.DictKeys;
+import com.ruoyi.common.core.web.controller.BaseController;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.web.page.PageDomain;
+import com.ruoyi.common.core.web.page.TableDataInfo;
+import com.ruoyi.common.core.web.page.TableSupport;
+import com.ruoyi.common.security.utils.DictUtils;
+import com.sooka.sponest.comprehensive.api.comprehensiveOrganizationAndInstitution.domain.ComprehensiveLeadership;
+import com.sooka.sponest.comprehensive.api.comprehensiveOrganizationAndInstitution.service.RemoteLeadershipService;
+import org.apache.commons.collections4.MapUtils;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 综治领导责任制
+ *
+ * @author hanfucheng
+ * @date 2023/9/21 13:14
+ */
+@RestController
+@RequestMapping("/AppLeadershipController")
+public class AppLeadershipController extends BaseController {
+
+    @Resource
+    RemoteLeadershipService remoteLeadershipService;
+
+    /**
+     * 查询综治领导责任制列表
+     */
+    @GetMapping("/comprehensiveLeadership/list")
+    public AjaxResult list(ComprehensiveLeadership comprehensiveLeadership) {
+        PageDomain pageDomain = TableSupport.buildPageRequest();
+        Integer pageNum = pageDomain.getPageNum();
+        Integer pageSize = pageDomain.getPageSize();
+        TableDataInfo tableDataInfo = remoteLeadershipService.selectComprehensiveLeadershipList(pageNum, pageSize,comprehensiveLeadership.getImplementPrincipal());
+        if(HttpStatus.SUCCESS == tableDataInfo.getCode()){
+            List<Map<String,Object>> rows = (List<Map<String, Object>>) tableDataInfo.getRows();
+            Map<String,Object> comprehensiveLevels = DictUtils.getDictCacheToMap(DictKeys.COMPREHENSIVE_LEVELS);
+            Map<String,Object> comprehensivePoliciesType = DictUtils.getDictCacheToMap(DictKeys.COMPREHENSIVE_POLICIES_TYPE);
+
+
+            for (Map<String, Object> row : rows) {
+                row.put("implementedLevelLabel",MapUtils.getString(comprehensiveLevels,MapUtils.getString(row,"implementedLevel")));
+                row.put("implementLevelLabel",MapUtils.getString(comprehensiveLevels,MapUtils.getString(row,"implementLevel")));
+                row.put("policyTypelabel",MapUtils.getString(comprehensivePoliciesType, MapUtils.getString(row,"policyType")));
+            }
+            return AjaxResult.success(rows);
+        }else{
+            return AjaxResult.error(tableDataInfo.getCode(),tableDataInfo.getMsg());
+        }
+    }
+
+    /**
+     * 获取综治领导责任制详细信息
+     */
+    @GetMapping("/comprehensiveLeadership/edit")
+    public AjaxResult getInfo(String id) {
+        AjaxResult ajaxResult = remoteLeadershipService.selectComprehensiveLeadershipById(id);
+        if("200".equals(MapUtils.getString(ajaxResult,"code"))){
+            HashMap<String,Object> comprehensiveLeadership = (HashMap<String, Object>) ajaxResult.get("data");
+            comprehensiveLeadership.put("implementedLevelLabel",DictUtils.getDictDataByValue(DictKeys.COMPREHENSIVE_LEVELS, MapUtils.getString(comprehensiveLeadership,"implementedLevel")));
+            comprehensiveLeadership.put("implementLevelLabel",DictUtils.getDictDataByValue(DictKeys.COMPREHENSIVE_LEVELS, MapUtils.getString(comprehensiveLeadership,"implementLevel")));
+            comprehensiveLeadership.put("policyTypelabel",DictUtils.getDictDataByValue(DictKeys.COMPREHENSIVE_POLICIES_TYPE, MapUtils.getString(comprehensiveLeadership,"policyType")));
+            return AjaxResult.success(comprehensiveLeadership);
+        }else{
+            return AjaxResult.error(MapUtils.getString(ajaxResult,"code"), MapUtils.getString(ajaxResult,"msg"));
+        }
+    }
+
+    /**
+     * 新增综治领导责任制
+     */
+    @PostMapping("/comprehensiveLeadership")
+    public AjaxResult add(@RequestBody String json) {
+        return remoteLeadershipService.insertComprehensiveLeadership(json);
+    }
+    /**
+     * 修改综治领导责任制
+     */
+    @PostMapping("/comprehensiveLeadership/put")
+    public AjaxResult edit(@RequestBody String json) {
+        return remoteLeadershipService.updateComprehensiveLeadership(json);
+    }
+
+    /**
+     * 删除综治领导责任制
+     */
+    @GetMapping("/comprehensiveLeadership/del")
+    public AjaxResult remove(@RequestParam("id") List<String> id) {
+        return remoteLeadershipService.deleteComprehensiveLeadershipByIds(id.toArray(new String[0]));
+    }
+
+}

+ 120 - 0
src/main/java/com/sooka/sponest/mobile/comprehensive/organizationAndInstitutionController/AppPatrolPlanController.java

@@ -0,0 +1,120 @@
+package com.sooka.sponest.mobile.comprehensive.organizationAndInstitutionController;
+
+import com.ruoyi.common.core.constant.HttpStatus;
+import com.ruoyi.common.core.domain.DictKeys;
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.web.controller.BaseController;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.web.page.PageDomain;
+import com.ruoyi.common.core.web.page.TableDataInfo;
+import com.ruoyi.common.core.web.page.TableSupport;
+import com.ruoyi.common.security.utils.DictUtils;
+import com.sooka.sponest.comprehensive.api.comprehensivepatrol.domain.ComprehensivePatrolPlan;
+import com.sooka.sponest.comprehensive.api.comprehensivepatrol.service.RemotePatrolPlanService;
+import org.apache.commons.collections4.MapUtils;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 巡查计划
+ *
+ * @author lidongyu
+ * @date 2023/9/14 10:16
+ */
+@RestController
+@RequestMapping("/AppPatrolPlanController")
+public class AppPatrolPlanController extends BaseController {
+
+    @Resource
+    RemotePatrolPlanService remotePatrolPlanService;
+
+    /**
+     * 查询巡查计划列表
+     */
+    @GetMapping("/comprehensivepatrolplan/list")
+    public AjaxResult list(ComprehensivePatrolPlan comprehensivepatrolplan) {
+        PageDomain pageDomain = TableSupport.buildPageRequest();
+        Integer pageNum = pageDomain.getPageNum();
+        Integer pageSize = pageDomain.getPageSize();
+        TableDataInfo tableDataInfo = remotePatrolPlanService.selectPatrolPlanList(pageNum, pageSize,comprehensivepatrolplan.getType(),comprehensivepatrolplan.getName());
+        if(HttpStatus.SUCCESS == tableDataInfo.getCode()){
+            List<Map<String,Object>> rows = (List<Map<String, Object>>) tableDataInfo.getRows();
+            Map<String,Object> forestLinLevel = DictUtils.getDictCacheToMap(DictKeys.FOREST_LIN_LEVEL);
+            Map<String,Object> centerdataplanningCycle = DictUtils.getDictCacheToMap(DictKeys.CENTERDATAPLANNING_CYCLE);
+
+            for (Map<String, Object> row : rows) {
+             row.put("rankLabel", MapUtils.getString(forestLinLevel,MapUtils.getString(row,"rank")));
+             row.put("periodLabel", MapUtils.getString(centerdataplanningCycle,MapUtils.getString(row,"period")));
+            }
+            return AjaxResult.success(rows);
+        }else{
+            return AjaxResult.error(tableDataInfo.getCode(),tableDataInfo.getMsg());
+        }
+    }
+
+    /**
+     * 获取巡查计划详细信息
+     */
+    @GetMapping("/comprehensivepatrolplan/edit")
+    public AjaxResult getInfo(String id) {
+        R<ComprehensivePatrolPlan> edit = remotePatrolPlanService.selectPatrolPlanById(id);
+        ComprehensivePatrolPlan data = edit.getData();
+        data.setRankLabel(DictUtils.getDictDataByValue(DictKeys.FOREST_LIN_LEVEL,data.getRank()));
+        data.setPeriodLabel(DictUtils.getDictDataByValue(DictKeys.CENTERDATAPLANNING_CYCLE,data.getPeriod()));
+        if (HttpStatus.SUCCESS == edit.getCode()){
+            data.setIsEdit(true);
+        }else if (HttpStatus.ERROR == edit.getCode() && null != edit.getData()) {
+
+            data.setIsEdit(false);
+        }else {
+            return AjaxResult.error(edit.getCode(), edit.getMsg());
+        }
+        return AjaxResult.success(data);
+    }
+
+    /**
+     * 新增巡查计划
+     */
+    @PostMapping("/comprehensivepatrolplan")
+    public AjaxResult add(@RequestBody String json) {
+        return remotePatrolPlanService.insertPatrolPlan(json);
+    }
+    /**
+     * 修改巡查计划
+     */
+    @PostMapping("/comprehensivepatrolplan/put")
+    public AjaxResult edit(@RequestBody String json) {
+        return remotePatrolPlanService.updatePatrolPlan(json);
+    }
+
+    /**
+     * 删除巡查计划
+     */
+    @GetMapping("/comprehensivepatrolplan/del")
+    public AjaxResult remove(@RequestParam("id") List<String> id) {
+        return remotePatrolPlanService.deletePatrolPlanByIds(id.toArray(new String[0]));
+    }
+
+    /**
+     * 查询计划下拉选
+     */
+    @GetMapping("/comprehensivepatrolplan/getPatrolPlanAll")
+    public AjaxResult getPatrolPlanAll(String type) {
+        AjaxResult ajaxResult = remotePatrolPlanService.getPatrolPlanAll(type);
+        if("200".equals(MapUtils.getString(ajaxResult,"code"))){
+            List<Map<String,Object>>  data = (List<Map<String, Object>>) ajaxResult.get("data");
+            Map<String,Object> forestLinLevel = DictUtils.getDictCacheToMap(DictKeys.FOREST_LIN_LEVEL);
+            Map<String,Object> centerdataplanningCycle = DictUtils.getDictCacheToMap(DictKeys.CENTERDATAPLANNING_CYCLE);
+            for (Map<String, Object> datum : data) {
+                datum.put("rankLabel", MapUtils.getString(forestLinLevel,MapUtils.getString(datum,"rank")));
+                datum.put("periodLabel", MapUtils.getString(centerdataplanningCycle,MapUtils.getString(datum,"period")));
+            }
+            return AjaxResult.success(data);
+        }else{
+            return AjaxResult.error(MapUtils.getString(ajaxResult,"code"), MapUtils.getString(ajaxResult,"msg"));
+        }
+    }
+}

+ 110 - 0
src/main/java/com/sooka/sponest/mobile/comprehensive/organizationAndInstitutionController/AppPatrolTaskController.java

@@ -0,0 +1,110 @@
+package com.sooka.sponest.mobile.comprehensive.organizationAndInstitutionController;
+
+import com.ruoyi.common.core.constant.HttpStatus;
+import com.ruoyi.common.core.domain.DictKeys;
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.web.controller.BaseController;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.web.page.PageDomain;
+import com.ruoyi.common.core.web.page.TableDataInfo;
+import com.ruoyi.common.core.web.page.TableSupport;
+import com.ruoyi.common.security.utils.DictUtils;
+import com.sooka.sponest.comprehensive.api.comprehensivepatrol.domain.ComprehensivePatrolTask;
+import com.sooka.sponest.comprehensive.api.comprehensivepatrol.service.RemotePatrolTaskService;
+import org.apache.commons.collections4.MapUtils;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 巡查任务
+ *
+ * @author lidongyu
+ * @date 2023/9/14 10:16
+ */
+@RestController
+@RequestMapping("/AppPatrolTaskController")
+public class AppPatrolTaskController extends BaseController {
+
+    @Resource
+    RemotePatrolTaskService remotePatrolTaskService;
+
+    /**
+     * 查询巡查任务列表
+     */
+    @GetMapping("/comprehensivepatroltask/list")
+    public AjaxResult list(ComprehensivePatrolTask comprehensivepatroltask) {
+        PageDomain pageDomain = TableSupport.buildPageRequest();
+        Integer pageNum = pageDomain.getPageNum();
+        Integer pageSize = pageDomain.getPageSize();
+        TableDataInfo tableDataInfo = remotePatrolTaskService.selectPatrolTaskList(pageNum, pageSize,comprehensivepatroltask.getType(),comprehensivepatroltask.getPlanName());
+        if(HttpStatus.SUCCESS == tableDataInfo.getCode()){
+            List<Map<String,Object>> rows = (List<Map<String, Object>>) tableDataInfo.getRows();
+            Map<String, Object> waterTaskStatus = DictUtils.getDictCacheToMap(DictKeys.WATER_TASK_STATUS);
+            for (Map<String, Object> row : rows) {
+                row.put("statusLabel", MapUtils.getString(waterTaskStatus,MapUtils.getString(row,"status")));
+            }
+            return AjaxResult.success(rows);
+        }else{
+            return AjaxResult.error(tableDataInfo.getCode(),tableDataInfo.getMsg());
+        }
+    }
+
+    /**
+     * 获取巡查任务详细信息
+     */
+    @GetMapping("/comprehensivepatroltask/edit")
+    public AjaxResult getInfo(String id) {
+        R<ComprehensivePatrolTask> edit = remotePatrolTaskService.selectPatrolTaskById(id);
+        ComprehensivePatrolTask data = edit.getData();
+        if(HttpStatus.SUCCESS == edit.getCode()){
+            data.setStatusLabel(DictUtils.getDictDataByValue(DictKeys.WATER_TASK_STATUS,data.getStatus()));
+            return AjaxResult.success(data);
+        }else {
+            return AjaxResult.error(edit.getCode(), edit.getMsg());
+        }
+    }
+
+    /**
+     * 新增巡查任务
+     */
+    @PostMapping("/comprehensivepatroltask")
+    public AjaxResult add(@RequestBody String json) {
+        return remotePatrolTaskService.insertPatrolTask(json);
+    }
+    /**
+     * 修改巡查任务
+     */
+    @PostMapping("/comprehensivepatroltask/put")
+    public AjaxResult edit(@RequestBody String json) {
+        return remotePatrolTaskService.updatePatrolTask(json);
+    }
+
+    /**
+     * 删除巡查任务
+     */
+    @GetMapping("/comprehensivepatroltask/del")
+    public AjaxResult remove(@RequestParam("id") List<String> id) {
+        return remotePatrolTaskService.deletePatrolTaskByIds(id.toArray(new String[0]));
+    }
+
+    /**
+     * 查询巡查任务列表无分页
+     */
+    @GetMapping("/comprehensivepatroltask/getPatrolTaskAll")
+    public AjaxResult getPatrolTaskAll(String type) {
+        AjaxResult ajaxResult = remotePatrolTaskService.getPatrolTaskAll(type);;
+        if("200".equals(MapUtils.getString(ajaxResult,"code"))){
+           List<Map<String,Object>> data = (List<Map<String, Object>>) ajaxResult.get("data");
+            Map<String, Object> waterTaskStatus = DictUtils.getDictCacheToMap(DictKeys.WATER_TASK_STATUS);
+            for (Map<String, Object> datum : data) {
+                datum.put("statusLabel", MapUtils.getString(waterTaskStatus,MapUtils.getString(datum,"status")));
+            }
+            return AjaxResult.success(data);
+        }else{
+            return AjaxResult.error(MapUtils.getString(ajaxResult,"code"), MapUtils.getString(ajaxResult,"msg"));
+        }
+    }
+}

+ 83 - 0
src/main/java/com/sooka/sponest/mobile/comprehensive/organizationAndInstitutionController/AppPatrolTrackController.java

@@ -0,0 +1,83 @@
+package com.sooka.sponest.mobile.comprehensive.organizationAndInstitutionController;
+
+import com.ruoyi.common.core.constant.HttpStatus;
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.web.controller.BaseController;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.web.page.PageDomain;
+import com.ruoyi.common.core.web.page.TableDataInfo;
+import com.ruoyi.common.core.web.page.TableSupport;
+import com.sooka.sponest.comprehensive.api.comprehensivepatrol.domain.ComprehensivePatrolPlanRecord;
+import com.sooka.sponest.comprehensive.api.comprehensivepatrol.service.RemotePatrolTrackService;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+/**
+ * 巡查轨迹
+ *
+ * @author lidongyu
+ * @date 2023/9/14 10:16
+ */
+@RestController
+@RequestMapping("/AppPatrolTrackController")
+public class AppPatrolTrackController extends BaseController {
+
+    @Resource
+    RemotePatrolTrackService remotePatrolTrackService;
+
+    /**
+     * 查询巡查轨迹列表
+     */
+    @GetMapping("/comprehensivepatrolplanrecord/list")
+    public AjaxResult list(ComprehensivePatrolPlanRecord comprehensivepatrolplanrecord) {
+        PageDomain pageDomain = TableSupport.buildPageRequest();
+        Integer pageNum = pageDomain.getPageNum();
+        Integer pageSize = pageDomain.getPageSize();
+        TableDataInfo tableDataInfo = remotePatrolTrackService.selectPatrolPlanRecordList(pageNum, pageSize,comprehensivepatrolplanrecord.getType(),comprehensivepatrolplanrecord.getNickName(),comprehensivepatrolplanrecord.getTaskName());
+        if(HttpStatus.SUCCESS == tableDataInfo.getCode()){
+            return AjaxResult.success(tableDataInfo.getRows());
+        }else{
+            return AjaxResult.error(tableDataInfo.getCode(),tableDataInfo.getMsg());
+        }
+    }
+
+    /**
+     * 获取巡查轨迹详细信息
+     */
+    @GetMapping("/comprehensivepatrolplanrecord/edit")
+    public AjaxResult getInfo(String id) {
+        R<ComprehensivePatrolPlanRecord> edit = remotePatrolTrackService.selectPatrolPlanRecordById(id);
+        ComprehensivePatrolPlanRecord data = edit.getData();
+        if(HttpStatus.SUCCESS == edit.getCode()){
+            return AjaxResult.success(data);
+        }else {
+            return AjaxResult.error(edit.getCode(), edit.getMsg());
+        }
+    }
+
+    /**
+     * 新增巡查轨迹
+     */
+    @PostMapping("/comprehensivepatrolplanrecord")
+    public AjaxResult add(@RequestBody String json) {
+        return remotePatrolTrackService.insertPatrolPlanRecord(json);
+    }
+    /**
+     * 修改巡查轨迹
+     */
+    @PostMapping("/comprehensivepatrolplanrecord/put")
+    public AjaxResult edit(@RequestBody String json) {
+        return remotePatrolTrackService.updatePatrolPlanRecord(json);
+    }
+
+    /**
+     * 删除巡查轨迹
+     */
+    @GetMapping("/comprehensivepatrolplanrecord/del")
+    public AjaxResult remove(@RequestParam("id") List<String> id) {
+        return remotePatrolTrackService.deletePatrolPlanRecordByIds(id.toArray(new String[0]));
+    }
+
+}

+ 81 - 0
src/main/java/com/sooka/sponest/mobile/comprehensive/organizationAndInstitutionController/AppPublicSafetyMonitoringController.java

@@ -0,0 +1,81 @@
+package com.sooka.sponest.mobile.comprehensive.organizationAndInstitutionController;
+
+import com.ruoyi.common.core.constant.HttpStatus;
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.web.controller.BaseController;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.web.page.PageDomain;
+import com.ruoyi.common.core.web.page.TableDataInfo;
+import com.ruoyi.common.core.web.page.TableSupport;
+import com.sooka.sponest.comprehensive.api.comprehensiveOrganizationAndInstitution.domain.ComprehensivePublicSafetyMonitoring;
+import com.sooka.sponest.comprehensive.api.comprehensiveOrganizationAndInstitution.service.RemotePublicSafetyMonitoringService;
+import com.sooka.sponest.comprehensive.api.comprehensiveOrganizationAndInstitution.service.RemoteVideoNetworkingService;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+/**
+ * 城乡社区公共安全视频监控
+ *
+ * @author lidongyu
+ * @date 2023/9/14 10:16
+ */
+@RestController
+@RequestMapping("/AppPublicSafetyMonitoringController")
+public class AppPublicSafetyMonitoringController extends BaseController {
+
+    @Resource
+    RemotePublicSafetyMonitoringService remotePublicSafetyMonitoringService;
+
+    /**
+     * 查询城乡社区公共安全视频监控列表
+     */
+    @GetMapping("/publicSafetyMonitoring/list")
+    public AjaxResult list(ComprehensivePublicSafetyMonitoring publicSafetyMonitoring) {
+        PageDomain pageDomain = TableSupport.buildPageRequest();
+        Integer pageNum = pageDomain.getPageNum();
+        Integer pageSize = pageDomain.getPageSize();
+        TableDataInfo tableDataInfo = remotePublicSafetyMonitoringService.selectComprehensivePublicSafetyMonitoringList(pageNum, pageSize,publicSafetyMonitoring.getCommunityName());
+        if(HttpStatus.SUCCESS == tableDataInfo.getCode()){
+            return AjaxResult.success(tableDataInfo.getRows());
+        }else{
+            return AjaxResult.error(tableDataInfo.getCode(),tableDataInfo.getMsg());
+        }
+    }
+
+    /**
+     * 获取城乡社区公共安全视频监控详细信息
+     */
+    @GetMapping("/publicSafetyMonitoring/edit")
+    public AjaxResult getInfo(String id) {
+        R<ComprehensivePublicSafetyMonitoring> edit = remotePublicSafetyMonitoringService.selectComprehensivePublicSafetyMonitoringById(id);
+        ComprehensivePublicSafetyMonitoring data = edit.getData();
+
+        return AjaxResult.success(data);
+    }
+
+    /**
+     * 新增城乡社区公共安全视频监控
+     */
+    @PostMapping("/publicSafetyMonitoring")
+    public AjaxResult add(@RequestBody String json) {
+        return remotePublicSafetyMonitoringService.insertComprehensivePublicSafetyMonitoring(json);
+    }
+    /**
+     * 修改城乡社区公共安全视频监控
+     */
+    @PostMapping("/publicSafetyMonitoring/put")
+    public AjaxResult edit(@RequestBody String json) {
+        return remotePublicSafetyMonitoringService.updateComprehensivePublicSafetyMonitoring(json);
+    }
+
+    /**
+     * 删除城乡社区公共安全视频监控
+     */
+    @GetMapping("/publicSafetyMonitoring/del")
+    public AjaxResult remove(@RequestParam("id") List<String> id) {
+        return remotePublicSafetyMonitoringService.deleteComprehensivePublicSafetyMonitoringByIds(id.toArray(new String[0]));
+    }
+
+}

+ 175 - 0
src/main/java/com/sooka/sponest/mobile/comprehensive/organizationAndInstitutionController/AppRoomController.java

@@ -0,0 +1,175 @@
+package com.sooka.sponest.mobile.comprehensive.organizationAndInstitutionController;
+
+import com.alibaba.fastjson.JSON;
+import com.ruoyi.common.core.constant.HttpStatus;
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.utils.StringUtils;
+import com.ruoyi.common.core.web.controller.BaseController;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.web.page.PageDomain;
+import com.ruoyi.common.core.web.page.TableDataInfo;
+import com.ruoyi.common.core.web.page.TableSupport;
+import com.ruoyi.common.security.utils.DictUtils;
+import com.sooka.sponest.comprehensive.api.comprehensiveOrganizationAndInstitution.domain.ComprehensiveRoom;
+import com.sooka.sponest.comprehensive.api.comprehensiveOrganizationAndInstitution.service.RemoteRoomService;
+import org.apache.commons.collections4.MapUtils;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import static com.ruoyi.common.core.domain.DictKeys.*;
+
+/**
+ * 房间管理
+ *
+ * @author lidongyu
+ * @date 2023/9/14 10:16
+ */
+@RestController
+@RequestMapping("/AppRoomController")
+public class AppRoomController extends BaseController {
+
+    @Resource
+    RemoteRoomService remoteRoomService;
+
+    /**
+     * 查询房间管理列表
+     */
+    @GetMapping("/comprehensiveroom/list")
+    public AjaxResult list(ComprehensiveRoom comprehensiveroom) {
+        PageDomain pageDomain = TableSupport.buildPageRequest();
+        AjaxResult tableDataInfo = remoteRoomService.selectComprehensiveRoomList(
+                pageDomain.getPageNum(),
+                pageDomain.getPageSize(),
+                comprehensiveroom.getName(),
+                comprehensiveroom.getEstateId(),
+                comprehensiveroom.getTotal()
+        );
+        if (HttpStatus.SUCCESS == Integer.parseInt(tableDataInfo.get("code").toString())) {
+            List<ComprehensiveRoom> rows = (List<ComprehensiveRoom>) tableDataInfo.get("data");
+            String[] dictArray = new String[]{RFH_FJ_GLFS, RFH_FJ_WYH, RFH_FJ_FJXZ, RFH_FJ_SHLX};
+            Map<String, Map<String, Object>> dictMaps = DictUtils.getDictCacheToMapByArray(dictArray);
+            String s = JSON.toJSONString(rows);
+            rows = JSON.parseArray(s, ComprehensiveRoom.class);
+            if (StringUtils.isNotEmpty(rows)) {
+                for (ComprehensiveRoom data : rows) {
+                    setDictValue(data, dictMaps);
+                }
+            }
+            return AjaxResult.success(rows);
+        } else {
+            return AjaxResult.error(tableDataInfo.get("code").toString(), tableDataInfo.get("msg"));
+        }
+    }
+
+    /**
+     * 获取房间管理详细信息
+     */
+    @GetMapping("/comprehensiveroom/edit")
+    public AjaxResult getInfo(String id) {
+        R<ComprehensiveRoom> edit = remoteRoomService.selectComprehensiveRoomById(id);
+        ComprehensiveRoom data = edit.getData();
+        if (HttpStatus.SUCCESS == edit.getCode()) {
+            data.setIsEdit(true);
+        } else if (HttpStatus.ERROR == edit.getCode() && null != edit.getData()) {
+            data.setIsEdit(false);
+        } else {
+            return AjaxResult.error(edit.getCode(), edit.getMsg());
+        }
+        setDictValue(data, null);
+        return AjaxResult.success(data);
+    }
+
+    private void setDictValue(ComprehensiveRoom data, Map<String, Map<String, Object>> dictMaps) {
+        if (StringUtils.isEmpty(dictMaps)) {
+            String[] dictArray = new String[]{RFH_FJ_GLFS, RFH_FJ_WYH, RFH_FJ_FJXZ, RFH_FJ_SHLX};
+            dictMaps = DictUtils.getDictCacheToMapByArray(dictArray);
+        }
+        data.setRoomSfpfLabel("1".equals(data.getRoomSfpf()) ? "是" : "否");
+        data.setRoomSfydxsLabel("1".equals(data.getRoomSfydxs()) ? "是" : "否");
+        data.setRoomSfzrLabel("1".equals(data.getRoomSfzr()) ? "是" : "否");
+        data.setRoomSffwLabel("1".equals(data.getRoomSffw()) ? "是" : "否");
+        data.setRoomWfjzLabel("1".equals(data.getRoomWfjz()) ? "是" : "否");
+        data.setRoomSfcwLabel("1".equals(data.getRoomSfcw()) ? "是" : "否");
+        data.setRoomSfgzLabel("1".equals(data.getRoomSfgz()) ? "是" : "否");
+        data.setRoomSfmsfLabel("1".equals(data.getRoomSfmsf()) ? "是" : "否");
+        data.setRoomSfgkpyLabel("1".equals(data.getRoomSfgkpy()) ? "是" : "否");
+        data.setRoomSfjhqLabel("1".equals(data.getRoomSfjhq()) ? "是" : "否");
+        data.setRoomSfslzLabel("1".equals(data.getRoomSfslz()) ? "是" : "否");
+        data.setRoomGlfsLabel(MapUtils.getString((Map<String, Object>) MapUtils.getMap(dictMaps, RFH_FJ_GLFS), data.getRoomGlfs()));
+        data.setRoomWyhLabel(MapUtils.getString((Map<String, Object>) MapUtils.getMap(dictMaps, RFH_FJ_WYH), data.getRoomWyh()));
+        data.setRoomTypeLabel(MapUtils.getString((Map<String, Object>) MapUtils.getMap(dictMaps, RFH_FJ_FJXZ), data.getRoomType()));
+        data.setRoomShlxLabel(MapUtils.getString((Map<String, Object>) MapUtils.getMap(dictMaps, RFH_FJ_SHLX), data.getRoomShlx()));
+    }
+
+    /**
+     * 新增房间管理
+     */
+    @PostMapping("/comprehensiveroom")
+    public AjaxResult add(@RequestBody String json) {
+        return remoteRoomService.insertComprehensiveRoom(json);
+    }
+
+    /**
+     * 修改房间管理
+     */
+    @PostMapping("/comprehensiveroom/put")
+    public AjaxResult edit(@RequestBody String json) {
+        return remoteRoomService.updateComprehensiveRoom(json);
+    }
+
+    /**
+     * 删除房间管理
+     */
+    @GetMapping("/comprehensiveroom/del")
+    public AjaxResult remove(@RequestParam("id") List<String> id) {
+        return remoteRoomService.deleteComprehensiveRoomByIds(id.toArray(new String[0]));
+    }
+
+    /**
+     * 楼栋的单元数
+     *
+     * @param num
+     * @return
+     */
+    @GetMapping("/comprehensiveroom/getunitList")
+    public AjaxResult getunitList(@RequestParam("num") String num) {
+        return remoteRoomService.getunitList(num);
+    }
+
+    /**
+     * 房间id
+     *
+     * @param id
+     * @return
+     */
+    @GetMapping("/comprehensiveroom/getAllUserInfo")
+    public AjaxResult getAllUserInfo(@RequestParam("id") String id) {
+        return remoteRoomService.getAllUserInfo(id);
+    }
+
+    /**
+     * 新增房间绑定人员
+     */
+    @PostMapping("/comprehensiveroom/addRoomBindPerson")
+    public AjaxResult addRoomBindPerson(@RequestBody String json) {
+        return remoteRoomService.addRoomBindPerson(json);
+    }
+
+    /**
+     * 查询出租屋列表
+     *
+     * @param
+     * @return
+     */
+    @GetMapping("/comprehensiveroom/getLet")
+    public AjaxResult getLet() {
+        return remoteRoomService.selectComprehensiveLet();
+    }
+
+}

+ 110 - 0
src/main/java/com/sooka/sponest/mobile/comprehensive/organizationAndInstitutionController/AppTeamController.java

@@ -0,0 +1,110 @@
+package com.sooka.sponest.mobile.comprehensive.organizationAndInstitutionController;
+
+import com.ruoyi.common.core.constant.HttpStatus;
+import com.ruoyi.common.core.domain.DictKeys;
+import com.ruoyi.common.core.web.controller.BaseController;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.web.page.PageDomain;
+import com.ruoyi.common.core.web.page.TableDataInfo;
+import com.ruoyi.common.core.web.page.TableSupport;
+import com.ruoyi.common.security.utils.DictUtils;
+import com.sooka.sponest.comprehensive.api.comprehensiveOrganizationAndInstitution.domain.ComprehensiveTeam;
+import com.sooka.sponest.comprehensive.api.comprehensiveOrganizationAndInstitution.service.RemoteTeamService;
+import org.apache.commons.collections4.MapUtils;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 综治队伍
+ *
+ * @author hanfucheng
+ * @date 2023/9/14 10:16
+ */
+@RestController
+@RequestMapping("/AppTeamController")
+public class AppTeamController extends BaseController {
+
+    @Resource
+    RemoteTeamService remoteTeamService;
+
+    /**
+     * 查询综治机构列表
+     */
+    @GetMapping("/comprehensiveTeam/list")
+    public AjaxResult list(ComprehensiveTeam comprehensiveTeam) {
+        PageDomain pageDomain = TableSupport.buildPageRequest();
+        Integer pageNum = pageDomain.getPageNum();
+        Integer pageSize = pageDomain.getPageSize();
+        TableDataInfo tableDataInfo = remoteTeamService.selectComprehensiveTeamList(pageNum, pageSize,comprehensiveTeam.getName(),comprehensiveTeam.getInstitutionId(),comprehensiveTeam.getIdentityNumber() );
+        List<HashMap<String, Object>> rows = (List<HashMap<String, Object>>) tableDataInfo.getRows();
+        if(HttpStatus.SUCCESS == tableDataInfo.getCode()){
+            Map<String, Object> comprehensiveGenderLabel = DictUtils.getDictCacheToMap(DictKeys.COMPREHENSIVE_SEX);
+            Map<String, Object> comprehensiveNationLabel = DictUtils.getDictCacheToMap(DictKeys.COMPREHENSIVE_NATION);
+            Map<String, Object> comprehensivePoliticalOutlookLabel = DictUtils.getDictCacheToMap(DictKeys.COMPREHENSIVE_POLITICAL_STATUS);
+            Map<String, Object> comprehensiveLevelLabel = DictUtils.getDictCacheToMap(DictKeys.COMPREHENSIVE_PERSONNEL_LEVEL);
+            Map<String, Object> comprehensiveDutiesLabel = DictUtils.getDictCacheToMap(DictKeys.COMPREHENSIVE_PERSONNEL_JOB);
+            Map<String, Object> comprehensiveEducationLabel = DictUtils.getDictCacheToMap(DictKeys.COMPREHENSIVE_EDUCATIONAL_BACKGROUND);
+            for (HashMap<String, Object> row:
+                    rows ) {
+                row.put("genderLabel",comprehensiveGenderLabel.get(row.get("gender").toString()));
+                row.put("nationLabel",comprehensiveNationLabel.get(row.get("nation").toString()));
+                row.put("politicalOutlookLabel",comprehensivePoliticalOutlookLabel.get(row.get("politicalOutlook").toString()));
+                row.put("levelLabel",comprehensiveLevelLabel.get(row.get("level").toString()));
+                row.put("dutiesLabel",comprehensiveDutiesLabel.get(row.get("duties").toString()));
+                row.put("educationLabel",comprehensiveEducationLabel.get(row.get("education").toString()));
+
+            }
+            return AjaxResult.success(tableDataInfo.getRows());
+        }else{
+            return AjaxResult.error(tableDataInfo.getCode(),tableDataInfo.getMsg());
+        }
+    }
+
+    /**
+     * 获取综治机构详细信息
+     */
+    @GetMapping("/comprehensiveTeam/edit")
+    public AjaxResult getInfo(String id) {
+        AjaxResult ajaxResult = remoteTeamService.selectComprehensiveTeamById(id);
+        if("200".equals(String.valueOf(ajaxResult.get("code")))){
+            HashMap<String,Object> comprehensiveTeam = (HashMap<String, Object>) ajaxResult.get("data");
+            comprehensiveTeam.put("genderLabel",DictUtils.getDictDataByValue(DictKeys.COMPREHENSIVE_SEX, MapUtils.getString(comprehensiveTeam,"gender")));
+            comprehensiveTeam.put("nationLabel",DictUtils.getDictDataByValue(DictKeys.COMPREHENSIVE_NATION, MapUtils.getString(comprehensiveTeam,"nation")));
+            comprehensiveTeam.put("politicalOutlookLabel",DictUtils.getDictDataByValue(DictKeys.COMPREHENSIVE_POLITICAL_STATUS, MapUtils.getString(comprehensiveTeam,"politicalOutlook")));
+            comprehensiveTeam.put("levelLabel",DictUtils.getDictDataByValue(DictKeys.COMPREHENSIVE_PERSONNEL_LEVEL, MapUtils.getString(comprehensiveTeam,"level")));
+            comprehensiveTeam.put("dutiesLabel",DictUtils.getDictDataByValue(DictKeys.COMPREHENSIVE_PERSONNEL_JOB,MapUtils.getString(comprehensiveTeam,"duties")));
+            comprehensiveTeam.put("educationLabel",DictUtils.getDictDataByValue(DictKeys.COMPREHENSIVE_EDUCATIONAL_BACKGROUND,MapUtils.getString(comprehensiveTeam,"education")));
+            return AjaxResult.success(comprehensiveTeam);
+        }else{
+            return AjaxResult.error(ajaxResult.get("code").toString(), ajaxResult.get("msg"));
+        }
+    }
+
+    /**
+     * 新增综治机构
+     */
+    @PostMapping("/comprehensiveTeam")
+    public AjaxResult add(@RequestBody String json) {
+        return remoteTeamService.insertComprehensiveTeam(json);
+    }
+    /**
+     * 修改综治机构
+     */
+    @PostMapping("/comprehensiveTeam/put")
+    public AjaxResult edit(@RequestBody String json) {
+        return remoteTeamService.updateComprehensiveTeam(json);
+    }
+
+    /**
+     * 删除综治机构
+     */
+    @GetMapping("/comprehensiveTeam/del")
+    public AjaxResult remove(@RequestParam("id") List<String> id) {
+        return remoteTeamService.deleteComprehensiveTeamByIds(id.toArray(new String[0]));
+    }
+
+}

+ 87 - 0
src/main/java/com/sooka/sponest/mobile/comprehensive/organizationAndInstitutionController/AppVideoNetworkingController.java

@@ -0,0 +1,87 @@
+package com.sooka.sponest.mobile.comprehensive.organizationAndInstitutionController;
+
+import com.ruoyi.common.core.constant.HttpStatus;
+import com.ruoyi.common.core.domain.DictKeys;
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.web.controller.BaseController;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.web.page.PageDomain;
+import com.ruoyi.common.core.web.page.TableDataInfo;
+import com.ruoyi.common.core.web.page.TableSupport;
+import com.ruoyi.common.security.utils.DictUtils;
+import com.sooka.sponest.comprehensive.api.comprehensiveOrganizationAndInstitution.domain.ComprehensiveVideoNetworking;
+import com.sooka.sponest.comprehensive.api.comprehensiveOrganizationAndInstitution.service.RemoteVideoNetworkingService;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+/**
+ * 综治视联网信息中心
+ *
+ * @author lidongyu
+ * @date 2023/9/14 10:16
+ */
+@RestController
+@RequestMapping("/AppVideoNetworkingController")
+public class AppVideoNetworkingController extends BaseController {
+
+    @Resource
+    RemoteVideoNetworkingService remoteVideoNetworkingService;
+
+    /**
+     * 查询综治视联网信息中心列表
+     */
+    @GetMapping("/videoNetworking/list")
+    public AjaxResult list(ComprehensiveVideoNetworking videoNetworking) {
+        PageDomain pageDomain = TableSupport.buildPageRequest();
+        Integer pageNum = pageDomain.getPageNum();
+        Integer pageSize = pageDomain.getPageSize();
+        TableDataInfo tableDataInfo = remoteVideoNetworkingService.selectComprehensiveVideoNetworkingList(pageNum, pageSize,videoNetworking.getCenterName());
+        if(HttpStatus.SUCCESS == tableDataInfo.getCode()){
+            return AjaxResult.success(tableDataInfo.getRows());
+        }else{
+            return AjaxResult.error(tableDataInfo.getCode(),tableDataInfo.getMsg());
+        }
+    }
+
+    /**
+     * 获取综治视联网信息中心详细信息
+     */
+    @GetMapping("/videoNetworking/edit")
+    public AjaxResult getInfo(String id) {
+        R<ComprehensiveVideoNetworking> edit = remoteVideoNetworkingService.selectComprehensiveVideoNetworkingById(id);
+        if(HttpStatus.SUCCESS == edit.getCode()){
+            ComprehensiveVideoNetworking data = edit.getData();
+            data.setLevelLabel(DictUtils.getDictDataByValue(DictKeys.COMPREHENSIVE_LEVELS,data.getLevel()));
+            data.setMannedLabel("1".equals(data.getManned()) ? "是" : "否");
+            return AjaxResult.success(data);
+        }else{
+            return AjaxResult.error(edit.getCode(), edit.getMsg());
+        }
+    }
+
+    /**
+     * 新增综治视联网信息中心
+     */
+    @PostMapping("/videoNetworking")
+    public AjaxResult add(@RequestBody String json) {
+        return remoteVideoNetworkingService.insertComprehensiveVideoNetworking(json);
+    }
+    /**
+     * 修改综治视联网信息中心
+     */
+    @PostMapping("/videoNetworking/put")
+    public AjaxResult edit(@RequestBody String json) {
+        return remoteVideoNetworkingService.updateComprehensiveVideoNetworking(json);
+    }
+
+    /**
+     * 删除综治视联网信息中心
+     */
+    @GetMapping("/videoNetworking/del")
+    public AjaxResult remove(@RequestParam("id") List<String> id) {
+        return remoteVideoNetworkingService.deleteComprehensiveVideoNetworkingByIds(id.toArray(new String[0]));
+    }
+
+}

+ 511 - 0
src/main/java/com/sooka/sponest/mobile/comprehensive/personBasicInfoController/AppPersonBasicInfoController.java

@@ -0,0 +1,511 @@
+package com.sooka.sponest.mobile.comprehensive.personBasicInfoController;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.ruoyi.common.core.constant.HttpStatus;
+import com.ruoyi.common.core.domain.DictKeys;
+import com.ruoyi.common.core.utils.StringUtils;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.web.page.PageDomain;
+import com.ruoyi.common.core.web.page.TableSupport;
+import com.ruoyi.common.security.utils.DictUtils;
+import com.sooka.sponest.comprehensive.api.comprehensivePersonBasicInfo.domain.*;
+import com.sooka.sponest.comprehensive.api.comprehensivePersonBasicInfo.service.RemotePersonBasicInfoService;
+import com.sooka.sponest.data.api.digitalenvironment.domain.EnvironmentBiggas;
+import org.apache.commons.collections4.MapUtils;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.text.SimpleDateFormat;
+import java.util.*;
+
+import static com.ruoyi.common.core.domain.DictKeys.*;
+import static com.ruoyi.common.security.utils.DictUtils.getComprehensiveDictCacheToMap;
+
+/**
+ * @Author LG
+ * @Date 2023/9/8 - 9:38
+ */
+@RestController
+@RequestMapping("/AppPersonBasicInfoController")
+public class AppPersonBasicInfoController {
+    @Resource
+    private RemotePersonBasicInfoService personBasicInfoService;
+
+    /**
+     * 查询人员信息列表
+     */
+    @GetMapping("/PersonBasicInfo/list")
+    public AjaxResult list(PersonBasicInfo info) {
+        PageDomain pageDomain = TableSupport.buildPageRequest();
+        //noinspection unchecked
+        List<HashMap<String, Object>> rows = (List<HashMap<String, Object>>) personBasicInfoService.getList(
+                info.getName(),
+                pageDomain.getPageNum(),
+                pageDomain.getPageSize(),
+                info.getDelFlag(),
+                info.getTotal()
+        ).get("data");
+        if (StringUtils.isNotEmpty(rows)) {
+            setDictValue(rows);
+        }
+        return AjaxResult.success(rows);
+    }
+
+
+    /**
+     * 查询人员信息详情
+     */
+    @GetMapping("/PersonBasicInfo/edit")
+    public AjaxResult getInfo(EnvironmentBiggas biggas) {
+        AjaxResult ajaxResult = personBasicInfoService.getEdit(biggas.getId());
+        if ("200".equals(ajaxResult.get("code").toString())) {
+            Map<String, Object> data = (Map<String, Object>) ajaxResult.get("data");
+            HashMap<String, Object> basicInfo = (HashMap<String, Object>) data.get("basicInfo");
+            setPersonBasicInfo(basicInfo, null, null);
+            List<HashMap<String, Object>> userBinds = (List<HashMap<String, Object>>) basicInfo.get("userBinds");
+            ArrayList<HashMap<String, Object>> otherInfo = (ArrayList<HashMap<String, Object>>) data.get("otherInfo");
+            Map<String, Object> result = new HashMap<>();
+            result.put("basicInfo", data.get("basicInfo"));
+            userBinds.forEach(bind -> {
+                otherInfo.stream()
+                        .filter(info -> info.get("id").equals(bind.get("otherPersonId")))
+                        .findFirst()
+                        .ifPresent(info -> setLabel(info, (Integer) bind.get("otherPersonType")));
+            });
+            otherInfo.forEach(bind -> {
+                switch (String.valueOf(bind.get("otherPersonType"))) {
+                    case "1":
+                        setRegisteredPopulation(bind);
+                        RegisteredPopulationInfo registeredPopulationInfo = JSONObject.toJavaObject(new JSONObject(bind), RegisteredPopulationInfo.class);
+                        result.put("registeredPopulation", registeredPopulationInfo);
+                        break;
+                    case "2":
+                        setFloatingPopulation(bind);
+                        FloatingPopulationInfo floatingPopulationInfo = JSONObject.toJavaObject(new JSONObject(bind), FloatingPopulationInfo.class);
+                        result.put("floatingPopulation", floatingPopulationInfo);
+                        break;
+                    case "3":
+                        setLeftBehindPerson(bind);
+                        LeftBehindPersonInfo leftBehindPersonInfo = JSONObject.toJavaObject(new JSONObject(bind), LeftBehindPersonInfo.class);
+                        result.put("leftBehindPerson", leftBehindPersonInfo);
+                        break;
+                    case "4":
+                        setCampusAroundPerson(bind);
+                        CampusAroundPersonInfo campusAroundPersonInfo = JSONObject.toJavaObject(new JSONObject(bind), CampusAroundPersonInfo.class);
+                        result.put("campusAroundPerson", campusAroundPersonInfo);
+                        break;
+                    case "5":
+                        setPrisonReleased(bind);
+                        PrisonReleasedInfo prisonReleasedInfo = JSONObject.toJavaObject(new JSONObject(bind), PrisonReleasedInfo.class);
+                        result.put("prisonReleased", prisonReleasedInfo);
+                        break;
+                    case "6":
+                        setCommunityCorrectionStaff(bind);
+                        CommunityCorrectionStaffInfo communityCorrectionStaffInfo = JSONObject.toJavaObject(new JSONObject(bind), CommunityCorrectionStaffInfo.class);
+                        result.put("communityCorrectionStaff", communityCorrectionStaffInfo);
+                        break;
+                    case "7":
+                        setPsychosisPopulation(bind);
+                        PsychosisPopulationInfo psychosisPopulationInfo = JSONObject.toJavaObject(new JSONObject(bind), PsychosisPopulationInfo.class);
+                        result.put("psychosisPopulation", psychosisPopulationInfo);
+                        break;
+                    case "8":
+                        setDrugAddict(bind);
+                        DrugAddictInfo drugAddictInfo = JSONObject.toJavaObject(new JSONObject(bind), DrugAddictInfo.class);
+                        result.put("drugAddict", drugAddictInfo);
+                        break;
+                    case "9":
+                        setAidsRisk(bind);
+                        AidsRiskInfo aidsRiskInfo = JSONObject.toJavaObject(new JSONObject(bind), AidsRiskInfo.class);
+                        result.put("aidsRisk", aidsRiskInfo);
+                        break;
+                    case "10":
+                        setKeyYouth(bind);
+                        KeyYouthInfo keyYouthInfo = JSONObject.toJavaObject(new JSONObject(bind), KeyYouthInfo.class);
+                        result.put("keyYouth", keyYouthInfo);
+                        break;
+                }
+            });
+            return AjaxResult.success(result);
+        } else {
+            return ajaxResult;
+        }
+    }
+
+    /**
+     * 根据给定的人员类型,设置字典中文值
+     */
+    private void setLabel(HashMap<String, Object> json, Integer type) {
+        switch (type) {
+            case 1:
+                setRegisteredPopulation(json);
+                break;
+            case 2:
+                setFloatingPopulation(json);
+                break;
+            case 3:
+                setLeftBehindPerson(json);
+                break;
+            case 4:
+                setCampusAroundPerson(json);
+                break;
+            case 5:
+                setPrisonReleased(json);
+                break;
+            case 6:
+                setCommunityCorrectionStaff(json);
+                break;
+            case 7:
+                setPsychosisPopulation(json);
+                break;
+            case 8:
+                setDrugAddict(json);
+                break;
+            case 9:
+                setAidsRisk(json);
+                break;
+            case 10:
+                setKeyYouth(json);
+                break;
+        }
+        json.put("otherPersonType", type);
+    }
+
+    /**
+     * 新增人员信息
+     */
+    @PostMapping("/PersonBasicInfo")
+    public AjaxResult add(@RequestBody String json) {
+        return personBasicInfoService.add(dataToList(json));
+    }
+
+    /**
+     * 修改人员信息
+     */
+    @PostMapping("/PersonBasicInfo/put")
+    public AjaxResult edit(@RequestBody String json) {
+        return personBasicInfoService.edit(dataToList(json));
+    }
+
+
+    /**
+     * 数据格式转换,将JSONString类型替换为List
+     */
+    private String dataToList(String json) {
+        JSONObject jsonObject = JSONObject.parseObject(json);
+        Set<String> strings = jsonObject.keySet();
+        JSONArray list = new JSONArray();
+        list.add(jsonObject.getJSONObject("basicInfo"));
+        strings.remove("basicInfo");
+        for (String string : strings) {
+            list.add(jsonObject.getJSONObject(string));
+        }
+        return JSONArray.toJSONString(list);
+    }
+
+    /**
+     * 删除人员信息
+     */
+    @GetMapping("/PersonBasicInfo/del")
+    public AjaxResult remove(@RequestParam("id") List<String> id) {
+        return personBasicInfoService.del(id.toArray(new String[0]));
+    }
+
+    /**
+     * 审核删除人员信息
+     * state = 2 通过,  state = 1 拒绝
+     */
+    @GetMapping("/PersonBasicInfo/delInfo")
+    public AjaxResult delInfo(@RequestParam("id") String id, @RequestParam("state") String state) {
+        return personBasicInfoService.delInfo(id, state);
+    }
+
+    /**
+     * 设置人员基础信息字典值
+     */
+    private void setPersonBasicInfo(HashMap<String, Object> basicInfo, Map<String, Map<String, Object>> dictMaps, Map<String, Object> cityMaps) {//0
+        if(StringUtils.isEmpty(dictMaps)){
+            String[] dictKeys = {
+                    COMPREHENSIVE_SEX, //性别
+                    COMPREHENSIVE_NATION, //民族
+                    COMPREHENSIVE_MARITAL_STATUS, //婚姻状况
+                    COMPREHENSIVE_EDUCATIONAL_BACKGROUND, //学历
+                    COMPREHENSIVE_RELIGIOUS_BELIEF, //宗教信仰
+                    COMPREHENSIVE_POLITICAL_STATUS, //政治面貌
+                    COMPREHENSIVE_OCCUPATIONAL_CATEGORY //职业类别
+            };
+            dictMaps = DictUtils.getDictCacheToMapByArray(dictKeys);
+        }
+        if(StringUtils.isEmpty(cityMaps)){
+            cityMaps = getComprehensiveDictCacheToMap(DictKeys.COMPREHENSIVE_CITY_CODE);
+        }
+        basicInfo.put("genderLabel", MapUtils.getMap(dictMaps, COMPREHENSIVE_SEX).get(mapUtilsGetString(basicInfo, "gender")));//性别字典值
+        basicInfo.put("nationLabel", MapUtils.getMap(dictMaps, COMPREHENSIVE_NATION).get(mapUtilsGetString(basicInfo, "nation")));//民族字典值
+        basicInfo.put("maritalStatusLabel", MapUtils.getMap(dictMaps, COMPREHENSIVE_MARITAL_STATUS).get(mapUtilsGetString(basicInfo, "maritalStatus")));//婚姻状况字典值
+        basicInfo.put("educationLabel", MapUtils.getMap(dictMaps, COMPREHENSIVE_EDUCATIONAL_BACKGROUND).get(mapUtilsGetString(basicInfo, "education")));//学历字典值
+        basicInfo.put("religiousBeliefLabel", null == MapUtils.getString(basicInfo, "religiousBelief") ? null : MapUtils.getMap(dictMaps, COMPREHENSIVE_RELIGIOUS_BELIEF).get(MapUtils.getString(basicInfo, "religiousBelief")));//宗教信仰字典值
+        basicInfo.put("politicalOutlookLabel", MapUtils.getMap(dictMaps, COMPREHENSIVE_POLITICAL_STATUS).get(mapUtilsGetString(basicInfo, "politicalOutlook")));//政治面貌字典值
+        basicInfo.put("occupationalCategoryLabel", MapUtils.getMap(dictMaps, COMPREHENSIVE_OCCUPATIONAL_CATEGORY).get(mapUtilsGetString(basicInfo, "occupationalCategory")));//职业类别字典值
+        basicInfo.put("householdRegistrationLabel", cityMaps.get(mapUtilsGetString(basicInfo, "householdRegistration")));//户籍地 2260
+        basicInfo.put("nativePlaceLabel", cityMaps.get(mapUtilsGetString(basicInfo, "nativePlace")));//籍贯 2260
+        basicInfo.put("currentResidencePlaceLabel", cityMaps.get(mapUtilsGetString(basicInfo,"currentResidencePlace")));
+        basicInfo.put("isResidentLabel", "1".equals(MapUtils.getString(basicInfo, "isResident"))? "是":"否");
+    }
+
+    private void setDictValue(List<HashMap<String, Object>> rows){
+        String[] dictKeys = {
+                COMPREHENSIVE_SEX, //性别
+                COMPREHENSIVE_NATION, //民族
+                COMPREHENSIVE_MARITAL_STATUS, //婚姻状况
+                COMPREHENSIVE_EDUCATIONAL_BACKGROUND, //学历
+                COMPREHENSIVE_RELIGIOUS_BELIEF, //宗教信仰
+                COMPREHENSIVE_POLITICAL_STATUS, //政治面貌
+                COMPREHENSIVE_OCCUPATIONAL_CATEGORY //职业类别
+        };
+        Map<String, Map<String, Object>> dictMaps = DictUtils.getDictCacheToMapByArray(dictKeys);
+        Map<String, Object> cityMaps = getComprehensiveDictCacheToMap(COMPREHENSIVE_CITY_CODE);// 2260
+        if (null != rows && !rows.isEmpty()) {
+            for (HashMap<String, Object> row : rows) {
+                setPersonBasicInfo(row, dictMaps, cityMaps);
+            }
+        }
+    }
+
+    /**
+     * 设置户籍人口字典值
+     */
+    private void setRegisteredPopulation(HashMap<String, Object> json) {//1
+        json.put("entryIdentityLabel", getDictData(DictKeys.COMPREHENSIVE_HOUSEHOLDS_IDENTIFICATION, String.valueOf(json.get("entryIdentity"))));//人户一致标识
+        json.put("accountRelationshipLabel", getDictData(DictKeys.COMPREHENSIVE_RELATION, String.valueOf(json.get("accountRelationship"))));//与户主关系
+    }
+
+    /**
+     * 设置流动人口字典值
+     */
+    private void setFloatingPopulation(HashMap<String, Object> json) {//2
+        json.put("inflowCauseLabel", getDictData(DictKeys.COMPREHENSIVE_INFLOW_REASON, String.valueOf(json.get("inflowCause"))));//流入原因
+        json.put("focusPeopleLabel", "1".equals(json.get("focusPeople")) ? "是" : "否");//是否重点关注人员
+        json.put("certificationTypeLabel", null == json.get("certificationType") ? null : getDictData(DictKeys.COMPREHENSIVE_CERTIFICATION_TYPE, String.valueOf(json.get("certificationType"))));//办证类型
+        json.put("domicileTypeLabel", getDictData(DictKeys.COMPREHENSIVE_RESIDENCE_TYPE, String.valueOf(json.get("domicileType"))));//住所类型
+    }
+
+    /**
+     * 设置留守人口字典值
+     */
+    private void setLeftBehindPerson(HashMap<String, Object> json) {//3
+        json.put("entryIdentityLabel", getDictData(DictKeys.COMPREHENSIVE_HOUSEHOLDS_IDENTIFICATION, String.valueOf(json.get("entryIdentity"))));//人户一致标识
+        json.put("leftBehindTypeLabel", getDictData(DictKeys.COMPREHENSIVE_LEFT_BEHIND_PERSONNEL_TYPE, String.valueOf(json.get("leftBehindType"))));//留守人员类型
+        json.put("healthStatusLabel", null == json.get("healthStatus") ? null : getDictData(DictKeys.COMPREHENSIVE_HEALTH_STATUS, String.valueOf(json.get("healthStatus"))));//健康状况
+        json.put("leftBehindRelationshipLabel", getDictData(DictKeys.COMPREHENSIVE_RELATION, String.valueOf(json.get("leftBehindRelationship"))));//与留守人员关系
+        json.put("keyFamilyHealthStatusLabel", null == json.get("keyFamilyHealthStatus") ? null : getDictData(DictKeys.COMPREHENSIVE_HEALTH_STATUS, String.valueOf(json.get("keyFamilyHealthStatus"))));//家庭主要成员健康状况
+    }
+
+    /**
+     * 设置校园周边重点人员字典值
+     */
+    private void setCampusAroundPerson(HashMap<String, Object> json) {//4
+        json.put("harmLevelLabel", getDictData(DictKeys.COMPREHENSIVE_DEGREE_OF_HARM, String.valueOf(json.get("harmLevel"))));//危害程度
+        json.put("focusPeopleLabel", "1".equals(json.get("focusPeople")) ? "是" : "否");//是否关注
+    }
+
+    /**
+     * 设置刑满释放人员字典值
+     */
+    private void setPrisonReleased(HashMap<String, Object> json) {//5
+        json.put("originalChargeLabel", getDictData(DictKeys.COMPREHENSIVE_OFFENCES_CLASSIFICATION, String.valueOf(json.get("originalCharge"))));//原罪名
+        json.put("recidivismLabel", "1".equals(json.get("recidivism")) ? "是" : "否");//是否累犯
+        json.put("riskAssessmentTypeLabel", getDictData(DictKeys.COMPREHENSIVE_HAZARD_ASSESSMENT_TYPE, String.valueOf(json.get("riskAssessmentType"))));//危险性评估类型
+        json.put("linkUpStatusLabel", getDictData(DictKeys.COMPREHENSIVE_CONNECTION, String.valueOf(json.get("linkUpStatus"))));//衔接情况
+        json.put("placementStatusLabel", getDictData(DictKeys.COMPREHENSIVE_PLACEMENT, String.valueOf(json.get("placementStatus"))));//安置情况
+        json.put("reoffendLabel", "1".equals(json.get("reoffend")) ? "是" : "否");//是否重新犯罪
+    }
+
+    /**
+     * 设置社区矫正人员字典值
+     */
+    private void setCommunityCorrectionStaff(HashMap<String, Object> json) {//6
+        json.put("caseCategoryLabel", getDictData(DictKeys.COMPREHENSIVE_CASE_CATEGORY, String.valueOf(json.get("caseCategory"))));//案件类别
+        json.put("correctiveReleaseTypeLabel", null == json.get("correctiveReleaseType") ? null : getDictData(DictKeys.COMPREHENSIVE_CORRECTIVE_RELEASE_TYPE, String.valueOf(json.get("correctiveReleaseType"))));//矫正解除(终止)类型
+        json.put("receivingModeLabel", getDictData(DictKeys.COMPREHENSIVE_RECEIVING_METHOD, String.valueOf(json.get("receivingMode"))));//接收方式
+        json.put("correctionClassLabel", getDictData(DictKeys.COMPREHENSIVE_CORRECTIVE_CATEGORY, String.valueOf(json.get("correctionClass"))));//矫正类别
+        json.put("tubeLabel", "1".equals(json.get("tube")) ? "是" : "否");//是否有脱管
+        json.put("leakingPipesLabel", "1".equals(json.get("leakingPipes")) ? "是" : "否");//是否有漏管
+        json.put("recidivismLabel", null == json.get("recidivism") ? null : "1".equals(json.get("recidivism")) ? "是" : "否");//是否累惯犯
+        json.put("establishCorrectionTeamLabel", "1".equals(json.get("establishCorrectionTeam")) ? "是" : "否");//是否建立矫正小组
+        json.put("reoffendLabel", "1".equals(json.get("reoffend")) ? "是" : "否");//是否重新犯罪
+        json.put("fourHistoriesListLabel", getDictDataList(DictKeys.COMPREHENSIVE_FOUR_HISTORIES_SITUATION, (List<String>) json.get("fourHistoriesList")));//“四史”情况
+        json.put("threeStepListLabel", getDictDataList(DictKeys.COMPREHENSIVE_THREE_INVOLVED_SITUATION, (List<String>) json.get("threeStepList")));//“三涉”情况
+        json.put("correctionTeamCompositionListLabel", getDictDataList(DictKeys.COMPREHENSIVE_CORRECTIONS_TEAM_COMPOSITION_TYPE, (List<String>) json.get("correctionTeamCompositionList")));//矫正小组人员组成情况
+    }
+
+    /**
+     * 设置肇事肇祸及严重精神障碍患者字典值
+     */
+    private void setPsychosisPopulation(HashMap<String, Object> json) {//7
+        json.put("familyEconomicSituationLabel", null == json.get("familyEconomicSituation") ? null : getDictData(DictKeys.COMPREHENSIVE_HOUSEHOLDS_FINANCIAL_SITUATION, String.valueOf(json.get("familyEconomicSituation"))));//家庭经济状况
+        json.put("subsistenceAllowanceLabel", "1".equals(json.get("subsistenceAllowance")) ? "是" : "否");//是否纳入低保
+        json.put("diagnosisTypeLabel", getDictData(DictKeys.COMPREHENSIVE_CURRENT_DIAGNOSTIC, String.valueOf(json.get("diagnosisType"))));//目前诊断类型
+        json.put("historyCausingAccidentsLabel", "1".equals(json.get("historyCausingAccidents")) ? "有" : "无");//有无肇事肇祸史
+        json.put("riskAssessmentLevelLabel", getDictData(DictKeys.COMPREHENSIVE_HAZARD_ASSESSMENT, String.valueOf(json.get("riskAssessmentLevel"))));//目前危险性评估等级
+        json.put("treatmentSituationLabel", getDictData(DictKeys.COMPREHENSIVE_TREATMENT_CONDITIONS, String.valueOf(json.get("treatmentSituation"))));//治疗情况
+        json.put("reasonsHospitalizationListLabel", getDictDataList(DictKeys.COMPREHENSIVE_HOSPITALIZATION_REASONS, (List<String>) json.get("reasonsHospitalizationList")));//实施住院治疗原因
+        json.put("participatingManagersListLabel", getDictDataList(DictKeys.COMPREHENSIVE_MANAGERS, (List<String>) json.get("participatingManagersList")));//参与管理人员
+        json.put("assistanceSituationListLabel", getDictDataList(DictKeys.COMPREHENSIVE_HELP_SITUATION, (List<String>) json.get("assistanceSituationList")));//帮扶情况
+    }
+
+    /**
+     * 设置吸毒人员字典值
+     */
+    private void setDrugAddict(HashMap<String, Object> json) {//8
+        json.put("controlSituationLabel", getDictData(DictKeys.COMPREHENSIVE_GOVERNANCE, String.valueOf(json.get("controlSituation"))));//管控情况
+        json.put("criminalHistoryLabel", null == json.get("criminalHistory") ? null : "1".equals(json.get("criminalHistory")) ? "有" : "无");//有无犯罪史
+        json.put("drugUseLabel", getDictData(DictKeys.COMPREHENSIVE_CASE_REASON, String.valueOf(json.get("drugUse"))));//吸毒原因
+        json.put("drugAbuseLabel", null == json.get("drugAbuse") ? null : getDictData(DictKeys.COMPREHENSIVE_CASE_CONSEQUENCE, String.valueOf(json.get("drugAbuse"))));//吸毒后果
+    }
+
+    /**
+     * 设置艾滋病危险人员字典值
+     */
+    private void setAidsRisk(HashMap<String, Object> json) {//9
+        json.put("routeInfectionLabel", getDictData(DictKeys.COMPREHENSIVE_ROUTE_OF_INFECTION, String.valueOf(json.get("routeInfection"))));//感染途径
+        json.put("criminalHistoryLabel", "1".equals(json.get("criminalHistory")) ? "是" : "否");//是否有违法犯罪史
+        json.put("caseCategoryLabel", null == json.get("caseCategory") ? null : getDictData(DictKeys.COMPREHENSIVE_CASE_CATEGORY, String.valueOf(json.get("caseCategory"))));//案件类别
+        json.put("concernTypeLabel", getDictData(DictKeys.COMPREHENSIVE_TYPE_OF_CONCERN, String.valueOf(json.get("concernType"))));//关注类型
+        json.put("admissionSituationLabel", null == json.get("admissionSituation") ? null : getDictData(DictKeys.COMPREHENSIVE_ADMISSION_TO_INERTIA, String.valueOf(json.get("admissionSituation"))));//收治情况
+    }
+
+    /**
+     * 设置重点青少年字典值
+     */
+    private void setKeyYouth(HashMap<String, Object> json) {//10
+        json.put("personTypeLabel", null == json.get("personType") ? null : getDictData(COMPREHENSIVE_TYPE_OF_PERSON, mapUtilsGetString(json,"personType")));//人员类型
+        json.put("familySituationLabel", getDictData(COMPREHENSIVE_FAMILY_INERTIA, mapUtilsGetString(json,"familySituation")));//家庭情况
+        json.put("guardianRelationLabel", getDictData(COMPREHENSIVE_RELATION, mapUtilsGetString(json,"guardianRelation")));//与监护人关系
+        json.put("reoffendLabel", "1".equals(MapUtils.getString(json,"reoffend")) ? "是" : "否");//是否违法犯罪
+        json.put("meansAssistanceLabel", getDictData(COMPREHENSIVE_MEANS_OF_HELP, mapUtilsGetString(json,"meansAssistance")));//帮扶手段
+    }
+
+    private String getDictData(String dictKey, String value) {
+        return DictUtils.getDictDataByValue(dictKey, value);
+    }
+
+    private List<String> getDictDataList(String dictKey, List<String> values) {
+        return DictUtils.getDictDataListByValue(dictKey, values);
+    }
+
+    private String mapUtilsGetString(Map<String, Object> map, String key) {
+        return MapUtils.getString(map,key);
+    }
+
+    /**
+     * 查询其他人员类型列表
+     */
+    @GetMapping("/PersonBasicInfo/getOtherList")
+    public AjaxResult getOtherList(PersonBasicInfo personBasicInfo) {
+        PageDomain pageDomain = TableSupport.buildPageRequest();
+        //noinspection unchecked
+        List<HashMap<String, Object>> rows = (List<HashMap<String, Object>>) personBasicInfoService.getOtherList(
+                pageDomain.getPageNum(),
+                pageDomain.getPageSize(),
+                personBasicInfo.getDelFlag(),
+                personBasicInfo.getPersonType(),
+                personBasicInfo.getTotal()
+        ).get("data");
+        if (null != rows && !rows.isEmpty()) {
+            setDictValue(rows);
+        }
+        return AjaxResult.success(rows);
+    }
+
+    /**
+     * 查询其他类型人员详情
+     */
+    @GetMapping("/PersonBasicInfo/getOtherEdit")
+    public AjaxResult getOtherEdit(OtherPersonInfo otherPersonInfo) {
+        AjaxResult otherEdit = personBasicInfoService.getOtherEdit(otherPersonInfo.getBasicId(), otherPersonInfo.getPersonType());
+        if ("200".equals(otherEdit.get("code").toString())) {
+            Map<String, Object> comprehensiveDictCacheToMap = getComprehensiveDictCacheToMap(DictKeys.COMPREHENSIVE_CITY_CODE);// 2260
+            HashMap<String, HashMap<String, Object>> data = (HashMap<String, HashMap<String, Object>>) otherEdit.get("data");
+            setPersonBasicInfo(data.get("basicInfo"), null , null);
+            if (!comprehensiveDictCacheToMap.isEmpty()) {
+                data.computeIfPresent("basicInfo", (key, basicInfo) -> {
+                    basicInfo.put("householdRegistrationLabel", comprehensiveDictCacheToMap.get(basicInfo.get("householdRegistration")));// 户籍地 2260
+                    basicInfo.put("nativePlaceLabel", comprehensiveDictCacheToMap.get(basicInfo.get("nativePlace")));// 籍贯 2260
+                    return basicInfo;
+                });
+            }
+            switch (otherPersonInfo.getPersonType()) {
+                case 1:
+                    setRegisteredPopulation(data.get("otherInfo"));
+                    data.put("registeredPopulation", data.remove("otherInfo"));
+                    break;
+                case 2:
+                    setFloatingPopulation(data.get("otherInfo"));
+                    data.put("floatingPopulation", data.remove("otherInfo"));
+                    break;
+                case 3:
+                    setLeftBehindPerson(data.get("otherInfo"));
+                    data.put("leftBehindPerson", data.remove("otherInfo"));
+                    break;
+                case 4:
+                    setCampusAroundPerson(data.get("otherInfo"));
+                    data.put("campusAroundPerson", data.remove("otherInfo"));
+                    break;
+                case 5:
+                    setPrisonReleased(data.get("otherInfo"));
+                    data.put("prisonReleased", data.remove("otherInfo"));
+                    break;
+                case 6:
+                    setCommunityCorrectionStaff(data.get("otherInfo"));
+                    data.put("communityCorrectionStaff", data.remove("otherInfo"));
+                    break;
+                case 7:
+                    setPsychosisPopulation(data.get("otherInfo"));
+                    data.put("psychosisPopulation", data.remove("otherInfo"));
+                    break;
+                case 8:
+                    setDrugAddict(data.get("otherInfo"));
+                    data.put("drugAddict", data.remove("otherInfo"));
+                    break;
+                case 9:
+                    setAidsRisk(data.get("otherInfo"));
+                    data.put("aidsRisk", data.remove("otherInfo"));
+                    break;
+                case 10:
+                    setKeyYouth(data.get("otherInfo"));
+                    data.put("keyYouth", data.remove("otherInfo"));
+                    break;
+                default:
+                    break;
+            }
+            return AjaxResult.success(data);
+        } else {
+            return AjaxResult.error(otherEdit.get("code").toString(), otherEdit.get("msg"));
+        }
+    }
+
+    /**
+     * 查询全部有效的用户信息
+     */
+    @GetMapping("/PersonBasicInfo/getAllUserInfo")
+    public AjaxResult getAllUserInfo(PersonBasicInfo personBasicInfo) {
+        PageDomain pageDomain = TableSupport.buildPageRequest();
+        AjaxResult allUserInfo = personBasicInfoService.getAllUserInfo(personBasicInfo.getName(), pageDomain.getPageNum(), pageDomain.getPageSize());
+        if (HttpStatus.SUCCESS == Integer.valueOf(allUserInfo.get("code").toString())) {
+            Map<String, Object> comprehensiveDictCacheToMap = getComprehensiveDictCacheToMap(DictKeys.COMPREHENSIVE_CITY_CODE);// 2260
+            List<Map<String, Object>> data = (List<Map<String, Object>>) allUserInfo.get("data");
+            if (null != data) {
+                for (Map<String, Object> map : data) {
+                    map.put("householdRegistrationLabel", comprehensiveDictCacheToMap.get(map.get("householdRegistration")));// 户籍地 2260
+                    map.put("nativePlaceLabel", comprehensiveDictCacheToMap.get(map.get("nativePlace")));// 籍贯 2260
+                    map.put("currentResidencePlaceLabel", comprehensiveDictCacheToMap.get(map.get("currentResidencePlace")));// 2260
+                }
+            }
+            return AjaxResult.success(allUserInfo.get("rows"));
+        } else {
+            return AjaxResult.error(allUserInfo.get("code").toString(), allUserInfo.get("msg"));
+        }
+    }
+
+}

+ 108 - 0
src/main/java/com/sooka/sponest/mobile/comprehensive/schoolSafetyController/AppSafetyInvolvedController.java

@@ -0,0 +1,108 @@
+package com.sooka.sponest.mobile.comprehensive.schoolSafetyController;
+
+import com.ruoyi.common.core.constant.HttpStatus;
+import com.ruoyi.common.core.domain.DictKeys;
+import com.ruoyi.common.core.web.controller.BaseController;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.web.page.PageDomain;
+import com.ruoyi.common.core.web.page.TableDataInfo;
+import com.ruoyi.common.core.web.page.TableSupport;
+import com.ruoyi.common.security.utils.DictUtils;
+import com.sooka.sponest.comprehensive.api.comprehensiveSchoolSafety.domain.ComprehensiveSafetyInvolved;
+import com.sooka.sponest.comprehensive.api.comprehensiveSchoolSafety.service.RemoteSafetyInvolvedService;
+import org.apache.commons.collections4.MapUtils;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 涉及师生安全的案(事)件app
+ *
+ * @author hanfucheng
+ * @date 2023/9/18 9:39
+ */
+@RestController
+@RequestMapping("/AppSafetyInvolvedController")
+public class AppSafetyInvolvedController extends BaseController {
+
+    @Resource
+    RemoteSafetyInvolvedService remoteSafetyInvolvedService;
+
+    /**
+     * 查询涉及师生安全的案(事)件列表
+     */
+    @GetMapping("/SafetyInvolved/list")
+    public AjaxResult list(ComprehensiveSafetyInvolved comprehensiveSafetyInvolved) {
+        PageDomain pageDomain = TableSupport.buildPageRequest();
+        Integer pageNum = pageDomain.getPageNum();
+        Integer pageSize = pageDomain.getPageSize();
+        TableDataInfo tableDataInfo = remoteSafetyInvolvedService.selectComprehensiveSafetyInvolvedList(pageNum, pageSize, comprehensiveSafetyInvolved.getCaseName());
+        if (HttpStatus.SUCCESS == tableDataInfo.getCode()) {
+            List<Map<String,Object>> rows = (List<Map<String, Object>>) tableDataInfo.getRows();
+            Map<String,Object> comprehensiveCityCode = DictUtils.getComprehensiveDictCacheToMap(DictKeys.COMPREHENSIVE_CITY_CODE);
+            Map<String,Object> comprehensiveNatureOfTheCase = DictUtils.getDictCacheToMap(DictKeys.COMPREHENSIVE_NATURE_OF_THE_CASE);
+            Map<String,Object> comprehensiveCertificateCode = DictUtils.getDictCacheToMap(DictKeys.COMPREHENSIVE_CERTIFICATE_CODE);
+            Map<String,Object> comprehensiveCasesGrading = DictUtils.getDictCacheToMap(DictKeys.COMPREHENSIVE_CASES_GRADING);
+            for (Map<String, Object> row : rows) {
+                row.put("occurPlaceLabel", MapUtils.getString(comprehensiveCityCode,MapUtils.getString(row,"occurPlace")));
+                row.put("caseNatureLabel",MapUtils.getString(comprehensiveNatureOfTheCase, MapUtils.getString(row,"caseNature")));
+                row.put("mainSuspectIdCodeLabel",MapUtils.getString(comprehensiveCertificateCode, MapUtils.getString(row,"mainSuspectIdCode")));
+                row.put("solvedLabel",MapUtils.getLong(row,"solved") == 1? "是":"否");
+                row.put("eventLevelLabel",MapUtils.getString(comprehensiveCasesGrading,MapUtils.getString(row,"eventLevel")));
+            }
+            return AjaxResult.success(rows);
+        } else {
+            return AjaxResult.error(tableDataInfo.getCode(), tableDataInfo.getMsg());
+        }
+    }
+
+
+    /**
+     * 获取涉及师生安全的案(事)件详细信息
+     */
+    @GetMapping("/SafetyInvolved/edit")
+    public AjaxResult getInfo(String id) {
+        AjaxResult ajaxResult = remoteSafetyInvolvedService.selectComprehensiveSafetyInvolvedById(id);
+        if("200".equals(MapUtils.getString(ajaxResult,"code"))){
+            HashMap<String,Object> comprehensiveSafetyInvolved = (HashMap<String, Object>) ajaxResult.get("data");
+            Map<String,Object> comprehensiveCityCode = DictUtils.getComprehensiveDictCacheToMap(DictKeys.COMPREHENSIVE_CITY_CODE);
+            comprehensiveSafetyInvolved.put("occurPlaceLabel", MapUtils.getString(comprehensiveCityCode,MapUtils.getString(comprehensiveSafetyInvolved,"occurPlace")));
+            comprehensiveSafetyInvolved.put("caseNatureLabel",DictUtils.getDictDataByValue(DictKeys.COMPREHENSIVE_NATURE_OF_THE_CASE, MapUtils.getString(comprehensiveSafetyInvolved,"caseNature")));
+            comprehensiveSafetyInvolved.put("mainSuspectIdCodeLabel",DictUtils.getDictDataByValue(DictKeys.COMPREHENSIVE_CERTIFICATE_CODE, MapUtils.getString(comprehensiveSafetyInvolved,"mainSuspectIdCode")));
+            comprehensiveSafetyInvolved.put("solvedLabel",MapUtils.getLong(comprehensiveSafetyInvolved,"solved") == 1? "是":"否");
+            comprehensiveSafetyInvolved.put("eventLevelLabel",DictUtils.getDictDataByValue(DictKeys.COMPREHENSIVE_CASES_GRADING, MapUtils.getString(comprehensiveSafetyInvolved,"eventLevel")));
+
+            return AjaxResult.success(comprehensiveSafetyInvolved);
+        }else{
+            return AjaxResult.error(MapUtils.getString(ajaxResult,"code"), MapUtils.getString(ajaxResult,"msg"));
+        }
+    }
+
+    /**
+     * 新增涉及师生安全的案(事)件
+     */
+    @PostMapping("/SafetyInvolved")
+    public AjaxResult add(@RequestBody String json) {
+        return remoteSafetyInvolvedService.insertComprehensiveSafetyInvolved(json);
+    }
+
+    /**
+     * 修改涉及师生安全的案(事)件
+     */
+    @PostMapping("/SafetyInvolved/put")
+    public AjaxResult edit(@RequestBody String json) {
+        return remoteSafetyInvolvedService.updateComprehensiveSafetyInvolved(json);
+    }
+
+    /**
+     * 删除涉及师生安全的案(事)件
+     */
+    @GetMapping("/SafetyInvolved/del")
+    public AjaxResult remove(@RequestParam("id") List<String> id) {
+        return remoteSafetyInvolvedService.deleteComprehensiveSafetyInvolvedByIds(id.toArray(new String[0]));
+    }
+
+}

+ 101 - 0
src/main/java/com/sooka/sponest/mobile/comprehensive/schoolSafetyController/AppSchoolController.java

@@ -0,0 +1,101 @@
+package com.sooka.sponest.mobile.comprehensive.schoolSafetyController;
+
+import com.ruoyi.common.core.constant.HttpStatus;
+import com.ruoyi.common.core.domain.DictKeys;
+import com.ruoyi.common.core.web.controller.BaseController;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.web.page.PageDomain;
+import com.ruoyi.common.core.web.page.TableDataInfo;
+import com.ruoyi.common.core.web.page.TableSupport;
+import com.ruoyi.common.security.utils.DictUtils;
+import com.sooka.sponest.comprehensive.api.comprehensiveSchoolSafety.domain.ComprehensiveSchool;
+import com.sooka.sponest.comprehensive.api.comprehensiveSchoolSafety.service.RemoteSchoolService;
+import org.apache.commons.collections4.MapUtils;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 学校app
+ *
+ * @author hanfucheng
+ * @date 2023/9/18 9:39
+ */
+@RestController
+@RequestMapping("/AppSchoolController")
+public class AppSchoolController extends BaseController {
+
+    @Resource
+    RemoteSchoolService remoteSchoolService;
+
+    /**
+     * 查询学校列表
+     */
+    @GetMapping("/leader/list")
+    public AjaxResult list(ComprehensiveSchool comprehensiveSchool) {
+        PageDomain pageDomain = TableSupport.buildPageRequest();
+        Integer pageNum = pageDomain.getPageNum();
+        Integer pageSize = pageDomain.getPageSize();
+        TableDataInfo tableDataInfo = remoteSchoolService.selectComprehensiveSchoolList(pageNum, pageSize, comprehensiveSchool.getSchoolName());
+        if(HttpStatus.SUCCESS == tableDataInfo.getCode()){
+            List<Map<String,Object>> rows = (List<Map<String, Object>>) tableDataInfo.getRows();
+            Map<String,Object> map = DictUtils.getDictCacheToMap(DictKeys.COMPREHENSIVE_TYPE_OF_SCHOOL);
+            Map<String,Object> map1 = DictUtils.getComprehensiveDictCacheToMap(DictKeys.COMPREHENSIVE_CITY_CODE);
+            if (!rows.isEmpty()) {
+                for (Map<String,Object> datum : rows) {
+                    datum.put("schoolTypeLabel",MapUtils.getString(map,MapUtils.getString(datum,"schoolType")));
+                    datum.put("educationAdminDeptLabel", MapUtils.getString(map1,MapUtils.getString(datum,"educationAdminDept")));
+                }
+            }
+            return AjaxResult.success(rows);
+        }else{
+            return AjaxResult.error(tableDataInfo.getCode(),tableDataInfo.getMsg());
+        }
+    }
+
+
+    /**
+     * 获取学校详细信息
+     */
+    @GetMapping("/leader/edit")
+    public AjaxResult getInfo(String id) {
+        AjaxResult ajaxResult = remoteSchoolService.selectComprehensiveSchoolById(id);
+        if("200".equals(MapUtils.getString(ajaxResult,"code"))){
+            HashMap<String,Object> comprehensiveSchool = (HashMap<String, Object>) ajaxResult.get("data");
+            Map<String,Object> map = DictUtils.getComprehensiveDictCacheToMap(DictKeys.COMPREHENSIVE_CITY_CODE);
+            comprehensiveSchool.put("schoolTypeLabel",DictUtils.getDictDataByValue(DictKeys.COMPREHENSIVE_TYPE_OF_SCHOOL, MapUtils.getString(comprehensiveSchool,"schoolType")));
+            comprehensiveSchool.put("educationAdminDeptLabel", MapUtils.getString(map,MapUtils.getString(comprehensiveSchool,"educationAdminDept")));
+            return AjaxResult.success(comprehensiveSchool);
+        }else{
+            return AjaxResult.error(MapUtils.getString(ajaxResult,"code"), MapUtils.getString(ajaxResult,"msg"));
+        }
+    }
+
+    /**
+     * 新增学校
+     */
+    @PostMapping("/leader")
+    public AjaxResult add(@RequestBody String json) {
+        return remoteSchoolService.insertComprehensiveSchool(json);
+    }
+    /**
+     * 修改学校
+     */
+    @PostMapping("/leader/put")
+    public AjaxResult edit(@RequestBody String json) {
+        return remoteSchoolService.updateComprehensiveSchool(json);
+    }
+
+    /**
+     * 删除学校
+     */
+    @GetMapping("/leader/del")
+    public AjaxResult remove(@RequestParam("id") List<String> id) {
+        return remoteSchoolService.deleteComprehensiveSchoolByIds(id.toArray(new String[0]));
+    }
+
+
+}

+ 83 - 0
src/main/java/com/sooka/sponest/mobile/comprehensive/socialPolicingController/AppBasicHomicideInformationController.java

@@ -0,0 +1,83 @@
+package com.sooka.sponest.mobile.comprehensive.socialPolicingController;
+
+import com.ruoyi.common.core.constant.HttpStatus;
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.web.page.PageDomain;
+import com.ruoyi.common.core.web.page.TableDataInfo;
+import com.ruoyi.common.core.web.page.TableSupport;
+import com.sooka.sponest.comprehensive.api.comprehensiveSocialPolicing.domain.BasicHomicideInformation;
+import com.sooka.sponest.comprehensive.api.comprehensiveSocialPolicing.service.RemoteBasicHomicideInformationService;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+/**
+ * @Author LG
+ * @Date 2023/9/13 - 9:34
+ */
+@RestController
+@RequestMapping("/AppBasicHomicideInformationController")
+public class AppBasicHomicideInformationController {
+    @Resource
+    private RemoteBasicHomicideInformationService basicHomicideInformationService;
+
+    /**
+     * 命案基本信息列表
+     */
+    @GetMapping("/basicHomicideInformation/list")
+    public AjaxResult list(BasicHomicideInformation basicHomicideInformation) {
+        PageDomain pageDomain = TableSupport.buildPageRequest();
+        Integer pageNum = pageDomain.getPageNum();
+        Integer pageSize = pageDomain.getPageSize();
+        TableDataInfo list = basicHomicideInformationService.getList(pageNum, pageSize);
+        if (HttpStatus.SUCCESS == list.getCode()) {
+            return AjaxResult.success(list.getRows());
+        } else {
+            return AjaxResult.error(list.getCode(), list.getMsg());
+        }
+    }
+
+
+    /**
+     * 命案基本信息详细信息
+     */
+    @GetMapping("/basicHomicideInformation/edit")
+    public AjaxResult getInfo(BasicHomicideInformation basicHomicideInformation) {
+        R<BasicHomicideInformation> edit = basicHomicideInformationService.getEdit(basicHomicideInformation.getId());
+        BasicHomicideInformation data = edit.getData();
+        if (HttpStatus.SUCCESS == edit.getCode()) {
+            data.setIsEdit(true);
+        } else if (HttpStatus.ERROR == edit.getCode() && null != edit.getData()) {
+            data.setIsEdit(false);
+        } else {
+            return AjaxResult.error(edit.getCode(), edit.getMsg());
+        }
+        return AjaxResult.success(data);
+    }
+
+    /**
+     * 新增命案基本信息
+     */
+    @PostMapping("/basicHomicideInformation")
+    public AjaxResult add(@RequestBody String json) {
+        return basicHomicideInformationService.add(json);
+    }
+
+    /**
+     * 修改命案基本信息
+     */
+    @PostMapping("/basicHomicideInformation/put")
+    public AjaxResult edit(@RequestBody String json) {
+        return basicHomicideInformationService.edit(json);
+    }
+
+    /**
+     * 删除命案基本信息
+     */
+    @GetMapping("/basicHomicideInformation/del")
+    public AjaxResult remove(@RequestParam("id") List<String> id) {
+        return basicHomicideInformationService.del(id.toArray(new String[0]));
+    }
+}

+ 97 - 0
src/main/java/com/sooka/sponest/mobile/comprehensive/socialPolicingController/AppRemediationInKeyAreaController.java

@@ -0,0 +1,97 @@
+package com.sooka.sponest.mobile.comprehensive.socialPolicingController;
+
+import com.ruoyi.common.core.constant.HttpStatus;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.web.page.PageDomain;
+import com.ruoyi.common.core.web.page.TableDataInfo;
+import com.ruoyi.common.core.web.page.TableSupport;
+import com.ruoyi.common.security.utils.DictUtils;
+import com.sooka.sponest.comprehensive.api.comprehensiveSocialPolicing.domain.RemediationInKeyArea;
+import com.sooka.sponest.comprehensive.api.comprehensiveSocialPolicing.service.RemoteRemediationInKeyAreaService;
+import com.ruoyi.common.core.domain.DictKeys;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @Author LG
+ * @Date 2023/9/13 - 10:24
+ */
+@RestController
+@RequestMapping("/AppRemediationInKeyAreaController")
+public class AppRemediationInKeyAreaController {
+    @Resource
+    private RemoteRemediationInKeyAreaService remediationInKeyAreaService;
+
+    /**
+     * 重点地区排查整治列表
+     */
+    @GetMapping("/remediationInKeyArea/list")
+    public AjaxResult list(RemediationInKeyArea remediationInKeyArea) {
+        PageDomain pageDomain = TableSupport.buildPageRequest();
+        Integer pageNum = pageDomain.getPageNum();
+        Integer pageSize = pageDomain.getPageSize();
+        TableDataInfo list = remediationInKeyAreaService.getList(pageNum, pageSize);
+        Map<String, Object> policingIssues = DictUtils.getDictCacheToMap(DictKeys.COMPREHENSIVE_POLICING_ISSUES);
+        Map<String, Object> regionsInvolved = DictUtils.getDictCacheToMap(DictKeys.COMPREHENSIVE_REGIONS_INVOLVED);
+        Map<String, Object> effectivenessEvaluation = DictUtils.getDictCacheToMap(DictKeys.COMPREHENSIVE_EFFECTIVENESS_EVALUATION);
+
+        if (HttpStatus.SUCCESS == list.getCode()) {
+            List<HashMap<String, Object>> rows = (List<HashMap<String, Object>>) list.getRows();
+            for (HashMap<String, Object> row : rows) {
+                row.put("outstandingSecurityIssuesLabel",policingIssues.get(row.get("outstandingSecurityIssues")));
+                row.put("areaInvolvedTypeLabel",regionsInvolved.get(row.get("areaInvolvedType")));
+                row.put("effectivenessEvaluationLabel",effectivenessEvaluation.get(row.get("effectivenessEvaluation")));
+            }
+            return AjaxResult.success(rows);
+        } else {
+            return AjaxResult.error(list.getCode(), list.getMsg());
+        }
+    }
+
+
+    /**
+     * 重点地区排查整治详细信息
+     */
+    @GetMapping("/remediationInKeyArea/edit")
+    public AjaxResult getInfo(RemediationInKeyArea remediationInKeyArea) {
+        AjaxResult edit = remediationInKeyAreaService.getEdit(remediationInKeyArea.getId());
+        if("200".equals(edit.get("code").toString())){
+            HashMap<String,Object> data = (HashMap<String, Object>) edit.get("data");
+            data.put("outstandingSecurityIssuesLabel",DictUtils.getDictDataByValue(DictKeys.COMPREHENSIVE_POLICING_ISSUES,data.get("outstandingSecurityIssues").toString()));
+            data.put("areaInvolvedTypeLabel",DictUtils.getDictDataByValue(DictKeys.COMPREHENSIVE_REGIONS_INVOLVED,data.get("areaInvolvedType").toString()));
+            data.put("effectivenessEvaluationLabel",DictUtils.getDictDataByValue(DictKeys.COMPREHENSIVE_EFFECTIVENESS_EVALUATION,data.get("effectivenessEvaluation").toString()));
+            return AjaxResult.success(data);
+        }else{
+            return edit;
+        }
+    }
+
+    /**
+     * 新增重点地区排查整治
+     */
+    @PostMapping("/remediationInKeyArea")
+    public AjaxResult add(@RequestBody String json) {
+        return remediationInKeyAreaService.add(json);
+    }
+
+    /**
+     * 修改重点地区排查整治
+     */
+    @PostMapping("/remediationInKeyArea/put")
+    public AjaxResult edit(@RequestBody String json) {
+        return remediationInKeyAreaService.edit(json);
+    }
+
+    /**
+     * 删除重点地区排查整治
+     */
+    @GetMapping("/remediationInKeyArea/del")
+    public AjaxResult remove(@RequestParam("id") List<String> id) {
+        return remediationInKeyAreaService.del(id.toArray(new String[0]));
+    }
+
+}

+ 111 - 0
src/main/java/com/sooka/sponest/mobile/comprehensive/socialPolicingController/AppSafetyManagementController.java

@@ -0,0 +1,111 @@
+package com.sooka.sponest.mobile.comprehensive.socialPolicingController;
+
+import com.ruoyi.common.core.constant.HttpStatus;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.web.page.PageDomain;
+import com.ruoyi.common.core.web.page.TableDataInfo;
+import com.ruoyi.common.core.web.page.TableSupport;
+import com.ruoyi.common.security.utils.DictUtils;
+import com.sooka.sponest.comprehensive.api.comprehensiveSocialPolicing.domain.SafetyManagement;
+import com.sooka.sponest.comprehensive.api.comprehensiveSocialPolicing.service.RemoteSafetyManagementService;
+import com.ruoyi.common.core.domain.DictKeys;
+import org.apache.commons.collections4.MapUtils;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @Author LG
+ * @Date 2023/9/13 - 13:44
+ */
+@RestController
+@RequestMapping("/AppSafetyManagementController")
+public class AppSafetyManagementController {
+    @Resource
+    private RemoteSafetyManagementService safetyManagementService;
+
+    /**
+     * 寄递物流安全管理列表
+     */
+    @GetMapping("/safetyManagement/list")
+    public AjaxResult list(SafetyManagement safetyManagement) {
+        PageDomain pageDomain = TableSupport.buildPageRequest();
+        Integer pageNum = pageDomain.getPageNum();
+        Integer pageSize = pageDomain.getPageSize();
+        TableDataInfo list = safetyManagementService.getList(pageNum, pageSize);
+        Map<String, Object> typeOfRegistration = DictUtils.getDictCacheToMap(DictKeys.COMPREHENSIVE_TYPE_OF_REGISTRATION);
+        Map<String, Object> holdingInertia = DictUtils.getDictCacheToMap(DictKeys.COMPREHENSIVE_HOLDING_INERTIA);
+        Map<String, Object> businessType = DictUtils.getDictCacheToMap(DictKeys.COMPREHENSIVE_BUSINESS_TYPE);
+        Map<String,Object> comprehensiveCityCode = DictUtils.getComprehensiveDictCacheToMap(DictKeys.COMPREHENSIVE_CITY_CODE);//籍贯、户籍地、所在地
+
+        if (HttpStatus.SUCCESS == list.getCode()) {
+            List<HashMap<String, Object>> rows = (List<HashMap<String, Object>>) list.getRows();
+            for (HashMap<String, Object> row : rows) {
+                row.put("registrationTypeLabel",typeOfRegistration.get(row.get("registrationType")));
+                row.put("holdingStatusLabel",holdingInertia.get(row.get("holdingStatus")));
+                row.put("enterpriseTypeLabel",businessType.get(row.get("enterpriseType")));
+                row.put("businessScopeLabel",DictUtils.getDictDataListByValue(DictKeys.COMPREHENSIVE_BUSINESS_SCOPE, (List<String>) row.get("businessScope")));
+                row.put("preClosingCheckLabel","1".equals(row.get("preClosingCheck").toString())? "是":"否");
+                row.put("realNameRegistrationLabel","1".equals(row.get("realNameRegistration").toString())? "是":"否");
+                row.put("xrayInspectionLabel","1".equals(row.get("xrayInspection").toString())? "是":"否");
+                row.put("enterprisePlaceLabel", MapUtils.getString(comprehensiveCityCode,MapUtils.getString(row,"enterprisePlace")));
+            }
+            return AjaxResult.success(rows);
+        } else {
+            return AjaxResult.error(list.getCode(), list.getMsg());
+        }
+    }
+
+
+    /**
+     * 寄递物流安全管理详细信息
+     */
+    @GetMapping("/safetyManagement/edit")
+    public AjaxResult getInfo(SafetyManagement safetyManagement) {
+        AjaxResult edit = safetyManagementService.getEdit(safetyManagement.getId());
+        if("200".equals(edit.get("code").toString())){
+            HashMap<String,Object> data = (HashMap<String, Object>) edit.get("data");
+            Map<String,Object> comprehensiveCityCode = DictUtils.getComprehensiveDictCacheToMap(DictKeys.COMPREHENSIVE_CITY_CODE);//籍贯、户籍地、所在地
+
+            data.put("registrationTypeLabel",DictUtils.getDictDataByValue(DictKeys.COMPREHENSIVE_TYPE_OF_REGISTRATION,data.get("registrationType").toString()));
+            data.put("holdingStatusLabel",DictUtils.getDictDataByValue(DictKeys.COMPREHENSIVE_HOLDING_INERTIA,data.get("holdingStatus").toString()));
+            data.put("enterpriseTypeLabel",DictUtils.getDictDataByValue(DictKeys.COMPREHENSIVE_BUSINESS_TYPE,data.get("enterpriseType").toString()));
+            data.put("businessScopeLabel",DictUtils.getDictDataListByValue(DictKeys.COMPREHENSIVE_BUSINESS_SCOPE, (List<String>) data.get("businessScope")));
+            data.put("preClosingCheckLabel","1".equals(data.get("preClosingCheck").toString())? "是":"否");
+            data.put("realNameRegistrationLabel","1".equals(data.get("realNameRegistration").toString())? "是":"否");
+            data.put("xrayInspectionLabel","1".equals(data.get("xrayInspection").toString())? "是":"否");
+
+            data.put("enterprisePlaceLabel",MapUtils.getString(comprehensiveCityCode,MapUtils.getString(data,"enterprisePlace")));
+            return AjaxResult.success(data);
+        }else{
+            return edit;
+        }
+    }
+
+    /**
+     * 新增寄递物流安全管理
+     */
+    @PostMapping("/safetyManagement")
+    public AjaxResult add(@RequestBody String json) {
+        return safetyManagementService.add(json);
+    }
+
+    /**
+     * 修改寄递物流安全管理
+     */
+    @PostMapping("/safetyManagement/put")
+    public AjaxResult edit(@RequestBody String json) {
+        return safetyManagementService.edit(json);
+    }
+
+    /**
+     * 删除寄递物流安全管理
+     */
+    @GetMapping("/safetyManagement/del")
+    public AjaxResult remove(@RequestParam("id") List<String> id) {
+        return safetyManagementService.del(id.toArray(new String[0]));
+    }
+}

+ 144 - 0
src/main/java/com/sooka/sponest/mobile/comprehensive/socialPolicingController/AppVictimController.java

@@ -0,0 +1,144 @@
+package com.sooka.sponest.mobile.comprehensive.socialPolicingController;
+
+import com.ruoyi.common.core.constant.HttpStatus;
+import com.ruoyi.common.core.domain.DictKeys;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.web.page.PageDomain;
+import com.ruoyi.common.core.web.page.TableDataInfo;
+import com.ruoyi.common.core.web.page.TableSupport;
+import com.ruoyi.common.security.utils.DictUtils;
+import com.sooka.sponest.comprehensive.api.comprehensiveSocialPolicing.domain.Victim;
+import com.sooka.sponest.comprehensive.api.comprehensiveSocialPolicing.service.RemoteVictimService;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @Author LG
+ * @Date 2023/9/13 - 14:57
+ */
+@RestController
+@RequestMapping("/AppVictimController")
+public class AppVictimController {
+    @Resource
+    private RemoteVictimService victimService;
+
+    /**
+     * 重点地区排查整治列表
+     */
+    @GetMapping("/victim/list")
+    public AjaxResult list(Victim victim) {
+        PageDomain pageDomain = TableSupport.buildPageRequest();
+        Integer pageNum = pageDomain.getPageNum();
+        Integer pageSize = pageDomain.getPageSize();
+        String type = victim.getType();
+        TableDataInfo list = victimService.getList(pageNum, pageSize, type);
+        Map<String, Object> certificateCode = DictUtils.getDictCacheToMap(DictKeys.COMPREHENSIVE_CERTIFICATE_CODE);//证件代码
+        Map<String, Object> sex = DictUtils.getDictCacheToMap(DictKeys.COMPREHENSIVE_SEX);//性别
+
+
+        Map<String, Object> comprehensiveInternation = DictUtils.getDictCacheToMap("comprehensive_internation");//国籍(地区)
+        Map<String, Object> nation = DictUtils.getDictCacheToMap(DictKeys.COMPREHENSIVE_NATION);//民族
+        Map<String, Object> maritalStatus = DictUtils.getDictCacheToMap(DictKeys.COMPREHENSIVE_MARITAL_STATUS);//婚姻状况
+        Map<String, Object> politicalStatus = DictUtils.getDictCacheToMap(DictKeys.COMPREHENSIVE_POLITICAL_STATUS);//政治面貌
+        Map<String, Object> educationalBackground = DictUtils.getDictCacheToMap(DictKeys.COMPREHENSIVE_EDUCATIONAL_BACKGROUND);//学历
+        Map<String, Object> religiousBelief = DictUtils.getDictCacheToMap(DictKeys.COMPREHENSIVE_RELIGIOUS_BELIEF);//宗教信仰
+        Map<String, Object> occupationalCategory = DictUtils.getDictCacheToMap(DictKeys.COMPREHENSIVE_OCCUPATIONAL_CATEGORY);//职业类别
+
+        Map<String,Object> comprehensiveCityCode = DictUtils.getComprehensiveDictCacheToMap(DictKeys.COMPREHENSIVE_CITY_CODE);//籍贯、户籍地、所在地
+
+        //isSevereMentalDisorderPatient     是否为严重精神障碍患者
+        //isMinor                           是否为未成年人
+        //isJuvenile                        是否为青少年
+
+        if (HttpStatus.SUCCESS == list.getCode()) {
+            List<HashMap<String, Object>> rows = (List<HashMap<String, Object>>) list.getRows();
+            for (HashMap<String, Object> row : rows) {
+
+                row.put("nativePlaceLabel",null == row.get("nativePlace")?"":comprehensiveCityCode.get(row.get("nativePlace")));
+                row.put("registeredResidenceLabel",null == row.get("registeredResidence")?"":comprehensiveCityCode.get(row.get("registeredResidence")));
+                row.put("currentResidenceLabel",null == row.get("currentResidence")?"":comprehensiveCityCode.get(row.get("currentResidence")));
+
+
+                row.put("identityCodeLabel",certificateCode.get(row.get("identityCode")));
+                row.put("genderLabel",sex.get(row.get("gender")));
+
+                row.put("nationalityRegionLabel",null == row.get("nationalityRegion")? "":comprehensiveInternation.get(row.get("nationalityRegion")));
+                row.put("nationLabel",null == row.get("nation")? "":nation.get(row.get("nation")));
+                row.put("maritalStatusLabel",null == row.get("maritalStatus")? "":maritalStatus.get(row.get("maritalStatus")));
+                row.put("politicalOutlookLabel",null == row.get("politicalOutlook")? "":politicalStatus.get(row.get("politicalOutlook")));
+                row.put("educationLabel",null == row.get("education")? "":educationalBackground.get(row.get("education")));
+                row.put("religiousBeliefsLabel",null == row.get("religiousBeliefs")? "":religiousBelief.get(row.get("religiousBeliefs")));
+                row.put("occupationCategoryLabel",null == row.get("occupationCategory")? "":occupationalCategory.get(row.get("occupationCategory")));
+
+                row.put("isSevereMentalDisorderPatientLabel",null == row.get("isSevereMentalDisorderPatient")? "":"1".equals(row.get("isSevereMentalDisorderPatient").toString())?"是":"否");
+                row.put("isMinorLabel",null == row.get("isMinor")? "":"1".equals(row.get("isMinor").toString())?"是":"否");
+                row.put("isJuvenileLabel",null == row.get("isJuvenile")? "":"1".equals(row.get("isJuvenile").toString())?"是":"否");
+            }
+            return AjaxResult.success(rows);
+        } else {
+            return AjaxResult.error(list.getCode(), list.getMsg());
+        }
+    }
+
+
+    /**
+     * 重点地区排查整治详细信息
+     */
+    @GetMapping("/victim/edit")
+    public AjaxResult getInfo(Victim victim) {
+        AjaxResult edit = victimService.getEdit(victim.getId());
+        if("200".equals(edit.get("code").toString())){
+            HashMap<String,Object> data = (HashMap<String, Object>) edit.get("data");
+            Map<String,Object> comprehensiveCityCode = DictUtils.getComprehensiveDictCacheToMap(DictKeys.COMPREHENSIVE_CITY_CODE);//籍贯、户籍地、所在地
+            data.put("identityCodeLabel",DictUtils.getDictDataByValue(DictKeys.COMPREHENSIVE_CERTIFICATE_CODE,data.get("identityCode").toString()));
+            data.put("genderLabel",DictUtils.getDictDataByValue(DictKeys.COMPREHENSIVE_SEX,data.get("gender").toString()));
+            data.put("nationalityRegionLabel",null == data.get("nationalityRegion")? "":DictUtils.getDictDataByValue("comprehensive_internation",data.get("nationalityRegion").toString()));
+            data.put("nationLabel",null == data.get("nation")? "":DictUtils.getDictDataByValue(DictKeys.COMPREHENSIVE_NATION,data.get("nation").toString()));
+            data.put("maritalStatusLabel",null == data.get("maritalStatus")? "":DictUtils.getDictDataByValue(DictKeys.COMPREHENSIVE_MARITAL_STATUS,data.get("maritalStatus").toString()));
+            data.put("politicalOutlookLabel",null == data.get("politicalOutlook")? "":DictUtils.getDictDataByValue(DictKeys.COMPREHENSIVE_POLITICAL_STATUS,data.get("politicalOutlook").toString()));
+            data.put("educationLabel",null == data.get("education")? "":DictUtils.getDictDataByValue(DictKeys.COMPREHENSIVE_EDUCATIONAL_BACKGROUND,data.get("education").toString()));
+            data.put("religiousBeliefsLabel",null == data.get("religiousBeliefs")? "":DictUtils.getDictDataByValue(DictKeys.COMPREHENSIVE_RELIGIOUS_BELIEF,data.get("religiousBeliefs").toString()));
+            data.put("occupationCategoryLabel",null == data.get("occupationCategory")? "":DictUtils.getDictDataByValue(DictKeys.COMPREHENSIVE_OCCUPATIONAL_CATEGORY,data.get("occupationCategory").toString()));
+
+            data.put("isSevereMentalDisorderPatientLabel",null == data.get("isSevereMentalDisorderPatient")? "":"1".equals(data.get("isSevereMentalDisorderPatient").toString())?"是":"否");
+            data.put("isMinorLabel",null == data.get("isMinor")? "":"1".equals(data.get("isMinor").toString())?"是":"否");
+            data.put("isJuvenileLabel",null == data.get("isJuvenile")? "":"1".equals(data.get("isJuvenile").toString())?"是":"否");
+
+            data.put("nativePlaceLabel",null == data.get("nativePlace")?"":comprehensiveCityCode.get(data.get("nativePlace")));
+            data.put("registeredResidenceLabel",null == data.get("registeredResidence")?"":comprehensiveCityCode.get(data.get("registeredResidence")));
+            data.put("currentResidenceLabel",null == data.get("currentResidence")?"":comprehensiveCityCode.get(data.get("currentResidence")));
+
+            return AjaxResult.success(data);
+        }else{
+            return edit;
+        }
+    }
+
+    /**
+     * 新增重点地区排查整治
+     */
+    @PostMapping("/victim")
+    public AjaxResult add(@RequestBody String json) {
+        return victimService.add(json);
+    }
+
+    /**
+     * 修改重点地区排查整治
+     */
+    @PostMapping("/victim/put")
+    public AjaxResult edit(@RequestBody String json) {
+        return victimService.edit(json);
+    }
+
+    /**
+     * 删除重点地区排查整治
+     */
+    @GetMapping("/victim/del")
+    public AjaxResult remove(@RequestParam("id") List<String> id) {
+        return victimService.del(id.toArray(new String[0]));
+    }
+}

+ 80 - 0
src/main/java/com/sooka/sponest/mobile/data/basicdatacontroller/CarController.java

@@ -0,0 +1,80 @@
+package com.sooka.sponest.mobile.data.basicdatacontroller;
+
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.web.page.PageDomain;
+import com.ruoyi.common.core.web.page.TableSupport;
+import com.sooka.sponest.data.api.basicdata.domain.Car;
+import com.sooka.sponest.data.api.basicdata.service.RemoteCarService;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+
+@RestController
+@RequestMapping("AppCarController")
+public class CarController {
+    @Resource
+    RemoteCarService remoteCarService;
+
+    /**
+     * 获取车辆管理
+     *
+     * @param centerdataTForestCar
+     * @return
+     */
+    @GetMapping("/car/list")
+    public AjaxResult carList(Car centerdataTForestCar) {
+        PageDomain pageDomain = TableSupport.buildPageRequest();
+        Integer pageNum = pageDomain.getPageNum();
+        Integer pageSize = pageDomain.getPageSize();
+        String licenseNum = centerdataTForestCar.getLicenseNum();
+        return AjaxResult.success(remoteCarService.carList(pageNum, pageSize, licenseNum).getRows());
+
+    }
+
+    /**
+     * 获取车辆管理详情
+     *
+     * @param
+     * @return
+     */
+    @GetMapping("/car/edit")
+    public AjaxResult carEdit(String id) {
+        return remoteCarService.carEdit(id);
+    }
+
+    /**
+     * 新增车辆管理
+     *
+     * @param
+     * @return
+     */
+    @PostMapping("/car")
+    public AjaxResult car(@RequestBody String json) {
+        return remoteCarService.addCar(json);
+    }
+
+    /**
+     * 修改车辆管理
+     *
+     * @param
+     * @return
+     */
+    @PostMapping("/car/put")
+    public AjaxResult putCar(@RequestBody String json) {
+        return remoteCarService.putCar(json);
+    }
+
+    /**
+     * 删除车辆管理
+     *
+     * @param
+     * @return
+     */
+    @GetMapping("/car/del")
+    public AjaxResult delCar(@RequestParam("id") List<String> id) {
+        return remoteCarService.delCar(id.toArray(new String[0]));
+    }
+
+}

+ 81 - 0
src/main/java/com/sooka/sponest/mobile/data/basicdatacontroller/CarRepairController.java

@@ -0,0 +1,81 @@
+package com.sooka.sponest.mobile.data.basicdatacontroller;
+
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.web.page.PageDomain;
+import com.ruoyi.common.core.web.page.TableSupport;
+import com.sooka.sponest.data.api.basicdata.domain.Carrepair;
+import com.sooka.sponest.data.api.basicdata.service.RemoteCarrepairService;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.Date;
+import java.util.List;
+
+@RestController
+@RequestMapping("AppCarrepairController")
+public class CarRepairController {
+    @Resource
+    RemoteCarrepairService remoteCarrepairService;
+
+    /**
+     * 获取车辆保养
+     *
+     * @param centerdataTForestCarrepair
+     * @return
+     */
+    @GetMapping("/carrepair/list")
+    public AjaxResult carrepairList(Carrepair centerdataTForestCarrepair) {
+        PageDomain pageDomain = TableSupport.buildPageRequest();
+        Integer pageNum = pageDomain.getPageNum();
+        Integer pageSize = pageDomain.getPageSize();
+        String licenseNum = centerdataTForestCarrepair.getLicenseNum();
+        Date repairTime = centerdataTForestCarrepair.getRepairTime();
+        String charger = centerdataTForestCarrepair.getCharger();
+        return AjaxResult.success(remoteCarrepairService.carrepairList(pageNum, pageSize, licenseNum, repairTime, charger).getRows());
+    }
+
+    /**
+     * 获取车辆保养详情
+     *
+     * @param
+     * @return
+     */
+    @GetMapping("/carrepair/edit")
+    public AjaxResult carrepairEdit(String id) {
+        return remoteCarrepairService.carrepairEdit(id);
+    }
+
+    /**
+     * 新增车辆保养
+     *
+     * @param json
+     * @return
+     */
+    @PostMapping("/carrepair")
+    public AjaxResult carrepair(@RequestBody String json) {
+        return remoteCarrepairService.addCarrepair(json);
+    }
+
+    /**
+     * 修改车辆保养
+     *
+     * @param json
+     * @return
+     */
+    @PostMapping("/carrepair/put")
+    public AjaxResult putCarrepair(@RequestBody String json) {
+        return remoteCarrepairService.putCarrepair(json);
+    }
+
+    /**
+     * 删除车辆保养
+     *
+     * @param
+     * @return
+     */
+    @GetMapping("/carrepair/del")
+    public AjaxResult delCarrepair(@RequestParam("id") List<String> id) {
+        return remoteCarrepairService.delCarrepair(id.toArray(new String[0]));
+    }
+
+}

+ 89 - 0
src/main/java/com/sooka/sponest/mobile/data/basicdatacontroller/FireHydrantController.java

@@ -0,0 +1,89 @@
+package com.sooka.sponest.mobile.data.basicdatacontroller;
+
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.web.page.PageDomain;
+import com.ruoyi.common.core.web.page.TableSupport;
+import com.sooka.sponest.data.api.basicdata.domain.Firehydrant;
+import com.sooka.sponest.data.api.basicdata.service.RemoteFirehydrantService;
+import com.sooka.sponest.mobile.system.camera.service.AppCameraService;
+import com.sooka.sponest.mobile.utils.PictureReplaceAll;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.List;
+import java.util.Map;
+
+@RestController
+@RequestMapping("AppFirehydrantController")
+public class FireHydrantController {
+    @Resource
+    RemoteFirehydrantService remoteFirehydrantService;
+    @Resource
+    AppCameraService appCameraService;
+
+    /**
+     * 获取消火栓
+     *
+     * @param centerdataTForestFirehydrant
+     * @return
+     */
+    @GetMapping("/firehydrant/list")
+    public AjaxResult firehydrantList(Firehydrant centerdataTForestFirehydrant) {
+        PageDomain pageDomain = TableSupport.buildPageRequest();
+        Integer pageNum = pageDomain.getPageNum();
+        Integer pageSize = pageDomain.getPageSize();
+        String name = centerdataTForestFirehydrant.getName();
+        return AjaxResult.success(remoteFirehydrantService.firehydrantList(pageNum, pageSize, name).getRows());
+    }
+
+    /**
+     * 获取消火栓详情
+     *
+     * @param
+     * @return
+     */
+    @GetMapping("/firehydrant/edit")
+    public AjaxResult firehydrantEdit(String id) {
+        AjaxResult ajaxResult = remoteFirehydrantService.firehydrantEdit(id);
+        if("200".equals(ajaxResult.get("code").toString())){
+            Map<String, Object> info = (Map<String, Object>) ajaxResult.get("data");
+            PictureReplaceAll.StringToList(info);
+            return appCameraService.selectCameraByIds(info);
+        }else{
+            return ajaxResult;
+        }
+    }
+
+    /**
+     * 新增消火栓
+     *
+     * @param json
+     * @return
+     */
+    @PostMapping("/firehydrant")
+    public AjaxResult firehydrant(@RequestBody String json) {
+        return remoteFirehydrantService.addFirehydrant(json);
+    }
+
+    /**
+     * 修改消火栓
+     *
+     * @param json
+     * @return
+     */
+    @PostMapping("/firehydrant/put")
+    public AjaxResult putFirehydrant(@RequestBody String json) {
+        return remoteFirehydrantService.putFirehydrant(json);
+    }
+
+    /**
+     * 删除消火栓
+     *
+     * @param
+     * @return
+     */
+    @GetMapping("/firehydrant/del")
+    public AjaxResult delFirehydrant(@RequestParam("id") List<String> id) {
+        return remoteFirehydrantService.delFirehydrant(id.toArray(new String[0]));
+    }
+}

+ 92 - 0
src/main/java/com/sooka/sponest/mobile/data/basicdatacontroller/WaterCraneController.java

@@ -0,0 +1,92 @@
+package com.sooka.sponest.mobile.data.basicdatacontroller;
+
+
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.web.page.PageDomain;
+import com.ruoyi.common.core.web.page.TableSupport;
+import com.sooka.sponest.data.api.basicdata.domain.Watercrane;
+import com.sooka.sponest.data.api.basicdata.service.RemoteWatercraneService;
+import com.sooka.sponest.mobile.system.camera.service.AppCameraService;
+import com.sooka.sponest.mobile.utils.PictureReplaceAll;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.List;
+import java.util.Map;
+
+@RestController
+@RequestMapping("AppWatercraneController")
+public class WaterCraneController {
+    @Resource
+    RemoteWatercraneService remoteWatercraneService;
+
+    @Resource
+    AppCameraService appCameraService;
+
+    /**
+     * 获取水鹤管理
+     *
+     * @param centerdataTForestWatercrane
+     * @return
+     */
+    @GetMapping("/watercrane/list")
+    public AjaxResult watercraneList(Watercrane centerdataTForestWatercrane) {
+        PageDomain pageDomain = TableSupport.buildPageRequest();
+        Integer pageNum = pageDomain.getPageNum();
+        Integer pageSize = pageDomain.getPageSize();
+        String name = centerdataTForestWatercrane.getName();
+        return AjaxResult.success(remoteWatercraneService.watercraneList(pageNum, pageSize, name).getRows());
+    }
+
+    /**
+     * 获取水鹤管理详情
+     *
+     * @param
+     * @return
+     */
+    @GetMapping("/watercrane/edit")
+    public AjaxResult watercraneEdit(String id) {
+        AjaxResult ajaxResult = remoteWatercraneService.watercraneEdit(id);
+        if("200".equals(ajaxResult.get("code").toString())){
+            Map<String, Object> info = (Map<String, Object>) ajaxResult.get("data");
+            PictureReplaceAll.StringToList(info);
+            return appCameraService.selectCameraByIds(info);
+        }else{
+            return ajaxResult;
+        }
+    }
+
+    /**
+     * 新增水鹤管理
+     *
+     * @param json
+     * @return
+     */
+    @PostMapping("/watercrane")
+    public AjaxResult watercrane(@RequestBody String json) {
+        return remoteWatercraneService.addWatercrane(json);
+    }
+
+    /**
+     * 修改水鹤管理
+     *
+     * @param json
+     * @return
+     */
+    @PostMapping("/watercrane/put")
+    public AjaxResult putWatercrane(@RequestBody String json) {
+        return remoteWatercraneService.putWatercrane(json);
+    }
+
+    /**
+     * 删除水鹤管理
+     *
+     * @param
+     * @return
+     */
+    @GetMapping("/watercrane/del")
+    public AjaxResult delWatercrane(@RequestParam("id") List<String> id) {
+        return remoteWatercraneService.delWatercrane(id.toArray(new String[0]));
+    }
+}
+

+ 91 - 0
src/main/java/com/sooka/sponest/mobile/data/basicdatacontroller/WaterIntakeController.java

@@ -0,0 +1,91 @@
+package com.sooka.sponest.mobile.data.basicdatacontroller;
+
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.web.page.PageDomain;
+import com.ruoyi.common.core.web.page.TableSupport;
+import com.sooka.sponest.data.api.basicdata.domain.Waterintake;
+import com.sooka.sponest.data.api.basicdata.service.RemoteWaterintakeService;
+import com.sooka.sponest.mobile.system.camera.service.AppCameraService;
+import com.sooka.sponest.mobile.utils.PictureReplaceAll;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.List;
+import java.util.Map;
+
+@RestController
+@RequestMapping("AppWaterintakeController")
+public class WaterIntakeController {
+    @Resource
+    RemoteWaterintakeService remoteWaterintakeService;
+    @Resource
+    AppCameraService appCameraService;
+
+    /**
+     * 获取取水口
+     *
+     * @param forestWaterintake
+     * @return
+     */
+    @GetMapping("/waterintake/list")
+    public AjaxResult waterintakeList(Waterintake forestWaterintake) {
+        PageDomain pageDomain = TableSupport.buildPageRequest();
+        Integer pageNum = pageDomain.getPageNum();
+        Integer pageSize = pageDomain.getPageSize();
+        String name = forestWaterintake.getName();
+        String waterintakePerson = forestWaterintake.getWaterintakePerson();
+        String waterintakeTel = forestWaterintake.getWaterintakeTel();
+        return AjaxResult.success(remoteWaterintakeService.waterintakeList(pageNum, pageSize, name, waterintakePerson, waterintakeTel).getRows());
+    }
+
+    /**
+     * 获取取水口详情
+     *
+     * @param
+     * @return
+     */
+    @GetMapping("/waterintake/edit")
+    public AjaxResult waterintakeEdit(String id) {
+        AjaxResult ajaxResult = remoteWaterintakeService.waterintakeEdit(id);
+        if("200".equals(ajaxResult.get("code").toString())){
+            Map<String, Object> info = (Map<String, Object>) ajaxResult.get("data");
+            PictureReplaceAll.StringToList(info);
+            return appCameraService.selectCameraByIds(info);
+        }else{
+            return ajaxResult;
+        }
+    }
+
+    /**
+     * 新增取水口
+     *
+     * @param json
+     * @return
+     */
+    @PostMapping("/waterintake")
+    public AjaxResult waterintake(@RequestBody String json) {
+        return remoteWaterintakeService.addWaterintake(json);
+    }
+
+    /**
+     * 修改取水口
+     *
+     * @param json
+     * @return
+     */
+    @PostMapping("/waterintake/put")
+    public AjaxResult putWaterintake(@RequestBody String json) {
+        return remoteWaterintakeService.putWaterintake(json);
+    }
+
+    /**
+     * 删除取水口
+     *
+     * @param
+     * @return
+     */
+    @GetMapping("/waterintake/del")
+    public AjaxResult delWaterintake(@RequestParam("id") List<String> id) {
+        return remoteWaterintakeService.delWaterintake(id.toArray(new String[0]));
+    }
+}

+ 132 - 0
src/main/java/com/sooka/sponest/mobile/data/commoncontroller/commonController.java

@@ -0,0 +1,132 @@
+package com.sooka.sponest.mobile.data.commoncontroller;
+
+import com.alibaba.fastjson.JSONArray;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.sooka.sponest.mobile.data.commoncontroller.domain.AppDigitalForestVO;
+import com.sooka.sponest.mobile.remoteapi.RemoteDataBaseService;
+import com.sooka.sponest.mobile.remoteapi.domain.DataVO;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 手机端公共接口
+ */
+@RestController
+@RequestMapping("AppCommonController")
+public class commonController {
+    @Resource
+    RemoteDataBaseService remoteDataBaseService;
+
+    @ApiOperation(value = "手机端数据中心点位", notes = "林业数据中心点位")
+    @PostMapping("pointList")
+    public AjaxResult pointList(@RequestBody AppDigitalForestVO vo) {
+//        vo.setRadius("5000");
+        List<DataVO> list = new ArrayList<>();
+        JSONArray jsonArray = new JSONArray();
+        switch (vo.getAssort()) {
+            case "linye":
+                 List<Map<String,Object>> linyeList = (List<Map<String,Object>>)remoteDataBaseService.resourceList(vo.getLongitude(), vo.getLatitude(), vo.getType(),vo.getRadius()).get("data");
+                 for (Map<String,Object> map : linyeList){
+                     if (map.containsKey("specific_location")){
+                         map.put("address",map.get("specific_location"));
+                     }
+                     if (map.containsKey("firehydrant_address")){
+                         map.put("address",map.get("firehydrant_address"));
+                     }
+                     if (map.containsKey("landing_person")){
+                         map.put("contacts",map.get("landing_person"));
+                     }
+                     if (map.containsKey("channel_person")){
+                         map.put("contacts",map.get("channel_person"));
+                     }
+                     if (map.containsKey("channel_tel")){
+                         map.put("phone",map.get("channel_tel"));
+                     }
+                     if (map.containsKey("administrative_position")){
+                         map.put("address",map.get("administrative_position"));
+                     }
+                     if (map.containsKey("position")){
+                         map.put("address",map.get("position"));
+                     }
+                 }
+                jsonArray.addAll(linyeList);
+                list = jsonArray.toJavaList(DataVO.class);
+                break;
+            case "nongye":
+                List<Map<String,Object>> nongyeList = (List<Map<String,Object>>)remoteDataBaseService.getPointByDeptId(vo.getLongitude(), vo.getLatitude(), vo.getType(),vo.getRadius()).get("data");
+                for (Map<String,Object> map : nongyeList){
+                    if (map.containsKey("position")){
+                        map.put("address",map.get("position"));
+                    }
+                }
+                jsonArray.addAll(nongyeList);
+                list = jsonArray.toJavaList(DataVO.class);
+                break;
+            case "shuili":
+                List<Map<String,Object>> shuiliList = (List<Map<String,Object>>)remoteDataBaseService.FjPointwater(vo.getLongitude(), vo.getLatitude(), vo.getType(),vo.getRadius()).get("data");
+                for (Map<String,Object> map : shuiliList){
+                    if (map.containsKey("startpoint_longitude")){
+                        map.put("longitude",map.get("startpoint_longitude"));
+                    }
+                    if (map.containsKey("startpoint_latitude")){
+                        map.put("latitude",map.get("startpoint_latitude"));
+                    }
+                }
+                jsonArray.addAll(shuiliList);
+                list = jsonArray.toJavaList(DataVO.class);
+                break;
+            case "huanbao":
+                List<Map<String,Object>> huanbaoList = (List<Map<String,Object>>)remoteDataBaseService.FjPointenvironment(vo.getLongitude(), vo.getLatitude(), vo.getType(),vo.getRadius()).get("data");
+                jsonArray.addAll(huanbaoList);
+                list = jsonArray.toJavaList(DataVO.class);
+                break;
+            case "jiaotong":
+                List<Map<String,Object>> jiaotongList = (List<Map<String,Object>>)remoteDataBaseService.FjPointtraffic(vo.getLongitude(),vo.getLatitude(),vo.getType(),vo.getRadius()).get("data");
+                jsonArray.addAll(jiaotongList);
+                list = jsonArray.toJavaList(DataVO.class);
+                break;
+            case "yingji":
+                List<Map<String,Object>> yingjiList = (List<Map<String,Object>>)remoteDataBaseService.FjPoint(vo.getLongitude(),vo.getLatitude(),vo.getType(),vo.getRadius()).get("data");
+                for (Map<String,Object> map : yingjiList){
+                    if (map.containsKey("specific_location")){
+                        map.put("address",map.get("specific_location"));
+                    }
+                }
+                jsonArray.addAll(yingjiList);
+                list = jsonArray.toJavaList(DataVO.class);
+                break;
+            case "ziyuan":
+                List<Map<String,Object>> ziyuanList = (List<Map<String,Object>>)remoteDataBaseService.FjPointresource(vo.getLongitude(),vo.getLatitude(),vo.getType(),vo.getRadius()).get("data");
+                for (Map<String,Object> map : ziyuanList){
+                    if (map.containsKey("person")){
+                        map.put("contacts",map.get("person"));
+                    }
+                    if (map.containsKey("area")){
+                        map.put("address",map.get("area"));
+                    }
+                }
+                jsonArray.addAll(ziyuanList);
+                list = jsonArray.toJavaList(DataVO.class);
+                break;
+            case "xiaofang":
+                List<Map<String,Object>> xiaofangList = (List<Map<String,Object>>)remoteDataBaseService.FjPointNew(vo.getLongitude(),vo.getLatitude(),vo.getType(),vo.getRadius()).get("data");
+                for (Map<String,Object> map : xiaofangList){
+                    if (map.containsKey("specific_location")){
+                        map.put("address",map.get("specific_location"));
+                    }
+                }
+                jsonArray.addAll(xiaofangList);
+                list = jsonArray.toJavaList(DataVO.class);
+                break;
+        }
+        return AjaxResult.success(list);
+    }
+}

+ 24 - 0
src/main/java/com/sooka/sponest/mobile/data/commoncontroller/domain/AppDigitalForestVO.java

@@ -0,0 +1,24 @@
+package com.sooka.sponest.mobile.data.commoncontroller.domain;
+
+import lombok.Getter;
+import lombok.Setter;
+
+@Getter
+@Setter
+public class AppDigitalForestVO {
+
+    //经度
+    String longitude;
+
+    //纬度
+    String latitude;
+
+    //表名
+    String type;
+
+    //航管局类型
+    String assort;
+
+    //距离
+    String radius;
+}

+ 75 - 0
src/main/java/com/sooka/sponest/mobile/data/digitalagriculture/controller/AgriculturalMachineryInfoController.java

@@ -0,0 +1,75 @@
+package com.sooka.sponest.mobile.data.digitalagriculture.controller;
+
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.web.page.PageDomain;
+import com.ruoyi.common.core.web.page.TableSupport;
+import com.sooka.sponest.data.api.digitalagriculture.domain.FarmAgriculturalMachineryInfo;
+import com.sooka.sponest.data.api.digitalagriculture.service.RemoteAgriculturalMachineryInfoService;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+/**
+ * 农机技术推广部门信息
+ */
+@RestController
+@RequestMapping("AppAgriculturalMachineryInfoController")
+public class AgriculturalMachineryInfoController {
+    @Resource
+    RemoteAgriculturalMachineryInfoService remoteAgriculturalMachineryInfoService;
+
+    /**
+     * 新增农机技术推广部门信息
+     * @param json
+     * @return
+     */
+    @PostMapping("/AgriculturalMachineryInfo")
+    public AjaxResult addAgriculturalMachineryInfo(@RequestBody String json) {
+        return remoteAgriculturalMachineryInfoService.addAgriculturalMachineryInfo(json);
+    }
+
+    /**
+     * 获取农机技术推广部门信息列表
+     * @param farmAgriculturalMachineryInfo
+     * @return
+     */
+    @GetMapping("/AgriculturalMachineryInfo/list")
+    public AjaxResult agriculturalMachineryInfoList(FarmAgriculturalMachineryInfo farmAgriculturalMachineryInfo) {
+
+        PageDomain pageDomain = TableSupport.buildPageRequest();
+        Integer pageNum = pageDomain.getPageNum();
+        Integer pageSize = pageDomain.getPageSize();
+        return AjaxResult.success(remoteAgriculturalMachineryInfoService.agriculturalMachineryInfolist(pageNum, pageSize).getRows());
+    }
+
+    /**
+     * 删除农机技术推广部门信息
+     * @param
+     * @return
+     */
+    @GetMapping("/AgriculturalMachineryInfo/del")
+    public AjaxResult delAgriculturalMachineryInfo(@RequestParam("id") List<String> id) {
+        return remoteAgriculturalMachineryInfoService.delAgriculturalMachineryInfo(id.toArray(new String[0]));
+    }
+
+    /**
+     * 修改农机技术推广部门信息
+     * @param json
+     * @return
+     */
+    @PostMapping("/AgriculturalMachineryInfo/put")
+    public AjaxResult putAgriculturalMachineryInfo(@RequestBody String json) {
+        return remoteAgriculturalMachineryInfoService.putAgriculturalMachineryInfo(json);
+    }
+
+    /**
+     * 获取农机技术推广部门信息
+     * @param
+     * @return
+     */
+    @GetMapping("/AgriculturalMachineryInfo/edit")
+    public AjaxResult AgriculturalMachineryInfoEdit(String id) {
+        return remoteAgriculturalMachineryInfoService.agriculturalMachineryInfoedit(id);
+    }
+}

+ 75 - 0
src/main/java/com/sooka/sponest/mobile/data/digitalagriculture/controller/AlongController.java

@@ -0,0 +1,75 @@
+package com.sooka.sponest.mobile.data.digitalagriculture.controller;
+
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.web.page.PageDomain;
+import com.ruoyi.common.core.web.page.TableSupport;
+import com.sooka.sponest.data.api.digitalagriculture.domain.FarmFoodstuffAlong;
+import com.sooka.sponest.data.api.digitalagriculture.service.RemoteAlongService;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+/**
+ * 粮食作物长势
+ */
+@RestController
+@RequestMapping("AppalongController")
+public class AlongController {
+    @Resource
+    RemoteAlongService remoteAlongService;
+
+    /**
+     * 新增粮食作物长势
+     * @param json
+     * @return
+     */
+    @PostMapping("/along")
+    public AjaxResult addAlong(@RequestBody String json) {
+        return remoteAlongService.addAlong(json);
+    }
+
+    /**
+     * 获取粮食作物长势列表
+     * @param farmFoodstuffAlong
+     * @return
+     */
+    @GetMapping("/along/list")
+    public AjaxResult alongList(FarmFoodstuffAlong farmFoodstuffAlong) {
+
+        PageDomain pageDomain = TableSupport.buildPageRequest();
+        Integer pageNum = pageDomain.getPageNum();
+        Integer pageSize = pageDomain.getPageSize();
+        return AjaxResult.success(remoteAlongService.alongList(pageNum, pageSize).getRows());
+    }
+
+    /**
+     * 删除粮食作物长势
+     * @param
+     * @return
+     */
+    @GetMapping("/along/del")
+    public AjaxResult delAlong(@RequestParam("id") List<String> id) {
+        return remoteAlongService.delAlong(id.toArray(new String[0]));
+    }
+
+    /**
+     * 修改粮食作物长势
+     * @param json
+     * @return
+     */
+    @PostMapping("/along/put")
+    public AjaxResult putAlong(@RequestBody String json) {
+        return remoteAlongService.putAlong(json);
+    }
+
+    /**
+     * 获取粮食作物长势
+     * @param
+     * @return
+     */
+    @GetMapping("/along/edit")
+    public AjaxResult alongEdit(String id) {
+        return remoteAlongService.alongEdit(id);
+    }
+}

+ 87 - 0
src/main/java/com/sooka/sponest/mobile/data/digitalagriculture/controller/BotanyProtectInfoController.java

@@ -0,0 +1,87 @@
+package com.sooka.sponest.mobile.data.digitalagriculture.controller;
+
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.web.page.PageDomain;
+import com.ruoyi.common.core.web.page.TableSupport;
+import com.sooka.sponest.data.api.digitalagriculture.domain.FarmBotanyProtectInfo;
+import com.sooka.sponest.data.api.digitalagriculture.service.RemoteBotanyProtectInfoService;
+import com.sooka.sponest.mobile.system.camera.service.AppCameraService;
+import com.sooka.sponest.mobile.utils.PictureReplaceAll;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 农业技术推广总站信息手机端
+ */
+@RestController
+@RequestMapping("AppBotanyProtectInfoController")
+public class BotanyProtectInfoController {
+    @Resource
+    RemoteBotanyProtectInfoService remoteBotanyProtectInfoService;
+    @Resource
+    AppCameraService appCameraService;
+
+    /**
+     * 新增农业技术推广总站信息
+     * @param json
+     * @return
+     */
+    @PostMapping("/BotanyProtectInfo")
+    public AjaxResult stillField(@RequestBody String json) {
+        return remoteBotanyProtectInfoService.addBotanyProtectInfo(json);
+    }
+
+    /**
+     * 获取农业技术推广总站信息列表
+     * @param farmBotanyProtectInfo
+     * @return
+     */
+    @GetMapping("/BotanyProtectInfo/list")
+    public AjaxResult stillFieldList(FarmBotanyProtectInfo farmBotanyProtectInfo) {
+
+        PageDomain pageDomain = TableSupport.buildPageRequest();
+        Integer pageNum = pageDomain.getPageNum();
+        Integer pageSize = pageDomain.getPageSize();
+        return AjaxResult.success(remoteBotanyProtectInfoService.botanyProtectInfoList(pageNum, pageSize).getRows());
+    }
+
+    /**
+     * 删除农业技术推广总站信息
+     * @param
+     * @return
+     */
+    @GetMapping("/BotanyProtectInfo/del")
+    public AjaxResult delStillField(@RequestParam("id") List<String> id) {
+        return remoteBotanyProtectInfoService.delBotanyProtectInfo(id.toArray(new String[0]));
+    }
+
+    /**
+     * 修改农业技术推广总站信息
+     * @param json
+     * @return
+     */
+    @PostMapping("/BotanyProtectInfo/put")
+    public AjaxResult putStillField(@RequestBody String json) {
+        return remoteBotanyProtectInfoService.putBotanyProtectInfo(json);
+    }
+
+    /**
+     * 获取农业技术推广总站信息
+     * @param
+     * @return
+     */
+    @GetMapping("/BotanyProtectInfo/edit")
+    public AjaxResult cooperativesEdit(String id) {
+        AjaxResult ajaxResult = remoteBotanyProtectInfoService.botanyProtectInfoEdit(id);
+        if("200".equals(ajaxResult.get("code").toString())){
+            Map<String, Object> info = (Map<String, Object>) ajaxResult.get("data");
+            PictureReplaceAll.StringToList(info);
+            return appCameraService.selectCameraByIds(info);
+        }else{
+            return ajaxResult;
+        }
+    }
+}

+ 81 - 0
src/main/java/com/sooka/sponest/mobile/data/digitalagriculture/controller/BreedingFarmController.java

@@ -0,0 +1,81 @@
+package com.sooka.sponest.mobile.data.digitalagriculture.controller;
+
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.web.page.PageDomain;
+import com.ruoyi.common.core.web.page.TableSupport;
+import com.sooka.sponest.data.api.digitalagriculture.domain.FarmBreedingFarm;
+import com.sooka.sponest.data.api.digitalagriculture.service.RemoteBreedingFarmService;
+import com.sooka.sponest.mobile.system.camera.service.AppCameraService;
+import com.sooka.sponest.mobile.utils.PictureReplaceAll;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 养殖场Controller
+ *
+ * @author phy
+ * @date 2023-04-30
+ */
+@RestController
+@RequestMapping("AppBreedingFarmController")
+public class BreedingFarmController{
+
+    @Resource
+    RemoteBreedingFarmService remoteBreedingFarmService;
+
+    @Resource
+    AppCameraService appCameraService;
+
+    /**
+     * 查询养殖场列表
+     */
+    @GetMapping("/BreedingFarm/list")
+    public AjaxResult breedingFarmList(FarmBreedingFarm farmBreedingFarm) {
+        PageDomain pageDomain = TableSupport.buildPageRequest();
+        Integer pageNum = pageDomain.getPageNum();
+        Integer pageSize = pageDomain.getPageSize();
+        return AjaxResult.success(remoteBreedingFarmService.selectBreedingFarmList(pageNum, pageSize, farmBreedingFarm.getName()).getRows());
+    }
+
+
+    /**
+     * 获取养殖场详细信息
+     */
+    @GetMapping("/BreedingFarm/edit")
+    public AjaxResult breedingFarmEdit(String id) {
+        AjaxResult ajaxResult = remoteBreedingFarmService.selectBreedingFarmById(id);
+        if("200".equals(ajaxResult.get("code").toString())){
+            Map<String, Object> info = (Map<String, Object>) ajaxResult.get("data");
+            PictureReplaceAll.StringToList(info);
+            return appCameraService.selectCameraByIds(info);
+        }else{
+            return ajaxResult;
+        }
+    }
+
+    /**
+     * 新增养殖场
+     */
+    @PostMapping("/BreedingFarm")
+    public AjaxResult addBreedingFarm(@RequestBody String json) {
+        return remoteBreedingFarmService.insertBreedingFarm(json);
+    }
+    /**
+     * 修改养殖场
+     */
+    @PostMapping("/BreedingFarm/put")
+    public AjaxResult putBreedingFarm(@RequestBody String json) {
+        return remoteBreedingFarmService.updateBreedingFarm(json);
+    }
+
+    /**
+     * 删除养殖场
+     */
+    @GetMapping("/BreedingFarm/del")
+    public AjaxResult delBreedingFarm(@RequestParam("id") List<String> id) {
+        return remoteBreedingFarmService.deleteBreedingFarmByIds(id.toArray(new String[0]));
+    }
+}

+ 77 - 0
src/main/java/com/sooka/sponest/mobile/data/digitalagriculture/controller/CesspitCollectController.java

@@ -0,0 +1,77 @@
+package com.sooka.sponest.mobile.data.digitalagriculture.controller;
+
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.web.page.PageDomain;
+import com.ruoyi.common.core.web.page.TableSupport;
+import com.sooka.sponest.data.api.digitalagriculture.domain.FarmCesspitCollect;
+import com.sooka.sponest.data.api.digitalagriculture.service.RemoteCesspitCollectService;
+import com.sooka.sponest.mobile.system.camera.service.AppCameraService;
+import com.sooka.sponest.mobile.utils.PictureReplaceAll;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 粪污收集点Controller
+ * @author zhaozhan
+ * @date 2023/7/10
+ */
+@RestController
+@RequestMapping("AppCesspitCollectController")
+public class CesspitCollectController {
+    @Resource
+    RemoteCesspitCollectService remoteCesspitCollectService;
+
+    @Resource
+    AppCameraService appCameraService;
+
+    /**
+     * 查询粪污收集点列表
+     */
+    @GetMapping("/CesspitCollect/list")
+    public AjaxResult cesspitCollectList(FarmCesspitCollect farmCesspitCollect) {
+        PageDomain pageDomain = TableSupport.buildPageRequest();
+        Integer pageNum = pageDomain.getPageNum();
+        Integer pageSize = pageDomain.getPageSize();
+        return AjaxResult.success(remoteCesspitCollectService.selectCesspitCollectList(pageNum, pageSize, farmCesspitCollect.getName()).getRows());
+    }
+    /**
+     * 获取粪污收集点详细信息
+     */
+    @GetMapping("/CesspitCollect/edit")
+    public AjaxResult cesspitCollectEdit(String id) {
+        AjaxResult ajaxResult = remoteCesspitCollectService.selectCesspitCollectById(id);
+        if("200".equals(ajaxResult.get("code").toString())){
+            Map<String, Object> info = (Map<String, Object>) ajaxResult.get("data");
+            PictureReplaceAll.StringToList(info);
+            return appCameraService.selectCameraByIds(info);
+        }else{
+            return ajaxResult;
+        }
+    }
+
+    /**
+     * 新增粪污收集点
+     */
+    @PostMapping("/CesspitCollect")
+    public AjaxResult addCesspitCollect(@RequestBody String json) {
+        return remoteCesspitCollectService.insertCesspitCollect(json);
+    }
+    /**
+     * 修改粪污收集点
+     */
+    @PostMapping("/CesspitCollect/put")
+    public AjaxResult putCesspitCollect(@RequestBody String json) {
+        return remoteCesspitCollectService.updateCesspitCollect(json);
+    }
+
+    /**
+     * 删除粪污收集点
+     */
+    @GetMapping("/CesspitCollect/del")
+    public AjaxResult delCesspitCollect(@RequestParam("id") List<String> id) {
+        return remoteCesspitCollectService.deleteCesspitCollectByIds(id.toArray(new String[0]));
+    }
+}

+ 75 - 0
src/main/java/com/sooka/sponest/mobile/data/digitalagriculture/controller/ChemicalFertilizerInfoController.java

@@ -0,0 +1,75 @@
+package com.sooka.sponest.mobile.data.digitalagriculture.controller;
+
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.web.page.PageDomain;
+import com.ruoyi.common.core.web.page.TableSupport;
+import com.sooka.sponest.data.api.digitalagriculture.domain.FarmChemicalFertilizerInfo;
+import com.sooka.sponest.data.api.digitalagriculture.service.RemoteChemicalFertilizerInfoService;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+/**
+ * 化肥信息
+ */
+@RestController
+@RequestMapping("AppChemicalFertilizerInfoController")
+public class ChemicalFertilizerInfoController {
+    @Resource
+    RemoteChemicalFertilizerInfoService remoteChemicalFertilizerInfoService;
+
+    /**
+     * 新增化肥信息
+     * @param json
+     * @return
+     */
+    @PostMapping("/ChemicalFertilizerInfo")
+    public AjaxResult chemicalFertilizerInfo(@RequestBody String json) {
+        return remoteChemicalFertilizerInfoService.addChemicalFertilizerInfo(json);
+    }
+
+    /**
+     * 获取化肥信息列表
+     * @param farmChemicalFertilizerInfo
+     * @return
+     */
+    @GetMapping("/ChemicalFertilizerInfo/list")
+    public AjaxResult chemicalFertilizerInfoList(FarmChemicalFertilizerInfo farmChemicalFertilizerInfo) {
+
+        PageDomain pageDomain = TableSupport.buildPageRequest();
+        Integer pageNum = pageDomain.getPageNum();
+        Integer pageSize = pageDomain.getPageSize();
+        return AjaxResult.success(remoteChemicalFertilizerInfoService.chemicalFertilizerInfoList(pageNum, pageSize).getRows());
+    }
+
+    /**
+     * 删除化肥信息
+     * @param
+     * @return
+     */
+    @GetMapping("/ChemicalFertilizerInfo/del")
+    public AjaxResult delChemicalFertilizerInfo(@RequestParam("id") List<String> id) {
+        return remoteChemicalFertilizerInfoService.delChemicalFertilizerInfo(id.toArray(new String[0]));
+    }
+
+    /**
+     * 修改化肥信息
+     * @param json
+     * @return
+     */
+    @PostMapping("/ChemicalFertilizerInfo/put")
+    public AjaxResult putChemicalFertilizerInfo(@RequestBody  String json) {
+        return remoteChemicalFertilizerInfoService.putChemicalFertilizerInfo(json);
+    }
+
+    /**
+     * 获取化肥信息详情
+     * @param
+     * @return
+     */
+    @GetMapping("/ChemicalFertilizerInfo/edit")
+    public AjaxResult chemicalFertilizerInfoEdit(String id) {
+        return remoteChemicalFertilizerInfoService.chemicalFertilizerInfoEdit(id);
+    }
+}

+ 86 - 0
src/main/java/com/sooka/sponest/mobile/data/digitalagriculture/controller/CollectiveFarmlandController.java

@@ -0,0 +1,86 @@
+package com.sooka.sponest.mobile.data.digitalagriculture.controller;
+
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.web.page.PageDomain;
+import com.ruoyi.common.core.web.page.TableSupport;
+import com.sooka.sponest.data.api.digitalagriculture.domain.FarmCollectiveFarmland;
+import com.sooka.sponest.data.api.digitalagriculture.service.RemoteCollectiveFarmlandService;
+import com.sooka.sponest.mobile.system.camera.service.AppCameraService;
+import com.sooka.sponest.mobile.utils.PictureReplaceAll;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 农村集体耕地
+ */
+@RestController
+@RequestMapping("AppcollectivefarmlandController")
+public class CollectiveFarmlandController {
+    @Resource
+    RemoteCollectiveFarmlandService remoteFarmCollectiveFarmlandService;
+    @Resource
+    AppCameraService appCameraService;
+
+    /**
+     * 新增农村集体耕地
+     * @param json
+     * @return
+     */
+    @PostMapping("/collectivefarmland")
+    public AjaxResult addCollectivefarmland(@RequestBody String json) {
+        return remoteFarmCollectiveFarmlandService.addCollectivefarmland(json);
+    }
+
+    /**
+     * 获取农村集体耕地列表
+     * @param farmCollectiveFarmland
+     * @return
+     */
+    @GetMapping("/collectivefarmland/list")
+    public AjaxResult collectivefarmlandList(FarmCollectiveFarmland farmCollectiveFarmland) {
+        PageDomain pageDomain = TableSupport.buildPageRequest();
+        Integer pageNum = pageDomain.getPageNum();
+        Integer pageSize = pageDomain.getPageSize();
+        return AjaxResult.success(remoteFarmCollectiveFarmlandService.collectivefarmlandList(pageNum, pageSize).getRows());
+    }
+
+    /**
+     * 删除农村集体耕地
+     * @param
+     * @return
+     */
+    @GetMapping("/collectivefarmland/del")
+    public AjaxResult delCollectivefarmland(@RequestParam("id") List<String> id) {
+        return remoteFarmCollectiveFarmlandService.delCollectivefarmland(id.toArray(new String[0]));
+    }
+
+    /**
+     * 修改农村集体耕地
+     * @param json
+     * @return
+     */
+    @PostMapping("/collectivefarmland/put")
+    public AjaxResult putCollectivefarmland(@RequestBody String json) {
+        return remoteFarmCollectiveFarmlandService.putCollectivefarmland(json);
+    }
+
+    /**
+     * 获取农村集体耕地详情
+     * @param
+     * @return
+     */
+    @GetMapping("/collectivefarmland/edit")
+    public AjaxResult collectivefarmlandEdit(String id) {
+        AjaxResult ajaxResult = remoteFarmCollectiveFarmlandService.collectivefarmlandEdit(id);
+        if("200".equals(ajaxResult.get("code").toString())){
+            Map<String, Object> info = (Map<String, Object>) ajaxResult.get("data");
+            PictureReplaceAll.StringToList(info);
+            return appCameraService.selectCameraByIds(info);
+        }else{
+            return ajaxResult;
+        }
+    }
+}

+ 75 - 0
src/main/java/com/sooka/sponest/mobile/data/digitalagriculture/controller/ContractManagementController.java

@@ -0,0 +1,75 @@
+package com.sooka.sponest.mobile.data.digitalagriculture.controller;
+
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.web.page.PageDomain;
+import com.ruoyi.common.core.web.page.TableSupport;
+import com.sooka.sponest.data.api.digitalagriculture.domain.FarmContractManagement;
+import com.sooka.sponest.data.api.digitalagriculture.service.RemoteContractManagementService;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+/**
+ * 合同模板使用记录
+ */
+@RestController
+@RequestMapping("AppContractManagementController")
+public class ContractManagementController {
+    @Resource
+    RemoteContractManagementService remoteContractManagementService;
+
+    /**
+     * 新增合同模板使用记录
+     * @param json
+     * @return
+     */
+    @PostMapping("/ContractManagement")
+    public AjaxResult contractManagement(@RequestBody String json) {
+        return remoteContractManagementService.addContractManagement(json);
+    }
+
+    /**
+     * 获取合同模板使用记录
+     * @param farmContractManagement
+     * @return
+     */
+    @GetMapping("/ContractManagement/list")
+    public AjaxResult contractManagementList(FarmContractManagement farmContractManagement) {
+
+        PageDomain pageDomain = TableSupport.buildPageRequest();
+        Integer pageNum = pageDomain.getPageNum();
+        Integer pageSize = pageDomain.getPageSize();
+        return AjaxResult.success(remoteContractManagementService.contractManagementList(pageNum, pageSize).getRows());
+    }
+
+    /**
+     * 删除合同模板使用记录
+     * @param
+     * @return
+     */
+    @GetMapping("/ContractManagement/del")
+    public AjaxResult delContractManagement(@RequestParam("id") List<String> id) {
+        return remoteContractManagementService.delContractManagement(id.toArray(new String[0]));
+    }
+
+    /**
+     * 修改合同模板使用记录
+     * @param json
+     * @return
+     */
+    @PostMapping("/ContractManagement/put")
+    public AjaxResult putContractManagement(@RequestBody String json) {
+        return remoteContractManagementService.putContractManagement(json);
+    }
+
+    /**
+     * 获取合同模板使用记录
+     * @param
+     * @return
+     */
+    @GetMapping("/ContractManagement/edit")
+    public AjaxResult contractManagementEdit(String id) {
+        return remoteContractManagementService.contractManagementEdit(id);
+    }
+}

+ 87 - 0
src/main/java/com/sooka/sponest/mobile/data/digitalagriculture/controller/CooperativesController.java

@@ -0,0 +1,87 @@
+package com.sooka.sponest.mobile.data.digitalagriculture.controller;
+
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.web.page.PageDomain;
+import com.ruoyi.common.core.web.page.TableSupport;
+import com.sooka.sponest.data.api.digitalagriculture.domain.FarmAgriculturalCooperatives;
+import com.sooka.sponest.data.api.digitalagriculture.service.RemoteCooperativesService;
+import com.sooka.sponest.mobile.system.camera.service.AppCameraService;
+import com.sooka.sponest.mobile.utils.PictureReplaceAll;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 农村合作社信息
+*/
+@RestController
+@RequestMapping("AppCooperativesController")
+public class CooperativesController {
+    @Resource
+    RemoteCooperativesService remoteCooperativesService;
+    @Resource
+    AppCameraService appCameraService;
+
+    /**
+     * 新增农民合作社
+     * @param json
+     * @return
+     */
+    @PostMapping("/Cooperatives")
+    public AjaxResult addCooperatives(@RequestBody String json) {
+        return remoteCooperativesService.addCooperatives(json);
+    }
+
+    /**
+     * 获取农民合作社列表
+     * @param farmAgriculturalCooperatives
+     * @return
+     */
+    @GetMapping("/Cooperatives/list")
+    public AjaxResult cooperativesList(FarmAgriculturalCooperatives farmAgriculturalCooperatives) {
+
+        PageDomain pageDomain = TableSupport.buildPageRequest();
+        Integer pageNum = pageDomain.getPageNum();
+        Integer pageSize = pageDomain.getPageSize();
+        return AjaxResult.success(remoteCooperativesService.cooperativesList(pageNum, pageSize).getRows());
+    }
+
+    /**
+     * 删除农民合作社
+     * @param
+     * @return
+     */
+    @GetMapping("/Cooperatives/del")
+    public AjaxResult delCooperatives(@RequestParam("id") List<String> id) {
+        return remoteCooperativesService.delCooperatives(id.toArray(new String[0]));
+    }
+
+    /**
+     * 修改农民合作社
+     * @param json
+     * @return
+     */
+    @PostMapping("/Cooperatives/put")
+    public AjaxResult putCooperatives(@RequestBody String json) {
+        return remoteCooperativesService.putCooperatives(json);
+    }
+
+    /**
+     * 获取农民合作社详情
+     * @param
+     * @return
+     */
+    @GetMapping("/Cooperatives/edit")
+    public AjaxResult cooperativesEdit(String id) {
+        AjaxResult ajaxResult = remoteCooperativesService.cooperativesEdit(id);
+        if("200".equals(ajaxResult.get("code").toString())){
+            Map<String, Object> info = (Map<String, Object>) ajaxResult.get("data");
+            PictureReplaceAll.StringToList(info);
+            return appCameraService.selectCameraByIds(info);
+        }else{
+            return ajaxResult;
+        }
+    }
+}

+ 112 - 0
src/main/java/com/sooka/sponest/mobile/data/digitalagriculture/controller/DataController.java

@@ -0,0 +1,112 @@
+package com.sooka.sponest.mobile.data.digitalagriculture.controller;
+
+import com.ruoyi.common.core.constant.EventTypeMenuConstants;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.web.page.PageDomain;
+import com.ruoyi.common.core.web.page.TableSupport;
+import com.ruoyi.system.api.domain.SysMenuEventType;
+import com.sooka.sponest.data.api.digitalagriculture.domain.AgricultureBO;
+import com.sooka.sponest.data.api.digitalagriculture.domain.StrawStillField;
+import com.sooka.sponest.data.api.digitalagriculture.service.RemoteDataViewService;
+import com.sooka.sponest.mobile.aop.NoRepeatSubmit;
+import com.sooka.sponest.mobile.appbigdata.domain.vo.VisuForestCloudMapVO;
+import com.sooka.sponest.mobile.base.service.AppAttendanceService;
+import com.sooka.sponest.mobile.data.digitalagriculture.service.IDataService;
+import com.sooka.sponest.mobile.remoteapi.RemoteEventBaseService;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+@RestController
+@RequestMapping("/annotation")
+public class DataController {
+    @Resource
+    IDataService dataService;
+    @Resource
+    RemoteDataViewService remoteDataViewService;
+    @Resource
+    RemoteEventBaseService remoteEventBaseService;
+    @Resource
+    AppAttendanceService appAttendanceService;
+
+    /**
+     * 手机端农业数据统计 新版 数据、事件汇总 动态获取事件大小类类型
+     */
+    @ApiOperation(value = "农业统计", notes = "农业统计")
+    @NoRepeatSubmit
+    @GetMapping("data")
+    public AjaxResult data() {
+        VisuForestCloudMapVO visuForestCloudMapVO = new VisuForestCloudMapVO();
+        SysMenuEventType sysMenuEventType = new SysMenuEventType();
+        sysMenuEventType.setMenuId(EventTypeMenuConstants.FARMING);
+        Map<String, String[]> stringMap = appAttendanceService.selectByMenuId(sysMenuEventType).getData();
+        visuForestCloudMapVO.setEventTypeId(stringMap.get("eventType"));
+        List<String> list = new ArrayList<>();
+        list.add("forest_event_status_2");
+        list.add("forest_event_status_5");
+        visuForestCloudMapVO.setEventStatus(list);
+        Map<String, Object> map = new HashMap<>();
+        //基础数据
+        List<Map> dataMap = remoteDataViewService.agricultureViewList().getData();
+        for (Map data:dataMap) {
+            data.put("name_original", data.get("name").toString().split("\\(")[0]);
+            data.put("name_chinese", data.get("name").toString().split("\\(")[0] + "(" + data.get("name").toString().split("\\(")[1].split("\\)")[0] + ")");
+        }
+        map.put("rows", dataMap);
+        //事件
+        map.put("event", remoteEventBaseService.getEventCountGroupByEventStatus(visuForestCloudMapVO).getData());
+        return AjaxResult.success(map);
+    }
+
+    /**
+     * 手机端数据中心-标点
+     *
+     * @param agricultureBO
+     * @return com.ruoyi.common.core.web.domain.AjaxResult
+     * @author pengyu
+     * @date 2023/2/22 10:05
+     */
+    @ApiOperation(value = "数据中心-标点", notes = "数据中心-标点")
+    @GetMapping("point")
+    public AjaxResult point(AgricultureBO agricultureBO) {
+        return dataService.heZuoShePoint(agricultureBO);
+    }
+
+
+    /**
+     * 农业还田
+     */
+    @PostMapping("/StillField")
+    public AjaxResult addStillField(@RequestBody String json) {
+        return remoteDataViewService.addStillField(json);
+    }
+
+    @GetMapping("/StillField/list")
+    public AjaxResult stillFieldList(StrawStillField strawStillField) {
+        PageDomain pageDomain = TableSupport.buildPageRequest();
+        Integer pageNum = pageDomain.getPageNum();
+        Integer pageSize = pageDomain.getPageSize();
+        return AjaxResult.success(remoteDataViewService.stillFieldList(pageNum, pageSize, strawStillField.getStillFieldType()).getRows());
+    }
+    @GetMapping("/StillField/del")
+    public AjaxResult delStillField(@RequestParam("id") List<String> id) {
+        return remoteDataViewService.delStillField(id.toArray(new String[0]));
+    }
+    @PostMapping("/StillField/put")
+    public AjaxResult putStillField(@RequestBody String json) {
+        return remoteDataViewService.putStillField(json);
+    }
+
+    @GetMapping("/StillField/edit")
+    public AjaxResult stillFieldEdit(String id) {
+        return remoteDataViewService.stillFieldEdit(id);
+    }
+
+
+
+}

+ 88 - 0
src/main/java/com/sooka/sponest/mobile/data/digitalagriculture/controller/EnterpriseController.java

@@ -0,0 +1,88 @@
+package com.sooka.sponest.mobile.data.digitalagriculture.controller;
+
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.web.page.PageDomain;
+import com.ruoyi.common.core.web.page.TableSupport;
+import com.sooka.sponest.data.api.digitalagriculture.domain.FarmEnterprise;
+import com.sooka.sponest.data.api.digitalagriculture.service.RemoteEnterpriseService;
+import com.sooka.sponest.mobile.system.camera.service.AppCameraService;
+import com.sooka.sponest.mobile.utils.PictureReplaceAll;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 饲料企业
+ */
+@RestController
+@RequestMapping("AppenterpriseController")
+public class EnterpriseController {
+    @Resource
+    RemoteEnterpriseService remoteEnterpriseService;
+
+    @Resource
+    AppCameraService appCameraService;
+
+    /**
+     * 新增饲料企业
+     * @param json
+     * @return
+     */
+    @PostMapping("/enterprise")
+    public AjaxResult enterprise(@RequestBody String json) {
+        return remoteEnterpriseService.addEnterprise(json);
+    }
+
+    /**
+     * 获取饲料企业列表
+     * @param farmEnterprise
+     * @return
+     */
+    @GetMapping("/enterprise/list")
+    public AjaxResult enterpriseList(FarmEnterprise farmEnterprise) {
+        PageDomain pageDomain = TableSupport.buildPageRequest();
+        Integer pageNum = pageDomain.getPageNum();
+        Integer pageSize = pageDomain.getPageSize();
+        return AjaxResult.success(remoteEnterpriseService.enterpriseList(pageNum, pageSize, farmEnterprise.getType()).getRows());
+    }
+
+    /**
+     * 删除饲料企业
+     * @param
+     * @return
+     */
+    @GetMapping("/enterprise/del")
+    public AjaxResult delEnterprise(@RequestParam("id") List<String> id) {
+        return remoteEnterpriseService.delEnterprise(id.toArray(new String[0]));
+    }
+
+    /**
+     * 修改饲料企业
+     * @param json
+     * @return
+     */
+    @PostMapping("/enterprise/put")
+    public AjaxResult putEnterprise(@RequestBody String json) {
+        return remoteEnterpriseService.putEnterprise(json);
+    }
+
+    /**
+     * 获取饲料企业
+     * @param
+     * @return
+     */
+    @GetMapping("/enterprise/edit")
+    public AjaxResult enterpriseEdit(String id) {
+        AjaxResult ajaxResult = remoteEnterpriseService.enterpriseEdit(id);
+        if("200".equals(ajaxResult.get("code").toString())){
+            Map<String, Object> info = (Map<String, Object>) ajaxResult.get("data");
+            PictureReplaceAll.StringToList(info);
+            return appCameraService.selectCameraByIds(info);
+        }else{
+            return ajaxResult;
+        }
+
+    }
+}

+ 87 - 0
src/main/java/com/sooka/sponest/mobile/data/digitalagriculture/controller/ExcrementdisposeController.java

@@ -0,0 +1,87 @@
+package com.sooka.sponest.mobile.data.digitalagriculture.controller;
+
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.web.page.PageDomain;
+import com.ruoyi.common.core.web.page.TableSupport;
+import com.sooka.sponest.data.api.digitalagriculture.domain.FarmEnterprise;
+import com.sooka.sponest.data.api.digitalagriculture.service.RemoteExcrementdisposeService;
+import com.sooka.sponest.mobile.system.camera.service.AppCameraService;
+import com.sooka.sponest.mobile.utils.PictureReplaceAll;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.List;
+import java.util.Map;
+
+/**
+ *  区域性粪污处置中心
+ */
+@RestController
+@RequestMapping("AppexcrementdisposeController")
+public class ExcrementdisposeController {
+    @Resource
+    RemoteExcrementdisposeService remoteExcrementdisposeService;
+    @Resource
+    AppCameraService appCameraService;
+    
+    /**
+     * 新增区域性粪污处置中心
+     * @param json
+     * @return
+     */
+    @PostMapping("/excrementdispose")
+    public AjaxResult addExcrementdispose(@RequestBody String json) {
+        return remoteExcrementdisposeService.addExcrementdispose(json);
+    }
+
+    /**
+     * 获取区域性粪污处置中心列表
+     * @param farmEnterprise
+     * @return
+     */
+    @GetMapping("/excrementdispose/list")
+    public AjaxResult excrementdisposeList( FarmEnterprise farmEnterprise) {
+
+        PageDomain pageDomain = TableSupport.buildPageRequest();
+        Integer pageNum = pageDomain.getPageNum();
+        Integer pageSize = pageDomain.getPageSize();
+        return AjaxResult.success(remoteExcrementdisposeService.excrementdisposeList(pageNum, pageSize).getRows());
+    }
+
+    /**
+     * 删除区域性粪污处置中心
+     * @param
+     * @return
+     */
+    @GetMapping("/excrementdispose/del")
+    public AjaxResult delExcrementdispose(@RequestParam("id") List<String> id) {
+        return remoteExcrementdisposeService.delExcrementdispose(id.toArray(new String[0]));
+    }
+
+    /**
+     * 修改区域性粪污处置中心
+     * @param json
+     * @return
+     */
+    @PostMapping("/excrementdispose/put")
+    public AjaxResult putExcrementdispose(@RequestBody String json) {
+        return remoteExcrementdisposeService.putExcrementdispose(json);
+    }
+
+    /**
+     * 获取区域性粪污处置中心
+     * @param
+     * @return
+     */
+    @GetMapping("/excrementdispose/edit")
+    public AjaxResult excrementdisposeEdit(String id) {
+        AjaxResult ajaxResult = remoteExcrementdisposeService.excrementdisposeEdit(id);
+        if("200".equals(ajaxResult.get("code").toString())){
+            Map<String, Object> info = (Map<String, Object>) ajaxResult.get("data");
+            PictureReplaceAll.StringToList(info);
+            return appCameraService.selectCameraByIds(info);
+        }else{
+            return ajaxResult;
+        }
+    }
+}

+ 88 - 0
src/main/java/com/sooka/sponest/mobile/data/digitalagriculture/controller/FilingsLivestockController.java

@@ -0,0 +1,88 @@
+package com.sooka.sponest.mobile.data.digitalagriculture.controller;
+
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.web.page.PageDomain;
+import com.ruoyi.common.core.web.page.TableSupport;
+import com.sooka.sponest.data.api.digitalagriculture.domain.FarmFilingsLivestock;
+import com.sooka.sponest.data.api.digitalagriculture.service.RemoteFilingsLivestockService;
+import com.sooka.sponest.mobile.system.camera.service.AppCameraService;
+import com.sooka.sponest.mobile.utils.PictureReplaceAll;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 备案畜禽规模养殖场
+ */
+@RestController
+@RequestMapping("AppfilingsLivestockController")
+public class FilingsLivestockController {
+
+    @Resource
+    RemoteFilingsLivestockService remoteFilingsLivestockService;
+    @Resource
+    AppCameraService appCameraService;
+
+    /**
+     * 新增备案畜禽规模养殖场
+     * @param json
+     * @return
+     */
+    @PostMapping("/filingsLivestock")
+    public AjaxResult filingsLivestock(@RequestBody String json) {
+        return remoteFilingsLivestockService.addFilingsLivestock(json);
+    }
+
+    /**
+     * 获取备案畜禽规模养殖场列表
+     * @param farmFilingsLivestock
+     * @return
+     */
+    @GetMapping("/filingsLivestock/list")
+    public AjaxResult filingsLivestockList(FarmFilingsLivestock farmFilingsLivestock) {
+
+        PageDomain pageDomain = TableSupport.buildPageRequest();
+        Integer pageNum = pageDomain.getPageNum();
+        Integer pageSize = pageDomain.getPageSize();
+        return AjaxResult.success(remoteFilingsLivestockService.filingsLivestockList(pageNum, pageSize).getRows());
+    }
+
+    /**
+     * 删除备案畜禽规模养殖场
+     * @param
+     * @return
+     */
+    @GetMapping("/filingsLivestock/del")
+    public AjaxResult delFilingsLivestock(@RequestParam("id") List<String> id) {
+        return remoteFilingsLivestockService.delFilingsLivestock(id.toArray(new String[0]));
+    }
+
+    /**
+     * 修改 备案畜禽规模养殖场
+     * @param json
+     * @return
+     */
+    @PostMapping("/filingsLivestock/put")
+    public AjaxResult putFilingsLivestock(@RequestBody String json) {
+        return remoteFilingsLivestockService.putFilingsLivestock(json);
+    }
+
+    /**
+     * 获取 备案畜禽规模养殖场
+     * @param
+     * @return
+     */
+    @GetMapping("/filingsLivestock/edit")
+    public AjaxResult filingsLivestockEdit(String id) {
+        AjaxResult ajaxResult = remoteFilingsLivestockService.filingsLivestockEdit(id);
+        if("200".equals(ajaxResult.get("code").toString())){
+            Map<String, Object> info = (Map<String, Object>) ajaxResult.get("data");
+            PictureReplaceAll.StringToList(info);
+            return appCameraService.selectCameraByIds(info);
+        }else{
+            return ajaxResult;
+        }
+    }
+}

+ 90 - 0
src/main/java/com/sooka/sponest/mobile/data/digitalagriculture/controller/GarbageTransferController.java

@@ -0,0 +1,90 @@
+package com.sooka.sponest.mobile.data.digitalagriculture.controller;
+
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.web.page.PageDomain;
+import com.ruoyi.common.core.web.page.TableSupport;
+import com.sooka.sponest.data.api.digitalagriculture.domain.FarmGarbageTransfer;
+import com.sooka.sponest.data.api.digitalagriculture.service.RemoteGarbageTransferInfoService;
+import com.sooka.sponest.mobile.system.camera.service.AppCameraService;
+import com.sooka.sponest.mobile.utils.PictureReplaceAll;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 垃圾转输站
+ */
+@RestController
+@RequestMapping("AppGarbageTransferController")
+public class GarbageTransferController {
+
+    @Resource
+    RemoteGarbageTransferInfoService remoteGarbageTransferInfoService;
+
+    @Resource
+    AppCameraService appCameraService;
+
+
+    /**
+     * 新增垃圾转输站
+     * @param json
+     * @return
+     */
+    @PostMapping("/GarbageTransferInfo")
+    public AjaxResult addGarbageTransferInfo(@RequestBody String json) {
+        return remoteGarbageTransferInfoService.addGarbageTransferInfo(json);
+    }
+
+    /**
+     * 获取垃圾转输站列表
+     * @param farmGarbageTransfer
+     * @return
+     */
+    @GetMapping("/GarbageTransferInfo/list")
+    public AjaxResult garbageTransferInfoList(FarmGarbageTransfer farmGarbageTransfer) {
+
+        PageDomain pageDomain = TableSupport.buildPageRequest();
+        Integer pageNum = pageDomain.getPageNum();
+        Integer pageSize = pageDomain.getPageSize();
+        return AjaxResult.success(remoteGarbageTransferInfoService.garbageTransferInfoList(pageNum, pageSize , farmGarbageTransfer.getName()).getRows());
+    }
+
+    /**
+     * 删除垃圾转输站
+     * @param
+     * @return
+     */
+    @GetMapping("/GarbageTransferInfo/del")
+    public AjaxResult delGarbageTransferInfo(@RequestParam("id") List<String> id) {
+        return remoteGarbageTransferInfoService.delGarbageTransferInfo(id.toArray(new String[0]));
+    }
+
+    /**
+     * 修改垃圾转输站
+     * @param json
+     * @return
+     */
+    @PostMapping("/GarbageTransferInfo/put")
+    public AjaxResult putGarbageTransferInfo(@RequestBody String json) {
+        return remoteGarbageTransferInfoService.putGarbageTransferInfo(json);
+    }
+
+    /**
+     * 获取垃圾转输站详情
+     * @param
+     * @return
+     */
+    @GetMapping("/GarbageTransferInfo/edit")
+    public AjaxResult garbageTransferInfoEdit(String id) {
+        AjaxResult ajaxResult = remoteGarbageTransferInfoService.garbageTransferInfoEdit(id);
+        if("200".equals(ajaxResult.get("code").toString())){
+            Map<String, Object> info = (Map<String, Object>) ajaxResult.get("data");
+            PictureReplaceAll.StringToList(info);
+            return appCameraService.selectCameraByIds(info);
+        }else{
+            return ajaxResult;
+        }
+    }
+}

+ 87 - 0
src/main/java/com/sooka/sponest/mobile/data/digitalagriculture/controller/GreenhousefilmController.java

@@ -0,0 +1,87 @@
+package com.sooka.sponest.mobile.data.digitalagriculture.controller;
+
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.web.page.PageDomain;
+import com.ruoyi.common.core.web.page.TableSupport;
+import com.sooka.sponest.data.api.digitalagriculture.domain.FarmGreenhouseFilmInfo;
+import com.sooka.sponest.data.api.digitalagriculture.service.RemoteGreenhousefilmService;
+import com.sooka.sponest.mobile.system.camera.service.AppCameraService;
+import com.sooka.sponest.mobile.utils.PictureReplaceAll;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 棚膜信息
+ */
+@RestController
+@RequestMapping("AppgreenhousefilmController")
+public class GreenhousefilmController {
+    @Resource
+    RemoteGreenhousefilmService remoteGreenhousefilmService;
+    @Resource
+    AppCameraService appCameraService;
+
+    /**
+     * 新增棚膜信息
+     * @param json
+     * @return
+     */
+    @PostMapping("/greenhousefilm")
+    public AjaxResult addGreenhousefilm(@RequestBody String json) {
+        return remoteGreenhousefilmService.addGreenhousefilm(json);
+    }
+
+    /**
+     * 获取棚膜信息列表
+     * @param centerdataTFarmGreenhouseFilmVo
+     * @return
+     */
+    @GetMapping("/greenhousefilm/list")
+    public AjaxResult greenhousefilmList(FarmGreenhouseFilmInfo centerdataTFarmGreenhouseFilmVo) {
+
+        PageDomain pageDomain = TableSupport.buildPageRequest();
+        Integer pageNum = pageDomain.getPageNum();
+        Integer pageSize = pageDomain.getPageSize();
+        return AjaxResult.success(remoteGreenhousefilmService.greenhousefilmList(pageNum, pageSize).getRows());
+    }
+
+    /**
+     * 删除棚膜信息
+     * @param
+     * @return
+     */
+    @GetMapping("/greenhousefilm/del")
+    public AjaxResult delGreenhousefilm(@RequestParam("id") List<String> id) {
+        return remoteGreenhousefilmService.delGreenhousefilm(id.toArray(new String[0]));
+    }
+
+    /**
+     * 修改棚膜信息
+     * @param json
+     * @return
+     */
+    @PostMapping("/greenhousefilm/put")
+    public AjaxResult putGreenhousefilm(@RequestBody String json) {
+        return remoteGreenhousefilmService.putGreenhousefilm(json);
+    }
+
+    /**
+     * 获取棚膜信息详情
+     * @param
+     * @return
+     */
+    @GetMapping("/greenhousefilm/edit")
+    public AjaxResult greenhousefilmEdit(String id) {
+        AjaxResult ajaxResult = remoteGreenhousefilmService.greenhousefilmEdit(id);
+        if("200".equals(ajaxResult.get("code").toString())){
+            Map<String, Object> info = (Map<String, Object>) ajaxResult.get("data");
+            PictureReplaceAll.StringToList(info);
+            return appCameraService.selectCameraByIds(info);
+        }else{
+            return ajaxResult;
+        }
+    }
+}

+ 75 - 0
src/main/java/com/sooka/sponest/mobile/data/digitalagriculture/controller/ImplementsInfoController.java

@@ -0,0 +1,75 @@
+package com.sooka.sponest.mobile.data.digitalagriculture.controller;
+
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.web.page.PageDomain;
+import com.ruoyi.common.core.web.page.TableSupport;
+import com.sooka.sponest.data.api.digitalagriculture.domain.FarmImplementsInfo;
+import com.sooka.sponest.data.api.digitalagriculture.service.RemoteImplementsInfoService;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+/**
+ *  农具信息
+ */
+@RestController
+@RequestMapping("AppImplementsInfoController")
+public class ImplementsInfoController {
+    @Resource
+    RemoteImplementsInfoService remoteImplementsInfoService;
+
+    /**
+     * 新增农具信息
+     * @param json
+     * @return
+     */
+    @PostMapping("/ImplementsInfo")
+    public AjaxResult addImplementsInfo(@RequestBody String json) {
+        return remoteImplementsInfoService.addImplementsInfo(json);
+    }
+
+    /**
+     * 获取农具信息列表
+     * @param farmImplementsInfo
+     * @return
+     */
+    @GetMapping("/ImplementsInfo/list")
+    public AjaxResult implementsInfoList(FarmImplementsInfo farmImplementsInfo) {
+
+        PageDomain pageDomain = TableSupport.buildPageRequest();
+        Integer pageNum = pageDomain.getPageNum();
+        Integer pageSize = pageDomain.getPageSize();
+        return AjaxResult.success(remoteImplementsInfoService.implementsInfoList(pageNum, pageSize).getRows());
+    }
+
+    /**
+     * 删除农具信息
+     * @param
+     * @return
+     */
+    @GetMapping("/ImplementsInfo/del")
+    public AjaxResult delImplementsInfo(@RequestParam("id") List<String> id) {
+        return remoteImplementsInfoService.delImplementsInfo(id.toArray(new String[0]));
+    }
+
+    /**
+     * 修改农具信息
+     * @param json
+     * @return
+     */
+    @PostMapping("/ImplementsInfo/put")
+    public AjaxResult putImplementsInfo(@RequestBody String json) {
+        return remoteImplementsInfoService.putImplementsInfo(json);
+    }
+
+    /**
+     * 获取农具信息详情
+     * @param
+     * @return
+     */
+    @GetMapping("/ImplementsInfo/edit")
+    public AjaxResult implementsInfoEdit(String id) {
+        return remoteImplementsInfoService.implementsInfoEdit(id);
+    }
+}

+ 75 - 0
src/main/java/com/sooka/sponest/mobile/data/digitalagriculture/controller/InformationController.java

@@ -0,0 +1,75 @@
+package com.sooka.sponest.mobile.data.digitalagriculture.controller;
+
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.web.page.PageDomain;
+import com.ruoyi.common.core.web.page.TableSupport;
+import com.sooka.sponest.data.api.digitalagriculture.domain.FarmPesticideInformation;
+import com.sooka.sponest.data.api.digitalagriculture.service.RemoteInformationService;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+/**
+ * 农药信息
+ */
+@RestController
+@RequestMapping("AppinformationController")
+public class InformationController {
+    @Resource
+    RemoteInformationService remoteInformationService;
+
+    /**
+     * 新增农药信息
+     * @param json
+     * @return
+     */
+    @PostMapping("/information")
+    public AjaxResult addInformation(@RequestBody String json) {
+        return remoteInformationService.addInformation(json);
+    }
+
+    /**
+     * 获取农药信息列表
+     * @param farmPesticideInformation
+     * @return
+     */
+    @GetMapping("/information/list")
+    public AjaxResult informationList(FarmPesticideInformation farmPesticideInformation) {
+
+        PageDomain pageDomain = TableSupport.buildPageRequest();
+        Integer pageNum = pageDomain.getPageNum();
+        Integer pageSize = pageDomain.getPageSize();
+        return AjaxResult.success(remoteInformationService.informationList(pageNum, pageSize).getRows());
+    }
+
+    /**
+     * 删除农药信息
+     * @param
+     * @return
+     */
+    @GetMapping("/information/del")
+    public AjaxResult delInformation(@RequestParam("id") List<String> id) {
+        return remoteInformationService.delInformation(id.toArray(new String[0]));
+    }
+
+    /**
+     * 修改农药信息
+     * @param json
+     * @return
+     */
+    @PostMapping("/information/put")
+    public AjaxResult putInformation(@RequestBody String json) {
+        return remoteInformationService.putInformation(json);
+    }
+
+    /**
+     * 获取农药信息详情
+     * @param
+     * @return
+     */
+    @GetMapping("/information/edit")
+    public AjaxResult informationEdit(String id) {
+        return remoteInformationService.informationEdit(id);
+    }
+}

+ 87 - 0
src/main/java/com/sooka/sponest/mobile/data/digitalagriculture/controller/LivestockController.java

@@ -0,0 +1,87 @@
+package com.sooka.sponest.mobile.data.digitalagriculture.controller;
+
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.web.page.PageDomain;
+import com.ruoyi.common.core.web.page.TableSupport;
+import com.sooka.sponest.data.api.digitalagriculture.domain.FarmLivestock;
+import com.sooka.sponest.data.api.digitalagriculture.service.RemoteLivestockService;
+import com.sooka.sponest.mobile.system.camera.service.AppCameraService;
+import com.sooka.sponest.mobile.utils.PictureReplaceAll;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 种畜禽养殖场
+ */
+@RestController
+@RequestMapping("ApplivestockController")
+public class LivestockController {
+    @Resource
+    RemoteLivestockService remoteLivestockService;
+    @Resource
+    AppCameraService appCameraService;
+    
+    /**
+     * 新增种畜禽养殖场
+     * @param json
+     * @return
+     */
+    @PostMapping("/livestock")
+    public AjaxResult addLivestock(@RequestBody String json) {
+        return remoteLivestockService.addLivestock(json);
+    }
+
+    /**
+     * 获取种畜禽养殖场列表
+     * @param farmLivestock
+     * @return
+     */
+    @GetMapping("/livestock/list")
+    public AjaxResult livestockList(FarmLivestock farmLivestock) {
+
+        PageDomain pageDomain = TableSupport.buildPageRequest();
+        Integer pageNum = pageDomain.getPageNum();
+        Integer pageSize = pageDomain.getPageSize();
+        return AjaxResult.success(remoteLivestockService.livestockList(pageNum, pageSize).getRows());
+    }
+
+    /**
+     * 删除种畜禽养殖场
+     * @param
+     * @return
+     */
+    @GetMapping("/livestock/del")
+    public AjaxResult delLivestock(@RequestParam("id") List<String> id) {
+        return remoteLivestockService.delLivestock(id.toArray(new String[0]));
+    }
+
+    /**
+     * 修改种畜禽养殖场
+     * @param json
+     * @return
+     */
+    @PostMapping("/livestock/put")
+    public AjaxResult putLivestock(@RequestBody String json) {
+        return remoteLivestockService.putLivestock(json);
+    }
+
+    /**
+     * 获取种畜禽养殖场详情
+     * @param
+     * @return
+     */
+    @GetMapping("/livestock/edit")
+    public AjaxResult livestockEdit(String id) {
+        AjaxResult ajaxResult = remoteLivestockService.livestockEdit(id);
+        if("200".equals(ajaxResult.get("code").toString())){
+            Map<String, Object> info = (Map<String, Object>) ajaxResult.get("data");
+            PictureReplaceAll.StringToList(info);
+            return appCameraService.selectCameraByIds(info);
+        }else{
+            return ajaxResult;
+        }
+    }
+}

+ 0 - 0
src/main/java/com/sooka/sponest/mobile/data/digitalagriculture/controller/MachineryInfoController.java


Some files were not shown because too many files changed in this diff