소스 검색

乡村数据管理

Newspaper 2 주 전
부모
커밋
e82104a6a3
100개의 변경된 파일4947개의 추가작업 그리고 114개의 파일을 삭제
  1. 1 4
      app-admin/src/main/java/com/ruoyi/RuoYiJssApplication.java
  2. 1 1
      app-admin/src/main/java/com/ruoyi/web/common/PageRequest.java
  3. 112 0
      app-admin/src/main/java/com/ruoyi/web/controller/system/EmploymentController.java
  4. 115 0
      app-admin/src/main/java/com/ruoyi/web/controller/system/FacilityManagementController.java
  5. 74 2
      app-admin/src/main/java/com/ruoyi/web/controller/system/HouseInfoController.java
  6. 112 0
      app-admin/src/main/java/com/ruoyi/web/controller/system/IndustryController.java
  7. 119 0
      app-admin/src/main/java/com/ruoyi/web/controller/system/LocalPolicyController.java
  8. 81 6
      app-admin/src/main/java/com/ruoyi/web/controller/system/PersonInfoController.java
  9. 75 2
      app-admin/src/main/java/com/ruoyi/web/controller/system/ProjectsController.java
  10. 78 5
      app-admin/src/main/java/com/ruoyi/web/controller/system/SubsidyProjectsController.java
  11. 115 0
      app-admin/src/main/java/com/ruoyi/web/controller/system/VillageServiceController.java
  12. 134 0
      app-admin/src/main/java/com/ruoyi/web/controller/system/VillageSpecialController.java
  13. 115 0
      app-admin/src/main/java/com/ruoyi/web/controller/system/VillageTraditionController.java
  14. 31 0
      app-admin/src/main/java/com/ruoyi/web/domain/dto/Industry/IndustryDataQueryRequest.java
  15. 54 0
      app-admin/src/main/java/com/ruoyi/web/domain/dto/VillageService/VillageServiceAddRequest.java
  16. 58 0
      app-admin/src/main/java/com/ruoyi/web/domain/dto/VillageService/VillageServiceEditRequest.java
  17. 48 0
      app-admin/src/main/java/com/ruoyi/web/domain/dto/VillageService/VillageServiceQueryRequest.java
  18. 21 0
      app-admin/src/main/java/com/ruoyi/web/domain/dto/employment/EmploymentDataQueryRequest.java
  19. 125 0
      app-admin/src/main/java/com/ruoyi/web/domain/dto/facility/FacilityAddRequest.java
  20. 124 0
      app-admin/src/main/java/com/ruoyi/web/domain/dto/facility/FacilityEditRequest.java
  21. 32 0
      app-admin/src/main/java/com/ruoyi/web/domain/dto/facility/FacilityQueryRequest.java
  22. 75 0
      app-admin/src/main/java/com/ruoyi/web/domain/dto/house/HouseInfoAddRequest.java
  23. 80 0
      app-admin/src/main/java/com/ruoyi/web/domain/dto/house/HouseInfoEditRequest.java
  24. 10 3
      app-admin/src/main/java/com/ruoyi/web/domain/dto/house/HouseInfoQueryRequest.java
  25. 24 0
      app-admin/src/main/java/com/ruoyi/web/domain/dto/localPolicy/LocalPolicyAddRequest.java
  26. 30 0
      app-admin/src/main/java/com/ruoyi/web/domain/dto/localPolicy/LocalPolicyEditRequest.java
  27. 25 0
      app-admin/src/main/java/com/ruoyi/web/domain/dto/localPolicy/LocalPolicyQueryRequest.java
  28. 113 0
      app-admin/src/main/java/com/ruoyi/web/domain/dto/person/PersonInfoAddRequest.java
  29. 116 0
      app-admin/src/main/java/com/ruoyi/web/domain/dto/person/PersonInfoEditRequest.java
  30. 10 2
      app-admin/src/main/java/com/ruoyi/web/domain/dto/person/PersonInfoQueryRequest.java
  31. 33 0
      app-admin/src/main/java/com/ruoyi/web/domain/dto/productionData/ProductionDataAddRequest.java
  32. 42 0
      app-admin/src/main/java/com/ruoyi/web/domain/dto/projects/ProjectsAddRequest.java
  33. 50 0
      app-admin/src/main/java/com/ruoyi/web/domain/dto/projects/ProjectsEditRequest.java
  34. 7 0
      app-admin/src/main/java/com/ruoyi/web/domain/dto/projects/ProjectsQueryRequest.java
  35. 58 0
      app-admin/src/main/java/com/ruoyi/web/domain/dto/subsidyProjects/SubsidyProjectsAddRequest.java
  36. 62 0
      app-admin/src/main/java/com/ruoyi/web/domain/dto/subsidyProjects/SubsidyProjectsEditRequest.java
  37. 15 5
      app-admin/src/main/java/com/ruoyi/web/domain/dto/SubsidyProjects/SubsidyProjectsQueryRequest.java
  38. 60 0
      app-admin/src/main/java/com/ruoyi/web/domain/dto/villageSpecial/VillageSpecialAddRequest.java
  39. 62 0
      app-admin/src/main/java/com/ruoyi/web/domain/dto/villageSpecial/VillageSpecialEditRequest.java
  40. 31 0
      app-admin/src/main/java/com/ruoyi/web/domain/dto/villageSpecial/VillageSpecialQueryRequest.java
  41. 47 0
      app-admin/src/main/java/com/ruoyi/web/domain/dto/villageTradition/VillageTraditionAddRequest.java
  42. 52 0
      app-admin/src/main/java/com/ruoyi/web/domain/dto/villageTradition/VillageTraditionEditRequest.java
  43. 31 0
      app-admin/src/main/java/com/ruoyi/web/domain/dto/villageTradition/VillageTraditionQueryRequest.java
  44. 78 0
      app-admin/src/main/java/com/ruoyi/web/domain/entity/EmploymentData.java
  45. 133 0
      app-admin/src/main/java/com/ruoyi/web/domain/entity/FacilityManagement.java
  46. 3 1
      app-admin/src/main/java/com/ruoyi/web/domain/entity/HouseInfo.java
  47. 5 8
      app-admin/src/main/java/com/ruoyi/web/domain/entity/HouseholdInfo.java
  48. 68 0
      app-admin/src/main/java/com/ruoyi/web/domain/entity/IndustryData.java
  49. 58 0
      app-admin/src/main/java/com/ruoyi/web/domain/entity/LocalPolicy.java
  50. 3 1
      app-admin/src/main/java/com/ruoyi/web/domain/entity/PersonHouseRelation.java
  51. 3 4
      app-admin/src/main/java/com/ruoyi/web/domain/entity/PersonInfo.java
  52. 58 0
      app-admin/src/main/java/com/ruoyi/web/domain/entity/ProductionData.java
  53. 3 2
      app-admin/src/main/java/com/ruoyi/web/domain/entity/Projects.java
  54. 7 5
      app-admin/src/main/java/com/ruoyi/web/domain/entity/SubsidyProjects.java
  55. 88 0
      app-admin/src/main/java/com/ruoyi/web/domain/entity/VillageService.java
  56. 83 0
      app-admin/src/main/java/com/ruoyi/web/domain/entity/VillageSpecial.java
  57. 73 0
      app-admin/src/main/java/com/ruoyi/web/domain/entity/VillageTradition.java
  58. 38 0
      app-admin/src/main/java/com/ruoyi/web/domain/enums/VillageServiceEnum.java
  59. 39 0
      app-admin/src/main/java/com/ruoyi/web/domain/vo/FacilityManagement/BaseFacilityVO.java
  60. 24 0
      app-admin/src/main/java/com/ruoyi/web/domain/vo/FacilityManagement/ElectricVO.java
  61. 58 0
      app-admin/src/main/java/com/ruoyi/web/domain/vo/FacilityManagement/FacilityVOFactory.java
  62. 36 0
      app-admin/src/main/java/com/ruoyi/web/domain/vo/FacilityManagement/RoadVO.java
  63. 41 0
      app-admin/src/main/java/com/ruoyi/web/domain/vo/FacilityManagement/SchoolVO.java
  64. 30 0
      app-admin/src/main/java/com/ruoyi/web/domain/vo/FacilityManagement/TelecomVO.java
  65. 18 0
      app-admin/src/main/java/com/ruoyi/web/domain/vo/HouseInfoVO.java
  66. 28 0
      app-admin/src/main/java/com/ruoyi/web/domain/vo/PersonInfoVO.java
  67. 13 0
      app-admin/src/main/java/com/ruoyi/web/domain/vo/ProjectsVO.java
  68. 21 0
      app-admin/src/main/java/com/ruoyi/web/domain/vo/VillageSpecial/BAndBVO.java
  69. 21 0
      app-admin/src/main/java/com/ruoyi/web/domain/vo/VillageSpecial/BaoAnVO.java
  70. 28 0
      app-admin/src/main/java/com/ruoyi/web/domain/vo/VillageSpecial/BaseVillageSpecialVO.java
  71. 21 0
      app-admin/src/main/java/com/ruoyi/web/domain/vo/VillageSpecial/FarmHouseVO.java
  72. 52 0
      app-admin/src/main/java/com/ruoyi/web/domain/vo/VillageSpecial/SpecialVOFactory.java
  73. 16 0
      app-admin/src/main/java/com/ruoyi/web/mapper/EmploymentDataMapper.java
  74. 16 0
      app-admin/src/main/java/com/ruoyi/web/mapper/FacilityManagementMapper.java
  75. 16 0
      app-admin/src/main/java/com/ruoyi/web/mapper/IndustryDataMapper.java
  76. 15 0
      app-admin/src/main/java/com/ruoyi/web/mapper/LocalPolicyMapper.java
  77. 16 0
      app-admin/src/main/java/com/ruoyi/web/mapper/ProductionDataMapper.java
  78. 16 0
      app-admin/src/main/java/com/ruoyi/web/mapper/VillageServiceMapper.java
  79. 15 0
      app-admin/src/main/java/com/ruoyi/web/mapper/VillageSpecialMapper.java
  80. 16 0
      app-admin/src/main/java/com/ruoyi/web/mapper/VillageTraditionMapper.java
  81. 22 0
      app-admin/src/main/java/com/ruoyi/web/service/EmploymentDataService.java
  82. 32 0
      app-admin/src/main/java/com/ruoyi/web/service/FacilityManagementService.java
  83. 26 2
      app-admin/src/main/java/com/ruoyi/web/service/HouseInfoService.java
  84. 1 1
      app-admin/src/main/java/com/ruoyi/web/service/HouseholdInfoService.java
  85. 22 0
      app-admin/src/main/java/com/ruoyi/web/service/IndustryDataService.java
  86. 24 0
      app-admin/src/main/java/com/ruoyi/web/service/LocalPolicyService.java
  87. 1 1
      app-admin/src/main/java/com/ruoyi/web/service/PersonHouseRelationService.java
  88. 25 1
      app-admin/src/main/java/com/ruoyi/web/service/PersonInfoService.java
  89. 11 0
      app-admin/src/main/java/com/ruoyi/web/service/ProductionDataService.java
  90. 20 4
      app-admin/src/main/java/com/ruoyi/web/service/ProjectsService.java
  91. 19 2
      app-admin/src/main/java/com/ruoyi/web/service/SubsidyProjectsService.java
  92. 49 0
      app-admin/src/main/java/com/ruoyi/web/service/VillageServiceService.java
  93. 61 0
      app-admin/src/main/java/com/ruoyi/web/service/VillageSpecialService.java
  94. 47 0
      app-admin/src/main/java/com/ruoyi/web/service/VillageTraditionService.java
  95. 165 0
      app-admin/src/main/java/com/ruoyi/web/service/impl/EmploymentDataServiceImpl.java
  96. 171 0
      app-admin/src/main/java/com/ruoyi/web/service/impl/FacilityManagementServiceImpl.java
  97. 175 51
      app-admin/src/main/java/com/ruoyi/web/service/impl/HouseInfoServiceImpl.java
  98. 1 1
      app-admin/src/main/java/com/ruoyi/web/service/impl/HouseholdInfoServiceImpl.java
  99. 160 0
      app-admin/src/main/java/com/ruoyi/web/service/impl/IndustryDataServiceImpl.java
  100. 0 0
      app-admin/src/main/java/com/ruoyi/web/service/impl/LocalPolicyServiceImpl.java

+ 1 - 4
app-admin/src/main/java/com/ruoyi/RuoYiJssApplication.java

@@ -1,7 +1,5 @@
 package com.ruoyi;
 
-import com.ruoyi.common.server.EnvInputServer;
-//import com.ruoyi.web.core.nfid.NFIDServer;
 import org.mybatis.spring.annotation.MapperScan;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
@@ -17,8 +15,7 @@ import org.springframework.context.ApplicationContext;
 @MapperScan("com.ruoyi.web.mapper")
 public class RuoYiJssApplication
 {
-    public static void main(String[] args) throws Exception
-    {
+    public static void main(String[] args) throws Exception {
         // System.setProperty("spring.devtools.restart.enabled", "false");
         ApplicationContext applicationContext = SpringApplication.run(RuoYiJssApplication.class, args);
 //        applicationContext.getBean(NFIDServer.class).start();

+ 1 - 1
app-admin/src/main/java/com/ruoyi/web/common/PageRequest.java

@@ -14,7 +14,7 @@ public class PageRequest {
     /**
      * 当前页号
      */
-    private long current = 1;
+    private long pageNum = 1;
 
     /**
      * 页面大小

+ 112 - 0
app-admin/src/main/java/com/ruoyi/web/controller/system/EmploymentController.java

@@ -0,0 +1,112 @@
+package com.ruoyi.web.controller.system;
+
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.web.domain.dto.employment.EmploymentDataQueryRequest;
+import com.ruoyi.web.domain.entity.EmploymentData;
+import com.ruoyi.web.service.EmploymentDataService;
+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.Map;
+
+import static com.ruoyi.common.core.domain.AjaxResult.error;
+import static com.ruoyi.common.core.domain.AjaxResult.success;
+
+@Api("就业数据管理")
+@RestController
+@RequestMapping("/system/employment")
+public class EmploymentController {
+
+    @Autowired
+    private EmploymentDataService employmentDataService;
+
+    /**
+     * 添加就业数据
+     *
+     * @param employmentData
+     * @return
+     */
+    @ApiOperation("添加就业数据")
+    @PostMapping("/add")
+    public AjaxResult addEmploymentData(@RequestBody EmploymentData employmentData) {
+        if (employmentData == null) {
+            return error("请求参数为空");
+        }
+        Integer id = employmentDataService.addEmploymentData(employmentData);
+        return success(id);
+    }
+
+    /**
+     * 删除就业数据
+     *
+     * @param paramsMap
+     * @return
+     */
+    @ApiOperation("删除就业数据")
+    @PostMapping("/delete")
+    public AjaxResult deleteEmploymentData(@RequestBody Map<String, String> paramsMap) {
+        String ids = paramsMap.get("ids");
+        if (StrUtil.isBlank(ids)) {
+            return error("请求参数为空");
+        }
+        boolean b = employmentDataService.deleteEmploymentData(ids);
+        if (b) {
+            return success("删除成功");
+        }
+        return error("删除失败");
+    }
+
+
+    /**
+     * 编辑就业数据
+     *
+     * @param employmentData
+     * @return
+     */
+    @ApiOperation("编辑就业数据")
+    @PostMapping("/edit")
+    public AjaxResult editFacility(@RequestBody EmploymentData employmentData) {
+        if (employmentData == null) {
+            return error("请求参数为空");
+        }
+        employmentDataService.editEmploymentData(employmentData);
+        return AjaxResult.success();
+    }
+
+    /**
+     * 根据id获取就业数据
+     *
+     * @param id
+     * @return
+     */
+    @ApiOperation("根据id获取就业数据")
+    @GetMapping("/get")
+    public AjaxResult getEmploymentDataById(@RequestParam int id) {
+        if (ObjectUtil.isEmpty(id)) {
+            return error("请求参数为空");
+        }
+        EmploymentData employmentData = employmentDataService.getEmploymentDataById(id);
+        return success(employmentData);
+    }
+
+    /**
+     * 分页获取就业数据列表
+     *
+     * @param employmentDataQueryRequest
+     * @return
+     */
+    @ApiOperation("分页获取就业数据列表")
+    @PostMapping("/list/page")
+    public AjaxResult listEmploymentDataByPage(@RequestBody EmploymentDataQueryRequest employmentDataQueryRequest) {
+        if (employmentDataQueryRequest == null) {
+            return error("请求参数为空");
+        }
+        Page<EmploymentData> listEmploymentDataByPage = employmentDataService.getListEmploymentDataByPage(employmentDataQueryRequest);
+        return success(listEmploymentDataByPage);
+    }
+}

+ 115 - 0
app-admin/src/main/java/com/ruoyi/web/controller/system/FacilityManagementController.java

@@ -0,0 +1,115 @@
+package com.ruoyi.web.controller.system;
+
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.web.domain.dto.facility.FacilityAddRequest;
+import com.ruoyi.web.domain.dto.facility.FacilityEditRequest;
+import com.ruoyi.web.domain.dto.facility.FacilityQueryRequest;
+import com.ruoyi.web.domain.vo.FacilityManagement.BaseFacilityVO;
+import com.ruoyi.web.service.FacilityManagementService;
+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.Map;
+
+import static com.ruoyi.common.core.domain.AjaxResult.error;
+import static com.ruoyi.common.core.domain.AjaxResult.success;
+
+@Api("设施信息管理")
+@RestController
+@RequestMapping("/system/facility")
+public class FacilityManagementController {
+
+    @Autowired
+    private FacilityManagementService facilityManagementService;
+
+    /**
+     * 添加设施
+     *
+     * @param facilityAddRequest
+     * @return
+     */
+    @ApiOperation("添加设施")
+    @PostMapping("/add")
+    public AjaxResult addFacility(@RequestBody FacilityAddRequest facilityAddRequest) {
+        if (facilityAddRequest == null) {
+            return error("请求参数为空");
+        }
+        Integer id = facilityManagementService.addFacility(facilityAddRequest);
+        return success(id);
+    }
+
+    /**
+     * 删除设施
+     *
+     * @param paramsMap
+     * @return
+     */
+    @ApiOperation("删除设施")
+    @PostMapping("/delete")
+    public AjaxResult deleteFacility(@RequestBody Map<String, String> paramsMap) {
+        String ids = paramsMap.get("ids");
+        if (StrUtil.isBlank(ids)) {
+            return error("请求参数为空");
+        }
+        boolean b = facilityManagementService.deleteFacility(ids);
+        if (b) {
+            return success("删除成功");
+        }
+        return error("删除失败");
+    }
+
+
+    /**
+     * 编辑设施
+     *
+     * @param facilityEditRequest
+     * @return
+     */
+    @ApiOperation("编辑设施")
+    @PostMapping("/edit")
+    public AjaxResult editFacility(@RequestBody FacilityEditRequest facilityEditRequest) {
+        if (facilityEditRequest == null) {
+            return error("请求参数为空");
+        }
+        facilityManagementService.editFacility(facilityEditRequest);
+        return AjaxResult.success();
+    }
+
+    /**
+     * 根据id获取设施
+     *
+     * @param id
+     * @return
+     */
+    @ApiOperation("根据id获取设施")
+    @GetMapping("/get")
+    public AjaxResult getFacilityById(@RequestParam int id) {
+        if (ObjectUtil.isEmpty(id)) {
+            return error("请求参数为空");
+        }
+        BaseFacilityVO facilityVO = facilityManagementService.getFacilityById(id);
+        return success(facilityVO);
+    }
+
+
+    /**
+     * 分页获取设施列表
+     *
+     * @param facilityQueryRequest
+     * @return
+     */
+    @ApiOperation("分页获取设施列表")
+    @PostMapping("/list/page")
+    public AjaxResult listFacilityByPage(@RequestBody FacilityQueryRequest facilityQueryRequest) {
+        if (facilityQueryRequest == null) {
+            return error("请求参数为空");
+        }
+        Page<? extends BaseFacilityVO> listFacilityManagementByPage = facilityManagementService.getListFacilityManagementByPage(facilityQueryRequest);
+        return success(listFacilityManagementByPage);
+    }
+}

+ 74 - 2
app-admin/src/main/java/com/ruoyi/web/controller/system/HouseInfoController.java

@@ -1,9 +1,12 @@
 package com.ruoyi.web.controller.system;
 
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.web.domain.dto.house.HouseInfoAddRequest;
+import com.ruoyi.web.domain.dto.house.HouseInfoEditRequest;
 import com.ruoyi.web.domain.dto.house.HouseInfoQueryRequest;
-import com.ruoyi.web.domain.entity.HouseInfo;
 import com.ruoyi.web.domain.vo.HouseInfoVO;
 import com.ruoyi.web.service.HouseInfoService;
 import io.swagger.annotations.Api;
@@ -11,7 +14,7 @@ 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;
 
 import static com.ruoyi.common.core.domain.AjaxResult.error;
 import static com.ruoyi.common.core.domain.AjaxResult.success;
@@ -25,6 +28,75 @@ public class HouseInfoController {
     private HouseInfoService houseInfoService;
 
     /**
+     * 添加房屋
+     *
+     * @param houseInfoAddRequest
+     * @return
+     */
+    @ApiOperation("添加房屋")
+    @PostMapping("/add")
+    public AjaxResult addHouseInfo(@RequestBody HouseInfoAddRequest houseInfoAddRequest) {
+        if (houseInfoAddRequest == null) {
+            return error("请求参数为空");
+        }
+        Integer id = houseInfoService.addHouseInfo(houseInfoAddRequest);
+        return success(id);
+    }
+
+    /**
+     * 删除房屋
+     *
+     * @param paramsMap
+     * @return
+     */
+    @ApiOperation("删除房屋房屋")
+    @PostMapping("/delete")
+    public AjaxResult deleteHouseInfo(@RequestBody Map<String, String> paramsMap) {
+        String ids = paramsMap.get("ids");
+        if (StrUtil.isBlank(ids)) {
+            return error("请求参数为空");
+        }
+        boolean b = houseInfoService.deleteHouseInfo(ids);
+        if (b) {
+            return success("删除成功");
+        }
+        return error("删除失败");
+    }
+
+
+    /**
+     * 编辑房屋
+     *
+     * @param houseInfoEditRequest
+     * @return
+     */
+    @ApiOperation("编辑房屋")
+    @PostMapping("/edit")
+    public AjaxResult editFacility(@RequestBody HouseInfoEditRequest houseInfoEditRequest) {
+        if (houseInfoEditRequest == null) {
+            return error("请求参数为空");
+        }
+        houseInfoService.editHouseInfo(houseInfoEditRequest);
+        return AjaxResult.success();
+    }
+
+    /**
+     * 根据id获取房屋
+     *
+     * @param id
+     * @return
+     */
+    @ApiOperation("根据id获取房屋")
+    @GetMapping("/get")
+    public AjaxResult getHouseInfoById(@RequestParam int id) {
+        if (ObjectUtil.isEmpty(id)) {
+            return error("请求参数为空");
+        }
+        HouseInfoVO houseInfoVO = houseInfoService.getHouseInfoById(id);
+        return success(houseInfoVO);
+    }
+
+    /**
      * 分页获取房屋列表  mybatis-plus
      *
      * @param houseInfoQueryRequest

+ 112 - 0
app-admin/src/main/java/com/ruoyi/web/controller/system/IndustryController.java

@@ -0,0 +1,112 @@
+package com.ruoyi.web.controller.system;
+
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.web.domain.dto.Industry.IndustryDataQueryRequest;
+import com.ruoyi.web.domain.entity.IndustryData;
+import com.ruoyi.web.service.IndustryDataService;
+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.Map;
+
+import static com.ruoyi.common.core.domain.AjaxResult.error;
+import static com.ruoyi.common.core.domain.AjaxResult.success;
+
+@Api("产业数据管理")
+@RestController
+@RequestMapping("/system/industry")
+public class IndustryController {
+
+    @Autowired
+    private IndustryDataService industryDataService;
+
+    /**
+     * 添加产业数据
+     *
+     * @param industryData
+     * @return
+     */
+    @ApiOperation("添加产业数据")
+    @PostMapping("/add")
+    public AjaxResult addIndustryData(@RequestBody IndustryData industryData) {
+        if (industryData == null) {
+            return error("请求参数为空");
+        }
+        Integer id = industryDataService.addIndustryData(industryData);
+        return success(id);
+    }
+
+    /**
+     * 删除产业数据
+     *
+     * @param paramsMap
+     * @return
+     */
+    @ApiOperation("删除产业数据")
+    @PostMapping("/delete")
+    public AjaxResult deleteIndustryData(@RequestBody Map<String, String> paramsMap) {
+        String ids = paramsMap.get("ids");
+        if (StrUtil.isBlank(ids)) {
+            return error("请求参数为空");
+        }
+        boolean b = industryDataService.deleteIndustryData(ids);
+        if (b) {
+            return success("删除成功");
+        }
+        return error("删除失败");
+    }
+
+
+    /**
+     * 编辑产业数据
+     *
+     * @param industryData
+     * @return
+     */
+    @ApiOperation("编辑产业数据")
+    @PostMapping("/edit")
+    public AjaxResult editFacility(@RequestBody IndustryData industryData) {
+        if (industryData == null) {
+            return error("请求参数为空");
+        }
+        industryDataService.editIndustryData(industryData);
+        return AjaxResult.success();
+    }
+
+    /**
+     * 根据id获取产业数据
+     *
+     * @param id
+     * @return
+     */
+    @ApiOperation("根据id获取产业数据")
+    @GetMapping("/get")
+    public AjaxResult getIndustryDataById(@RequestParam int id) {
+        if (ObjectUtil.isEmpty(id)) {
+            return error("请求参数为空");
+        }
+        IndustryData industryData = industryDataService.getIndustryDataById(id);
+        return success(industryData);
+    }
+
+    /**
+     * 分页获取产业数据列表
+     *
+     * @param industryDataQueryRequest
+     * @return
+     */
+    @ApiOperation("分页获取产业数据列表")
+    @PostMapping("/list/page")
+    public AjaxResult listIndustryDataByPage(@RequestBody IndustryDataQueryRequest industryDataQueryRequest) {
+        if (industryDataQueryRequest == null) {
+            return error("请求参数为空");
+        }
+        Page<IndustryData> listIndustryDataByPage = industryDataService.getListIndustryDataByPage(industryDataQueryRequest);
+        return success(listIndustryDataByPage);
+    }
+}

+ 119 - 0
app-admin/src/main/java/com/ruoyi/web/controller/system/LocalPolicyController.java

@@ -0,0 +1,119 @@
+package com.ruoyi.web.controller.system;
+
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.web.domain.dto.localPolicy.LocalPolicyAddRequest;
+import com.ruoyi.web.domain.dto.localPolicy.LocalPolicyEditRequest;
+import com.ruoyi.web.domain.dto.localPolicy.LocalPolicyQueryRequest;
+import com.ruoyi.web.domain.entity.LocalPolicy;
+import com.ruoyi.web.service.LocalPolicyService;
+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.Map;
+
+import static com.ruoyi.common.core.domain.AjaxResult.error;
+import static com.ruoyi.common.core.domain.AjaxResult.success;
+
+@Api("当地政策信息管理")
+@RestController
+@RequestMapping("/system/local/policy")
+public class LocalPolicyController {
+
+    @Autowired
+    private LocalPolicyService localPolicyService;
+
+    /**
+     * 添加当地政策
+     * 注:文件上传应先调用通用上传接口 /common/upload 获取文件路径
+     * 然后再调用此接口,传入文件路径
+     *
+     * @param localPolicyAddRequest
+     * @return
+     */
+    @ApiOperation("添加当地政策")
+    @PostMapping("/add")
+    public AjaxResult addLocalPolicy(@RequestBody LocalPolicyAddRequest localPolicyAddRequest) {
+        if (localPolicyAddRequest == null) {
+            return error("请求参数为空");
+        }
+        Integer id = localPolicyService.addLocalPolicy(localPolicyAddRequest);
+        return success(id);
+    }
+
+    /**
+     * 删除设施
+     *
+     * @param paramsMap
+     * @return
+     */
+    @ApiOperation("删除当地政策")
+    @PostMapping("/delete")
+    public AjaxResult deleteLocalPolicy(@RequestBody Map<String, String> paramsMap) {
+        String ids = paramsMap.get("ids");
+        if (StrUtil.isBlank(ids)) {
+            return error("请求参数为空");
+        }
+        boolean b = localPolicyService.deleteLocalPolicy(ids);
+        if (b) {
+            return success("删除成功");
+        }
+        return error("删除失败");
+    }
+
+
+    /**
+     * 编辑当地政策
+     * 注:文件上传应先调用通用上传接口 /common/upload 获取文件路径
+     * 然后再调用此接口,传入文件路径
+     *
+     * @param localPolicyEditRequest
+     * @return
+     */
+    @ApiOperation("编辑当地政策")
+    @PostMapping("/edit")
+    public AjaxResult editFacility(@RequestBody LocalPolicyEditRequest localPolicyEditRequest) {
+        if (localPolicyEditRequest == null) {
+            return error("请求参数为空");
+        }
+        localPolicyService.editLocalPolicy(localPolicyEditRequest);
+        return AjaxResult.success();
+    }
+
+
+    /**
+     * 根据id获取当地政策
+     *
+     * @param id
+     * @return
+     */
+    @ApiOperation("根据id获取当地政策")
+    @GetMapping("/get")
+    public AjaxResult getLocalPolicyById(@RequestParam int id) {
+        if (ObjectUtil.isEmpty(id)) {
+            return error("请求参数为空");
+        }
+        LocalPolicy localPolicy = localPolicyService.getLocalPolicyById(id);
+        return success(localPolicy);
+    }
+
+    /**
+     * 分页获取当地政策列表
+     *
+     * @param localPolicyQueryRequest
+     * @return
+     */
+    @ApiOperation("分页获取当地政策列表")
+    @PostMapping("/list/page")
+    public AjaxResult listLocalPolicyByPage(@RequestBody LocalPolicyQueryRequest localPolicyQueryRequest) {
+        if (localPolicyQueryRequest == null) {
+            return error("请求参数为空");
+        }
+        Page<LocalPolicy> listLocalPolicyByPage = localPolicyService.getListLocalPolicyByPage(localPolicyQueryRequest);
+        return success(listLocalPolicyByPage);
+    }
+}

+ 81 - 6
app-admin/src/main/java/com/ruoyi/web/controller/system/PersonInfoController.java

@@ -1,19 +1,20 @@
 package com.ruoyi.web.controller.system;
 
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ruoyi.common.core.domain.AjaxResult;
-import com.ruoyi.common.utils.bean.BeanUtils;
+import com.ruoyi.web.domain.dto.person.PersonInfoAddRequest;
+import com.ruoyi.web.domain.dto.person.PersonInfoEditRequest;
 import com.ruoyi.web.domain.dto.person.PersonInfoQueryRequest;
-import com.ruoyi.web.domain.entity.PersonInfo;
-import com.ruoyi.web.domain.vo.HouseInfoVO;
-import com.ruoyi.web.service.PersonInfoService;
 import com.ruoyi.web.domain.vo.PersonInfoVO;
+import com.ruoyi.web.service.PersonInfoService;
 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.stream.Collectors;
+
+import java.util.Map;
 
 import static com.ruoyi.common.core.domain.AjaxResult.error;
 import static com.ruoyi.common.core.domain.AjaxResult.success;
@@ -27,6 +28,75 @@ public class PersonInfoController{
     private PersonInfoService personInfoService;
 
     /**
+     * 添加人员
+     *
+     * @param personInfoAddRequest
+     * @return
+     */
+    @ApiOperation("添加人员")
+    @PostMapping("/add")
+    public AjaxResult addPersonInfo(@RequestBody PersonInfoAddRequest personInfoAddRequest) {
+        if (personInfoAddRequest == null) {
+            return error("请求参数为空");
+        }
+        Integer id = personInfoService.addPersonInfo(personInfoAddRequest);
+        return success(id);
+    }
+
+    /**
+     * 删除人员
+     *
+     * @param paramsMap
+     * @return
+     */
+    @ApiOperation("删除人员")
+    @PostMapping("/delete")
+    public AjaxResult deletePersonInfo(@RequestBody Map<String, String> paramsMap) {
+        String ids = paramsMap.get("ids");
+        if (StrUtil.isBlank(ids)) {
+            return error("请求参数为空");
+        }
+        boolean b = personInfoService.deletePersonInfo(ids);
+        if (b) {
+            return success("删除成功");
+        }
+        return error("删除失败");
+    }
+
+
+    /**
+     * 编辑人员
+     *
+     * @param personInfoEditRequest
+     * @return
+     */
+    @ApiOperation("编辑人员")
+    @PostMapping("/edit")
+    public AjaxResult editFacility(@RequestBody PersonInfoEditRequest personInfoEditRequest) {
+        if (personInfoEditRequest == null) {
+            return error("请求参数为空");
+        }
+        personInfoService.editPersonInfo(personInfoEditRequest);
+        return AjaxResult.success();
+    }
+
+    /**
+     * 根据id获取人员
+     *
+     * @param id
+     * @return
+     */
+    @ApiOperation("根据id获取人员")
+    @GetMapping("/get")
+    public AjaxResult getPersonInfoById(@RequestParam int id) {
+        if (ObjectUtil.isEmpty(id)) {
+            return error("请求参数为空");
+        }
+        PersonInfoVO personInfoVO = personInfoService.getPersonInfoById(id);
+        return success(personInfoVO);
+    }
+
+    /**
      * 分页获取人员列表  mybatis-plus
      *
      * @param personInfoQueryRequest
@@ -41,4 +111,9 @@ public class PersonInfoController{
         Page<PersonInfoVO> listPersonInfoByPage = personInfoService.getListPersonInfoByPage(personInfoQueryRequest);
         return success(listPersonInfoByPage);
     }
+
+    @GetMapping("/encrypt")
+    public String encryptIdCard(String idCard) {
+        return personInfoService.encryptIdCard(idCard);
+    }
 }

+ 75 - 2
app-admin/src/main/java/com/ruoyi/web/controller/system/ProjectsController.java

@@ -1,17 +1,20 @@
 package com.ruoyi.web.controller.system;
 
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.web.domain.dto.projects.ProjectsQueryRequest;
+import com.ruoyi.web.domain.dto.projects.ProjectsAddRequest;
+import com.ruoyi.web.domain.dto.projects.ProjectsEditRequest;
 import com.ruoyi.web.domain.entity.Projects;
-import com.ruoyi.web.domain.vo.ProjectsVO;
 import com.ruoyi.web.service.ProjectsService;
 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;
 
 import static com.ruoyi.common.core.domain.AjaxResult.error;
 import static com.ruoyi.common.core.domain.AjaxResult.success;
@@ -25,6 +28,76 @@ public class ProjectsController {
     private ProjectsService projectsService;
 
     /**
+     * 添加项目
+     *
+     * @param projectsAddRequest
+     * @return
+     */
+    @ApiOperation("添加项目")
+    @PostMapping("/add")
+    public AjaxResult addProjects(@RequestBody ProjectsAddRequest projectsAddRequest) {
+        if (projectsAddRequest == null) {
+            return error("请求参数为空");
+        }
+        Integer id = projectsService.addProjects(projectsAddRequest);
+        return success(id);
+    }
+
+    /**
+     * 删除项目
+     *
+     * @param paramsMap
+     * @return
+     */
+    @ApiOperation("删除项目")
+    @PostMapping("/delete")
+    public AjaxResult deleteProjects(@RequestBody Map<String, String> paramsMap) {
+        String ids = paramsMap.get("ids");
+        if (StrUtil.isBlank(ids)) {
+            return error("请求参数为空");
+        }
+        boolean b = projectsService.deleteProjects(ids);
+        if (b) {
+            return success("删除成功");
+        }
+        return error("删除失败");
+    }
+
+
+    /**
+     * 编辑项目
+     *
+     * @param projectsEditRequest
+     * @return
+     */
+    @ApiOperation("编辑项目")
+    @PostMapping("/edit")
+    public AjaxResult editFacility(@RequestBody ProjectsEditRequest projectsEditRequest) {
+        if (projectsEditRequest == null) {
+            return error("请求参数为空");
+        }
+        projectsService.editProjects(projectsEditRequest);
+        return AjaxResult.success();
+    }
+
+
+    /**
+     * 根据id获取项目
+     *
+     * @param id
+     * @return
+     */
+    @ApiOperation("根据id获取项目")
+    @GetMapping("/get")
+    public AjaxResult getProjectsById(@RequestParam int id) {
+        if (ObjectUtil.isEmpty(id)) {
+            return error("请求参数为空");
+        }
+        Projects projects = projectsService.getProjectsById(id);
+        return success(projects);
+    }
+
+    /**
      * 分页获取项目列表  mybatis-plus
      *
      * @param projectsQueryRequest

+ 78 - 5
app-admin/src/main/java/com/ruoyi/web/controller/system/SubsidyProjectsController.java

@@ -1,17 +1,20 @@
 package com.ruoyi.web.controller.system;
 
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ruoyi.common.core.domain.AjaxResult;
-import com.ruoyi.web.domain.dto.SubsidyProjects.SubsidyProjectsQueryRequest;
+import com.ruoyi.web.domain.dto.subsidyProjects.SubsidyProjectsAddRequest;
+import com.ruoyi.web.domain.dto.subsidyProjects.SubsidyProjectsEditRequest;
+import com.ruoyi.web.domain.dto.subsidyProjects.SubsidyProjectsQueryRequest;
 import com.ruoyi.web.domain.entity.SubsidyProjects;
 import com.ruoyi.web.service.SubsidyProjectsService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
-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 org.springframework.web.bind.annotation.*;
+
+import java.util.Map;
 
 import static com.ruoyi.common.core.domain.AjaxResult.error;
 import static com.ruoyi.common.core.domain.AjaxResult.success;
@@ -25,6 +28,76 @@ public class SubsidyProjectsController {
     private SubsidyProjectsService subsidyProjectsService;
 
     /**
+     * 添加惠农补贴项目
+     *
+     * @param subsidyProjectsAddRequest
+     * @return
+     */
+    @ApiOperation("添加惠农补贴项目")
+    @PostMapping("/add")
+    public AjaxResult addSubsidyProjects(@RequestBody SubsidyProjectsAddRequest subsidyProjectsAddRequest) {
+        if (subsidyProjectsAddRequest == null) {
+            return error("请求参数为空");
+        }
+        Integer id = subsidyProjectsService.addSubsidyProjects(subsidyProjectsAddRequest);
+        return success(id);
+    }
+
+    /**
+     * 删除惠农补贴项目
+     *
+     * @param paramsMap
+     * @return
+     */
+    @ApiOperation("删除惠农补贴项目")
+    @PostMapping("/delete")
+    public AjaxResult deleteSubsidyProjects(@RequestBody Map<String, String> paramsMap) {
+        String ids = paramsMap.get("ids");
+        if (StrUtil.isBlank(ids)) {
+            return error("请求参数为空");
+        }
+        boolean b = subsidyProjectsService.deleteSubsidyProjects(ids);
+        if (b) {
+            return success("删除成功");
+        }
+        return error("删除失败");
+    }
+
+
+    /**
+     * 编辑惠农补贴项目
+     *
+     * @param subsidyProjectsEditRequest
+     * @return
+     */
+    @ApiOperation("编辑惠农补贴项目")
+    @PostMapping("/edit")
+    public AjaxResult editFacility(@RequestBody SubsidyProjectsEditRequest subsidyProjectsEditRequest) {
+        if (subsidyProjectsEditRequest == null) {
+            return error("请求参数为空");
+        }
+        subsidyProjectsService.editSubsidyProjects(subsidyProjectsEditRequest);
+        return AjaxResult.success();
+    }
+
+
+    /**
+     * 根据id获取补贴项目
+     *
+     * @param id
+     * @return
+     */
+    @ApiOperation("根据id获取补贴项目")
+    @GetMapping("/get")
+    public AjaxResult getSubsidyProjectsById(@RequestParam int id) {
+        if (ObjectUtil.isEmpty(id)) {
+            return error("请求参数为空");
+        }
+        SubsidyProjects subsidyProjects = subsidyProjectsService.getSubsidyProjectsById(id);
+        return success(subsidyProjects);
+    }
+
+    /**
      * 分页获取补贴-项目列表
      *
      * @param subsidyProjectsQueryRequest

+ 115 - 0
app-admin/src/main/java/com/ruoyi/web/controller/system/VillageServiceController.java

@@ -0,0 +1,115 @@
+package com.ruoyi.web.controller.system;
+
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.web.domain.dto.VillageService.VillageServiceAddRequest;
+import com.ruoyi.web.domain.dto.VillageService.VillageServiceEditRequest;
+import com.ruoyi.web.domain.dto.VillageService.VillageServiceQueryRequest;
+import com.ruoyi.web.domain.vo.VillageService.VillageServiceVO;
+import com.ruoyi.web.service.VillageServiceService;
+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.Map;
+
+import static com.ruoyi.common.core.domain.AjaxResult.error;
+import static com.ruoyi.common.core.domain.AjaxResult.success;
+
+@Api("服务与支持管理")
+@RestController
+@RequestMapping("/system/village/service")
+public class VillageServiceController {
+
+    @Autowired
+    private VillageServiceService villageServiceService;
+
+    /**
+     * 添加服务与支持
+     *
+     * @param villageServiceAddRequest
+     * @return
+     */
+    @ApiOperation("添加服务与支持")
+    @PostMapping("/add")
+    public AjaxResult addVillageService(@RequestBody VillageServiceAddRequest villageServiceAddRequest) {
+        if (villageServiceAddRequest == null) {
+            return error("请求参数为空");
+        }
+        Integer id = villageServiceService.addVillageService(villageServiceAddRequest);
+        return success(id);
+    }
+
+    /**
+     * 删除服务与支持
+     *
+     * @param paramsMap
+     * @return
+     */
+    @ApiOperation("删除服务与支持")
+    @PostMapping("/delete")
+    public AjaxResult deleteVillageService(@RequestBody Map<String, String> paramsMap) {
+        String ids = paramsMap.get("ids");
+        if (StrUtil.isBlank(ids)) {
+            return error("请求参数为空");
+        }
+        boolean b = villageServiceService.deleteVillageService(ids);
+        if (b) {
+            return success("删除成功");
+        }
+        return error("删除失败");
+    }
+
+
+    /**
+     * 编辑服务与支持
+     *
+     * @param villageServiceEditRequest
+     * @return
+     */
+    @ApiOperation("编辑服务与支持")
+    @PostMapping("/edit")
+    public AjaxResult editFacility(@RequestBody VillageServiceEditRequest villageServiceEditRequest) {
+        if (villageServiceEditRequest == null) {
+            return error("请求参数为空");
+        }
+        villageServiceService.editVillageService(villageServiceEditRequest);
+        return AjaxResult.success();
+    }
+
+
+    /**
+     * 根据id获取服务与支持
+     *
+     * @param id
+     * @return
+     */
+    @ApiOperation("根据id获取服务与支持")
+    @GetMapping("/get")
+    public AjaxResult getVillageServiceById(@RequestParam int id) {
+        if (ObjectUtil.isEmpty(id)) {
+            return error("请求参数为空");
+        }
+        VillageServiceVO villageServiceById = villageServiceService.getVillageServiceById(id);
+        return success(villageServiceById);
+    }
+
+    /**
+     * 分页获取服务与支持列表
+     *
+     * @param villageServiceQueryRequest
+     * @return
+     */
+    @ApiOperation("分页获取服务与支持列表")
+    @PostMapping("/list/page")
+    public AjaxResult listVillageServiceByPage(@RequestBody VillageServiceQueryRequest villageServiceQueryRequest) {
+        if (villageServiceQueryRequest == null) {
+            return error("请求参数为空");
+        }
+        Page<VillageServiceVO> listVillageServiceByPageVO = villageServiceService.getListVillageServiceByPage(villageServiceQueryRequest);
+        return success(listVillageServiceByPageVO);
+    }
+}

+ 134 - 0
app-admin/src/main/java/com/ruoyi/web/controller/system/VillageSpecialController.java

@@ -0,0 +1,134 @@
+package com.ruoyi.web.controller.system;
+
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.web.domain.dto.villageSpecial.VillageSpecialAddRequest;
+import com.ruoyi.web.domain.dto.villageSpecial.VillageSpecialEditRequest;
+import com.ruoyi.web.domain.dto.villageSpecial.VillageSpecialQueryRequest;
+import com.ruoyi.web.domain.entity.ProductionData;
+import com.ruoyi.web.domain.vo.VillageSpecial.BaseVillageSpecialVO;
+import com.ruoyi.web.service.VillageSpecialService;
+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;
+
+import static com.ruoyi.common.core.domain.AjaxResult.error;
+import static com.ruoyi.common.core.domain.AjaxResult.success;
+
+@Api("特色产业管理")
+@RestController
+@RequestMapping("/system/village/special")
+public class VillageSpecialController {
+
+    @Autowired
+    private VillageSpecialService villageSpecialService;
+
+    /**
+     * 添加特色产业
+     *
+     * @param villageSpecialAddRequest
+     * @return
+     */
+    @ApiOperation("添加特色产业")
+    @PostMapping("/add")
+    public AjaxResult addVillageSpecial(@RequestBody VillageSpecialAddRequest villageSpecialAddRequest) {
+        if (villageSpecialAddRequest == null) {
+            return error("请求参数为空");
+        }
+        Integer id = villageSpecialService.addVillageSpecial(villageSpecialAddRequest);
+        return success(id);
+    }
+
+    /**
+     * 删除特色产业
+     *
+     * @param paramsMap
+     * @return
+     */
+    @ApiOperation("删除特色产业")
+    @PostMapping("/delete")
+    public AjaxResult deleteVillageSpecial(@RequestBody Map<String, String> paramsMap) {
+        String ids = paramsMap.get("ids");
+        if (StrUtil.isBlank(ids)) {
+            return error("请求参数为空");
+        }
+        boolean b = villageSpecialService.deleteVillageSpecial(ids);
+        if (b) {
+            return success("删除成功");
+        }
+        return error("删除失败");
+    }
+
+
+    /**
+     * 编辑特色产业
+     *
+     * @param villageSpecialEditRequest
+     * @return
+     */
+    @ApiOperation("编辑特色产业")
+    @PostMapping("/edit")
+    public AjaxResult editFacility(@RequestBody VillageSpecialEditRequest villageSpecialEditRequest) {
+        if (villageSpecialEditRequest == null) {
+            return error("请求参数为空");
+        }
+        villageSpecialService.editVillageSpecial(villageSpecialEditRequest);
+        return AjaxResult.success();
+    }
+
+
+    /**
+     * 根据id获取特色产业
+     *
+     * @param id
+     * @return
+     */
+    @ApiOperation("根据id获取特色产业")
+    @GetMapping("/get")
+    public AjaxResult getVillageSpecialById(@RequestParam int id) {
+        if (ObjectUtil.isEmpty(id)) {
+            return error("请求参数为空");
+        }
+        BaseVillageSpecialVO villageSpecialVO = villageSpecialService.getVillageSpecialById(id);
+        return success(villageSpecialVO);
+    }
+
+    /**
+     * 分页获取特色产业列表
+     *
+     * @param villageSpecialQueryRequest
+     * @return
+     */
+    @ApiOperation("分页获取特色产业列表")
+    @PostMapping("/list/page")
+    public AjaxResult listVillageSpecialByPage(@RequestBody VillageSpecialQueryRequest villageSpecialQueryRequest) {
+        if (villageSpecialQueryRequest == null) {
+            return error("请求参数为空");
+        }
+        Page<BaseVillageSpecialVO> listVillageSpecialByPage = villageSpecialService.getListVillageSpecialByPage(villageSpecialQueryRequest);
+        return success(listVillageSpecialByPage);
+    }
+
+    /**
+     * 根据id获取特色产业的产品/菜品列表
+     *
+     * @param id
+     * @return
+     */
+    @ApiOperation("获取特色产业的产品/菜品列表")
+    @GetMapping("/get/product/list")
+    public AjaxResult getVillageSpecialProductList(@RequestParam int id) {
+        if (ObjectUtil.isEmpty(id)) {
+            return error("请求参数为空");
+        }
+        List<ProductionData> productDataList = villageSpecialService.getProductDataList(id);
+        return success(productDataList);
+    }
+
+}

+ 115 - 0
app-admin/src/main/java/com/ruoyi/web/controller/system/VillageTraditionController.java

@@ -0,0 +1,115 @@
+package com.ruoyi.web.controller.system;
+
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.web.domain.dto.villageTradition.VillageTraditionAddRequest;
+import com.ruoyi.web.domain.dto.villageTradition.VillageTraditionEditRequest;
+import com.ruoyi.web.domain.dto.villageTradition.VillageTraditionQueryRequest;
+import com.ruoyi.web.domain.entity.VillageTradition;
+import com.ruoyi.web.service.VillageTraditionService;
+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.Map;
+
+import static com.ruoyi.common.core.domain.AjaxResult.error;
+import static com.ruoyi.common.core.domain.AjaxResult.success;
+
+@Api("传统产业管理")
+@RestController
+@RequestMapping("/system/village/tradition")
+public class VillageTraditionController {
+
+    @Autowired
+    private VillageTraditionService villageTraditionService;
+
+    /**
+     * 添加传统产业
+     *
+     * @param villageTraditionAddRequest
+     * @return
+     */
+    @ApiOperation("添加传统产业")
+    @PostMapping("/add")
+    public AjaxResult addVillageTradition(@RequestBody VillageTraditionAddRequest villageTraditionAddRequest) {
+        if (villageTraditionAddRequest == null) {
+            return error("请求参数为空");
+        }
+        Integer id = villageTraditionService.addVillageTradition(villageTraditionAddRequest);
+        return success(id);
+    }
+
+    /**
+     * 删除传统产业
+     *
+     * @param paramsMap
+     * @return
+     */
+    @ApiOperation("删除传统产业")
+    @PostMapping("/delete")
+    public AjaxResult deleteVillageTradition(@RequestBody Map<String, String> paramsMap) {
+        String ids = paramsMap.get("ids");
+        if (StrUtil.isBlank(ids)) {
+            return error("请求参数为空");
+        }
+        boolean b = villageTraditionService.deleteVillageTradition(ids);
+        if (b) {
+            return success("删除成功");
+        }
+        return error("删除失败");
+    }
+
+
+    /**
+     * 编辑传统产业
+     *
+     * @param villageTraditionEditRequest
+     * @return
+     */
+    @ApiOperation("编辑传统产业")
+    @PostMapping("/edit")
+    public AjaxResult editFacility(@RequestBody VillageTraditionEditRequest villageTraditionEditRequest) {
+        if (villageTraditionEditRequest == null) {
+            return error("请求参数为空");
+        }
+        villageTraditionService.editVillageTradition(villageTraditionEditRequest);
+        return AjaxResult.success();
+    }
+
+
+    /**
+     * 根据id获取传统产业
+     *
+     * @param id
+     * @return
+     */
+    @ApiOperation("根据id获取传统产业")
+    @GetMapping("/get")
+    public AjaxResult getVillageTraditionById(@RequestParam int id) {
+        if (ObjectUtil.isEmpty(id)) {
+            return error("请求参数为空");
+        }
+        VillageTradition villageTradition = villageTraditionService.getVillageTraditionById(id);
+        return success(villageTradition);
+    }
+
+    /**
+     * 分页获取传统产业列表
+     *
+     * @param villageTraditionQueryRequest
+     * @return
+     */
+    @ApiOperation("分页获取传统产业列表")
+    @PostMapping("/list/page")
+    public AjaxResult listVillageTraditionByPage(@RequestBody VillageTraditionQueryRequest villageTraditionQueryRequest) {
+        if (villageTraditionQueryRequest == null) {
+            return error("请求参数为空");
+        }
+        Page<VillageTradition> listVillageTraditionByPage = villageTraditionService.getListVillageTraditionByPage(villageTraditionQueryRequest);
+        return success(listVillageTraditionByPage);
+    }
+}

+ 31 - 0
app-admin/src/main/java/com/ruoyi/web/domain/dto/Industry/IndustryDataQueryRequest.java

@@ -0,0 +1,31 @@
+package com.ruoyi.web.domain.dto.Industry;
+
+import com.ruoyi.web.common.PageRequest;
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+
+/**
+ * 产业数据查询请求
+ */
+@ApiModel(value = "IndustryQueryRequest", description = "产业数据查询请求参数")
+@EqualsAndHashCode(callSuper = true)
+@Data
+public class IndustryDataQueryRequest extends PageRequest implements Serializable {
+    /**
+     * id
+     */
+    private Integer id;
+
+    /**
+     * 年份
+     */
+    private String years;
+
+    /**
+     * 产业类别:0-种植业/1-养殖业/2-保安腰刀产业/3-农家乐产业/4-民宿产业
+     */
+    private Integer category;
+}

+ 54 - 0
app-admin/src/main/java/com/ruoyi/web/domain/dto/VillageService/VillageServiceAddRequest.java

@@ -0,0 +1,54 @@
+package com.ruoyi.web.domain.dto.VillageService;
+
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * 乡村振兴产业服务与支持添加请求
+ *
+ * @TableName
+ */
+@Data
+@ApiModel(value = "VillageServiceAddRequest", description = "乡村振兴产业服务与支持添加请求参数")
+public class VillageServiceAddRequest implements Serializable {
+
+    /**
+     * 标题
+     */
+    private String title;
+
+    /**
+     * 标签 ["1","2"]
+     */
+    private List<String> tag;
+
+    /**
+     * 类型 1-图文,2-视频
+     */
+    private Integer type;
+
+    /**
+     * 内容
+     */
+    private String content;
+
+    /**
+     * 封面图
+     */
+    private String photoUrl;
+
+    /**
+     * 来源
+     */
+    private String source;
+
+    /**
+     * 发布状态 1未发布 2-已发布 3-下架
+     */
+    private Integer status;
+
+    private static final long serialVersionUID = 1L;
+}

+ 58 - 0
app-admin/src/main/java/com/ruoyi/web/domain/dto/VillageService/VillageServiceEditRequest.java

@@ -0,0 +1,58 @@
+package com.ruoyi.web.domain.dto.VillageService;
+
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * 乡村振兴产业服务与支持编辑请求
+ *
+ * @TableName
+ */
+@Data
+@ApiModel(value = "VillageServiceEditRequest", description = "乡村振兴产业服务与支持编辑请求参数")
+public class VillageServiceEditRequest implements Serializable {
+    /**
+     * id
+     */
+    private Integer id;
+
+    /**
+     * 标题
+     */
+    private String title;
+
+    /**
+     * 标签 ["1","2"]
+     */
+    private List<String> tag;
+
+    /**
+     * 类型 1-图文,2-视频
+     */
+    private Integer type;
+
+    /**
+     * 内容
+     */
+    private String content;
+
+    /**
+     * 封面图
+     */
+    private String photoUrl;
+
+    /**
+     * 来源
+     */
+    private String source;
+
+    /**
+     * 发布状态 1未发布 2-已发布 3-下架
+     */
+    private Integer status;
+
+    private static final long serialVersionUID = 1L;
+}

+ 48 - 0
app-admin/src/main/java/com/ruoyi/web/domain/dto/VillageService/VillageServiceQueryRequest.java

@@ -0,0 +1,48 @@
+package com.ruoyi.web.domain.dto.VillageService;
+
+import com.ruoyi.web.common.PageRequest;
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 乡村振兴产业服务与支持查询请求
+ *
+ * @TableName
+ */
+@EqualsAndHashCode(callSuper = true)
+@Data
+@ApiModel(value = "VillageServiceQueryRequest", description = "乡村振兴产业服务与支持查询请求参数")
+public class VillageServiceQueryRequest extends PageRequest implements Serializable {
+
+    /**
+     * 标签 ["1","2"]
+     */
+    private List<String> tag;
+
+    /**
+     * 关键词(标题或标签或内容)
+     */
+    private String keyword;
+
+    /**
+     * 开始日期
+     */
+    private Date startTime;
+
+    /**
+     * 结束日期
+     */
+    private Date endTime;
+
+    /**
+     * 发布状态 1未发布 2-已发布 3-下架
+     */
+    private Integer status;
+
+    private static final long serialVersionUID = 1L;
+}

+ 21 - 0
app-admin/src/main/java/com/ruoyi/web/domain/dto/employment/EmploymentDataQueryRequest.java

@@ -0,0 +1,21 @@
+package com.ruoyi.web.domain.dto.employment;
+
+import com.ruoyi.web.common.PageRequest;
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+
+/**
+ * 就业数据查询请求
+ */
+@ApiModel(value = "employmentDataQueryRequest", description = "就业数据查询请求参数")
+@EqualsAndHashCode(callSuper = true)
+@Data
+public class EmploymentDataQueryRequest extends PageRequest implements Serializable {
+    /**
+     * 月份
+     */
+    private String months;
+}

+ 125 - 0
app-admin/src/main/java/com/ruoyi/web/domain/dto/facility/FacilityAddRequest.java

@@ -0,0 +1,125 @@
+package com.ruoyi.web.domain.dto.facility;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 设施信息添加请求
+ */
+@ApiModel(value = "FacilityAddRequest", description = "设施信息添加请求参数")
+@Data
+public class FacilityAddRequest implements Serializable {
+
+    /**
+     * 设施类型
+     */
+    @ApiModelProperty(value = "设施类型")
+    private String facilityType;
+
+    /**
+     * 设施名称
+     */
+    @ApiModelProperty(value = "设施名称")
+    private String facilityName;
+
+    /**
+     * 位置描述
+     */
+    @ApiModelProperty(value = "位置描述")
+    private String location;
+
+    /**
+     * 长度(米)
+     */
+    @ApiModelProperty(value = "长度(米)")
+    private String extent;
+
+    /**
+     * 宽度(米)
+     */
+    @ApiModelProperty(value = "宽度(米)")
+    private String breadth;
+
+    /**
+     * 车道数量
+     */
+    @ApiModelProperty(value = "车道数量")
+    private Integer carNum;
+
+    /**
+     * 路面类型
+     */
+    @ApiModelProperty(value = "路面类型")
+    private String surface;
+
+    /**
+     * 线路长度
+     */
+    @ApiModelProperty(value = "线路长度")
+    private String lineLength;
+
+    /**
+     * 电气与安全参数
+     */
+    @ApiModelProperty(value = "电气与安全参数")
+    private String electric;
+
+    /**
+     * 覆盖范围
+     */
+    @ApiModelProperty(value = "覆盖范围")
+    private String coverageArea;
+
+    /**
+     * 发射功率
+     */
+    @ApiModelProperty(value = "发射功率")
+    private String power;
+
+    /**
+     * 运营商
+     */
+    @ApiModelProperty(value = "运营商")
+    private String operator;
+
+    /**
+     * 占地面积
+     */
+    @ApiModelProperty(value = "占地面积")
+    private String area;
+
+    /**
+     * 建成年份
+     */
+    @ApiModelProperty(value = "建成年份")
+    private String year;
+
+    /**
+     * 班级数量
+     */
+    @ApiModelProperty(value = "班级数量")
+    private Integer classNum;
+
+    /**
+     * 教师人数
+     */
+    @ApiModelProperty(value = "教师人数")
+    private Integer teacherNum;
+
+    /**
+     * 学生人数
+     */
+    @ApiModelProperty(value = "学生人数")
+    private Integer studentNum;
+
+    /**
+     * 联系电话
+     */
+    @ApiModelProperty(value = "联系电话")
+    private String phone;
+
+    private static final long serialVersionUID = 1L;
+}

+ 124 - 0
app-admin/src/main/java/com/ruoyi/web/domain/dto/facility/FacilityEditRequest.java

@@ -0,0 +1,124 @@
+package com.ruoyi.web.domain.dto.facility;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 设施信息编辑请求
+ */
+@ApiModel(value = "FacilityEditRequest", description = "设施信息编辑请求参数")
+@Data
+public class FacilityEditRequest implements Serializable {
+    /**
+     * ID
+     */
+    @ApiModelProperty(value = "ID")
+    private Integer Id;
+
+    /**
+     * 设施名称
+     */
+    @ApiModelProperty(value = "设施名称")
+    private String facilityName;
+
+    /**
+     * 位置描述
+     */
+    @ApiModelProperty(value = "位置描述")
+    private String location;
+
+    /**
+     * 长度(米)
+     */
+    @ApiModelProperty(value = "长度(米)")
+    private String extent;
+
+    /**
+     * 宽度(米)
+     */
+    @ApiModelProperty(value = "宽度(米)")
+    private String breadth;
+
+    /**
+     * 车道数量
+     */
+    @ApiModelProperty(value = "车道数量")
+    private Integer carNum;
+
+    /**
+     * 路面类型
+     */
+    @ApiModelProperty(value = "路面类型")
+    private String surface;
+
+    /**
+     * 线路长度
+     */
+    @ApiModelProperty(value = "线路长度")
+    private String lineLength;
+
+    /**
+     * 电气与安全参数
+     */
+    @ApiModelProperty(value = "电气与安全参数")
+    private String electric;
+
+    /**
+     * 覆盖范围
+     */
+    @ApiModelProperty(value = "覆盖范围")
+    private String coverageArea;
+
+    /**
+     * 发射功率
+     */
+    @ApiModelProperty(value = "发射功率")
+    private String power;
+
+    /**
+     * 运营商
+     */
+    @ApiModelProperty(value = "运营商")
+    private String operator;
+
+    /**
+     * 占地面积
+     */
+    @ApiModelProperty(value = "占地面积")
+    private String area;
+
+    /**
+     * 建成年份
+     */
+    @ApiModelProperty(value = "建成年份")
+    private String year;
+
+    /**
+     * 班级数量
+     */
+    @ApiModelProperty(value = "班级数量")
+    private Integer classNum;
+
+    /**
+     * 教师人数
+     */
+    @ApiModelProperty(value = "教师人数")
+    private Integer teacherNum;
+
+    /**
+     * 学生人数
+     */
+    @ApiModelProperty(value = "学生人数")
+    private Integer studentNum;
+
+    /**
+     * 联系电话
+     */
+    @ApiModelProperty(value = "联系电话")
+    private String phone;
+
+    private static final long serialVersionUID = 1L;
+}

+ 32 - 0
app-admin/src/main/java/com/ruoyi/web/domain/dto/facility/FacilityQueryRequest.java

@@ -0,0 +1,32 @@
+package com.ruoyi.web.domain.dto.facility;
+
+import com.ruoyi.web.common.PageRequest;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+
+/**
+ * 设施信息查询请求
+ */
+@ApiModel(value = "FacilityQueryRequest", description = "设施信息查询请求参数")
+@EqualsAndHashCode(callSuper = true)
+@Data
+public class FacilityQueryRequest extends PageRequest implements Serializable {
+    /**
+     * 设施类型
+     */
+    @ApiModelProperty(value = "设施类型")
+    private String facilityType;
+
+    /**
+     * 设施名称
+     */
+    @ApiModelProperty(value = "设施名称")
+    private String facilityName;
+
+
+    private static final long serialVersionUID = 1L;
+}

+ 75 - 0
app-admin/src/main/java/com/ruoyi/web/domain/dto/house/HouseInfoAddRequest.java

@@ -0,0 +1,75 @@
+package com.ruoyi.web.domain.dto.house;
+
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.List;
+
+/**
+ * 房屋 添加请求
+ *
+ * @TableName house_info
+ */
+@Data
+@ApiModel(value = "HouseInfoAddRequest", description = "房屋添加请求参数")
+public class HouseInfoAddRequest implements Serializable {
+
+    /**
+     * 房屋编号(如FW0000580689)
+     */
+    private String houseCode;
+
+    /**
+     * 门牌号
+     */
+    private String doorplateNumber;
+
+    /**
+     * 房屋地址
+     */
+    private String houseAddress;
+
+    /**
+     * 房主人员ID
+     */
+    private Integer houseOwnerId;
+
+    /**
+     * 总积分
+     */
+    private Integer totalPoints;
+
+    /**
+     * 剩余积分
+     */
+    private Integer remainingPoints;
+
+    /**
+     * 房屋类别:1-修缮,2-原址重建,3-集中安置
+     */
+    private Integer houseCategory;
+
+    /**
+     * 宅基地面积(㎡)
+     */
+    private BigDecimal buildingArea;
+
+    /**
+     * 所属网格
+     */
+    private String grid;
+
+    /**
+     * 照片URL
+     */
+    private String photoUrl;
+
+    /**
+     * 家庭标签
+     */
+    private List<String> houseTags;
+
+    private static final long serialVersionUID = 1L;
+}

+ 80 - 0
app-admin/src/main/java/com/ruoyi/web/domain/dto/house/HouseInfoEditRequest.java

@@ -0,0 +1,80 @@
+package com.ruoyi.web.domain.dto.house;
+
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.List;
+
+/**
+ * 房屋 修改请求
+ *
+ * @TableName house_info
+ */
+@Data
+@ApiModel(value = "HouseInfoEditRequest", description = "房屋修改请求参数")
+public class HouseInfoEditRequest implements Serializable {
+
+    /**
+     * 房屋ID
+     */
+    private Integer id;
+
+    /**
+     * 房屋编号(如FW0000580689)
+     */
+    private String houseCode;
+
+    /**
+     * 门牌号
+     */
+    private String doorplateNumber;
+
+    /**
+     * 房屋地址
+     */
+    private String houseAddress;
+
+    /**
+     * 房主人员ID
+     */
+    private Integer houseOwnerId;
+
+    /**
+     * 总积分
+     */
+    private Integer totalPoints;
+
+    /**
+     * 剩余积分
+     */
+    private Integer remainingPoints;
+
+    /**
+     * 房屋类别:1-修缮,2-原址重建,3-集中安置
+     */
+    private Integer houseCategory;
+
+    /**
+     * 宅基地面积(㎡)
+     */
+    private BigDecimal buildingArea;
+
+    /**
+     * 所属网格
+     */
+    private String grid;
+
+    /**
+     * 照片URL
+     */
+    private String photoUrl;
+
+    /**
+     * 家庭标签(JSON数组)
+     */
+    private List<String> houseTags;
+
+    private static final long serialVersionUID = 1L;
+}

+ 10 - 3
app-admin/src/main/java/com/ruoyi/web/domain/dto/house/HouseInfoQueryRequest.java

@@ -1,13 +1,12 @@
 package com.ruoyi.web.domain.dto.house;
 
-import com.baomidou.mybatisplus.annotation.*;
 import com.ruoyi.web.common.PageRequest;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
 import java.io.Serializable;
-import java.math.BigDecimal;
-import java.util.Date;
 import java.util.List;
 
 /**
@@ -17,40 +16,48 @@ import java.util.List;
  */
 @EqualsAndHashCode(callSuper = true)
 @Data
+@ApiModel(value = "HouseInfoQueryRequest", description = "房屋查询请求参数")
 public class HouseInfoQueryRequest extends PageRequest implements Serializable {
     /**
      * 房屋ID
      */
+    @ApiModelProperty(value = "ID")
     private Integer id;
 
     /**
      * 门牌号
      */
+    @ApiModelProperty(value = "门牌号")
     private String doorplateNumber;
 
     /**
      * 房主人员ID
      */
+    @ApiModelProperty(value = "房主人员ID")
     private Integer houseOwnerId;
 
     /**
      * 房主姓名
      */
+    @ApiModelProperty(value = "房主姓名")
     private String houseOwnerName;
 
     /**
      * 房屋类别:1-修缮,2-原址重建,3-集中安置
      */
+    @ApiModelProperty(value = "房屋类别:1-修缮,2-原址重建,3-集中安置")
     private Integer houseCategory;
 
     /**
      * 所属网格
      */
+    @ApiModelProperty(value = "所属网格")
     private Integer grid;
 
     /**
      * 家庭标签(JSON数组)
      */
+    @ApiModelProperty(value = "家庭标签")
     private List<String> houseTags;
 
     private static final long serialVersionUID = 1L;

+ 24 - 0
app-admin/src/main/java/com/ruoyi/web/domain/dto/localPolicy/LocalPolicyAddRequest.java

@@ -0,0 +1,24 @@
+package com.ruoyi.web.domain.dto.localPolicy;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+public class LocalPolicyAddRequest implements Serializable {
+    /**
+     * 政策名称
+     */
+    private String name;
+
+    /**
+     * 政策描述
+     */
+    private String label;
+
+    /**
+     * 政策文件路径
+     * 使用通用上传后获取的路径,格式为:/profile/upload/xxx
+     */
+    private String file;
+}

+ 30 - 0
app-admin/src/main/java/com/ruoyi/web/domain/dto/localPolicy/LocalPolicyEditRequest.java

@@ -0,0 +1,30 @@
+package com.ruoyi.web.domain.dto.localPolicy;
+
+import lombok.Data;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.io.Serializable;
+
+@Data
+public class LocalPolicyEditRequest implements Serializable {
+    /**
+     * ID
+     */
+    private Integer id;
+
+    /**
+     * 政策名称
+     */
+    private String name;
+
+    /**
+     * 政策描述
+     */
+    private String label;
+
+    /**
+     * 政策文件路径
+     * 使用通用上传后获取的路径,格式为:/profile/upload/xxx
+     */
+    private String file;
+}

+ 25 - 0
app-admin/src/main/java/com/ruoyi/web/domain/dto/localPolicy/LocalPolicyQueryRequest.java

@@ -0,0 +1,25 @@
+package com.ruoyi.web.domain.dto.localPolicy;
+
+import com.ruoyi.web.common.PageRequest;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+
+/**
+ * 当地政策信息查询请求
+ */
+@ApiModel(value = "LocalPolicyQueryRequest", description = "当地政策信息查询请求参数")
+@EqualsAndHashCode(callSuper = true)
+@Data
+public class LocalPolicyQueryRequest extends PageRequest implements Serializable {
+    /**
+     * 政策名称 or 政策描述
+     */
+    @ApiModelProperty(value = "政策名称 or 政策描述")
+    private String keyword;
+
+    private static final long serialVersionUID = 1L;
+}

+ 113 - 0
app-admin/src/main/java/com/ruoyi/web/domain/dto/person/PersonInfoAddRequest.java

@@ -0,0 +1,113 @@
+package com.ruoyi.web.domain.dto.person;
+
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 人员添加请求
+ */
+@ApiModel(value = "PersonInfoAddRequest", description = "人员信息添加请求参数")
+@Data
+public class PersonInfoAddRequest implements Serializable {
+    /**
+     * 姓名
+     */
+    private String realname;
+
+    /**
+     * 身份证号
+     */
+    private String idCard;
+
+    /**
+     * 民族
+     */
+    private String ethnic;
+
+    /**
+     * 年龄
+     */
+    private Integer age;
+
+    /**
+     * 性别: 1-男, 2-女, 0-未知
+     */
+    private Integer gender;
+
+    /**
+     * 出生日期
+     */
+    private Date birthDate;
+
+    /**
+     * 人口类别:0-本村户籍 ,1-非本村户籍
+     */
+    private Integer populationCategory;
+
+    /**
+     * 电话
+     */
+    private String phone;
+
+    /**
+     * 人口标签
+     */
+    private List<String> populationTags;
+
+    /**
+     * 职业
+     */
+    private String occupation;
+
+    /**
+     * 所属网格
+     */
+    private String grid;
+
+    /**
+     * 文化程度
+     */
+    private String educationLevel;
+
+    /**
+     * 婚姻状况: 1-未婚, 2-已婚, 3-丧偶, 4-离婚
+     */
+    private Integer maritalStatus;
+
+    /**
+     * 政治面貌
+     */
+    private String politicalStatus;
+
+    /**
+     * 宗教信仰
+     */
+    private String religion;
+
+    /**
+     * 照片URL
+     */
+    private String photoUrl;
+
+    /**
+     * 所属户籍ID
+     */
+    private Integer householdId;
+
+    /**
+     * 户籍关系
+     */
+    private String householdRelation;
+
+    /**
+     * 特殊身份
+     */
+    private String specialIdentity;
+
+
+    private static final long serialVersionUID = 1L;
+}

+ 116 - 0
app-admin/src/main/java/com/ruoyi/web/domain/dto/person/PersonInfoEditRequest.java

@@ -0,0 +1,116 @@
+package com.ruoyi.web.domain.dto.person;
+
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 人员编辑请求
+ */
+@ApiModel(value = "PersonInfoEditRequest", description = "人员信息编辑请求参数")
+@Data
+public class PersonInfoEditRequest implements Serializable {
+
+    private Integer id;
+
+    /**
+     * 姓名
+     */
+    private String realname;
+
+    /**
+     * 身份证号
+     */
+    private String idCard;
+
+    /**
+     * 民族
+     */
+    private String ethnic;
+
+    /**
+     * 年龄
+     */
+    private Integer age;
+
+    /**
+     * 性别: 1-男, 2-女, 0-未知
+     */
+    private Integer gender;
+
+    /**
+     * 出生日期
+     */
+    private Date birthDate;
+
+    /**
+     * 人口类别:0-本村户籍 ,1-非本村户籍
+     */
+    private Integer populationCategory;
+
+    /**
+     * 电话
+     */
+    private String phone;
+
+    /**
+     * 人口标签
+     */
+    private List<String> populationTags;
+
+    /**
+     * 职业
+     */
+    private String occupation;
+
+    /**
+     * 所属网格
+     */
+    private String grid;
+
+    /**
+     * 文化程度
+     */
+    private String educationLevel;
+
+    /**
+     * 婚姻状况: 1-未婚, 2-已婚, 3-丧偶, 4-离婚
+     */
+    private Integer maritalStatus;
+
+    /**
+     * 政治面貌
+     */
+    private String politicalStatus;
+
+    /**
+     * 宗教信仰
+     */
+    private String religion;
+
+    /**
+     * 照片URL
+     */
+    private String photoUrl;
+
+    /**
+     * 所属户籍ID
+     */
+    private Integer householdId;
+
+    /**
+     * 户籍关系
+     */
+    private String householdRelation;
+
+    /**
+     * 特殊身份
+     */
+    private String specialIdentity;
+
+
+    private static final long serialVersionUID = 1L;
+}

+ 10 - 2
app-admin/src/main/java/com/ruoyi/web/domain/dto/person/PersonInfoQueryRequest.java

@@ -1,47 +1,55 @@
 package com.ruoyi.web.domain.dto.person;
 
 import com.ruoyi.web.common.PageRequest;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
 import java.io.Serializable;
-import java.util.Date;
 import java.util.List;
 
 /**
  * 用户查询请求
  */
+@ApiModel(value = "PersonInfoQueryRequest", description = "人员信息查询请求参数")
 @EqualsAndHashCode(callSuper = true)
 @Data
 public class PersonInfoQueryRequest extends PageRequest implements Serializable {
     /**
      * ID
      */
+    @ApiModelProperty(value = "人员ID")
     private Integer id;
 
     /**
      * 姓名
      */
+    @ApiModelProperty(value = "真实姓名")
     private String realname;
 
     /**
      * 民族
      */
+    @ApiModelProperty(value = "民族")
     private String ethnic;
 
     /**
      * 门牌号
      */
+    @ApiModelProperty(value = "门牌号")
     private String doorplateNumber;
 
     /**
      * 特殊身份
      */
+    @ApiModelProperty(value = "特殊身份")
     private String specialIdentity;
 
     /**
-     * 人口标签(标签 json 列表)
+     * 人口标签
      */
+    @ApiModelProperty(value = "人口标签")
     private List<String> populationTags;
 
 

+ 33 - 0
app-admin/src/main/java/com/ruoyi/web/domain/dto/productionData/ProductionDataAddRequest.java

@@ -0,0 +1,33 @@
+package com.ruoyi.web.domain.dto.productionData;
+
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 产品数据添加请求
+ *
+ * @TableName production_data
+ */
+@Data
+@ApiModel(value = "ProductionDataAddRequest", description = "产品数据添加请求参数")
+public class ProductionDataAddRequest implements Serializable {
+
+    /**
+     * 产品名称/菜品名称
+     */
+    private String name;
+
+    /**
+     * 产品图片/菜品图片
+     */
+    private String img;
+
+    /**
+     * 产品价格/菜品价格
+     */
+    private String price;
+
+    private static final long serialVersionUID = 1L;
+}

+ 42 - 0
app-admin/src/main/java/com/ruoyi/web/domain/dto/projects/ProjectsAddRequest.java

@@ -0,0 +1,42 @@
+package com.ruoyi.web.domain.dto.projects;
+
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 项目添加请求
+ */
+@Data
+@ApiModel(value = "ProjectsAddRequest", description = "项目添加请求参数")
+public class ProjectsAddRequest implements Serializable {
+    /**
+     * 项目名称
+     */
+    private String projectName;
+
+    /**
+     * 项目内容
+     */
+    private String projectDescription;
+
+    /**
+     * 投资金额(元)
+     */
+    private BigDecimal investmentAmount;
+
+    /**
+     * 项目开始日期
+     */
+    private Date startDate;
+
+    /**
+     * 预计建成日期
+     */
+    private Date estimatedCompletionDate;
+
+    private static final long serialVersionUID = 1L;
+}

+ 50 - 0
app-admin/src/main/java/com/ruoyi/web/domain/dto/projects/ProjectsEditRequest.java

@@ -0,0 +1,50 @@
+package com.ruoyi.web.domain.dto.projects;
+
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 项目修改请求
+ */
+@Data
+@ApiModel(value = "ProjectsEditRequest", description = "项目修改请求参数")
+public class ProjectsEditRequest implements Serializable {
+
+    private Integer id;
+
+    /**
+     * 项目名称
+     */
+    private String projectName;
+
+    /**
+     * 项目内容
+     */
+    private String projectDescription;
+
+    /**
+     * 投资金额(元)
+     */
+    private BigDecimal investmentAmount;
+
+    /**
+     * 项目开始日期
+     */
+    private Date startDate;
+
+    /**
+     * 预计建成日期
+     */
+    private Date estimatedCompletionDate;
+
+    /**
+     * 实际建成日期
+     */
+    private Date actualCompletionDate;
+
+    private static final long serialVersionUID = 1L;
+}

+ 7 - 0
app-admin/src/main/java/com/ruoyi/web/domain/dto/projects/ProjectsQueryRequest.java

@@ -1,6 +1,8 @@
 package com.ruoyi.web.domain.dto.projects;
 
 import com.ruoyi.web.common.PageRequest;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
@@ -11,25 +13,30 @@ import java.io.Serializable;
  */
 @EqualsAndHashCode(callSuper = true)
 @Data
+@ApiModel(value = "ProjectsQueryRequest", description = "项目查询请求参数")
 public class ProjectsQueryRequest extends PageRequest implements Serializable {
     /**
      * 项目ID
      */
+    @ApiModelProperty(value = "ID")
     private Integer id;
 
     /**
      * 项目名称
      */
+    @ApiModelProperty(value = "项目名称")
     private String projectName;
 
     /**
      * 项目内容
      */
+    @ApiModelProperty(value = "项目内容")
     private String projectDescription;
 
     /**
      * 项目进度(0-建设中 1-已建成)
      */
+    @ApiModelProperty(value = "项目进度(0-建设中 1-已建成)")
     private Integer progress;
 
     private static final long serialVersionUID = 1L;

+ 58 - 0
app-admin/src/main/java/com/ruoyi/web/domain/dto/subsidyProjects/SubsidyProjectsAddRequest.java

@@ -0,0 +1,58 @@
+package com.ruoyi.web.domain.dto.subsidyProjects;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 惠农补贴项目添加请求
+ *
+ * @TableName subsidy_projects
+ */
+@Data
+public class SubsidyProjectsAddRequest implements Serializable {
+
+    /**
+     * 项目名称
+     */
+    private String projectName;
+
+    /**
+     * 补贴类别
+     */
+    private String category;
+
+    /**
+     * 姓名
+     */
+    private String name;
+
+    /**
+     * 身份证号
+     */
+    private String idCard;
+
+    /**
+     * 实发金额(元)
+     */
+    private BigDecimal money;
+
+    /**
+     * 银行账号
+     */
+    private String bankCard;
+
+    /**
+     * 兑现时间
+     */
+    private Date date;
+
+    /**
+     * 状态
+     */
+    private String status;
+
+    private static final long serialVersionUID = 1L;
+}

+ 62 - 0
app-admin/src/main/java/com/ruoyi/web/domain/dto/subsidyProjects/SubsidyProjectsEditRequest.java

@@ -0,0 +1,62 @@
+package com.ruoyi.web.domain.dto.subsidyProjects;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 惠农补贴项目编辑请求
+ *
+ * @TableName subsidy_projects
+ */
+@Data
+public class SubsidyProjectsEditRequest implements Serializable {
+    /**
+     * id
+     */
+    private Integer id;
+
+    /**
+     * 项目名称
+     */
+    private String projectName;
+
+    /**
+     * 补贴类别
+     */
+    private String category;
+
+    /**
+     * 姓名
+     */
+    private String name;
+
+    /**
+     * 身份证号
+     */
+    private String idCard;
+
+    /**
+     * 实发金额(元)
+     */
+    private BigDecimal money;
+
+    /**
+     * 银行账号
+     */
+    private String bankCard;
+
+    /**
+     * 兑现时间
+     */
+    private Date date;
+
+    /**
+     * 状态
+     */
+    private String status;
+
+    private static final long serialVersionUID = 1L;
+}

+ 15 - 5
app-admin/src/main/java/com/ruoyi/web/domain/dto/SubsidyProjects/SubsidyProjectsQueryRequest.java

@@ -1,6 +1,8 @@
-package com.ruoyi.web.domain.dto.SubsidyProjects;
+package com.ruoyi.web.domain.dto.subsidyProjects;
 
 import com.ruoyi.web.common.PageRequest;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
@@ -12,40 +14,48 @@ import java.util.Date;
  */
 @EqualsAndHashCode(callSuper = true)
 @Data
+@ApiModel(value = "SubsidyProjectsQueryRequest", description = "补贴-项目查询请求参数")
 public class SubsidyProjectsQueryRequest extends PageRequest implements Serializable {
     /**
      * 序号ID
      */
+    @ApiModelProperty(value = "ID")
     private Integer id;
 
     /**
      * 补贴类别
      */
-    private String subsidyType;
+    @ApiModelProperty(value = "补贴类别")
+    private String category;
 
     /**
      * 姓名
      */
-    private String realname;
+    @ApiModelProperty(value = "姓名")
+    private String name;
 
     /**
      * 身份证号
      */
+    @ApiModelProperty(value = "身份证号")
     private String idCard;
 
     /**
      * 开始时间
      */
-    private Date startDate;
+    @ApiModelProperty(value = "开始时间")
+    private Date startTime;
 
     /**
      * 结束时间
      */
-    private Date endDate;
+    @ApiModelProperty(value = "结束时间")
+    private Date endTime;
 
     /**
      * 状态
      */
+    @ApiModelProperty(value = "状态")
     private String status;
 
     private static final long serialVersionUID = 1L;

+ 60 - 0
app-admin/src/main/java/com/ruoyi/web/domain/dto/villageSpecial/VillageSpecialAddRequest.java

@@ -0,0 +1,60 @@
+package com.ruoyi.web.domain.dto.villageSpecial;
+
+import com.ruoyi.web.domain.dto.productionData.ProductionDataAddRequest;
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * 乡村振兴特色产业数据添加请求
+ *
+ * @TableName
+ */
+@Data
+@ApiModel(value = "VillageSpecialAddRequest", description = "乡村振兴特色产业数据添加请求参数")
+public class VillageSpecialAddRequest implements Serializable {
+
+    /**
+     * 产业类别(0-保安腰刀产业、1-农家乐产业、2-民宿产业)
+     */
+    private Integer category;
+
+    /**
+     * 产业名称
+     */
+    private String name;
+
+    /**
+     * 位置
+     */
+    private String location;
+
+    /**
+     * 传承人数
+     */
+    private String peopleNum;
+
+    /**
+     * 经营特色
+     */
+    private String feature;
+
+    /**
+     * 房间数量
+     */
+    private String roomNum;
+
+    /**
+     * 床位数
+     */
+    private String bed;
+
+    /**
+     * 产品/菜品列表
+     */
+    private List<ProductionDataAddRequest> List;
+
+    private static final long serialVersionUID = 1L;
+}

+ 62 - 0
app-admin/src/main/java/com/ruoyi/web/domain/dto/villageSpecial/VillageSpecialEditRequest.java

@@ -0,0 +1,62 @@
+package com.ruoyi.web.domain.dto.villageSpecial;
+
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 乡村振兴特色产业数据编辑请求
+ *
+ * @TableName
+ */
+@Data
+@ApiModel(value = "VillageSpecialEditRequest", description = "乡村振兴特色产业数据编辑请求参数")
+public class VillageSpecialEditRequest implements Serializable {
+    /**
+     * id
+     */
+    private Integer id;
+
+    /**
+     * 产业类别(0-保安腰刀产业、1-农家乐产业、2-民宿产业)
+     */
+    private Integer category;
+
+    /**
+     * 产业名称
+     */
+    private String name;
+
+    /**
+     * 位置
+     */
+    private String location;
+
+    /**
+     * 传承人数
+     */
+    private String peopleNum;
+
+    /**
+     * 经营特色
+     */
+    private String feature;
+
+    /**
+     * 房间数量
+     */
+    private String roomNum;
+
+    /**
+     * 床位数
+     */
+    private String bed;
+
+    /**
+     * 批量多项产品或菜品 id
+     */
+    private String ids;
+
+    private static final long serialVersionUID = 1L;
+}

+ 31 - 0
app-admin/src/main/java/com/ruoyi/web/domain/dto/villageSpecial/VillageSpecialQueryRequest.java

@@ -0,0 +1,31 @@
+package com.ruoyi.web.domain.dto.villageSpecial;
+
+import com.ruoyi.web.common.PageRequest;
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+
+/**
+ * 乡村振兴特色产业数据查询请求
+ *
+ * @TableName
+ */
+@EqualsAndHashCode(callSuper = true)
+@Data
+@ApiModel(value = "VillageSpecialQueryRequest", description = "乡村振兴特色产业数据查询请求参数")
+public class VillageSpecialQueryRequest extends PageRequest implements Serializable {
+
+    /**
+     * 产业类别(0-保安腰刀产业、1-农家乐产业、2-民宿产业)
+     */
+    private Integer category;
+
+    /**
+     * 名称
+     */
+    private String name;
+
+    private static final long serialVersionUID = 1L;
+}

+ 47 - 0
app-admin/src/main/java/com/ruoyi/web/domain/dto/villageTradition/VillageTraditionAddRequest.java

@@ -0,0 +1,47 @@
+package com.ruoyi.web.domain.dto.villageTradition;
+
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 乡村振兴传统产业数据添加请求
+ *
+ * @TableName village_tradition
+ */
+@Data
+@ApiModel(value = "VillageTraditionAddRequest", description = "乡村振兴传统产业数据添加请求参数")
+public class VillageTraditionAddRequest implements Serializable {
+    /**
+     * 产业类别(0-种植业、1-养殖业)
+     */
+    private Integer category;
+
+    /**
+     * 基地名称
+     */
+    private String name;
+
+    /**
+     * 位置
+     */
+    private String location;
+
+    /**
+     * 种植面积/养殖规模
+     */
+    private String area;
+
+    /**
+     * 品种
+     */
+    private String variety;
+
+    /**
+     * 技术推广/应用情况
+     */
+    private String promotion;
+
+    private static final long serialVersionUID = 1L;
+}

+ 52 - 0
app-admin/src/main/java/com/ruoyi/web/domain/dto/villageTradition/VillageTraditionEditRequest.java

@@ -0,0 +1,52 @@
+package com.ruoyi.web.domain.dto.villageTradition;
+
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 乡村振兴传统产业数据编辑请求
+ *
+ * @TableName village_tradition
+ */
+@Data
+@ApiModel(value = "SubsidyProjectsQueryRequest", description = "乡村振兴传统产业数据编辑请求参数")
+public class VillageTraditionEditRequest implements Serializable {
+    /**
+     * id
+     */
+    private Integer id;
+
+    /**
+     * 产业类别(0-种植业、1-养殖业)
+     */
+    private Integer category;
+
+    /**
+     * 基地名称
+     */
+    private String name;
+
+    /**
+     * 位置
+     */
+    private String location;
+
+    /**
+     * 种植面积/养殖规模
+     */
+    private String area;
+
+    /**
+     * 品种
+     */
+    private String variety;
+
+    /**
+     * 技术推广/应用情况
+     */
+    private String promotion;
+
+    private static final long serialVersionUID = 1L;
+}

+ 31 - 0
app-admin/src/main/java/com/ruoyi/web/domain/dto/villageTradition/VillageTraditionQueryRequest.java

@@ -0,0 +1,31 @@
+package com.ruoyi.web.domain.dto.villageTradition;
+
+import com.ruoyi.web.common.PageRequest;
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+
+/**
+ * 乡村振兴传统产业数据查询请求
+ *
+ * @TableName village_tradition
+ */
+@EqualsAndHashCode(callSuper = true)
+@Data
+@ApiModel(value = "VillageTraditionQueryRequest", description = "乡村振兴传统产业数据查询请求参数")
+public class VillageTraditionQueryRequest extends PageRequest implements Serializable {
+
+    /**
+     * 产业类别(0-种植业、1-养殖业)
+     */
+    private Integer category;
+
+    /**
+     * 基地名称
+     */
+    private String name;
+
+    private static final long serialVersionUID = 1L;
+}

+ 78 - 0
app-admin/src/main/java/com/ruoyi/web/domain/entity/EmploymentData.java

@@ -0,0 +1,78 @@
+package com.ruoyi.web.domain.entity;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 就业数据收集
+ *
+ * @TableName employment_data
+ */
+@TableName(value = "employment_data")
+@Data
+public class EmploymentData implements Serializable {
+    /**
+     * id
+     */
+    @TableId(type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 月份
+     */
+    private String months;
+
+    /**
+     * 提供岗位数量
+     */
+    private Integer positionNumber;
+
+    /**
+     * 录用人数
+     */
+    private Integer hireNumber;
+
+    /**
+     * 月薪范围下限
+     */
+    private String monthPayLow;
+
+    /**
+     * 月薪资范围上限
+     */
+    private String monthPayHigh;
+
+    /**
+     * 当前缺口岗位
+     */
+    private String shoragePosition;
+
+    /**
+     * 技能培训情况 1为是 0为否
+     */
+    private Integer skillTraining;
+
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+
+    /**
+     * 修改时间
+     */
+    private Date updateTime;
+
+    /**
+     * 删除标志
+     */
+    @TableLogic
+    @JsonIgnore
+    private String delFlag;
+
+    @TableField(exist = false)
+    private static final long serialVersionUID = 1L;
+}

+ 133 - 0
app-admin/src/main/java/com/ruoyi/web/domain/entity/FacilityManagement.java

@@ -0,0 +1,133 @@
+package com.ruoyi.web.domain.entity;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 设施数据管理
+ *
+ * @TableName facility_management
+ */
+@TableName(value = "facility_management")
+@Data
+public class FacilityManagement implements Serializable {
+    /**
+     * ID
+     */
+    @TableId(type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 设施类型
+     */
+    private String facilityType;
+
+    /**
+     * 设施名称
+     */
+    private String facilityName;
+
+    /**
+     * 位置描述
+     */
+    private String location;
+
+    /**
+     * 长度(米)
+     */
+    private String extent;
+
+    /**
+     * 宽度(米)
+     */
+    private String breadth;
+
+    /**
+     * 车道数量
+     */
+    private Integer carNum;
+
+    /**
+     * 路面类型
+     */
+    private String surface;
+
+    /**
+     * 线路长度
+     */
+    private String lineLength;
+
+    /**
+     * 电气与安全参数
+     */
+    private String electric;
+
+    /**
+     * 覆盖范围
+     */
+    private String coverageArea;
+
+    /**
+     * 发射功率
+     */
+    private String power;
+
+    /**
+     * 运营商
+     */
+    private String operator;
+
+    /**
+     * 占地面积
+     */
+    private String area;
+
+    /**
+     * 建成年份
+     */
+    private String year;
+
+    /**
+     * 班级数量
+     */
+    private Integer classNum;
+
+    /**
+     * 教师人数
+     */
+    private Integer teacherNum;
+
+    /**
+     * 学生人数
+     */
+    private Integer studentNum;
+
+    /**
+     * 联系电话
+     */
+    private String phone;
+
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+
+    /**
+     * 更新时间
+     */
+    private Date updateTime;
+
+    /**
+     * 删除标志(0-正常 1-删除)
+     */
+    @TableLogic
+    @JsonIgnore
+    private String delFlag;
+
+    @TableField(exist = false)
+    private static final long serialVersionUID = 1L;
+}

+ 3 - 1
app-admin/src/main/java/com/ruoyi/web/domain/entity/HouseInfo.java

@@ -1,11 +1,12 @@
 package com.ruoyi.web.domain.entity;
 
 import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import lombok.Data;
 
 import java.io.Serializable;
 import java.math.BigDecimal;
 import java.util.Date;
-import lombok.Data;
 
 /**
  * 房屋信息表
@@ -89,6 +90,7 @@ public class HouseInfo implements Serializable {
      * 删除标志
      */
     @TableLogic
+    @JsonIgnore
     private String delFlag;
 
     @TableField(exist = false)

+ 5 - 8
app-admin/src/main/java/com/ruoyi/web/domain/entity/HouseholdInfo.java

@@ -1,10 +1,11 @@
 package com.ruoyi.web.domain.entity;
 
 import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import lombok.Data;
 
 import java.io.Serializable;
 import java.util.Date;
-import lombok.Data;
 
 /**
  * 户籍信息表
@@ -25,14 +26,9 @@ public class HouseholdInfo implements Serializable {
     private String householdCode;
 
     /**
-     * 户主姓名
-     */
-    private String householdHead;
-
-    /**
-     * 户主身份证号
+     * 户主id
      */
-    private String householdHeadIdCard;
+    private Integer householdHeadId;
 
     /**
      * 户籍类型: 1-农业户口, 2-非农业户口
@@ -68,6 +64,7 @@ public class HouseholdInfo implements Serializable {
      * 删除标志
      */
     @TableLogic
+    @JsonIgnore
     private String delFlag;
 
     @TableField(exist = false)

+ 68 - 0
app-admin/src/main/java/com/ruoyi/web/domain/entity/IndustryData.java

@@ -0,0 +1,68 @@
+package com.ruoyi.web.domain.entity;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 产业数据收集
+ *
+ * @TableName industry_data
+ */
+@TableName(value = "industry_data")
+@Data
+public class IndustryData implements Serializable {
+    /**
+     * id
+     */
+    @TableId(type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 年份
+     */
+    private String years;
+
+    /**
+     * 产业类别:0-种植业/1-养殖业/2-保安腰刀产业/3-农家乐产业/4-民宿产业
+     */
+    private Integer category;
+
+    /**
+     * 产业规模
+     */
+    private String scale;
+
+    /**
+     * 产量
+     */
+    private String yield;
+
+    /**
+     * 产值
+     */
+    private String value;
+
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+
+    /**
+     * 修改时间
+     */
+    private Date updateTime;
+
+    /**
+     * 删除标志
+     */
+    @TableLogic
+    @JsonIgnore
+    private String delFlag;
+
+    @TableField(exist = false)
+    private static final long serialVersionUID = 1L;
+}

+ 58 - 0
app-admin/src/main/java/com/ruoyi/web/domain/entity/LocalPolicy.java

@@ -0,0 +1,58 @@
+package com.ruoyi.web.domain.entity;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 当地政策数据表
+ *
+ * @TableName local_policy
+ */
+@TableName(value = "local_policy")
+@Data
+public class LocalPolicy implements Serializable {
+    /**
+     * ID
+     */
+    @TableId(type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 政策名称
+     */
+    private String name;
+
+    /**
+     * 政策描述
+     */
+    private String label;
+
+    /**
+     * 政策文件路径
+     */
+    private String file;
+
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+
+    /**
+     * 修改时间
+     */
+    private Date updateTime;
+
+    /**
+     * 删除标志
+     */
+    @TableLogic
+    @JsonIgnore
+    private String delFlag;
+
+    @TableField(exist = false)
+    private static final long serialVersionUID = 1L;
+}

+ 3 - 1
app-admin/src/main/java/com/ruoyi/web/domain/entity/PersonHouseRelation.java

@@ -1,10 +1,11 @@
 package com.ruoyi.web.domain.entity;
 
 import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import lombok.Data;
 
 import java.io.Serializable;
 import java.util.Date;
-import lombok.Data;
 
 /**
  * 人员房屋关系表
@@ -43,6 +44,7 @@ public class PersonHouseRelation implements Serializable {
      * 删除标志
      */
     @TableLogic
+    @JsonIgnore
     private String delFlag;
 
     @TableField(exist = false)

+ 3 - 4
app-admin/src/main/java/com/ruoyi/web/domain/entity/PersonInfo.java

@@ -1,13 +1,12 @@
 package com.ruoyi.web.domain.entity;
 
 import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import lombok.Data;
 
 import java.io.Serializable;
 import java.util.Date;
 
-import io.swagger.annotations.ApiModel;
-import lombok.Data;
-
 /**
  * 人员信息表
  *
@@ -15,7 +14,6 @@ import lombok.Data;
  */
 @TableName(value = "person_info")
 @Data
-@ApiModel(value = "PersonInfo", description = "人员实体")
 public class PersonInfo implements Serializable {
     /**
      * ID
@@ -142,6 +140,7 @@ public class PersonInfo implements Serializable {
      * 删除标志
      */
     @TableLogic
+    @JsonIgnore
     private String delFlag;
 
     @TableField(exist = false)

+ 58 - 0
app-admin/src/main/java/com/ruoyi/web/domain/entity/ProductionData.java

@@ -0,0 +1,58 @@
+package com.ruoyi.web.domain.entity;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 乡村特色产业产品
+ *
+ * @TableName production_data
+ */
+@TableName(value = "production_data")
+@Data
+public class ProductionData implements Serializable {
+    /**
+     * id
+     */
+    @TableId(type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 产品名称/菜品名称
+     */
+    private String name;
+
+    /**
+     * 产品图片/菜品图片
+     */
+    private String img;
+
+    /**
+     * 产品价格/菜品价格
+     */
+    private String price;
+
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+
+    /**
+     * 修改时间
+     */
+    private Date updateTime;
+
+    /**
+     * 删除标志
+     */
+    @TableLogic
+    @JsonIgnore
+    private String delFlag;
+
+    @TableField(exist = false)
+    private static final long serialVersionUID = 1L;
+}

+ 3 - 2
app-admin/src/main/java/com/ruoyi/web/domain/entity/Projects.java

@@ -1,13 +1,13 @@
 package com.ruoyi.web.domain.entity;
 
 import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import lombok.Data;
 
 import java.io.Serializable;
 import java.math.BigDecimal;
 import java.util.Date;
 
-import lombok.Data;
-
 /**
  * 项目表
  *
@@ -71,6 +71,7 @@ public class Projects implements Serializable {
      * 删除标志
      */
     @TableLogic
+    @JsonIgnore
     private String delFlag;
 
     @TableField(exist = false)

+ 7 - 5
app-admin/src/main/java/com/ruoyi/web/domain/entity/SubsidyProjects.java

@@ -1,6 +1,7 @@
 package com.ruoyi.web.domain.entity;
 
 import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonIgnore;
 import lombok.Data;
 
 import java.io.Serializable;
@@ -29,12 +30,12 @@ public class SubsidyProjects implements Serializable {
     /**
      * 补贴类别
      */
-    private String subsidyType;
+    private String category;
 
     /**
      * 姓名
      */
-    private String realname;
+    private String name;
 
     /**
      * 身份证号
@@ -44,17 +45,17 @@ public class SubsidyProjects implements Serializable {
     /**
      * 实发金额(元)
      */
-    private BigDecimal subsidyAmount;
+    private BigDecimal money;
 
     /**
      * 银行账号SHA-256哈希(加密存储)
      */
-    private String bankAccount;
+    private String bankCard;
 
     /**
      * 兑现时间
      */
-    private Date paymentDate;
+    private Date date;
 
     /**
      * 状态
@@ -75,6 +76,7 @@ public class SubsidyProjects implements Serializable {
      * 删除标志
      */
     @TableLogic
+    @JsonIgnore
     private String delFlag;
 
     @TableField(exist = false)

+ 88 - 0
app-admin/src/main/java/com/ruoyi/web/domain/entity/VillageService.java

@@ -0,0 +1,88 @@
+package com.ruoyi.web.domain.entity;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 乡村振兴产业服务与支持
+ *
+ * @TableName village_service
+ */
+@TableName(value = "village_service")
+@Data
+public class VillageService implements Serializable {
+    /**
+     * id
+     */
+    @TableId(type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 标题
+     */
+    private String title;
+
+    /**
+     * 标签 ["1","2"]
+     */
+    private String tag;
+
+    /**
+     * 类型 1-图文,2-视频
+     */
+    private Integer type;
+
+    /**
+     * 内容
+     */
+    private String content;
+
+    /**
+     * 封面图
+     */
+    private String photoUrl;
+
+    /**
+     * 来源
+     */
+    private String source;
+
+    /**
+     * 发布状态 1未发布 2-已发布 3-下架
+     */
+    private Integer status;
+
+    /**
+     * 发布日期
+     */
+    private Date date;
+
+    /**
+     * 发布人id
+     */
+    private Integer issuerId;
+
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+
+    /**
+     * 修改时间
+     */
+    private Date updateTime;
+
+    /**
+     * 删除标志
+     */
+    @TableLogic
+    @JsonIgnore
+    private String delFlag;
+
+    @TableField(exist = false)
+    private static final long serialVersionUID = 1L;
+}

+ 83 - 0
app-admin/src/main/java/com/ruoyi/web/domain/entity/VillageSpecial.java

@@ -0,0 +1,83 @@
+package com.ruoyi.web.domain.entity;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 乡村特色产业
+ *
+ * @TableName village_special
+ */
+@TableName(value = "village_special")
+@Data
+public class VillageSpecial implements Serializable {
+    /**
+     * id
+     */
+    @TableId(type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 产业类别(0-保安腰刀产业、1-农家乐产业、2-民宿产业)
+     */
+    private Integer category;
+
+    /**
+     * 产业名称
+     */
+    private String name;
+
+    /**
+     * 位置
+     */
+    private String location;
+
+    /**
+     * 传承人数
+     */
+    private String peopleNum;
+
+    /**
+     * 经营特色
+     */
+    private String feature;
+
+    /**
+     * 房间数量
+     */
+    private String roomNum;
+
+    /**
+     * 床位数
+     */
+    private String bed;
+
+    /**
+     * 批量多项产品或菜品 id
+     */
+    private String ids;
+
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+
+    /**
+     * 修改时间
+     */
+    private Date updateTime;
+
+    /**
+     * 删除标志
+     */
+    @TableLogic
+    @JsonIgnore
+    private String delFlag;
+
+    @TableField(exist = false)
+    private static final long serialVersionUID = 1L;
+}

+ 73 - 0
app-admin/src/main/java/com/ruoyi/web/domain/entity/VillageTradition.java

@@ -0,0 +1,73 @@
+package com.ruoyi.web.domain.entity;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 乡村振兴传统产业数据
+ *
+ * @TableName village_tradition
+ */
+@TableName(value = "village_tradition")
+@Data
+public class VillageTradition implements Serializable {
+    /**
+     * id
+     */
+    @TableId(type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 产业类别(0-种植业、1-养殖业)
+     */
+    private Integer category;
+
+    /**
+     * 基地名称
+     */
+    private String name;
+
+    /**
+     * 位置
+     */
+    private String location;
+
+    /**
+     * 种植面积/养殖规模
+     */
+    private String area;
+
+    /**
+     * 品种
+     */
+    private String variety;
+
+    /**
+     * 技术推广/应用情况
+     */
+    private String promotion;
+
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+
+    /**
+     * 修改时间
+     */
+    private Date updateTime;
+
+    /**
+     * 删除标志
+     */
+    @TableLogic
+    @JsonIgnore
+    private String delFlag;
+
+    @TableField(exist = false)
+    private static final long serialVersionUID = 1L;
+}

+ 38 - 0
app-admin/src/main/java/com/ruoyi/web/domain/enums/VillageServiceEnum.java

@@ -0,0 +1,38 @@
+package com.ruoyi.web.domain.enums;
+
+import cn.hutool.core.util.ObjectUtil;
+import lombok.Getter;
+
+/**
+ * 服务与支持枚举类
+ */
+@Getter
+public enum VillageServiceEnum {
+    NON_PUBLISHED("未发布", 0),
+    PUBLISHED("已发布", 1),
+    REMOVED("下架",2);
+
+    private final String text;
+
+    private final int value;
+
+    VillageServiceEnum(String text, int value) {
+        this.text = text;
+        this.value = value;
+    }
+
+    /**
+     * 根据 value 获取枚举
+     */
+    public static VillageServiceEnum getEnumByValue(Integer value) {
+        if (ObjectUtil.isEmpty(value)) {
+            return null;
+        }
+        for (VillageServiceEnum villageServiceEnum : VillageServiceEnum.values()) {
+            if (villageServiceEnum.value == value) {
+                return villageServiceEnum;
+            }
+        }
+        return null;
+    }
+}

+ 39 - 0
app-admin/src/main/java/com/ruoyi/web/domain/vo/FacilityManagement/BaseFacilityVO.java

@@ -0,0 +1,39 @@
+package com.ruoyi.web.domain.vo.FacilityManagement;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel(value = "BasePersonVO", description = "设施基础信息")
+public class BaseFacilityVO {
+    /**
+     * ID
+     */
+    @ApiModelProperty(value = "ID")
+    private Integer id;
+
+    /**
+     * 设施类型
+     */
+    @ApiModelProperty(value = "设施类型")
+    private String facilityType;
+
+    /**
+     * 设施名称
+     */
+    @ApiModelProperty(value = "设施名称")
+    private String facilityName;
+
+    /**
+     * 位置描述
+     */
+    @ApiModelProperty(value = "位置")
+    private String location;
+
+    /**
+     * 建成年份
+     */
+    @ApiModelProperty(value = "建成年份")
+    private String year;
+}

+ 24 - 0
app-admin/src/main/java/com/ruoyi/web/domain/vo/FacilityManagement/ElectricVO.java

@@ -0,0 +1,24 @@
+package com.ruoyi.web.domain.vo.FacilityManagement;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+// 电力设施专用VO
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ApiModel(value = "ElectricVO", description = "电力信息")
+public class ElectricVO extends BaseFacilityVO {
+    /**
+     * 线路长度
+     */
+    @ApiModelProperty(value = "长度")
+    private String lineLength;
+
+    /**
+     * 电气与安全参数
+     */
+    @ApiModelProperty(value = "电气与安全参数")
+    private String electric;
+}

+ 58 - 0
app-admin/src/main/java/com/ruoyi/web/domain/vo/FacilityManagement/FacilityVOFactory.java

@@ -0,0 +1,58 @@
+package com.ruoyi.web.domain.vo.FacilityManagement;
+
+import com.ruoyi.common.utils.SecureSensitiveUtils;
+import com.ruoyi.common.utils.bean.BeanUtils;
+import com.ruoyi.web.domain.entity.FacilityManagement;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.function.Function;
+
+/**
+ * 设施VO转换工厂
+ */
+public class FacilityVOFactory {
+
+    private static final Map<String, Function<FacilityManagement, ? extends BaseFacilityVO>> CONVERTERS =
+            new HashMap<>();
+
+    static {
+        CONVERTERS.put("1", entity -> {
+            RoadVO vo = new RoadVO();
+            BeanUtils.copyProperties(entity, vo);
+            return vo;
+        });
+
+        CONVERTERS.put("2", entity -> {
+            ElectricVO vo = new ElectricVO();
+            BeanUtils.copyProperties(entity, vo);
+            return vo;
+        });
+
+        CONVERTERS.put("3", entity -> {
+            TelecomVO vo = new TelecomVO();
+            BeanUtils.copyProperties(entity, vo);
+            return vo;
+        });
+
+        CONVERTERS.put("4", entity -> {
+            SchoolVO vo = new SchoolVO();
+            BeanUtils.copyProperties(entity, vo);
+            // 手机号脱敏
+            String phone = entity.getPhone();
+            vo.setPhone(SecureSensitiveUtils.maskPhone(phone));
+            return vo;
+        });
+
+
+    }
+
+    public static BaseFacilityVO convert(FacilityManagement entity) {
+        Function<FacilityManagement, ? extends BaseFacilityVO> converter =
+                CONVERTERS.get(entity.getFacilityType());
+        if (converter == null) {
+            throw new IllegalArgumentException("未知设施类型: " + entity.getFacilityType());
+        }
+        return converter.apply(entity);
+    }
+}

+ 36 - 0
app-admin/src/main/java/com/ruoyi/web/domain/vo/FacilityManagement/RoadVO.java

@@ -0,0 +1,36 @@
+package com.ruoyi.web.domain.vo.FacilityManagement;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+// 道路专用VO
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ApiModel(value = "RoadVO", description = "道路信息")
+public class RoadVO extends BaseFacilityVO {
+    /**
+     * 长度(米)
+     */
+    @ApiModelProperty(value = "长度")
+    private String extent;
+
+    /**
+     * 宽度(米)
+     */
+    @ApiModelProperty(value = "宽度")
+    private String breadth;
+
+    /**
+     * 车道数量
+     */
+    @ApiModelProperty(value = "车道数量")
+    private Integer carNum;
+
+    /**
+     * 路面类型
+     */
+    @ApiModelProperty(value = "路面类型")
+    private String surface;
+}

+ 41 - 0
app-admin/src/main/java/com/ruoyi/web/domain/vo/FacilityManagement/SchoolVO.java

@@ -0,0 +1,41 @@
+package com.ruoyi.web.domain.vo.FacilityManagement;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ApiModel(value = "SchoolVO", description = "学校信息")
+public class SchoolVO extends BaseFacilityVO {
+    /**
+     * 占地面积
+     */
+    @ApiModelProperty(value = "占地面积")
+    private String area;
+
+    /**
+     * 班级数量
+     */
+    @ApiModelProperty(value = "班级数量")
+    private Integer classNum;
+
+    /**
+     * 教师人数
+     */
+    @ApiModelProperty(value = "教师人数")
+    private Integer teacherNum;
+
+    /**
+     * 学生人数
+     */
+    @ApiModelProperty(value = "学生人数")
+    private Integer studentNum;
+
+    /**
+     * 联系电话
+     */
+    @ApiModelProperty(value = "联系电话")
+    private String phone;
+}

+ 30 - 0
app-admin/src/main/java/com/ruoyi/web/domain/vo/FacilityManagement/TelecomVO.java

@@ -0,0 +1,30 @@
+package com.ruoyi.web.domain.vo.FacilityManagement;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+// 4. 通信设施专用VO
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ApiModel(value = "TelecomVO", description = "通信信息")
+public class TelecomVO extends BaseFacilityVO {
+    /**
+     * 覆盖范围
+     */
+    @ApiModelProperty(value = "覆盖范围")
+    private String coverageArea;
+
+    /**
+     * 发射功率
+     */
+    @ApiModelProperty(value = "发射功率")
+    private String power;
+
+    /**
+     * 运营商
+     */
+    @ApiModelProperty(value = "运营商")
+    private String operator;
+}

+ 18 - 0
app-admin/src/main/java/com/ruoyi/web/domain/vo/HouseInfoVO.java

@@ -1,6 +1,8 @@
 package com.ruoyi.web.domain.vo;
 
 import com.baomidou.mybatisplus.annotation.*;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 import java.io.Serializable;
@@ -14,80 +16,96 @@ import java.util.Date;
  */
 @TableName(value = "house_info")
 @Data
+@ApiModel(value = "HouseInfoVO", description = "房屋信息视图")
 public class HouseInfoVO implements Serializable {
     /**
      * 房屋ID
      */
+    @ApiModelProperty(value = "ID")
     private Integer id;
 
     /**
      * 房屋编号(如FW0000580689)
      */
+    @ApiModelProperty(value = "房屋编号")
     private String houseCode;
 
     /**
      * 门牌号
      */
+    @ApiModelProperty(value = "门牌号")
     private String doorplateNumber;
 
     /**
      * 房屋地址
      */
+    @ApiModelProperty(value = "房屋地址")
     private String houseAddress;
 
     /**
      * 房主人员信息(姓名/身份证号/电话)
      */
+    @ApiModelProperty(value = "房主人员信息(姓名/身份证号/电话)")
     private PersonInfoVO houseOwnerInfo;
 
     /**
      * 总积分
      */
+    @ApiModelProperty(value = "总积分")
     private Integer totalPoints;
 
     /**
      * 剩余积分
      */
+    @ApiModelProperty(value = "剩余积分")
     private Integer remainingPoints;
 
     /**
      * 房屋类别:1-修缮,2-原址重建,3-集中安置
      */
+    @ApiModelProperty(value = "房屋类别:1-修缮,2-原址重建,3-集中安置")
     private Integer houseCategory;
 
     /**
      * 宅基地面积(㎡)
      */
+    @ApiModelProperty(value = "宅基地面积(㎡)")
     private BigDecimal buildingArea;
 
     /**
      * 所属网格
      */
+    @ApiModelProperty(value = "所属网格")
     private String grid;
 
     /**
      * 成员数量
      */
+    @ApiModelProperty(value = "成员数量")
     private Integer memberCount;
 
     /**
      * 照片URL
      */
+    @ApiModelProperty(value = "照片URL")
     private String photoUrl;
 
     /**
      * 家庭标签(JSON数组)
      */
+    @ApiModelProperty(value = "家庭标签")
     private String houseTags;
 
     /**
      * 创建时间
      */
+    @ApiModelProperty(value = "创建时间")
     private Date createTime;
 
     /**
      * 修改时间
      */
+    @ApiModelProperty(value = "修改时间")
     private Date updateTime;
 
     private static final long serialVersionUID = 1L;

+ 28 - 0
app-admin/src/main/java/com/ruoyi/web/domain/vo/PersonInfoVO.java

@@ -1,5 +1,7 @@
 package com.ruoyi.web.domain.vo;
 
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 import java.io.Serializable;
@@ -11,130 +13,156 @@ import java.util.Date;
  * @TableName person_info
  */
 @Data
+@ApiModel(value = "PersonInfoVO", description = "人员信息视图")
 public class PersonInfoVO implements Serializable {
     /**
      * ID
      */
+    @ApiModelProperty(value = "ID")
     private Integer id;
 
     /**
      * 姓名
      */
+    @ApiModelProperty(value = "姓名")
     private String realname;
 
     /**
      * 身份证号
      */
+    @ApiModelProperty(value = "身份证号")
     private String idCard;
 
     /**
      * 民族
      */
+    @ApiModelProperty(value = "民族")
     private String ethnic;
 
     /**
      * 年龄
      */
+    @ApiModelProperty(value = "年龄")
     private Integer age;
 
     /**
      * 性别: 1-男, 2-女, 0-未知
      */
+    @ApiModelProperty(value = "性别: 1-男, 2-女, 0-未知")
     private Integer gender;
 
     /**
      * 出生日期
      */
+    @ApiModelProperty(value = "出生日期")
     private Date birthDate;
 
     /**
      * 人口类别:0-本村户籍 ,1-非本村户籍
      */
+    @ApiModelProperty(value = "人口类别:0-本村户籍 ,1-非本村户籍")
     private Integer populationCategory;
 
     /**
      * 电话
      */
+    @ApiModelProperty(value = "电话")
     private String phone;
 
     /**
      * 人口标签(标签 json 列表)
      */
+    @ApiModelProperty(value = "人口标签(标签 json 列表)")
     private String populationTags;
 
     /**
      * 职业
      */
+    @ApiModelProperty(value = "职业")
     private String occupation;
 
     /**
      * 所属网格
      */
+    @ApiModelProperty(value = "所属网格")
     private String grid;
 
     /**
      * 文化程度
      */
+    @ApiModelProperty(value = "文化程度")
     private String educationLevel;
 
     /**
      * 婚姻状况: 1-未婚, 2-已婚, 3-丧偶, 4-离婚
      */
+    @ApiModelProperty(value = "婚姻状况: 1-未婚, 2-已婚, 3-丧偶, 4-离婚")
     private Integer maritalStatus;
 
     /**
      * 政治面貌
      */
+    @ApiModelProperty(value = "政治面貌")
     private String politicalStatus;
 
     /**
      * 宗教信仰
      */
+    @ApiModelProperty(value = "宗教信仰")
     private String religion;
 
     /**
      * 照片URL
      */
+    @ApiModelProperty(value = "照片URL")
     private String photoUrl;
 
     /**
      * 户主姓名
      */
+    @ApiModelProperty(value = "户主姓名")
     private String houseHoldHead;
 
     /**
      * 户籍关系
      */
+    @ApiModelProperty(value = "户籍关系")
     private String householdRelation;
 
     /**
      * 房屋编号
      */
+    @ApiModelProperty(value = "房屋编号")
     private String houseCode;
 
     /**
      * 门牌号
      */
+    @ApiModelProperty(value = "门牌号")
     private String doorplateNumber;
 
     /**
      * 房主姓名
      */
+    @ApiModelProperty(value = "房主姓名")
     private String houseOwnerName;
 
     /**
      * 特殊身份
      */
+    @ApiModelProperty(value = "特殊身份")
     private String specialIdentity;
 
     /**
      * 创建时间
      */
+    @ApiModelProperty(value = "创建时间")
     private Date createTime;
 
     /**
      * 修改时间
      */
+    @ApiModelProperty(value = "修改时间")
     private Date updateTime;
 
     private static final long serialVersionUID = 1L;

+ 13 - 0
app-admin/src/main/java/com/ruoyi/web/domain/vo/ProjectsVO.java

@@ -1,5 +1,7 @@
 package com.ruoyi.web.domain.vo;
 
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 import java.io.Serializable;
@@ -12,55 +14,66 @@ import java.util.Date;
  * @TableName projects
  */
 @Data
+@ApiModel(value = "ProjectsVO", description = "项目信息视图")
 public class ProjectsVO implements Serializable {
     /**
      * 项目ID
      */
+    @ApiModelProperty(value = "ID")
     private Integer id;
 
     /**
      * 项目名称
      */
+    @ApiModelProperty(value = "项目名称")
     private String projectName;
 
     /**
      * 项目内容
      */
+    @ApiModelProperty(value = "项目内容")
     private String projectDescription;
 
     /**
      * 投资金额(元)
      */
+    @ApiModelProperty(value = "投资金额(元)")
     private BigDecimal investmentAmount;
 
     /**
      * 项目开始日期
      */
+    @ApiModelProperty(value = "项目开始日期")
     private Date startDate;
 
     /**
      * 预计建成日期
      */
+    @ApiModelProperty(value = "预计建成日期")
     private Date estimatedCompletionDate;
 
     /**
      * 实际建成日期
      */
+    @ApiModelProperty(value = "实际建成日期")
     private Date actualCompletionDate;
 
     /**
      * 项目进度(0-建设中 1-已建成)
      */
+    @ApiModelProperty(value = "项目进度(0-建设中 1-已建成)")
     private Integer progress;
 
     /**
      * 创建时间
      */
+    @ApiModelProperty(value = "创建时间")
     private Date createTime;
 
     /**
      * 修改时间
      */
+    @ApiModelProperty(value = "修改时间")
     private Date updateTime;
 
     private static final long serialVersionUID = 1L;

+ 21 - 0
app-admin/src/main/java/com/ruoyi/web/domain/vo/VillageSpecial/BAndBVO.java

@@ -0,0 +1,21 @@
+package com.ruoyi.web.domain.vo.VillageSpecial;
+
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+// 民宿产业VO
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ApiModel(value = "BAndBVO", description = "民宿产业信息")
+public class BAndBVO extends BaseVillageSpecialVO {
+    /**
+     * 房间数量
+     */
+    private String roomNum;
+
+    /**
+     * 床位数
+     */
+    private String bed;
+}

+ 21 - 0
app-admin/src/main/java/com/ruoyi/web/domain/vo/VillageSpecial/BaoAnVO.java

@@ -0,0 +1,21 @@
+package com.ruoyi.web.domain.vo.VillageSpecial;
+
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+// 保安腰刀产业VO
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ApiModel(value = "BaoAnVO", description = "保安腰刀产业信息")
+public class BaoAnVO extends BaseVillageSpecialVO {
+    /**
+     * 传承人数
+     */
+    private String peopleNum;
+
+    /**
+     * 产品数量
+     */
+    private Integer produceNum;
+}

+ 28 - 0
app-admin/src/main/java/com/ruoyi/web/domain/vo/VillageSpecial/BaseVillageSpecialVO.java

@@ -0,0 +1,28 @@
+package com.ruoyi.web.domain.vo.VillageSpecial;
+
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+@Data
+@ApiModel(value = "BaseVillageSpecialVO", description = "传统产业基础信息")
+public class BaseVillageSpecialVO {
+    /**
+     * id
+     */
+    private Integer id;
+
+    /**
+     * 产业类别(0-保安腰刀产业、1-农家乐产业、2-民宿产业)
+     */
+    private Integer category;
+
+    /**
+     * 产业名称
+     */
+    private String name;
+
+    /**
+     * 位置
+     */
+    private String location;
+}

+ 21 - 0
app-admin/src/main/java/com/ruoyi/web/domain/vo/VillageSpecial/FarmHouseVO.java

@@ -0,0 +1,21 @@
+package com.ruoyi.web.domain.vo.VillageSpecial;
+
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+// 农家乐产业VO
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ApiModel(value = "FarmHouseVO", description = "农家乐产业信息")
+public class FarmHouseVO extends BaseVillageSpecialVO {
+    /**
+     * 经营特色
+     */
+    private String feature;
+
+    /**
+     * 菜品数量
+     */
+    private Integer vegetable;
+}

+ 52 - 0
app-admin/src/main/java/com/ruoyi/web/domain/vo/VillageSpecial/SpecialVOFactory.java

@@ -0,0 +1,52 @@
+package com.ruoyi.web.domain.vo.VillageSpecial;
+
+import com.ruoyi.common.utils.bean.BeanUtils;
+import com.ruoyi.web.domain.entity.VillageSpecial;
+import com.ruoyi.web.service.VillageSpecialService;
+import org.springframework.beans.factory.annotation.Autowired;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.function.Function;
+
+/**
+ * 特色产业VO转换工厂
+ */
+public class SpecialVOFactory {
+
+    @Autowired
+    private VillageSpecialService villageSpecialService;
+
+    private static final Map<Integer, Function<VillageSpecial, ? extends BaseVillageSpecialVO>> CONVERTERS =
+            new HashMap<>();
+
+    //0-保安腰刀产业、1-农家乐产业、2-民宿产业
+    static {
+        CONVERTERS.put(0, entity -> {
+            BaoAnVO vo = new BaoAnVO();
+            BeanUtils.copyProperties(entity, vo);
+            return vo;
+        });
+
+        CONVERTERS.put(1, entity -> {
+            FarmHouseVO vo = new FarmHouseVO();
+            BeanUtils.copyProperties(entity, vo);
+            return vo;
+        });
+
+        CONVERTERS.put(2, entity -> {
+            BAndBVO vo = new BAndBVO();
+            BeanUtils.copyProperties(entity, vo);
+            return vo;
+        });
+    }
+
+    public static BaseVillageSpecialVO convert(VillageSpecial entity) {
+        Function<VillageSpecial, ? extends BaseVillageSpecialVO> converter =
+                CONVERTERS.get(entity.getCategory());
+        if (converter == null) {
+            throw new IllegalArgumentException("未知特色产业类型: " + entity.getCategory());
+        }
+        return converter.apply(entity);
+    }
+}

+ 16 - 0
app-admin/src/main/java/com/ruoyi/web/mapper/EmploymentDataMapper.java

@@ -0,0 +1,16 @@
+package com.ruoyi.web.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.web.domain.entity.EmploymentData;
+
+
+/**
+ * @Entity generator.domain.EmploymentData
+ */
+public interface EmploymentDataMapper extends BaseMapper<EmploymentData> {
+
+}
+
+
+
+

+ 16 - 0
app-admin/src/main/java/com/ruoyi/web/mapper/FacilityManagementMapper.java

@@ -0,0 +1,16 @@
+package com.ruoyi.web.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.web.domain.entity.FacilityManagement;
+
+
+/**
+ * @Entity generator.domain.FacilityManagement
+ */
+public interface FacilityManagementMapper extends BaseMapper<FacilityManagement> {
+
+}
+
+
+
+

+ 16 - 0
app-admin/src/main/java/com/ruoyi/web/mapper/IndustryDataMapper.java

@@ -0,0 +1,16 @@
+package com.ruoyi.web.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.web.domain.entity.IndustryData;
+
+
+/**
+ * @Entity generator.domain.IndustryData
+ */
+public interface IndustryDataMapper extends BaseMapper<IndustryData> {
+
+}
+
+
+
+

+ 15 - 0
app-admin/src/main/java/com/ruoyi/web/mapper/LocalPolicyMapper.java

@@ -0,0 +1,15 @@
+package com.ruoyi.web.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.web.domain.entity.LocalPolicy;
+
+/**
+ * @Entity generator.domain.LocalPolicy
+ */
+public interface LocalPolicyMapper extends BaseMapper<LocalPolicy> {
+
+}
+
+
+
+

+ 16 - 0
app-admin/src/main/java/com/ruoyi/web/mapper/ProductionDataMapper.java

@@ -0,0 +1,16 @@
+package com.ruoyi.web.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.web.domain.entity.ProductionData;
+
+
+/**
+ * @Entity generator.domain.ProductionData
+ */
+public interface ProductionDataMapper extends BaseMapper<ProductionData> {
+
+}
+
+
+
+

+ 16 - 0
app-admin/src/main/java/com/ruoyi/web/mapper/VillageServiceMapper.java

@@ -0,0 +1,16 @@
+package com.ruoyi.web.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.web.domain.entity.VillageService;
+
+
+/**
+ * @Entity generator.domain.VillageService
+ */
+public interface VillageServiceMapper extends BaseMapper<VillageService> {
+
+}
+
+
+
+

+ 15 - 0
app-admin/src/main/java/com/ruoyi/web/mapper/VillageSpecialMapper.java

@@ -0,0 +1,15 @@
+package com.ruoyi.web.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.web.domain.entity.VillageSpecial;
+
+/**
+ * @Entity generator.domain.VillageSpecial
+ */
+public interface VillageSpecialMapper extends BaseMapper<VillageSpecial> {
+
+}
+
+
+
+

+ 16 - 0
app-admin/src/main/java/com/ruoyi/web/mapper/VillageTraditionMapper.java

@@ -0,0 +1,16 @@
+package com.ruoyi.web.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.web.domain.entity.VillageTradition;
+
+
+/**
+ * @Entity generator.domain.VillageTradition
+ */
+public interface VillageTraditionMapper extends BaseMapper<VillageTradition> {
+
+}
+
+
+
+

+ 22 - 0
app-admin/src/main/java/com/ruoyi/web/service/EmploymentDataService.java

@@ -0,0 +1,22 @@
+package com.ruoyi.web.service;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.web.domain.dto.employment.EmploymentDataQueryRequest;
+import com.ruoyi.web.domain.entity.EmploymentData;
+
+
+/**
+ *
+ */
+public interface EmploymentDataService extends IService<EmploymentData> {
+    Integer addEmploymentData(EmploymentData employmentData);
+
+    boolean deleteEmploymentData(String ids);
+
+    void editEmploymentData(EmploymentData employmentData);
+
+    EmploymentData getEmploymentDataById(int id);
+
+    Page<EmploymentData> getListEmploymentDataByPage(EmploymentDataQueryRequest employmentDataQueryRequest);
+}

+ 32 - 0
app-admin/src/main/java/com/ruoyi/web/service/FacilityManagementService.java

@@ -0,0 +1,32 @@
+package com.ruoyi.web.service;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.web.domain.dto.facility.FacilityAddRequest;
+import com.ruoyi.web.domain.dto.facility.FacilityEditRequest;
+import com.ruoyi.web.domain.dto.facility.FacilityQueryRequest;
+import com.ruoyi.web.domain.entity.FacilityManagement;
+import com.ruoyi.web.domain.vo.FacilityManagement.BaseFacilityVO;
+
+/**
+ * 设施接口
+ */
+public interface FacilityManagementService extends IService<FacilityManagement> {
+
+    Integer addFacility(FacilityAddRequest facilityAddRequest);
+
+    void editFacility(FacilityEditRequest facilityEditRequest);
+
+    boolean deleteFacility(String ids);
+
+    BaseFacilityVO getFacilityById(int id);
+
+
+    /**
+     * 分页设施列表
+     *
+     * @param facilityQueryRequest
+     * @return
+     */
+    Page<? extends BaseFacilityVO> getListFacilityManagementByPage(FacilityQueryRequest facilityQueryRequest);
+}

+ 26 - 2
app-admin/src/main/java/com/ruoyi/web/service/HouseInfoService.java

@@ -4,16 +4,40 @@ package com.ruoyi.web.service;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.web.domain.dto.house.HouseInfoAddRequest;
+import com.ruoyi.web.domain.dto.house.HouseInfoEditRequest;
 import com.ruoyi.web.domain.dto.house.HouseInfoQueryRequest;
 import com.ruoyi.web.domain.entity.HouseInfo;
 import com.ruoyi.web.domain.vo.HouseInfoVO;
 
-import java.util.List;
 
 /**
- *
+ * 房屋接口
  */
 public interface HouseInfoService extends IService<HouseInfo> {
+
+    Integer addHouseInfo(HouseInfoAddRequest houseInfoAddRequest);
+
+    boolean deleteHouseInfo(String ids);
+
+    void editHouseInfo(HouseInfoEditRequest houseInfoEditRequest);
+
+    /**
+     * 通过人员获取人员包装类
+     *
+     * @param houseInfo
+     * @return
+     */
+    HouseInfoVO getHouseInfoVO(HouseInfo houseInfo);
+
+    /**
+     * 根据id获取房屋包装类
+     *
+     * @param id
+     * @return
+     */
+    HouseInfoVO getHouseInfoById(int id);
+
     /**
      * 分页获取人员列表
      *

+ 1 - 1
app-admin/src/main/java/com/ruoyi/web/service/HouseholdInfoService.java

@@ -5,7 +5,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import com.ruoyi.web.domain.entity.HouseholdInfo;
 
 /**
- *
+ * 户籍接口
  */
 public interface HouseholdInfoService extends IService<HouseholdInfo> {
 

+ 22 - 0
app-admin/src/main/java/com/ruoyi/web/service/IndustryDataService.java

@@ -0,0 +1,22 @@
+package com.ruoyi.web.service;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.web.domain.dto.Industry.IndustryDataQueryRequest;
+import com.ruoyi.web.domain.entity.IndustryData;
+
+/**
+ *
+ */
+public interface IndustryDataService extends IService<IndustryData> {
+    Integer addIndustryData(IndustryData industryData);
+
+    boolean deleteIndustryData(String ids);
+
+    void editIndustryData(IndustryData industryData);
+
+    IndustryData getIndustryDataById(int id);
+
+    Page<IndustryData> getListIndustryDataByPage(IndustryDataQueryRequest industryDataQueryRequest);
+
+}

+ 24 - 0
app-admin/src/main/java/com/ruoyi/web/service/LocalPolicyService.java

@@ -0,0 +1,24 @@
+package com.ruoyi.web.service;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.web.domain.dto.localPolicy.LocalPolicyAddRequest;
+import com.ruoyi.web.domain.dto.localPolicy.LocalPolicyEditRequest;
+import com.ruoyi.web.domain.dto.localPolicy.LocalPolicyQueryRequest;
+import com.ruoyi.web.domain.entity.LocalPolicy;
+
+/**
+ * 当地政策服务接口
+ */
+public interface LocalPolicyService extends IService<LocalPolicy> {
+    Integer addLocalPolicy(LocalPolicyAddRequest localPolicyAddRequest);
+
+    boolean deleteLocalPolicy(String ids);
+
+    void editLocalPolicy(LocalPolicyEditRequest localPolicyEditRequest);
+
+    LocalPolicy getLocalPolicyById(int id);
+
+    Page<LocalPolicy> getListLocalPolicyByPage(LocalPolicyQueryRequest localPolicyQueryRequest);
+
+}

+ 1 - 1
app-admin/src/main/java/com/ruoyi/web/service/PersonHouseRelationService.java

@@ -5,7 +5,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import com.ruoyi.web.domain.entity.PersonHouseRelation;
 
 /**
- *
+ * 人员-房屋接口
  */
 public interface PersonHouseRelationService extends IService<PersonHouseRelation> {
 

+ 25 - 1
app-admin/src/main/java/com/ruoyi/web/service/PersonInfoService.java

@@ -3,14 +3,38 @@ package com.ruoyi.web.service;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.web.domain.dto.person.PersonInfoAddRequest;
+import com.ruoyi.web.domain.dto.person.PersonInfoEditRequest;
 import com.ruoyi.web.domain.dto.person.PersonInfoQueryRequest;
 import com.ruoyi.web.domain.entity.PersonInfo;
 import com.ruoyi.web.domain.vo.PersonInfoVO;
 
 /**
- *
+ * 人员信息接口
  */
 public interface PersonInfoService extends IService<PersonInfo> {
+    Integer addPersonInfo(PersonInfoAddRequest personInfoAddRequest);
+
+    boolean deletePersonInfo(String ids);
+
+    void editPersonInfo(PersonInfoEditRequest personInfoEditRequest);
+
+    /**
+     * 根据id获取人员包装类
+     *
+     * @param id
+     * @return
+     */
+    PersonInfoVO getPersonInfoById(int id);
+
+    /**
+     * 通过人员获取人员包装类
+     *
+     * @param personInfo
+     * @return
+     */
+    PersonInfoVO getPersonInfoVO(PersonInfo personInfo);
+
     /**
      * 分页获取人员列表
      * @param personInfoQueryRequest

+ 11 - 0
app-admin/src/main/java/com/ruoyi/web/service/ProductionDataService.java

@@ -0,0 +1,11 @@
+package com.ruoyi.web.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.web.domain.entity.ProductionData;
+
+/**
+ *
+ */
+public interface ProductionDataService extends IService<ProductionData> {
+
+}

+ 20 - 4
app-admin/src/main/java/com/ruoyi/web/service/ProjectsService.java

@@ -4,16 +4,32 @@ package com.ruoyi.web.service;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.web.domain.dto.projects.ProjectsAddRequest;
+import com.ruoyi.web.domain.dto.projects.ProjectsEditRequest;
 import com.ruoyi.web.domain.dto.projects.ProjectsQueryRequest;
 import com.ruoyi.web.domain.entity.Projects;
-import com.ruoyi.web.domain.vo.ProjectsVO;
-
-import java.util.List;
 
 /**
- *
+ * 项目接口
  */
 public interface ProjectsService extends IService<Projects> {
+
+    Integer addProjects(ProjectsAddRequest projectsAddRequest);
+
+    boolean deleteProjects(String ids);
+
+    void editProjects(ProjectsEditRequest projectsEditRequest);
+
+
+    /**
+     * 根据id获取项目
+     *
+     * @param id
+     * @return
+     */
+    Projects getProjectsById(int id);
+
+
     /**
      * 分页获取项目列表
      *

+ 19 - 2
app-admin/src/main/java/com/ruoyi/web/service/SubsidyProjectsService.java

@@ -4,14 +4,31 @@ package com.ruoyi.web.service;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
-import com.ruoyi.web.domain.dto.SubsidyProjects.SubsidyProjectsQueryRequest;
+import com.ruoyi.web.domain.dto.subsidyProjects.SubsidyProjectsAddRequest;
+import com.ruoyi.web.domain.dto.subsidyProjects.SubsidyProjectsEditRequest;
+import com.ruoyi.web.domain.dto.subsidyProjects.SubsidyProjectsQueryRequest;
 import com.ruoyi.web.domain.entity.SubsidyProjects;
 
 
 /**
- *
+ * 惠农补贴接口
  */
 public interface SubsidyProjectsService extends IService<SubsidyProjects> {
+
+    Integer addSubsidyProjects(SubsidyProjectsAddRequest subsidyProjectsAddRequest);
+
+    boolean deleteSubsidyProjects(String ids);
+
+    void editSubsidyProjects(SubsidyProjectsEditRequest subsidyProjectsEditRequest);
+
+    /**
+     * 根据id查询
+     *
+     * @param id
+     * @return
+     */
+    SubsidyProjects getSubsidyProjectsById(int id);
+
     /**
      * 分页获取补贴-项目列表
      *

+ 49 - 0
app-admin/src/main/java/com/ruoyi/web/service/VillageServiceService.java

@@ -0,0 +1,49 @@
+package com.ruoyi.web.service;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.web.domain.dto.VillageService.VillageServiceAddRequest;
+import com.ruoyi.web.domain.dto.VillageService.VillageServiceEditRequest;
+import com.ruoyi.web.domain.dto.VillageService.VillageServiceQueryRequest;
+import com.ruoyi.web.domain.entity.VillageService;
+import com.ruoyi.web.domain.vo.VillageService.VillageServiceVO;
+
+
+/**
+ *
+ */
+public interface VillageServiceService extends IService<VillageService> {
+
+    Integer addVillageService(VillageServiceAddRequest villageServiceAddRequest);
+
+    boolean deleteVillageService(String ids);
+
+    void editVillageService(VillageServiceEditRequest villageServiceEditRequest);
+
+    /**
+     * 根据id查询
+     *
+     * @param id
+     * @return
+     */
+    VillageServiceVO getVillageServiceById(int id);
+
+
+    /**
+     * 分页获取列表
+     *
+     * @param villageServiceQueryRequest
+     * @return
+     */
+    Page<VillageServiceVO> getListVillageServiceByPage(VillageServiceQueryRequest villageServiceQueryRequest);
+
+
+    /**
+     * 获取查询条件
+     *
+     * @param villageServiceQueryRequest
+     * @return
+     */
+    QueryWrapper<VillageService> getQueryWrapper(VillageServiceQueryRequest villageServiceQueryRequest);
+}

+ 61 - 0
app-admin/src/main/java/com/ruoyi/web/service/VillageSpecialService.java

@@ -0,0 +1,61 @@
+package com.ruoyi.web.service;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.web.domain.dto.villageSpecial.VillageSpecialAddRequest;
+import com.ruoyi.web.domain.dto.villageSpecial.VillageSpecialEditRequest;
+import com.ruoyi.web.domain.dto.villageSpecial.VillageSpecialQueryRequest;
+import com.ruoyi.web.domain.entity.ProductionData;
+import com.ruoyi.web.domain.entity.VillageSpecial;
+import com.ruoyi.web.domain.vo.VillageSpecial.BaseVillageSpecialVO;
+
+import java.util.List;
+
+/**
+ *
+ */
+public interface VillageSpecialService extends IService<VillageSpecial> {
+
+    Integer addVillageSpecial(VillageSpecialAddRequest villageSpecialAddRequest);
+
+    boolean deleteVillageSpecial(String ids);
+
+    void editVillageSpecial(VillageSpecialEditRequest villageSpecialEditRequest);
+
+    /**
+     * 根据id查询
+     *
+     * @param id
+     * @return
+     */
+    BaseVillageSpecialVO getVillageSpecialById(int id);
+
+
+    BaseVillageSpecialVO getBaseVillageSpecialVO(VillageSpecial villageSpecial);
+
+    /**
+     * 分页获取列表
+     *
+     * @param villageSpecialQueryRequest
+     * @return
+     */
+    Page<BaseVillageSpecialVO> getListVillageSpecialByPage(VillageSpecialQueryRequest villageSpecialQueryRequest);
+
+
+    /**
+     * 获取查询条件
+     *
+     * @param villageSpecialQueryRequest
+     * @return
+     */
+    QueryWrapper<VillageSpecial> getQueryWrapper(VillageSpecialQueryRequest villageSpecialQueryRequest);
+
+
+    /**
+     * 返回产品列表
+     * @param id 服务与支持 id
+     * @return
+     */
+    List<ProductionData> getProductDataList(int id);
+}

+ 47 - 0
app-admin/src/main/java/com/ruoyi/web/service/VillageTraditionService.java

@@ -0,0 +1,47 @@
+package com.ruoyi.web.service;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.web.domain.dto.villageTradition.VillageTraditionAddRequest;
+import com.ruoyi.web.domain.dto.villageTradition.VillageTraditionEditRequest;
+import com.ruoyi.web.domain.dto.villageTradition.VillageTraditionQueryRequest;
+import com.ruoyi.web.domain.entity.VillageTradition;
+
+
+/**
+ *
+ */
+public interface VillageTraditionService extends IService<VillageTradition> {
+
+    Integer addVillageTradition(VillageTraditionAddRequest villageTraditionAddRequest);
+
+    boolean deleteVillageTradition(String ids);
+
+    void editVillageTradition(VillageTraditionEditRequest villageTraditionEditRequest);
+
+    /**
+     * 根据id查询
+     *
+     * @param id
+     * @return
+     */
+    VillageTradition getVillageTraditionById(int id);
+
+    /**
+     * 分页获取列表
+     *
+     * @param villageTraditionQueryRequest
+     * @return
+     */
+    Page<VillageTradition> getListVillageTraditionByPage(VillageTraditionQueryRequest villageTraditionQueryRequest);
+
+
+    /**
+     * 获取查询条件
+     *
+     * @param villageTraditionQueryRequest
+     * @return
+     */
+    QueryWrapper<VillageTradition> getQueryWrapper(VillageTraditionQueryRequest villageTraditionQueryRequest);
+}

+ 165 - 0
app-admin/src/main/java/com/ruoyi/web/service/impl/EmploymentDataServiceImpl.java

@@ -0,0 +1,165 @@
+package com.ruoyi.web.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.common.exception.ServiceException;
+import com.ruoyi.web.domain.dto.employment.EmploymentDataQueryRequest;
+import com.ruoyi.web.domain.entity.EmploymentData;
+import com.ruoyi.web.mapper.EmploymentDataMapper;
+import com.ruoyi.web.service.EmploymentDataService;
+import org.springframework.stereotype.Service;
+
+import java.util.Arrays;
+import java.util.Date;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ *
+ */
+@Service
+public class EmploymentDataServiceImpl extends ServiceImpl<EmploymentDataMapper, EmploymentData>
+        implements EmploymentDataService {
+
+    @Override
+    public Integer addEmploymentData(EmploymentData employmentData) {
+        if (employmentData == null) {
+            throw new ServiceException("请求参数为空");
+        }
+        try {
+            EmploymentData newEmploymentData = new EmploymentData();
+            BeanUtil.copyProperties(employmentData, newEmploymentData);
+            // 数据校验
+            validEmploymentData(newEmploymentData, BusinessType.INSERT);
+            // 保存到数据库
+            this.save(newEmploymentData);
+            return newEmploymentData.getId();
+        } catch (Exception e) {
+            log.error("添加就业数据失败", e);
+            throw new ServiceException("添加就业数据失败: " + e.getMessage());
+        }
+    }
+
+    @Override
+    public boolean deleteEmploymentData(String ids) {
+        if (StrUtil.isBlank(ids)) {
+            throw new ServiceException("id不能为空或id异常");
+        }
+
+        // 2. 分割ID字符串为List<Integer>
+        List<Long> idList = Arrays.stream(ids.split(","))
+                .map(String::trim)
+                .filter(StrUtil::isNotBlank)
+                .map(Long::parseLong)
+                .collect(Collectors.toList());
+
+        if (idList.isEmpty()) {
+            throw new ServiceException("ID格式异常");
+        }
+
+        // 3. 构建删除条件
+        QueryWrapper<EmploymentData> queryWrapper = new QueryWrapper<>();
+        queryWrapper.in("id", idList);
+
+        // 4. 执行删除(返回是否删除成功)
+        return remove(queryWrapper);
+    }
+
+    @Override
+    public void editEmploymentData(EmploymentData employmentData) {
+        // 判断是否存在
+        Integer id = employmentData.getId();
+        EmploymentData oldEmploymentData = this.getById(id);
+        if (oldEmploymentData == null) {
+            throw new ServiceException("没有找到就业数据");
+        }
+        EmploymentData newEmploymentData = new EmploymentData();
+        BeanUtil.copyProperties(oldEmploymentData, newEmploymentData);
+        newEmploymentData.setUpdateTime(new Date());
+        // 数据校验
+        validEmploymentData(newEmploymentData, BusinessType.UPDATE);
+
+        // 操作数据库
+        boolean result = this.updateById(newEmploymentData);
+        if (!result) {
+            throw new ServiceException("修改就业数据操作失败");
+        }
+    }
+
+    /**
+     * 校验就业数据
+     *
+     * @param employmentData
+     */
+    public void validEmploymentData(EmploymentData employmentData, BusinessType type) {
+        if (ObjectUtil.isEmpty(employmentData)) {
+            throw new ServiceException("数据为空");
+        }
+        Integer id = employmentData.getId();
+        String months = employmentData.getMonths();
+        Integer positionNumber = employmentData.getPositionNumber();
+        Integer hireNumber = employmentData.getHireNumber();
+        String monthPayLow = employmentData.getMonthPayLow();
+        String monthPayHigh = employmentData.getMonthPayHigh();
+        String shoragePosition = employmentData.getShoragePosition();
+        Integer skillTraining = employmentData.getSkillTraining();
+
+        // 修改数据时,id 不能为空
+        if (type != BusinessType.INSERT && ObjectUtil.isEmpty(id)) {
+            throw new ServiceException("id不能为空");
+        }
+        if (StrUtil.isBlank(months)) {
+            throw new ServiceException("月份不能为空");
+        }
+        if (ObjectUtil.isEmpty(positionNumber)) {
+            throw new ServiceException("岗位数量不能为空");
+        }
+        if (ObjectUtil.isEmpty(hireNumber)) {
+            throw new ServiceException("录用人数不能为空");
+        }
+        if (StrUtil.isBlank(monthPayLow)) {
+            throw new ServiceException("月薪下限不能为空");
+        }
+        if (StrUtil.isBlank(monthPayHigh)) {
+            throw new ServiceException("月薪上限不能为空");
+        }
+        if (ObjectUtil.isEmpty(skillTraining)) {
+            throw new ServiceException("培训情况不能为空");
+        }
+    }
+
+
+    @Override
+    public EmploymentData getEmploymentDataById(int id) {
+        if (ObjectUtil.isEmpty(id)) {
+            throw new ServiceException("id不能为空");
+        }
+        return this.getById(id);
+    }
+
+    @Override
+    public Page<EmploymentData> getListEmploymentDataByPage(EmploymentDataQueryRequest employmentDataQueryRequest) {
+        QueryWrapper<EmploymentData> queryWrapper = new QueryWrapper<>();
+        String months = employmentDataQueryRequest.getMonths();
+        long pageNum = employmentDataQueryRequest.getPageNum();
+        long pageSize = employmentDataQueryRequest.getPageSize();
+        String sortField = employmentDataQueryRequest.getSortField();
+        String sortOrder = employmentDataQueryRequest.getSortOrder();
+
+        queryWrapper.eq(StrUtil.isNotBlank(months), "months", months)
+                .orderBy(StrUtil.isNotEmpty(sortField), sortOrder.equals("ascend"), sortField);
+
+        // 分页查询
+        return this.page(new Page<>(pageNum, pageSize),
+                queryWrapper);
+    }
+}
+
+
+
+

+ 171 - 0
app-admin/src/main/java/com/ruoyi/web/service/impl/FacilityManagementServiceImpl.java

@@ -0,0 +1,171 @@
+package com.ruoyi.web.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.common.exception.ServiceException;
+import com.ruoyi.web.domain.dto.facility.FacilityAddRequest;
+import com.ruoyi.web.domain.dto.facility.FacilityEditRequest;
+import com.ruoyi.web.domain.dto.facility.FacilityQueryRequest;
+import com.ruoyi.web.domain.entity.FacilityManagement;
+import com.ruoyi.web.domain.vo.FacilityManagement.BaseFacilityVO;
+import com.ruoyi.web.domain.vo.FacilityManagement.FacilityVOFactory;
+import com.ruoyi.web.mapper.FacilityManagementMapper;
+import com.ruoyi.web.service.FacilityManagementService;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+
+import java.util.Arrays;
+import java.util.Date;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * 设施服务
+ */
+@Service
+public class FacilityManagementServiceImpl extends ServiceImpl<FacilityManagementMapper, FacilityManagement>
+        implements FacilityManagementService {
+
+    /**
+     * 添加
+     *
+     * @param facilityAddRequest
+     * @return
+     */
+    @Override
+    public Integer addFacility(FacilityAddRequest facilityAddRequest) {
+        if (facilityAddRequest == null) {
+            throw new ServiceException("请求参数为空");
+        }
+        FacilityManagement facilityManagement = new FacilityManagement();
+        BeanUtil.copyProperties(facilityAddRequest, facilityManagement);
+        // 插入数据库
+        this.save(facilityManagement);
+        return facilityManagement.getId();
+    }
+
+    /**
+     * 编辑
+     *
+     * @param facilityEditRequest
+     */
+    @Override
+    public void editFacility(FacilityEditRequest facilityEditRequest) {
+        // 在此处将实体类和 DTO 进行转换
+        FacilityManagement facilityManagement = new FacilityManagement();
+        BeanUtils.copyProperties(facilityEditRequest, facilityManagement);
+        // 设置编辑时间
+        facilityManagement.setUpdateTime(new Date());
+        // 数据校验
+        //todo
+        //validFacility(facilityManagement);
+        // 判断是否存在
+        Integer id = facilityEditRequest.getId();
+        FacilityManagement oldFacility = this.getById(id);
+        if (oldFacility == null) {
+            throw new ServiceException("没有找到设施");
+        }
+        // 操作数据库
+        boolean result = this.updateById(facilityManagement);
+        if (!result) {
+            throw new ServiceException("操作失败");
+        }
+    }
+
+    /**
+     * 删除
+     *
+     * @param ids
+     * @return
+     */
+    @Override
+    public boolean deleteFacility(String ids) {
+        if (StrUtil.isBlank(ids)) {
+            throw new ServiceException("id不能为空或id异常");
+        }
+
+        // 2. 分割ID字符串为List<Integer>
+        List<Long> idList = Arrays.stream(ids.split(","))
+                .map(String::trim)
+                .filter(StrUtil::isNotBlank)
+                .map(Long::parseLong)
+                .collect(Collectors.toList());
+
+        if (idList.isEmpty()) {
+            throw new ServiceException("ID格式异常");
+        }
+
+        // 3. 构建删除条件
+        QueryWrapper<FacilityManagement> queryWrapper = new QueryWrapper<>();
+        queryWrapper.in("id", idList);
+
+        // 4. 执行删除(返回是否删除成功)
+        return remove(queryWrapper);
+    }
+
+    /**
+     * 根据id查询
+     *
+     * @param id
+     * @return
+     */
+    @Override
+    public BaseFacilityVO getFacilityById(int id) {
+        if (id <= 0 || ObjectUtil.isEmpty(id)) {
+            throw new ServiceException("id不能为空或id异常");
+        }
+        FacilityManagement facilityManagement = this.getById(id);
+        return FacilityVOFactory.convert(facilityManagement);
+    }
+
+    /**
+     * 分页查询
+     *
+     * @param facilityQueryRequest
+     * @return
+     */
+    @Override
+    public Page<? extends BaseFacilityVO> getListFacilityManagementByPage(FacilityQueryRequest facilityQueryRequest) {
+
+        QueryWrapper<FacilityManagement> queryWrapper = new QueryWrapper<>();
+        String facilityType = facilityQueryRequest.getFacilityType();
+        String facilityName = facilityQueryRequest.getFacilityName();
+        long current = facilityQueryRequest.getPageNum();
+        long pageSize = facilityQueryRequest.getPageSize();
+        String sortField = facilityQueryRequest.getSortField();
+        String sortOrder = facilityQueryRequest.getSortOrder();
+
+        //
+        queryWrapper.eq(StrUtil.isNotBlank(facilityType), "facility_type", facilityType);
+        queryWrapper.like(StrUtil.isNotBlank(facilityName), "facility_name", facilityName);
+        // 排序
+        queryWrapper.orderBy(StrUtil.isNotEmpty(sortField), sortOrder.equals("ascend"), sortField);
+
+        // 1. 分页查询
+        Page<FacilityManagement> facilityManagementPage = this.page(new Page<>(current, pageSize),
+                queryWrapper);
+
+        // 转换为VO
+        List<? extends BaseFacilityVO> voList = facilityManagementPage.getRecords().stream()
+                .map(FacilityVOFactory::convert)
+                .collect(Collectors.toList());
+
+        // 创建新的Page对象并复制分页信息
+        Page<BaseFacilityVO> resultPage = new Page<>();
+        resultPage.setCurrent(facilityManagementPage.getCurrent());
+        resultPage.setSize(facilityManagementPage.getSize());
+        resultPage.setTotal(facilityManagementPage.getTotal());
+        resultPage.setPages(facilityManagementPage.getPages());
+        resultPage.setRecords((List<BaseFacilityVO>) voList);
+
+        return resultPage;
+    }
+}
+
+
+
+

+ 175 - 51
app-admin/src/main/java/com/ruoyi/web/service/impl/HouseInfoServiceImpl.java

@@ -1,14 +1,18 @@
 package com.ruoyi.web.service.impl;
 
+import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import cn.hutool.json.JSONUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.ruoyi.common.utils.SecureSensitiveUtils;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.common.exception.ServiceException;
 import com.ruoyi.common.utils.bean.BeanUtils;
+import com.ruoyi.web.domain.dto.house.HouseInfoAddRequest;
+import com.ruoyi.web.domain.dto.house.HouseInfoEditRequest;
 import com.ruoyi.web.domain.dto.house.HouseInfoQueryRequest;
 import com.ruoyi.web.domain.entity.HouseInfo;
 import com.ruoyi.web.domain.entity.PersonHouseRelation;
@@ -22,22 +26,181 @@ import com.ruoyi.web.service.PersonInfoService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.math.BigDecimal;
+import java.util.Arrays;
+import java.util.Date;
 import java.util.List;
 import java.util.stream.Collectors;
 
 /**
- *
+ * 房屋服务
  */
 @Service
 public class HouseInfoServiceImpl extends ServiceImpl<HouseInfoMapper, HouseInfo>
         implements HouseInfoService {
 
     @Autowired
-    private PersonInfoService personInfoService;
+    private HouseInfoService houseInfoService;
 
     @Autowired
     private PersonHouseRelationService personHouseRelationService;
 
+    @Autowired
+    private PersonInfoService personInfoService;
+
+    @Override
+    public Integer addHouseInfo(HouseInfoAddRequest houseInfoAddRequest) {
+        if (houseInfoAddRequest == null) {
+            throw new ServiceException("请求参数为空");
+        }
+        try {
+            HouseInfo houseInfo = new HouseInfo();
+            BeanUtil.copyProperties(houseInfoAddRequest, houseInfo);
+            // 将标签 List 转为 String
+            houseInfo.setHouseTags(JSONUtil.toJsonStr(houseInfoAddRequest.getHouseTags()));
+            // 数据校验 todo
+            validHouseInfo(houseInfo, BusinessType.INSERT);
+
+            // 保存到数据库
+            this.save(houseInfo);
+            return houseInfo.getId();
+        } catch (Exception e) {
+            log.error("添加房屋失败", e);
+            throw new ServiceException("添加房屋失败: " + e.getMessage());
+        }
+    }
+
+    @Override
+    public boolean deleteHouseInfo(String ids) {
+        if (StrUtil.isBlank(ids)) {
+            throw new ServiceException("id不能为空或id异常");
+        }
+
+        // 2. 分割ID字符串为List<Integer>
+        List<Long> idList = Arrays.stream(ids.split(","))
+                .map(String::trim)
+                .filter(StrUtil::isNotBlank)
+                .map(Long::parseLong)
+                .collect(Collectors.toList());
+
+        if (idList.isEmpty()) {
+            throw new ServiceException("ID格式异常");
+        }
+
+        // 3. 构建删除条件
+        QueryWrapper<HouseInfo> queryWrapper = new QueryWrapper<>();
+        queryWrapper.in("id", idList);
+
+        // 4. 执行删除(返回是否删除成功)
+        return remove(queryWrapper);
+    }
+
+    @Override
+    public void editHouseInfo(HouseInfoEditRequest houseInfoEditRequest) {
+        // 判断是否存在
+        Integer id = houseInfoEditRequest.getId();
+        HouseInfo oldHouseInfo = this.getById(id);
+        if (oldHouseInfo == null) {
+            throw new ServiceException("没有找到房屋");
+        }
+        HouseInfo houseInfo = new HouseInfo();
+        BeanUtil.copyProperties(houseInfoEditRequest, houseInfo);
+        // 将人口标签 List 转为 String
+        houseInfo.setHouseTags(JSONUtil.toJsonStr(houseInfoEditRequest.getHouseTags()));
+        houseInfo.setUpdateTime(new Date());
+        // 数据校验
+        validHouseInfo(houseInfo, BusinessType.UPDATE);
+
+        // 操作数据库
+        boolean result = this.updateById(houseInfo);
+        if (!result) {
+            throw new ServiceException("修改房屋操作失败");
+        }
+    }
+
+    /**
+     * 校验房屋
+     *
+     * @param houseInfo
+     */
+    public void validHouseInfo(HouseInfo houseInfo, BusinessType type) {
+        if (ObjectUtil.isEmpty(houseInfo)) {
+            throw new ServiceException("数据为空");
+        }
+        Integer id = houseInfo.getId();
+        String houseCode = houseInfo.getHouseCode();
+        String doorplateNumber = houseInfo.getDoorplateNumber();
+        String houseAddress = houseInfo.getHouseAddress();
+        Integer houseOwnerId = houseInfo.getHouseOwnerId();
+        Integer totalPoints = houseInfo.getTotalPoints();
+        Integer remainingPoints = houseInfo.getRemainingPoints();
+        Integer houseCategory = houseInfo.getHouseCategory();
+        BigDecimal buildingArea = houseInfo.getBuildingArea();
+        String grid = houseInfo.getGrid();
+        String photoUrl = houseInfo.getPhotoUrl();
+        String houseTags = houseInfo.getHouseTags();
+        Date createTime = houseInfo.getCreateTime();
+        Date updateTime = houseInfo.getUpdateTime();
+        String delFlag = houseInfo.getDelFlag();
+
+
+        // 修改数据时,id 不能为空 todo
+        if (type != BusinessType.INSERT && ObjectUtil.isEmpty(id)) {
+            throw new ServiceException("id不能为空");
+        }
+        if (StrUtil.isBlank(houseCode)) {
+            throw new ServiceException("房屋编号不能为空");
+        }
+    }
+
+    /**
+     * 获取房屋包装类
+     *
+     * @param houseInfo
+     * @return
+     */
+    @Override
+    public HouseInfoVO getHouseInfoVO(HouseInfo houseInfo) {
+        if (ObjectUtil.isEmpty(houseInfo)) {
+            throw new ServiceException("请求参数不存在");
+        }
+        HouseInfoVO houseInfoVO = new HouseInfoVO();
+        BeanUtils.copyProperties(houseInfo, houseInfoVO);
+
+        // 通过关联表 获取 成员数量
+        Integer houseInfoId = houseInfo.getId();
+        Integer memberCount = personHouseRelationService.lambdaQuery()
+                .eq(PersonHouseRelation::getHouseId, houseInfoId)
+                .count()
+                .intValue();
+        houseInfoVO.setMemberCount(memberCount);
+
+        // 通过房主人员ID -> 房主姓名 身份证 联系方式(人员VO类)
+        Integer houseOwnerId = houseInfo.getHouseOwnerId();
+        if (houseOwnerId != null) {
+            PersonInfo houseOwnerInfo = personInfoService.getById(houseOwnerId);
+            PersonInfoVO houseOwnerInfoVO = personInfoService.getPersonInfoVO(houseOwnerInfo);
+            houseInfoVO.setHouseOwnerInfo(houseOwnerInfoVO);
+        }
+        return houseInfoVO;
+    }
+
+    /**
+     * 根据id获取人员包装类
+     *
+     * @param id
+     * @return
+     */
+    @Override
+    public HouseInfoVO getHouseInfoById(int id) {
+        if (id <= 0 || ObjectUtil.isEmpty(id)) {
+            throw new ServiceException("id不能为空或id异常");
+        }
+        HouseInfo houseInfo = this.getById(id);
+        return getHouseInfoVO(houseInfo);
+    }
+
+
     /**
      * 分页获取房屋列表
      *
@@ -46,7 +209,7 @@ public class HouseInfoServiceImpl extends ServiceImpl<HouseInfoMapper, HouseInfo
      */
     @Override
     public Page<HouseInfoVO> getListHouseInfoByPage(HouseInfoQueryRequest houseInfoQueryRequest) {
-        long current = houseInfoQueryRequest.getCurrent();
+        long current = houseInfoQueryRequest.getPageNum();
         long size = houseInfoQueryRequest.getPageSize();
         // 1. 分页查询房屋基础信息
         Page<HouseInfo> houseInfoPage = this.page(new Page<>(current, size),
@@ -58,41 +221,13 @@ public class HouseInfoServiceImpl extends ServiceImpl<HouseInfoMapper, HouseInfo
 
         // 3. 处理每条记录
         List<HouseInfoVO> viewList = houseInfoPage.getRecords().stream().map(houseInfo -> {
-            HouseInfoVO houseInfoVO = new HouseInfoVO();
-            BeanUtils.copyProperties(houseInfo, houseInfoVO);
-
-            // 通过关联表 获取 成员数量
-            Integer houseInfoId = houseInfo.getId();
-            Integer memberCount = personHouseRelationService.lambdaQuery()
-                    .eq(PersonHouseRelation::getHouseId, houseInfoId)
-                    .count()
-                    .intValue();
-            houseInfoVO.setMemberCount(memberCount);
-
-            // 通过房主id 查询房主信息 填充返回
-            Integer houseOwnerId = houseInfo.getHouseOwnerId();
-            PersonInfoVO houseOwnerInfoVO = new PersonInfoVO();
-            if (houseOwnerId != null) {
-                PersonInfo houseOwnerInfo = personInfoService.getById(houseOwnerId);
-                BeanUtils.copyProperties(houseOwnerInfo, houseOwnerInfoVO);
-                // 获取 房主 身份证 解密 脱敏
-                String idCard = houseOwnerInfoVO.getIdCard();
-                idCard = personInfoService.decryptIdCard(idCard);
-                houseOwnerInfoVO.setIdCard(SecureSensitiveUtils.maskIdCard(idCard));
-                // 手机号脱敏
-                String phone = houseOwnerInfoVO.getPhone();
-                houseOwnerInfoVO.setPhone(SecureSensitiveUtils.maskPhone(phone));
-                houseInfoVO.setHouseOwnerInfo(houseOwnerInfoVO);
-            }
-            return houseInfoVO;
+            return getHouseInfoVO(houseInfo);
         }).collect(Collectors.toList());
         resultPage.setRecords(viewList);
         return resultPage;
     }
 
 
-
-
     /**
      * 获取查询条件
      *
@@ -120,26 +255,15 @@ public class HouseInfoServiceImpl extends ServiceImpl<HouseInfoMapper, HouseInfo
         //门牌号、房主ID、房屋类别、所属网格、家庭标签
         queryWrapper.eq(ObjectUtil.isNotEmpty(id), "id", id);
         queryWrapper.eq(StrUtil.isNotBlank(doorplateNumber), "doorplate_number", doorplateNumber);
-        queryWrapper.eq(ObjectUtil.isNotEmpty(houseOwnerId), "house_owner_id", houseOwnerId);
+        //queryWrapper.eq(ObjectUtil.isNotEmpty(houseOwnerId), "house_owner_id", houseOwnerId);
         queryWrapper.eq(ObjectUtil.isNotEmpty(grid), "grid", grid);
         queryWrapper.eq(ObjectUtil.isNotEmpty(houseCategory), "house_category", houseCategory);
 
-        // 房主姓名查询条件
-        if (StrUtil.isNotBlank(houseOwnerName)){
-            // 先查询符合姓名条件的人员ID列表
-            List<Integer> ownerIds = personInfoService.list(
-                    new LambdaQueryWrapper<PersonInfo>()
-                            .like(PersonInfo::getRealname, houseOwnerName)
-                            .select(PersonInfo::getId)
-            ).stream().map(PersonInfo::getId).collect(Collectors.toList());
-
-            if (!ownerIds.isEmpty()) {
-                queryWrapper.in("house_owner_id", ownerIds);
-            } else {
-                // 如果没有匹配的姓名,确保查询不到结果
-                queryWrapper.apply("1 = 0"); // 无匹配结果
-                //queryWrapper.isNull("house_owner_id");
-            }
+        // 优先使用 房主id 查询  没有房主id 再根据 房主姓名查询
+        if (ObjectUtil.isNotEmpty(houseOwnerId)) {
+            queryWrapper.eq("house_owner_id", houseOwnerId);
+        } else if (StrUtil.isNotBlank(houseOwnerName)) {
+            queryWrapper.exists("EXISTS (SELECT 1 FROM person_info p WHERE p.id = house_owner_id AND p.realname LIKE {0})");
         }
 
         // 家庭标签 JSON 数组查询

+ 1 - 1
app-admin/src/main/java/com/ruoyi/web/service/impl/HouseholdInfoServiceImpl.java

@@ -8,7 +8,7 @@ import com.ruoyi.web.service.HouseholdInfoService;
 import org.springframework.stereotype.Service;
 
 /**
- *
+ * 户籍服务
  */
 @Service
 public class HouseholdInfoServiceImpl extends ServiceImpl<HouseholdInfoMapper, HouseholdInfo>

+ 160 - 0
app-admin/src/main/java/com/ruoyi/web/service/impl/IndustryDataServiceImpl.java

@@ -0,0 +1,160 @@
+package com.ruoyi.web.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.common.exception.ServiceException;
+import com.ruoyi.web.domain.dto.Industry.IndustryDataQueryRequest;
+import com.ruoyi.web.domain.entity.IndustryData;
+import com.ruoyi.web.mapper.IndustryDataMapper;
+import com.ruoyi.web.service.IndustryDataService;
+import org.springframework.stereotype.Service;
+
+import java.util.Arrays;
+import java.util.Date;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ *
+ */
+@Service
+public class IndustryDataServiceImpl extends ServiceImpl<IndustryDataMapper, IndustryData>
+        implements IndustryDataService {
+
+
+    @Override
+    public Integer addIndustryData(IndustryData industryData) {
+        if (industryData == null) {
+            throw new ServiceException("请求参数为空");
+        }
+        try {
+            IndustryData newIndustryData = new IndustryData();
+            BeanUtil.copyProperties(industryData, newIndustryData);
+            // 数据校验
+            validIndustryData(newIndustryData, BusinessType.INSERT);
+            // 保存到数据库
+            this.save(newIndustryData);
+            return newIndustryData.getId();
+        } catch (Exception e) {
+            log.error("添加产业失败", e);
+            throw new ServiceException("添加产业失败: " + e.getMessage());
+        }
+    }
+
+    @Override
+    public boolean deleteIndustryData(String ids) {
+        if (StrUtil.isBlank(ids)) {
+            throw new ServiceException("id不能为空或id异常");
+        }
+
+        // 2. 分割ID字符串为List<Integer>
+        List<Long> idList = Arrays.stream(ids.split(","))
+                .map(String::trim)
+                .filter(StrUtil::isNotBlank)
+                .map(Long::parseLong)
+                .collect(Collectors.toList());
+
+        if (idList.isEmpty()) {
+            throw new ServiceException("ID格式异常");
+        }
+
+        // 3. 构建删除条件
+        QueryWrapper<IndustryData> queryWrapper = new QueryWrapper<>();
+        queryWrapper.in("id", idList);
+
+        // 4. 执行删除(返回是否删除成功)
+        return remove(queryWrapper);
+    }
+
+    @Override
+    public void editIndustryData(IndustryData industryData) {
+        // 判断是否存在
+        Integer id = industryData.getId();
+        IndustryData oldIndustryData = this.getById(id);
+        if (oldIndustryData == null) {
+            throw new ServiceException("没有找到产业数据");
+        }
+        IndustryData newIndustryData = new IndustryData();
+        BeanUtil.copyProperties(oldIndustryData, newIndustryData);
+        newIndustryData.setUpdateTime(new Date());
+        // 数据校验
+        validIndustryData(newIndustryData, BusinessType.UPDATE);
+
+        // 操作数据库
+        boolean result = this.updateById(newIndustryData);
+        if (!result) {
+            throw new ServiceException("修改产业数据操作失败");
+        }
+    }
+
+    /**
+     * 校验产业数据
+     *
+     * @param industryData
+     */
+    public void validIndustryData(IndustryData industryData, BusinessType type) {
+        if (ObjectUtil.isEmpty(industryData)) {
+            throw new ServiceException("数据为空");
+        }
+
+        Integer id = industryData.getId();
+        String years = industryData.getYears();
+        Integer category = industryData.getCategory();
+        String scale = industryData.getScale();
+        String yield = industryData.getYield();
+        String value = industryData.getValue();
+
+        // 修改数据时,id 不能为空
+        if (type != BusinessType.INSERT && ObjectUtil.isEmpty(id)) {
+            throw new ServiceException("id不能为空");
+        }
+        if (StrUtil.isBlank(years)) {
+            throw new ServiceException("年份不能为空");
+        }
+        if (ObjectUtil.isEmpty(category)) {
+            throw new ServiceException("产业类别不能为空");
+        }
+        if (StrUtil.isBlank(value)) {
+            throw new ServiceException("产值不能为空");
+        }
+    }
+
+
+    @Override
+    public IndustryData getIndustryDataById(int id) {
+        if (ObjectUtil.isEmpty(id)) {
+            throw new ServiceException("id不能为空");
+        }
+        return this.getById(id);
+    }
+
+    @Override
+    public Page<IndustryData> getListIndustryDataByPage(IndustryDataQueryRequest industryDataQueryRequest) {
+        QueryWrapper<IndustryData> queryWrapper = new QueryWrapper<>();
+        Integer id = industryDataQueryRequest.getId();
+        String years = industryDataQueryRequest.getYears();
+        Integer category = industryDataQueryRequest.getCategory();
+        long pageNum = industryDataQueryRequest.getPageNum();
+        long pageSize = industryDataQueryRequest.getPageSize();
+        String sortField = industryDataQueryRequest.getSortField();
+        String sortOrder = industryDataQueryRequest.getSortOrder();
+
+        queryWrapper.eq(StrUtil.isNotBlank(years), "years", years)
+                .eq(ObjectUtil.isEmpty(id), "id", id)
+                .eq(ObjectUtil.isEmpty(category), "category", category)
+                .orderBy(StrUtil.isNotEmpty(sortField), sortOrder.equals("ascend"), sortField);
+
+        // 分页查询
+        return this.page(new Page<>(pageNum, pageSize),
+                queryWrapper);
+    }
+}
+
+
+
+

+ 0 - 0
app-admin/src/main/java/com/ruoyi/web/service/impl/LocalPolicyServiceImpl.java


이 변경점에서 너무 많은 파일들이 변경되어 몇몇 파일들은 표시되지 않았습니다.