Browse Source

首次提交

lyq 1 year ago
commit
b6da599470
100 changed files with 9020 additions and 0 deletions
  1. 124 0
      pom.xml
  2. 30 0
      src/main/java/com/sooka/sponest/data/SookaDataApplication.java
  3. 75 0
      src/main/java/com/sooka/sponest/data/app/controller/AppBigDataController.java
  4. 52 0
      src/main/java/com/sooka/sponest/data/app/controller/AppDailyController.java
  5. 71 0
      src/main/java/com/sooka/sponest/data/app/controller/AppDigitalForestController.java
  6. 28 0
      src/main/java/com/sooka/sponest/data/app/controller/AppLeaveController.java
  7. 56 0
      src/main/java/com/sooka/sponest/data/app/controller/AppPersonController.java
  8. 56 0
      src/main/java/com/sooka/sponest/data/app/controller/AppQiyeController.java
  9. 38 0
      src/main/java/com/sooka/sponest/data/app/controller/AppXcgjController.java
  10. 12 0
      src/main/java/com/sooka/sponest/data/app/domain/AgricultureBO.java
  11. 70 0
      src/main/java/com/sooka/sponest/data/app/domain/AppDailyBO.java
  12. 33 0
      src/main/java/com/sooka/sponest/data/app/domain/AppDailyVO.java
  13. 14 0
      src/main/java/com/sooka/sponest/data/app/domain/AppDigitalForestVO.java
  14. 28 0
      src/main/java/com/sooka/sponest/data/app/domain/AppDigitalForestWeather.java
  15. 80 0
      src/main/java/com/sooka/sponest/data/app/domain/AppLeaveBo.java
  16. 40 0
      src/main/java/com/sooka/sponest/data/app/domain/AppLeaveVO.java
  17. 113 0
      src/main/java/com/sooka/sponest/data/app/domain/AppPersonBO.java
  18. 638 0
      src/main/java/com/sooka/sponest/data/app/domain/AppPersonDetail.java
  19. 317 0
      src/main/java/com/sooka/sponest/data/app/domain/AppPersonVO.java
  20. 33 0
      src/main/java/com/sooka/sponest/data/app/domain/AppQiyeBO.java
  21. 142 0
      src/main/java/com/sooka/sponest/data/app/domain/AppQiyeDetail.java
  22. 122 0
      src/main/java/com/sooka/sponest/data/app/domain/AppQiyeVO.java
  23. 34 0
      src/main/java/com/sooka/sponest/data/app/domain/AppTsrq.java
  24. 25 0
      src/main/java/com/sooka/sponest/data/app/domain/AppUserCommunity.java
  25. 14 0
      src/main/java/com/sooka/sponest/data/app/domain/AppWatercraneBO.java
  26. 38 0
      src/main/java/com/sooka/sponest/data/app/domain/App_ZhsqPatroldate_VO.java
  27. 40 0
      src/main/java/com/sooka/sponest/data/app/domain/App_ZhsqPatrolrecord_VO.java
  28. 52 0
      src/main/java/com/sooka/sponest/data/app/domain/App_ZhsqXcgj_VO.java
  29. 43 0
      src/main/java/com/sooka/sponest/data/app/domain/VisuForestCloudMapVO.java
  30. 33 0
      src/main/java/com/sooka/sponest/data/app/domain/VisuForestResourceBO.java
  31. 21 0
      src/main/java/com/sooka/sponest/data/app/mapper/AppBigDataMapper.java
  32. 35 0
      src/main/java/com/sooka/sponest/data/app/mapper/AppDailyMapper.java
  33. 89 0
      src/main/java/com/sooka/sponest/data/app/mapper/AppDigitalForestMapper.java
  34. 13 0
      src/main/java/com/sooka/sponest/data/app/mapper/AppLeaveMapper.java
  35. 71 0
      src/main/java/com/sooka/sponest/data/app/mapper/AppPersonMapper.java
  36. 24 0
      src/main/java/com/sooka/sponest/data/app/mapper/AppQiyeMapper.java
  37. 61 0
      src/main/java/com/sooka/sponest/data/app/mapper/AppXcgjMapper.java
  38. 18 0
      src/main/java/com/sooka/sponest/data/app/service/AppDailyService.java
  39. 20 0
      src/main/java/com/sooka/sponest/data/app/service/AppDigitalForestService.java
  40. 9 0
      src/main/java/com/sooka/sponest/data/app/service/AppLeaveService.java
  41. 25 0
      src/main/java/com/sooka/sponest/data/app/service/AppPersonService.java
  42. 21 0
      src/main/java/com/sooka/sponest/data/app/service/AppQiyeService.java
  43. 15 0
      src/main/java/com/sooka/sponest/data/app/service/AppXcgjService.java
  44. 22 0
      src/main/java/com/sooka/sponest/data/app/service/IAppBigDataDataService.java
  45. 46 0
      src/main/java/com/sooka/sponest/data/app/service/impl/AppBigDataServiceImpl.java
  46. 44 0
      src/main/java/com/sooka/sponest/data/app/service/impl/AppDailyServiceImpl.java
  47. 79 0
      src/main/java/com/sooka/sponest/data/app/service/impl/AppDigitalForestServiceImpl.java
  48. 25 0
      src/main/java/com/sooka/sponest/data/app/service/impl/AppLeaveServiceImpl.java
  49. 142 0
      src/main/java/com/sooka/sponest/data/app/service/impl/AppPersonServiceImpl.java
  50. 62 0
      src/main/java/com/sooka/sponest/data/app/service/impl/AppQiyeServiceImpl.java
  51. 88 0
      src/main/java/com/sooka/sponest/data/app/service/impl/AppXcgjServiceImpl.java
  52. 66 0
      src/main/java/com/sooka/sponest/data/base/domain/BaseBusinessEntity.java
  53. 24 0
      src/main/java/com/sooka/sponest/data/base/domain/ESVo.java
  54. 17 0
      src/main/java/com/sooka/sponest/data/base/mapper/BaseMapper.java
  55. 17 0
      src/main/java/com/sooka/sponest/data/base/service/IBaseService.java
  56. 99 0
      src/main/java/com/sooka/sponest/data/base/service/impl/BaseServiceImpl.java
  57. 152 0
      src/main/java/com/sooka/sponest/data/basicdata/controller/CenterdataTForestCarController.java
  58. 110 0
      src/main/java/com/sooka/sponest/data/basicdata/controller/CenterdataTForestCarrepairController.java
  59. 152 0
      src/main/java/com/sooka/sponest/data/basicdata/controller/CenterdataTForestFirehydrantController.java
  60. 199 0
      src/main/java/com/sooka/sponest/data/basicdata/controller/CenterdataTForestWatercraneController.java
  61. 200 0
      src/main/java/com/sooka/sponest/data/basicdata/controller/CenterdataTForestWaterintakeController.java
  62. 195 0
      src/main/java/com/sooka/sponest/data/basicdata/domain/CenterdataTForestCar.java
  63. 197 0
      src/main/java/com/sooka/sponest/data/basicdata/domain/CenterdataTForestCarrepair.java
  64. 251 0
      src/main/java/com/sooka/sponest/data/basicdata/domain/CenterdataTForestFirehydrant.java
  65. 122 0
      src/main/java/com/sooka/sponest/data/basicdata/domain/CenterdataTForestWatercrane.java
  66. 211 0
      src/main/java/com/sooka/sponest/data/basicdata/domain/CenterdataTForestWaterintake.java
  67. 60 0
      src/main/java/com/sooka/sponest/data/basicdata/mapper/CenterdataTForestCarMapper.java
  68. 54 0
      src/main/java/com/sooka/sponest/data/basicdata/mapper/CenterdataTForestCarrepairMapper.java
  69. 58 0
      src/main/java/com/sooka/sponest/data/basicdata/mapper/CenterdataTForestFirehydrantMapper.java
  70. 58 0
      src/main/java/com/sooka/sponest/data/basicdata/mapper/CenterdataTForestWatercraneMapper.java
  71. 58 0
      src/main/java/com/sooka/sponest/data/basicdata/mapper/CenterdataTForestWaterintakeMapper.java
  72. 60 0
      src/main/java/com/sooka/sponest/data/basicdata/service/ICenterdataTForestCarService.java
  73. 54 0
      src/main/java/com/sooka/sponest/data/basicdata/service/ICenterdataTForestCarrepairService.java
  74. 58 0
      src/main/java/com/sooka/sponest/data/basicdata/service/ICenterdataTForestFirehydrantService.java
  75. 58 0
      src/main/java/com/sooka/sponest/data/basicdata/service/ICenterdataTForestWatercraneService.java
  76. 58 0
      src/main/java/com/sooka/sponest/data/basicdata/service/ICenterdataTForestWaterintakeService.java
  77. 136 0
      src/main/java/com/sooka/sponest/data/basicdata/service/impl/CenterdataTForestCarServiceImpl.java
  78. 91 0
      src/main/java/com/sooka/sponest/data/basicdata/service/impl/CenterdataTForestCarrepairServiceImpl.java
  79. 134 0
      src/main/java/com/sooka/sponest/data/basicdata/service/impl/CenterdataTForestFirehydrantServiceImpl.java
  80. 132 0
      src/main/java/com/sooka/sponest/data/basicdata/service/impl/CenterdataTForestWatercraneServiceImpl.java
  81. 132 0
      src/main/java/com/sooka/sponest/data/basicdata/service/impl/CenterdataTForestWaterintakeServiceImpl.java
  82. 276 0
      src/main/java/com/sooka/sponest/data/commandcenter/controller/CommandCenterController.java
  83. 26 0
      src/main/java/com/sooka/sponest/data/commandcenter/domian/AreaBody.java
  84. 26 0
      src/main/java/com/sooka/sponest/data/commandcenter/domian/CommandCenterBO.java
  85. 115 0
      src/main/java/com/sooka/sponest/data/commandcenter/domian/ProjectBody.java
  86. 100 0
      src/main/java/com/sooka/sponest/data/commandcenter/mapper/CommandCenterMapper.java
  87. 58 0
      src/main/java/com/sooka/sponest/data/commandcenter/service/ICommandCenterService.java
  88. 540 0
      src/main/java/com/sooka/sponest/data/commandcenter/service/impl/ICommandCenterServiceImpl.java
  89. 246 0
      src/main/java/com/sooka/sponest/data/digitalagriculture/controller/AgricultureBigDataController.java
  90. 63 0
      src/main/java/com/sooka/sponest/data/digitalagriculture/controller/AgricultureViewController.java
  91. 145 0
      src/main/java/com/sooka/sponest/data/digitalagriculture/controller/CenterdataTFarmAgriculturalCooperativesController.java
  92. 135 0
      src/main/java/com/sooka/sponest/data/digitalagriculture/controller/CenterdataTFarmAgriculturalMachineryInfoController.java
  93. 105 0
      src/main/java/com/sooka/sponest/data/digitalagriculture/controller/CenterdataTFarmAgriculturalSuperviseController.java
  94. 63 0
      src/main/java/com/sooka/sponest/data/digitalagriculture/controller/CenterdataTFarmAnimalHusbandryInfoController.java
  95. 105 0
      src/main/java/com/sooka/sponest/data/digitalagriculture/controller/CenterdataTFarmAutumnHarvestScheduleController.java
  96. 63 0
      src/main/java/com/sooka/sponest/data/digitalagriculture/controller/CenterdataTFarmAutumnHarvestScheduleCountController.java
  97. 144 0
      src/main/java/com/sooka/sponest/data/digitalagriculture/controller/CenterdataTFarmBotanyProtectInfoController.java
  98. 105 0
      src/main/java/com/sooka/sponest/data/digitalagriculture/controller/CenterdataTFarmBreedingFarmController.java
  99. 111 0
      src/main/java/com/sooka/sponest/data/digitalagriculture/controller/CenterdataTFarmCesspitCollectController.java
  100. 0 0
      src/main/java/com/sooka/sponest/data/digitalagriculture/controller/CenterdataTFarmChemicalFertilizerInfoController.java

+ 124 - 0
pom.xml

@@ -0,0 +1,124 @@
+<?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>
+        <artifactId>ruoyi-modules</artifactId>
+        <groupId>com.ruoyi</groupId>
+        <version>3.4.0</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <groupId>com.sooka.onest</groupId>
+    <artifactId>center-data</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>
+
+        <!-- Sentinel Datasource Nacos -->
+        <dependency>
+            <groupId>com.alibaba.csp</groupId>
+            <artifactId>sentinel-datasource-nacos</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.alibaba</groupId>
+            <artifactId>druid</artifactId>
+            <version>1.1.22</version>
+        </dependency>
+
+        <dependency>
+            <groupId>com.dahuatech.icc</groupId>
+            <artifactId>java-sdk-oauth</artifactId>
+            <version>1.0.9</version>
+        </dependency>
+
+        <dependency>
+            <groupId>com.ruoyi</groupId>
+            <artifactId>sooka-sponest-api-message</artifactId>
+            <version>3.4.0</version>
+        </dependency>
+
+        <!--  RabbitMQ的Stream实现  -->
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-stream-rabbit</artifactId>
+        </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>

+ 30 - 0
src/main/java/com/sooka/sponest/data/SookaDataApplication.java

@@ -0,0 +1,30 @@
+package com.sooka.sponest.data;
+
+import com.ruoyi.common.security.annotation.EnableCustomConfig;
+import com.ruoyi.common.security.annotation.EnableRyFeignClients;
+import com.ruoyi.common.swagger.annotation.EnableCustomSwagger2;
+import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
+
+@EnableCustomConfig
+@EnableCustomSwagger2
+@EnableRyFeignClients
+@SpringBootApplication
+@EnableAutoConfiguration(exclude = {DataSourceAutoConfiguration.class})
+@MapperScan("com.sooka.sponest.data.**.mapper")
+public class SookaDataApplication {
+
+    public static void main(String[] args) {
+        SpringApplication.run(SookaDataApplication.class, args);
+        System.out.println("(♥◠‿◠)ノ゙  首佳科技 一体化 数据中心 启动成功   ლ(´ڡ`ლ)゙  \n" +
+                "  __________   ____ |  | _______          ____________   ____   ____   ____   _______/  |_\n" +
+                " /  ___/  _ \\ /  _ \\|  |/ /\\__  \\        /  ___/\\____ \\ /  _ \\ /    \\_/ __ \\ /  ___/\\   __\\\n" +
+                " \\___ (  <_> |  <_> )    <  / __ \\_      \\___ \\ |  |_> >  <_> )   |  \\  ___/ \\___ \\  |  |\n" +
+                "/____  >____/ \\____/|__|_ \\(____  /     /____  >|   __/ \\____/|___|  /\\___  >____  > |__|\n" +
+                "     \\/                  \\/     \\/           \\/ |__|               \\/     \\/     \\/\n"
+        );
+    }
+}

+ 75 - 0
src/main/java/com/sooka/sponest/data/app/controller/AppBigDataController.java

@@ -0,0 +1,75 @@
+package com.sooka.sponest.data.app.controller;
+
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.web.controller.BaseController;
+import com.sooka.sponest.data.app.domain.VisuForestCloudMapVO;
+import com.sooka.sponest.data.app.domain.VisuForestResourceBO;
+import com.sooka.sponest.data.app.service.IAppBigDataDataService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.apache.commons.collections4.MapUtils;
+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.Iterator;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @program: sooka
+ * @description: 数据中心-大数据控制器
+ * @author: lyq
+ * @create: 2022-11-02
+ **/
+@Api(tags = "手机查询数据中心手机控制器")
+@RestController
+@RequestMapping("/AppBigDataController")
+public class AppBigDataController extends BaseController {
+
+    @Resource
+    private IAppBigDataDataService appBigDataDataReportService;
+
+    @ApiOperation(value = "手机调用查询数据中心各系统资源", notes = "手机调用查询数据中心各系统资源")
+    @PostMapping("/getAllData")
+    public R<List<Map<String, Object>>> getAllData() {
+        VisuForestCloudMapVO visuForestCloudMapVO = new VisuForestCloudMapVO();
+        List<Map<String, Object>> resultList = appBigDataDataReportService.getFireData(visuForestCloudMapVO);
+        resultList.addAll(appBigDataDataReportService.getFireControlData(visuForestCloudMapVO));
+        resultList.addAll(appBigDataDataReportService.getEnvironmentData(visuForestCloudMapVO));
+        int i = 3;// 重点区域个数
+        Long total = 0L;
+        Iterator<Map<String, Object>> iterator = resultList.iterator();
+        while (iterator.hasNext()) {
+            Map<String, Object> map = iterator.next();
+            if (i == 0 || !"重点区域".equals(MapUtils.getString(map, "name"))) {
+                break;
+            }
+            if ("重点区域".equals(MapUtils.getString(map, "name"))) {
+                i--;
+                total += MapUtils.getLong(map, "value");
+            }
+            if (i == 1) {
+                map.put("value", total);
+            } else {
+                iterator.remove();
+            }
+        }
+        return R.ok(resultList);
+    }
+
+    @ApiOperation(value = "手机调用查询数据中心资源按部门分组", notes = "手机调用查询数据中心资源按部门分组")
+    @PostMapping("/getCountGroupByDept")
+    public R<List<Map<String, Object>>> getCountGroupByDept(@RequestBody VisuForestResourceBO visuForestResourceBO) {
+        return R.ok(appBigDataDataReportService.getCountGroupByDept(visuForestResourceBO));
+    }
+
+    @ApiOperation(value = "手机调用查询数据中心资源按部门分组", notes = "手机调用查询数据中心资源按部门分组")
+    @PostMapping("/getLocation")
+    public R<List<Map<String, Object>>> getLocation(@RequestBody VisuForestResourceBO visuForestResourceBO) {
+        List<Map<String, Object>> resultList = appBigDataDataReportService.getLocationWithCamera(visuForestResourceBO);
+        return R.ok(resultList);
+    }
+}

+ 52 - 0
src/main/java/com/sooka/sponest/data/app/controller/AppDailyController.java

@@ -0,0 +1,52 @@
+package com.sooka.sponest.data.app.controller;
+
+import com.ruoyi.common.core.domain.R;
+import com.sooka.sponest.data.app.domain.AppDailyBO;
+import com.sooka.sponest.data.app.domain.AppDailyVO;
+import com.sooka.sponest.data.app.service.AppDailyService;
+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.List;
+
+@RestController
+@RequestMapping("AppDailyController")
+public class AppDailyController {
+
+    @Resource
+    AppDailyService appDailyService;
+
+    //添加日报
+    @ApiOperation(value = "添加日报", notes = "添加日报")
+    @PostMapping("addDaily")
+    public R<Integer> addDaily(@RequestBody AppDailyBO bo) {
+        return R.ok(appDailyService.addDaily(bo));
+    }
+
+    //查询本人-本月  日报情况
+    @ApiOperation(value = "查询本人-本月  日报情况", notes = "查询本人-本月  日报情况")
+    @PostMapping("queryDailyByMonth")
+    public R<List<AppDailyBO>> queryDailyByMonth(@RequestBody AppDailyVO appDailyVO) {
+        return R.ok(appDailyService.queryDailyByMonth(appDailyVO));
+    }
+
+    //查询本人-指定日期 日报情况
+    @ApiOperation(value = "查询本人-指定日期 日报情况", notes = "查询本人-指定日期 日报情况")
+    @PostMapping("queryDailyByDay")
+    public R<AppDailyBO> queryDailyByDay(@RequestBody AppDailyVO appDailyVO) {
+        return R.ok(appDailyService.queryDailyByDay(appDailyVO));
+    }
+
+
+    @PostMapping("selectRepeatDaily")
+    public R<Integer> selectRepeatDaily(@RequestBody AppDailyBO bo) {
+        return R.ok(appDailyService.selectRepeatDaily(bo));
+
+    }
+
+
+}

+ 71 - 0
src/main/java/com/sooka/sponest/data/app/controller/AppDigitalForestController.java

@@ -0,0 +1,71 @@
+package com.sooka.sponest.data.app.controller;
+
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.sooka.sponest.data.app.domain.AgricultureBO;
+import com.sooka.sponest.data.app.domain.AppDigitalForestVO;
+import com.sooka.sponest.data.app.domain.AppDigitalForestWeather;
+import com.sooka.sponest.data.app.service.AppDigitalForestService;
+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.List;
+
+@RequestMapping("AppDigitalForestController")
+@RestController
+public class AppDigitalForestController {
+
+    @Resource
+    AppDigitalForestService appDigitalForestService;
+
+
+    @ApiOperation(value = "林业数据中心点位", notes = "林业数据中心点位")
+    @PostMapping("resourceList")
+    public AjaxResult resourceList(@RequestBody AppDigitalForestVO vo) {
+        return appDigitalForestService.resourceList(vo);
+    }
+
+
+    @PostMapping("selectWeather")
+    public AjaxResult selectWeather(@RequestBody AppDigitalForestWeather appDigitalForestWeather) {
+        return AjaxResult.success(appDigitalForestService.selectWeather(appDigitalForestWeather));
+    }
+
+    @PostMapping("HeZuoShePoint")
+    public R<List<AgricultureBO>> HeZuoShePoint(@RequestBody AgricultureBO agricultureBO) {
+
+        return R.ok(appDigitalForestService.HeZuoShePoint(agricultureBO));
+    }
+
+
+    @PostMapping("ZhiBaoPoint")
+    public R<List<AgricultureBO>> ZhiBaoPoint(@RequestBody AgricultureBO agricultureBO) {
+
+        return R.ok(appDigitalForestService.ZhiBaoPoint(agricultureBO));
+    }
+
+
+    @PostMapping("XuBaoPoint")
+    public R<List<AgricultureBO>> XuBaoPoint(@RequestBody AgricultureBO agricultureBO) {
+
+        return R.ok(appDigitalForestService.XuBaoPoint(agricultureBO));
+    }
+
+
+    @PostMapping("NongJiZhanPoint")
+    public R<List<AgricultureBO>> NongJiZhanPoint(@RequestBody AgricultureBO agricultureBO) {
+
+        return R.ok(appDigitalForestService.NongJiZhanPoint(agricultureBO));
+    }
+
+    @PostMapping("YangZhiPoint")
+    public R<List<AgricultureBO>> YangZhiPoint(@RequestBody AgricultureBO agricultureBO) {
+
+        return R.ok(appDigitalForestService.YangZhiPoint(agricultureBO));
+    }
+
+}

+ 28 - 0
src/main/java/com/sooka/sponest/data/app/controller/AppLeaveController.java

@@ -0,0 +1,28 @@
+package com.sooka.sponest.data.app.controller;
+
+import com.ruoyi.common.core.web.controller.BaseController;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.sooka.sponest.data.app.domain.AppLeaveBo;
+import com.sooka.sponest.data.app.service.AppLeaveService;
+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;
+
+@RestController
+@RequestMapping("AppLeaveController")
+public class AppLeaveController extends BaseController {
+
+    @Resource
+    AppLeaveService appLeaveService;
+
+    @ApiOperation(value = "添加请假", notes = "添加请假")
+    @PostMapping("addLeave")
+    public AjaxResult addLeave(@RequestBody AppLeaveBo bo) {
+        return toAjax(appLeaveService.addLeave(bo));
+    }
+
+}

+ 56 - 0
src/main/java/com/sooka/sponest/data/app/controller/AppPersonController.java

@@ -0,0 +1,56 @@
+package com.sooka.sponest.data.app.controller;
+
+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.sooka.sponest.data.app.domain.AppPersonVO;
+import com.sooka.sponest.data.app.service.AppPersonService;
+import com.sooka.sponest.data.zhsqapp.base.controller.AppBaseController;
+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;
+
+@RestController
+@RequestMapping("AppPersonController")
+public class AppPersonController extends AppBaseController {
+
+    @Resource
+    AppPersonService service;
+
+    @ApiOperation(value = "人员列表", notes = "人员列表")
+    @PostMapping("list")
+    public TableDataInfo list (@RequestBody AppPersonVO vo){
+        startPage();
+        return getDataTable(service.list(vo));
+    }
+
+    @ApiOperation(value = "添加人员", notes = "添加人员")
+    @PostMapping("add")
+    public R<AjaxResult> add(@RequestBody AppPersonVO vo){
+        return R.ok(service.add(vo));
+    }
+
+    @ApiOperation(value = "修改人员", notes = "修改人员")
+    @PostMapping("update")
+    public R<AjaxResult> update(@RequestBody AppPersonVO vo){
+        return R.ok(service.update(vo));
+    }
+
+    @ApiOperation(value = "人员详情", notes = "人员详情")
+    @PostMapping("detail")
+    public R<AjaxResult> detail(@RequestBody AppPersonVO vo) {
+        return R.ok(service.detail(vo));
+    }
+
+    @ApiOperation(value = "删除人员", notes = "删除人员")
+    @PostMapping("delete")
+    public R<AjaxResult> delete(@RequestBody AppPersonVO vo){
+        return R.ok(service.delete(vo));
+    }
+
+
+}

+ 56 - 0
src/main/java/com/sooka/sponest/data/app/controller/AppQiyeController.java

@@ -0,0 +1,56 @@
+package com.sooka.sponest.data.app.controller;
+
+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.sooka.sponest.data.app.domain.AppQiyeVO;
+import com.sooka.sponest.data.app.service.AppQiyeService;
+import com.sooka.sponest.data.zhsqapp.base.controller.AppBaseController;
+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;
+
+@RestController
+@RequestMapping("AppQiyeController")
+public class AppQiyeController extends AppBaseController {
+
+    @Resource
+    AppQiyeService service;
+
+    @ApiOperation(value = "企业列表", notes = "企业列表")
+    @PostMapping("list")
+    public TableDataInfo list(@RequestBody AppQiyeVO vo){
+        startPage();
+
+        return getDataTable(service.list(vo));
+    }
+
+    @ApiOperation(value = "添加企业", notes = "添加企业")
+    @PostMapping("add")
+    public  R<AjaxResult>  add(@RequestBody AppQiyeVO vo){
+        return R.ok(service.add(vo));
+    }
+
+    @ApiOperation(value = "修改企业", notes = "修改企业")
+    @PostMapping("update")
+    public  R<AjaxResult>  update(@RequestBody AppQiyeVO vo){
+        return R.ok(service.update(vo));
+    }
+
+    @ApiOperation(value = "企业详情", notes = "企业详情")
+    @PostMapping("detail")
+    public  R<AjaxResult>  detail(@RequestBody AppQiyeVO vo) {
+        return R.ok(service.detail(vo));
+    }
+
+    @ApiOperation(value = "删除企业", notes = "删除企业")
+    @PostMapping("delete")
+    public  R<AjaxResult>  delete(@RequestBody AppQiyeVO vo) {
+        return R.ok(service.delete(vo));
+    }
+
+}

+ 38 - 0
src/main/java/com/sooka/sponest/data/app/controller/AppXcgjController.java

@@ -0,0 +1,38 @@
+package com.sooka.sponest.data.app.controller;
+
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.sooka.sponest.data.app.domain.App_ZhsqPatrolrecord_VO;
+import com.sooka.sponest.data.app.domain.App_ZhsqXcgj_VO;
+import com.sooka.sponest.data.app.service.AppXcgjService;
+import com.sooka.sponest.data.zhsqapp.base.controller.AppBaseController;
+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;
+
+@RestController
+@RequestMapping("AppXcgjController")
+public class AppXcgjController extends AppBaseController
+{
+    @Resource
+    AppXcgjService service;
+
+
+    /**
+     * 开始巡查
+     */
+    @ApiOperation(value = "开始巡查", notes = "开始巡查")
+    @PostMapping("startXunCha")
+    public AjaxResult addXunCha(@RequestBody App_ZhsqXcgj_VO vo){ return service.addXunCha(vo); }
+
+    /**
+     * 推送轨迹
+     */
+    @ApiOperation(value = "推送轨迹", notes = "推送轨迹")
+    @PostMapping("addGuiJi")
+    public AjaxResult addGuiJi(@RequestBody App_ZhsqPatrolrecord_VO vo){ return service.addGuiJi(vo); }
+
+}

+ 12 - 0
src/main/java/com/sooka/sponest/data/app/domain/AgricultureBO.java

@@ -0,0 +1,12 @@
+package com.sooka.sponest.data.app.domain;
+import com.sooka.sponest.data.base.domain.BaseBusinessEntity;
+import lombok.Data;
+
+@Data
+public class AgricultureBO extends BaseBusinessEntity{
+    private String watercraneName;
+    private String longitude;
+    private String latitude;
+    private String type;
+    private String distance;
+}

+ 70 - 0
src/main/java/com/sooka/sponest/data/app/domain/AppDailyBO.java

@@ -0,0 +1,70 @@
+package com.sooka.sponest.data.app.domain;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.common.core.annotation.Excel;
+import com.sooka.sponest.data.zhsqapp.base.domain.AppBaseBO;
+import lombok.Getter;
+import lombok.Setter;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+import java.util.Date;
+
+@Getter
+@Setter
+public class AppDailyBO extends AppBaseBO {
+
+
+    private static final long serialVersionUID = 1L;
+
+    /** 主键id */
+    private String id;
+
+    /** 数据状态(1-可用 2-不可用 ) */
+    @Excel(name = "数据状态(1-可用 2-不可用 )")
+    private String dataStatus;
+
+    /** 数据所属部门(政或党的id) */
+    @Excel(name = "数据所属部门(政或党的id)")
+    private Long dataDeptId;
+
+    /** 日报类型(字典) */
+    @Excel(name = "日报类型(字典)")
+    private String dailyType;
+
+    /** 日报时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "日报时间", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date dailyTime;
+
+    /** 日报标题 */
+    @Excel(name = "日报标题")
+    private String dailyTitle;
+
+    /** 日报内容 */
+    @Excel(name = "日报内容")
+    private String dailyContent;
+
+    /** 部门id */
+    @Excel(name = "部门id")
+    private Long deptId;
+
+    /** 部门名称 */
+    @Excel(name = "部门名称")
+    private String deptName;
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
+                .append("id", getId())
+                .append("dataStatus", getDataStatus())
+                .append("dataDeptId", getDataDeptId())
+                .append("dailyType", getDailyType())
+                .append("dailyTime", getDailyTime())
+                .append("dailyTitle", getDailyTitle())
+                .append("dailyContent", getDailyContent())
+                .append("deptId", getDeptId())
+                .append("deptName", getDeptName())
+                .toString();
+    }
+}

+ 33 - 0
src/main/java/com/sooka/sponest/data/app/domain/AppDailyVO.java

@@ -0,0 +1,33 @@
+package com.sooka.sponest.data.app.domain;
+
+import com.sooka.sponest.data.zhsqapp.base.domain.AppBaseVO;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.Date;
+
+@Getter
+@Setter
+public class AppDailyVO extends AppBaseVO {
+
+    /**
+     * 日报所属部门
+     */
+    private Long dataDeptId;
+    /**
+     * 日报标题
+     */
+    private String dailyTitle;
+
+    /**
+     * 日报内容
+     */
+    private String dailyContent;
+
+    private String month;
+    private String day;
+
+    private String dataDeptName;
+    private Date createTime;
+
+}

+ 14 - 0
src/main/java/com/sooka/sponest/data/app/domain/AppDigitalForestVO.java

@@ -0,0 +1,14 @@
+package com.sooka.sponest.data.app.domain;
+
+import lombok.Getter;
+import lombok.Setter;
+
+@Getter
+@Setter
+public class AppDigitalForestVO {
+
+    String  longitude;
+    String  latitude;
+
+    String eventType;
+}

+ 28 - 0
src/main/java/com/sooka/sponest/data/app/domain/AppDigitalForestWeather.java

@@ -0,0 +1,28 @@
+package com.sooka.sponest.data.app.domain;
+
+import com.sooka.sponest.data.base.domain.BaseBusinessEntity;
+import lombok.Data;
+
+/**
+ * @program: ruoyi
+ * @description: yy
+ * @author: yy
+ * @create: 2022-06-28 14:28
+ **/
+@Data
+public class AppDigitalForestWeather extends BaseBusinessEntity {
+    /** 时间 */
+    private String weatherinformationTime;
+
+    /** 天气 */
+    private String weatherinformationWeather;
+
+    /** 低温 */
+    private String weatherinformationLow;
+
+    /** 高温 */
+    private String weatherinformationHigh;
+
+    /** 火险等级(字典) */
+    private String forestWeatherinformationLevel;
+}

+ 80 - 0
src/main/java/com/sooka/sponest/data/app/domain/AppLeaveBo.java

@@ -0,0 +1,80 @@
+package com.sooka.sponest.data.app.domain;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.common.core.annotation.Excel;
+import com.sooka.sponest.data.zhsqapp.base.domain.AppBaseBO;
+import lombok.Getter;
+import lombok.Setter;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+import java.util.Date;
+
+@Getter
+@Setter
+public class AppLeaveBo extends AppBaseBO {
+
+    private static final long serialVersionUID = 1L;
+
+    /** 主键id */
+    private String id;
+
+    /** 数据状态(1-可用 2-不可用 ) */
+    @Excel(name = "数据状态(1-可用 2-不可用 )")
+    private String dataStatus;
+
+    /** 数据所属部门(政或党的id) */
+    @Excel(name = "数据所属部门(政或党的id)")
+    private Long dataDeptId;
+
+    /** 请假开始时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "请假开始时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    private Date leaveStartTime;
+
+    /** 请假j结束时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "请假j结束时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    private Date leaveEndTime;
+
+    /** 状态(字典) */
+    @Excel(name = "状态(字典)")
+    private String forestLeaveStatus;
+
+    /** 请假人事由 */
+    @Excel(name = "请假人事由")
+    private String leaveMatter;
+
+    /** 部门id */
+    @Excel(name = "部门id")
+    private Long deptId;
+
+    /** 部门名称 */
+    @Excel(name = "部门名称")
+    private String deptName;
+
+    /** 请假人id */
+    @Excel(name = "请假人id")
+    private Long leaveUserId;
+
+    /** 请假人姓名 */
+    @Excel(name = "请假人姓名")
+    private String leaveUserName;
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
+                .append("id", getId())
+                .append("dataStatus", getDataStatus())
+                .append("dataDeptId", getDataDeptId())
+                .append("leaveStartTime", getLeaveStartTime())
+                .append("leaveEndTime", getLeaveEndTime())
+                .append("forestLeaveStatus", getForestLeaveStatus())
+                .append("leaveMatter", getLeaveMatter())
+                .append("deptId", getDeptId())
+                .append("deptName", getDeptName())
+                .append("leaveUserId", getLeaveUserId())
+                .append("leaveUserName", getLeaveUserName())
+                .toString();
+    }
+}

+ 40 - 0
src/main/java/com/sooka/sponest/data/app/domain/AppLeaveVO.java

@@ -0,0 +1,40 @@
+package com.sooka.sponest.data.app.domain;
+
+import lombok.Getter;
+import lombok.Setter;
+
+@Getter
+@Setter
+public class AppLeaveVO {
+    /**
+     * 请假开始时间
+     */
+    String leaveStartTime;
+    /**
+     * 请假结束时间
+     */
+    String leaveEndTime;
+    /**
+     * 请假人id
+     */
+    Long leaveUserId;
+    /**
+     * 请假人姓名
+     */
+    String leaveUserName;
+
+    /**
+     * 部门id
+     */
+    private Long deptId;
+
+    /**
+     * 部门名称
+     */
+    private String deptName;
+
+
+    private String leaveMatter;
+
+
+}

+ 113 - 0
src/main/java/com/sooka/sponest/data/app/domain/AppPersonBO.java

@@ -0,0 +1,113 @@
+package com.sooka.sponest.data.app.domain;
+
+import com.sooka.sponest.data.utils.DictUtil;
+import lombok.Getter;
+import lombok.Setter;
+
+@Getter
+@Setter
+public class AppPersonBO {
+
+    /** 主键id */
+    private String id;
+
+    /** 人员姓名 */
+    private String perName;
+
+    /** 性别 */
+    private String perSex;
+    private String perSexLabel;
+    public String getPerSexLabel(){
+        return DictUtil.getLabel("sys_user_sex", perSex);
+    }
+
+    /** 民族 */
+    private String perNation;
+    private String perNationLabel;
+    public String getPerNationLabel(){
+        return DictUtil.getLabel("rfh_per_mz", perNation);
+    }
+
+    /** 年龄 */
+    private String perAge;
+
+    /** 身份证号 */
+    private String perIdcard;
+
+    /** 联系方式 */
+    private String perTel;
+
+    /** 政治面貌 */
+    private String perZzmm;
+    private String perZzmmLabel;
+    public String getPerZzmmLabel(){
+        return DictUtil.getLabel("rfh_per_zzmm", perZzmm);
+    }
+
+    /** 文化程度 */
+    private String perDegree;
+    private String perDegreeLabel;
+    public String getPerDegreeLabel(){
+        return DictUtil.getLabel("rfh_per_whcd", perDegree);
+    }
+
+    /** 与房主关系 */
+    private String perFzgx;
+    private String perFzgxLabel;
+    public String getPerFzgxLabel(){
+        return DictUtil.getLabel("rfh_per_fzgx", perFzgx);
+    }
+
+    /** 是否空挂 */
+    private String perSfkg;
+    private String perSfkgLabel;
+    public String getPerSfkgLabel(){
+        return DictUtil.getLabel("sys_yes_no", perSfkg);
+    }
+
+    /** 与户主关系 */
+    private String perHzgx;
+    private String perHzgxLabel;
+    public String getPerHzgxLabel(){
+        return DictUtil.getLabel("rfh_per_hzgx", perHzgx);
+    }
+
+    /** 户籍地址 */
+    private String perHj;
+
+    /** 工作单位 */
+    private String perDw;
+
+    /** 是否一汽退休老干部 */
+    private String perYqtx;
+    private String perYqtxLabel;
+    public String getPerYqtxLabel(){
+        return DictUtil.getLabel("sys_yes_no", perYqtx);
+    }
+
+    /** 宗教集会场所 */
+    private String perZjcs;
+
+    /** 是否为人大代表或委员 */
+    private String perRddb;
+    private String perRddbLabel;
+    public String getPerRddbLabel(){
+        return DictUtil.getLabel("sys_yes_no", perRddb);
+    }
+
+    /** 流动属性 */
+    private String perLdsx;
+    private String perLdsxLabel;
+    public String getPerLdsxLabel(){
+        return DictUtil.getLabel("rfh_per_ldsx", perLdsx);
+    }
+
+    /** 房间主键ID */
+    private String fjId;
+
+    /** 部门ID */
+    private String deptId;
+
+    /** 部门名称 */
+    private String deptName;
+}

+ 638 - 0
src/main/java/com/sooka/sponest/data/app/domain/AppPersonDetail.java

@@ -0,0 +1,638 @@
+package com.sooka.sponest.data.app.domain;
+
+import com.sooka.sponest.data.utils.DictUtil;
+import lombok.Getter;
+import lombok.Setter;
+
+@Getter
+@Setter
+public class AppPersonDetail {
+
+    /**
+     * 基础信息
+     */
+
+    /** 主键id */
+    private String id;
+
+    /** 特殊人群组 */
+    private String tsrqIdsStr;
+    private String tsrqIdsLabel;
+    public String getTsrqIdsLabel(){
+        if(tsrqIdsStr == null){
+            return null;
+        }else {
+            String tsrqLabel = "";
+            String[] tsrqIds = tsrqIdsStr.split(",");
+            for (String tsrqId :tsrqIds) {
+                tsrqLabel += DictUtil.getLabel("rfh_per_tsrq", tsrqId);
+            }
+            return tsrqLabel;
+        }
+    }
+
+    /** 人员姓名 */
+    private String perName;
+
+    /** 性别 */
+    private String perSex;
+    private String perSexLabel;
+    public String getPerSexLabel(){
+        return DictUtil.getLabel("sys_user_sex", perSex);
+    }
+
+    /** 民族 */
+    private String perNation;
+    private String perNationLabel;
+    public String getPerNationLabel(){
+        return DictUtil.getLabel("rfh_per_mz", perNation);
+    }
+
+    /** 年龄 */
+    private String perAge;
+
+    /** 身份证号 */
+    private String perIdcard;
+
+    /** 联系方式 */
+    private String perTel;
+
+    /** 政治面貌 */
+    private String perZzmm;
+    private String perZzmmLabel;
+    public String getPerZzmmLabel(){
+        return DictUtil.getLabel("rfh_per_zzmm", perZzmm);
+    }
+
+    /** 文化程度 */
+    private String perDegree;
+    private String perDegreeLabel;
+    public String getPerDegreeLabel(){
+        return DictUtil.getLabel("rfh_per_whcd", perDegree);
+    }
+
+    /** 与房主关系 */
+    private String perFzgx;
+    private String perFzgxLabel;
+    public String getPerFzgxLabel(){
+        return DictUtil.getLabel("rfh_per_fzgx", perFzgx);
+    }
+
+    /** 是否空挂 */
+    private String perSfkg;
+    private String perSfkgLabel;
+    public String getPerSfkgLabel(){
+        return DictUtil.getLabel("sys_yes_no", perSfkg);
+    }
+
+    /** 与户主关系 */
+    private String perHzgx;
+    private String perHzgxLabel;
+    public String getPerHzgxLabel(){
+        return DictUtil.getLabel("rfh_per_hzgx", perHzgx);
+    }
+
+    /** 户籍地址 */
+    private String perHj;
+
+    /** 工作单位 */
+    private String perDw;
+
+    /** 是否一汽退休老干部 */
+    private String perYqtx;
+    private String perYqtxLabel;
+    public String getPerYqtxLabel(){
+        return DictUtil.getLabel("sys_yes_no", perYqtx);
+    }
+
+    /** 宗教集会场所 */
+    private String perZjcs;
+
+    /** 是否为人大代表或委员 */
+    private String perRddb;
+    private String perRddbLabel;
+    public String getPerRddbLabel(){
+        return DictUtil.getLabel("sys_yes_no", perRddb);
+    }
+
+    /** 流动属性 */
+    private String perLdsx;
+    private String perLdsxLabel;
+    public String getPerLdsxLabel(){
+        return DictUtil.getLabel("rfh_per_ldsx", perLdsx);
+    }
+
+    /** 房间主键ID */
+    private String fjId;
+
+    /** 部门ID */
+    private String deptId;
+
+    /** 部门名称 */
+    private String deptName;
+
+    /**
+     * 房间信息
+     */
+
+    /** 小区主键ID */
+    private String xqId;
+
+    /** 小区名称 */
+    private String xqName;
+
+    /** 楼栋主键ID */
+    private String ldId;
+
+    /** 楼栋名称 */
+    private String ldName;
+
+    /** 单元主键ID */
+    private String dyId;
+
+    /** 单元名称 */
+    private String dyName;
+
+    /** 房间名称 */
+    private String fjName;
+
+    /** 所在楼层 */
+    private String fjLc;
+
+    /** 所在街道ID */
+    private Long jdId;
+
+    /** 所在街道名称 */
+    private String jdName;
+
+    /** 所在社区ID */
+    private Long sqId;
+
+    /** 所在社区名称 */
+    private String sqName;
+
+    /** 所在网格ID */
+    private Long wgId;
+
+    /** 所在网格名称 */
+    private String wgName;
+
+    /** 是否是平房 */
+    private String fjSfpf;
+    private String fjSfpfLabel;
+    public String getFjSfpfLabel(){
+        return DictUtil.getLabel("sys_yes_no", fjSfpf);
+    }
+
+    /** 是否有地下室 */
+    private String fjSfydxs;
+    private String fjSfydxsLabel;
+    public String getFjSfydxsLabel(){
+        return DictUtil.getLabel("sys_yes_no", fjSfydxs);
+    }
+
+    /** 地下室是否住人 */
+    private String fjSfzr;
+    private String fjSfzrLabel;
+    public String getFjSfzrLabel(){
+        return DictUtil.getLabel("sys_yes_no", fjSfzr);
+    }
+
+    /** 是否有危房 */
+    private String fjSffw;
+    private String fjSffwLabel;
+    public String getFjSffwLabel(){
+        return DictUtil.getLabel("sys_yes_no", fjSffw);
+    }
+
+    /** 管理方式 */
+    private String fjGlfs;
+    private String fjGlfsLabel;
+    public String getFjGlfsLabel(){
+        return DictUtil.getLabel("rfh_fj_glfs", fjGlfs);
+    }
+
+    /** 管理委员会情况 */
+    private String fjWyh;
+    private String fjWyhLabel;
+    public String getFjWyhLabel(){
+        return DictUtil.getLabel("rfh_fj_wyh", fjWyh);
+    }
+
+    /** 是否有违法建筑 */
+    private String fjWfjz;
+    private String fjWfjzLabel;
+    public String getFjWfjzLabel(){
+        return DictUtil.getLabel("sys_yes_no", fjWfjz);
+    }
+
+    /** 是否养殖有宠物 */
+    private String fjSfcw;
+    private String fjSfcwLabel;
+    public String getFjSfcwLabel(){
+        return DictUtil.getLabel("sys_yes_no", fjSfcw);
+    }
+
+    /** 是否养殖鸽子或鸡等禽畜 */
+    private String fjSfgz;
+    private String fjSfgzLabel;
+    public String getFjSfgzLabel(){
+        return DictUtil.getLabel("sys_yes_no", fjSfgz);
+    }
+
+    /** 是否为门市房 */
+    private String fjSfmsf;
+    private String fjSfmsfLabel;
+    public String getFjSfmsfLabel(){
+        return DictUtil.getLabel("sys_yes_no", fjSfmsf);
+    }
+
+    /** 商户类型 */
+    private String fjShlx;
+    private String fjShlxLabel;
+    public String getFjShlxLabel(){
+        return DictUtil.getLabel("rfh_fj_shlx", fjShlx);
+    }
+
+    /** 餐饮业是否有高空排烟设备 */
+    private String fjSfgkpy;
+    private String fjSfgkpyLabel;
+    public String getFjSfgkpyLabel(){
+        return DictUtil.getLabel("sys_yes_no", fjSfgkpy);
+    }
+
+    /** 餐饮业是否有油烟净化器 */
+    private String fjSfjhq;
+    private String fjSfjhqLabel;
+    public String getFjSfjhqLabel(){
+        return DictUtil.getLabel("sys_yes_no", fjSfjhq);
+    }
+
+    /** 是否烧炉子(煤/木头) */
+    private String fjSfslz;
+    private String fjSfslzLabel;
+    public String getFjSfslzLabel(){
+        return DictUtil.getLabel("sys_yes_no", fjSfslz);
+    }
+
+    /** 房间性质 */
+    private String rfhFjxz;
+    private String rfhFjxzLabel;
+    public String getRfhFjxzLabel(){
+        return DictUtil.getLabel("rfh_fj_fjxz", rfhFjxz);
+    }
+
+    /**
+     * 保险信息
+     */
+
+    /** 城职保是否参保 */
+    private String bxCzbYanglaoSfcb;
+    private String bxCzbYanglaoSfcbLabel;
+    public String getBxCzbYanglaoSfcbLabel(){
+        return DictUtil.getLabel("sys_yes_no", bxCzbYanglaoSfcb);
+    }
+
+    /** 城职保参保时间 */
+    private String bxCzbYanglaoCbsj;
+
+    /** 城职保是否享待 */
+    private String bxCzbYanglaoSfxd;
+    private String bxCzbYanglaoSfxdLabel;
+    public String getBxCzbYanglaoSfxdLabel(){
+        return DictUtil.getLabel("sys_yes_no", bxCzbYanglaoSfxd);
+    }
+
+    /** 城居保是否参保 */
+    private String bxCjbYanglaoSfcb;
+    private String bxCjbYanglaoSfcbLabel;
+    public String getBxCjbYanglaoSfcbLabel(){
+        return DictUtil.getLabel("sys_yes_no", bxCjbYanglaoSfcb);
+    }
+
+    /** 城居保参保时间 */
+    private String bxCjbYanglaolCbsj;
+
+    /** 城居保是否享待 */
+    private String bxCjbYanglaoSfxd;
+    private String bxCjbYanglaoSfxdLabel;
+    public String getBxCjbYanglaoSfxdLabel(){
+        return DictUtil.getLabel("sys_yes_no", bxCjbYanglaoSfxd);
+    }
+
+    /** 城镇职工医疗保险是否参保 */
+    private String bxCzbYiliaoSfcb;
+    private String bxCzbYiliaoSfcbLabel;
+    public String getBxCzbYiliaoSfcbLabel(){
+        return DictUtil.getLabel("sys_yes_no", bxCzbYiliaoSfcb);
+    }
+
+    /** 城镇职工医疗保险参保时间 */
+    private String bxCzbYiliaoCbsj;
+
+    /** 城镇职工医疗保险停保时间 */
+    private String bxCzbYiliaoTbsj;
+
+    /** 城镇居民医疗保险是否参保 */
+    private String bxCjbYiliaoSfcb;
+    private String bxCjbYiliaoSfcbLabel;
+    public String getBxCjbYiliaoSfcbLabel(){
+        return DictUtil.getLabel("sys_yes_no", bxCjbYiliaoSfcb);
+    }
+
+    /** 城镇居民医疗保险参保时间 */
+    private String bxCjbYiliaoCbsj;
+
+    /** 城镇居民医疗保险停保时间 */
+    private String bxCjbYiliaoTbsj;
+
+    /**
+     * 残联信息
+     */
+
+    /** 残疾人证等级 */
+    private String canjiCjz;
+
+    /** 残疾种类 */
+    private String canjiType;
+
+
+    /** 是否享受重度残疾人补贴情况 */
+    private String canjiBt;
+    private String canjiBtLabel;
+    public String getCanjiBtLabel(){
+        return DictUtil.getLabel("rfh_cj_btqk", canjiBt);
+    }
+
+    /** 是否居家关爱巡防对象 */
+    private String canjiSfxf;
+    private String canjiSfxfLabel;
+    public String getCanjiSfxfLabel(){
+        return DictUtil.getLabel("sys_yes_no", canjiSfxf);
+    }
+
+    /** 巡防频次 */
+    private String canjiXfpc;
+
+    /**
+     * 低保信息
+     */
+
+    /** 是否重病 */
+    private String dbSfzb;
+    private String dbSfzbLabel;
+    public String getDbSfzbLabel(){
+        return DictUtil.getLabel("sys_yes_no", dbSfzb);
+    }
+
+    /** 是否重残 */
+    private String dbSfzc;
+    private String dbSfzcLabel;
+    public String getDbSfzcLabel(){
+        return DictUtil.getLabel("sys_yes_no", dbSfzc);
+    }
+
+    /** 现住地 */
+    private String dbXzz;
+
+    /** 家庭情况 */
+    private String dbJt;
+
+    /** 是否集中供养 */
+    private String dbSfjzgy;
+    private String dbSfjzgyLabel;
+    public String getDbSfjzgyLabel(){
+        return DictUtil.getLabel("sys_yes_no", dbSfjzgy);
+    }
+
+    /** 是否分散供养 */
+    private String dbSffsgy;
+    private String dbSffsgyLabel;
+    public String getDbSffsgyLabel(){
+        return DictUtil.getLabel("sys_yes_no", dbSffsgy);
+    }
+
+    /** 监护人 */
+    private String dbJhr;
+
+    /** 监护人现住址 */
+    private String dbJhrzz;
+
+    /** 监护人与本人关系 */
+    private String dbGx;
+    private String dbGxLabel;
+    public String getDbGxLabel(){
+        return DictUtil.getLabel("rfh_db_gx", dbGx);
+    }
+
+    /**
+     * 计生信息
+     */
+
+    /** 初婚时间 */
+    private String jsChsj;
+
+    /** 再婚时间 */
+    private String jsZhsj;
+
+    /** 避孕措施 */
+    private String jsBycs;
+
+    /** 独生子女情况 */
+    private String jsDsznqk;
+    private String jsDsznqkLabel;
+    public String getJsDsznqkLabel(){
+        return DictUtil.getLabel("rfh_js_dsznqk", jsDsznqk);
+    }
+
+    /** 扶助账号 */
+    private String jsFzzh;
+
+    /** 是否困难家庭妇女儿童 */
+    private String jsSfkn;
+    private String jsSfknLabel;
+    public String getJsSfknLabel(){
+        return DictUtil.getLabel("sys_yes_no", jsSfkn);
+    }
+
+    /** 是否孤儿 */
+    private String jsSfge;
+    private String jsSfgeLabel;
+    public String getJsSfgeLabel(){
+        return DictUtil.getLabel("sys_yes_no", jsSfge);
+    }
+
+    /** 监护人 */
+    private String jsJhr;
+
+    /** 监护人与本人关系 */
+    private String jsGx;
+    private String jsGxLabel;
+    public String getJsGxLabel(){
+        return DictUtil.getLabel("rfh_db_gx", jsGx);
+    }
+
+    /** 是否事实无抚养儿童 */
+    private String jsSfsswfyet;
+    private String jsSfsswfyetLabel;
+    public String getJsSfsswfyetLabel(){
+        return DictUtil.getLabel("sys_yes_no", jsSfsswfyet);
+    }
+
+    /** 家庭情况 */
+    private String jsJtqk;
+
+    /**
+     * 军人信息
+     */
+
+    /** 状态 */
+    private String junrenState;
+    private String junrenStateLabel;
+    public String getJunrenStateLabel(){
+        return DictUtil.getLabel("rfh_jr_zt", junrenState);
+    }
+
+    /** 是否为优抚对象 */
+    private String junrenSfyf;
+    private String junrenSfyfLabel;
+    public String getJunrenSfyfLabel(){
+        return DictUtil.getLabel("sys_yes_no", junrenSfyf);
+    }
+
+    /** 优抚种类 */
+    private String junrenYfzl;
+    private String junrenYfzlLabel;
+    public String getJunrenYfzlLabel(){
+        return DictUtil.getLabel("rfh_jr_yfzl", junrenYfzl);
+    }
+
+    /**
+     * 流动信息
+     */
+
+    /** 流入地址 */
+    private String liudongLiuru;
+
+    /** 流出地址 */
+    private String liudongLiuchu;
+
+    /** 流动类型 */
+    private String liudongType;
+    private String liudongTypeLabel;
+    public String getLiudongTypeLabel(){
+        return DictUtil.getLabel("rfh_ld_lx", liudongType);
+    }
+
+    /** 备注 */
+    private String liudongRemarks;
+
+    /**
+     * 老龄信息
+     */
+
+    /** 是否享受政府购买服务 */
+    private String llrZfgm;
+    private String llrZfgmLabel;
+    public String getLlrZfgmLabel(){
+        return DictUtil.getLabel("sys_yes_no", llrZfgm);
+    }
+
+    /** 享受高龄津贴情况 */
+    private String llrGljt;
+    private String llrGljtLabel;
+    public String getLlrGljtLabel(){
+        return DictUtil.getLabel("rfh_llr_jtqk", llrGljt);
+    }
+
+    /** 是否空巢 */
+    private String llrSfkc;
+    private String llrSfkcLabel;
+    public String getLlrSfkcLabel(){
+        return DictUtil.getLabel("sys_yes_no", llrSfkc);
+    }
+
+    /** 失能情况 */
+    private String llrSnqk;
+    private String llrSnqkLabel;
+    public String getLlrSnqkLabel(){
+        return DictUtil.getLabel("rfh_llr_snqk", llrSnqk);
+    }
+
+    /** 是否居家巡防重点对象 */
+    private String llrSfzdxf;
+    private String llrSfzdxfLabel;
+    public String getLlrSfzdxfLabel(){
+        return DictUtil.getLabel("rfh_llr_xfdx", llrSfzdxf);
+    }
+
+    /** 家庭情况 */
+    private String llrJtqk;
+
+    /** 巡防频次 */
+    private String llrXfpc;
+
+    /**
+     * 疫苗信息
+     */
+
+    /** 是否接种第一针 */
+    private String ymOneIs;
+    private String ymOneIsLabel;
+    public String getYmOneIsLabel(){
+        return DictUtil.getLabel("sys_yes_no", ymOneIs);
+    }
+
+    /** 第一针接种时间 */
+    private String ymOneDate;
+
+    /** 第一针疫苗种类 */
+    private String ymOneType;
+    private String ymOneTypeLabel;
+    public String getYmOneTypeLabel(){
+        return DictUtil.getLabel("rfh_ym_zl", ymOneType);
+    }
+
+    /** 第一针接种地点 */
+    private String ymOnePlace;
+
+    /** 是否接种第二针 */
+    private String ymTwoIs;
+    private String ymTwoIsLabel;
+    public String getYmTwoIsLabel(){
+        return DictUtil.getLabel("sys_yes_no", ymTwoIs);
+    }
+
+    /** 第二针接种时间 */
+    private String ymTwoDate;
+
+    /** 第二针接种疫苗种类 */
+    private String ymTwoType;
+    private String ymTwoTypeLabel;
+    public String getYmTwoTypeLabel(){
+        return DictUtil.getLabel("rfh_ym_zl", ymTwoType);
+    }
+
+    /** 第二针接种地点 */
+    private String ymTwoPlace;
+
+    /** 是否已接种第三针 */
+    private String ymThreeIs;
+    private String ymThreeIsLabel;
+    public String getYmThreeIsLabel(){
+        return DictUtil.getLabel("sys_yes_no", ymThreeIs);
+    }
+
+    /** 第三针接种时间 */
+    private String ymThreeDate;
+
+    /** 第三针接种疫苗种类 */
+    private String ymThreeType;
+    private String ymThreeTypeLabel;
+    public String getYmThreeTypeLabel(){
+        return DictUtil.getLabel("rfh_ym_zl", ymThreeType);
+    }
+
+    /** 第三针接种地点 */
+    private String ymThreePlace;
+}

+ 317 - 0
src/main/java/com/sooka/sponest/data/app/domain/AppPersonVO.java

@@ -0,0 +1,317 @@
+package com.sooka.sponest.data.app.domain;
+
+import com.sooka.sponest.data.base.domain.BaseBusinessEntity;
+import lombok.Getter;
+import lombok.Setter;
+
+@Getter
+@Setter
+public class AppPersonVO extends BaseBusinessEntity {
+
+    /**
+     * 基础信息
+     */
+
+    /** 主键id */
+    private String id;
+
+    /** 人员id */
+    private String perId;
+
+    /** 特殊人群组 */
+    private String tsrqIdsStr;
+
+    /** 数据状态(1-可用 2-不可用 ) */
+    private String dataStatus;
+
+    /** 数据所属部门(政或党的id) */
+    private Long dataDeptId;
+
+    /** 人员姓名 */
+    private String perName;
+
+    /** 性别 */
+    private String perSex;
+
+    /** 民族 */
+    private String perNation;
+
+    /** 年龄 */
+    private String perAge;
+
+    /** 身份证号 */
+    private String perIdcard;
+
+    /** 联系方式 */
+    private String perTel;
+
+    /** 政治面貌 */
+    private String perZzmm;
+
+    /** 文化程度 */
+    private String perDegree;
+
+    /** 与房主关系 */
+    private String perFzgx;
+
+    /** 是否空挂 */
+    private String perSfkg;
+
+    /** 与户主关系 */
+    private String perHzgx;
+
+    /** 户籍地址 */
+    private String perHj;
+
+    /** 工作单位 */
+    private String perDw;
+
+    /** 是否一汽退休老干部 */
+    private String perYqtx;
+
+    /** 宗教集会场所 */
+    private String perZjcs;
+
+    /** 是否为人大代表或委员 */
+    private String perRddb;
+
+    /** 流动属性 */
+    private String perLdsx;
+
+    /** 数据删除状态 */
+    private Long delFlag;
+
+    /** 数据删除审核状态 */
+    private String perDelState;
+
+    /** 房间主键ID */
+    private String fjId;
+
+    /** 部门ID */
+    private String deptId;
+
+    /** 部门名称 */
+    private String deptName;
+
+    /**
+     * 保险信息
+     */
+
+    /** 城职保是否参保 */
+    private String bxCzbYanglaoSfcb;
+
+    /** 城职保参保时间 */
+    private String bxCzbYanglaoCbsj;
+
+    /** 城职保是否享待 */
+    private String bxCzbYanglaoSfxd;
+
+    /** 城居保是否参保 */
+    private String bxCjbYanglaoSfcb;
+
+    /** 城居保参保时间 */
+    private String bxCjbYanglaolCbsj;
+
+    /** 城居保是否享待 */
+    private String bxCjbYanglaoSfxd;
+
+    /** 城镇职工医疗保险是否参保 */
+    private String bxCzbYiliaoSfcb;
+
+    /** 城镇职工医疗保险参保时间 */
+    private String bxCzbYiliaoCbsj;
+
+    /** 城镇职工医疗保险停保时间 */
+    private String bxCzbYiliaoTbsj;
+
+    /** 城镇居民医疗保险是否参保 */
+    private String bxCjbYiliaoSfcb;
+
+    /** 城镇居民医疗保险参保时间 */
+    private String bxCjbYiliaoCbsj;
+
+    /** 城镇居民医疗保险停保时间 */
+    private String bxCjbYiliaoTbsj;
+
+    /**
+     * 残联信息
+     */
+
+    /** 残疾人证等级 */
+    private String canjiCjz;
+
+    /** 残疾种类 */
+    private String canjiType;
+
+
+    /** 是否享受重度残疾人补贴情况 */
+    private String canjiBt;
+
+    /** 是否居家关爱巡防对象 */
+    private String canjiSfxf;
+
+    /** 巡防频次 */
+    private String canjiXfpc;
+
+    /**
+     * 低保信息
+     */
+
+    /** 是否重病 */
+    private String dbSfzb;
+
+    /** 是否重残 */
+    private String dbSfzc;
+
+    /** 现住地 */
+    private String dbXzz;
+
+    /** 家庭情况 */
+    private String dbJt;
+
+    /** 是否集中供养 */
+    private String dbSfjzgy;
+
+    /** 是否分散供养 */
+    private String dbSffsgy;
+
+    /** 监护人 */
+    private String dbJhr;
+
+    /** 监护人现住址 */
+    private String dbJhrzz;
+
+    /** 监护人与本人关系 */
+    private String dbGx;
+
+    /**
+     * 计生信息
+     */
+
+    /** 初婚时间 */
+    private String jsChsj;
+
+    /** 再婚时间 */
+    private String jsZhsj;
+
+    /** 避孕措施 */
+    private String jsBycs;
+
+    /** 独生子女情况 */
+    private String jsDsznqk;
+
+    /** 扶助账号 */
+    private String jsFzzh;
+
+    /** 是否困难家庭妇女儿童 */
+    private String jsSfkn;
+
+    /** 是否孤儿 */
+    private String jsSfge;
+
+    /** 监护人 */
+    private String jsJhr;
+
+    /** 监护人与本人关系 */
+    private String jsGx;
+
+    /** 是否事实无抚养儿童 */
+    private String jsSfsswfyet;
+
+    /** 家庭情况 */
+    private String jsJtqk;
+
+    /**
+     * 军人信息
+     */
+
+    /** 状态 */
+    private String junrenState;
+
+    /** 是否为优抚对象 */
+    private String junrenSfyf;
+
+    /** 优抚种类 */
+    private String junrenYfzl;
+
+    /**
+     * 流动信息
+     */
+
+    /** 流入地址 */
+    private String liudongLiuru;
+
+    /** 流出地址 */
+    private String liudongLiuchu;
+
+    /** 流动类型 */
+    private String liudongType;
+
+    /** 备注 */
+    private String liudongRemarks;
+
+    /**
+     * 老龄信息
+     */
+
+    /** 是否享受政府购买服务 */
+    private String llrZfgm;
+
+    /** 享受高龄津贴情况 */
+    private String llrGljt;
+
+    /** 是否空巢 */
+    private String llrSfkc;
+
+    /** 失能情况 */
+    private String llrSnqk;
+
+    /** 是否居家巡防重点对象 */
+    private String llrSfzdxf;
+
+    /** 家庭情况 */
+    private String llrJtqk;
+
+    /** 巡防频次 */
+    private String llrXfpc;
+
+    /**
+     * 疫苗信息
+     */
+
+    /** 是否接种第一针 */
+    private String ymOneIs;
+
+    /** 第一针接种时间 */
+    private String ymOneDate;
+
+    /** 第一针疫苗种类 */
+    private String ymOneType;
+
+    /** 第一针接种地点 */
+    private String ymOnePlace;
+
+    /** 是否接种第二针 */
+    private String ymTwoIs;
+
+    /** 第二针接种时间 */
+    private String ymTwoDate;
+
+    /** 第二针接种疫苗种类 */
+    private String ymTwoType;
+
+    /** 第二针接种地点 */
+    private String ymTwoPlace;
+
+    /** 是否已接种第三针 */
+    private String ymThreeIs;
+
+    /** 第三针接种时间 */
+    private String ymThreeDate;
+
+    /** 第三针接种疫苗种类 */
+    private String ymThreeType;
+
+    /** 第三针接种地点 */
+    private String ymThreePlace;
+}

+ 33 - 0
src/main/java/com/sooka/sponest/data/app/domain/AppQiyeBO.java

@@ -0,0 +1,33 @@
+package com.sooka.sponest.data.app.domain;
+
+import lombok.Getter;
+import lombok.Setter;
+
+@Getter
+@Setter
+public class AppQiyeBO {
+
+    /** 主键id */
+    private String id;
+
+    /** 企业名称 */
+    private String qyName;
+
+    /** 统一社会信用代码 */
+    private String qyCode;
+
+    /** 企业类别 */
+    private String qyLeibie;
+
+    /** 地址 */
+    private String qyAddress;
+
+    /** 联系人电话 */
+    private String qyLxrTel;
+
+    /** 部门ID */
+    private String deptId;
+
+    /** 部门名称 */
+    private String deptName;
+}

+ 142 - 0
src/main/java/com/sooka/sponest/data/app/domain/AppQiyeDetail.java

@@ -0,0 +1,142 @@
+package com.sooka.sponest.data.app.domain;
+
+import com.sooka.sponest.data.utils.DictUtil;
+import lombok.Getter;
+import lombok.Setter;
+
+@Getter
+@Setter
+public class AppQiyeDetail {
+
+    /** 主键id */
+    private String id;
+
+    /** 企业名称 */
+    private String qyName;
+
+    /** 统一社会信用代码 */
+    private String qyCode;
+
+    /** 企业类别 */
+    private String qyLeibie;
+    private String qyLeibieLabel;
+    public String getQyLeibieLabel(){
+        return DictUtil.getLabel("rfh_qy_leibie", qyLeibie);
+    }
+
+    /** 地址 */
+    private String qyAddress;
+
+    /** 主要业务 */
+    private String qyYewu;
+
+    /** 法人姓名 */
+    private String qyFrName;
+
+    /** 法人电话 */
+    private String qyFrTel;
+
+    /** 联系人姓名 */
+    private String qyLxrName;
+
+    /** 联系人电话 */
+    private String qyLxrTel;
+
+    /** 企业规模 */
+    private String qyGuimo;
+    private String qyGuimoLabel;
+    public String getQyGuimoLabel(){
+        return DictUtil.getLabel("rfh_qy_guimo", qyGuimo);
+    }
+
+    /** 企业面积 */
+    private String qyMianji;
+
+    /** 建企时间 */
+    private String qyShijian;
+
+    /** 职工人数 */
+    private String qyRenshu;
+
+    /** 行业类别(大类) */
+    private String qyTypeOne;
+    private String qyTypeOneLabel;
+    public String getQyTypeOneLabel(){
+        return DictUtil.getLabel("qy_type_one", qyTypeOne);
+    }
+
+    /** 行业类别(中类) */
+    private String qyTypeTwo;
+    private String qyTypeTwoLabel;
+    public String getQyTypeTwoLabel(){
+        return DictUtil.getLabel(qyTypeOne, qyTypeTwo);
+    }
+
+    /** 登记注册类型 */
+    private String qyType;
+    private String qyTypeLabel;
+    public String getQyTypeLabel(){
+        return DictUtil.getLabel("rfh_qy_type", qyType);
+    }
+
+    /** 年运行天数 */
+    private String qyDays;
+
+    /** 近3年是否发生过环境突发事件 */
+    private String qyTfsj;
+
+    /** 近1年是否收到生态环境部门的行政处罚 */
+    private String qyXzcf;
+
+    /** 所在街道ID */
+    private Long jdId;
+
+    /** 所在街道名称 */
+    private String jdName;
+
+    /** 所在社区ID */
+    private Long sqId;
+
+    /** 所在社区名称 */
+    private String sqName;
+
+    /** 所在网格ID */
+    private Long wgId;
+
+    /** 所在网格名称 */
+    private String wgName;
+
+    /** 数据删除状态 */
+    private Long delFlag;
+
+    /** 所在小区ID */
+    private String xqId;
+
+    /** 所在小区名称 */
+    private String xqName;
+
+    /** 所在楼栋ID */
+    private String ldId;
+
+    /** 所在楼栋名称 */
+    private String ldName;
+
+    /** 所在单元ID */
+    private String dyId;
+
+    /** 所在单元名称 */
+    private String dyName;
+
+    /** 所在房间ID */
+    private String fjId;
+
+    /** 所在房间名称 */
+    private String fjName;
+
+    /** 部门ID */
+    private String deptId;
+
+    /** 部门名称 */
+    private String deptName;
+
+}

+ 122 - 0
src/main/java/com/sooka/sponest/data/app/domain/AppQiyeVO.java

@@ -0,0 +1,122 @@
+package com.sooka.sponest.data.app.domain;
+
+import com.sooka.sponest.data.base.domain.BaseBusinessEntity;
+import lombok.Getter;
+import lombok.Setter;
+
+@Getter
+@Setter
+public class AppQiyeVO extends BaseBusinessEntity {
+
+    /** 主键id */
+    private String id;
+
+    /** 企业名称 */
+    private String qyName;
+
+    /** 统一社会信用代码 */
+    private String qyCode;
+
+    /** 企业类别 */
+    private String qyLeibie;
+
+    /** 地址 */
+    private String qyAddress;
+
+    /** 主要业务 */
+    private String qyYewu;
+
+    /** 法人姓名 */
+    private String qyFrName;
+
+    /** 法人电话 */
+    private String qyFrTel;
+
+    /** 联系人姓名 */
+    private String qyLxrName;
+
+    /** 联系人电话 */
+    private String qyLxrTel;
+
+    /** 企业规模 */
+    private String qyGuimo;
+
+    /** 企业面积 */
+    private String qyMianji;
+
+    /** 建企时间 */
+    private String qyShijian;
+
+    /** 职工人数 */
+    private String qyRenshu;
+
+    /** 行业类别(大类) */
+    private String qyTypeOne;
+
+    /** 行业类别(中类) */
+    private String qyTypeTwo;
+
+    /** 登记注册类型 */
+    private String qyType;
+
+    /** 年运行天数 */
+    private String qyDays;
+
+    /** 近3年是否发生过环境突发事件 */
+    private String qyTfsj;
+
+    /** 近1年是否收到生态环境部门的行政处罚 */
+    private String qyXzcf;
+
+    /** 所在街道ID */
+    private Long jdId;
+
+    /** 所在街道名称 */
+    private String jdName;
+
+    /** 所在社区ID */
+    private Long sqId;
+
+    /** 所在社区名称 */
+    private String sqName;
+
+    /** 所在网格ID */
+    private Long wgId;
+
+    /** 所在网格名称 */
+    private String wgName;
+
+    /** 数据删除状态 */
+    private Long delFlag;
+
+    /** 所在小区ID */
+    private String xqId;
+
+    /** 所在小区名称 */
+    private String xqName;
+
+    /** 所在楼栋ID */
+    private String ldId;
+
+    /** 所在楼栋名称 */
+    private String ldName;
+
+    /** 所在单元ID */
+    private String dyId;
+
+    /** 所在单元名称 */
+    private String dyName;
+
+    /** 所在房间ID */
+    private String fjId;
+
+    /** 所在房间名称 */
+    private String fjName;
+
+    /** 部门ID */
+    private String deptId;
+
+    /** 部门名称 */
+    private String deptName;
+
+}

+ 34 - 0
src/main/java/com/sooka/sponest/data/app/domain/AppTsrq.java

@@ -0,0 +1,34 @@
+package com.sooka.sponest.data.app.domain;
+
+import com.sooka.sponest.data.zhsqapp.base.domain.AppBaseVO;
+import lombok.Getter;
+import lombok.Setter;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+/**
+ * 特殊人群管理对象 centerdata_t_rfh_person_tsrq
+ *
+ * @author sooka
+ * @date 2022-05-12
+ */
+@Getter
+@Setter
+public class AppTsrq extends AppBaseVO
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 人口信息主键ID */
+    private String perId;
+
+    /** 特殊人群字典主键ID */
+    private Long tsrqId;
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("perId", getPerId())
+            .append("tsrqId", getTsrqId())
+            .toString();
+    }
+}

+ 25 - 0
src/main/java/com/sooka/sponest/data/app/domain/AppUserCommunity.java

@@ -0,0 +1,25 @@
+package com.sooka.sponest.data.app.domain;
+
+import com.sooka.sponest.data.base.domain.BaseBusinessEntity;
+import lombok.Getter;
+import lombok.Setter;
+
+@Getter
+@Setter
+public class AppUserCommunity extends BaseBusinessEntity {
+
+    /** 所在街道ID */
+    private Long jdId;
+    /** 所在街道名称 */
+    private String jdName;
+
+    /** 所在社区ID */
+    private Long sqId;
+    /** 所在社区名称 */
+    private String sqName;
+
+    /** 所在网格ID */
+    private Long wgId;
+    /** 所在网格名称 */
+    private String wgName;
+}

+ 14 - 0
src/main/java/com/sooka/sponest/data/app/domain/AppWatercraneBO.java

@@ -0,0 +1,14 @@
+package com.sooka.sponest.data.app.domain;
+
+import lombok.Getter;
+import lombok.Setter;
+
+@Getter
+@Setter
+public class AppWatercraneBO  {
+    private String longitude;
+    private String latitude;
+    private String watercraneName;
+    private String distance;
+    private String id;
+}

+ 38 - 0
src/main/java/com/sooka/sponest/data/app/domain/App_ZhsqPatroldate_VO.java

@@ -0,0 +1,38 @@
+package com.sooka.sponest.data.app.domain;
+
+import com.sooka.sponest.data.zhsqapp.base.domain.AppBaseVO;
+import lombok.Getter;
+import lombok.Setter;
+
+
+@Getter
+@Setter
+public class App_ZhsqPatroldate_VO extends AppBaseVO
+{
+    /** 巡查日期主键ID */
+    private Long patroldateId;
+
+    /** 巡查主键ID */
+    private Long gpsId;
+
+    /** 巡查日期 */
+    private String patroldateDate;
+
+    /** 数据删除状态
+            0:有效
+            1:无效 */
+    private Long delFlag;
+
+    /** 数据创建人ID */
+    private Long createId;
+
+    /** 数据创建人姓名 */
+    private String createUser;
+
+    /** 数据更新人 */
+    private Long updateId;
+
+    /** 数据更新人姓名 */
+    private String updateUser;
+
+}

+ 40 - 0
src/main/java/com/sooka/sponest/data/app/domain/App_ZhsqPatrolrecord_VO.java

@@ -0,0 +1,40 @@
+package com.sooka.sponest.data.app.domain;
+
+import com.sooka.sponest.data.zhsqapp.base.domain.AppBaseVO;
+import lombok.Getter;
+import lombok.Setter;
+
+@Getter
+@Setter
+public class App_ZhsqPatrolrecord_VO extends AppBaseVO
+{
+
+    /** 巡查记录主键ID */
+    private Long pdId;
+
+    /** 巡查日期主键ID */
+    private Long patroldateId;
+
+    /** 巡查记录经度 */
+    private String pdLongitude;
+
+    /** 巡查记录维度 */
+    private String pdLatitude;
+
+    /** 数据删除状态
+            0:有效
+            1:无效 */
+    private Long delFlag;
+
+    /** 数据创建人ID */
+    private Long createId;
+
+    /** 数据创建人姓名 */
+    private String createUser;
+
+    /** 数据更新人 */
+    private Long updateId;
+
+    /** 数据更新人姓名 */
+    private String updateUser;
+}

+ 52 - 0
src/main/java/com/sooka/sponest/data/app/domain/App_ZhsqXcgj_VO.java

@@ -0,0 +1,52 @@
+package com.sooka.sponest.data.app.domain;
+
+import com.sooka.sponest.data.zhsqapp.base.domain.AppBaseVO;
+import lombok.Getter;
+import lombok.Setter;
+
+@Getter
+@Setter
+public class App_ZhsqXcgj_VO extends AppBaseVO {
+
+    /** 巡查主键ID */
+    private Long gpsId;
+
+    /** 时间 */
+    private String gpsTime;
+
+    /** 数据创建人ID */
+    private Long createId;
+
+    /** 数据创建人姓名 */
+    private String createUser;
+
+    /** 数据更新人 */
+    private Long updateId;
+
+    /** 数据更新人姓名 */
+    private String updateUser;
+
+    /** 所在街道ID */
+    private Long jdId;
+
+    /** 所在街道名称 */
+    private String jdName;
+
+    /** 所在社区ID */
+    private Long sqId;
+
+    /** 所在社区名称 */
+    private String sqName;
+
+    /** 所在网格ID */
+    private Long wgId;
+
+    /** 所在网格名称 */
+    private String wgName;
+
+    /** 数据所属部门ID */
+    private Long deptId;
+
+    /** 数据所属部门 */
+    private String deptName;
+}

+ 43 - 0
src/main/java/com/sooka/sponest/data/app/domain/VisuForestCloudMapVO.java

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

+ 33 - 0
src/main/java/com/sooka/sponest/data/app/domain/VisuForestResourceBO.java

@@ -0,0 +1,33 @@
+package com.sooka.sponest.data.app.domain;
+
+import com.sooka.sponest.data.base.domain.BaseBusinessEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 应急预案对象 centerdata_t_reserve
+ *
+ * @author ruoyi
+ * @date 2022-05-04
+ */
+@ApiModel(description = "手机查询实体类对象")
+@Data
+public class VisuForestResourceBO extends BaseBusinessEntity {
+
+    @ApiModelProperty(value = "经度", required = false)
+
+    private String longitude;
+    @ApiModelProperty(value = "纬度", required = false)
+
+    private String latitude;
+    @ApiModelProperty(value = "资源类型", required = false)
+
+    private String type;
+    @ApiModelProperty(value = "半径", required = false)
+
+    private String radius;
+    @ApiModelProperty(value = "资源表名字", required = false)
+
+    private String tbName;
+}

+ 21 - 0
src/main/java/com/sooka/sponest/data/app/mapper/AppBigDataMapper.java

@@ -0,0 +1,21 @@
+package com.sooka.sponest.data.app.mapper;
+
+import com.sooka.sponest.data.app.domain.VisuForestCloudMapVO;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 数据中心-大数据Mapper接口
+ *
+ * @author lyq
+ * @date 2022-11-02
+ */
+public interface AppBigDataMapper {
+
+    List<Map<String, Object>> getFireData(VisuForestCloudMapVO visuForestCloudMapVO);
+
+    List<Map<String, Object>> getFireControlData(VisuForestCloudMapVO visuForestCloudMapVO);
+
+    List<Map<String, Object>> getEnvironmentData(VisuForestCloudMapVO visuForestCloudMapVO);
+}

+ 35 - 0
src/main/java/com/sooka/sponest/data/app/mapper/AppDailyMapper.java

@@ -0,0 +1,35 @@
+package com.sooka.sponest.data.app.mapper;
+
+import com.sooka.sponest.data.app.domain.AppDailyBO;
+import com.sooka.sponest.data.app.domain.AppDailyVO;
+
+import java.util.List;
+
+public interface AppDailyMapper {
+    /**
+     * 新增日报
+     *
+     * @return 结果
+     */
+    int appinsertCenterdataTDaily(AppDailyBO bo);
+
+    /**
+     * 新增日报(查询当日是否有记录)
+     *
+     * @return 结果
+     */
+    Integer selectRepeatDaily(AppDailyBO bo);
+
+    /**
+     * 日报月详细
+     * @return 结果
+     */
+    List<AppDailyBO> selectRepeatDailySeeMonth(AppDailyVO vo);
+
+    /**
+     * 日报日详细
+     * @return 结果
+     */
+    AppDailyBO selectRepeatDailySee(AppDailyVO vo);
+
+}

+ 89 - 0
src/main/java/com/sooka/sponest/data/app/mapper/AppDigitalForestMapper.java

@@ -0,0 +1,89 @@
+package com.sooka.sponest.data.app.mapper;
+
+
+import com.sooka.sponest.data.app.domain.AgricultureBO;
+import com.sooka.sponest.data.app.domain.AppDigitalForestVO;
+import com.sooka.sponest.data.app.domain.AppDigitalForestWeather;
+import com.sooka.sponest.data.app.domain.AppWatercraneBO;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+@Repository
+public interface AppDigitalForestMapper {
+
+
+    AppDigitalForestWeather selectWeather(AppDigitalForestWeather appDigitalForestWeather);
+
+
+    /**
+     *水鹤
+     */
+    List<AppWatercraneBO> forestWatercraneList(AppDigitalForestVO vo);
+
+
+    /**
+     *取水口
+     */
+    List<AppWatercraneBO> forestWaterintakeList(AppDigitalForestVO vo);
+
+
+
+    /**
+     *消火栓
+     */
+    List<AppWatercraneBO> forestFirehydrantList(AppDigitalForestVO vo);
+
+
+
+    /**
+     *防火检查站
+     */
+    List<AppWatercraneBO> forestCheckpointList(AppDigitalForestVO vo);
+
+
+    /**
+     *水源渠道信息
+     */
+    List<AppWatercraneBO> forestChannelList(AppDigitalForestVO vo);
+
+
+
+    /**
+     *起降点
+     */
+    List<AppWatercraneBO> forestLandinglList(AppDigitalForestVO vo);
+
+
+    /**
+     *林场
+     */
+    List<AppWatercraneBO> forestFarmlList(AppDigitalForestVO vo);
+
+
+
+
+
+    /**
+     *气象站
+     */
+    List<AppWatercraneBO> forestWeatherstationList(AppDigitalForestVO vo);
+
+
+
+    /**
+     *防火检查队
+     */
+    List<AppWatercraneBO> forestFireteamList(AppDigitalForestVO vo);
+
+
+    List<AgricultureBO> HeZuoShePoint(AgricultureBO agricultureBO);
+    List<AgricultureBO> ZhiBaoPoint(AgricultureBO agricultureBO);
+    List<AgricultureBO> XuBaoPoint(AgricultureBO agricultureBO);
+    List<AgricultureBO> NongJiZhanPoint(AgricultureBO agricultureBO);
+    List<AgricultureBO> YangZhiPoint(AgricultureBO agricultureBO);
+
+
+
+
+}

+ 13 - 0
src/main/java/com/sooka/sponest/data/app/mapper/AppLeaveMapper.java

@@ -0,0 +1,13 @@
+package com.sooka.sponest.data.app.mapper;
+
+import com.sooka.sponest.data.app.domain.AppLeaveBo;
+
+
+public interface AppLeaveMapper {
+
+    /**
+     * 请假添加
+     * @return 结果
+     */
+    int insertCenterdataTLeave(AppLeaveBo bo);
+}

+ 71 - 0
src/main/java/com/sooka/sponest/data/app/mapper/AppPersonMapper.java

@@ -0,0 +1,71 @@
+package com.sooka.sponest.data.app.mapper;
+
+import com.ruoyi.common.datascope.base.util.database.DynamicDataSourceSwitcher;
+import com.ruoyi.system.api.domain.SysDept;
+import com.sooka.sponest.data.app.domain.AppPersonBO;
+import com.sooka.sponest.data.app.domain.AppPersonDetail;
+import com.sooka.sponest.data.app.domain.AppPersonVO;
+import com.sooka.sponest.data.app.domain.AppTsrq;
+import com.sooka.sponest.data.utils.database.MyDataSource;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+@Repository
+public interface AppPersonMapper {
+
+    public List<AppPersonBO> list(AppPersonVO vo);
+
+    public int add(AppPersonVO vo);
+
+    public int addBx(AppPersonVO vo);
+
+    public int addCanji(AppPersonVO vo);
+
+    public int addDibao(AppPersonVO vo);
+
+    public int addJs(AppPersonVO vo);
+
+    public int addJunren(AppPersonVO vo);
+
+    public int addLiudong(AppPersonVO vo);
+
+    public int addLlr(AppPersonVO vo);
+
+    public int addNcov(AppPersonVO vo);
+
+    public int update(AppPersonVO vo);
+
+    public int updateBx(AppPersonVO vo);
+
+    public int updateCanji(AppPersonVO vo);
+
+    public int updateDibao(AppPersonVO vo);
+
+    public int updateJs(AppPersonVO vo);
+
+    public int updateJunren(AppPersonVO vo);
+
+    public int updateLiudong(AppPersonVO vo);
+
+    public int updateLlr(AppPersonVO vo);
+
+    public int updateNcov(AppPersonVO vo);
+
+    public AppPersonDetail detail(AppPersonVO vo);
+
+    public int delete(String[] ids);
+
+    public int deletePersonTsrq(String perId);
+
+    public int batchPersonTsrq(List<AppTsrq> personTsrqList);
+
+    /**
+     * 根据部门ID查询信息
+     *
+     * @param deptId 部门ID
+     * @return 部门信息
+     */
+    @MyDataSource(value = DynamicDataSourceSwitcher.dbSystem)
+    public SysDept selectDeptById(Long deptId);
+}

+ 24 - 0
src/main/java/com/sooka/sponest/data/app/mapper/AppQiyeMapper.java

@@ -0,0 +1,24 @@
+package com.sooka.sponest.data.app.mapper;
+
+
+import com.sooka.sponest.data.app.domain.AppQiyeBO;
+import com.sooka.sponest.data.app.domain.AppQiyeDetail;
+import com.sooka.sponest.data.app.domain.AppQiyeVO;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+@Repository
+public interface AppQiyeMapper {
+
+    public List<AppQiyeBO> list(AppQiyeVO vo);
+
+    public int add(AppQiyeVO vo);
+
+    public int update(AppQiyeVO vo);
+
+    public AppQiyeDetail detail(AppQiyeVO vo);
+
+    public int delete(String[] ids);
+
+}

+ 61 - 0
src/main/java/com/sooka/sponest/data/app/mapper/AppXcgjMapper.java

@@ -0,0 +1,61 @@
+package com.sooka.sponest.data.app.mapper;
+
+
+import com.sooka.sponest.data.app.domain.App_ZhsqPatroldate_VO;
+import com.sooka.sponest.data.app.domain.App_ZhsqPatrolrecord_VO;
+import com.sooka.sponest.data.app.domain.App_ZhsqXcgj_VO;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+@Repository
+public interface AppXcgjMapper
+{
+    /**
+     * 查询网格员巡查轨迹列表
+     *
+     * @param zhsqXcgjVo 网格员巡查轨迹
+     * @return 网格员巡查轨迹集合
+     */
+    public List<App_ZhsqXcgj_VO> selectApp_ZhsqXcgj_VOList(App_ZhsqXcgj_VO zhsqXcgjVo);
+
+    /**
+     * 新增网格员巡查轨迹
+     *
+     * @param zhsqXcgjVo 网格员巡查轨迹
+     * @return 结果
+     */
+    public int insertApp_ZhsqXcgj_VO(App_ZhsqXcgj_VO zhsqXcgjVo);
+
+    /**
+     * 查询是否有进行中的巡查
+     *
+     * @param gpsId
+     * @return 结果
+     */
+    public String selectPatroldateIdByGpsId(Long gpsId);
+
+    /**
+     * 新增【请填写功能名称】
+     *
+     * @param zhsqPatroldate 【请填写功能名称】
+     * @return 结果
+     */
+    public int insertApp_ZhsqPatroldate_VO(App_ZhsqPatroldate_VO zhsqPatroldate);
+
+    /**
+     * 新增【请填写功能名称】
+     *
+     * @param zhsqPatrolrecordVo 【请填写功能名称】
+     * @return 结果
+     */
+    public int insertApp_ZhsqPatrolrecord_VO(App_ZhsqPatrolrecord_VO zhsqPatrolrecordVo);
+
+    /**
+     * 新增【请填写功能名称】
+     *
+     * @param zhsqPatroldateVo 【请填写功能名称】
+     * @return 结果
+     */
+    public int updateApp_ZhsqPatroldate_VO(App_ZhsqPatroldate_VO zhsqPatroldateVo);
+}

+ 18 - 0
src/main/java/com/sooka/sponest/data/app/service/AppDailyService.java

@@ -0,0 +1,18 @@
+package com.sooka.sponest.data.app.service;
+
+import com.sooka.sponest.data.app.domain.AppDailyBO;
+import com.sooka.sponest.data.app.domain.AppDailyVO;
+
+import java.util.List;
+
+public interface AppDailyService {
+
+    public int addDaily(AppDailyBO bo);
+
+    public List<AppDailyBO> queryDailyByMonth(AppDailyVO appDailyVO);
+
+    public AppDailyBO queryDailyByDay(AppDailyVO appDailyVO);
+
+    public Integer selectRepeatDaily(AppDailyBO bo);
+
+}

+ 20 - 0
src/main/java/com/sooka/sponest/data/app/service/AppDigitalForestService.java

@@ -0,0 +1,20 @@
+package com.sooka.sponest.data.app.service;
+
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.sooka.sponest.data.app.domain.AgricultureBO;
+import com.sooka.sponest.data.app.domain.AppDigitalForestVO;
+import com.sooka.sponest.data.app.domain.AppDigitalForestWeather;
+
+import java.util.List;
+
+public interface AppDigitalForestService {
+
+
+    public AjaxResult resourceList(AppDigitalForestVO vo);
+    public  AppDigitalForestWeather selectWeather(AppDigitalForestWeather appDigitalForestWeather);
+    public List<AgricultureBO> HeZuoShePoint(AgricultureBO agricultureBO);
+    public List<AgricultureBO> ZhiBaoPoint(AgricultureBO agricultureBO);
+    public List<AgricultureBO> XuBaoPoint(AgricultureBO agricultureBO);
+    public List<AgricultureBO> NongJiZhanPoint(AgricultureBO agricultureBO);
+    public List<AgricultureBO> YangZhiPoint(AgricultureBO agricultureBO);
+}

+ 9 - 0
src/main/java/com/sooka/sponest/data/app/service/AppLeaveService.java

@@ -0,0 +1,9 @@
+package com.sooka.sponest.data.app.service;
+
+import com.sooka.sponest.data.app.domain.AppLeaveBo;
+
+public interface AppLeaveService {
+
+    public int addLeave(AppLeaveBo bo);
+
+}

+ 25 - 0
src/main/java/com/sooka/sponest/data/app/service/AppPersonService.java

@@ -0,0 +1,25 @@
+package com.sooka.sponest.data.app.service;
+
+
+
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.sooka.sponest.data.app.domain.AppPersonBO;
+import com.sooka.sponest.data.app.domain.AppPersonVO;
+import com.sooka.sponest.data.app.domain.AppUserCommunity;
+
+import java.util.List;
+
+public interface AppPersonService {
+
+    public List<AppPersonBO> list(AppPersonVO vo);
+
+    public AjaxResult add(AppPersonVO vo);
+
+    public AjaxResult update(AppPersonVO vo);
+
+    public AjaxResult detail(AppPersonVO vo);
+
+    public AjaxResult delete(AppPersonVO vo);
+
+    public AppUserCommunity getAppUserCommunity(Long deptId);
+}

+ 21 - 0
src/main/java/com/sooka/sponest/data/app/service/AppQiyeService.java

@@ -0,0 +1,21 @@
+package com.sooka.sponest.data.app.service;
+
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.sooka.sponest.data.app.domain.AppQiyeBO;
+import com.sooka.sponest.data.app.domain.AppQiyeVO;
+
+import java.util.List;
+
+public interface AppQiyeService {
+
+    public List<AppQiyeBO> list(AppQiyeVO vo);
+
+    public AjaxResult add(AppQiyeVO vo);
+
+    public AjaxResult update(AppQiyeVO vo);
+
+    public AjaxResult detail(AppQiyeVO vo);
+
+    public AjaxResult delete(AppQiyeVO vo);
+
+}

+ 15 - 0
src/main/java/com/sooka/sponest/data/app/service/AppXcgjService.java

@@ -0,0 +1,15 @@
+package com.sooka.sponest.data.app.service;
+
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.sooka.sponest.data.app.domain.App_ZhsqPatrolrecord_VO;
+import com.sooka.sponest.data.app.domain.App_ZhsqXcgj_VO;
+
+
+public interface AppXcgjService
+{
+    public AjaxResult addXunCha(App_ZhsqXcgj_VO vo);
+
+    public AjaxResult addGuiJi(App_ZhsqPatrolrecord_VO vo);
+
+
+}

+ 22 - 0
src/main/java/com/sooka/sponest/data/app/service/IAppBigDataDataService.java

@@ -0,0 +1,22 @@
+package com.sooka.sponest.data.app.service;
+
+import com.sooka.sponest.data.app.domain.VisuForestCloudMapVO;
+import com.sooka.sponest.data.base.service.IBaseService;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 数据中心-大数据Service接口
+ *
+ * @author lyq
+ * @date 2022-11-02
+ */
+public interface IAppBigDataDataService extends IBaseService {
+
+    List<Map<String, Object>> getFireData(VisuForestCloudMapVO visuForestCloudMapVO);
+
+    List<Map<String, Object>> getFireControlData(VisuForestCloudMapVO visuForestCloudMapVO);
+
+    List<Map<String, Object>> getEnvironmentData(VisuForestCloudMapVO visuForestCloudMapVO);
+}

+ 46 - 0
src/main/java/com/sooka/sponest/data/app/service/impl/AppBigDataServiceImpl.java

@@ -0,0 +1,46 @@
+package com.sooka.sponest.data.app.service.impl;
+
+import com.ruoyi.common.datascope.annotation.DataScopeMutiDept;
+import com.sooka.sponest.data.app.domain.VisuForestCloudMapVO;
+import com.sooka.sponest.data.app.mapper.AppBigDataMapper;
+import com.sooka.sponest.data.app.service.IAppBigDataDataService;
+import com.sooka.sponest.data.base.service.impl.BaseServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 数据中心-大数据Service业务层处理
+ *
+ * @author lyq
+ * @date 2022-11-02
+ */
+@Service
+public class AppBigDataServiceImpl extends BaseServiceImpl implements IAppBigDataDataService {
+
+    @Autowired
+    private AppBigDataMapper appBigDataMapper;
+
+    @DataScopeMutiDept(deptAlias = "d")
+    @Override
+    public List<Map<String, Object>> getFireData(VisuForestCloudMapVO visuForestCloudMapVO) {
+        setSookaDataBase(visuForestCloudMapVO);
+        return appBigDataMapper.getFireData(visuForestCloudMapVO);
+    }
+
+    @DataScopeMutiDept(deptAlias = "d")
+    @Override
+    public List<Map<String, Object>> getFireControlData(VisuForestCloudMapVO visuForestCloudMapVO) {
+        setSookaDataBase(visuForestCloudMapVO);
+        return appBigDataMapper.getFireControlData(visuForestCloudMapVO);
+    }
+
+    @DataScopeMutiDept(deptAlias = "d")
+    @Override
+    public List<Map<String, Object>> getEnvironmentData(VisuForestCloudMapVO visuForestCloudMapVO) {
+        setSookaDataBase(visuForestCloudMapVO);
+        return appBigDataMapper.getEnvironmentData(visuForestCloudMapVO);
+    }
+}

+ 44 - 0
src/main/java/com/sooka/sponest/data/app/service/impl/AppDailyServiceImpl.java

@@ -0,0 +1,44 @@
+package com.sooka.sponest.data.app.service.impl;
+
+import com.sooka.sponest.data.app.domain.AppDailyBO;
+import com.sooka.sponest.data.app.domain.AppDailyVO;
+import com.sooka.sponest.data.app.mapper.AppDailyMapper;
+import com.sooka.sponest.data.app.service.AppDailyService;
+import com.sooka.sponest.data.base.service.impl.BaseServiceImpl;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+@Service
+public class AppDailyServiceImpl extends BaseServiceImpl implements AppDailyService {
+
+    @Resource
+    AppDailyMapper appDailyMapper;
+
+
+    @Override
+    public int addDaily(AppDailyBO bo) {
+        return appDailyMapper.appinsertCenterdataTDaily(bo);
+    }
+
+    @Override
+    public List<AppDailyBO> queryDailyByMonth(AppDailyVO appDailyVO) {
+
+        return appDailyMapper.selectRepeatDailySeeMonth(appDailyVO);
+
+    }
+
+    @Override
+    public AppDailyBO queryDailyByDay(AppDailyVO appDailyVO) {
+
+        return appDailyMapper.selectRepeatDailySee(appDailyVO);
+
+
+    }
+
+    @Override
+    public Integer selectRepeatDaily(AppDailyBO bo) {
+        return appDailyMapper.selectRepeatDaily(bo);
+    }
+}

+ 79 - 0
src/main/java/com/sooka/sponest/data/app/service/impl/AppDigitalForestServiceImpl.java

@@ -0,0 +1,79 @@
+package com.sooka.sponest.data.app.service.impl;
+
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.sooka.sponest.data.app.domain.AgricultureBO;
+import com.sooka.sponest.data.app.domain.AppDigitalForestVO;
+import com.sooka.sponest.data.app.domain.AppDigitalForestWeather;
+import com.sooka.sponest.data.app.mapper.AppDigitalForestMapper;
+import com.sooka.sponest.data.app.service.AppDigitalForestService;
+import com.sooka.sponest.data.base.service.impl.BaseServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+@Service
+public class AppDigitalForestServiceImpl extends BaseServiceImpl implements AppDigitalForestService {
+    @Autowired
+    AppDigitalForestMapper appDigitalForestMapper;
+
+
+
+    @Override
+    public AjaxResult resourceList(AppDigitalForestVO vo) {
+        List ls = null;
+        if (vo.getEventType() != null && vo.getEventType().equals("centerdata_t_forest_watercrane")) {
+            ls = appDigitalForestMapper.forestWatercraneList(vo);
+        } else if (vo.getEventType() != null && vo.getEventType().equals("centerdata_t_forest_waterintake")) {
+            ls = appDigitalForestMapper.forestWaterintakeList(vo);
+        } else if (vo.getEventType() != null && vo.getEventType().equals("centerdata_t_forest_firehydrant")){
+            ls = appDigitalForestMapper.forestFirehydrantList(vo);
+        } else if(vo.getEventType() != null && vo.getEventType().equals("centerdata_t_forest_checkpoint")){
+            ls = appDigitalForestMapper.forestCheckpointList(vo);
+        } else if(vo.getEventType() != null && vo.getEventType().equals("centerdata_t_forest_channel")){
+            ls = appDigitalForestMapper.forestChannelList(vo);
+        } else if(vo.getEventType() != null && vo.getEventType().equals("centerdata_t_forest_landing")){
+            ls = appDigitalForestMapper.forestLandinglList(vo);
+        } else if(vo.getEventType() != null && vo.getEventType().equals("centerdata_t_forest_farm")){
+            ls =  appDigitalForestMapper.forestFarmlList(vo);
+        } else if(vo.getEventType() != null && vo.getEventType().equals("centerdata_t_forest_weatherstation")){
+            ls = appDigitalForestMapper.forestWeatherstationList(vo);
+        } else if(vo.getEventType() != null && vo.getEventType().equals("centerdata_t_forest_fireteam")){
+            ls = appDigitalForestMapper.forestFireteamList(vo);
+        }
+
+        return AjaxResult.success("操作成功",ls);
+    }
+
+    @Override
+    public AppDigitalForestWeather selectWeather(AppDigitalForestWeather appDigitalForestWeather) {
+        setSookaDataBase(appDigitalForestWeather);
+        return appDigitalForestMapper.selectWeather(appDigitalForestWeather);
+    }
+
+    @Override
+    public List<AgricultureBO> HeZuoShePoint(AgricultureBO agricultureBO) {
+        setSookaDataBase(agricultureBO);
+        return appDigitalForestMapper.HeZuoShePoint(agricultureBO);
+    }
+
+    @Override
+    public List<AgricultureBO> ZhiBaoPoint(AgricultureBO agricultureBO) {
+        setSookaDataBase(agricultureBO);
+        return appDigitalForestMapper.ZhiBaoPoint(agricultureBO);    }
+
+    @Override
+    public List<AgricultureBO> XuBaoPoint(AgricultureBO agricultureBO) {
+        setSookaDataBase(agricultureBO);
+        return appDigitalForestMapper.XuBaoPoint(agricultureBO);    }
+
+    @Override
+    public List<AgricultureBO> NongJiZhanPoint(AgricultureBO agricultureBO) {
+        setSookaDataBase(agricultureBO);
+        return appDigitalForestMapper.NongJiZhanPoint(agricultureBO);    }
+
+    @Override
+    public List<AgricultureBO> YangZhiPoint(AgricultureBO agricultureBO) {
+        setSookaDataBase(agricultureBO);
+        return appDigitalForestMapper.YangZhiPoint(agricultureBO);     }
+}

+ 25 - 0
src/main/java/com/sooka/sponest/data/app/service/impl/AppLeaveServiceImpl.java

@@ -0,0 +1,25 @@
+package com.sooka.sponest.data.app.service.impl;
+
+import com.sooka.sponest.data.app.domain.AppLeaveBo;
+import com.sooka.sponest.data.app.mapper.AppLeaveMapper;
+import com.sooka.sponest.data.app.service.AppLeaveService;
+import com.sooka.sponest.data.base.service.impl.BaseServiceImpl;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+
+@Service
+public class AppLeaveServiceImpl extends BaseServiceImpl implements AppLeaveService {
+    private static final Logger log = LoggerFactory.getLogger(AppLeaveServiceImpl.class);
+
+    @Resource
+    AppLeaveMapper appLeaveMapper;
+
+    @Override
+    public int addLeave(AppLeaveBo bo) {
+        return appLeaveMapper.insertCenterdataTLeave(bo);
+
+    }
+}

+ 142 - 0
src/main/java/com/sooka/sponest/data/app/service/impl/AppPersonServiceImpl.java

@@ -0,0 +1,142 @@
+package com.sooka.sponest.data.app.service.impl;
+
+import com.ruoyi.common.core.utils.DateUtils;
+import com.ruoyi.common.core.utils.StringUtils;
+import com.ruoyi.common.core.utils.uuid.UUID;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.datascope.annotation.DataScopeMutiDept;
+import com.ruoyi.common.datascope.base.util.database.DynamicDataSourceSwitcher;
+import com.ruoyi.common.security.utils.SecurityUtils;
+import com.ruoyi.system.api.domain.SysDept;
+import com.ruoyi.system.api.domain.SysUser;
+import com.sooka.sponest.data.app.domain.AppPersonBO;
+import com.sooka.sponest.data.app.domain.AppPersonVO;
+import com.sooka.sponest.data.app.domain.AppTsrq;
+import com.sooka.sponest.data.app.domain.AppUserCommunity;
+import com.sooka.sponest.data.app.mapper.AppPersonMapper;
+import com.sooka.sponest.data.app.service.AppPersonService;
+import com.sooka.sponest.data.base.service.impl.BaseServiceImpl;
+import com.sooka.sponest.data.utils.database.MyDataSource;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.List;
+
+@Service
+@Transactional
+public class AppPersonServiceImpl extends BaseServiceImpl implements AppPersonService {
+
+    @Resource
+    AppPersonMapper mapper;
+
+    @Override
+    @DataScopeMutiDept(deptAlias = "d",userAlias="u")
+    public List<AppPersonBO> list(AppPersonVO vo) {
+        setSookaDataBase(vo);
+        return mapper.list(vo);
+    }
+
+    @Override
+    public AjaxResult add(AppPersonVO vo) {
+        setSookaDataBase(vo);
+        String id = UUID.getUUID();
+        vo.setId(id);
+        vo.setPerId(id);
+        SysUser sysUser = SecurityUtils.getLoginUser().getSysUser();
+//        vo.setCreateBy(sysUser.getUserId());
+        vo.setCreateBy(String.valueOf(sysUser.getUserId()));
+        vo.setCreateName(sysUser.getNickName());
+        vo.setCreateTime(DateUtils.getNowDate());
+        AjaxResult ajax = new AjaxResult();
+        ajax.put("rows", mapper.add(vo));
+        mapper.addBx(vo);
+        mapper.addCanji(vo);
+        mapper.addDibao(vo);
+        mapper.addJs(vo);
+        mapper.addJunren(vo);
+        mapper.addLiudong(vo);
+        mapper.addLlr(vo);
+        mapper.addNcov(vo);
+        // 新增人员与特殊人群关联
+        insertPersonTsrq(id, vo.getTsrqIdsStr().split(","));
+        return AjaxResult.success(ajax);
+    }
+
+    @Override
+    public AjaxResult update(AppPersonVO vo) {
+        setSookaDataBase(vo);
+        SysUser sysUser = SecurityUtils.getLoginUser().getSysUser();
+        vo.setUpdateBy(sysUser.getUserId());
+        vo.setUpdateName(sysUser.getNickName());
+        vo.setUpdateTime(DateUtils.getNowDate());
+        AjaxResult ajax = new AjaxResult();
+        ajax.put("rows", mapper.update(vo));
+        mapper.updateBx(vo);
+        mapper.updateCanji(vo);
+        mapper.updateDibao(vo);
+        mapper.updateJs(vo);
+        mapper.updateJunren(vo);
+        mapper.updateLiudong(vo);
+        mapper.updateLlr(vo);
+        mapper.updateNcov(vo);
+        // 删除人员与特殊人群关联
+        mapper.deletePersonTsrq(vo.getId());
+        // 新增人员与特殊人群关联
+        insertPersonTsrq(vo.getId(), vo.getTsrqIdsStr().split(","));
+        return AjaxResult.success(ajax);
+    }
+
+    @Override
+    public AjaxResult detail(AppPersonVO vo) {
+        AjaxResult ajax = new AjaxResult();
+        ajax.put("detail",  mapper.detail(vo));
+        return AjaxResult.success(ajax);
+    }
+
+    @Override
+    public AjaxResult delete(AppPersonVO vo) {
+        AjaxResult ajax = new AjaxResult();
+        ajax.put("rows",  mapper.delete(vo.getId().split(",")));
+        return AjaxResult.success(ajax);
+    }
+
+    public void insertPersonTsrq(String perId, String[] tsrqIds) {
+        if (StringUtils.isNotNull(tsrqIds) && !tsrqIds[0].equals("")) {
+            List<AppTsrq> list = new ArrayList<>();
+            for (String tsrqId : tsrqIds) {
+                AppTsrq zhsqTsrq = new AppTsrq();
+                zhsqTsrq.setPerId(perId);
+                zhsqTsrq.setTsrqId(Long.valueOf(tsrqId));
+                list.add(zhsqTsrq);
+            }
+            if (list.size() > 0) {
+                mapper.batchPersonTsrq(list);
+            }
+        }
+    }
+
+    /**
+     * 根据数据所属部门查询用户所在街道社区网格
+     *
+     * @param deptId 数据所属部门
+     * @return 用户所在街道社区网格信息
+     */
+    @Override
+    @MyDataSource(value = DynamicDataSourceSwitcher.dbSystem)
+    public AppUserCommunity getAppUserCommunity(Long deptId) {
+//        setSookaDataBase(vo);
+        AppUserCommunity appUserCommunity = new AppUserCommunity();
+        SysDept wangGe = mapper.selectDeptById(deptId);
+        appUserCommunity.setWgId(wangGe.getDeptId());
+        appUserCommunity.setWgName(wangGe.getDeptName());
+        SysDept sheQu = mapper.selectDeptById(wangGe.getParentId());
+        appUserCommunity.setSqId(sheQu.getDeptId());
+        appUserCommunity.setSqName(sheQu.getDeptName());
+        SysDept jieDao = mapper.selectDeptById(sheQu.getParentId());
+        appUserCommunity.setJdId(jieDao.getDeptId());
+        appUserCommunity.setJdName(jieDao.getDeptName());
+        return appUserCommunity;
+    }
+}

+ 62 - 0
src/main/java/com/sooka/sponest/data/app/service/impl/AppQiyeServiceImpl.java

@@ -0,0 +1,62 @@
+package com.sooka.sponest.data.app.service.impl;
+
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.datascope.annotation.DataScopeMutiDept;
+import com.sooka.sponest.data.app.domain.AppQiyeBO;
+import com.sooka.sponest.data.app.domain.AppQiyeVO;
+import com.sooka.sponest.data.app.mapper.AppQiyeMapper;
+import com.sooka.sponest.data.app.service.AppPersonService;
+import com.sooka.sponest.data.app.service.AppQiyeService;
+import com.sooka.sponest.data.base.service.impl.BaseServiceImpl;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+@Service
+public class AppQiyeServiceImpl extends BaseServiceImpl implements AppQiyeService {
+
+    @Resource
+    AppQiyeMapper mapper;
+    @Resource
+    AppPersonService service;
+
+    @Override
+    @DataScopeMutiDept(deptAlias = "d",userAlias="u")
+    public List<AppQiyeBO> list(AppQiyeVO vo) {
+        setSookaDataBase(vo);
+        return mapper.list(vo);
+    }
+
+    @Override
+    public AjaxResult add(AppQiyeVO vo) {
+
+        AjaxResult ajax = new AjaxResult();
+        setSookaDataBase(vo);
+        ajax.put("rows", mapper.add(vo));
+        return AjaxResult.success(ajax);
+    }
+
+    @Override
+    public AjaxResult update(AppQiyeVO vo) {
+        setSookaDataBase(vo);
+
+        AjaxResult ajax = new AjaxResult();
+        ajax.put("rows", mapper.update(vo));
+        return AjaxResult.success(ajax);
+    }
+
+    @Override
+    public AjaxResult detail(AppQiyeVO vo) {
+        AjaxResult ajax = new AjaxResult();
+        ajax.put("detail",  mapper.detail(vo));
+        return AjaxResult.success(ajax);
+    }
+
+    @Override
+    public AjaxResult delete(AppQiyeVO vo) {
+        AjaxResult ajax = new AjaxResult();
+        ajax.put("rows",  mapper.delete(vo.getId().split(",")));
+        return AjaxResult.success(ajax);
+    }
+}

+ 88 - 0
src/main/java/com/sooka/sponest/data/app/service/impl/AppXcgjServiceImpl.java

@@ -0,0 +1,88 @@
+package com.sooka.sponest.data.app.service.impl;
+
+import com.ruoyi.common.core.utils.DateUtils;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.security.utils.SecurityUtils;
+import com.ruoyi.system.api.domain.SysDept;
+import com.ruoyi.system.api.domain.SysUser;
+import com.sooka.sponest.data.app.domain.App_ZhsqPatroldate_VO;
+import com.sooka.sponest.data.app.domain.App_ZhsqPatrolrecord_VO;
+import com.sooka.sponest.data.app.domain.App_ZhsqXcgj_VO;
+import com.sooka.sponest.data.app.mapper.AppXcgjMapper;
+import com.sooka.sponest.data.app.service.AppXcgjService;
+import com.sooka.sponest.data.base.service.impl.BaseServiceImpl;
+import com.sooka.sponest.data.zhsq.sysUserCommunity.service.ISysUserCommunityService;
+import com.sooka.sponest.data.zhsqapp.base.util.MapUtil;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.math.BigDecimal;
+import java.util.List;
+
+@Service
+public class AppXcgjServiceImpl extends BaseServiceImpl implements AppXcgjService
+{
+    @Resource
+    AppXcgjMapper mapper;
+    @Resource
+    ISysUserCommunityService sysUserCommunityService;
+
+
+
+    @Override
+    public AjaxResult addXunCha(App_ZhsqXcgj_VO vo) {
+        SysUser sysUser = SecurityUtils.getLoginUser().getSysUser();
+        App_ZhsqPatroldate_VO appZhsqPatroldateVO = new App_ZhsqPatroldate_VO();
+        /**查询是否已经存在人员数据**/
+        List<App_ZhsqXcgj_VO> app_zhsqxcgj_voList = mapper.selectApp_ZhsqXcgj_VOList(vo);
+        if (app_zhsqxcgj_voList != null && app_zhsqxcgj_voList.size() > 0) {
+            Long gpsId = app_zhsqxcgj_voList.get(0).getGpsId();
+            appZhsqPatroldateVO.setGpsId(gpsId);
+        }else{
+            vo.setCreateTime(DateUtils.getNowDate());
+            vo.setGpsTime(DateUtils.getTime());
+            /**网格**/
+            vo.setWgId(vo.getDeptId());
+            vo.setWgName(vo.getDeptName());
+            /**社区**/
+            SysDept sqDept = sysUserCommunityService.getSqDeptByWgId(vo.getDeptId());
+            vo.setSqId(sqDept.getDeptId());
+            vo.setSqName(sqDept.getDeptName());
+            /**街道**/
+            SysDept jdDept = sysUserCommunityService.getJdDeptByWgId(vo.getDeptId());
+            vo.setJdId(jdDept.getDeptId());
+            vo.setJdName(jdDept.getDeptName());
+            /**创建人**/
+            vo.setCreateId(sysUser.getUserId());
+            vo.setCreateUser(sysUser.getNickName());
+            /**没有历史数据,创建新数据**/
+            mapper.insertApp_ZhsqXcgj_VO(vo);
+            appZhsqPatroldateVO.setGpsId(vo.getGpsId());
+        }
+        appZhsqPatroldateVO.setPatroldateDate(DateUtils.getTime());
+        appZhsqPatroldateVO.setCreateId(sysUser.getUserId());
+        appZhsqPatroldateVO.setCreateUser(sysUser.getNickName());
+        appZhsqPatroldateVO.setCreateTime(DateUtils.getNowDate());
+        mapper.insertApp_ZhsqPatroldate_VO(appZhsqPatroldateVO);
+        AjaxResult ajax = new AjaxResult();
+        ajax.put("patroldateId", appZhsqPatroldateVO.getPatroldateId());
+        return AjaxResult.success(ajax);
+    }
+
+
+    @Override
+    public AjaxResult addGuiJi(App_ZhsqPatrolrecord_VO vo) {
+        SysUser sysUser = SecurityUtils.getLoginUser().getSysUser();
+        BigDecimal lon=new BigDecimal(vo.getPdLongitude());
+        BigDecimal lat=new BigDecimal(vo.getPdLatitude());
+        double[] Wgs84= MapUtil.gcj02_To_Wgs84(lon.doubleValue(),lat.doubleValue());
+        vo.setPdLongitude(String.valueOf(Wgs84[0]));
+        vo.setPdLatitude(String.valueOf(Wgs84[1]));
+        vo.setCreateId(sysUser.getUserId());
+        vo.setCreateUser(sysUser.getNickName());
+        vo.setCreateTime(DateUtils.getNowDate());
+        AjaxResult ajax = new AjaxResult();
+        ajax.put("rows", mapper.insertApp_ZhsqPatrolrecord_VO(vo));
+        return AjaxResult.success(ajax);
+    }
+}

+ 66 - 0
src/main/java/com/sooka/sponest/data/base/domain/BaseBusinessEntity.java

@@ -0,0 +1,66 @@
+package com.sooka.sponest.data.base.domain;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.common.core.annotation.Excel;
+import lombok.Data;
+
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
+
+@Data
+public class BaseBusinessEntity {
+
+    private Long dataDeptId;
+
+    /**
+     * 创建人
+     */
+    private String createBy;
+
+    private int version;
+
+    /**
+     * 创建人姓名
+     */
+    @Excel(name = "创建人")
+    private String createName;
+
+    /**
+     * 创建时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "创建时间",dateFormat = "yyyy-MM-dd HH:mm:ss")
+    private Date createTime;
+
+    /**
+     * 更新人
+     */
+    private Long updateBy;
+
+    /**
+     * 更新人姓名
+     */
+    @Excel(name = "修改人")
+    private String updateName;
+
+    /**
+     * 更新时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "修改时间",dateFormat = "yyyy-MM-dd HH:mm:ss")
+    private Date updateTime;
+
+    /**
+     * 请求参数
+     */
+    Map<String, Object> params = new HashMap();
+
+    private String database_data;
+
+    private String database_event;
+
+    private String database_monitor;
+
+    private String database_system;
+}

+ 24 - 0
src/main/java/com/sooka/sponest/data/base/domain/ESVo.java

@@ -0,0 +1,24 @@
+package com.sooka.sponest.data.base.domain;
+
+import com.ruoyi.common.log.enums.BusinessType;
+import lombok.Data;
+
+@Data
+public class ESVo {
+
+    public ESVo() {
+
+    }
+
+    public ESVo(String indexName, BusinessType type, String modelStr) {
+        this.indexName = indexName;
+        this.modelStr = modelStr;
+        this.type = type;
+    }
+
+    String indexName;
+
+    String modelStr;
+
+    BusinessType type;
+}

+ 17 - 0
src/main/java/com/sooka/sponest/data/base/mapper/BaseMapper.java

@@ -0,0 +1,17 @@
+package com.sooka.sponest.data.base.mapper;
+
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Map;
+
+public interface BaseMapper {
+
+    int uniqueCheck(@Param("tableName") String tableName, @Param("params") List<Map<String, String>> params);
+
+    List<Map<String, Object>> getLocationWithCamera(Object object);
+
+    List<Map<String, Object>> getCameraList(@Param("monitorDB") String monitorDB, @Param("ids") List<String> ids);
+
+    List<Map<String, Object>> getCountGroupByDept(Object object);
+}

+ 17 - 0
src/main/java/com/sooka/sponest/data/base/service/IBaseService.java

@@ -0,0 +1,17 @@
+package com.sooka.sponest.data.base.service;
+
+import com.sooka.sponest.data.base.domain.BaseBusinessEntity;
+
+import java.util.List;
+import java.util.Map;
+
+public interface IBaseService {
+
+    void setSookaDataBase(BaseBusinessEntity entity);
+
+    boolean uniqueCheck(String tableName, String[] keys, String[] values);
+
+    List<Map<String, Object>> getLocationWithCamera(Object object);
+
+    List<Map<String, Object>> getCountGroupByDept(Object object);
+}

+ 99 - 0
src/main/java/com/sooka/sponest/data/base/service/impl/BaseServiceImpl.java

@@ -0,0 +1,99 @@
+package com.sooka.sponest.data.base.service.impl;
+
+import com.ruoyi.common.core.utils.StringUtils;
+import com.sooka.sponest.data.base.domain.BaseBusinessEntity;
+import com.sooka.sponest.data.base.mapper.BaseMapper;
+import com.sooka.sponest.data.base.service.IBaseService;
+import org.apache.commons.collections4.MapUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+@Service
+public class BaseServiceImpl implements IBaseService {
+
+    @Value("${sooka.database.database_data:}")
+    public String database_data;
+
+    @Value("${sooka.database.database_event:}")
+    public String database_event;
+
+    @Value("${sooka.database.database_monitor:}")
+    public String database_monitor;
+
+    @Value("${sooka.database.database_system:}")
+    public String database_system;
+
+    public void setSookaDataBase(BaseBusinessEntity entity) {
+        entity.setDatabase_data(this.database_data);
+        entity.setDatabase_event(this.database_event);
+        entity.setDatabase_monitor(this.database_monitor);
+        entity.setDatabase_system(this.database_system);
+    }
+
+    protected Logger logger = LoggerFactory.getLogger(this.getClass());
+
+    @Autowired
+    private BaseMapper baseMapper;
+
+    public boolean uniqueCheck(String tableName, String[] keys, String[] values) {
+        if (StringUtils.isBlank(tableName) || StringUtils.isEmpty(keys) || StringUtils.isEmpty(values)) {
+            logger.error("参数必输校验失败");
+            return false;
+        }
+        int result = 1;
+        // 判定: keys 与 values 的长度不一致, 返回false
+        if (keys.length != values.length) {
+            logger.error("key/value长度不一致");
+        } else {
+            List<Map<String, String>> params = new ArrayList<>();
+            Map<String, String> param = null;
+            for (int i = 0; i < keys.length; i++) {
+                param = new HashMap<>();
+                param.put("key", keys[i]);
+                param.put("value", values[i]);
+                params.add(param);
+            }
+            try {
+                result = baseMapper.uniqueCheck(tableName, params);
+            } catch (Exception e) {
+                logger.error("唯一校验查询异常,请检查参数是否正确:{}", e.getMessage());
+            }
+        }
+        return 0 == result;
+    }
+
+    @Override
+    public List<Map<String, Object>> getLocationWithCamera(Object object) {
+        List<Map<String, Object>> pointList = baseMapper.getLocationWithCamera(object);
+        List<String> ids = pointList.stream().map(item -> MapUtils.getString(item, "id")).collect(Collectors.toList());
+        List<Map<String, Object>> cameraList = getCameraList(ids);
+        pointList.forEach(point -> {
+            List<Map<String, Object>> list = new ArrayList<>();
+            cameraList.forEach(camera -> {
+                if (MapUtils.getString(point, "id").equals(MapUtils.getString(camera, "businessId"))) {
+                    list.add(camera);
+                }
+            });
+            point.put("cameraList", list);
+        });
+        return pointList;
+    }
+
+    public List<Map<String, Object>> getCameraList(List<String> ids) {
+        return baseMapper.getCameraList(database_monitor, ids);
+    }
+
+    @Override
+    public List<Map<String, Object>> getCountGroupByDept(Object object) {
+        return baseMapper.getCountGroupByDept(object);
+    }
+}

+ 152 - 0
src/main/java/com/sooka/sponest/data/basicdata/controller/CenterdataTForestCarController.java

@@ -0,0 +1,152 @@
+package com.sooka.sponest.data.basicdata.controller;
+
+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.TableDataInfo;
+import com.ruoyi.common.log.annotation.Log;
+import com.ruoyi.common.log.enums.BusinessType;
+import com.ruoyi.common.security.annotation.RequiresPermissions;
+import com.sooka.sponest.data.basicdata.domain.CenterdataTForestCar;
+import com.sooka.sponest.data.basicdata.service.ICenterdataTForestCarService;
+import com.sooka.sponest.data.utils.ExcelUtil;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 车辆管理Controller
+ *
+ * @author ruoyi
+ * @date 2022-05-04
+ */
+@Api(tags = "数据中心车辆管理控制器")
+@RestController
+@RequestMapping("/car")
+public class CenterdataTForestCarController extends BaseController {
+
+    @Autowired
+    private ICenterdataTForestCarService centerdataTForestCarService;
+
+    /**
+     * 查询车辆管理列表
+     */
+    @ApiOperation(value = "数据中心查询车辆管理列表", notes = "数据中心查询车辆管理列表")
+    @RequiresPermissions("forest:car:list")
+    @GetMapping("/list")
+    public TableDataInfo list(CenterdataTForestCar centerdataTForestCar) {
+        startPage();
+        List<CenterdataTForestCar> list = centerdataTForestCarService.selectCenterdataTForestCarList(centerdataTForestCar);
+        return getDataTable(list);
+    }
+
+
+    /**
+     * 导出车辆管理列表
+     */
+    @ApiOperation(value = "数据中心导出车辆管理列表", notes = "数据中心导出车辆管理列表")
+    @RequiresPermissions("forest:car:export")
+    @Log(title = "车辆管理", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, CenterdataTForestCar centerdataTForestCar) {
+        List<CenterdataTForestCar> list = centerdataTForestCarService.selectCenterdataTForestCarList(centerdataTForestCar);
+        ExcelUtil<CenterdataTForestCar> util = new ExcelUtil<>(CenterdataTForestCar.class);
+        util.exportExcel(response, list, "车辆管理数据");
+    }
+
+    /**
+     * 获取车辆管理详细信息
+     */
+    @ApiImplicitParams(value = {
+            @ApiImplicitParam(name = "id", value = "主键id", dataType = "String", required = true)
+    })
+    @ApiOperation(value = "数据中心获取车辆管理详细信息", notes = "数据中心获取车辆管理详细信息")
+    @RequiresPermissions("forest:car:query")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") String id) {
+        CenterdataTForestCar centerdataTForestCar = centerdataTForestCarService.selectCenterdataTForestCarById(id);
+        if (centerdataTForestCar.getMessage() == null){
+            return AjaxResult.success(centerdataTForestCar);
+        }else {
+            return AjaxResult.error(centerdataTForestCar.getMessage());
+        }
+    }
+
+    /**
+     * 新增车辆管理
+     */
+    @ApiOperation(value = "数据中心新增车辆管理", notes = "数据中心新增车辆管理")
+    @RequiresPermissions("forest:car:add")
+    @Log(title = "车辆管理", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@Validated @RequestBody CenterdataTForestCar centerdataTForestCar) {
+        return toAjax(centerdataTForestCarService.insertCenterdataTForestCar(centerdataTForestCar));
+    }
+
+    /**
+     * 修改车辆管理
+     */
+    @ApiOperation(value = "数据中心修改车辆管理", notes = "数据中心修改车辆管理")
+    @RequiresPermissions("forest:car:edit")
+    @Log(title = "车辆管理", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@Validated @RequestBody CenterdataTForestCar centerdataTForestCar) {
+        return toAjax(centerdataTForestCarService.updateCenterdataTForestCar(centerdataTForestCar));
+    }
+
+    /**
+     * 删除车辆管理
+     */
+    @ApiImplicitParams(value = {
+            @ApiImplicitParam(name = "ids", value = "主键id", dataType = "String[]", required = true)
+    })
+    @ApiOperation(value = "数据中心修改车辆管理", notes = "数据中心修改车辆管理")
+    @RequiresPermissions("forest:car:remove")
+    @Log(title = "车辆管理", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable String[] ids) {
+        int num = centerdataTForestCarService.deleteCenterdataTForestCarByIds(ids);
+        if (num == -1) {
+            return AjaxResult.error("车辆下有保养,不允许删除");
+        }
+        return toAjax(num);
+    }
+
+    @ApiOperation(value = "查询车辆列表", notes = "查询车辆列表")
+    @GetMapping(value = "/listCenterdataTForestCar")
+    public AjaxResult listCenterdataTForestCar() {
+        CenterdataTForestCar centerdataTForestCar = new CenterdataTForestCar();
+        return AjaxResult.success(centerdataTForestCarService.listCenterdataTForestCar(centerdataTForestCar));
+    }
+
+    @ApiImplicitParams(value = {
+            @ApiImplicitParam(name = "id", value = "主键id", dataType = "String", required = false,paramType = "body" ),
+            @ApiImplicitParam(name = "licenseNum", value = "车牌号", dataType = "String", required = false,paramType = "body"),
+            @ApiImplicitParam(name = "engineNumber", value = "大架号", dataType = "String", required = false,paramType = "body"),
+            @ApiImplicitParam(name = "forestBrand", value = "品牌", dataType = "String", required = false,paramType = "body"),
+            @ApiImplicitParam(name = "areaType", value = "区域类型", dataType = "String", required = false,paramType = "body"),
+            @ApiImplicitParam(name = "forestType", value = "类型", dataType = "String", required = false,paramType = "body"),
+            @ApiImplicitParam(name = "loadweight", value = "载重", dataType = "String", required = false,paramType = "body"),
+            @ApiImplicitParam(name = "driverId", value = "司机", dataType = "String", required = false,paramType = "body"),
+            @ApiImplicitParam(name = "loadingNum", value = "核载人数", dataType = "Long", required = false,paramType = "body"),
+            @ApiImplicitParam(name = "carStatus", value = "车辆状态", dataType = "String", required = false,paramType = "body"),
+            @ApiImplicitParam(name = "purchaseDate", value = "采购日期", dataType = "Date", required = false,paramType = "body"),
+            @ApiImplicitParam(name = "maintenance", value = "保养周期", dataType = "Long", required = false,paramType = "body"),
+            @ApiImplicitParam(name = "nextMaintenance", value = "下次保养日期", dataType = "Date", required = false,paramType = "body"),
+            @ApiImplicitParam(name = "deptId", value = "部门id", dataType = "Long", required = false, paramType = "body"),
+            @ApiImplicitParam(name = "deptName", value = "部门名称", dataType = "String", required = false, paramType = "body")
+    })
+    @ApiOperation(value = "查询车辆数量远端调用", notes = "查询车辆数量远端调用")
+    @PostMapping("selectCarCount")
+    public R<List<Map<String, Object>>> selectCarCount(@RequestBody CenterdataTForestCar centerdataTForestCar) {
+        return R.ok(centerdataTForestCarService.selectCarCount(centerdataTForestCar));
+    }
+}

+ 110 - 0
src/main/java/com/sooka/sponest/data/basicdata/controller/CenterdataTForestCarrepairController.java

@@ -0,0 +1,110 @@
+package com.sooka.sponest.data.basicdata.controller;
+
+import com.ruoyi.common.core.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.web.controller.BaseController;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.web.page.TableDataInfo;
+import com.ruoyi.common.log.annotation.Log;
+import com.ruoyi.common.log.enums.BusinessType;
+import com.ruoyi.common.security.annotation.RequiresPermissions;
+import com.sooka.sponest.data.basicdata.domain.CenterdataTForestCarrepair;
+import com.sooka.sponest.data.basicdata.service.ICenterdataTForestCarrepairService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+/**
+ * 车辆维修保养记录Controller
+ *
+ * @author ruoyi
+ * @date 2022-05-04
+ */
+@Api(tags = "数据中心车辆维修保养记录控制器")
+@RestController
+@RequestMapping("/carrepair")
+public class CenterdataTForestCarrepairController extends BaseController {
+
+    @Autowired
+    private ICenterdataTForestCarrepairService centerdataTForestCarrepairService;
+
+    /**
+     * 查询车辆维修保养记录列表
+     */
+    @ApiOperation(value = "数据中心查询车辆维修保养记录列表", notes = "数据中心查询车辆维修保养记录列表")
+    @RequiresPermissions("forest:carrepair:list")
+    @GetMapping("/list")
+    public TableDataInfo list(CenterdataTForestCarrepair centerdataTForestCarrepair) {
+        startPage();
+        List<CenterdataTForestCarrepair> list = centerdataTForestCarrepairService.selectCenterdataTForestCarrepairList(centerdataTForestCarrepair);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出车辆维修保养记录列表
+     */
+    @ApiOperation(value = "数据中心导出车辆维修保养记录列表", notes = "数据中心导出车辆维修保养记录列表")
+    @RequiresPermissions("forest:carrepair:export")
+    @Log(title = "车辆维修保养记录", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, CenterdataTForestCarrepair centerdataTForestCarrepair) {
+        List<CenterdataTForestCarrepair> list = centerdataTForestCarrepairService.selectCenterdataTForestCarrepairList(centerdataTForestCarrepair);
+        ExcelUtil<CenterdataTForestCarrepair> util = new ExcelUtil<>(CenterdataTForestCarrepair.class);
+        util.exportExcel(response, list, "车辆维修保养记录数据");
+    }
+
+    /**
+     * 获取车辆维修保养记录详细信息
+     */
+    @ApiImplicitParams(value = {
+            @ApiImplicitParam(name = "id", value = "主键id", dataType = "String", required = true)
+    })
+    @ApiOperation(value = "数据中心获取车辆维修保养记录详细信息", notes = "数据中心获取车辆维修保养记录详细信息")
+    @RequiresPermissions("forest:carrepair:query")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") String id) {
+        return AjaxResult.success(centerdataTForestCarrepairService.selectCenterdataTForestCarrepairById(id));
+    }
+
+    /**
+     * 新增车辆维修保养记录
+     */
+    @ApiOperation(value = "数据中心新增车辆维修保养记录", notes = "数据中心新增车辆维修保养记录")
+    @RequiresPermissions("forest:carrepair:add")
+    @Log(title = "车辆维修保养记录", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@Validated @RequestBody CenterdataTForestCarrepair centerdataTForestCarrepair) {
+        return toAjax(centerdataTForestCarrepairService.insertCenterdataTForestCarrepair(centerdataTForestCarrepair));
+    }
+
+    /**
+     * 修改车辆维修保养记录
+     */
+    @ApiOperation(value = "数据中心修改车辆维修保养记录", notes = "数据中心修改车辆维修保养记录")
+    @RequiresPermissions("forest:carrepair:edit")
+    @Log(title = "车辆维修保养记录", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@Validated @RequestBody CenterdataTForestCarrepair centerdataTForestCarrepair) {
+        return toAjax(centerdataTForestCarrepairService.updateCenterdataTForestCarrepair(centerdataTForestCarrepair));
+    }
+
+    /**
+     * 删除车辆维修保养记录
+     */
+    @ApiImplicitParams(value = {
+            @ApiImplicitParam(name = "ids", value = "主键id", dataType = "String[]", required = true)
+    })
+    @ApiOperation(value = "数据中心删除车辆维修保养记录", notes = "数据中心删除车辆维修保养记录")
+    @RequiresPermissions("forest:carrepair:remove")
+    @Log(title = "车辆维修保养记录", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable String[] ids) {
+        return toAjax(centerdataTForestCarrepairService.deleteCenterdataTForestCarrepairByIds(ids));
+    }
+}

+ 152 - 0
src/main/java/com/sooka/sponest/data/basicdata/controller/CenterdataTForestFirehydrantController.java

@@ -0,0 +1,152 @@
+package com.sooka.sponest.data.basicdata.controller;
+
+import com.alibaba.fastjson.JSON;
+import com.ruoyi.common.core.constant.DocumentNameConstants;
+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.TableDataInfo;
+import com.ruoyi.common.log.annotation.Log;
+import com.ruoyi.common.log.enums.BusinessType;
+import com.ruoyi.common.security.annotation.RequiresPermissions;
+import com.ruoyi.common.security.utils.DictUtils;
+import com.sooka.sponest.data.base.domain.ESVo;
+import com.sooka.sponest.data.basicdata.domain.CenterdataTForestFirehydrant;
+import com.sooka.sponest.data.basicdata.service.ICenterdataTForestFirehydrantService;
+import com.sooka.sponest.data.utils.DataProducerUtil;
+import com.sooka.sponest.data.utils.ExcelUtil;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * 消火栓Controller
+ *
+ * @author ruoyi
+ * @date 2022-05-03
+ */
+@Api(tags = "数据中心消火栓控制器")
+@RestController
+@RequestMapping("/firehydrant")
+public class CenterdataTForestFirehydrantController extends BaseController {
+
+    @Autowired
+    private ICenterdataTForestFirehydrantService centerdataTForestFirehydrantService;
+
+    /**
+     * 查询消火栓列表
+     */
+    @ApiImplicitParams(value = {
+            @ApiImplicitParam(name = "id", value = "主键id", dataType = "String", required = false),
+            @ApiImplicitParam(name = "firehydrantType", value = "消火栓类型", dataType = "String", required = false),
+            @ApiImplicitParam(name = "name", value = "消火栓名称", dataType = "String", required = false),
+            @ApiImplicitParam(name = "longitude", value = "经度", dataType = "String", required = false),
+            @ApiImplicitParam(name = "latitude", value = "纬度", dataType = "String", required = false),
+            @ApiImplicitParam(name = "firehydrantAddress", value = "站址", dataType = "String", required = false),
+            @ApiImplicitParam(name = "firehydrantPerson", value = "联系人", dataType = "String", required = false),
+            @ApiImplicitParam(name = "firehydrantTel", value = "电话", dataType = "String", required = false),
+    })
+    @ApiOperation(value = "数据中心查询消火栓列表", notes = "数据中心查询消火栓列表")
+    @RequiresPermissions("forest:firehydrant:list")
+    @GetMapping("/list")
+    public TableDataInfo list(CenterdataTForestFirehydrant centerdataTForestFirehydrant) {
+        startPage();
+        List<CenterdataTForestFirehydrant> list = centerdataTForestFirehydrantService.selectCenterdataTForestFirehydrantList(centerdataTForestFirehydrant);
+        return getDataTable(list);
+    }
+
+    /**
+     * 数字林业远端调用
+     * 数字农业远端调用
+     * 数字环保远端调用
+     */
+    @ApiOperation(value = "远端调用查询消火栓列表", notes = "远端调用查询消火栓列表")
+    @PostMapping("/remotelist")
+    public R<List<CenterdataTForestFirehydrant>> remotelist(@RequestBody CenterdataTForestFirehydrant centerdataTForestFirehydrant) {
+        return R.ok(centerdataTForestFirehydrantService.selectCenterdataTForestFirehydrantList(centerdataTForestFirehydrant));
+    }
+
+    /**
+     * 导出消火栓列表
+     */
+    @ApiOperation(value = "数据中心导出消火栓列表", notes = "数据中心导出消火栓列表")
+    @RequiresPermissions("forest:firehydrant:export")
+    @Log(title = "消火栓", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, CenterdataTForestFirehydrant centerdataTForestFirehydrant) {
+        List<CenterdataTForestFirehydrant> list = centerdataTForestFirehydrantService.selectCenterdataTForestFirehydrantList(centerdataTForestFirehydrant);
+        ExcelUtil<CenterdataTForestFirehydrant> util = new ExcelUtil<>(CenterdataTForestFirehydrant.class);
+        util.exportExcel(response, list, "消火栓数据");
+    }
+
+    /**
+     * 获取消火栓详细信息
+     */
+    @ApiImplicitParams(value = {
+            @ApiImplicitParam(name = "id", value = "主键id", dataType = "String", required = true)
+    })
+    @ApiOperation(value = "数据中心获取消火栓详细信息", notes = "数据中心获取消火栓详细信息")
+    @RequiresPermissions("forest:firehydrant:query")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") String id) {
+        return AjaxResult.success(centerdataTForestFirehydrantService.selectCenterdataTForestFirehydrantById(id));
+    }
+
+    /**
+     * 新增消火栓
+     */
+    @ApiOperation(value = "数据中心获新增消火栓", notes = "数据中心获新增消火栓")
+    @RequiresPermissions("forest:firehydrant:add")
+    @Log(title = "消火栓", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@Validated @RequestBody CenterdataTForestFirehydrant centerdataTForestFirehydrant) {
+        int result = centerdataTForestFirehydrantService.insertCenterdataTForestFirehydrant(centerdataTForestFirehydrant);
+        DataProducerUtil.getInstance().publish(new ESVo(DocumentNameConstants.FOREST_FIREHYDRANT1, BusinessType.INSERT, JSON.toJSONString(centerdataTForestFirehydrant)));
+        return toAjax(result);
+    }
+
+    /**
+     * 修改消火栓
+     */
+    @ApiOperation(value = "数据中心修改消火栓", notes = "数据中心修改消火栓")
+    @RequiresPermissions("forest:firehydrant:edit")
+    @Log(title = "消火栓", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@Validated @RequestBody CenterdataTForestFirehydrant centerdataTForestFirehydrant) {
+        int result = centerdataTForestFirehydrantService.updateCenterdataTForestFirehydrant(centerdataTForestFirehydrant);
+        DataProducerUtil.getInstance().publish(new ESVo(DocumentNameConstants.FOREST_FIREHYDRANT1, BusinessType.UPDATE, JSON.toJSONString(centerdataTForestFirehydrant)));
+        return toAjax(result);
+    }
+
+    /**
+     * 删除消火栓
+     */
+    @ApiImplicitParams(value = {
+            @ApiImplicitParam(name = "ids", value = "主键id", dataType = "String[]", required = true)
+    })
+    @ApiOperation(value = "数据中心删除消火栓", notes = "数据中心删除消火栓")
+    @RequiresPermissions("forest:firehydrant:remove")
+    @Log(title = "消火栓", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable String[] ids) {
+        int result = centerdataTForestFirehydrantService.deleteCenterdataTForestFirehydrantByIds(ids);
+        List<String> idList = Arrays.asList(ids);
+        DataProducerUtil.getInstance().publish(new ESVo(DocumentNameConstants.FOREST_FIREHYDRANT1, BusinessType.DELETE, JSON.toJSONString(idList)));
+        return toAjax(result);
+    }
+
+    @ApiOperation(value = "远端调用查询消火栓数量按部门分组", notes = "远端调用查询消火栓数量按部门分组")
+    @PostMapping("/selectBigDataFirehydrantDeptCount")
+    public R selectBigDataFirehydrantDeptCount() {
+        CenterdataTForestFirehydrant centerdataTForestFirehydrant = new CenterdataTForestFirehydrant();
+        return R.ok(centerdataTForestFirehydrantService.selectBigDataFirehydrantDeptCount(centerdataTForestFirehydrant));
+    }
+}

+ 199 - 0
src/main/java/com/sooka/sponest/data/basicdata/controller/CenterdataTForestWatercraneController.java

@@ -0,0 +1,199 @@
+package com.sooka.sponest.data.basicdata.controller;
+
+import com.alibaba.fastjson.JSON;
+import com.ruoyi.common.core.constant.DocumentNameConstants;
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.web.controller.BaseController;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.web.page.TableDataInfo;
+import com.ruoyi.common.log.annotation.Log;
+import com.ruoyi.common.log.enums.BusinessType;
+import com.ruoyi.common.security.annotation.RequiresPermissions;
+import com.sooka.sponest.data.base.domain.ESVo;
+import com.sooka.sponest.data.basicdata.domain.CenterdataTForestWatercrane;
+import com.sooka.sponest.data.basicdata.service.ICenterdataTForestWatercraneService;
+import com.sooka.sponest.data.utils.DataProducerUtil;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+import springfox.documentation.annotations.ApiIgnore;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * 水鹤管理Controller
+ *
+ * @author ruoyi
+ * @date 2022-05-02
+ */
+@Api(tags = "数据中心林业水鹤控制器")
+@RestController
+@RequestMapping("/watercrane")
+public class CenterdataTForestWatercraneController extends BaseController {
+
+    @Autowired
+    private ICenterdataTForestWatercraneService centerdataTForestWatercraneService;
+
+    /**
+     * 查询水鹤管理列表
+     * 数据中心水鹤列表调用
+     */
+    @ApiImplicitParams(value = {
+            @ApiImplicitParam(name = "id", value = "主键id", dataType = "String", required = false),
+            @ApiImplicitParam(name = "name", value = "名称", dataType = "String", required = false),
+            @ApiImplicitParam(name = "longitude", value = "经度", dataType = "String", required = false),
+            @ApiImplicitParam(name = "latitude", value = "纬度", dataType = "String", required = false),
+            @ApiImplicitParam(name = "watercranePerson", value = "联系人", dataType = "String", required = false),
+            @ApiImplicitParam(name = "watercraneTel", value = "电话", dataType = "String", required = false)
+    })
+    @ApiOperation(value = "数据中心查询水鹤列表", notes = "数据中心查询水鹤列表")
+    @RequiresPermissions("forest:watercrane:list")
+    @GetMapping("/list")
+    public TableDataInfo list(CenterdataTForestWatercrane centerdataTForestWatercrane) {
+        startPage();
+        List<CenterdataTForestWatercrane> list = centerdataTForestWatercraneService.selectCenterdataTForestWatercraneList(centerdataTForestWatercrane);
+        return getDataTable(list);
+    }
+
+    /**
+     * 查询水鹤列表远端调用
+     * 数字农业远端调用
+     * 数字林业远端调用
+     * 数字环保远端调用
+     * 数字消防远端调用
+     */
+    @ApiImplicitParams(value = {
+            @ApiImplicitParam(name = "id", value = "主键id", dataType = "String", required = false, paramType = "body"),
+            @ApiImplicitParam(name = "name", value = "名称", dataType = "String", required = false, paramType = "body"),
+            @ApiImplicitParam(name = "longitude", value = "经度", dataType = "String", required = false, paramType = "body"),
+            @ApiImplicitParam(name = "latitude", value = "纬度", dataType = "String", required = false, paramType = "body"),
+            @ApiImplicitParam(name = "watercranePerson", value = "联系人", dataType = "String", required = false, paramType = "body"),
+            @ApiImplicitParam(name = "watercraneTel", value = "电话", dataType = "String", required = false, paramType = "body")
+    })
+    @ApiOperation(value = "查询水鹤列表远端调用", notes = "查询水鹤列表远端调用")
+    @PostMapping("/remotelist")
+    public R<List<CenterdataTForestWatercrane>> remotelist(@ApiIgnore @RequestBody CenterdataTForestWatercrane centerdataTForestWatercrane) {
+        return R.ok(centerdataTForestWatercraneService.selectCenterdataTForestWatercraneList(centerdataTForestWatercrane));
+    }
+
+    /**
+     * 导出水鹤管理列表
+     * 数据中心水鹤列表导出调用
+     */
+    @ApiImplicitParams(value = {
+            @ApiImplicitParam(name = "id", value = "主键id", dataType = "String", required = false),
+            @ApiImplicitParam(name = "name", value = "名称", dataType = "String", required = false),
+            @ApiImplicitParam(name = "longitude", value = "经度", dataType = "String", required = false),
+            @ApiImplicitParam(name = "latitude", value = "纬度", dataType = "String", required = false),
+            @ApiImplicitParam(name = "watercranePerson", value = "联系人", dataType = "String", required = false),
+            @ApiImplicitParam(name = "watercraneTel", value = "电话", dataType = "String", required = false)
+    })
+    @ApiOperation(value = "数据中心水鹤列表导出调用", notes = "数据中心水鹤列表导出调用")
+    @RequiresPermissions("forest:watercrane:export")
+    @Log(title = "水鹤管理", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, CenterdataTForestWatercrane centerdataTForestWatercrane) {
+        List<CenterdataTForestWatercrane> list = centerdataTForestWatercraneService.selectCenterdataTForestWatercraneList(centerdataTForestWatercrane);
+        ExcelUtil<CenterdataTForestWatercrane> util = new ExcelUtil<>(CenterdataTForestWatercrane.class);
+        util.exportExcel(response, list, "水鹤管理数据");
+    }
+
+    /**
+     * 获取水鹤管理详细信息
+     * 数据中心查询水鹤详情调用
+     */
+    @ApiImplicitParams(value = {
+            @ApiImplicitParam(name = "id", value = "主键id", dataType = "String", required = true)
+    })
+    @ApiOperation(value = "数据中心水鹤详细信息", notes = "数据中心水鹤详细信息")
+    @RequiresPermissions("forest:watercrane:query")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") String id) {
+        return AjaxResult.success(centerdataTForestWatercraneService.selectCenterdataTForestWatercraneById(id));
+    }
+
+    /**
+     * 新增水鹤管理
+     * 数据中心水鹤新增调用
+     */
+    @ApiImplicitParams(value = {
+            @ApiImplicitParam(name = "id", value = "主键id", dataType = "String", required = false, paramType = "body"),
+            @ApiImplicitParam(name = "name", value = "名称", dataType = "String", required = true, paramType = "body"),
+            @ApiImplicitParam(name = "longitude", value = "经度", dataType = "String", required = true, paramType = "body"),
+            @ApiImplicitParam(name = "latitude", value = "纬度", dataType = "String", required = true, paramType = "body"),
+            @ApiImplicitParam(name = "watercranePerson", value = "联系人", dataType = "String", required = true, paramType = "body"),
+            @ApiImplicitParam(name = "watercraneTel", value = "电话", dataType = "String", required = false, paramType = "body"),
+            @ApiImplicitParam(name = "deptId", value = "部门id", dataType = "String", required = true, paramType = "body"),
+            @ApiImplicitParam(name = "deptName", value = "部门名称", dataType = "Long", required = true, paramType = "body")
+    })
+    @ApiOperation(value = "数据中心水鹤新增", notes = "数据中心水鹤新增")
+    @RequiresPermissions("forest:watercrane:add")
+    @Log(title = "水鹤管理", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@ApiIgnore @Validated @RequestBody CenterdataTForestWatercrane centerdataTForestWatercrane) {
+        int result = centerdataTForestWatercraneService.insertCenterdataTForestWatercrane(centerdataTForestWatercrane);
+        DataProducerUtil.getInstance().publish(new ESVo(DocumentNameConstants.FOREST_WATERCRANE,BusinessType.INSERT, JSON.toJSONString(centerdataTForestWatercrane)));
+        return toAjax(result);
+    }
+
+    /**
+     * 修改水鹤管理
+     * 数据中心水鹤修改调用
+     */
+    @ApiImplicitParams(value = {
+            @ApiImplicitParam(name = "id", value = "主键id", dataType = "String", required = true, paramType = "body"),
+            @ApiImplicitParam(name = "watercraneName", value = "名称", dataType = "String", required = true, paramType = "body"),
+            @ApiImplicitParam(name = "longitude", value = "经度", dataType = "String", required = true, paramType = "body"),
+            @ApiImplicitParam(name = "latitude", value = "纬度", dataType = "String", required = true, paramType = "body"),
+            @ApiImplicitParam(name = "watercranePerson", value = "联系人", dataType = "String", required = true, paramType = "body"),
+            @ApiImplicitParam(name = "watercraneTel", value = "电话", dataType = "String", required = false, paramType = "body"),
+            @ApiImplicitParam(name = "deptId", value = "部门id", dataType = "String", required = true, paramType = "body"),
+            @ApiImplicitParam(name = "deptName", value = "部门名称", dataType = "Long", required = true, paramType = "body")
+    })
+    @ApiOperation(value = "数据中心水鹤修改", notes = "数据中心水鹤修改")
+    @RequiresPermissions("forest:watercrane:edit")
+    @Log(title = "水鹤管理", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@ApiIgnore @Validated @RequestBody CenterdataTForestWatercrane centerdataTForestWatercrane) {
+        int result = centerdataTForestWatercraneService.updateCenterdataTForestWatercrane(centerdataTForestWatercrane);
+        DataProducerUtil.getInstance().publish(new ESVo(DocumentNameConstants.FOREST_WATERCRANE,BusinessType.UPDATE, JSON.toJSONString(centerdataTForestWatercrane)));
+        return toAjax(result);
+    }
+
+    /**
+     * 删除水鹤管理
+     * 数据中心水鹤删除调用
+     */
+    @ApiImplicitParams(value = {
+            @ApiImplicitParam(name = "ids", value = "主键id", dataType = "String[]", required = true)
+    })
+    @ApiOperation(value = "数据中心水鹤删除", notes = "数据中心水鹤删除")
+    @RequiresPermissions("forest:watercrane:remove")
+    @Log(title = "水鹤管理", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable String[] ids) {
+        int result = centerdataTForestWatercraneService.deleteCenterdataTForestWatercraneByIds(ids);
+        List<String> idList = Arrays.asList(ids);
+        DataProducerUtil.getInstance().publish(new ESVo(DocumentNameConstants.FOREST_WATERCRANE,BusinessType.DELETE, JSON.toJSONString(idList)));
+        return toAjax(result);
+    }
+
+
+    /**
+     * 查询水鹤数量按部门分组
+     * 数字消防远端调用
+     */
+    @ApiOperation(value = "查询水鹤数量按部门分组", notes = "查询水鹤数量按部门分组")
+    @PostMapping("/selectBigDataWatercraneDeptCount")
+    public R selectBigDataWatercraneDeptCount() {
+        CenterdataTForestWatercrane centerdataTForestWatercrane = new CenterdataTForestWatercrane();
+        return R.ok(centerdataTForestWatercraneService.selectBigDataWatercraneDeptCount(centerdataTForestWatercrane));
+    }
+}

+ 200 - 0
src/main/java/com/sooka/sponest/data/basicdata/controller/CenterdataTForestWaterintakeController.java

@@ -0,0 +1,200 @@
+package com.sooka.sponest.data.basicdata.controller;
+
+import com.alibaba.fastjson.JSON;
+import com.ruoyi.common.core.constant.DocumentNameConstants;
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.web.controller.BaseController;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.web.page.TableDataInfo;
+import com.ruoyi.common.log.annotation.Log;
+import com.ruoyi.common.log.enums.BusinessType;
+import com.ruoyi.common.security.annotation.RequiresPermissions;
+import com.sooka.sponest.data.base.domain.ESVo;
+import com.sooka.sponest.data.basicdata.domain.CenterdataTForestWaterintake;
+import com.sooka.sponest.data.basicdata.service.ICenterdataTForestWaterintakeService;
+import com.sooka.sponest.data.utils.DataProducerUtil;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+import springfox.documentation.annotations.ApiIgnore;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * 取水口(同四平平台)Controller
+ *
+ * @author ruoyi
+ * @date 2022-05-03
+ */
+@Api(tags = "数据中心林业取水口控制器")
+@RestController
+@RequestMapping("/waterintake")
+public class CenterdataTForestWaterintakeController extends BaseController {
+
+    @Autowired
+    private ICenterdataTForestWaterintakeService centerdataTForestWaterintakeService;
+
+    /**
+     * 查询取水口(同四平平台)列表
+     * 数据中心取水口列表调用
+     */
+    @ApiImplicitParams(value = {
+            @ApiImplicitParam(name = "id", value = "主键id", dataType = "String", required = false),
+            @ApiImplicitParam(name = "name", value = "名称", dataType = "String", required = false),
+            @ApiImplicitParam(name = "longitude", value = "经度", dataType = "String", required = false),
+            @ApiImplicitParam(name = "latitude", value = "纬度", dataType = "String", required = false),
+            @ApiImplicitParam(name = "waterintakePerson", value = "联系人", dataType = "String", required = false),
+            @ApiImplicitParam(name = "waterintakeTel", value = "电话", dataType = "String", required = false)
+    })
+    @ApiOperation(value = "数据中心查询取水口列表", notes = "数据中心查询取水口列表")
+    @RequiresPermissions("forest:waterintake:list")
+    @GetMapping("/list")
+    public TableDataInfo list(CenterdataTForestWaterintake centerdataTForestWaterintake) {
+        startPage();
+        List<CenterdataTForestWaterintake> list = centerdataTForestWaterintakeService.selectCenterdataTForestWaterintakeList(centerdataTForestWaterintake);
+        return getDataTable(list);
+    }
+
+    /**
+     * 数据中心取水口列表调用
+     * 数字农业远端调用
+     * 数字林业远端调用
+     * 数字环保远端调用
+     * 数字消防远端调用
+     */
+    @ApiImplicitParams(value = {
+            @ApiImplicitParam(name = "deptId", value = "部门id", dataType = "Long", required = true, paramType = "body")
+    })
+    @ApiOperation(value = "查询取水口列表远端调用", notes = "查询取水口列表远端调用")
+    @PostMapping("/remotelist")
+    public R<List<CenterdataTForestWaterintake>> remotelist(@ApiIgnore @RequestBody CenterdataTForestWaterintake centerdataTForestWaterintake) {
+        return R.ok(centerdataTForestWaterintakeService.selectCenterdataTForestWaterintakeList(centerdataTForestWaterintake));
+    }
+
+    /**
+     * 导出取水口(同四平平台)列表
+     * 数据中心取水口导出调用
+     */
+    @ApiImplicitParams(value = {
+            @ApiImplicitParam(name = "id", value = "主键id", dataType = "String", required = false),
+            @ApiImplicitParam(name = "name", value = "名称", dataType = "String", required = false),
+            @ApiImplicitParam(name = "longitude", value = "经度", dataType = "String", required = false),
+            @ApiImplicitParam(name = "latitude", value = "纬度", dataType = "String", required = false),
+            @ApiImplicitParam(name = "waterintakePerson", value = "联系人", dataType = "String", required = false),
+            @ApiImplicitParam(name = "waterintakeTel", value = "电话", dataType = "String", required = false)
+    })
+    @ApiOperation(value = "数据中心取水口导出", notes = "数据中心取水口导出")
+    @RequiresPermissions("forest:waterintake:export")
+    @Log(title = "取水口(同四平平台)", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, CenterdataTForestWaterintake centerdataTForestWaterintake) {
+        List<CenterdataTForestWaterintake> list = centerdataTForestWaterintakeService.selectCenterdataTForestWaterintakeList(centerdataTForestWaterintake);
+        ExcelUtil<CenterdataTForestWaterintake> util = new ExcelUtil<>(CenterdataTForestWaterintake.class);
+        util.exportExcel(response, list, "取水口(同四平平台)数据");
+    }
+
+    /**
+     * 获取取水口(同四平平台)详细信息
+     * 数据中心取水口详情调用
+     */
+    @ApiImplicitParams(value = {
+            @ApiImplicitParam(name = "id", value = "主键id", dataType = "String", required = true)
+    })
+    @ApiOperation(value = "数据中心取水口详细信息", notes = "数据中心取水口详细信息")
+    @RequiresPermissions("forest:waterintake:query")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") String id) {
+        return AjaxResult.success(centerdataTForestWaterintakeService.selectCenterdataTForestWaterintakeById(id));
+    }
+
+    /**
+     * 新增取水口(同四平平台)
+     * 数据中心取水口新增调用
+     */
+    @ApiImplicitParams(value = {
+            @ApiImplicitParam(name = "id", value = "主键id", dataType = "String", required = false, paramType = "body"),
+            @ApiImplicitParam(name = "name", value = "名称", dataType = "String", required = true, paramType = "body"),
+            @ApiImplicitParam(name = "longitude", value = "经度", dataType = "String", required = true, paramType = "body"),
+            @ApiImplicitParam(name = "latitude", value = "纬度", dataType = "String", required = true, paramType = "body"),
+            @ApiImplicitParam(name = "waterintakePerson", value = "联系人", dataType = "String", required = true, paramType = "body"),
+            @ApiImplicitParam(name = "waterintakeTel", value = "电话", dataType = "String", required = false, paramType = "body"),
+            @ApiImplicitParam(name = "deptId", value = "部门id", dataType = "Long", required = true, paramType = "body"),
+            @ApiImplicitParam(name = "deptName", value = "部门名称", dataType = "String", required = true, paramType = "body")
+    })
+    @ApiOperation(value = "数据中心新增取水口", notes = "数据中心新增取水口")
+    @RequiresPermissions("forest:waterintake:add")
+    @Log(title = "取水口(同四平平台)", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@ApiIgnore @Validated @RequestBody CenterdataTForestWaterintake centerdataTForestWaterintake) {
+         int result = centerdataTForestWaterintakeService.insertCenterdataTForestWaterintake(centerdataTForestWaterintake);
+        DataProducerUtil.getInstance().publish(new ESVo(DocumentNameConstants.FOREST_WATERINTAKE, BusinessType.INSERT, JSON.toJSONString(centerdataTForestWaterintake)));
+        return toAjax(result);
+    }
+
+    @ApiOperation(value = "数据中心新增取水口", notes = "数据中心新增取水口")
+    @Log(title = "取水口(同四平平台)", businessType = BusinessType.INSERT)
+    @PostMapping("/insert")
+    public AjaxResult insert(@ApiIgnore @Validated @RequestBody CenterdataTForestWaterintake centerdataTForestWaterintake) {
+        return toAjax(centerdataTForestWaterintakeService.insertCenterdataTForestWaterintake(centerdataTForestWaterintake));
+    }
+
+    /**
+     * 修改取水口(同四平平台)
+     * 数据中心取水口修改调用
+     */
+    @ApiImplicitParams(value = {
+            @ApiImplicitParam(name = "id", value = "主键id", dataType = "String", required = true, paramType = "body"),
+            @ApiImplicitParam(name = "waterintakeName", value = "名称", dataType = "String", required = true, paramType = "body"),
+            @ApiImplicitParam(name = "longitude", value = "经度", dataType = "String", required = true, paramType = "body"),
+            @ApiImplicitParam(name = "latitude", value = "纬度", dataType = "String", required = true, paramType = "body"),
+            @ApiImplicitParam(name = "waterintakePerson", value = "联系人", dataType = "String", required = true, paramType = "body"),
+            @ApiImplicitParam(name = "waterintakeTel", value = "电话", dataType = "String", required = false, paramType = "body"),
+            @ApiImplicitParam(name = "deptId", value = "部门id", dataType = "Long", required = true, paramType = "body"),
+            @ApiImplicitParam(name = "deptName", value = "部门名称", dataType = "String", required = true, paramType = "body")
+    })
+    @ApiOperation(value = "数据中心修改取水口", notes = "数据中心修改取水口")
+    @RequiresPermissions("forest:waterintake:edit")
+    @Log(title = "取水口(同四平平台)", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@ApiIgnore @RequestBody CenterdataTForestWaterintake centerdataTForestWaterintake) {
+        int result = centerdataTForestWaterintakeService.updateCenterdataTForestWaterintake(centerdataTForestWaterintake);
+        DataProducerUtil.getInstance().publish(new ESVo(DocumentNameConstants.FOREST_WATERINTAKE, BusinessType.UPDATE, JSON.toJSONString(centerdataTForestWaterintake)));
+        return toAjax(result);
+    }
+
+    /**
+     * 删除取水口(同四平平台)
+     * 数据中心取水口删除调用
+     */
+    @ApiImplicitParams(value = {
+            @ApiImplicitParam(name = "ids", value = "主键id", dataType = "String[]", required = true)
+    })
+    @ApiOperation(value = "数据中心删除取水口", notes = "数据中心删除取水口")
+    @RequiresPermissions("forest:waterintake:remove")
+    @Log(title = "取水口(同四平平台)", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable String[] ids) {
+        int result = centerdataTForestWaterintakeService.deleteCenterdataTForestWaterintakeByIds(ids);
+        List<String> idList = Arrays.asList(ids);
+        DataProducerUtil.getInstance().publish(new ESVo(DocumentNameConstants.FOREST_WATERINTAKE,BusinessType.DELETE, JSON.toJSONString(idList)));
+        return toAjax(result);
+    }
+
+    /**
+     * 查询取水口数量按部门分组远端调用
+     * 数字消防远端调用
+     */
+    @ApiOperation(value = "查询取水口数量按部门分组远端调用", notes = "查询取水口数量按部门分组远端调用")
+    @PostMapping("/selectBigDataWaterintakeDeptCount")
+    public R selectBigDataWaterintakeDeptCount() {
+        CenterdataTForestWaterintake centerdataTForestWaterintake = new CenterdataTForestWaterintake();
+        return R.ok(centerdataTForestWaterintakeService.selectBigDataWaterintakeDeptCount(centerdataTForestWaterintake));
+    }
+}

+ 195 - 0
src/main/java/com/sooka/sponest/data/basicdata/domain/CenterdataTForestCar.java

@@ -0,0 +1,195 @@
+package com.sooka.sponest.data.basicdata.domain;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.common.core.annotation.Excel;
+import com.sooka.sponest.data.base.domain.BaseBusinessEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.util.Date;
+
+/**
+ * 车辆管理对象 centerdata_t_forest_car
+ *
+ * @author ruoyi
+ * @date 2022-05-04
+ */
+@ApiModel(description = "数据中心车辆管理实体类对象")
+@Data
+public class CenterdataTForestCar extends BaseBusinessEntity {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @ApiModelProperty(value = "主键id")
+    private String id;
+
+    /**
+     * 数据状态(1-可用 2-不可用 )
+     */
+    private String dataStatus;
+
+    /**
+     * 数据所属部门(政或党的id)
+     */
+    private Long dataDeptId;
+
+    /**
+     * 车牌号
+     */
+    @ApiModelProperty(value = "车牌号", required = true)
+    @Excel(name = "车牌号")
+    @NotBlank(message = "车牌号不能为空")
+    private String licenseNum;
+
+    /**
+     * 大架号
+     */
+    @ApiModelProperty(value = "大架号", required = true)
+    @Excel(name = "大架号")
+    @NotBlank(message = "大架号不能为空")
+    private String engineNumber;
+
+    /**
+     * 品牌ID(字典)
+     */
+    @ApiModelProperty(value = "品牌ID(字典)", required = true)
+    @Excel(name = "品牌", dictType = "forest_car_brand")
+    @NotBlank(message = "品牌不能为空")
+    private String forestBrand;
+
+    private String forestBrandLabel;
+
+
+    @ApiModelProperty(value = "区域类型", required = false)
+    private String areaType;
+
+    private String areaTypeLabel;
+
+    /**
+     * 类型ID(字典)
+     */
+    @ApiModelProperty(value = "类型ID", required = true)
+    @Excel(name = "类型", dictType = "forest_car_type")
+    @NotBlank(message = "类型不能为空")
+    private String forestType;
+
+    private String forestTypeLabel;
+
+    /**
+     * 载重
+     */
+    @ApiModelProperty(value = "载重", required = true)
+    @Excel(name = "载重")
+    @NotBlank(message = "载重不能为空")
+    private String loadweight;
+
+    /**
+     * 当前司机ID
+     */
+    @ApiModelProperty(value = "司机", required = true)
+    @Excel(name = "当前司机")
+    @NotBlank(message = "司机不能为空")
+    private String driverId;
+
+    /**
+     * 核载人数
+     */
+    @ApiModelProperty(value = "核载人数", required = true)
+    @Excel(name = "核载人数")
+    @NotNull(message = "核载人数不能为空")
+    private Long loadingNum;
+
+    /**
+     * 车辆状态(未用-使用-报废)-字典
+     */
+    @ApiModelProperty(value = "车辆状态", required = true)
+    @Excel(name = "车辆状态", dictType = "forest_car_status")
+    @NotBlank(message = "车辆状态不能为空")
+    private String carStatus;
+
+    private String carStatusLabel;
+
+    /**
+     * 采购日期
+     */
+    @ApiModelProperty(value = "采购日期", required = true)
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "采购日期", width = 30, dateFormat = "yyyy-MM-dd")
+    @NotNull(message = "采购日期不能为空")
+    private Date purchaseDate;
+
+    /**
+     * 保养周期
+     */
+    @ApiModelProperty(value = "保养周期", required = true)
+    @Excel(name = "保养周期")
+    @NotNull(message = "保养周期不能为空")
+    private Long maintenance;
+
+    /**
+     * 下次保养日期
+     */
+    @ApiModelProperty(value = "下次保养日期", required = true)
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "下次保养日期", width = 30, dateFormat = "yyyy-MM-dd")
+    @NotNull(message = "下次保养日期不能为空")
+    private Date nextMaintenance;
+
+    /**
+     * 所属部门id
+     */
+    @ApiModelProperty(value = "所属部门id", required = true)
+    @NotNull(message = "部门名称不能为空")
+    private Long deptId;
+
+    /**
+     * 所属部门名称
+     */
+    @ApiModelProperty(value = "所属部门名称")
+    @Excel(name = "所属部门")
+    private String deptName;
+
+    private String message;
+
+    public String getMessage() {
+        return message;
+    }
+
+    public void setMessage(String message) {
+        this.message = message;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
+                .append("id", getId())
+                .append("createBy", getCreateBy())
+                .append("createTime", getCreateTime())
+                .append("updateBy", getUpdateBy())
+                .append("updateTime", getUpdateTime())
+                .append("dataStatus", getDataStatus())
+                .append("dataDeptId", getDataDeptId())
+                .append("licenseNum", getLicenseNum())
+                .append("engineNumber", getEngineNumber())
+                .append("forestBrand", getForestBrand())
+                .append("forestType", getForestType())
+                .append("loadweight", getLoadweight())
+                .append("driverId", getDriverId())
+                .append("loadingNum", getLoadingNum())
+                .append("carStatus", getCarStatus())
+                .append("purchaseDate", getPurchaseDate())
+                .append("maintenance", getMaintenance())
+                .append("nextMaintenance", getNextMaintenance())
+                .append("deptId", getDeptId())
+                .append("deptName", getDeptName())
+                .toString();
+    }
+}

+ 197 - 0
src/main/java/com/sooka/sponest/data/basicdata/domain/CenterdataTForestCarrepair.java

@@ -0,0 +1,197 @@
+package com.sooka.sponest.data.basicdata.domain;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.common.core.annotation.Excel;
+import com.sooka.sponest.data.base.domain.BaseBusinessEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 车辆维修保养记录对象 centerdata_t_forest_carrepair
+ *
+ * @author ruoyi
+ * @date 2022-05-04
+ */
+@ApiModel(description = "数据中心车辆维修保养记录实体类对象")
+public class CenterdataTForestCarrepair extends BaseBusinessEntity {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @ApiModelProperty(value = "主键id", required = false)
+    private String id;
+
+    /**
+     * 数据状态(1-可用 2-不可用 )
+     */
+//    @Excel(name = "数据状态(1-可用 2-不可用 )")
+    private String dataStatus;
+
+    /**
+     * 维修车辆ID
+     */
+    @ApiModelProperty(value = "维修车辆ID", required = false)
+
+//    @Excel(name = "维修车辆ID")
+    private String carId;
+
+    /**
+     * 维修车牌号
+     */
+    @ApiModelProperty(value = "维修车牌号", required = false)
+    @Excel(name = "维修车牌号")
+    @NotBlank(message = "车牌不能为空")
+    private String licenseNum;
+
+    /**
+     * 维修时间
+     */
+    @ApiModelProperty(value = "维修时间", required = false)
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "维修时间", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date repairTime;
+
+    /**
+     * 费用
+     */
+    @ApiModelProperty(value = "费用", required = false)
+    @Excel(name = "费用")
+    @NotNull(message = "费用不能为空")
+    private BigDecimal cost;
+
+    /**
+     * 负责人
+     */
+    @ApiModelProperty(value = "负责人", required = false)
+    @Excel(name = "负责人")
+    @NotBlank(message = "负责人不能为空")
+    private String charger;
+
+    /**
+     * 备注
+     */
+    @ApiModelProperty(value = "备注", required = false)
+    @Excel(name = "备注")
+    private String remarks;
+
+    /**
+     * 所属部门
+     */
+    @ApiModelProperty(value = "部门id", required = false)
+
+    private Long deptId;
+    @ApiModelProperty(value = "所属部门", required = false)
+
+    @Excel(name = "所属部门")
+    @NotBlank(message = "所属部门不能为空")
+    private String deptName;
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public String getId() {
+        return id;
+    }
+
+    public void setDataStatus(String dataStatus) {
+        this.dataStatus = dataStatus;
+    }
+
+    public String getDataStatus() {
+        return dataStatus;
+    }
+
+    public void setCarId(String carId) {
+        this.carId = carId;
+    }
+
+    public String getCarId() {
+        return carId;
+    }
+
+    public void setLicenseNum(String licenseNum) {
+        this.licenseNum = licenseNum;
+    }
+
+    public String getLicenseNum() {
+        return licenseNum;
+    }
+
+    public void setRepairTime(Date repairTime) {
+        this.repairTime = repairTime;
+    }
+
+    public Date getRepairTime() {
+        return repairTime;
+    }
+
+    public void setCost(BigDecimal cost) {
+        this.cost = cost;
+    }
+
+    public BigDecimal getCost() {
+        return cost;
+    }
+
+    public void setCharger(String charger) {
+        this.charger = charger;
+    }
+
+    public String getCharger() {
+        return charger;
+    }
+
+    public void setRemarks(String remarks) {
+        this.remarks = remarks;
+    }
+
+    public String getRemarks() {
+        return remarks;
+    }
+
+    public Long getDeptId() {
+        return deptId;
+    }
+
+    public void setDeptId(Long deptId) {
+        this.deptId = deptId;
+    }
+
+    public String getDeptName() {
+        return deptName;
+    }
+
+    public void setDeptName(String deptName) {
+        this.deptName = deptName;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
+                .append("id", getId())
+                .append("dataStatus", getDataStatus())
+                .append("createBy", getCreateBy())
+                .append("createTime", getCreateTime())
+                .append("updateBy", getUpdateBy())
+                .append("updateTime", getUpdateTime())
+                .append("carId", getCarId())
+                .append("licenseNum", getLicenseNum())
+                .append("repairTime", getRepairTime())
+                .append("cost", getCost())
+                .append("charger", getCharger())
+                .append("remarks", getRemarks())
+                .append("deptId", getDeptId())
+                .append("deptName", getDeptName())
+                .toString();
+    }
+}

+ 251 - 0
src/main/java/com/sooka/sponest/data/basicdata/domain/CenterdataTForestFirehydrant.java

@@ -0,0 +1,251 @@
+package com.sooka.sponest.data.basicdata.domain;
+
+
+import com.ruoyi.common.core.annotation.Excel;
+import com.sooka.sponest.data.base.domain.BaseBusinessEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+import javax.validation.constraints.NotBlank;
+import java.util.List;
+
+/**
+ * 消火栓对象 centerdata_t_forest_firehydrant
+ *
+ * @author ruoyi
+ * @date 2022-05-03
+ */
+@ApiModel(description = "数据中心消火栓实体类对象")
+public class CenterdataTForestFirehydrant extends BaseBusinessEntity {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @ApiModelProperty(value = "主键id", required = false)
+    private String id;
+
+    /**
+     * 消火栓类型
+     */
+    @ApiModelProperty(value = "消火栓类型", required = false)
+    @Excel(name = "消火栓类型",dictType = "firehydrant")
+    @NotBlank(message = "消火栓类型不能为空")
+    private String firehydrantType;
+
+    private String firehydrantTypeLabel;
+
+    /**
+     * 消火栓名称
+     */
+    @ApiModelProperty(value = "消火栓名称", required = false)
+    @Excel(name = "消火栓名称")
+    @NotBlank(message = "消火栓名称不能为空")
+    private String name;
+
+    /**
+     * 经度
+     */
+    @ApiModelProperty(value = "经度", required = false)
+    @Excel(name = "经度")
+    @NotBlank(message = "经度不能为空")
+    private String longitude;
+
+    /**
+     * 纬度
+     */
+    @ApiModelProperty(value = "纬度", required = false)
+    @Excel(name = "纬度")
+    @NotBlank(message = "纬度不能为空")
+    private String latitude;
+
+    /**
+     * 站址
+     */
+    @ApiModelProperty(value = "站址", required = false)
+    @Excel(name = "站址")
+    @NotBlank(message = "站址不能为空")
+    private String firehydrantAddress;
+
+    /**
+     * 联系人
+     */
+    @ApiModelProperty(value = "联系人", required = false)
+    @Excel(name = "联系人")
+    @NotBlank(message = "联系人不能为空")
+    private String firehydrantPerson;
+
+    /**
+     * 电话
+     */
+    @ApiModelProperty(value = "电话", required = false)
+    @Excel(name = "电话")
+    @NotBlank(message = "电话不能为空")
+    private String firehydrantTel;
+
+    /**
+     * 部门id
+     */
+//    @Excel(name = "部门id")
+    @ApiModelProperty(value = "部门id", required = false)
+    private Long deptId;
+
+    /**
+     * 所属部门
+     */
+    @ApiModelProperty(value = "所属部门", required = false)
+    @Excel(name = "所属部门")
+    @NotBlank(message = "部门名称不能为空")
+    private String deptName;
+
+    /**
+     * 数据状态(1-可用 2-不可用 ) - 字典
+     */
+//    @Excel(name = "数据状态(1-可用 2-不可用 ) - 字典")
+    private String dataStatus;
+
+    /**
+     * 数据所属部门(政或党的id)
+     */
+//    @Excel(name = "数据所属部门(政或党的id)")
+    private Long dataDeptId;
+
+    private List<String> deviceList;
+
+    public List<String> getDeviceList() {
+        return deviceList;
+    }
+
+    public void setDeviceList(List<String> deviceList) {
+        this.deviceList = deviceList;
+    }
+
+    public String getFirehydrantTypeLabel() {
+        return firehydrantTypeLabel;
+    }
+
+    public void setFirehydrantTypeLabel(String firehydrantTypeLabel) {
+        this.firehydrantTypeLabel = firehydrantTypeLabel;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public String getId() {
+        return id;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public void setFirehydrantType(String firehydrantType) {
+        this.firehydrantType = firehydrantType;
+    }
+
+    public String getName() {
+        return name;
+    }
+    public String getFirehydrantType() {
+        return firehydrantType;
+    }
+    public void setLongitude(String longitude) {
+        this.longitude = longitude;
+    }
+
+    public String getLongitude() {
+        return longitude;
+    }
+
+    public void setLatitude(String latitude) {
+        this.latitude = latitude;
+    }
+
+    public String getLatitude() {
+        return latitude;
+    }
+
+    public void setFirehydrantAddress(String firehydrantAddress) {
+        this.firehydrantAddress = firehydrantAddress;
+    }
+
+    public String getFirehydrantAddress() {
+        return firehydrantAddress;
+    }
+
+    public void setFirehydrantPerson(String firehydrantPerson) {
+        this.firehydrantPerson = firehydrantPerson;
+    }
+
+    public String getFirehydrantPerson() {
+        return firehydrantPerson;
+    }
+
+    public void setFirehydrantTel(String firehydrantTel) {
+        this.firehydrantTel = firehydrantTel;
+    }
+
+    public String getFirehydrantTel() {
+        return firehydrantTel;
+    }
+
+    public void setDeptId(Long deptId) {
+        this.deptId = deptId;
+    }
+
+    public Long getDeptId() {
+        return deptId;
+    }
+
+    public void setDeptName(String deptName) {
+        this.deptName = deptName;
+    }
+
+    public String getDeptName() {
+        return deptName;
+    }
+
+    public void setDataStatus(String dataStatus) {
+        this.dataStatus = dataStatus;
+    }
+
+    public String getDataStatus() {
+        return dataStatus;
+    }
+
+    @Override
+    public void setDataDeptId(Long dataDeptId) {
+        this.dataDeptId = dataDeptId;
+    }
+
+    @Override
+    public Long getDataDeptId() {
+        return dataDeptId;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
+                .append("id", getId())
+                .append("name", getName())
+                .append("firehydrantType", getFirehydrantType())
+                .append("longitude", getLongitude())
+                .append("latitude", getLatitude())
+                .append("firehydrantAddress", getFirehydrantAddress())
+                .append("firehydrantPerson", getFirehydrantPerson())
+                .append("firehydrantTel", getFirehydrantTel())
+                .append("deptId", getDeptId())
+                .append("deptName", getDeptName())
+                .append("createBy", getCreateBy())
+                .append("createTime", getCreateTime())
+                .append("updateBy", getUpdateBy())
+                .append("updateTime", getUpdateTime())
+                .append("dataStatus", getDataStatus())
+                .append("dataDeptId", getDataDeptId())
+                .toString();
+    }
+}

+ 122 - 0
src/main/java/com/sooka/sponest/data/basicdata/domain/CenterdataTForestWatercrane.java

@@ -0,0 +1,122 @@
+package com.sooka.sponest.data.basicdata.domain;
+
+import com.ruoyi.common.core.annotation.Excel;
+import com.sooka.sponest.data.base.domain.BaseBusinessEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+import javax.validation.constraints.NotBlank;
+import java.util.List;
+
+/**
+ * 水鹤管理对象 centerdata_t_forest_watercrane
+ *
+ * @author ruoyi
+ * @date 2022-05-02
+ */
+@Data
+@ApiModel(description = "数据中心水鹤实体类对象")
+public class CenterdataTForestWatercrane extends BaseBusinessEntity {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @ApiModelProperty(value = "主键id", required = false)
+    private String id;
+
+    /**
+     * 名称
+     */
+    @ApiModelProperty(value = "名称", required = false)
+    @Excel(name = "名称")
+    @NotBlank(message = "名称不能为空")
+    private String name;
+
+    /**
+     * 经度
+     */
+    @ApiModelProperty(value = "经度", required = false)
+    @Excel(name = "经度")
+    @NotBlank(message = "经度不能为空")
+    private String longitude;
+
+    /**
+     * 纬度
+     */
+    @ApiModelProperty(value = "纬度", required = false)
+    @Excel(name = "纬度")
+    @NotBlank(message = "纬度不能为空")
+    private String latitude;
+
+    /**
+     * 联系人
+     */
+    @ApiModelProperty(value = "联系人", required = false)
+    @Excel(name = "联系人")
+    @NotBlank(message = "联系人不能为空")
+    private String watercranePerson;
+
+    /**
+     * 电话
+     */
+    @ApiModelProperty(value = "电话", required = false)
+    @Excel(name = "电话")
+    @NotBlank(message = "电话不能为空")
+    private String watercraneTel;
+
+    /**
+     * 数据状态(1-可用 2-不可用 ) - 字典
+     */
+//    @Excel(name = "数据状态(1-可用 2-不可用 ) - 字典")
+    private String dataStatus;
+
+    /**
+     * 所属部门
+     */
+    @ApiModelProperty(value = "部门id", required = false)
+    private Long deptId;
+
+    @ApiModelProperty(value = "所属部门", required = false)
+    @Excel(name = "所属部门")
+    @NotBlank(message = "所属部门不能为空")
+    private String deptName;
+
+    /**
+     * 具体位置
+     */
+    @ApiModelProperty(value = "具体位置", required = false)
+    @Excel(name = "具体位置")
+    private String specificLocation;
+
+
+
+    /**
+     * 设备中间表主键
+     */
+    private List<String> deviceList;
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
+                .append("id", getId())
+                .append("name", getName())
+                .append("longitude", getLongitude())
+                .append("latitude", getLatitude())
+                .append("watercranePerson", getWatercranePerson())
+                .append("watercraneTel", getWatercraneTel())
+                .append("createBy", getCreateBy())
+                .append("createTime", getCreateTime())
+                .append("updateBy", getUpdateBy())
+                .append("updateTime", getUpdateTime())
+                .append("dataStatus", getDataStatus())
+                .append("deptId", getDeptId())
+                .append("deptName", getDeptName())
+                .append("specificLocation", getSpecificLocation())
+                .toString();
+    }
+}

+ 211 - 0
src/main/java/com/sooka/sponest/data/basicdata/domain/CenterdataTForestWaterintake.java

@@ -0,0 +1,211 @@
+package com.sooka.sponest.data.basicdata.domain;
+
+import com.ruoyi.common.core.annotation.Excel;
+import com.sooka.sponest.data.base.domain.BaseBusinessEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+import javax.validation.constraints.NotBlank;
+import java.util.List;
+
+/**
+ * 取水口(同四平平台)对象 centerdata_t_forest_waterintake
+ *
+ * @author ruoyi
+ * @date 2022-05-03
+ */
+@ApiModel(description = "数据中心取水口实体类对象")
+public class CenterdataTForestWaterintake extends BaseBusinessEntity {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @ApiModelProperty(value = "主键id", required = false)
+    private String id;
+
+    /**
+     * 名称
+     */
+    @ApiModelProperty(value = "名称", required = false)
+    @Excel(name = "名称")
+    @NotBlank(message = "名称不能为空")
+    private String name;
+
+    /**
+     * 经度
+     */
+    @ApiModelProperty(value = "经度", required = false)
+    @Excel(name = "经度")
+    @NotBlank(message = "经度不能为空")
+    private String longitude;
+
+    /**
+     * 纬度
+     */
+    @ApiModelProperty(value = "纬度", required = false)
+    @Excel(name = "纬度")
+    @NotBlank(message = "纬度不能为空")
+    private String latitude;
+
+    /**
+     * 联系人
+     */
+    @ApiModelProperty(value = "联系人", required = false)
+    @Excel(name = "联系人")
+    @NotBlank(message = "联系人不能为空")
+    private String waterintakePerson;
+
+    /**
+     * 电话
+     */
+    @ApiModelProperty(value = "电话", required = false)
+    @Excel(name = "电话")
+    private String waterintakeTel;
+
+    /**
+     * 数据状态(1-可用 2-不可用 ) - 字典
+     */
+//    @Excel(name = "数据状态(1-可用 2-不可用 ) - 字典")
+    private String dataStatus;
+
+    /**
+     * 所属部门
+     */
+    @ApiModelProperty(value = "部门id", required = false)
+
+    private Long deptId;
+    @ApiModelProperty(value = "所属部门", required = false)
+
+    @Excel(name = "所属部门")
+    @NotBlank(message = "所属部门不能为空")
+    private String deptName;
+
+
+    public String getSpecificLocation() {
+        return specificLocation;
+    }
+
+    public void setSpecificLocation(String specificLocation) {
+        this.specificLocation = specificLocation;
+    }
+
+    /**
+     * 具体位置
+     */
+    @ApiModelProperty(value = "具体位置", required = false)
+    @Excel(name = "具体位置")
+    private String specificLocation;
+
+
+    /**
+     * 设备中间表主键
+     */
+    private List<String> deviceList;
+
+    public List<String> getDeviceList() {
+        return deviceList;
+    }
+
+    public void setDeviceList(List<String> deviceList) {
+        this.deviceList = deviceList;
+    }
+
+
+
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public String getId() {
+        return id;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setLongitude(String longitude) {
+        this.longitude = longitude;
+    }
+
+    public String getLongitude() {
+        return longitude;
+    }
+
+    public void setLatitude(String latitude) {
+        this.latitude = latitude;
+    }
+
+    public String getLatitude() {
+        return latitude;
+    }
+
+    public void setWaterintakePerson(String waterintakePerson) {
+        this.waterintakePerson = waterintakePerson;
+    }
+
+    public String getWaterintakePerson() {
+        return waterintakePerson;
+    }
+
+    public void setWaterintakeTel(String waterintakeTel) {
+        this.waterintakeTel = waterintakeTel;
+    }
+
+    public String getWaterintakeTel() {
+        return waterintakeTel;
+    }
+
+    public void setDataStatus(String dataStatus) {
+        this.dataStatus = dataStatus;
+    }
+
+    public String getDataStatus() {
+        return dataStatus;
+    }
+
+    public Long getDeptId() {
+        return deptId;
+    }
+
+    public void setDeptId(Long deptId) {
+        this.deptId = deptId;
+    }
+
+    public String getDeptName() {
+        return deptName;
+    }
+
+    public void setDeptName(String deptName) {
+        this.deptName = deptName;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
+                .append("id", getId())
+                .append("name", getName())
+                .append("longitude", getLongitude())
+                .append("latitude", getLatitude())
+                .append("waterintakePerson", getWaterintakePerson())
+                .append("waterintakeTel", getWaterintakeTel())
+                .append("createBy", getCreateBy())
+                .append("createTime", getCreateTime())
+                .append("updateBy", getUpdateBy())
+                .append("updateTime", getUpdateTime())
+                .append("dataStatus", getDataStatus())
+                .append("deptId", getDeptId())
+                .append("deptName", getDeptName())
+                .append("specificLocation", getSpecificLocation())
+                .toString();
+    }
+}

+ 60 - 0
src/main/java/com/sooka/sponest/data/basicdata/mapper/CenterdataTForestCarMapper.java

@@ -0,0 +1,60 @@
+package com.sooka.sponest.data.basicdata.mapper;
+
+import com.sooka.sponest.data.basicdata.domain.CenterdataTForestCar;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 车辆管理Mapper接口
+ *
+ * @author ruoyi
+ * @date 2022-05-04
+ */
+public interface CenterdataTForestCarMapper {
+
+    /**
+     * 查询车辆管理列表
+     *
+     * @param centerdataTForestCar 车辆管理
+     * @return 车辆管理集合
+     */
+    List<CenterdataTForestCar> selectCenterdataTForestCarList(CenterdataTForestCar centerdataTForestCar);
+
+    /**
+     * 查询车辆管理
+     *
+     * @param id 车辆管理主键
+     * @return 车辆管理
+     */
+    CenterdataTForestCar selectCenterdataTForestCarById(String id);
+
+    /**
+     * 新增车辆管理
+     *
+     * @param centerdataTForestCar 车辆管理
+     * @return 结果
+     */
+    int insertCenterdataTForestCar(CenterdataTForestCar centerdataTForestCar);
+
+    /**
+     * 修改车辆管理
+     *
+     * @param centerdataTForestCar 车辆管理
+     * @return 结果
+     */
+    int updateCenterdataTForestCar(CenterdataTForestCar centerdataTForestCar);
+
+    /**
+     * 批量删除车辆管理
+     *
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    int deleteCenterdataTForestCarByIds(String[] ids);
+
+
+    List<CenterdataTForestCar> listCenterdataTForestCar(CenterdataTForestCar centerdataTForestCar);
+
+    List<Map<String, Object>> selectCarCount(CenterdataTForestCar centerdataTForestCar);
+}

+ 54 - 0
src/main/java/com/sooka/sponest/data/basicdata/mapper/CenterdataTForestCarrepairMapper.java

@@ -0,0 +1,54 @@
+package com.sooka.sponest.data.basicdata.mapper;
+
+import com.sooka.sponest.data.basicdata.domain.CenterdataTForestCarrepair;
+
+import java.util.List;
+
+/**
+ * 车辆维修保养记录Mapper接口
+ *
+ * @author ruoyi
+ * @date 2022-05-04
+ */
+public interface CenterdataTForestCarrepairMapper {
+
+    /**
+     * 查询车辆维修保养记录列表
+     *
+     * @param centerdataTForestCarrepair 车辆维修保养记录
+     * @return 车辆维修保养记录集合
+     */
+    List<CenterdataTForestCarrepair> selectCenterdataTForestCarrepairList(CenterdataTForestCarrepair centerdataTForestCarrepair);
+
+    /**
+     * 查询车辆维修保养记录
+     *
+     * @param id 车辆维修保养记录主键
+     * @return 车辆维修保养记录
+     */
+    CenterdataTForestCarrepair selectCenterdataTForestCarrepairById(String id);
+
+    /**
+     * 新增车辆维修保养记录
+     *
+     * @param centerdataTForestCarrepair 车辆维修保养记录
+     * @return 结果
+     */
+    int insertCenterdataTForestCarrepair(CenterdataTForestCarrepair centerdataTForestCarrepair);
+
+    /**
+     * 修改车辆维修保养记录
+     *
+     * @param centerdataTForestCarrepair 车辆维修保养记录
+     * @return 结果
+     */
+    int updateCenterdataTForestCarrepair(CenterdataTForestCarrepair centerdataTForestCarrepair);
+
+    /**
+     * 批量删除车辆维修保养记录
+     *
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    int deleteCenterdataTForestCarrepairByIds(String[] ids);
+}

+ 58 - 0
src/main/java/com/sooka/sponest/data/basicdata/mapper/CenterdataTForestFirehydrantMapper.java

@@ -0,0 +1,58 @@
+package com.sooka.sponest.data.basicdata.mapper;
+
+import com.sooka.sponest.data.basicdata.domain.CenterdataTForestFirehydrant;
+import com.sooka.sponest.data.digitalforest.domain.bo.VisuForestCloudEventTypeBO;
+
+import java.util.List;
+
+/**
+ * 消火栓Mapper接口
+ *
+ * @author ruoyi
+ * @date 2022-05-03
+ */
+public interface CenterdataTForestFirehydrantMapper {
+
+    /**
+     * 查询消火栓列表
+     *
+     * @param centerdataTForestFirehydrant 消火栓
+     * @return 消火栓集合
+     */
+    List<CenterdataTForestFirehydrant> selectCenterdataTForestFirehydrantList(CenterdataTForestFirehydrant centerdataTForestFirehydrant);
+
+    /**
+     * 查询消火栓
+     *
+     * @param id 消火栓主键
+     * @return 消火栓
+     */
+    CenterdataTForestFirehydrant selectCenterdataTForestFirehydrantById(String id);
+
+    /**
+     * 新增消火栓
+     *
+     * @param centerdataTForestFirehydrant 消火栓
+     * @return 结果
+     */
+    int insertCenterdataTForestFirehydrant(CenterdataTForestFirehydrant centerdataTForestFirehydrant);
+
+    /**
+     * 修改消火栓
+     *
+     * @param centerdataTForestFirehydrant 消火栓
+     * @return 结果
+     */
+    int updateCenterdataTForestFirehydrant(CenterdataTForestFirehydrant centerdataTForestFirehydrant);
+
+    /**
+     * 批量删除消火栓
+     *
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    int deleteCenterdataTForestFirehydrantByIds(String[] ids);
+
+
+    List<VisuForestCloudEventTypeBO> selectBigDataFirehydrantDeptCount(CenterdataTForestFirehydrant centerdataTForestFirehydrant);
+}

+ 58 - 0
src/main/java/com/sooka/sponest/data/basicdata/mapper/CenterdataTForestWatercraneMapper.java

@@ -0,0 +1,58 @@
+package com.sooka.sponest.data.basicdata.mapper;
+
+import com.sooka.sponest.data.basicdata.domain.CenterdataTForestWatercrane;
+import com.sooka.sponest.data.digitalforest.domain.bo.VisuForestCloudEventTypeBO;
+
+import java.util.List;
+
+/**
+ * 水鹤管理Mapper接口
+ *
+ * @author ruoyi
+ * @date 2022-05-02
+ */
+public interface CenterdataTForestWatercraneMapper {
+
+    /**
+     * 查询水鹤管理列表
+     *
+     * @param centerdataTForestWatercrane 水鹤管理
+     * @return 水鹤管理集合
+     */
+    List<CenterdataTForestWatercrane> selectCenterdataTForestWatercraneList(CenterdataTForestWatercrane centerdataTForestWatercrane);
+
+    /**
+     * 查询水鹤管理
+     *
+     * @param id 水鹤管理主键
+     * @return 水鹤管理
+     */
+    CenterdataTForestWatercrane selectCenterdataTForestWatercraneById(String id);
+
+    /**
+     * 新增水鹤管理
+     *
+     * @param centerdataTForestWatercrane 水鹤管理
+     * @return 结果
+     */
+    int insertCenterdataTForestWatercrane(CenterdataTForestWatercrane centerdataTForestWatercrane);
+
+    /**
+     * 修改水鹤管理
+     *
+     * @param centerdataTForestWatercrane 水鹤管理
+     * @return 结果
+     */
+    int updateCenterdataTForestWatercrane(CenterdataTForestWatercrane centerdataTForestWatercrane);
+
+    /**
+     * 批量删除水鹤管理
+     *
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    int deleteCenterdataTForestWatercraneByIds(String[] ids);
+
+
+    List<VisuForestCloudEventTypeBO> selectBigDataWatercraneDeptCount(CenterdataTForestWatercrane centerdataTForestWatercrane);
+}

+ 58 - 0
src/main/java/com/sooka/sponest/data/basicdata/mapper/CenterdataTForestWaterintakeMapper.java

@@ -0,0 +1,58 @@
+package com.sooka.sponest.data.basicdata.mapper;
+
+import com.sooka.sponest.data.basicdata.domain.CenterdataTForestWaterintake;
+import com.sooka.sponest.data.digitalforest.domain.bo.VisuForestCloudEventTypeBO;
+
+import java.util.List;
+
+/**
+ * 取水口(同四平平台)Mapper接口
+ *
+ * @author ruoyi
+ * @date 2022-05-03
+ */
+public interface CenterdataTForestWaterintakeMapper {
+
+    /**
+     * 查询取水口(同四平平台)列表
+     *
+     * @param centerdataTForestWaterintake 取水口(同四平平台)
+     * @return 取水口(同四平平台)集合
+     */
+    List<CenterdataTForestWaterintake> selectCenterdataTForestWaterintakeList(CenterdataTForestWaterintake centerdataTForestWaterintake);
+
+    /**
+     * 查询取水口(同四平平台)
+     *
+     * @param id 取水口(同四平平台)主键
+     * @return 取水口(同四平平台)
+     */
+    CenterdataTForestWaterintake selectCenterdataTForestWaterintakeById(String id);
+
+    /**
+     * 新增取水口(同四平平台)
+     *
+     * @param centerdataTForestWaterintake 取水口(同四平平台)
+     * @return 结果
+     */
+    int insertCenterdataTForestWaterintake(CenterdataTForestWaterintake centerdataTForestWaterintake);
+
+    /**
+     * 修改取水口(同四平平台)
+     *
+     * @param centerdataTForestWaterintake 取水口(同四平平台)
+     * @return 结果
+     */
+    int updateCenterdataTForestWaterintake(CenterdataTForestWaterintake centerdataTForestWaterintake);
+
+    /**
+     * 批量删除取水口(同四平平台)
+     *
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    int deleteCenterdataTForestWaterintakeByIds(String[] ids);
+
+
+    List<VisuForestCloudEventTypeBO> selectBigDataWaterintakeDeptCount(CenterdataTForestWaterintake centerdataTForestWaterintake);
+}

+ 60 - 0
src/main/java/com/sooka/sponest/data/basicdata/service/ICenterdataTForestCarService.java

@@ -0,0 +1,60 @@
+package com.sooka.sponest.data.basicdata.service;
+
+import com.sooka.sponest.data.basicdata.domain.CenterdataTForestCar;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 车辆管理Service接口
+ *
+ * @author ruoyi
+ * @date 2022-05-04
+ */
+public interface ICenterdataTForestCarService {
+
+    /**
+     * 查询车辆管理列表
+     *
+     * @param centerdataTForestCar 车辆管理
+     * @return 车辆管理集合
+     */
+    List<CenterdataTForestCar> selectCenterdataTForestCarList(CenterdataTForestCar centerdataTForestCar);
+
+    /**
+     * 查询车辆管理
+     *
+     * @param id 车辆管理主键
+     * @return 车辆管理
+     */
+    CenterdataTForestCar selectCenterdataTForestCarById(String id);
+
+    /**
+     * 新增车辆管理
+     *
+     * @param centerdataTForestCar 车辆管理
+     * @return 结果
+     */
+    int insertCenterdataTForestCar(CenterdataTForestCar centerdataTForestCar);
+
+    /**
+     * 修改车辆管理
+     *
+     * @param centerdataTForestCar 车辆管理
+     * @return 结果
+     */
+    int updateCenterdataTForestCar(CenterdataTForestCar centerdataTForestCar);
+
+    /**
+     * 批量删除车辆管理
+     *
+     * @param ids 需要删除的车辆管理主键集合
+     * @return 结果
+     */
+    int deleteCenterdataTForestCarByIds(String[] ids);
+
+
+    List<CenterdataTForestCar> listCenterdataTForestCar(CenterdataTForestCar centerdataTForestCar);
+
+    List<Map<String, Object>> selectCarCount(CenterdataTForestCar centerdataTForestCar);
+}

+ 54 - 0
src/main/java/com/sooka/sponest/data/basicdata/service/ICenterdataTForestCarrepairService.java

@@ -0,0 +1,54 @@
+package com.sooka.sponest.data.basicdata.service;
+
+import com.sooka.sponest.data.basicdata.domain.CenterdataTForestCarrepair;
+
+import java.util.List;
+
+/**
+ * 车辆维修保养记录Service接口
+ *
+ * @author ruoyi
+ * @date 2022-05-04
+ */
+public interface ICenterdataTForestCarrepairService {
+
+    /**
+     * 查询车辆维修保养记录列表
+     *
+     * @param centerdataTForestCarrepair 车辆维修保养记录
+     * @return 车辆维修保养记录集合
+     */
+    List<CenterdataTForestCarrepair> selectCenterdataTForestCarrepairList(CenterdataTForestCarrepair centerdataTForestCarrepair);
+
+    /**
+     * 查询车辆维修保养记录
+     *
+     * @param id 车辆维修保养记录主键
+     * @return 车辆维修保养记录
+     */
+    CenterdataTForestCarrepair selectCenterdataTForestCarrepairById(String id);
+
+    /**
+     * 新增车辆维修保养记录
+     *
+     * @param centerdataTForestCarrepair 车辆维修保养记录
+     * @return 结果
+     */
+    int insertCenterdataTForestCarrepair(CenterdataTForestCarrepair centerdataTForestCarrepair);
+
+    /**
+     * 修改车辆维修保养记录
+     *
+     * @param centerdataTForestCarrepair 车辆维修保养记录
+     * @return 结果
+     */
+    int updateCenterdataTForestCarrepair(CenterdataTForestCarrepair centerdataTForestCarrepair);
+
+    /**
+     * 批量删除车辆维修保养记录
+     *
+     * @param ids 需要删除的车辆维修保养记录主键集合
+     * @return 结果
+     */
+    int deleteCenterdataTForestCarrepairByIds(String[] ids);
+}

+ 58 - 0
src/main/java/com/sooka/sponest/data/basicdata/service/ICenterdataTForestFirehydrantService.java

@@ -0,0 +1,58 @@
+package com.sooka.sponest.data.basicdata.service;
+
+import com.sooka.sponest.data.basicdata.domain.CenterdataTForestFirehydrant;
+import com.sooka.sponest.data.digitalforest.domain.bo.VisuForestCloudEventTypeBO;
+
+import java.util.List;
+
+/**
+ * 消火栓Service接口
+ *
+ * @author ruoyi
+ * @date 2022-05-03
+ */
+public interface ICenterdataTForestFirehydrantService {
+
+    /**
+     * 查询消火栓列表
+     *
+     * @param centerdataTForestFirehydrant 消火栓
+     * @return 消火栓集合
+     */
+    List<CenterdataTForestFirehydrant> selectCenterdataTForestFirehydrantList(CenterdataTForestFirehydrant centerdataTForestFirehydrant);
+
+    /**
+     * 查询消火栓
+     *
+     * @param id 消火栓主键
+     * @return 消火栓
+     */
+    CenterdataTForestFirehydrant selectCenterdataTForestFirehydrantById(String id);
+
+    /**
+     * 新增消火栓
+     *
+     * @param centerdataTForestFirehydrant 消火栓
+     * @return 结果
+     */
+    int insertCenterdataTForestFirehydrant(CenterdataTForestFirehydrant centerdataTForestFirehydrant);
+
+    /**
+     * 修改消火栓
+     *
+     * @param centerdataTForestFirehydrant 消火栓
+     * @return 结果
+     */
+    int updateCenterdataTForestFirehydrant(CenterdataTForestFirehydrant centerdataTForestFirehydrant);
+
+    /**
+     * 批量删除消火栓
+     *
+     * @param ids 需要删除的消火栓主键集合
+     * @return 结果
+     */
+    int deleteCenterdataTForestFirehydrantByIds(String[] ids);
+
+
+    List<VisuForestCloudEventTypeBO> selectBigDataFirehydrantDeptCount(CenterdataTForestFirehydrant centerdataTForestFirehydrant);
+}

+ 58 - 0
src/main/java/com/sooka/sponest/data/basicdata/service/ICenterdataTForestWatercraneService.java

@@ -0,0 +1,58 @@
+package com.sooka.sponest.data.basicdata.service;
+
+import com.sooka.sponest.data.basicdata.domain.CenterdataTForestWatercrane;
+import com.sooka.sponest.data.digitalforest.domain.bo.VisuForestCloudEventTypeBO;
+
+import java.util.List;
+
+/**
+ * 水鹤管理Service接口
+ *
+ * @author ruoyi
+ * @date 2022-05-02
+ */
+public interface ICenterdataTForestWatercraneService {
+
+    /**
+     * 查询水鹤管理列表
+     *
+     * @param centerdataTForestWatercrane 水鹤管理
+     * @return 水鹤管理集合
+     */
+    List<CenterdataTForestWatercrane> selectCenterdataTForestWatercraneList(CenterdataTForestWatercrane centerdataTForestWatercrane);
+
+    /**
+     * 查询水鹤管理
+     *
+     * @param id 水鹤管理主键
+     * @return 水鹤管理
+     */
+    CenterdataTForestWatercrane selectCenterdataTForestWatercraneById(String id);
+
+    /**
+     * 新增水鹤管理
+     *
+     * @param centerdataTForestWatercrane 水鹤管理
+     * @return 结果
+     */
+    int insertCenterdataTForestWatercrane(CenterdataTForestWatercrane centerdataTForestWatercrane);
+
+    /**
+     * 修改水鹤管理
+     *
+     * @param centerdataTForestWatercrane 水鹤管理
+     * @return 结果
+     */
+    int updateCenterdataTForestWatercrane(CenterdataTForestWatercrane centerdataTForestWatercrane);
+
+    /**
+     * 批量删除水鹤管理
+     *
+     * @param ids 需要删除的水鹤管理主键集合
+     * @return 结果
+     */
+    int deleteCenterdataTForestWatercraneByIds(String[] ids);
+
+
+    List<VisuForestCloudEventTypeBO> selectBigDataWatercraneDeptCount(CenterdataTForestWatercrane centerdataTForestWatercrane);
+}

+ 58 - 0
src/main/java/com/sooka/sponest/data/basicdata/service/ICenterdataTForestWaterintakeService.java

@@ -0,0 +1,58 @@
+package com.sooka.sponest.data.basicdata.service;
+
+import com.sooka.sponest.data.basicdata.domain.CenterdataTForestWaterintake;
+import com.sooka.sponest.data.digitalforest.domain.bo.VisuForestCloudEventTypeBO;
+
+import java.util.List;
+
+/**
+ * 取水口(同四平平台)Service接口
+ *
+ * @author ruoyi
+ * @date 2022-05-03
+ */
+public interface ICenterdataTForestWaterintakeService {
+
+    /**
+     * 查询取水口(同四平平台)列表
+     *
+     * @param centerdataTForestWaterintake 取水口(同四平平台)
+     * @return 取水口(同四平平台)集合
+     */
+    List<CenterdataTForestWaterintake> selectCenterdataTForestWaterintakeList(CenterdataTForestWaterintake centerdataTForestWaterintake);
+
+    /**
+     * 查询取水口(同四平平台)
+     *
+     * @param id 取水口(同四平平台)主键
+     * @return 取水口(同四平平台)
+     */
+    CenterdataTForestWaterintake selectCenterdataTForestWaterintakeById(String id);
+
+    /**
+     * 新增取水口(同四平平台)
+     *
+     * @param centerdataTForestWaterintake 取水口(同四平平台)
+     * @return 结果
+     */
+    int insertCenterdataTForestWaterintake(CenterdataTForestWaterintake centerdataTForestWaterintake);
+
+    /**
+     * 修改取水口(同四平平台)
+     *
+     * @param centerdataTForestWaterintake 取水口(同四平平台)
+     * @return 结果
+     */
+    int updateCenterdataTForestWaterintake(CenterdataTForestWaterintake centerdataTForestWaterintake);
+
+    /**
+     * 批量删除取水口(同四平平台)
+     *
+     * @param ids 需要删除的取水口(同四平平台)主键集合
+     * @return 结果
+     */
+    int deleteCenterdataTForestWaterintakeByIds(String[] ids);
+
+
+    List<VisuForestCloudEventTypeBO> selectBigDataWaterintakeDeptCount(CenterdataTForestWaterintake centerdataTForestWaterintake);
+}

+ 136 - 0
src/main/java/com/sooka/sponest/data/basicdata/service/impl/CenterdataTForestCarServiceImpl.java

@@ -0,0 +1,136 @@
+package com.sooka.sponest.data.basicdata.service.impl;
+
+import com.ruoyi.common.core.utils.DateUtils;
+import com.ruoyi.common.core.utils.uuid.IdUtils;
+import com.ruoyi.common.datascope.annotation.DataScopeMutiDept;
+import com.ruoyi.common.security.utils.DictUtils;
+import com.ruoyi.common.security.utils.SecurityUtils;
+import com.sooka.sponest.data.base.service.impl.BaseServiceImpl;
+import com.sooka.sponest.data.basicdata.domain.CenterdataTForestCar;
+import com.sooka.sponest.data.basicdata.domain.CenterdataTForestCarrepair;
+import com.sooka.sponest.data.basicdata.mapper.CenterdataTForestCarMapper;
+import com.sooka.sponest.data.basicdata.mapper.CenterdataTForestCarrepairMapper;
+import com.sooka.sponest.data.basicdata.service.ICenterdataTForestCarService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 车辆管理Service业务层处理
+ *
+ * @author ruoyi
+ * @date 2022-05-04
+ */
+@Service
+public class CenterdataTForestCarServiceImpl extends BaseServiceImpl implements ICenterdataTForestCarService {
+
+    @Autowired
+    private CenterdataTForestCarMapper centerdataTForestCarMapper;
+
+    @Autowired
+    private CenterdataTForestCarrepairMapper centerdataTForestCarrepairMapper;
+
+    /**
+     * 查询车辆管理列表
+     *
+     * @param centerdataTForestCar 车辆管理
+     * @return 车辆管理
+     */
+    @DataScopeMutiDept(deptAlias = "d")
+    @Override
+    public List<CenterdataTForestCar> selectCenterdataTForestCarList(CenterdataTForestCar centerdataTForestCar) {
+        setSookaDataBase(centerdataTForestCar);
+        return centerdataTForestCarMapper.selectCenterdataTForestCarList(centerdataTForestCar);
+    }
+
+    /**
+     * 查询车辆管理
+     *
+     * @param id 车辆管理主键
+     * @return 车辆管理
+     */
+    @Override
+    public CenterdataTForestCar selectCenterdataTForestCarById(String id) {
+        CenterdataTForestCar data = centerdataTForestCarMapper.selectCenterdataTForestCarById(id);
+        data.setAreaTypeLabel(DictUtils.getDictDataByValue("camera_system",data.getAreaType()));
+        data.setCarStatusLabel(DictUtils.getDictDataByValue("forest_car_status",data.getCarStatus()));
+        data.setForestBrandLabel(DictUtils.getDictDataByValue("forest_car_brand",data.getForestBrand()));
+        data.setForestTypeLabel(DictUtils.getDictDataByValue("forest_car_type",data.getForestType()));
+        //按车辆id查询车辆保养信息
+        CenterdataTForestCarrepair carrepair = new CenterdataTForestCarrepair();
+        setSookaDataBase(carrepair);
+        carrepair.setCarId(id);
+        List<CenterdataTForestCarrepair> carrepairsList = centerdataTForestCarrepairMapper.selectCenterdataTForestCarrepairList(carrepair);
+        if (!carrepairsList.isEmpty()) {
+            data.setMessage("车辆下有保养,不允许修改");
+            return data;
+        }
+        return data;
+    }
+
+    /**
+     * 新增车辆管理
+     *
+     * @param centerdataTForestCar 车辆管理
+     * @return 结果
+     */
+    @Override
+    public int insertCenterdataTForestCar(CenterdataTForestCar centerdataTForestCar) {
+        centerdataTForestCar.setId(IdUtils.simpleUUID());
+        centerdataTForestCar.setCreateName( SecurityUtils.getLoginUser().getSysUser().getNickName());
+        centerdataTForestCar.setCreateTime(DateUtils.getNowDate());
+        centerdataTForestCar.setCreateBy(SecurityUtils.getUserId().toString());
+        return centerdataTForestCarMapper.insertCenterdataTForestCar(centerdataTForestCar);
+    }
+
+    /**
+     * 修改车辆管理
+     *
+     * @param centerdataTForestCar 车辆管理
+     * @return 结果
+     */
+    @Override
+    public int updateCenterdataTForestCar(CenterdataTForestCar centerdataTForestCar) {
+        centerdataTForestCar.setUpdateBy(SecurityUtils.getUserId());
+        centerdataTForestCar.setUpdateTime(DateUtils.getNowDate());
+        centerdataTForestCar.setUpdateName( SecurityUtils.getLoginUser().getSysUser().getNickName());
+        return centerdataTForestCarMapper.updateCenterdataTForestCar(centerdataTForestCar);
+    }
+
+    /**
+     * 批量删除车辆管理
+     *
+     * @param ids 需要删除的车辆管理主键
+     * @return 结果
+     */
+    @Override
+    public int deleteCenterdataTForestCarByIds(String[] ids) {
+        for (String id : ids) {
+            //按车辆id查询车辆保养信息
+            CenterdataTForestCarrepair carrepair = new CenterdataTForestCarrepair();
+            setSookaDataBase(carrepair);
+            carrepair.setCarId(id);
+            List<CenterdataTForestCarrepair> carrepairsList = centerdataTForestCarrepairMapper.selectCenterdataTForestCarrepairList(carrepair);
+            if (!carrepairsList.isEmpty()) {
+                return -1;
+            }
+        }
+        return centerdataTForestCarMapper.deleteCenterdataTForestCarByIds(ids);
+    }
+
+
+    @DataScopeMutiDept(deptAlias = "d")
+    @Override
+    public List<CenterdataTForestCar> listCenterdataTForestCar(CenterdataTForestCar centerdataTForestCar) {
+        setSookaDataBase(centerdataTForestCar);
+        return centerdataTForestCarMapper.listCenterdataTForestCar(centerdataTForestCar);
+    }
+
+    @Override
+    public List<Map<String, Object>> selectCarCount(CenterdataTForestCar centerdataTForestCar) {
+        setSookaDataBase(centerdataTForestCar);
+        return centerdataTForestCarMapper.selectCarCount(centerdataTForestCar);
+    }
+}

+ 91 - 0
src/main/java/com/sooka/sponest/data/basicdata/service/impl/CenterdataTForestCarrepairServiceImpl.java

@@ -0,0 +1,91 @@
+package com.sooka.sponest.data.basicdata.service.impl;
+
+import com.ruoyi.common.core.utils.DateUtils;
+import com.ruoyi.common.core.utils.uuid.IdUtils;
+import com.ruoyi.common.datascope.annotation.DataScopeMutiDept;
+import com.ruoyi.common.security.utils.SecurityUtils;
+import com.sooka.sponest.data.base.service.impl.BaseServiceImpl;
+import com.sooka.sponest.data.basicdata.domain.CenterdataTForestCarrepair;
+import com.sooka.sponest.data.basicdata.mapper.CenterdataTForestCarrepairMapper;
+import com.sooka.sponest.data.basicdata.service.ICenterdataTForestCarrepairService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 车辆维修保养记录Service业务层处理
+ *
+ * @author ruoyi
+ * @date 2022-05-04
+ */
+@Service
+public class CenterdataTForestCarrepairServiceImpl extends BaseServiceImpl implements ICenterdataTForestCarrepairService {
+
+    @Autowired
+    private CenterdataTForestCarrepairMapper centerdataTForestCarrepairMapper;
+
+    /**
+     * 查询车辆维修保养记录列表
+     *
+     * @param centerdataTForestCarrepair 车辆维修保养记录
+     * @return 车辆维修保养记录
+     */
+    @DataScopeMutiDept(deptAlias = "d")
+    @Override
+    public List<CenterdataTForestCarrepair> selectCenterdataTForestCarrepairList(CenterdataTForestCarrepair centerdataTForestCarrepair) {
+        setSookaDataBase(centerdataTForestCarrepair);
+        return centerdataTForestCarrepairMapper.selectCenterdataTForestCarrepairList(centerdataTForestCarrepair);
+    }
+
+    /**
+     * 查询车辆维修保养记录
+     *
+     * @param id 车辆维修保养记录主键
+     * @return 车辆维修保养记录
+     */
+    @Override
+    public CenterdataTForestCarrepair selectCenterdataTForestCarrepairById(String id) {
+        return centerdataTForestCarrepairMapper.selectCenterdataTForestCarrepairById(id);
+    }
+
+    /**
+     * 新增车辆维修保养记录
+     *
+     * @param centerdataTForestCarrepair 车辆维修保养记录
+     * @return 结果
+     */
+    @Override
+    public int insertCenterdataTForestCarrepair(CenterdataTForestCarrepair centerdataTForestCarrepair) {
+        centerdataTForestCarrepair.setId(IdUtils.simpleUUID());
+        centerdataTForestCarrepair.setCreateBy(SecurityUtils.getUserId().toString());
+        centerdataTForestCarrepair.setCreateName( SecurityUtils.getLoginUser().getSysUser().getNickName());
+        centerdataTForestCarrepair.setCreateTime(DateUtils.getNowDate());
+        return centerdataTForestCarrepairMapper.insertCenterdataTForestCarrepair(centerdataTForestCarrepair);
+    }
+
+    /**
+     * 修改车辆维修保养记录
+     *
+     * @param centerdataTForestCarrepair 车辆维修保养记录
+     * @return 结果
+     */
+    @Override
+    public int updateCenterdataTForestCarrepair(CenterdataTForestCarrepair centerdataTForestCarrepair) {
+        centerdataTForestCarrepair.setUpdateBy(SecurityUtils.getUserId());
+        centerdataTForestCarrepair.setUpdateTime(DateUtils.getNowDate());
+        centerdataTForestCarrepair.setUpdateName( SecurityUtils.getLoginUser().getSysUser().getNickName());
+        return centerdataTForestCarrepairMapper.updateCenterdataTForestCarrepair(centerdataTForestCarrepair);
+    }
+
+    /**
+     * 批量删除车辆维修保养记录
+     *
+     * @param ids 需要删除的车辆维修保养记录主键
+     * @return 结果
+     */
+    @Override
+    public int deleteCenterdataTForestCarrepairByIds(String[] ids) {
+        return centerdataTForestCarrepairMapper.deleteCenterdataTForestCarrepairByIds(ids);
+    }
+}

+ 134 - 0
src/main/java/com/sooka/sponest/data/basicdata/service/impl/CenterdataTForestFirehydrantServiceImpl.java

@@ -0,0 +1,134 @@
+package com.sooka.sponest.data.basicdata.service.impl;
+
+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.datascope.annotation.DataScopeMutiDept;
+import com.ruoyi.common.security.utils.DictUtils;
+import com.ruoyi.common.security.utils.SecurityUtils;
+import com.sooka.sponest.data.base.service.impl.BaseServiceImpl;
+import com.sooka.sponest.data.basicdata.domain.CenterdataTForestFirehydrant;
+import com.sooka.sponest.data.basicdata.mapper.CenterdataTForestFirehydrantMapper;
+import com.sooka.sponest.data.basicdata.service.ICenterdataTForestFirehydrantService;
+import com.sooka.sponest.data.digitalforest.domain.bo.VisuForestCloudEventTypeBO;
+import com.sooka.sponest.data.system.equipment.domain.CenterdataTEquipmentCamera;
+import com.sooka.sponest.data.system.equipment.service.ICenterdataTEquipmentCameraService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 消火栓Service业务层处理
+ *
+ * @author ruoyi
+ * @date 2022-05-03
+ */
+@Service
+public class CenterdataTForestFirehydrantServiceImpl extends BaseServiceImpl implements ICenterdataTForestFirehydrantService {
+
+    @Autowired
+    private CenterdataTForestFirehydrantMapper centerdataTForestFirehydrantMapper;
+
+    @Autowired
+    private ICenterdataTEquipmentCameraService centerdataTEquipmentCameraService;
+
+    /**
+     * 查询消火栓列表
+     *
+     * @param centerdataTForestFirehydrant 消火栓
+     * @return 消火栓
+     */
+    @DataScopeMutiDept(deptAlias = "d")
+    @Override
+    public List<CenterdataTForestFirehydrant> selectCenterdataTForestFirehydrantList(CenterdataTForestFirehydrant centerdataTForestFirehydrant) {
+        setSookaDataBase(centerdataTForestFirehydrant);
+        return centerdataTForestFirehydrantMapper.selectCenterdataTForestFirehydrantList(centerdataTForestFirehydrant);
+    }
+
+    /**
+     * 查询消火栓
+     *
+     * @param id 消火栓主键
+     * @return 消火栓
+     */
+    @Override
+    public CenterdataTForestFirehydrant selectCenterdataTForestFirehydrantById(String id) {
+        CenterdataTForestFirehydrant data = centerdataTForestFirehydrantMapper.selectCenterdataTForestFirehydrantById(id);
+        data.setFirehydrantTypeLabel(DictUtils.getDictDataByValue("firehydrant",data.getFirehydrantType()));
+        data.setDeviceList(centerdataTEquipmentCameraService.selectCenterdataTEquipmentCameraByBusinessId(id));
+        return data;
+    }
+
+    /**
+     * 新增消火栓
+     *
+     * @param centerdataTForestFirehydrant 消火栓
+     * @return 结果
+     */
+    @Override
+    public int insertCenterdataTForestFirehydrant(CenterdataTForestFirehydrant centerdataTForestFirehydrant) {
+        centerdataTForestFirehydrant.setId(IdUtils.simpleUUID());
+        centerdataTForestFirehydrant.setCreateBy(SecurityUtils.getUserId().toString());
+        centerdataTForestFirehydrant.setCreateName( SecurityUtils.getLoginUser().getSysUser().getNickName());
+        centerdataTForestFirehydrant.setCreateTime(DateUtils.getNowDate());
+        if (StringUtils.isNotEmpty(centerdataTForestFirehydrant.getDeviceList())) {
+            centerdataTForestFirehydrant.getDeviceList().forEach(item -> {
+                CenterdataTEquipmentCamera camera = new CenterdataTEquipmentCamera();
+                camera.setId(IdUtils.fastSimpleUUID());
+                camera.setCameraId(item);
+                camera.setType("basicdata-firehydrant");
+                camera.setBusinessId(centerdataTForestFirehydrant.getId());
+                centerdataTEquipmentCameraService.insertCenterdataTEquipmentCamera(camera);
+            });
+        }
+        return centerdataTForestFirehydrantMapper.insertCenterdataTForestFirehydrant(centerdataTForestFirehydrant);
+    }
+
+    /**
+     * 修改消火栓
+     *
+     * @param centerdataTForestFirehydrant 消火栓
+     * @return 结果
+     */
+    @Override
+    public int updateCenterdataTForestFirehydrant(CenterdataTForestFirehydrant centerdataTForestFirehydrant) {
+        centerdataTForestFirehydrant.setUpdateBy(SecurityUtils.getUserId());
+        centerdataTForestFirehydrant.setUpdateTime(DateUtils.getNowDate());
+        centerdataTForestFirehydrant.setUpdateName( SecurityUtils.getLoginUser().getSysUser().getNickName());
+        centerdataTEquipmentCameraService.deleteCenterdataTEquipmentCameraByBusinessId(centerdataTForestFirehydrant.getId());
+        if (StringUtils.isNotEmpty(centerdataTForestFirehydrant.getDeviceList())) {
+            centerdataTForestFirehydrant.getDeviceList().forEach(item -> {
+                CenterdataTEquipmentCamera camera = new CenterdataTEquipmentCamera();
+                camera.setId(IdUtils.fastSimpleUUID());
+                camera.setCameraId(item);
+                camera.setType("basicdata-firehydrant");
+                camera.setBusinessId(centerdataTForestFirehydrant.getId());
+                centerdataTEquipmentCameraService.insertCenterdataTEquipmentCamera(camera);
+            });
+        }
+        return centerdataTForestFirehydrantMapper.updateCenterdataTForestFirehydrant(centerdataTForestFirehydrant);
+    }
+
+    /**
+     * 批量删除消火栓
+     *
+     * @param ids 需要删除的消火栓主键
+     * @return 结果
+     */
+    @Override
+    public int deleteCenterdataTForestFirehydrantByIds(String[] ids) {
+        for (String id : ids) {
+            centerdataTEquipmentCameraService.deleteCenterdataTEquipmentCameraByBusinessId(id);
+        }
+        return centerdataTForestFirehydrantMapper.deleteCenterdataTForestFirehydrantByIds(ids);
+    }
+
+
+    @DataScopeMutiDept(deptAlias = "d")
+    @Override
+    public List<VisuForestCloudEventTypeBO> selectBigDataFirehydrantDeptCount(CenterdataTForestFirehydrant centerdataTForestFirehydrant) {
+        setSookaDataBase(centerdataTForestFirehydrant);
+        return centerdataTForestFirehydrantMapper.selectBigDataFirehydrantDeptCount(centerdataTForestFirehydrant);
+    }
+}

+ 132 - 0
src/main/java/com/sooka/sponest/data/basicdata/service/impl/CenterdataTForestWatercraneServiceImpl.java

@@ -0,0 +1,132 @@
+package com.sooka.sponest.data.basicdata.service.impl;
+
+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.datascope.annotation.DataScopeMutiDept;
+import com.ruoyi.common.security.utils.SecurityUtils;
+import com.sooka.sponest.data.base.service.impl.BaseServiceImpl;
+import com.sooka.sponest.data.basicdata.domain.CenterdataTForestWatercrane;
+import com.sooka.sponest.data.basicdata.mapper.CenterdataTForestWatercraneMapper;
+import com.sooka.sponest.data.basicdata.service.ICenterdataTForestWatercraneService;
+import com.sooka.sponest.data.digitalforest.domain.bo.VisuForestCloudEventTypeBO;
+import com.sooka.sponest.data.system.equipment.domain.CenterdataTEquipmentCamera;
+import com.sooka.sponest.data.system.equipment.service.ICenterdataTEquipmentCameraService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 水鹤管理Service业务层处理
+ *
+ * @author ruoyi
+ * @date 2022-05-02
+ */
+@Service
+public class CenterdataTForestWatercraneServiceImpl extends BaseServiceImpl implements ICenterdataTForestWatercraneService {
+
+    @Autowired
+    private CenterdataTForestWatercraneMapper centerdataTForestWatercraneMapper;
+
+    @Autowired
+    private ICenterdataTEquipmentCameraService centerdataTEquipmentCameraService;
+
+    /**
+     * 查询水鹤管理列表
+     *
+     * @param centerdataTForestWatercrane 水鹤管理
+     * @return 水鹤管理
+     */
+    @DataScopeMutiDept(deptAlias = "d")
+    @Override
+    public List<CenterdataTForestWatercrane> selectCenterdataTForestWatercraneList(CenterdataTForestWatercrane centerdataTForestWatercrane) {
+        setSookaDataBase(centerdataTForestWatercrane);
+        return centerdataTForestWatercraneMapper.selectCenterdataTForestWatercraneList(centerdataTForestWatercrane);
+    }
+
+    /**
+     * 查询水鹤管理
+     *
+     * @param id 水鹤管理主键
+     * @return 水鹤管理
+     */
+    @Override
+    public CenterdataTForestWatercrane selectCenterdataTForestWatercraneById(String id) {
+        CenterdataTForestWatercrane centerdataTForestWatercrane = centerdataTForestWatercraneMapper.selectCenterdataTForestWatercraneById(id);
+        centerdataTForestWatercrane.setDeviceList(centerdataTEquipmentCameraService.selectCenterdataTEquipmentCameraByBusinessId(id));
+        return centerdataTForestWatercrane;
+    }
+
+    /**
+     * 新增水鹤管理
+     *
+     * @param centerdataTForestWatercrane 水鹤管理
+     * @return 结果
+     */
+    @Override
+    public int insertCenterdataTForestWatercrane(CenterdataTForestWatercrane centerdataTForestWatercrane) {
+        centerdataTForestWatercrane.setId(IdUtils.simpleUUID());
+        centerdataTForestWatercrane.setCreateBy(SecurityUtils.getUserId().toString());
+        centerdataTForestWatercrane.setCreateName( SecurityUtils.getLoginUser().getSysUser().getNickName());
+        centerdataTForestWatercrane.setCreateTime(DateUtils.getNowDate());
+        if (StringUtils.isNotEmpty(centerdataTForestWatercrane.getDeviceList())) {
+            centerdataTForestWatercrane.getDeviceList().forEach(item -> {
+                CenterdataTEquipmentCamera camera = new CenterdataTEquipmentCamera();
+                camera.setId(IdUtils.fastSimpleUUID());
+                camera.setCameraId(item);
+                camera.setType("basicdata-watercrane");
+                camera.setBusinessId(centerdataTForestWatercrane.getId());
+                centerdataTEquipmentCameraService.insertCenterdataTEquipmentCamera(camera);
+            });
+        }
+        return centerdataTForestWatercraneMapper.insertCenterdataTForestWatercrane(centerdataTForestWatercrane);
+    }
+
+    /**
+     * 修改水鹤管理
+     *
+     * @param centerdataTForestWatercrane 水鹤管理
+     * @return 结果
+     */
+    @Override
+    public int updateCenterdataTForestWatercrane(CenterdataTForestWatercrane centerdataTForestWatercrane) {
+        centerdataTForestWatercrane.setUpdateBy(SecurityUtils.getUserId());
+        centerdataTForestWatercrane.setUpdateTime(DateUtils.getNowDate());
+        centerdataTForestWatercrane.setUpdateName( SecurityUtils.getLoginUser().getSysUser().getNickName());
+        centerdataTEquipmentCameraService.deleteCenterdataTEquipmentCameraByBusinessId(centerdataTForestWatercrane.getId());
+        if (StringUtils.isNotEmpty(centerdataTForestWatercrane.getDeviceList())) {
+            centerdataTForestWatercrane.getDeviceList().forEach(item -> {
+                CenterdataTEquipmentCamera camera = new CenterdataTEquipmentCamera();
+                camera.setId(IdUtils.fastSimpleUUID());
+                camera.setCameraId(item);
+                camera.setType("basicdata-watercrane");
+                camera.setBusinessId(centerdataTForestWatercrane.getId());
+                centerdataTEquipmentCameraService.insertCenterdataTEquipmentCamera(camera);
+            });
+        }
+        return centerdataTForestWatercraneMapper.updateCenterdataTForestWatercrane(centerdataTForestWatercrane);
+    }
+
+    /**
+     * 批量删除水鹤管理
+     *
+     * @param ids 需要删除的水鹤管理主键
+     * @return 结果
+     */
+    @Override
+    public int deleteCenterdataTForestWatercraneByIds(String[] ids) {
+        for (String id : ids) {
+            centerdataTEquipmentCameraService.deleteCenterdataTEquipmentCameraByBusinessId(id);
+        }
+        return centerdataTForestWatercraneMapper.deleteCenterdataTForestWatercraneByIds(ids);
+    }
+
+
+    @DataScopeMutiDept(deptAlias = "d")
+    @Override
+    public List<VisuForestCloudEventTypeBO> selectBigDataWatercraneDeptCount(CenterdataTForestWatercrane centerdataTForestWatercrane) {
+        setSookaDataBase(centerdataTForestWatercrane);
+        return centerdataTForestWatercraneMapper.selectBigDataWatercraneDeptCount(centerdataTForestWatercrane);
+    }
+}

+ 132 - 0
src/main/java/com/sooka/sponest/data/basicdata/service/impl/CenterdataTForestWaterintakeServiceImpl.java

@@ -0,0 +1,132 @@
+package com.sooka.sponest.data.basicdata.service.impl;
+
+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.datascope.annotation.DataScopeMutiDept;
+import com.ruoyi.common.security.utils.SecurityUtils;
+import com.sooka.sponest.data.base.service.impl.BaseServiceImpl;
+import com.sooka.sponest.data.basicdata.domain.CenterdataTForestWaterintake;
+import com.sooka.sponest.data.basicdata.mapper.CenterdataTForestWaterintakeMapper;
+import com.sooka.sponest.data.basicdata.service.ICenterdataTForestWaterintakeService;
+import com.sooka.sponest.data.digitalforest.domain.bo.VisuForestCloudEventTypeBO;
+import com.sooka.sponest.data.system.equipment.domain.CenterdataTEquipmentCamera;
+import com.sooka.sponest.data.system.equipment.service.ICenterdataTEquipmentCameraService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 取水口(同四平平台)Service业务层处理
+ *
+ * @author ruoyi
+ * @date 2022-05-03
+ */
+@Service
+public class CenterdataTForestWaterintakeServiceImpl extends BaseServiceImpl implements ICenterdataTForestWaterintakeService {
+
+    @Autowired
+    private CenterdataTForestWaterintakeMapper centerdataTForestWaterintakeMapper;
+
+    @Autowired
+    private ICenterdataTEquipmentCameraService centerdataTEquipmentCameraService;
+
+    /**
+     * 查询取水口(同四平平台)列表
+     *
+     * @param centerdataTForestWaterintake 取水口(同四平平台)
+     * @return 取水口(同四平平台)
+     */
+    @DataScopeMutiDept(deptAlias = "d")
+    @Override
+    public List<CenterdataTForestWaterintake> selectCenterdataTForestWaterintakeList(CenterdataTForestWaterintake centerdataTForestWaterintake) {
+        setSookaDataBase(centerdataTForestWaterintake);
+        return centerdataTForestWaterintakeMapper.selectCenterdataTForestWaterintakeList(centerdataTForestWaterintake);
+    }
+
+    /**
+     * 查询取水口(同四平平台)
+     *
+     * @param id 取水口(同四平平台)主键
+     * @return 取水口(同四平平台)
+     */
+    @Override
+    public CenterdataTForestWaterintake selectCenterdataTForestWaterintakeById(String id) {
+        CenterdataTForestWaterintake centerdataTForestWaterintake = centerdataTForestWaterintakeMapper.selectCenterdataTForestWaterintakeById(id);
+        centerdataTForestWaterintake.setDeviceList(centerdataTEquipmentCameraService.selectCenterdataTEquipmentCameraByBusinessId(id));
+        return centerdataTForestWaterintake;
+    }
+
+    /**
+     * 新增取水口(同四平平台)
+     *
+     * @param centerdataTForestWaterintake 取水口(同四平平台)
+     * @return 结果
+     */
+    @Override
+    public int insertCenterdataTForestWaterintake(CenterdataTForestWaterintake centerdataTForestWaterintake) {
+        centerdataTForestWaterintake.setId(IdUtils.simpleUUID());
+        centerdataTForestWaterintake.setCreateBy(SecurityUtils.getUserId().toString());
+        centerdataTForestWaterintake.setCreateName( SecurityUtils.getLoginUser().getSysUser().getNickName());
+        centerdataTForestWaterintake.setCreateTime(DateUtils.getNowDate());
+        if (StringUtils.isNotEmpty(centerdataTForestWaterintake.getDeviceList())) {
+            centerdataTForestWaterintake.getDeviceList().forEach(item -> {
+                CenterdataTEquipmentCamera camera = new CenterdataTEquipmentCamera();
+                camera.setId(IdUtils.fastSimpleUUID());
+                camera.setCameraId(item);
+                camera.setType("basicdata-waterintake");
+                camera.setBusinessId(centerdataTForestWaterintake.getId());
+                centerdataTEquipmentCameraService.insertCenterdataTEquipmentCamera(camera);
+            });
+        }
+        return centerdataTForestWaterintakeMapper.insertCenterdataTForestWaterintake(centerdataTForestWaterintake);
+    }
+
+    /**
+     * 修改取水口(同四平平台)
+     *
+     * @param centerdataTForestWaterintake 取水口(同四平平台)
+     * @return 结果
+     */
+    @Override
+    public int updateCenterdataTForestWaterintake(CenterdataTForestWaterintake centerdataTForestWaterintake) {
+        centerdataTForestWaterintake.setUpdateBy(SecurityUtils.getUserId());
+        centerdataTForestWaterintake.setUpdateTime(DateUtils.getNowDate());
+        centerdataTForestWaterintake.setUpdateName( SecurityUtils.getLoginUser().getSysUser().getNickName());
+        centerdataTEquipmentCameraService.deleteCenterdataTEquipmentCameraByBusinessId(centerdataTForestWaterintake.getId());
+        if (StringUtils.isNotEmpty(centerdataTForestWaterintake.getDeviceList())) {
+            centerdataTForestWaterintake.getDeviceList().forEach(item -> {
+                CenterdataTEquipmentCamera camera = new CenterdataTEquipmentCamera();
+                camera.setId(IdUtils.fastSimpleUUID());
+                camera.setCameraId(item);
+                camera.setType("basicdata-waterintake");
+                camera.setBusinessId(centerdataTForestWaterintake.getId());
+                centerdataTEquipmentCameraService.insertCenterdataTEquipmentCamera(camera);
+            });
+        }
+        return centerdataTForestWaterintakeMapper.updateCenterdataTForestWaterintake(centerdataTForestWaterintake);
+    }
+
+    /**
+     * 批量删除取水口(同四平平台)
+     *
+     * @param ids 需要删除的取水口(同四平平台)主键
+     * @return 结果
+     */
+    @Override
+    public int deleteCenterdataTForestWaterintakeByIds(String[] ids) {
+        for (String id : ids) {
+            centerdataTEquipmentCameraService.deleteCenterdataTEquipmentCameraByBusinessId(id);
+        }
+        return centerdataTForestWaterintakeMapper.deleteCenterdataTForestWaterintakeByIds(ids);
+    }
+
+
+    @DataScopeMutiDept(deptAlias = "d")
+    @Override
+    public List<VisuForestCloudEventTypeBO> selectBigDataWaterintakeDeptCount(CenterdataTForestWaterintake centerdataTForestWaterintake) {
+        setSookaDataBase(centerdataTForestWaterintake);
+        return centerdataTForestWaterintakeMapper.selectBigDataWaterintakeDeptCount(centerdataTForestWaterintake);
+    }
+}

+ 276 - 0
src/main/java/com/sooka/sponest/data/commandcenter/controller/CommandCenterController.java

@@ -0,0 +1,276 @@
+package com.sooka.sponest.data.commandcenter.controller;
+
+import com.ruoyi.common.core.web.controller.BaseController;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.web.page.TableDataInfo;
+import com.sooka.sponest.data.commandcenter.domian.CommandCenterBO;
+import com.sooka.sponest.data.commandcenter.domian.ProjectBody;
+import com.sooka.sponest.data.commandcenter.service.ICommandCenterService;
+import com.sooka.sponest.data.digitalagriculture.domain.bo.AgricultureViewBO;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 市指挥中心
+ *
+ * @author hanfucheng
+ * @date 2023/4/25 9:31
+ */
+@Api(tags = "市领导页面")
+@RestController
+@RequestMapping("commandCenter")
+public class CommandCenterController extends BaseController {
+
+    @Autowired
+    private ICommandCenterService commandCenterService;
+
+    /**
+     * 四长概况
+     *
+     * @param commandCenterBO
+     * @return
+     */
+    @ApiOperation(value = "四长概况", notes = "四长概况")
+    @GetMapping("/fourLengthOverview")
+    @ApiImplicitParams(value = {
+            @ApiImplicitParam(name = "deptId", value = "部门id", dataType = "String", required = true),
+            @ApiImplicitParam(name = "timeTag", value = "日期标记", dataType = "String", required = false),
+            @ApiImplicitParam(name = "keyWord", value = "关键字", dataType = "String", required = false),
+    })
+    public AjaxResult fourLengthOverview(CommandCenterBO commandCenterBO) {
+        return AjaxResult.success(commandCenterService.fourLengthOverview(commandCenterBO));
+    }
+
+    /**
+     * 四长概况点击事件
+     *
+     * @author hanfucheng
+     * @date 2023/4/27 16:05
+     */
+    @ApiOperation(value = "四长概况click", notes = "四长概况click")
+    @GetMapping("/fourLengthOverviewOther")
+    @ApiImplicitParams(value = {
+            @ApiImplicitParam(name = "deptId", value = "部门id", dataType = "String", required = true),
+            @ApiImplicitParam(name = "timeTag", value = "日期标记", dataType = "String", required = false),
+            @ApiImplicitParam(name = "keyWord", value = "关键字", dataType = "String", required = false),
+    })
+    public AjaxResult fourLengthOverviewOther(CommandCenterBO commandCenterBO) {
+        Map<String, Object> resultMap = new HashMap<>();
+        resultMap.put("structure", commandCenterService.getOverview(commandCenterBO));
+        resultMap.put("plan", commandCenterService.planDegree(commandCenterBO));
+        resultMap.put("task", commandCenterService.taskDegree(commandCenterBO));
+        return AjaxResult.success(resultMap);
+    }
+
+    /**
+     * 四长总数
+     *
+     * @author hanfucheng
+     * @date 2023/7/26 15:38
+     */
+    @ApiOperation(value = "四长总数", notes = "四长总数")
+    @GetMapping("/fourLengNum")
+    @ApiImplicitParams(value = {
+            @ApiImplicitParam(name = "deptId", value = "部门id", dataType = "String", required = true),
+    })
+    public AjaxResult fourLengNum(CommandCenterBO commandCenterBO) {
+        return AjaxResult.success(commandCenterService.fourLengNum(commandCenterBO));
+    }
+
+    /**
+     * 四长巡视距离
+     *
+     * @author hanfucheng
+     * @date 2023/7/26 15:42
+     */
+    @ApiOperation(value = "四长巡视距离", notes = "四长巡视距离")
+    @GetMapping("/patrolDistance")
+    @ApiImplicitParams(value = {
+            @ApiImplicitParam(name = "deptId", value = "部门id", dataType = "String", required = true),
+    })
+    public AjaxResult patrolDistance(CommandCenterBO commandCenterBO) {
+        return AjaxResult.success(commandCenterService.patrolDistance(commandCenterBO));
+    }
+
+    /**
+     * 重点工程
+     *
+     * @param commandCenterBO
+     * @return
+     */
+    @ApiOperation(value = "重点工程", notes = "重点工程")
+    @GetMapping("/getKeyProjects")
+    @ApiImplicitParams(value = {
+            @ApiImplicitParam(name = "deptId", value = "部门id", dataType = "String", required = true),
+            @ApiImplicitParam(name = "timeTag", value = "日期标记", dataType = "String", required = false),
+            @ApiImplicitParam(name = "keyWord", value = "关键字", dataType = "String", required = false),
+    })
+    public AjaxResult getKeyProjects(CommandCenterBO commandCenterBO) {
+        return AjaxResult.success(commandCenterService.getKeyProjects(commandCenterBO));
+    }
+
+    @ApiOperation(value = "重点工程", notes = "重点工程")
+    @GetMapping("/getKeyProjectsListOne")
+    @ApiImplicitParams(value = {
+            @ApiImplicitParam(name = "deptId", value = "部门id", dataType = "String", required = true),
+            @ApiImplicitParam(name = "timeTag", value = "日期标记", dataType = "String", required = false),
+            @ApiImplicitParam(name = "keyWord", value = "关键字", dataType = "String", required = false),
+    })
+    public TableDataInfo getKeyProjectsListOne(CommandCenterBO commandCenterBO) {
+        startPage();
+        List<ProjectBody> keyProjects = commandCenterService.getKeyProjects(commandCenterBO);
+        return getDataTable(keyProjects);
+    }
+    @PostMapping(value = "/getKeyProjectsListOne")
+    public TableDataInfo getKeyProjectsListOnePost(@RequestBody CommandCenterBO commandCenterBO){
+        return getKeyProjectsListOne(commandCenterBO);
+    }
+
+    /**
+     * 重点区域
+     * @param commandCenterBO
+     * @return
+     */
+    @ApiOperation(value = "重点区域", notes = "重点区域")
+    @GetMapping("/getImportAreaList")
+    @ApiImplicitParams(value = {
+            @ApiImplicitParam(name = "deptId", value = "部门id", dataType = "String", required = true),
+            @ApiImplicitParam(name = "timeTag", value = "日期标记", dataType = "String", required = false),
+            @ApiImplicitParam(name = "keyWord", value = "关键字", dataType = "String", required = false),
+    })
+    public AjaxResult getImportAreaList(CommandCenterBO commandCenterBO) {
+        return AjaxResult.success(commandCenterService.getImportAreaList(commandCenterBO));
+    }
+
+    @ApiOperation(value = "重点区域", notes = "重点区域")
+    @GetMapping("/getImportAreaListOne")
+    @ApiImplicitParams(value = {
+            @ApiImplicitParam(name = "deptId", value = "部门id", dataType = "String", required = true),
+            @ApiImplicitParam(name = "timeTag", value = "日期标记", dataType = "String", required = false),
+            @ApiImplicitParam(name = "keyWord", value = "关键字", dataType = "String", required = false),
+    })
+    public TableDataInfo getImportAreaListOne(CommandCenterBO commandCenterBO) {
+        startPage();
+        List<Map<String, Object>> importAreas = commandCenterService.getImportAreaListPage(commandCenterBO);
+        return getDataTable(importAreas);
+    }
+
+    /**
+     * 一网通办
+     *
+     * @param commandCenterBO
+     * @return
+     */
+    @ApiOperation(value = "一网通办", notes = "一网通办")
+    @GetMapping("/allAtOnce")
+    @ApiImplicitParams(value = {
+            @ApiImplicitParam(name = "deptId", value = "部门id", dataType = "String", required = true),
+            @ApiImplicitParam(name = "timeTag", value = "日期标记", dataType = "String", required = false),
+            @ApiImplicitParam(name = "keyWord", value = "关键字", dataType = "String", required = false),
+    })
+    public AjaxResult allAtOnce(CommandCenterBO commandCenterBO) {
+        return AjaxResult.success(commandCenterService.allAtOnce(commandCenterBO));
+    }
+
+    @ApiOperation(value = "机器人", notes = "机器人")
+    @GetMapping("/searchAllYouWant")
+    @ApiImplicitParams(value = {
+            @ApiImplicitParam(name = "deptId", value = "部门id", dataType = "String", required = true),
+            @ApiImplicitParam(name = "timeTag", value = "日期标记", dataType = "String", required = false),
+            @ApiImplicitParam(name = "keyWord", value = "关键字", dataType = "String", required = false),
+    })
+    public AjaxResult searchAllYouWant(CommandCenterBO commandCenterBO) {
+        return AjaxResult.success(commandCenterService.searchAllYouWant(commandCenterBO));
+    }
+
+    /**
+     * 四长网格树状结构
+     *
+     * @author hanfucheng
+     * @date 2023/5/6 9:11
+     */
+    @ApiOperation(value = "四长网格树状结构", notes = "四长网格树状结构")
+    @GetMapping("/fourLengthOverTree")
+    @ApiImplicitParams(value = {
+            @ApiImplicitParam(name = "deptId", value = "部门id", dataType = "String", required = true),
+            @ApiImplicitParam(name = "timeTag", value = "日期标记", dataType = "String", required = false),
+            @ApiImplicitParam(name = "keyWord", value = "关键字", dataType = "String", required = false),
+    })
+    public AjaxResult fourLengthOverTree(CommandCenterBO commandCenterBO) {
+        return AjaxResult.success(commandCenterService.fourLengthOverTree(commandCenterBO));
+    }
+
+    /**
+     * 手机端四长列表
+     *
+     * @author hanfucheng
+     * @date 2023/5/15 11:12
+     */
+    @ApiOperation(value = "手机端四长列表", notes = "手机端四长列表")
+    @GetMapping("/fourLengthOver")
+    @ApiImplicitParams(value = {
+            @ApiImplicitParam(name = "deptId", value = "部门id", dataType = "String", required = true),
+            @ApiImplicitParam(name = "timeTag", value = "日期标记", dataType = "String", required = false),
+            @ApiImplicitParam(name = "keyWord", value = "关键字", dataType = "String", required = false),
+    })
+    public AjaxResult fourLengthOver(CommandCenterBO commandCenterBO) {
+        return AjaxResult.success(commandCenterService.fourLengthOver(commandCenterBO));
+    }
+
+    /**
+     * 资源列表
+     *
+     * @author hanfucheng
+     * @date 2023/6/6 15:03
+     */
+    @ApiOperation(value = "资源列表", notes = "资源列表")
+    @GetMapping("/resourceList")
+    @ApiImplicitParams(value = {
+            @ApiImplicitParam(name = "longitude", value = "经度", dataType = "String", required = false),
+            @ApiImplicitParam(name = "latitude", value = "纬度", dataType = "String", required = false),
+            @ApiImplicitParam(name = "type", value = "类型", dataType = "String", required = false),
+            @ApiImplicitParam(name = "assort", value = "分类(1.生鲜乳收购站 2.饲料企业 3.屠宰企业)", dataType = "String", required = false),
+            @ApiImplicitParam(name = "del", value = "删除标识", dataType = "String", required = false),
+            @ApiImplicitParam(name = "radius", value = "距离", dataType = "String", required = false),
+            @ApiImplicitParam(name = "deptId", value = "部门id", dataType = "String", required = true),
+            @ApiImplicitParam(name = "name", value = "名称", dataType = "String", required = false),
+            @ApiImplicitParam(name = "resourceType", value = "资源类型", dataType = "String", required = false),
+            @ApiImplicitParam(name = "firehydrantType", value = "消火栓类型", dataType = "String", required = false),
+    })
+    public AjaxResult resourceList(AgricultureViewBO agricultureViewBO) {
+        return AjaxResult.success(commandCenterService.resourceList(agricultureViewBO));
+    }
+
+    /**
+     * 资源落点
+     *
+     * @author hanfucheng
+     * @date 2023/6/6 14:16
+     */
+    @ApiOperation(value = "资源落点", notes = "资源落点")
+    @GetMapping("/resourcePoint")
+    @ApiImplicitParams(value = {
+            @ApiImplicitParam(name = "longitude", value = "经度", dataType = "String", required = false),
+            @ApiImplicitParam(name = "latitude", value = "纬度", dataType = "String", required = false),
+            @ApiImplicitParam(name = "type", value = "类型", dataType = "String", required = false),
+            @ApiImplicitParam(name = "assort", value = "分类(1.生鲜乳收购站 2.饲料企业 3.屠宰企业)", dataType = "String", required = false),
+            @ApiImplicitParam(name = "del", value = "删除标识", dataType = "String", required = false),
+            @ApiImplicitParam(name = "radius", value = "距离", dataType = "String", required = false),
+            @ApiImplicitParam(name = "deptId", value = "部门id", dataType = "String", required = true),
+            @ApiImplicitParam(name = "name", value = "名称", dataType = "String", required = false),
+            @ApiImplicitParam(name = "resourceType", value = "资源类型", dataType = "String", required = false),
+            @ApiImplicitParam(name = "firehydrantType", value = "消火栓类型", dataType = "String", required = false),
+    })
+    public AjaxResult resourcePoint(AgricultureViewBO agricultureViewBO) {
+        List list = commandCenterService.resourcePoint(agricultureViewBO);
+        return AjaxResult.success(list);
+    }
+}

+ 26 - 0
src/main/java/com/sooka/sponest/data/commandcenter/domian/AreaBody.java

@@ -0,0 +1,26 @@
+package com.sooka.sponest.data.commandcenter.domian;
+
+import lombok.Data;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+@Data
+public class AreaBody {
+
+    /**
+     * 区域类型value
+     */
+    private String areaType;
+
+    /**
+     * 区域类型label
+     */
+    private String areaName;
+
+    /**
+     * 数据列表
+     */
+    private List<Map<String, Object>> areaList = new ArrayList<>();
+}

+ 26 - 0
src/main/java/com/sooka/sponest/data/commandcenter/domian/CommandCenterBO.java

@@ -0,0 +1,26 @@
+package com.sooka.sponest.data.commandcenter.domian;
+
+import com.sooka.sponest.data.base.domain.BaseBusinessEntity;
+import lombok.Data;
+
+/**
+ * @program: ruoyi
+ * @description: yy
+ * @author: yy
+ * @create: 2022-09-21 09:57
+ **/
+@Data
+public class CommandCenterBO extends BaseBusinessEntity {
+
+    // 部门id
+    private String deptId;
+
+    // 日期标记
+    private String timeTag;
+
+    // 关键字
+    private String keyWord;
+    private Integer pageNum;
+    private Integer pageSize;
+
+}

+ 115 - 0
src/main/java/com/sooka/sponest/data/commandcenter/domian/ProjectBody.java

@@ -0,0 +1,115 @@
+package com.sooka.sponest.data.commandcenter.domian;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.sooka.sponest.data.generalbusiness.domain.CenterdataTKeyProjectsSchedule;
+import lombok.Data;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+@Data
+public class ProjectBody {
+
+    private String projectId;
+
+    //工程名称
+    private String projectName;
+
+    //工程目标
+    private String projectTarget;
+
+    //工程类型
+    private String projectType;
+
+    //工程级别
+    private String projectLevel;
+
+    //建设单位
+    private String constructionUnit;
+
+    //负责人
+    private String principal;
+
+    //联系电话
+    private String phone;
+
+    //建设地点
+    private String constructionSite;
+
+    //建筑面积
+    private String constructionArea;
+
+    //所属分类
+    private String cameraSystem;
+
+    //工程简介
+    private String introduction;
+
+    //经度
+    private String longitude;
+
+    //纬度
+    private String latitude;
+
+    //照片id
+    private String photoId;
+
+    //属地辖区
+    private String territoriality;
+
+    //所属开发区
+    private String park;
+
+    //开发区中心点经度
+    private String parkLongitude;
+
+    //开发区中心点纬度
+    private String parkLatitude;
+
+    //项目环境
+    private String environment;
+
+    //法人单位
+    private String legalUnit;
+
+    //开复工时间
+    @JsonFormat(pattern = "yyyy-MM")
+    private Date startTime;
+
+    //计划竣工时间
+    @JsonFormat(pattern = "yyyy-MM")
+    private Date endTime;
+
+    //在建性质
+    private String nature;
+
+    //总投资
+    private String totalInvest;
+
+    //年度计划投资
+    private String yearInvest;
+
+    //产业类别
+    private String industryType;
+
+    //项目秘书
+    private String secretary;
+
+    //项目秘书职务
+    private String secretaryDuties;
+
+    //项目秘书手机
+    private String secretaryPhone;
+
+    /**
+     * 数据列表
+     */
+    private List<Map<String, Object>> cameraList = new ArrayList<>();
+
+    /**
+     * 进度图片列表
+     */
+    private List<CenterdataTKeyProjectsSchedule> scheduleList = new ArrayList<>();
+}

+ 100 - 0
src/main/java/com/sooka/sponest/data/commandcenter/mapper/CommandCenterMapper.java

@@ -0,0 +1,100 @@
+package com.sooka.sponest.data.commandcenter.mapper;
+
+import com.sooka.sponest.data.commandcenter.domian.AreaBody;
+import com.sooka.sponest.data.commandcenter.domian.CommandCenterBO;
+import com.sooka.sponest.data.commandcenter.domian.ProjectBody;
+import com.sooka.sponest.data.digitalagriculture.domain.bo.AgricultureViewBO;
+import com.sooka.sponest.data.generalbusiness.domain.CenterdataTForestNetworkprocessing;
+import com.sooka.sponest.data.generalbusiness.domain.CenterdataTKeyProjectsSchedule;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 重点场所管理Mapper接口
+ *
+ * @author ruoyi
+ * @date 2023-02-25
+ */
+public interface CommandCenterMapper {
+
+    // 四长人数
+    int getFourLengthCount(CommandCenterBO commandCenterBO);
+
+    // 四长巡视距离
+    List<Map<String, Object>> getFourLengthPatrolDistance(CommandCenterBO commandCenterBO);
+
+    /**
+     * 四长概况
+     *
+     * @author hanfucheng
+     * @date 2023/4/27 16:54
+     */
+    List<Map<String, Object>> getOverview(CommandCenterBO commandCenterBO);
+
+    /**
+     * 计划完成度
+     *
+     * @author hanfucheng
+     * @date 2023/4/29 11:18
+     */
+    List<Map<String, Object>> planDegree(CommandCenterBO bcommandCenterBOo);
+
+    /**
+     * 任务完成度
+     *
+     * @author hanfucheng
+     * @date 2023/4/29 10:21
+     */
+    List<Map<String, Object>> taskDegree(CommandCenterBO commandCenterBO);
+
+    /**
+     * 可视化获取重点工程列表
+     *
+     * @param
+     * @return
+     */
+    List<ProjectBody> getKeyProjects(CommandCenterBO commandCenterBO);
+
+    List<Map<String, Object>> getKeyProjectsCamera(CommandCenterBO commandCenterBO);
+
+    List<AreaBody> getImportAreaType(CommandCenterBO commandCenterBO);
+
+    List<Map<String, Object>> getImportAreaList(CommandCenterBO commandCenterBO);
+
+    List<Map<String, Object>> getImportAreaCamera(CommandCenterBO commandCenterBO);
+
+    CenterdataTForestNetworkprocessing allAtOnce(CommandCenterBO commandCenterBO);
+
+    List<Map<String, Object>> getOperationManual(CommandCenterBO commandCenterBO);
+
+    List<Map<String, Object>> getForestGridLevel(CommandCenterBO commandCenterBO);
+
+    String getUpPoint(Long id);
+
+    List<Map<String, Object>> getLineList(CommandCenterBO commandCenterBO);
+
+    List<Map<String, Object>> getLeaderList(CommandCenterBO commandCenterBO);
+
+    List<Map<String, Object>> forestryList(AgricultureViewBO agricultureViewBO);
+
+    List<Map<String, Object>> agricultureList(AgricultureViewBO agricultureViewBO);
+
+    List<Map<String, Object>> waterList(AgricultureViewBO agricultureViewBO);
+
+    List<Map<String, Object>> environmentalList(AgricultureViewBO agricultureViewBO);
+
+    List<Map<String, Object>> emergencyList(AgricultureViewBO agricultureViewBO);
+
+    List<Map<String, Object>> trafficList(AgricultureViewBO agricultureViewBO);
+
+    List<Map<String, Object>> resourceList(AgricultureViewBO agricultureViewBO);
+
+    List<Map<String, Object>> fireList(AgricultureViewBO agricultureViewBO);
+
+    List<Map<String,Object>> getLocation(AgricultureViewBO agricultureViewBO);
+
+    List<Map<String,Object>> getLocationWithCamera(AgricultureViewBO agricultureViewBO);
+
+    List<CenterdataTKeyProjectsSchedule> getKeyProjectsSchedule(CommandCenterBO commandCenterBO);
+}

+ 58 - 0
src/main/java/com/sooka/sponest/data/commandcenter/service/ICommandCenterService.java

@@ -0,0 +1,58 @@
+package com.sooka.sponest.data.commandcenter.service;
+
+import com.sooka.sponest.data.commandcenter.domian.AreaBody;
+import com.sooka.sponest.data.commandcenter.domian.CommandCenterBO;
+import com.sooka.sponest.data.commandcenter.domian.ProjectBody;
+import com.sooka.sponest.data.digitalagriculture.domain.bo.AgricultureViewBO;
+import com.sooka.sponest.data.generalbusiness.domain.CenterdataTForestNetworkprocessing;
+
+import java.util.List;
+import java.util.Map;
+
+public interface ICommandCenterService {
+
+    // 四长概况
+    Map<String, Object> fourLengthOverview(CommandCenterBO commandCenterBO);
+
+    // 四长结构
+    Map<String, Object> getOverview(CommandCenterBO commandCenterBO);
+
+    //四长总数
+    int fourLengNum(CommandCenterBO commandCenterBO);
+
+    //四长巡视距离
+    List<Map<String, Object>> patrolDistance(CommandCenterBO commandCenterBO);
+
+    // 计划完成度
+    Map<String, Object> planDegree(CommandCenterBO commandCenterBO);
+
+    // 任务完成度
+    Map<String, Object> taskDegree(CommandCenterBO commandCenterBO);
+
+    // 重点工程
+    List<ProjectBody> getKeyProjects(CommandCenterBO commandCenterBO);
+
+    // 重点区域
+    List<AreaBody> getImportAreaList(CommandCenterBO commandCenterBO);
+
+    // 重点区域 分页
+    List<Map<String, Object>> getImportAreaListPage(CommandCenterBO commandCenterBO);
+
+    // 一网通办
+    CenterdataTForestNetworkprocessing allAtOnce(CommandCenterBO commandCenterBO);
+
+    // 机器人
+    Object searchAllYouWant(CommandCenterBO commandCenterBO);
+
+    // 四长网格树状结构
+    List<Map<String, Object>> fourLengthOverTree(CommandCenterBO commandCenterBO);
+
+    // 手机端四长列表
+    List<Map<String, Object>> fourLengthOver(CommandCenterBO commandCenterBO);
+
+    // 资源列表
+    List<Map<String, Object>> resourceList(AgricultureViewBO agricultureViewBO);
+
+    // 资源落点
+    List<Map<String, Object>> resourcePoint(AgricultureViewBO agricultureViewBO);
+}

+ 540 - 0
src/main/java/com/sooka/sponest/data/commandcenter/service/impl/ICommandCenterServiceImpl.java

@@ -0,0 +1,540 @@
+package com.sooka.sponest.data.commandcenter.service.impl;
+
+import com.ruoyi.common.core.utils.SpringUtils;
+import com.ruoyi.common.core.utils.StringUtils;
+import com.ruoyi.common.datascope.annotation.DataScopeMutiDept;
+import com.ruoyi.common.security.utils.DictUtils;
+import com.ruoyi.system.api.RemoteConfigService;
+import com.sooka.sponest.data.base.service.impl.BaseServiceImpl;
+import com.sooka.sponest.data.commandcenter.domian.AreaBody;
+import com.sooka.sponest.data.commandcenter.domian.CommandCenterBO;
+import com.sooka.sponest.data.commandcenter.domian.ProjectBody;
+import com.sooka.sponest.data.commandcenter.mapper.CommandCenterMapper;
+import com.sooka.sponest.data.commandcenter.service.ICommandCenterService;
+import com.sooka.sponest.data.digitalagriculture.domain.bo.AgricultureViewBO;
+import com.sooka.sponest.data.digitalagriculture.service.IAgricultureViewService;
+import com.sooka.sponest.data.digitalemergency.service.IEmergencyViewService;
+import com.sooka.sponest.data.digitalenvironment.service.IEnvironmentViewService;
+import com.sooka.sponest.data.digitalfirecontrol.service.IFireControlViewService;
+import com.sooka.sponest.data.digitalforest.service.IForestViewService;
+import com.sooka.sponest.data.digitalresource.domain.CenterdataTFarmGrid;
+import com.sooka.sponest.data.digitalresource.service.ICenterdataTFarmGridService;
+import com.sooka.sponest.data.digitalresource.service.IResourceViewService;
+import com.sooka.sponest.data.digitaltraffic.service.ITrafficViewService;
+import com.sooka.sponest.data.digitalwater.service.IWaterViewService;
+import com.sooka.sponest.data.generalbusiness.domain.CenterdataTForestNetworkprocessing;
+import com.sooka.sponest.data.generalbusiness.domain.CenterdataTKeyProjectsSchedule;
+import com.sooka.sponest.data.utils.BigDecimalUtil;
+import com.sooka.sponest.data.utils.DataConstants;
+import com.sooka.sponest.data.utils.TreeUtil;
+import org.apache.commons.collections4.MapUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.LinkedMultiValueMap;
+import org.springframework.util.MultiValueMap;
+
+import java.util.*;
+import java.util.stream.Collectors;
+
+/**
+ * @author hanfucheng
+ * @date 2023/4/25 9:44
+ */
+@Service
+public class ICommandCenterServiceImpl extends BaseServiceImpl implements ICommandCenterService {
+
+    @Autowired
+    private CommandCenterMapper commandCenterMapper;
+
+    @Autowired
+    private ICenterdataTFarmGridService centerdataTFarmGridService;
+
+    @Autowired
+    private IAgricultureViewService agricultureViewService;
+
+    @Autowired
+    private IEmergencyViewService emergencyViewService;
+
+    @Autowired
+    private IEnvironmentViewService environmentViewService;
+
+    @Autowired
+    private IFireControlViewService fireControlViewService;
+
+    @Autowired
+    private IForestViewService forestViewService;
+
+    @Autowired
+    private IResourceViewService resourceViewService;
+
+    @Autowired
+    private ITrafficViewService trafficViewService;
+
+    @Autowired
+    private IWaterViewService waterViewService;
+
+    @Override
+    public Map<String, Object> fourLengthOverview(CommandCenterBO commandCenterBO) {
+        setSookaDataBase(commandCenterBO);
+        Map<String, Object> resultMap = new HashMap<>();
+        resultMap.put("total", commandCenterMapper.getFourLengthCount(commandCenterBO));
+        resultMap.put("patrol", commandCenterMapper.getFourLengthPatrolDistance(commandCenterBO));
+        return resultMap;
+    }
+
+    @Override
+    public Map<String, Object> getOverview(CommandCenterBO commandCenterBO) {
+        setSookaDataBase(commandCenterBO);
+        List<Map<String, Object>> mapList = commandCenterMapper.getOverview(commandCenterBO);
+        Map<String, Object> result = new LinkedHashMap<>();
+        for (int a = 1; a <= 4; a++) {
+            for (Map<String, Object> map : mapList) {
+                if (String.valueOf(a).equals(MapUtils.getString(map, "name"))) {
+                    result.put(String.valueOf(a), map.get("num"));
+                }
+            }
+            result.putIfAbsent(String.valueOf(a), 0);
+        }
+        return result;
+    }
+
+    @Override
+    public int fourLengNum(CommandCenterBO commandCenterBO) {
+        setSookaDataBase(commandCenterBO);
+        return commandCenterMapper.getFourLengthCount(commandCenterBO);
+    }
+
+    @Override
+    public List<Map<String, Object>> patrolDistance(CommandCenterBO commandCenterBO) {
+        setSookaDataBase(commandCenterBO);
+        return commandCenterMapper.getFourLengthPatrolDistance(commandCenterBO);
+    }
+
+    @Override
+    public Map<String, Object> planDegree(CommandCenterBO commandCenterBO) {
+        setSookaDataBase(commandCenterBO);
+        List<Map<String, Object>> list = commandCenterMapper.planDegree(commandCenterBO);
+        return fill(list);
+    }
+
+    @Override
+    public Map<String, Object> taskDegree(CommandCenterBO commandCenterBO) {
+        setSookaDataBase(commandCenterBO);
+        List<Map<String, Object>> list = commandCenterMapper.taskDegree(commandCenterBO);
+        return fill(list);
+    }
+
+    private Map<String, Object> fill(List<Map<String, Object>> list) {
+        Map<String, Object> result = new LinkedHashMap<>();
+        String[] number = {"1", "2", "3", "6"};
+        for (String s : number) {
+            for (Map<String, Object> map : list) {
+                if (s.equals(MapUtils.getString(map, "name"))) {
+                    result.put(s, map.get("num"));
+                }
+            }
+            result.putIfAbsent(s, "0.00");
+        }
+        return result;
+    }
+
+    /**
+     * 重点工程
+     *
+     * @param commandCenterBO
+     * @return
+     */
+    @Override
+    public List<ProjectBody> getKeyProjects(CommandCenterBO commandCenterBO) {
+        setSookaDataBase(commandCenterBO);
+        List<ProjectBody> projectBodies = commandCenterMapper.getKeyProjects(commandCenterBO);
+        List<String> projectIds = projectBodies.stream().map(ProjectBody::getProjectId).collect(Collectors.toList());
+        commandCenterBO.getParams().put("projectIds", projectIds);
+
+        Map<String, Object> environmentMap = DictUtils.getDictCacheToMap("centerdata_environment");
+        Map<String, Object> zjNatureMap = DictUtils.getDictCacheToMap("centerdata_zj_nature");
+        Map<String, Object> industryTypeMap = DictUtils.getDictCacheToMap("centerdata_industry_type");
+        Map<String, Object> parkMap = DictUtils.getDictCacheToMap("centerdata_park");
+        projectBodies.forEach(item -> {
+            if (!StringUtils.isEmpty(item.getEnvironment()) && environmentMap.containsKey(item.getEnvironment())){
+                item.setEnvironment(environmentMap.get(item.getEnvironment()).toString());
+            }
+            if (!StringUtils.isEmpty(item.getNature()) && zjNatureMap.containsKey(item.getNature())){
+                item.setNature(zjNatureMap.get(item.getNature()).toString());
+            }
+            if (!StringUtils.isEmpty(item.getIndustryType()) && industryTypeMap.containsKey(item.getIndustryType())){
+                item.setIndustryType(industryTypeMap.get(item.getIndustryType()).toString());
+            }
+            if (!StringUtils.isEmpty(item.getPark()) && parkMap.containsKey(item.getPark())){
+                item.setPark(parkMap.get(item.getPark()).toString());
+            }
+        });
+        List<Map<String, Object>> cameraList = commandCenterMapper.getKeyProjectsCamera(commandCenterBO);
+        projectBodies.forEach(project -> cameraList.forEach(item -> {
+            if (project.getProjectId().equals(MapUtils.getString(item, "projectId"))) {
+                project.getCameraList().add(item);
+            }
+        }));
+        List<CenterdataTKeyProjectsSchedule> scheduleList = commandCenterMapper.getKeyProjectsSchedule(commandCenterBO);
+        projectBodies.forEach(project -> scheduleList.forEach(schedule -> {
+            if (project.getProjectId().equals(schedule.getKeyProjectsId())) {
+                project.getScheduleList().add(schedule);
+            }
+        }));
+        return projectBodies;
+    }
+
+    /**
+     * 重点区域
+     *
+     * @param commandCenterBO
+     * @return
+     */
+    @Override
+    public List<AreaBody> getImportAreaList(CommandCenterBO commandCenterBO) {
+        setSookaDataBase(commandCenterBO);
+        List<AreaBody> typeList = commandCenterMapper.getImportAreaType(commandCenterBO);
+        List<Map<String, Object>> areaList = commandCenterMapper.getImportAreaList(commandCenterBO);
+        List<String> areaIds = areaList.stream().map(item -> MapUtils.getString(item, "id")).collect(Collectors.toList());
+        commandCenterBO.getParams().put("areaIds", areaIds);
+        List<Map<String, Object>> cameraList = commandCenterMapper.getImportAreaCamera(commandCenterBO);
+        // 区域绑定摄像头
+        areaList.forEach(area -> {
+            List<Map<String, Object>> list = new ArrayList<>();
+            cameraList.forEach(camera -> {
+                if (MapUtils.getString(area, "id").equals(MapUtils.getString(camera, "areaId"))) {
+                    list.add(camera);
+                }
+            });
+            area.put("cameraList", list);
+        });
+        // 类型绑定区域
+        typeList.forEach(type -> areaList.forEach(item -> {
+            if (type.getAreaType().equals(MapUtils.getString(item, "projectType"))) {
+                type.getAreaList().add(item);
+            }
+        }));
+        return typeList;
+    }
+
+    /**
+     * 重点区域 分页
+     *
+     * @param commandCenterBO
+     * @return
+     */
+    @Override
+    public List<Map<String, Object>> getImportAreaListPage(CommandCenterBO commandCenterBO) {
+        setSookaDataBase(commandCenterBO);
+        List<Map<String, Object>> areaList = commandCenterMapper.getImportAreaList(commandCenterBO);
+        List<String> areaIds = areaList.stream().map(item -> MapUtils.getString(item, "id")).collect(Collectors.toList());
+        commandCenterBO.getParams().put("areaIds", areaIds);
+        List<Map<String, Object>> cameraList = commandCenterMapper.getImportAreaCamera(commandCenterBO);
+        // 区域绑定摄像头
+        areaList.forEach(area -> {
+            List<Map<String, Object>> list = new ArrayList<>();
+            cameraList.forEach(camera -> {
+                if (MapUtils.getString(area, "id").equals(MapUtils.getString(camera, "areaId"))) {
+                    list.add(camera);
+                }
+            });
+            area.put("cameraList", list);
+        });
+        return areaList;
+    }
+
+    /**
+     * 一网通办
+     *
+     * @param commandCenterBO
+     * @return
+     */
+    @Override
+    public CenterdataTForestNetworkprocessing allAtOnce(CommandCenterBO commandCenterBO) {
+        setSookaDataBase(commandCenterBO);
+        // 查询当天的数据实例
+        commandCenterBO.setTimeTag("0");
+        CenterdataTForestNetworkprocessing networkprocessing = commandCenterMapper.allAtOnce(commandCenterBO);
+        if (StringUtils.isNull(networkprocessing)) {
+            return null;// 当天数据为null,直接返回空对象
+        }
+        // 设置前日大厅办件总数
+        Long yesTodayTotal = 0L;
+        commandCenterBO.setTimeTag("1");
+        CenterdataTForestNetworkprocessing yestodaynetworkprocessing = commandCenterMapper.allAtOnce(commandCenterBO);
+        if (StringUtils.isNotNull(yestodaynetworkprocessing) && StringUtils.isNotNull(yestodaynetworkprocessing.getHallProcessingTotalNumber())) {
+            yesTodayTotal = yestodaynetworkprocessing.getHallProcessingTotalNumber();
+        }
+        networkprocessing.setPreviousDayHallProcessingTotalNumber(yesTodayTotal);
+        // 设置同比
+        String num = BigDecimalUtil.getPercentage(BigDecimalUtil.subtractionDouble(networkprocessing.getHallProcessingTotalNumber().doubleValue(),
+                yesTodayTotal.doubleValue(), 2), yesTodayTotal.doubleValue());
+        networkprocessing.setUpDown(num);
+        // 设置法人办结率
+        num = BigDecimalUtil.getPercentage(networkprocessing.getLegalPersonCompletionNumber().doubleValue(), networkprocessing.getLegalPersonProcessingNumber().doubleValue());
+        networkprocessing.setLegalPersonCompletionRate(num);
+        // 设置自然人办件办结率
+        num = BigDecimalUtil.getPercentage(networkprocessing.getNaturalPersonCompletionNumber().doubleValue(), networkprocessing.getNaturalPersonProcessingNumber().doubleValue());
+        networkprocessing.setNaturalPersonCompletionRate(num);
+        return networkprocessing;
+    }
+
+    @Override
+    public Object searchAllYouWant(CommandCenterBO commandCenterBO) {
+        setSookaDataBase(commandCenterBO);
+        Object obj = null;
+        if ("操作手册".equals(commandCenterBO.getKeyWord())) {
+            String prefix = SpringUtils.getBean(RemoteConfigService.class).remotegetConfigKey("downloadUrl").getData();
+            List<Map<String, Object>> result = commandCenterMapper.getOperationManual(commandCenterBO);
+            result.forEach(item -> {
+                String path = MapUtils.getString(item, "path");
+                String group = path.substring(0, path.indexOf('/'));
+                item.put("path", prefix + "Download?fileName=" + MapUtils.getString(item, "fileName")
+                        + "&&group=" + group + "&&path=" + path.substring(path.indexOf('/') + 1));
+            });
+            obj = result;
+        }
+        return obj;
+    }
+
+    @DataScopeMutiDept(deptAlias = "d")
+    @Override
+    public List<Map<String, Object>> fourLengthOverTree(CommandCenterBO commandCenterBO) {
+        setSookaDataBase(commandCenterBO);
+        if ("1".equals(commandCenterBO.getTimeTag())) {
+            List<Map<String, Object>> resultList = commandCenterMapper.getForestGridLevel(commandCenterBO);
+            List<Map<String, Object>> lineList = commandCenterMapper.getLineList(commandCenterBO);
+            return TreeUtil.listToTree(lineList, resultList);
+        }
+        // 获取河长、路长、田长
+        List<Map<String, Object>> leaderList = commandCenterMapper.getLeaderList(commandCenterBO);
+        // 获取所有网格
+        CenterdataTFarmGrid grid = new CenterdataTFarmGrid();
+        grid.setType(commandCenterBO.getTimeTag());
+        List<Map<String, Object>> gridList = centerdataTFarmGridService.selectCenterdataTFarmGridListTree(grid);
+        return TreeUtil.getAllTreeNew(leaderList, gridList);
+    }
+
+    @DataScopeMutiDept(deptAlias = "d")
+    @Override
+    public List<Map<String, Object>> fourLengthOver(CommandCenterBO commandCenterBO) {
+        setSookaDataBase(commandCenterBO);
+        List<Map<String, Object>> resultList = getForestLeader(commandCenterBO);
+        if (resultList != null) return resultList;
+        // 获取河长、路长、田长 2,3,6
+        List<Map<String, Object>> leaderList = commandCenterMapper.getLeaderList(commandCenterBO);
+        // 获取所有网格
+        CenterdataTFarmGrid grid = new CenterdataTFarmGrid();
+        grid.setType(commandCenterBO.getTimeTag());
+        List<Map<String, Object>> gridList = new ArrayList<>();
+        List<Map<String, Object>> tempList = centerdataTFarmGridService.selectCenterdataTFarmGridListTree(grid);
+        if (StringUtils.isNotBlank(commandCenterBO.getKeyWord())) {
+            List<Map<String, Object>> maps = tempList.stream().filter(o -> o.get("label").toString().contains(commandCenterBO.getKeyWord())).collect(Collectors.toList());
+            if (StringUtils.isNotEmpty(maps)) {
+                Set<String> ids = new HashSet<>();
+                maps.forEach(e -> {
+                    Object o = e.get("ancestors");
+                    ids.add(e.get("id").toString());
+                    ids.addAll(Arrays.asList(o.toString().split(",")));
+                });
+                List<String> list = new ArrayList<>(ids);
+                grid.getParams().put("list", list);
+                gridList = centerdataTFarmGridService.selectCenterdataTFarmGridListTree(grid);
+            } else {
+                return gridList;
+            }
+        } else {
+            gridList = centerdataTFarmGridService.selectCenterdataTFarmGridListTree(grid);
+        }
+        Map<String, Map<String, Object>> map = new HashMap<>();// 使用Map来存储所有查询结果,以id为key
+        for (Map<String, Object> item : gridList) {
+            item.put(DataConstants.TITLE, new ArrayList<>());// 初始化title为空
+            item.put("children", new ArrayList<>());// 初始化children空数组
+            map.put(String.valueOf(item.get("id")), item);// 将单个查询结果以id为键加入map
+        }
+        // 分组
+        MultiValueMap<String, Map<String, Object>> groupMap = new LinkedMultiValueMap();
+        leaderList.forEach(item -> groupMap.add(String.valueOf(item.get("id")), item));
+        // 设置title
+        Set<String> grids = new HashSet<>();
+        for (Map.Entry<String, List<Map<String, Object>>> key : groupMap.entrySet()) {
+            Map<String, Object> result = map.get(key.getKey());
+            if (result != null) {
+                result.put(DataConstants.TITLE, groupMap.get(key.getKey()));
+                grids.add(key.getKey());
+                grids.addAll(Arrays.asList(String.valueOf(result.get("ancestors")).split(",")));
+            }
+        }
+        // 提取有效数据
+        Iterator<Map<String, Object>> iterator = gridList.iterator();
+        while (iterator.hasNext()) {
+            Map<String, Object> mapItem = iterator.next();
+            if (!grids.contains(String.valueOf(mapItem.get("id")))) {
+                iterator.remove();
+            }
+        }
+        return gridList;
+    }
+
+    private List<Map<String, Object>> getForestLeader(CommandCenterBO commandCenterBO) {
+        if ("1".equals(commandCenterBO.getTimeTag())) {
+            List<Map<String, Object>> resultList = new ArrayList<>();
+            if (StringUtils.isNotBlank(commandCenterBO.getKeyWord())) {
+                List<String> collect = commandCenterMapper.getForestGridLevel(commandCenterBO).stream().map(o -> String.valueOf(o.get("id"))).collect(Collectors.toList());
+                if (StringUtils.isNotEmpty(collect)) {
+                    Set<String> ids = new HashSet<>();
+                    for (String s : collect) {
+                        String str = commandCenterMapper.getUpPoint(Long.valueOf(s));
+                        ids.addAll(Arrays.asList(str.split(",")));
+                    }
+                    List<String> list = new ArrayList<>(ids);
+                    commandCenterBO.getParams().put("list", list);
+                    resultList = commandCenterMapper.getForestGridLevel(commandCenterBO);
+                } else {
+                    return resultList;
+                }
+            } else {
+                resultList = commandCenterMapper.getForestGridLevel(commandCenterBO);
+            }
+            // 人员
+            List<Map<String, Object>> lineList = commandCenterMapper.getLineList(commandCenterBO);
+            Map<String, Map<String, Object>> map = new HashMap<>();// 使用Map来存储所有查询结果,以id为key
+            for (Map<String, Object> item : resultList) {
+                item.put(DataConstants.TITLE, new ArrayList<>());// 初始化title为空
+                item.put("children", new ArrayList<>());// 初始化children空数组
+                map.put(String.valueOf(item.get("id")), item);// 将单个查询结果以id为键加入map
+            }
+            // 分组
+            MultiValueMap<String, Map<String, Object>> groupMap = new LinkedMultiValueMap();
+            lineList.forEach(item -> groupMap.add(String.valueOf(item.get("id")), item));
+            // 设置title
+            for (Map.Entry<String, List<Map<String, Object>>> key : groupMap.entrySet()) {
+                Map<String, Object> result = map.get(key.getKey());
+                if (result != null) {
+                    result.put(DataConstants.TITLE, groupMap.get(key.getKey()));
+                }
+            }
+            return resultList;
+        }
+        return null;
+    }
+
+    @Override
+    public List<Map<String, Object>> resourceList(AgricultureViewBO agricultureViewBO) {
+        setSookaDataBase(agricultureViewBO);
+        List<Map<String, Object>> mapList = null;
+        switch (agricultureViewBO.getResourceType()) {
+            case "1":
+                // 林业
+                mapList = commandCenterMapper.forestryList(agricultureViewBO);
+                break;
+            case "2":
+                // 农业
+                mapList = commandCenterMapper.agricultureList(agricultureViewBO);
+                break;
+            case "3":
+                // 水利
+                mapList = commandCenterMapper.waterList(agricultureViewBO);
+                break;
+            case "4":
+                // 环保
+                mapList = commandCenterMapper.environmentalList(agricultureViewBO);
+                break;
+            case "5":
+                // 应急 + 消防
+                mapList = commandCenterMapper.emergencyList(agricultureViewBO);
+                List<Map<String, Object>> fireList = commandCenterMapper.fireList(agricultureViewBO);
+                mapList.addAll(fireList);
+                break;
+            case "6":
+                // 交通
+                mapList = commandCenterMapper.trafficList(agricultureViewBO);
+                break;
+            case "7":
+                // 资源
+                mapList = commandCenterMapper.resourceList(agricultureViewBO);
+                break;
+            case "8":
+                // 消防
+                mapList = commandCenterMapper.fireList(agricultureViewBO);
+                break;
+            default:
+                mapList = new ArrayList<>();
+        }
+        return mapList;
+    }
+
+    @Override
+    @DataScopeMutiDept(deptAlias = "d")
+    public List<Map<String, Object>> resourcePoint(AgricultureViewBO agricultureViewBO) {
+        setSookaDataBase(agricultureViewBO);
+        if ("centerdata_t_farm_agricultural_cooperatives".equals(agricultureViewBO.getType()) || "centerdata_t_farm_botany_protect_info".equals(agricultureViewBO.getType())
+                || "centerdata_t_farm_agricultural_machinery_info".equals(agricultureViewBO.getType())) {
+            agricultureViewBO.setDel("0");
+        }
+        if (agricultureViewBO.getType().contains("centerdata_t_farm_enterprise")) {
+            int a = agricultureViewBO.getType().indexOf('@');
+            agricultureViewBO.setAssort(agricultureViewBO.getType().substring(a + 1));
+            agricultureViewBO.setType(agricultureViewBO.getType().substring(0, a));
+        }
+        if (agricultureViewBO.getType().contains("centerdata_t_forest_firehydrant")) {
+            int a = agricultureViewBO.getType().indexOf('@');
+            agricultureViewBO.setFirehydrantType("firehydrant_" + agricultureViewBO.getType().substring(a + 1));
+            agricultureViewBO.setType(agricultureViewBO.getType().substring(0, a));
+        }
+        List<Map<String, Object>> pointList = null;
+        if ("centerdata_t_hydraulic_reach".equals(agricultureViewBO.getType())) {
+            pointList = commandCenterMapper.getLocation(agricultureViewBO);
+        } else {
+            pointList = commandCenterMapper.getLocationWithCamera(agricultureViewBO);
+        }
+        switch (agricultureViewBO.getResourceType()) {
+            case "1":
+                // 林业
+                pointList = forestViewService.dataFilter(pointList);
+                break;
+            case "2":
+                // 农业
+                agricultureViewService.dataFilter(pointList);
+                break;
+            case "3":
+                // 水利
+                waterViewService.dataFilter(pointList);
+                break;
+            case "4":
+                // 环保
+                environmentViewService.dataFilter(pointList);
+                break;
+            case "5":
+                // 应急
+                emergencyViewService.dataFilter(pointList);
+                break;
+            case "6":
+                // 交通
+                trafficViewService.dataFilter(pointList);
+                break;
+            case "7":
+                // 资源
+                resourceViewService.dataFilter(pointList);
+                break;
+            case "8":
+                // 消防
+                pointList = fireControlViewService.dataFilter(pointList);
+                break;
+            default:
+                break;
+        }
+        List<String> ids = pointList.stream().map(item -> MapUtils.getString(item, "id")).collect(Collectors.toList());
+        List<Map<String, Object>> cameraList = getCameraList(ids);
+        pointList.forEach(point -> {
+            List<Map<String, Object>> list = new ArrayList<>();
+            cameraList.forEach(camera -> {
+                if (MapUtils.getString(point, "id").equals(MapUtils.getString(camera, "businessId"))) {
+                    list.add(camera);
+                }
+            });
+            point.put("cameraList", list);
+        });
+        return pointList;
+    }
+}

+ 246 - 0
src/main/java/com/sooka/sponest/data/digitalagriculture/controller/AgricultureBigDataController.java

@@ -0,0 +1,246 @@
+package com.sooka.sponest.data.digitalagriculture.controller;
+
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.sooka.sponest.data.digitalagriculture.domain.CenterdataTFarmAgriculturalCooperatives;
+import com.sooka.sponest.data.digitalagriculture.domain.bo.AgricultureBigDataBO;
+import com.sooka.sponest.data.digitalagriculture.service.IAgricultureBigDataService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 农业大数据统计
+ *
+ * @author hanfucheng
+ * @date 2023/5/1 9:04
+ */
+@RestController
+@RequestMapping("/agricultureBigData")
+@Api(tags = "农业大数据统计")
+public class AgricultureBigDataController {
+
+    @Autowired
+    private IAgricultureBigDataService agricultureBigDataService;
+
+    /**
+     * 备案畜禽规模养殖场、种畜禽养殖场、企业、农药信息、农资监管、粮食四季变化数量统计
+     *
+     * @author hanfucheng
+     * @date 2023/5/19 15:01
+     */
+    @ApiOperation(value = "雷达图数量", notes = "雷达图数量")
+    @GetMapping("/getSixNum")
+    public AjaxResult getSixNum(AgricultureBigDataBO agricultureBigDataBO) {
+        List<Map<String, Object>> list = agricultureBigDataService.getSixNum(agricultureBigDataBO);
+        return AjaxResult.success(list);
+    }
+
+    /**
+     * 备案畜禽规模养殖场统计
+     *
+     * @author hanfucheng
+     * @date 2023/5/1 9:05
+     */
+    @ApiOperation(value = "备案畜禽规模养殖场统计", notes = "备案畜禽规模养殖场统计")
+    @GetMapping("/getNumByVarieties")
+    public AjaxResult fourLengthOverview(AgricultureBigDataBO agricultureBigDataBO) {
+        return AjaxResult.success(agricultureBigDataService.getNumByVarieties(agricultureBigDataBO));
+    }
+
+    /**
+     * 种畜禽养殖场统计
+     *
+     * @author hanfucheng
+     * @date 2023/5/1 12:38
+     */
+    @ApiOperation(value = "种畜禽养殖场", notes = "种畜禽养殖场")
+    @GetMapping("/getLivestockNumByVarieties")
+    public AjaxResult getLivestockNumByVarieties(AgricultureBigDataBO agricultureBigDataBO) {
+        return AjaxResult.success(agricultureBigDataService.getLivestockNumByVarieties(agricultureBigDataBO));
+    }
+
+    /**
+     * 企业分布统计
+     *
+     * @author hanfucheng
+     * @date 2023/5/1 12:56
+     */
+    @ApiOperation(value = "企业分布统计", notes = "企业分布统计")
+    @GetMapping("/enterpriseStat")
+    public AjaxResult enterpriseStat(AgricultureBigDataBO agricultureBigDataBO) {
+        return AjaxResult.success(agricultureBigDataService.enterpriseStat(agricultureBigDataBO));
+    }
+
+    /**
+     * 农药信息统计
+     *
+     * @author hanfucheng
+     * @date 2023/5/1 13:27
+     */
+    @ApiOperation(value = "农药信息", notes = "农药信息")
+    @GetMapping("/getInformation")
+    public AjaxResult getInformation(AgricultureBigDataBO agricultureBigDataBO) {
+        return AjaxResult.success(agricultureBigDataService.getInformation(agricultureBigDataBO));
+    }
+
+    /**
+     * 农资监管统计
+     *
+     * @author hanfucheng
+     * @date 2023/5/1 14:06
+     */
+    @ApiOperation(value = "农资监管", notes = "农资监管")
+    @GetMapping("/getSupervise")
+    public AjaxResult getSupervise(AgricultureBigDataBO agricultureBigDataBO) {
+        return AjaxResult.success(agricultureBigDataService.getSupervise(agricultureBigDataBO));
+    }
+
+    /**
+     * 粮食四季变化
+     *
+     * @author hanfucheng
+     * @date 2023/5/1 15:31
+     */
+    @ApiOperation(value = "粮食四季变化", notes = "粮食四季变化")
+    @GetMapping("/grainFourSeasons")
+    public AjaxResult grainFourSeasons(AgricultureBigDataBO agricultureBigDataBO) {
+        return AjaxResult.success(agricultureBigDataService.grainFourSeasons(agricultureBigDataBO));
+    }
+
+    /**
+     * 按照部门统计农业合作社个数
+     *
+     * @author hanfucheng
+     * @date 2023/5/16 15:37
+     */
+    @ApiOperation(value = "按照部门统计农业合作社个数", notes = "按照部门统计农业合作社个数")
+    @PostMapping("/cooperativesBigData")
+    public AjaxResult cooperativesBigData(@RequestBody CenterdataTFarmAgriculturalCooperatives centerdataTFarmAgriculturalCooperatives) {
+        return AjaxResult.success(agricultureBigDataService.cooperativesBigData(centerdataTFarmAgriculturalCooperatives));
+    }
+
+    /**
+     * 按照部门统计农机站个数
+     *
+     * @author hanfucheng
+     * @date 2023/5/16 15:51
+     */
+    @ApiOperation(value = "按照部门统计农机站个数", notes = "按照部门统计农机站个数")
+    @PostMapping("/machineryInfoBigData")
+    public AjaxResult machineryInfoBigData(@RequestBody CenterdataTFarmAgriculturalCooperatives centerdataTFarmAgriculturalCooperatives) {
+        return AjaxResult.success(agricultureBigDataService.machineryInfoBigData(centerdataTFarmAgriculturalCooperatives));
+    }
+
+    /**
+     * 按照部门统计耕地面积
+     *
+     * @author hanfucheng
+     * @date 2023/5/16 15:57
+     */
+    @ApiOperation(value = "按照部门统计耕地面积", notes = "按照部门统计耕地面积")
+    @PostMapping("/landInfoBigData")
+    public AjaxResult landInfoBigData(@RequestBody CenterdataTFarmAgriculturalCooperatives centerdataTFarmAgriculturalCooperatives) {
+        return AjaxResult.success(agricultureBigDataService.landInfoBigData(centerdataTFarmAgriculturalCooperatives));
+    }
+
+    /**
+     * 按照部门分数农业技术推广总站个数
+     *
+     * @author hanfucheng
+     * @date 2023/5/16 16:21
+     */
+    @ApiOperation(value = "按照部门分数农业技术推广总站个数", notes = "按照部门分数农业技术推广总站个数")
+    @PostMapping("/protectInfoBigData")
+    public AjaxResult protectInfoBigData(@RequestBody CenterdataTFarmAgriculturalCooperatives centerdataTFarmAgriculturalCooperatives) {
+        return AjaxResult.success(agricultureBigDataService.protectInfoBigData(centerdataTFarmAgriculturalCooperatives));
+    }
+
+    /**
+     * 按照部门分数畜保站个数
+     *
+     * @author hanfucheng
+     * @date 2023/5/16 16:32
+     */
+    @ApiOperation(value = "按照部门分数畜保站个数", notes = "按照部门分数畜保站个数")
+    @PostMapping("/xubaoBigData")
+    public AjaxResult xubaoBigData(@RequestBody CenterdataTFarmAgriculturalCooperatives centerdataTFarmAgriculturalCooperatives) {
+        return AjaxResult.success(agricultureBigDataService.xubaoBigData(centerdataTFarmAgriculturalCooperatives));
+    }
+
+    /**
+     * 按照部门分组种子库存量
+     *
+     * @author hanfucheng
+     * @date 2023/5/16 16:35
+     */
+    @ApiOperation(value = "按照部门分组种子库存量", notes = "按照部门分组种子库存量")
+    @PostMapping("/zhongZiBigData")
+    public AjaxResult zhongZiBigData(@RequestBody CenterdataTFarmAgriculturalCooperatives centerdataTFarmAgriculturalCooperatives) {
+        return AjaxResult.success(agricultureBigDataService.zhongZiBigData(centerdataTFarmAgriculturalCooperatives));
+    }
+
+    /**
+     * 按照部门分组化肥库存量
+     *
+     * @author hanfucheng
+     * @date 2023/5/16 16:37
+     */
+    @ApiOperation(value = "按照部门分组化肥库存量", notes = "按照部门分组化肥库存量")
+    @PostMapping("/huaFeiBigData")
+    public AjaxResult huaFeiBigData(@RequestBody CenterdataTFarmAgriculturalCooperatives centerdataTFarmAgriculturalCooperatives) {
+        return AjaxResult.success(agricultureBigDataService.huaFeiBigData(centerdataTFarmAgriculturalCooperatives));
+    }
+
+    /**
+     * 分组养殖类型分布
+     *
+     * @author hanfucheng
+     * @date 2023/5/16 16:40
+     */
+
+    @ApiOperation(value = "分组养殖类型分布", notes = "分组养殖类型分布")
+    @PostMapping("/YangZhiBigData")
+    public AjaxResult yangZhiBigData(@RequestBody CenterdataTFarmAgriculturalCooperatives centerdataTFarmAgriculturalCooperatives) {
+        return AjaxResult.success(agricultureBigDataService.yangZhiBigData(centerdataTFarmAgriculturalCooperatives));
+    }
+
+    /**
+     * 按照部门统计还田量
+     *
+     * @author hanfucheng
+     * @date 2023/5/16 16:49
+     */
+    @ApiOperation(value = "按照部门统计还田量", notes = "按照部门统计还田量")
+    @PostMapping("/getHuanTianSum")
+    public AjaxResult getHuanTianSum(@RequestBody CenterdataTFarmAgriculturalCooperatives centerdataTFarmAgriculturalCooperatives) {
+        return AjaxResult.success(agricultureBigDataService.getHuanTianSum(centerdataTFarmAgriculturalCooperatives));
+    }
+
+    /**
+     * 按照类型统计还田面积
+     *
+     * @author hanfucheng
+     * @date 2023/5/16 16:52
+     */
+    @ApiOperation(value = "按照类型统计还田面积", notes = "按照类型统计还田面积")
+    @PostMapping("/getHuanTianType")
+    public AjaxResult getHuanTianType(@RequestBody CenterdataTFarmAgriculturalCooperatives centerdataTFarmAgriculturalCooperatives) {
+        return AjaxResult.success(agricultureBigDataService.getHuanTianType(centerdataTFarmAgriculturalCooperatives));
+    }
+
+    /**
+     * 按照部门统计离田量
+     *
+     * @author hanfucheng
+     * @date 2023/5/16 16:54
+     */
+    @ApiOperation(value = "按照部门统计离田量", notes = "按照部门统计离田量")
+    @PostMapping("/getLItianDept")
+    public AjaxResult getLItianDept(@RequestBody CenterdataTFarmAgriculturalCooperatives centerdataTFarmAgriculturalCooperatives) {
+        return AjaxResult.success(agricultureBigDataService.getLItianDept(centerdataTFarmAgriculturalCooperatives));
+    }
+}

+ 63 - 0
src/main/java/com/sooka/sponest/data/digitalagriculture/controller/AgricultureViewController.java

@@ -0,0 +1,63 @@
+package com.sooka.sponest.data.digitalagriculture.controller;
+
+import com.ruoyi.common.core.web.controller.BaseController;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.sooka.sponest.data.digitalagriculture.domain.bo.AgricultureViewBO;
+import com.sooka.sponest.data.digitalagriculture.service.IAgricultureViewService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * 农业可视化接口
+ *
+ * @author hanfucheng
+ * @date 2023/5/4 11:12
+ */
+@RestController
+@RequestMapping("/agricultureView")
+@Api(tags = "农业可视化接口")
+public class AgricultureViewController extends BaseController {
+
+    @Autowired
+    private IAgricultureViewService agricultureViewService;
+
+    /**
+     * 数字农业可视化列表
+     *
+     * @author hanfucheng
+     * @date 2023/5/4 13:18
+     */
+    @ApiOperation(value = "数字农业可视化列表", notes = "数字农业可视化列表")
+    @GetMapping("/agricultureViewList")
+    public AjaxResult agricultureViewList(AgricultureViewBO agricultureViewBO) {
+        return AjaxResult.success(agricultureViewService.agricultureViewList(agricultureViewBO));
+    }
+
+    /**
+     * 数字农业可视化落点+按部门分组
+     *
+     * @author hanfucheng
+     * @date 2023/5/4 14:41
+     */
+    @ApiOperation(value = "数字农业可视化落点+按部门分组", notes = "数字农业可视化落点+按部门分组")
+    @GetMapping("/agricultureViewPoint")
+    public AjaxResult agricultureViewPoint(AgricultureViewBO agricultureViewBO) {
+        return AjaxResult.success(agricultureViewService.agricultureViewPoint(agricultureViewBO));
+    }
+
+    /**
+     * 按部门查询落点
+     *
+     * @author hanfucheng
+     * @date 2023/5/9 16:44
+     */
+    @ApiOperation(value = "按部门查询落点", notes = "按部门查询落点")
+    @GetMapping("/getPointByDeptId")
+    public AjaxResult getPointByDeptId(AgricultureViewBO agricultureViewBO) {
+        return AjaxResult.success(agricultureViewService.getPointByDeptId(agricultureViewBO));
+    }
+}

+ 145 - 0
src/main/java/com/sooka/sponest/data/digitalagriculture/controller/CenterdataTFarmAgriculturalCooperativesController.java

@@ -0,0 +1,145 @@
+package com.sooka.sponest.data.digitalagriculture.controller;
+
+import com.alibaba.fastjson.JSON;
+import com.ruoyi.common.core.constant.DocumentNameConstants;
+import com.ruoyi.common.core.web.controller.BaseController;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.web.page.TableDataInfo;
+import com.ruoyi.common.log.annotation.Log;
+import com.ruoyi.common.log.enums.BusinessType;
+import com.ruoyi.common.security.annotation.RequiresPermissions;
+import com.ruoyi.common.security.utils.DictUtils;
+import com.ruoyi.common.security.utils.SecurityUtils;
+import com.sooka.sponest.data.base.domain.ESVo;
+import com.sooka.sponest.data.digitalagriculture.domain.CenterdataTFarmAgriculturalCooperatives;
+import com.sooka.sponest.data.digitalagriculture.service.ICenterdataTFarmAgriculturalCooperativesService;
+import com.sooka.sponest.data.utils.DataProducerUtil;
+import com.sooka.sponest.data.utils.ExcelUtil;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * 农业合作社Controller
+ *
+ * @author ruoyi
+ * @date 2022-10-10
+ */
+@Api(tags = "农业合作社控制器")
+@RestController
+@RequestMapping("/Cooperatives")
+public class CenterdataTFarmAgriculturalCooperativesController extends BaseController {
+
+    @Autowired
+    private ICenterdataTFarmAgriculturalCooperativesService centerdataTFarmAgriculturalCooperativesService;
+
+    /**
+     * 查询农业合作社列表
+     */
+    @ApiOperation(value = "查询农业合作社列表", notes = "查询农业合作社列表")
+    @RequiresPermissions("agricultural_cooperatives:Cooperatives:list")
+    @GetMapping("/list")
+    public TableDataInfo list(CenterdataTFarmAgriculturalCooperatives centerdataTFarmAgriculturalCooperatives) {
+        startPage();
+        List<CenterdataTFarmAgriculturalCooperatives> list = centerdataTFarmAgriculturalCooperativesService.selectCenterdataTFarmAgriculturalCooperativesList(centerdataTFarmAgriculturalCooperatives);
+        return getDataTable(list);
+    }
+
+    // 远端调用 数字农业远端调用
+    @ApiOperation(value = "远端调用查询农业合作社列表", notes = "远端调用查询农业合作社列表")
+    @GetMapping("/listFen")
+    public TableDataInfo listFen(CenterdataTFarmAgriculturalCooperatives centerdataTFarmAgriculturalCooperatives) {
+        startPage();
+        List<CenterdataTFarmAgriculturalCooperatives> list = centerdataTFarmAgriculturalCooperativesService.selectCenterdataTFarmAgriculturalCooperativesList(centerdataTFarmAgriculturalCooperatives);
+        return getDataTable(list);
+    }
+
+    @ApiOperation(value = "农业合作社管理导入模板", notes = "农业合作社管理导入模板")
+    @PostMapping("/importTemplate")
+    public void importTemplate(HttpServletResponse response) {
+        ExcelUtil<CenterdataTFarmAgriculturalCooperatives> util = new ExcelUtil<>(CenterdataTFarmAgriculturalCooperatives.class);
+        util.importTemplateExcel(response, "农业合作社数据");
+    }
+
+    @ApiOperation(value = "农业合作社管理导入", notes = "农业合作社管理导入")
+    @Log(title = "农业合作社管理导入", businessType = BusinessType.IMPORT)
+    @RequiresPermissions("machinery_info:MachineryInfo:import")
+    @PostMapping("/import/importData")
+    public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception {
+        ExcelUtil<CenterdataTFarmAgriculturalCooperatives> util = new ExcelUtil<>(CenterdataTFarmAgriculturalCooperatives.class);
+        List<CenterdataTFarmAgriculturalCooperatives> list = util.importExcel(file.getInputStream());
+        String operName = SecurityUtils.getUsername();
+        String message = centerdataTFarmAgriculturalCooperativesService.importData(list, updateSupport, operName);
+        return AjaxResult.success(message);
+    }
+
+    /**
+     * 导出农业合作社列表
+     */
+    @ApiOperation(value = "导出农业合作社列表", notes = "导出农业合作社列表")
+    @RequiresPermissions("agricultural_cooperatives:Cooperatives:export")
+    @Log(title = "农业合作社", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, CenterdataTFarmAgriculturalCooperatives centerdataTFarmAgriculturalCooperatives) {
+        List<CenterdataTFarmAgriculturalCooperatives> list = centerdataTFarmAgriculturalCooperativesService.selectCenterdataTFarmAgriculturalCooperativesList(centerdataTFarmAgriculturalCooperatives);
+        ExcelUtil<CenterdataTFarmAgriculturalCooperatives> util = new ExcelUtil<>(CenterdataTFarmAgriculturalCooperatives.class);
+        util.exportExcel(response, list, "农业合作社数据");
+    }
+
+    /**
+     * 获取农业合作社详细信息
+     */
+    @ApiOperation(value = "获取农业合作社详细信息", notes = "获取农业合作社详细信息")
+    @RequiresPermissions("agricultural_cooperatives:Cooperatives:query")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") String id) {
+        return AjaxResult.success(centerdataTFarmAgriculturalCooperativesService.selectCenterdataTFarmAgriculturalCooperativesById(id));
+    }
+
+    /**
+     * 新增农业合作社
+     */
+    @ApiOperation(value = "新增农业合作社", notes = "新增农业合作社")
+    @RequiresPermissions("agricultural_cooperatives:Cooperatives:add")
+    @Log(title = "农业合作社", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@Validated @RequestBody CenterdataTFarmAgriculturalCooperatives centerdataTFarmAgriculturalCooperatives) {
+        int result = centerdataTFarmAgriculturalCooperativesService.insertCenterdataTFarmAgriculturalCooperatives(centerdataTFarmAgriculturalCooperatives);
+        DataProducerUtil.getInstance().publish(new ESVo(DocumentNameConstants.FARM_AGRICULTURAL_COOPERATIVES,BusinessType.INSERT, JSON.toJSONString(centerdataTFarmAgriculturalCooperatives)));
+        return toAjax(result);
+    }
+
+    /**
+     * 修改农业合作社
+     */
+    @ApiOperation(value = "修改农业合作社", notes = "修改农业合作社")
+    @RequiresPermissions("agricultural_cooperatives:Cooperatives:edit")
+    @Log(title = "农业合作社", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@Validated @RequestBody CenterdataTFarmAgriculturalCooperatives centerdataTFarmAgriculturalCooperatives) {
+        int result = centerdataTFarmAgriculturalCooperativesService.updateCenterdataTFarmAgriculturalCooperatives(centerdataTFarmAgriculturalCooperatives);
+        DataProducerUtil.getInstance().publish(new ESVo(DocumentNameConstants.FARM_AGRICULTURAL_COOPERATIVES,BusinessType.UPDATE, JSON.toJSONString(centerdataTFarmAgriculturalCooperatives)));
+        return toAjax(result);
+    }
+
+    /**
+     * 删除农业合作社
+     */
+    @ApiOperation(value = "删除农业合作社", notes = "删除农业合作社")
+    @RequiresPermissions("agricultural_cooperatives:Cooperatives:remove")
+    @Log(title = "农业合作社", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable String[] ids) {
+        int result = centerdataTFarmAgriculturalCooperativesService.deleteCenterdataTFarmAgriculturalCooperativesByIds(ids);
+        List<String> idList = Arrays.asList(ids);
+        DataProducerUtil.getInstance().publish(new ESVo(DocumentNameConstants.FARM_AGRICULTURAL_COOPERATIVES,BusinessType.DELETE, JSON.toJSONString(idList)));
+        return toAjax(result);
+    }
+}

+ 135 - 0
src/main/java/com/sooka/sponest/data/digitalagriculture/controller/CenterdataTFarmAgriculturalMachineryInfoController.java

@@ -0,0 +1,135 @@
+package com.sooka.sponest.data.digitalagriculture.controller;
+
+import com.ruoyi.common.core.web.controller.BaseController;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.web.page.TableDataInfo;
+import com.ruoyi.common.log.annotation.Log;
+import com.ruoyi.common.log.enums.BusinessType;
+import com.ruoyi.common.security.annotation.RequiresPermissions;
+import com.ruoyi.common.security.utils.SecurityUtils;
+import com.sooka.sponest.data.digitalagriculture.domain.CenterdataTFarmAgriculturalMachineryInfo;
+import com.sooka.sponest.data.digitalagriculture.service.ICenterdataTFarmAgriculturalMachineryInfoService;
+import com.sooka.sponest.data.utils.ExcelUtil;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+/**
+ * 农机技术推广部门信息Controller
+ *
+ * @author ruoyi
+ * @date 2022-10-10
+ */
+@Api(tags = "农机技术推广部门信息控制器")
+@RestController
+@RequestMapping("/AgriculturalMachineryInfo")
+public class CenterdataTFarmAgriculturalMachineryInfoController extends BaseController {
+
+    @Autowired
+    private ICenterdataTFarmAgriculturalMachineryInfoService centerdataTFarmAgriculturalMachineryInfoService;
+
+    /**
+     * 查询农机技术推广部门信息列表
+     */
+    @ApiOperation(value = "查询农机技术推广部门信息列表", notes = "查询农机技术推广部门信息列表")
+    @RequiresPermissions("agricultural_machinery_info:AgriculturalMachineryInfo:list")
+    @GetMapping("/list")
+    public TableDataInfo list(CenterdataTFarmAgriculturalMachineryInfo centerdataTFarmAgriculturalMachineryInfo) {
+        startPage();
+        List<CenterdataTFarmAgriculturalMachineryInfo> list = centerdataTFarmAgriculturalMachineryInfoService.selectCenterdataTFarmAgriculturalMachineryInfoList(centerdataTFarmAgriculturalMachineryInfo);
+        return getDataTable(list);
+    }
+
+    /*
+     * 数字农业远端调用
+     * */
+    @ApiOperation(value = "远端查询农机技术推广部门信息", notes = "远端查询农机技术推广部门信息")
+    @GetMapping("/listNongJiZhanFen")
+    public TableDataInfo listNongJiZhanFen(CenterdataTFarmAgriculturalMachineryInfo centerdataTFarmAgriculturalMachineryInfo) {
+        startPage();
+        List<CenterdataTFarmAgriculturalMachineryInfo> list = centerdataTFarmAgriculturalMachineryInfoService.selectCenterdataTFarmAgriculturalMachineryInfoList(centerdataTFarmAgriculturalMachineryInfo);
+        return getDataTable(list);
+    }
+
+    @ApiOperation(value = "农机技术推广部门信息管理导入模板", notes = "农机技术推广部门信息管理导入模板")
+    @PostMapping("/importTemplate")
+    public void importTemplate(HttpServletResponse response) {
+        ExcelUtil<CenterdataTFarmAgriculturalMachineryInfo> util = new ExcelUtil<>(CenterdataTFarmAgriculturalMachineryInfo.class);
+        util.importTemplateExcel(response, "农机技术推广部门信息数据");
+    }
+
+    @ApiOperation(value = "农机技术推广部门信息管理导入", notes = "农机技术推广部门信息管理导入")
+    @Log(title = "农机技术推广部门信息管理导入", businessType = BusinessType.IMPORT)
+    @RequiresPermissions("machinery_info:MachineryInfo:import")
+    @PostMapping("/import/importData")
+    public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception {
+        ExcelUtil<CenterdataTFarmAgriculturalMachineryInfo> util = new ExcelUtil<>(CenterdataTFarmAgriculturalMachineryInfo.class);
+        List<CenterdataTFarmAgriculturalMachineryInfo> list = util.importExcel(file.getInputStream());
+        String operName = SecurityUtils.getUsername();
+        String message = centerdataTFarmAgriculturalMachineryInfoService.importData(list, updateSupport, operName);
+        return AjaxResult.success(message);
+    }
+
+    /**
+     * 导出农机技术推广部门信息列表
+     */
+    @ApiOperation(value = "导出农机技术推广部门信息列表", notes = "导出农机技术推广部门信息列表")
+    @RequiresPermissions("agricultural_machinery_info:AgriculturalMachineryInfo:export")
+    @Log(title = "农机技术推广部门信息", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, CenterdataTFarmAgriculturalMachineryInfo centerdataTFarmAgriculturalMachineryInfo) {
+        List<CenterdataTFarmAgriculturalMachineryInfo> list = centerdataTFarmAgriculturalMachineryInfoService.selectCenterdataTFarmAgriculturalMachineryInfoList(centerdataTFarmAgriculturalMachineryInfo);
+        ExcelUtil<CenterdataTFarmAgriculturalMachineryInfo> util = new ExcelUtil<>(CenterdataTFarmAgriculturalMachineryInfo.class);
+        util.exportExcel(response, list, "农机技术推广部门信息数据");
+    }
+
+    /**
+     * 获取农机技术推广部门信息详细信息
+     */
+    @ApiOperation(value = "获取农机技术推广部门信息详细信息", notes = "获取农机技术推广部门信息详细信息")
+    @RequiresPermissions("agricultural_machinery_info:AgriculturalMachineryInfo:query")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") String id) {
+        return AjaxResult.success(centerdataTFarmAgriculturalMachineryInfoService.selectCenterdataTFarmAgriculturalMachineryInfoById(id));
+    }
+
+    /**
+     * 新增农机技术推广部门信息
+     */
+    @ApiOperation(value = "新增农机技术推广部门信息", notes = "新增农机技术推广部门信息")
+    @RequiresPermissions("agricultural_machinery_info:AgriculturalMachineryInfo:add")
+    @Log(title = "农机技术推广部门信息", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@Validated @RequestBody CenterdataTFarmAgriculturalMachineryInfo centerdataTFarmAgriculturalMachineryInfo) {
+        return toAjax(centerdataTFarmAgriculturalMachineryInfoService.insertCenterdataTFarmAgriculturalMachineryInfo(centerdataTFarmAgriculturalMachineryInfo));
+    }
+
+    /**
+     * 修改农机技术推广部门信息
+     */
+    @ApiOperation(value = "修改农机技术推广部门信息", notes = "修改农机技术推广部门信息")
+    @RequiresPermissions("agricultural_machinery_info:AgriculturalMachineryInfo:edit")
+    @Log(title = "农机技术推广部门信息", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@Validated @RequestBody CenterdataTFarmAgriculturalMachineryInfo centerdataTFarmAgriculturalMachineryInfo) {
+        return toAjax(centerdataTFarmAgriculturalMachineryInfoService.updateCenterdataTFarmAgriculturalMachineryInfo(centerdataTFarmAgriculturalMachineryInfo));
+    }
+
+    /**
+     * 删除农机技术推广部门信息
+     */
+    @ApiOperation(value = "删除农机技术推广部门信息", notes = "删除农机技术推广部门信息")
+    @RequiresPermissions("agricultural_machinery_info:AgriculturalMachineryInfo:remove")
+    @Log(title = "农机技术推广部门信息", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable String[] ids) {
+        int result = centerdataTFarmAgriculturalMachineryInfoService.deleteCenterdataTFarmAgriculturalMachineryInfoByIds(ids);
+        return toAjax(result);
+    }
+}

+ 105 - 0
src/main/java/com/sooka/sponest/data/digitalagriculture/controller/CenterdataTFarmAgriculturalSuperviseController.java

@@ -0,0 +1,105 @@
+package com.sooka.sponest.data.digitalagriculture.controller;
+
+import com.ruoyi.common.core.web.controller.BaseController;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.web.page.TableDataInfo;
+import com.ruoyi.common.log.annotation.Log;
+import com.ruoyi.common.log.enums.BusinessType;
+import com.ruoyi.common.security.annotation.RequiresPermissions;
+import com.sooka.sponest.data.digitalagriculture.domain.CenterdataTFarmAgriculturalSupervise;
+import com.sooka.sponest.data.digitalagriculture.service.ICenterdataTFarmAgriculturalSuperviseService;
+import com.sooka.sponest.data.utils.ExcelUtil;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+/**
+ * 农资监管Controller
+ *
+ * @author 韩福成
+ * @date 2023-04-30
+ */
+@RestController
+@RequestMapping("/supervise")
+@Api(tags = "农资监管")
+public class CenterdataTFarmAgriculturalSuperviseController extends BaseController {
+
+    @Autowired
+    private ICenterdataTFarmAgriculturalSuperviseService centerdataTFarmAgriculturalSuperviseService;
+
+    /**
+     * 查询农资监管列表
+     */
+    @ApiOperation(value = "查询农资监管列表", notes = "查询农资监管列表")
+    @RequiresPermissions("digitalagriculture:supervise:list")
+    @GetMapping("/list")
+    public TableDataInfo list(CenterdataTFarmAgriculturalSupervise centerdataTFarmAgriculturalSupervise) {
+        startPage();
+        List<CenterdataTFarmAgriculturalSupervise> list = centerdataTFarmAgriculturalSuperviseService.selectCenterdataTFarmAgriculturalSuperviseList(centerdataTFarmAgriculturalSupervise);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出农资监管列表
+     */
+    @ApiOperation(value = "导出农资监管列表", notes = "导出农资监管列表")
+    @RequiresPermissions("digitalagriculture:supervise:export")
+    @Log(title = "农资监管", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, CenterdataTFarmAgriculturalSupervise centerdataTFarmAgriculturalSupervise) {
+        List<CenterdataTFarmAgriculturalSupervise> list = centerdataTFarmAgriculturalSuperviseService.selectCenterdataTFarmAgriculturalSuperviseList(centerdataTFarmAgriculturalSupervise);
+        ExcelUtil<CenterdataTFarmAgriculturalSupervise> util = new ExcelUtil<>(CenterdataTFarmAgriculturalSupervise.class);
+        util.exportExcel(response, list, "农资监管数据");
+    }
+
+    /**
+     * 获取农资监管详细信息
+     */
+    @ApiOperation(value = "获取农资监管详细信息", notes = "获取农资监管详细信息")
+    @RequiresPermissions("digitalagriculture:supervise:query")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") String id) {
+        return AjaxResult.success(centerdataTFarmAgriculturalSuperviseService.selectCenterdataTFarmAgriculturalSuperviseById(id));
+    }
+
+    /**
+     * 新增农资监管
+     */
+    @ApiOperation(value = "新增农资监管", notes = "新增农资监管")
+    @RequiresPermissions("digitalagriculture:supervise:add")
+    @Log(title = "农资监管", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@Validated @RequestBody CenterdataTFarmAgriculturalSupervise centerdataTFarmAgriculturalSupervise) {
+        int result = centerdataTFarmAgriculturalSuperviseService.insertCenterdataTFarmAgriculturalSupervise(centerdataTFarmAgriculturalSupervise);
+        return toAjax(result);
+    }
+
+    /**
+     * 修改农资监管
+     */
+    @ApiOperation(value = "修改农资监管", notes = "修改农资监管")
+    @RequiresPermissions("digitalagriculture:supervise:edit")
+    @Log(title = "农资监管", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@Validated @RequestBody CenterdataTFarmAgriculturalSupervise centerdataTFarmAgriculturalSupervise) {
+        int result = centerdataTFarmAgriculturalSuperviseService.updateCenterdataTFarmAgriculturalSupervise(centerdataTFarmAgriculturalSupervise);
+        return toAjax(result);
+    }
+
+    /**
+     * 删除农资监管
+     */
+    @ApiOperation(value = "删除农资监管", notes = "删除农资监管")
+    @RequiresPermissions("digitalagriculture:supervise:remove")
+    @Log(title = "农资监管", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable String[] ids) {
+        int result = centerdataTFarmAgriculturalSuperviseService.deleteCenterdataTFarmAgriculturalSuperviseByIds(ids);
+        return toAjax(result);
+    }
+}

+ 63 - 0
src/main/java/com/sooka/sponest/data/digitalagriculture/controller/CenterdataTFarmAnimalHusbandryInfoController.java

@@ -0,0 +1,63 @@
+package com.sooka.sponest.data.digitalagriculture.controller;
+
+import com.ruoyi.common.core.web.controller.BaseController;
+import com.ruoyi.common.core.web.page.TableDataInfo;
+import com.ruoyi.common.log.annotation.Log;
+import com.ruoyi.common.log.enums.BusinessType;
+import com.ruoyi.common.security.annotation.RequiresPermissions;
+import com.sooka.sponest.data.digitalagriculture.domain.CenterdataTFarmAnimalHusbandryInfo;
+import com.sooka.sponest.data.digitalagriculture.domain.vo.CenterdataTFarmAnimalHusbandryInfoCountVo;
+import com.sooka.sponest.data.digitalagriculture.service.ICenterdataTFarmAnimalHusbandryInfoService;
+import com.sooka.sponest.data.utils.ExcelUtil;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+/**
+ *畜牧信息统计
+ * time 2023/6/26
+ * liuhaonan
+ */
+@RestController
+@RequestMapping("/husbandry")
+@Api(tags = "畜牧信息统计")
+public class CenterdataTFarmAnimalHusbandryInfoController extends BaseController {
+
+    @Autowired
+    private ICenterdataTFarmAnimalHusbandryInfoService centerdataTFarmAnimalHusbandryInfoService;
+
+    /**
+     * 畜牧信息统计
+     *
+     * @param centerdataTFarmAnimalHusbandryInfo 畜牧信息统计
+     * @return 畜牧信息统计
+     */
+    @ApiOperation(value = "畜牧信息统计", notes = "畜牧信息统计")
+    @RequiresPermissions("digitalagriculture:husbandry:list")
+    @GetMapping("list")
+    public TableDataInfo list(CenterdataTFarmAnimalHusbandryInfo centerdataTFarmAnimalHusbandryInfo) {
+        startPage();
+        List<CenterdataTFarmAnimalHusbandryInfoCountVo> list = centerdataTFarmAnimalHusbandryInfoService.selectCenterdataTFarmAnimalHusbandryInfoList(centerdataTFarmAnimalHusbandryInfo);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出畜牧信息统计
+     */
+    @ApiOperation(value = "导出畜牧信息统计", notes = "导出畜牧信息统计")
+    @RequiresPermissions("digitalagriculture:husbandry:export")
+    @Log(title = "畜牧信息统计", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, CenterdataTFarmAnimalHusbandryInfo centerdataTFarmAnimalHusbandryInfo) {
+        List<CenterdataTFarmAnimalHusbandryInfoCountVo> list = centerdataTFarmAnimalHusbandryInfoService.selectCenterdataTFarmAnimalHusbandryInfoList(centerdataTFarmAnimalHusbandryInfo);
+        ExcelUtil<CenterdataTFarmAnimalHusbandryInfoCountVo> util = new ExcelUtil<>(CenterdataTFarmAnimalHusbandryInfoCountVo.class);
+        util.exportExcel(response, list, "畜牧信息统计");
+    }
+}

+ 105 - 0
src/main/java/com/sooka/sponest/data/digitalagriculture/controller/CenterdataTFarmAutumnHarvestScheduleController.java

@@ -0,0 +1,105 @@
+package com.sooka.sponest.data.digitalagriculture.controller;
+
+import com.ruoyi.common.core.web.controller.BaseController;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.web.page.TableDataInfo;
+import com.ruoyi.common.log.annotation.Log;
+import com.ruoyi.common.log.enums.BusinessType;
+import com.ruoyi.common.security.annotation.RequiresPermissions;
+import com.sooka.sponest.data.digitalagriculture.domain.CenterdataTFarmAutumnHarvestSchedule;
+import com.sooka.sponest.data.digitalagriculture.service.ICenterdataTFarmAutumnHarvestScheduleService;
+import com.sooka.sponest.data.utils.ExcelUtil;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+/**
+ * 秋收进度Controller
+ *
+ * @author 韩福成
+ * @date 2023-04-30
+ */
+@RestController
+@RequestMapping("/schedule")
+@Api(tags = "秋收进度")
+public class CenterdataTFarmAutumnHarvestScheduleController extends BaseController {
+
+    @Autowired
+    private ICenterdataTFarmAutumnHarvestScheduleService centerdataTFarmAutumnHarvestScheduleService;
+
+    /**
+     * 查询秋收进度列表
+     */
+    @ApiOperation(value = "查询秋收进度列表", notes = "查询秋收进度列表")
+    @RequiresPermissions("digitalagriculture:schedule:list")
+    @GetMapping("/list")
+    public TableDataInfo list(CenterdataTFarmAutumnHarvestSchedule centerdataTFarmAutumnHarvestSchedule) {
+        startPage();
+        List<CenterdataTFarmAutumnHarvestSchedule> list = centerdataTFarmAutumnHarvestScheduleService.selectCenterdataTFarmAutumnHarvestScheduleList(centerdataTFarmAutumnHarvestSchedule);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出秋收进度列表
+     */
+    @ApiOperation(value = "导出秋收进度列表", notes = "导出秋收进度列表")
+    @RequiresPermissions("digitalagriculture:schedule:export")
+    @Log(title = "秋收进度", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, CenterdataTFarmAutumnHarvestSchedule centerdataTFarmAutumnHarvestSchedule) {
+        List<CenterdataTFarmAutumnHarvestSchedule> list = centerdataTFarmAutumnHarvestScheduleService.selectCenterdataTFarmAutumnHarvestScheduleList(centerdataTFarmAutumnHarvestSchedule);
+        ExcelUtil<CenterdataTFarmAutumnHarvestSchedule> util = new ExcelUtil<>(CenterdataTFarmAutumnHarvestSchedule.class);
+        util.exportExcel(response, list, "秋收进度数据");
+    }
+
+    /**
+     * 获取秋收进度详细信息
+     */
+    @ApiOperation(value = "获取秋收进度详细信息", notes = "获取秋收进度详细信息")
+    @RequiresPermissions("digitalagriculture:schedule:query")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") String id) {
+        return AjaxResult.success(centerdataTFarmAutumnHarvestScheduleService.selectCenterdataTFarmAutumnHarvestScheduleById(id));
+    }
+
+    /**
+     * 新增秋收进度
+     */
+    @ApiOperation(value = "新增秋收进度", notes = "新增秋收进度")
+    @RequiresPermissions("digitalagriculture:schedule:add")
+    @Log(title = "秋收进度", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@Validated @RequestBody CenterdataTFarmAutumnHarvestSchedule centerdataTFarmAutumnHarvestSchedule) {
+        int result = centerdataTFarmAutumnHarvestScheduleService.insertCenterdataTFarmAutumnHarvestSchedule(centerdataTFarmAutumnHarvestSchedule);
+        return toAjax(result);
+    }
+
+    /**
+     * 修改秋收进度
+     */
+    @RequiresPermissions("digitalagriculture:schedule:edit")
+    @ApiOperation(value = "修改秋收进度", notes = "修改秋收进度")
+    @Log(title = "秋收进度", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@Validated @RequestBody CenterdataTFarmAutumnHarvestSchedule centerdataTFarmAutumnHarvestSchedule) {
+        int result = centerdataTFarmAutumnHarvestScheduleService.updateCenterdataTFarmAutumnHarvestSchedule(centerdataTFarmAutumnHarvestSchedule);
+        return toAjax(result);
+    }
+
+    /**
+     * 删除秋收进度
+     */
+    @ApiOperation(value = "删除秋收进度", notes = "删除秋收进度")
+    @RequiresPermissions("digitalagriculture:schedule:remove")
+    @Log(title = "秋收进度", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable String[] ids) {
+        int result = centerdataTFarmAutumnHarvestScheduleService.deleteCenterdataTFarmAutumnHarvestScheduleByIds(ids);
+        return toAjax(result);
+    }
+}

+ 63 - 0
src/main/java/com/sooka/sponest/data/digitalagriculture/controller/CenterdataTFarmAutumnHarvestScheduleCountController.java

@@ -0,0 +1,63 @@
+package com.sooka.sponest.data.digitalagriculture.controller;
+
+import com.ruoyi.common.core.web.controller.BaseController;
+import com.ruoyi.common.core.web.page.TableDataInfo;
+import com.ruoyi.common.log.annotation.Log;
+import com.ruoyi.common.log.enums.BusinessType;
+import com.ruoyi.common.security.annotation.RequiresPermissions;
+import com.sooka.sponest.data.digitalagriculture.domain.CenterdataTFarmAutumnHarvestSchedule;
+import com.sooka.sponest.data.digitalagriculture.domain.vo.CenterdataTFarmAutumnHarvestScheduleCountVo;
+import com.sooka.sponest.data.digitalagriculture.service.ICenterdataTFarmAutumnHarvestScheduleCountService;
+import com.sooka.sponest.data.utils.ExcelUtil;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+/**
+ * 秋收进度统计Controller
+ *
+ * @author
+ * @date
+ */
+@RestController
+@RequestMapping("/scheduleCount")
+@Api(tags = "秋收进度统计")
+public class CenterdataTFarmAutumnHarvestScheduleCountController extends BaseController {
+
+    @Autowired
+    private ICenterdataTFarmAutumnHarvestScheduleCountService centerdataTFarmAutumnHarvestScheduleCountServiceService;
+
+    /**
+     * 查询秋收进度统计列表
+     */
+    @ApiOperation(value = "查询秋收进度统计列表", notes = "查询秋收进度统计列表")
+    @RequiresPermissions("digitalagriculture:scheduleCount:list")
+    @GetMapping("/list")
+    public TableDataInfo list(CenterdataTFarmAutumnHarvestSchedule centerdataTFarmAutumnHarvestSchedule) {
+        startPage();
+        List<CenterdataTFarmAutumnHarvestScheduleCountVo> list = centerdataTFarmAutumnHarvestScheduleCountServiceService.selectCenterdataTFarmAutumnHarvestScheduleCountList(centerdataTFarmAutumnHarvestSchedule);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出秋收进度统计列表
+     */
+    @ApiOperation(value = "导出秋收进度统计列表", notes = "导出秋收进度统计列表")
+    @RequiresPermissions("digitalagriculture:scheduleCount:export")
+    @Log(title = "秋收进度统计", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, CenterdataTFarmAutumnHarvestSchedule centerdataTFarmAutumnHarvestSchedule) {
+        List<CenterdataTFarmAutumnHarvestScheduleCountVo> list = centerdataTFarmAutumnHarvestScheduleCountServiceService.selectCenterdataTFarmAutumnHarvestScheduleCountList(centerdataTFarmAutumnHarvestSchedule);
+        ExcelUtil<CenterdataTFarmAutumnHarvestScheduleCountVo> util = new ExcelUtil<>(CenterdataTFarmAutumnHarvestScheduleCountVo.class);
+        util.exportExcel(response, list, "秋收进度统计数据");
+    }
+
+
+}

+ 144 - 0
src/main/java/com/sooka/sponest/data/digitalagriculture/controller/CenterdataTFarmBotanyProtectInfoController.java

@@ -0,0 +1,144 @@
+package com.sooka.sponest.data.digitalagriculture.controller;
+
+import com.alibaba.fastjson.JSON;
+import com.ruoyi.common.core.constant.DocumentNameConstants;
+import com.ruoyi.common.core.web.controller.BaseController;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.web.page.TableDataInfo;
+import com.ruoyi.common.log.annotation.Log;
+import com.ruoyi.common.log.enums.BusinessType;
+import com.ruoyi.common.security.annotation.RequiresPermissions;
+import com.ruoyi.common.security.utils.SecurityUtils;
+import com.sooka.sponest.data.base.domain.ESVo;
+import com.sooka.sponest.data.digitalagriculture.domain.CenterdataTFarmBotanyProtectInfo;
+import com.sooka.sponest.data.digitalagriculture.service.ICenterdataTFarmBotanyProtectInfoService;
+import com.sooka.sponest.data.utils.DataProducerUtil;
+import com.sooka.sponest.data.utils.ExcelUtil;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * 农业技术推广总站信息Controller
+ *
+ * @author ruoyi
+ * @date 2022-10-10
+ */
+@Api(tags = "农业技术推广总站信息控制器")
+@RestController
+@RequestMapping("/BotanyProtectInfo")
+public class CenterdataTFarmBotanyProtectInfoController extends BaseController {
+
+    @Autowired
+    private ICenterdataTFarmBotanyProtectInfoService centerdataTFarmBotanyProtectInfoService;
+
+    /**
+     * 查询农业技术推广总站信息列表
+     */
+    @ApiOperation(value = "查询农业技术推广总站信息列表", notes = "查询农业技术推广总站信息列表")
+    @RequiresPermissions("botany_protect_info:BotanyProtectInfo:list")
+    @GetMapping("/list")
+    public TableDataInfo list(CenterdataTFarmBotanyProtectInfo centerdataTFarmBotanyProtectInfo) {
+        startPage();
+        List<CenterdataTFarmBotanyProtectInfo> list = centerdataTFarmBotanyProtectInfoService.selectCenterdataTFarmBotanyProtectInfoList(centerdataTFarmBotanyProtectInfo);
+        return getDataTable(list);
+    }
+
+    //远端调用
+    @ApiOperation(value = "远端调用查询农业技术推广总站信息列表", notes = "远端调用查询农业技术推广总站信息列表")
+    @GetMapping("/listFenProtect")
+    public TableDataInfo listFenProtect(CenterdataTFarmBotanyProtectInfo centerdataTFarmBotanyProtectInfo) {
+        startPage();
+        List<CenterdataTFarmBotanyProtectInfo> list = centerdataTFarmBotanyProtectInfoService.selectCenterdataTFarmBotanyProtectInfoList(centerdataTFarmBotanyProtectInfo);
+        return getDataTable(list);
+    }
+
+    @ApiOperation(value = "农业技术推广总站信息管理导入模板", notes = "农业技术推广总站信息管理导入模板")
+    @PostMapping("/importTemplate")
+    public void importTemplate(HttpServletResponse response) {
+        ExcelUtil<CenterdataTFarmBotanyProtectInfo> util = new ExcelUtil<>(CenterdataTFarmBotanyProtectInfo.class);
+        util.importTemplateExcel(response, "农业技术推广总站信息数据");
+    }
+
+    @ApiOperation(value = "农业技术推广总站信息管理导入", notes = "农业技术推广总站信息管理导入")
+    @Log(title = "农业技术推广总站信息管理导入", businessType = BusinessType.IMPORT)
+    @RequiresPermissions("machinery_info:MachineryInfo:import")
+    @PostMapping("/import/importData")
+    public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception {
+        ExcelUtil<CenterdataTFarmBotanyProtectInfo> util = new ExcelUtil<>(CenterdataTFarmBotanyProtectInfo.class);
+        List<CenterdataTFarmBotanyProtectInfo> list = util.importExcel(file.getInputStream());
+        String operName = SecurityUtils.getUsername();
+        String message = centerdataTFarmBotanyProtectInfoService.importData(list, updateSupport, operName);
+        return AjaxResult.success(message);
+    }
+
+    /**
+     * 导出农业技术推广总站信息列表
+     */
+    @ApiOperation(value = "导出农业技术推广总站信息列表", notes = "导出农业技术推广总站信息列表")
+    @RequiresPermissions("botany_protect_info:BotanyProtectInfo:export")
+    @Log(title = "农业技术推广总站信息", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, CenterdataTFarmBotanyProtectInfo centerdataTFarmBotanyProtectInfo) {
+        List<CenterdataTFarmBotanyProtectInfo> list = centerdataTFarmBotanyProtectInfoService.selectCenterdataTFarmBotanyProtectInfoList(centerdataTFarmBotanyProtectInfo);
+        ExcelUtil<CenterdataTFarmBotanyProtectInfo> util = new ExcelUtil<>(CenterdataTFarmBotanyProtectInfo.class);
+        util.exportExcel(response, list, "农业技术推广总站信息数据");
+    }
+
+    /**
+     * 获取农业技术推广总站信息详细信息
+     */
+    @ApiOperation(value = "获取农业技术推广总站信息详细信息", notes = "获取农业技术推广总站信息详细信息")
+    @RequiresPermissions("botany_protect_info:BotanyProtectInfo:query")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") String id) {
+        return AjaxResult.success(centerdataTFarmBotanyProtectInfoService.selectCenterdataTFarmBotanyProtectInfoById(id));
+    }
+
+    /**
+     * 新增农业技术推广总站信息
+     */
+    @ApiOperation(value = "新增农业技术推广总站信息", notes = "新增农业技术推广总站信息")
+    @RequiresPermissions("botany_protect_info:BotanyProtectInfo:add")
+    @Log(title = "农业技术推广总站信息", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@Validated @RequestBody CenterdataTFarmBotanyProtectInfo centerdataTFarmBotanyProtectInfo) {
+        int result = centerdataTFarmBotanyProtectInfoService.insertCenterdataTFarmBotanyProtectInfo(centerdataTFarmBotanyProtectInfo);
+        DataProducerUtil.getInstance().publish(new ESVo(DocumentNameConstants.FARM_BOTANY_PROTECT_INFO,BusinessType.INSERT, JSON.toJSONString(centerdataTFarmBotanyProtectInfo)));
+        return toAjax(result);
+    }
+
+    /**
+     * 修改农业技术推广总站信息
+     */
+    @ApiOperation(value = "修改农业技术推广总站信息", notes = "修改农业技术推广总站信息")
+    @RequiresPermissions("botany_protect_info:BotanyProtectInfo:edit")
+    @Log(title = "农业技术推广总站信息", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@Validated @RequestBody CenterdataTFarmBotanyProtectInfo centerdataTFarmBotanyProtectInfo) {
+        int result = centerdataTFarmBotanyProtectInfoService.updateCenterdataTFarmBotanyProtectInfo(centerdataTFarmBotanyProtectInfo);
+        DataProducerUtil.getInstance().publish(new ESVo(DocumentNameConstants.FARM_BOTANY_PROTECT_INFO,BusinessType.UPDATE, JSON.toJSONString(centerdataTFarmBotanyProtectInfo)));
+        return toAjax(result);
+    }
+
+    /**
+     * 删除农业技术推广总站信息
+     */
+    @ApiOperation(value = "删除农业技术推广总站信息", notes = "删除农业技术推广总站信息")
+    @RequiresPermissions("botany_protect_info:BotanyProtectInfo:remove")
+    @Log(title = "农业技术推广总站信息", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable String[] ids) {
+        int result = centerdataTFarmBotanyProtectInfoService.deleteCenterdataTFarmBotanyProtectInfoByIds(ids);
+        List<String> idList = Arrays.asList(ids);
+        DataProducerUtil.getInstance().publish(new ESVo(DocumentNameConstants.FARM_BOTANY_PROTECT_INFO,BusinessType.DELETE, JSON.toJSONString(idList)));
+        return toAjax(result);
+    }
+}

+ 105 - 0
src/main/java/com/sooka/sponest/data/digitalagriculture/controller/CenterdataTFarmBreedingFarmController.java

@@ -0,0 +1,105 @@
+package com.sooka.sponest.data.digitalagriculture.controller;
+
+import com.ruoyi.common.core.web.controller.BaseController;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.web.page.TableDataInfo;
+import com.ruoyi.common.log.annotation.Log;
+import com.ruoyi.common.log.enums.BusinessType;
+import com.ruoyi.common.security.annotation.RequiresPermissions;
+import com.sooka.sponest.data.digitalagriculture.domain.CenterdataTFarmBreedingFarm;
+import com.sooka.sponest.data.digitalagriculture.service.ICenterdataTFarmBreedingFarmService;
+import com.sooka.sponest.data.utils.ExcelUtil;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+/**
+ * 养殖场Controller
+ *
+ * @author phy
+ * @date 2023-04-30
+ */
+@RestController
+@RequestMapping("/breedingFarm")
+@Api(tags = "养殖场")
+public class CenterdataTFarmBreedingFarmController extends BaseController {
+
+    @Autowired
+    private ICenterdataTFarmBreedingFarmService centerdataTFarmBreedingFarmService;
+
+    /**
+     * 查询养殖场列表
+     */
+    @ApiOperation(value = "查询养殖场列表", notes = "查询养殖场列表")
+    @RequiresPermissions("digitalagriculture:breedingFarm:list")
+    @GetMapping("/list")
+    public TableDataInfo list(CenterdataTFarmBreedingFarm centerdataTFarmBreedingFarm) {
+        startPage();
+        List<CenterdataTFarmBreedingFarm> list = centerdataTFarmBreedingFarmService.selectCenterdataTFarmBreedingFarmList(centerdataTFarmBreedingFarm);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出养殖场列表
+     */
+    @ApiOperation(value = "导出养殖场列表", notes = "导出养殖场列表")
+    @RequiresPermissions("digitalagriculture:breedingFarm:export")
+    @Log(title = "养殖场", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, CenterdataTFarmBreedingFarm centerdataTFarmBreedingFarm) {
+        List<CenterdataTFarmBreedingFarm> list = centerdataTFarmBreedingFarmService.selectCenterdataTFarmBreedingFarmList(centerdataTFarmBreedingFarm);
+        ExcelUtil<CenterdataTFarmBreedingFarm> util = new ExcelUtil<>(CenterdataTFarmBreedingFarm.class);
+        util.exportExcel(response, list, "养殖场数据");
+    }
+
+    /**
+     * 获取养殖场详细信息
+     */
+    @ApiOperation(value = "获取养殖场详细信息", notes = "获取养殖场详细信息")
+    @RequiresPermissions("digitalagriculture:breedingFarm:query")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") String id) {
+        return AjaxResult.success(centerdataTFarmBreedingFarmService.selectCenterdataTFarmBreedingFarmById(id));
+    }
+
+    /**
+     * 新增养殖场
+     */
+    @ApiOperation(value = "新增养殖场", notes = "新增养殖场")
+    @RequiresPermissions("digitalagriculture:breedingFarm:add")
+    @Log(title = "备案畜禽规模养殖场", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@Validated @RequestBody CenterdataTFarmBreedingFarm centerdataTFarmBreedingFarm) {
+        int result = centerdataTFarmBreedingFarmService.insertCenterdataTFarmBreedingFarm(centerdataTFarmBreedingFarm);
+        return toAjax(result);
+    }
+
+    /**
+     * 修改养殖场
+     */
+    @ApiOperation(value = "修改养殖场", notes = "修改养殖场")
+    @RequiresPermissions("digitalagriculture:breedingFarm:edit")
+    @Log(title = "备案畜禽规模养殖场", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@Validated @RequestBody CenterdataTFarmBreedingFarm centerdataTFarmBreedingFarm) {
+        int result = centerdataTFarmBreedingFarmService.updateCenterdataTFarmBreedingFarm(centerdataTFarmBreedingFarm);
+        return toAjax(result);
+    }
+
+    /**
+     * 删除养殖场
+     */
+    @ApiOperation(value = "删除养殖场", notes = "删除养殖场")
+    @RequiresPermissions("digitalagriculture:breedingFarm:remove")
+    @Log(title = "备案养殖场", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable String[] ids) {
+        int result = centerdataTFarmBreedingFarmService.deleteCenterdataTFarmBreedingFarmByIds(ids);
+        return toAjax(result);
+    }
+}

+ 111 - 0
src/main/java/com/sooka/sponest/data/digitalagriculture/controller/CenterdataTFarmCesspitCollectController.java

@@ -0,0 +1,111 @@
+package com.sooka.sponest.data.digitalagriculture.controller;
+
+import com.ruoyi.common.core.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.web.controller.BaseController;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.web.page.TableDataInfo;
+import com.ruoyi.common.log.annotation.Log;
+import com.ruoyi.common.log.enums.BusinessType;
+import com.ruoyi.common.security.annotation.RequiresPermissions;
+import com.sooka.sponest.data.digitalagriculture.domain.CenterdataTFarmCesspitCollect;
+import com.sooka.sponest.data.digitalagriculture.service.ICenterdataTFarmCesspitCollectService;
+import com.sooka.sponest.data.utils.DataConstants;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+/**
+ * 粪污收集点Controller
+ * @author zhaozhan
+ * @date 2023/7/8
+ */
+@RestController
+@RequestMapping("/cesspitCollect")
+@Api(tags = "粪污收集点")
+public class CenterdataTFarmCesspitCollectController extends BaseController {
+    @Autowired
+    private ICenterdataTFarmCesspitCollectService centerdataTFarmCesspitCollectService;
+    /**
+     * 查询粪污收集点列表
+     */
+    @ApiOperation(value = "查询粪污收集点列表", notes = "查询粪污收集点列表")
+    @RequiresPermissions("cesspitCollect:cesspitCollect:list")
+    @GetMapping("/list")
+    public TableDataInfo list(CenterdataTFarmCesspitCollect centerdataTFarmCesspitCollect) {
+        startPage();
+        List<CenterdataTFarmCesspitCollect> list = centerdataTFarmCesspitCollectService.selectCenterdataTFarmCesspitCollectList(centerdataTFarmCesspitCollect);
+        return getDataTable(list);
+    }
+    /**
+     * 获取粪污收集点详细信息
+     */
+    @ApiOperation(value = "获取粪污收集点详细信息", notes = "获取粪污收集点详细信息")
+    @RequiresPermissions("cesspitCollect:cesspitCollect:query")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") String id) {
+        return AjaxResult.success(centerdataTFarmCesspitCollectService.selectCenterdataTFarmCesspitCollectById(id));
+    }
+
+    /**
+     * 新增粪污收集点
+     */
+    @ApiOperation(value = "新增粪污收集点", notes = "新增粪污收集点")
+    @RequiresPermissions("cesspitCollect:cesspitCollect:add")
+    @Log(title = "新增粪污收集点", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody CenterdataTFarmCesspitCollect centerdataTFarmCesspitCollect) {
+        String tableName = "centerdata_t_farm_cesspit_collect";
+        String[] keys = {"name","dept_id"};
+        String[] values = {centerdataTFarmCesspitCollect.getName(),String.valueOf(centerdataTFarmCesspitCollect.getDeptId())};
+        if(!centerdataTFarmCesspitCollectService.uniqueCheck(tableName, keys, values)){
+            return AjaxResult.error(DataConstants.ERROR_MSG);
+        }
+        int result = centerdataTFarmCesspitCollectService.insertCenterdataTFarmCesspitCollect(centerdataTFarmCesspitCollect);
+        return toAjax(result);
+    }
+    /**
+     * 修改粪污收集点
+     */
+    @ApiOperation(value = "修改粪污收集点", notes = "修改粪污收集点")
+    @RequiresPermissions("cesspitCollect:cesspitCollect:edit")
+    @Log(title = "修改粪污收集点", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody CenterdataTFarmCesspitCollect centerdataTFarmCesspitCollect) {
+        String tableName = "centerdata_t_farm_cesspit_collect";
+        String[] keys = {"name","id","dept_id"};
+        String[] values = {centerdataTFarmCesspitCollect.getName(),centerdataTFarmCesspitCollect.getId(),String.valueOf(centerdataTFarmCesspitCollect.getDeptId())};
+        if(!centerdataTFarmCesspitCollectService.uniqueCheck(tableName, keys, values)){
+            return AjaxResult.error(DataConstants.ERROR_MSG);
+        }
+        int result = centerdataTFarmCesspitCollectService.updateCenterdataTFarmCesspitCollect(centerdataTFarmCesspitCollect);
+        return toAjax(result);
+    }
+
+    /**
+     * 删除粪污收集点
+     */
+    @ApiOperation(value = "删除粪污收集点", notes = "删除粪污收集点")
+    @RequiresPermissions("cesspitCollect:cesspitCollect:remove")
+    @Log(title = "删除粪污收集点", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable String[] ids) {
+        int result = centerdataTFarmCesspitCollectService.deleteCenterdataTFarmCesspitCollectByIds(ids);
+        return toAjax(result);
+    }
+    /**
+     * 导出粪污收集点列表
+     */
+    @ApiOperation(value = "导出粪污收集点列表", notes = "导出粪污收集点列表")
+    @RequiresPermissions("cesspitCollect:cesspitCollect:export")
+    @Log(title = "导出粪污收集点列表", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, CenterdataTFarmCesspitCollect centerdataTFarmCesspitCollect) {
+        List<CenterdataTFarmCesspitCollect> list = centerdataTFarmCesspitCollectService.selectCenterdataTFarmCesspitCollectList(centerdataTFarmCesspitCollect);
+        ExcelUtil<CenterdataTFarmCesspitCollect> util = new ExcelUtil<>(CenterdataTFarmCesspitCollect.class);
+        util.exportExcel(response, list, "区域性粪污处置中心数据");
+    }
+}

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


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