JX.Li 1 rok temu
rodzic
commit
800e7d002c
44 zmienionych plików z 99567 dodań i 43 usunięć
  1. 73 38
      .idea/workspace.xml
  2. 90679 0
      logs/ruoyi-xxl-job-admin.log
  3. 3575 0
      logs/sys-console.log
  4. 1653 0
      logs/sys-error.log
  5. 1698 0
      logs/sys-info.log
  6. 4 0
      logs/sys-user.log
  7. 113 0
      ruoyi-admin/src/main/java/com/ruoyi/web/controller/gas/GCourtyardNetworkManagementController.java
  8. 113 0
      ruoyi-admin/src/main/java/com/ruoyi/web/controller/gas/GWarningPileController.java
  9. 68 0
      ruoyi-admin/src/main/java/com/ruoyi/web/controller/mobile/MUserController.java
  10. 3 3
      ruoyi-admin/target/classes/application-dev.yml
  11. 49 0
      ruoyi-gas/src/main/java/com/ruoyi/gas/domain/GCourtyardNetworkManagement.java
  12. 42 0
      ruoyi-gas/src/main/java/com/ruoyi/gas/domain/GNetworkManagementPhoto.java
  13. 4 0
      ruoyi-gas/src/main/java/com/ruoyi/gas/domain/GRegulatorBox.java
  14. 65 0
      ruoyi-gas/src/main/java/com/ruoyi/gas/domain/GWarningPile.java
  15. 81 0
      ruoyi-gas/src/main/java/com/ruoyi/gas/domain/bo/GCourtyardNetworkManagementBo.java
  16. 73 0
      ruoyi-gas/src/main/java/com/ruoyi/gas/domain/bo/GNetworkManagementPhotoBo.java
  17. 6 0
      ruoyi-gas/src/main/java/com/ruoyi/gas/domain/bo/GRegulatorBoxBo.java
  18. 108 0
      ruoyi-gas/src/main/java/com/ruoyi/gas/domain/bo/GWarningPileBo.java
  19. 63 0
      ruoyi-gas/src/main/java/com/ruoyi/gas/domain/vo/GCourtyardNetworkManagementVo.java
  20. 49 0
      ruoyi-gas/src/main/java/com/ruoyi/gas/domain/vo/GNetworkManagementPhotoVo.java
  21. 8 0
      ruoyi-gas/src/main/java/com/ruoyi/gas/domain/vo/GRegulatorBoxVo.java
  22. 84 0
      ruoyi-gas/src/main/java/com/ruoyi/gas/domain/vo/GWarningPileVo.java
  23. 24 0
      ruoyi-gas/src/main/java/com/ruoyi/gas/mapper/GCourtyardNetworkManagementMapper.java
  24. 1 1
      ruoyi-gas/src/main/java/com/ruoyi/gas/mapper/GEmergencyRepairMapper.java
  25. 18 0
      ruoyi-gas/src/main/java/com/ruoyi/gas/mapper/GNetworkManagementPhotoMapper.java
  26. 14 0
      ruoyi-gas/src/main/java/com/ruoyi/gas/mapper/GWarningPileMapper.java
  27. 56 0
      ruoyi-gas/src/main/java/com/ruoyi/gas/service/IGCourtyardNetworkManagementService.java
  28. 58 0
      ruoyi-gas/src/main/java/com/ruoyi/gas/service/IGNetworkManagementPhotoService.java
  29. 56 0
      ruoyi-gas/src/main/java/com/ruoyi/gas/service/IGWarningPileService.java
  30. 135 0
      ruoyi-gas/src/main/java/com/ruoyi/gas/service/impl/GCourtyardNetworkManagementServiceImpl.java
  31. 1 0
      ruoyi-gas/src/main/java/com/ruoyi/gas/service/impl/GEmergencyRepairServiceImpl.java
  32. 93 0
      ruoyi-gas/src/main/java/com/ruoyi/gas/service/impl/GNetworkManagementPhotoServiceImpl.java
  33. 1 0
      ruoyi-gas/src/main/java/com/ruoyi/gas/service/impl/GRegulatorBoxServiceImpl.java
  34. 94 0
      ruoyi-gas/src/main/java/com/ruoyi/gas/service/impl/GWarningPileServiceImpl.java
  35. 53 0
      ruoyi-gas/src/main/resources/mapper/GCourtyardNetworkManagementMapper.xml
  36. 27 0
      ruoyi-gas/src/main/resources/mapper/GNetworkManagementPhotoMapper.xml
  37. BIN
      ruoyi-gas/target/classes/com/ruoyi/gas/service/impl/GEmergencyRepairServiceImpl.class
  38. 1 1
      ruoyi-gas/target/classes/mapper/GAreaPhotoMapper.xml
  39. 90 0
      ruoyi-mobile/src/main/java/com/ruoyi/mobile/domain/bo/MUserBo.java
  40. 72 0
      ruoyi-mobile/src/main/java/com/ruoyi/mobile/domain/vo/MUserVo.java
  41. 14 0
      ruoyi-mobile/src/main/java/com/ruoyi/mobile/mapper/MUserMapper.java
  42. 33 0
      ruoyi-mobile/src/main/java/com/ruoyi/mobile/service/IMUserService.java
  43. 94 0
      ruoyi-mobile/src/main/java/com/ruoyi/mobile/service/impl/MUserServiceImpl.java
  44. 21 0
      ruoyi-mobile/src/main/resources/mapper/mobile/MUserMapper.xml

+ 73 - 38
.idea/workspace.xml

@@ -5,19 +5,50 @@
   </component>
   <component name="ChangeListManager">
     <list default="true" id="b5706414-aab4-4b84-9189-e0bf939b95e1" name="Changes" comment="提交代码">
+      <change afterPath="$PROJECT_DIR$/ruoyi-admin/src/main/java/com/ruoyi/web/controller/gas/GCourtyardNetworkManagementController.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/ruoyi-admin/src/main/java/com/ruoyi/web/controller/gas/GWarningPileController.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/ruoyi-admin/src/main/java/com/ruoyi/web/controller/mobile/MUserController.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/ruoyi-gas/src/main/java/com/ruoyi/gas/domain/GCourtyardNetworkManagement.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/ruoyi-gas/src/main/java/com/ruoyi/gas/domain/GNetworkManagementPhoto.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/ruoyi-gas/src/main/java/com/ruoyi/gas/domain/GWarningPile.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/ruoyi-gas/src/main/java/com/ruoyi/gas/domain/bo/GCourtyardNetworkManagementBo.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/ruoyi-gas/src/main/java/com/ruoyi/gas/domain/bo/GNetworkManagementPhotoBo.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/ruoyi-gas/src/main/java/com/ruoyi/gas/domain/bo/GWarningPileBo.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/ruoyi-gas/src/main/java/com/ruoyi/gas/domain/vo/GCourtyardNetworkManagementVo.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/ruoyi-gas/src/main/java/com/ruoyi/gas/domain/vo/GNetworkManagementPhotoVo.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/ruoyi-gas/src/main/java/com/ruoyi/gas/domain/vo/GWarningPileVo.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/ruoyi-gas/src/main/java/com/ruoyi/gas/mapper/GCourtyardNetworkManagementMapper.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/ruoyi-gas/src/main/java/com/ruoyi/gas/mapper/GNetworkManagementPhotoMapper.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/ruoyi-gas/src/main/java/com/ruoyi/gas/mapper/GWarningPileMapper.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/ruoyi-gas/src/main/java/com/ruoyi/gas/service/IGCourtyardNetworkManagementService.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/ruoyi-gas/src/main/java/com/ruoyi/gas/service/IGNetworkManagementPhotoService.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/ruoyi-gas/src/main/java/com/ruoyi/gas/service/IGWarningPileService.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/ruoyi-gas/src/main/java/com/ruoyi/gas/service/impl/GCourtyardNetworkManagementServiceImpl.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/ruoyi-gas/src/main/java/com/ruoyi/gas/service/impl/GNetworkManagementPhotoServiceImpl.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/ruoyi-gas/src/main/java/com/ruoyi/gas/service/impl/GWarningPileServiceImpl.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/ruoyi-gas/src/main/resources/mapper/GCourtyardNetworkManagementMapper.xml" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/ruoyi-gas/src/main/resources/mapper/GNetworkManagementPhotoMapper.xml" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/ruoyi-mobile/src/main/java/com/ruoyi/mobile/domain/bo/MUserBo.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/ruoyi-mobile/src/main/java/com/ruoyi/mobile/domain/vo/MUserVo.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/ruoyi-mobile/src/main/java/com/ruoyi/mobile/mapper/MUserMapper.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/ruoyi-mobile/src/main/java/com/ruoyi/mobile/service/IMUserService.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/ruoyi-mobile/src/main/java/com/ruoyi/mobile/service/impl/MUserServiceImpl.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/ruoyi-mobile/src/main/resources/mapper/mobile/MUserMapper.xml" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/logs/ruoyi-xxl-job-admin.log" beforeDir="false" afterPath="$PROJECT_DIR$/logs/ruoyi-xxl-job-admin.log" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/logs/sys-console.log" beforeDir="false" afterPath="$PROJECT_DIR$/logs/sys-console.log" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/logs/sys-error.log" beforeDir="false" afterPath="$PROJECT_DIR$/logs/sys-error.log" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/logs/sys-info.log" beforeDir="false" afterPath="$PROJECT_DIR$/logs/sys-info.log" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/logs/sys-user.log" beforeDir="false" afterPath="$PROJECT_DIR$/logs/sys-user.log" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/ruoyi-admin/src/main/resources/application-dev.yml" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-admin/src/main/resources/application-dev.yml" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/ruoyi-gas/src/main/java/com/ruoyi/gas/service/impl/GAreaServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-gas/src/main/java/com/ruoyi/gas/service/impl/GAreaServiceImpl.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/ruoyi-admin/target/classes/application-dev.yml" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-admin/target/classes/application-dev.yml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/ruoyi-gas/src/main/java/com/ruoyi/gas/domain/GRegulatorBox.java" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-gas/src/main/java/com/ruoyi/gas/domain/GRegulatorBox.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/ruoyi-gas/src/main/java/com/ruoyi/gas/domain/bo/GRegulatorBoxBo.java" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-gas/src/main/java/com/ruoyi/gas/domain/bo/GRegulatorBoxBo.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/ruoyi-gas/src/main/java/com/ruoyi/gas/domain/vo/GRegulatorBoxVo.java" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-gas/src/main/java/com/ruoyi/gas/domain/vo/GRegulatorBoxVo.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/ruoyi-gas/src/main/java/com/ruoyi/gas/mapper/GEmergencyRepairMapper.java" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-gas/src/main/java/com/ruoyi/gas/mapper/GEmergencyRepairMapper.java" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/ruoyi-gas/src/main/java/com/ruoyi/gas/service/impl/GEmergencyRepairServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-gas/src/main/java/com/ruoyi/gas/service/impl/GEmergencyRepairServiceImpl.java" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/ruoyi-gas/src/main/java/com/ruoyi/gas/service/impl/GRegulatorBoxServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-gas/src/main/java/com/ruoyi/gas/service/impl/GRegulatorBoxServiceImpl.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/ruoyi-gas/src/main/resources/mapper/GAreaPhotoMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-gas/src/main/resources/mapper/GAreaPhotoMapper.xml" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/ruoyi-gas/target/classes/com/ruoyi/gas/service/impl/GAreaServiceImpl.class" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-gas/target/classes/com/ruoyi/gas/service/impl/GAreaServiceImpl.class" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/ruoyi-gas/target/classes/com/ruoyi/gas/service/impl/GEmergencyRepairServiceImpl.class" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-gas/target/classes/com/ruoyi/gas/service/impl/GEmergencyRepairServiceImpl.class" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/ruoyi-gas/target/classes/mapper/GAreaPhotoMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/ruoyi-gas/target/classes/mapper/GAreaPhotoMapper.xml" afterDir="false" />
     </list>
     <option name="SHOW_DIALOG" value="false" />
     <option name="HIGHLIGHT_CONFLICTS" value="true" />
@@ -58,26 +89,27 @@
     <option name="hideEmptyMiddlePackages" value="true" />
     <option name="showLibraryContents" value="true" />
   </component>
-  <component name="PropertiesComponent">{
-  &quot;keyToString&quot;: {
-    &quot;RequestMappingsPanelOrder0&quot;: &quot;0&quot;,
-    &quot;RequestMappingsPanelOrder1&quot;: &quot;1&quot;,
-    &quot;RequestMappingsPanelWidth0&quot;: &quot;75&quot;,
-    &quot;RequestMappingsPanelWidth1&quot;: &quot;75&quot;,
-    &quot;RunOnceActivity.OpenProjectViewOnStart&quot;: &quot;true&quot;,
-    &quot;RunOnceActivity.ShowReadmeOnStart&quot;: &quot;true&quot;,
-    &quot;WebServerToolWindowFactoryState&quot;: &quot;false&quot;,
-    &quot;git-widget-placeholder&quot;: &quot;master&quot;,
-    &quot;last_opened_file_path&quot;: &quot;D:/project/java/zhendashizheng/ruoyi-gas/src/main/resources/mapper&quot;,
-    &quot;node.js.detected.package.eslint&quot;: &quot;true&quot;,
-    &quot;node.js.detected.package.tslint&quot;: &quot;true&quot;,
-    &quot;node.js.selected.package.eslint&quot;: &quot;(autodetect)&quot;,
-    &quot;node.js.selected.package.tslint&quot;: &quot;(autodetect)&quot;,
-    &quot;nodejs_package_manager_path&quot;: &quot;npm&quot;,
-    &quot;settings.editor.selected.configurable&quot;: &quot;com.zeroturnaround.javarebel.idea.plugin.settings.AdvancedConfigurable&quot;,
-    &quot;vue.rearranger.settings.migration&quot;: &quot;true&quot;
+  <component name="PropertiesComponent"><![CDATA[{
+  "keyToString": {
+    "RequestMappingsPanelOrder0": "0",
+    "RequestMappingsPanelOrder1": "1",
+    "RequestMappingsPanelWidth0": "75",
+    "RequestMappingsPanelWidth1": "75",
+    "RunOnceActivity.OpenProjectViewOnStart": "true",
+    "RunOnceActivity.ShowReadmeOnStart": "true",
+    "SHARE_PROJECT_CONFIGURATION_FILES": "true",
+    "WebServerToolWindowFactoryState": "false",
+    "git-widget-placeholder": "master",
+    "last_opened_file_path": "D:/project/java/zhendashizheng/ruoyi-admin/src/main/java/com/ruoyi/web/controller/mobile",
+    "node.js.detected.package.eslint": "true",
+    "node.js.detected.package.tslint": "true",
+    "node.js.selected.package.eslint": "(autodetect)",
+    "node.js.selected.package.tslint": "(autodetect)",
+    "nodejs_package_manager_path": "npm",
+    "settings.editor.selected.configurable": "com.zeroturnaround.javarebel.idea.plugin.settings.AdvancedConfigurable",
+    "vue.rearranger.settings.migration": "true"
   }
-}</component>
+}]]></component>
   <component name="ReactorSettings">
     <option name="notificationShown" value="true" />
   </component>
@@ -86,9 +118,14 @@
   </component>
   <component name="RecentsManager">
     <key name="CopyFile.RECENT_KEYS">
-      <recent name="D:\project\java\zhendashizheng\ruoyi-gas\src\main\resources\mapper" />
+      <recent name="D:\project\java\zhendashizheng\ruoyi-admin\src\main\java\com\ruoyi\web\controller\mobile" />
+      <recent name="D:\project\java\zhendashizheng\ruoyi-mobile\src\main\java\com\ruoyi\mobile\domain\bo" />
+      <recent name="D:\project\java\zhendashizheng\ruoyi-mobile\src\main\java\com\ruoyi\mobile\domain\vo" />
+      <recent name="D:\project\java\zhendashizheng\ruoyi-mobile\src\main\resources\mapper\mobile" />
+      <recent name="D:\project\java\zhendashizheng\ruoyi-mobile\src\main\java\com\ruoyi\mobile\mapper" />
+    </key>
+    <key name="MoveFile.RECENT_KEYS">
       <recent name="D:\project\java\zhendashizheng\ruoyi-gas\src\main\java\com\ruoyi\gas" />
-      <recent name="D:\project\java\zhendashizheng\ruoyi-admin\src\main\java\com\ruoyi\web\controller\gas" />
     </key>
   </component>
   <component name="RunDashboard">
@@ -140,7 +177,8 @@
       <workItem from="1698129688036" duration="3327000" />
       <workItem from="1698194223613" duration="3556000" />
       <workItem from="1698201966791" duration="7531000" />
-      <workItem from="1698281101623" duration="4087000" />
+      <workItem from="1698281101623" duration="8631000" />
+      <workItem from="1698301838507" duration="1160000" />
     </task>
     <task id="LOCAL-00001" summary="提交代码">
       <option name="closed" value="true" />
@@ -150,7 +188,15 @@
       <option name="project" value="LOCAL" />
       <updated>1698203984719</updated>
     </task>
-    <option name="localTasksCounter" value="2" />
+    <task id="LOCAL-00002" summary="提交代码">
+      <option name="closed" value="true" />
+      <created>1698295783555</created>
+      <option name="number" value="00002" />
+      <option name="presentableId" value="LOCAL-00002" />
+      <option name="project" value="LOCAL" />
+      <updated>1698295783555</updated>
+    </task>
+    <option name="localTasksCounter" value="3" />
     <servers />
   </component>
   <component name="TypeScriptGeneratedFilesManager">
@@ -173,15 +219,4 @@
     <MESSAGE value="提交代码" />
     <option name="LAST_COMMIT_MESSAGE" value="提交代码" />
   </component>
-  <component name="XDebuggerManager">
-    <breakpoint-manager>
-      <breakpoints>
-        <line-breakpoint enabled="true" type="java-line">
-          <url>file://$PROJECT_DIR$/ruoyi-gas/src/main/java/com/ruoyi/gas/service/impl/GAreaServiceImpl.java</url>
-          <line>153</line>
-          <option name="timeStamp" value="1" />
-        </line-breakpoint>
-      </breakpoints>
-    </breakpoint-manager>
-  </component>
 </project>

Plik diff jest za duży
+ 90679 - 0
logs/ruoyi-xxl-job-admin.log


Plik diff jest za duży
+ 3575 - 0
logs/sys-console.log


Plik diff jest za duży
+ 1653 - 0
logs/sys-error.log


Plik diff jest za duży
+ 1698 - 0
logs/sys-info.log


+ 4 - 0
logs/sys-user.log

@@ -1,3 +1,7 @@
 2023-10-26 10:43:12 [SpringApplicationShutdownHook] INFO  sys-user - ====关闭后台任务任务线程池====
 2023-10-26 10:44:11 [SpringApplicationShutdownHook] INFO  sys-user - ====关闭后台任务任务线程池====
 2023-10-26 10:48:10 [SpringApplicationShutdownHook] INFO  sys-user - ====关闭后台任务任务线程池====
+2023-10-26 13:39:49 [SpringApplicationShutdownHook] INFO  sys-user - ====关闭后台任务任务线程池====
+2023-10-26 14:04:27 [SpringApplicationShutdownHook] INFO  sys-user - ====关闭后台任务任务线程池====
+2023-10-26 14:11:01 [SpringApplicationShutdownHook] INFO  sys-user - ====关闭后台任务任务线程池====
+2023-10-26 14:29:57 [SpringApplicationShutdownHook] INFO  sys-user - ====关闭后台任务任务线程池====

+ 113 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/gas/GCourtyardNetworkManagementController.java

@@ -0,0 +1,113 @@
+package com.ruoyi.web.controller.gas;
+
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.annotation.RepeatSubmit;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.page.TableDataInfo;
+import com.ruoyi.common.core.validate.AddGroup;
+import com.ruoyi.common.core.validate.EditGroup;
+import com.ruoyi.common.core.validate.QueryGroup;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.gas.domain.bo.GCourtyardNetworkManagementBo;
+import com.ruoyi.gas.domain.vo.GCourtyardNetworkManagementVo;
+import com.ruoyi.gas.service.IGCourtyardNetworkManagementService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.RequiredArgsConstructor;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * 庭院网管Controller
+ *
+ * @author JX.LI
+ * @date 2023-10-26
+ */
+@Validated
+@Api(value = "庭院网管控制器", tags = {"庭院网管管理"})
+@RequiredArgsConstructor(onConstructor_ = @Autowired)
+@RestController
+@RequestMapping("/gas/courtyardNetworkManagement")
+public class GCourtyardNetworkManagementController extends BaseController {
+
+    private final IGCourtyardNetworkManagementService iGCourtyardNetworkManagementService;
+
+    /**
+     * 查询庭院网管列表
+     */
+    @ApiOperation("查询庭院网管列表")
+    @PreAuthorize("@ss.hasPermi('gas:courtyardNetworkManagement:list')")
+    @GetMapping("/list")
+    public TableDataInfo<GCourtyardNetworkManagementVo> list(@Validated(QueryGroup.class) GCourtyardNetworkManagementBo bo) {
+        return iGCourtyardNetworkManagementService.queryPageList(bo);
+    }
+
+    /**
+     * 导出庭院网管列表
+     */
+    @ApiOperation("导出庭院网管列表")
+    @PreAuthorize("@ss.hasPermi('gas:courtyardNetworkManagement:export')")
+    @Log(title = "庭院网管", businessType = BusinessType.EXPORT)
+    @GetMapping("/export")
+    public void export(@Validated GCourtyardNetworkManagementBo bo, HttpServletResponse response) {
+        List<GCourtyardNetworkManagementVo> list = iGCourtyardNetworkManagementService.queryList(bo);
+        ExcelUtil.exportExcel(list, "庭院网管", GCourtyardNetworkManagementVo.class, response);
+    }
+
+    /**
+     * 获取庭院网管详细信息
+     */
+    @ApiOperation("获取庭院网管详细信息")
+    @PreAuthorize("@ss.hasPermi('gas:courtyardNetworkManagement:query')")
+    @GetMapping("/{id}")
+    public AjaxResult<GCourtyardNetworkManagementVo> getInfo(@NotNull(message = "主键不能为空")
+                                                  @PathVariable("id") Long id) {
+        return AjaxResult.success(iGCourtyardNetworkManagementService.queryById(id));
+    }
+
+    /**
+     * 新增庭院网管
+     */
+    @ApiOperation("新增庭院网管")
+    @PreAuthorize("@ss.hasPermi('gas:courtyardNetworkManagement:add')")
+    @Log(title = "庭院网管", businessType = BusinessType.INSERT)
+    @RepeatSubmit()
+    @PostMapping()
+    public AjaxResult<Void> add(@Validated(AddGroup.class) @RequestBody GCourtyardNetworkManagementBo bo) {
+        return toAjax(iGCourtyardNetworkManagementService.insertByBo(bo) ? 1 : 0);
+    }
+
+    /**
+     * 修改庭院网管
+     */
+    @ApiOperation("修改庭院网管")
+    @PreAuthorize("@ss.hasPermi('gas:courtyardNetworkManagement:edit')")
+    @Log(title = "庭院网管", businessType = BusinessType.UPDATE)
+    @RepeatSubmit()
+    @PutMapping()
+    public AjaxResult<Void> edit(@Validated(EditGroup.class) @RequestBody GCourtyardNetworkManagementBo bo) {
+        return toAjax(iGCourtyardNetworkManagementService.updateByBo(bo) ? 1 : 0);
+    }
+
+    /**
+     * 删除庭院网管
+     */
+    @ApiOperation("删除庭院网管")
+    @PreAuthorize("@ss.hasPermi('gas:courtyardNetworkManagement:remove')")
+    @Log(title = "庭院网管" , businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    public AjaxResult<Void> remove(@NotEmpty(message = "主键不能为空")
+                                       @PathVariable Long[] ids) {
+        return toAjax(iGCourtyardNetworkManagementService.deleteWithValidByIds(Arrays.asList(ids), true) ? 1 : 0);
+    }
+}

+ 113 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/gas/GWarningPileController.java

@@ -0,0 +1,113 @@
+package com.ruoyi.web.controller.gas;
+
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.annotation.RepeatSubmit;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.page.TableDataInfo;
+import com.ruoyi.common.core.validate.AddGroup;
+import com.ruoyi.common.core.validate.EditGroup;
+import com.ruoyi.common.core.validate.QueryGroup;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.gas.domain.bo.GWarningPileBo;
+import com.ruoyi.gas.domain.vo.GWarningPileVo;
+import com.ruoyi.gas.service.IGWarningPileService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.RequiredArgsConstructor;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * 警示桩Controller
+ *
+ * @author JX.Li
+ * @date 2023-10-26
+ */
+@Validated
+@Api(value = "警示桩控制器", tags = {"警示桩管理"})
+@RequiredArgsConstructor(onConstructor_ = @Autowired)
+@RestController
+@RequestMapping("/gas/warningPile")
+public class GWarningPileController extends BaseController {
+
+    private final IGWarningPileService iGWarningPileService;
+
+    /**
+     * 查询警示桩列表
+     */
+    @ApiOperation("查询警示桩列表")
+    @PreAuthorize("@ss.hasPermi('gas:warningPile:list')")
+    @GetMapping("/list")
+    public TableDataInfo<GWarningPileVo> list(@Validated(QueryGroup.class) GWarningPileBo bo) {
+        return iGWarningPileService.queryPageList(bo);
+    }
+
+    /**
+     * 导出警示桩列表
+     */
+    @ApiOperation("导出警示桩列表")
+    @PreAuthorize("@ss.hasPermi('gas:warningPile:export')")
+    @Log(title = "警示桩", businessType = BusinessType.EXPORT)
+    @GetMapping("/export")
+    public void export(@Validated GWarningPileBo bo, HttpServletResponse response) {
+        List<GWarningPileVo> list = iGWarningPileService.queryList(bo);
+        ExcelUtil.exportExcel(list, "警示桩", GWarningPileVo.class, response);
+    }
+
+    /**
+     * 获取警示桩详细信息
+     */
+    @ApiOperation("获取警示桩详细信息")
+    @PreAuthorize("@ss.hasPermi('gas:warningPile:query')")
+    @GetMapping("/{id}")
+    public AjaxResult<GWarningPileVo> getInfo(@NotNull(message = "主键不能为空")
+                                                  @PathVariable("id") Long id) {
+        return AjaxResult.success(iGWarningPileService.queryById(id));
+    }
+
+    /**
+     * 新增警示桩
+     */
+    @ApiOperation("新增警示桩")
+    @PreAuthorize("@ss.hasPermi('gas:warningPile:add')")
+    @Log(title = "警示桩", businessType = BusinessType.INSERT)
+    @RepeatSubmit()
+    @PostMapping()
+    public AjaxResult<Void> add(@Validated(AddGroup.class) @RequestBody GWarningPileBo bo) {
+        return toAjax(iGWarningPileService.insertByBo(bo) ? 1 : 0);
+    }
+
+    /**
+     * 修改警示桩
+     */
+    @ApiOperation("修改警示桩")
+    @PreAuthorize("@ss.hasPermi('gas:warningPile:edit')")
+    @Log(title = "警示桩", businessType = BusinessType.UPDATE)
+    @RepeatSubmit()
+    @PutMapping()
+    public AjaxResult<Void> edit(@Validated(EditGroup.class) @RequestBody GWarningPileBo bo) {
+        return toAjax(iGWarningPileService.updateByBo(bo) ? 1 : 0);
+    }
+
+    /**
+     * 删除警示桩
+     */
+    @ApiOperation("删除警示桩")
+    @PreAuthorize("@ss.hasPermi('gas:warningPile:remove')")
+    @Log(title = "警示桩" , businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    public AjaxResult<Void> remove(@NotEmpty(message = "主键不能为空")
+                                       @PathVariable Long[] ids) {
+        return toAjax(iGWarningPileService.deleteWithValidByIds(Arrays.asList(ids), true) ? 1 : 0);
+    }
+}

+ 68 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/mobile/MUserController.java

@@ -0,0 +1,68 @@
+package com.ruoyi.web.controller.mobile;
+
+import lombok.RequiredArgsConstructor;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.validation.annotation.Validated;
+import com.ruoyi.common.annotation.RepeatSubmit;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.validate.EditGroup;
+import com.ruoyi.mobile.domain.bo.MUserBo;
+import com.ruoyi.mobile.service.IMUserService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+/**
+ * 用户Controller
+ *
+ * @author ruoyi
+ * @date 2021-11-18
+ */
+@Validated
+@Api(value = "用户控制器", tags = {"用户管理"})
+@RequiredArgsConstructor(onConstructor_ = @Autowired)
+@RestController
+@RequestMapping("/mobile/user")
+public class MUserController extends BaseController {
+
+    private final IMUserService iMUserService;
+
+    /**
+     * 获取用户详细信息
+     */
+    @ApiOperation("获取用户详细信息")
+    @GetMapping
+    public AjaxResult getInfo() {
+        return AjaxResult.success(iMUserService.getInfo());
+    }
+
+    /**
+     * 登录
+     */
+    @ApiOperation("登录")
+    @PostMapping
+    public AjaxResult login(@RequestBody MUserBo bo) {
+        return AjaxResult.success(iMUserService.login(bo));
+    }
+
+    /**
+     * 修改用户
+     */
+    @ApiOperation("修改用户")
+    @RepeatSubmit()
+    @PutMapping()
+    public AjaxResult<Void> edit(@Validated(EditGroup.class) @RequestBody MUserBo bo) {
+        return toAjax(iMUserService.updateByBo(bo) ? 1 : 0);
+    }
+
+    /**
+     * 获取用户名
+     * @param
+     * @return
+     */
+    @GetMapping("/getName")
+    public AjaxResult getName() {
+        return AjaxResult.success(iMUserService.getName());
+    }
+}

+ 3 - 3
ruoyi-admin/target/classes/application-dev.yml

@@ -57,7 +57,7 @@ spring:
 #          url: jdbc:mysql://123.249.30.140:3307/gas?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true
 #          username: root
 #          password: szrqwx123456
-          url: jdbc:mysql://124.221.101.24:13306/zhendashizheng?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true
+          url: jdbc:mysql://49.232.253.249:3306/sj_zdsz_new?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true
           username: root
           password: Lanyuxinxi@88.com
 #          szrqwx123456
@@ -120,13 +120,13 @@ spring:
 spring:
   redis:
     # 地址
-    host: 124.221.101.24
+    host: 49.232.253.249
     # 端口,默认为6379
     port: 16379
     # 数据库索引
     database: 0
     # 密码
-    password: sooka123456
+    password: Lanyuxinxi@88.com
     # 连接超时时间
     timeout: 10s
     # 是否开启ssl

+ 49 - 0
ruoyi-gas/src/main/java/com/ruoyi/gas/domain/GCourtyardNetworkManagement.java

@@ -0,0 +1,49 @@
+package com.ruoyi.gas.domain;
+
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
+import java.io.Serializable;
+import java.util.Date;
+import java.math.BigDecimal;
+
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 庭院网管对象 g_courtyard_network_management
+ *
+ * @author JX.LI
+ * @date 2023-10-26
+ */
+@Data
+@Accessors(chain = true)
+@TableName("g_courtyard_network_management")
+public class GCourtyardNetworkManagement extends BaseEntity {
+
+    private static final long serialVersionUID=1L;
+
+    /**
+     * 主键id
+     */
+    @TableId(value = "id")
+    private Long id;
+    /**
+     * 单元id
+     */
+    private Long unitId;
+    /**
+     * 发现问题
+     */
+    private String findProblem;
+    /**
+     * 备注
+     */
+    private String remarks;
+    /**
+     * 删除标志
+     */
+    @TableLogic
+    private String delFlag;
+
+}

+ 42 - 0
ruoyi-gas/src/main/java/com/ruoyi/gas/domain/GNetworkManagementPhoto.java

@@ -0,0 +1,42 @@
+package com.ruoyi.gas.domain;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.ruoyi.common.core.domain.BaseEntity;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+/**
+ * 庭院网管照片对象 g_network_management_photo
+ *
+ * @author JX.Li
+ * @date 2023-10-26
+ */
+@Data
+@Accessors(chain = true)
+@TableName("g_network_management_photo")
+public class GNetworkManagementPhoto extends BaseEntity {
+
+    private static final long serialVersionUID=1L;
+
+    /**
+     * 主键id
+     */
+    @TableId(value = "id")
+    private Long id;
+    /**
+     * 庭院网管id
+     */
+    private Long courtyardNetworkManagementId;
+    /**
+     * 照片
+     */
+    private String picUrl;
+    /**
+     * 删除标志
+     */
+    @TableLogic
+    private String delFlag;
+
+}

+ 4 - 0
ruoyi-gas/src/main/java/com/ruoyi/gas/domain/GRegulatorBox.java

@@ -100,6 +100,10 @@ public class GRegulatorBox extends BaseEntity {
      */
     private String xtv;
     /**
+     * 主路
+     */
+    private String mainRoad;
+    /**
      * 有无控温器
      */
     private Boolean thermostat;

+ 65 - 0
ruoyi-gas/src/main/java/com/ruoyi/gas/domain/GWarningPile.java

@@ -0,0 +1,65 @@
+package com.ruoyi.gas.domain;
+
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
+import java.io.Serializable;
+import java.util.Date;
+import java.math.BigDecimal;
+
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 警示桩对象 g_warning_pile
+ *
+ * @author JX.Li
+ * @date 2023-10-26
+ */
+@Data
+@Accessors(chain = true)
+@TableName("g_warning_pile")
+public class GWarningPile extends BaseEntity {
+
+    private static final long serialVersionUID=1L;
+
+    /**
+     * 主键id
+     */
+    @TableId(value = "id")
+    private Long id;
+    /**
+     * 小区id
+     */
+    private Long areaId;
+    /**
+     * 巡查人员id
+     */
+    private String userId;
+    /**
+     * 警示桩名称
+     */
+    private String name;
+    /**
+     * 警示桩信信息
+     */
+    private String warningPileInfo;
+    /**
+     * 经度
+     */
+    private String longitude;
+    /**
+     * 纬度
+     */
+    private String latitude;
+    /**
+     * 备注
+     */
+    private String remarks;
+    /**
+     * 删除标志
+     */
+    @TableLogic
+    private String delFlag;
+
+}

+ 81 - 0
ruoyi-gas/src/main/java/com/ruoyi/gas/domain/bo/GCourtyardNetworkManagementBo.java

@@ -0,0 +1,81 @@
+package com.ruoyi.gas.domain.bo;
+
+import com.ruoyi.common.core.domain.BaseEntity;
+import com.ruoyi.common.core.validate.AddGroup;
+import com.ruoyi.common.core.validate.EditGroup;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.util.List;
+
+/**
+ * 庭院网管业务对象 g_courtyard_network_management
+ *
+ * @author JX.LI
+ * @date 2023-10-26
+ */
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ApiModel("庭院网管业务对象")
+public class GCourtyardNetworkManagementBo extends BaseEntity {
+
+    private List<String> photoList;
+    /**
+     * 主键id
+     */
+    @ApiModelProperty(value = "主键id", required = true)
+    @NotNull(message = "主键id不能为空", groups = { EditGroup.class })
+    private Long id;
+
+    /**
+     * 单元id
+     */
+    @ApiModelProperty(value = "单元id", required = true)
+    @NotNull(message = "单元id不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Long unitId;
+
+    /**
+     * 发现问题
+     */
+    @ApiModelProperty(value = "发现问题", required = true)
+    @NotBlank(message = "发现问题不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String findProblem;
+
+    /**
+     * 备注
+     */
+    @ApiModelProperty(value = "备注", required = true)
+    @NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String remarks;
+
+
+    /**
+     * 分页大小
+     */
+    @ApiModelProperty("分页大小")
+    private Integer pageSize;
+
+    /**
+     * 当前页数
+     */
+    @ApiModelProperty("当前页数")
+    private Integer pageNum;
+
+    /**
+     * 排序列
+     */
+    @ApiModelProperty("排序列")
+    private String orderByColumn;
+
+    /**
+     * 排序的方向desc或者asc
+     */
+    @ApiModelProperty(value = "排序的方向", example = "asc,desc")
+    private String isAsc;
+
+}

+ 73 - 0
ruoyi-gas/src/main/java/com/ruoyi/gas/domain/bo/GNetworkManagementPhotoBo.java

@@ -0,0 +1,73 @@
+package com.ruoyi.gas.domain.bo;
+
+import com.ruoyi.common.core.validate.AddGroup;
+import com.ruoyi.common.core.validate.EditGroup;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import javax.validation.constraints.*;
+
+import java.util.Date;
+
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 庭院网管照片业务对象 g_network_management_photo
+ *
+ * @author JX.Li
+ * @date 2023-10-26
+ */
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ApiModel("庭院网管照片业务对象")
+public class GNetworkManagementPhotoBo extends BaseEntity {
+
+    /**
+     * 主键id
+     */
+    @ApiModelProperty(value = "主键id", required = true)
+    @NotNull(message = "主键id不能为空", groups = { EditGroup.class })
+    private Long id;
+
+    /**
+     * 庭院网管id
+     */
+    @ApiModelProperty(value = "庭院网管id", required = true)
+    @NotNull(message = "庭院网管id不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Long courtyardNetworkManagementId;
+
+    /**
+     * 照片
+     */
+    @ApiModelProperty(value = "照片", required = true)
+    @NotBlank(message = "照片不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String picUrl;
+
+
+    /**
+     * 分页大小
+     */
+    @ApiModelProperty("分页大小")
+    private Integer pageSize;
+
+    /**
+     * 当前页数
+     */
+    @ApiModelProperty("当前页数")
+    private Integer pageNum;
+
+    /**
+     * 排序列
+     */
+    @ApiModelProperty("排序列")
+    private String orderByColumn;
+
+    /**
+     * 排序的方向desc或者asc
+     */
+    @ApiModelProperty(value = "排序的方向", example = "asc,desc")
+    private String isAsc;
+
+}

+ 6 - 0
ruoyi-gas/src/main/java/com/ruoyi/gas/domain/bo/GRegulatorBoxBo.java

@@ -69,6 +69,12 @@ public class GRegulatorBoxBo extends BaseEntity {
     private String appearance;
 
     /**
+     * 主路
+     */
+    @ApiModelProperty(value = "主路", required = true)
+    @NotBlank(message = "主路不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String mainRoad;
+    /**
      * 方砖
      */
     @ApiModelProperty(value = "方砖", required = true)

+ 108 - 0
ruoyi-gas/src/main/java/com/ruoyi/gas/domain/bo/GWarningPileBo.java

@@ -0,0 +1,108 @@
+package com.ruoyi.gas.domain.bo;
+
+import com.ruoyi.common.core.validate.AddGroup;
+import com.ruoyi.common.core.validate.EditGroup;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import javax.validation.constraints.*;
+
+import java.util.Date;
+
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 警示桩业务对象 g_warning_pile
+ *
+ * @author JX.Li
+ * @date 2023-10-26
+ */
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ApiModel("警示桩业务对象")
+public class GWarningPileBo extends BaseEntity {
+
+    /**
+     * 主键id
+     */
+    @ApiModelProperty(value = "主键id", required = true)
+    @NotNull(message = "主键id不能为空", groups = { EditGroup.class })
+    private Long id;
+
+    /**
+     * 小区id
+     */
+    @ApiModelProperty(value = "小区id", required = true)
+    @NotNull(message = "小区id不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Long areaId;
+
+    /**
+     * 巡查人员id
+     */
+    @ApiModelProperty(value = "巡查人员id", required = true)
+    @NotBlank(message = "巡查人员id不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String userId;
+
+    /**
+     * 警示桩名称
+     */
+    @ApiModelProperty(value = "警示桩名称", required = true)
+    @NotBlank(message = "警示桩名称不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String name;
+
+    /**
+     * 警示桩信信息
+     */
+    @ApiModelProperty(value = "警示桩信信息", required = true)
+    @NotBlank(message = "警示桩信信息不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String warningPileInfo;
+
+    /**
+     * 经度
+     */
+    @ApiModelProperty(value = "经度", required = true)
+    @NotBlank(message = "经度不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String longitude;
+
+    /**
+     * 纬度
+     */
+    @ApiModelProperty(value = "纬度", required = true)
+    @NotBlank(message = "纬度不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String latitude;
+
+    /**
+     * 备注
+     */
+    @ApiModelProperty(value = "备注", required = true)
+    @NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String remarks;
+
+
+    /**
+     * 分页大小
+     */
+    @ApiModelProperty("分页大小")
+    private Integer pageSize;
+
+    /**
+     * 当前页数
+     */
+    @ApiModelProperty("当前页数")
+    private Integer pageNum;
+
+    /**
+     * 排序列
+     */
+    @ApiModelProperty("排序列")
+    private String orderByColumn;
+
+    /**
+     * 排序的方向desc或者asc
+     */
+    @ApiModelProperty(value = "排序的方向", example = "asc,desc")
+    private String isAsc;
+
+}

+ 63 - 0
ruoyi-gas/src/main/java/com/ruoyi/gas/domain/vo/GCourtyardNetworkManagementVo.java

@@ -0,0 +1,63 @@
+package com.ruoyi.gas.domain.vo;
+
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.ruoyi.common.annotation.ExcelDictFormat;
+import com.ruoyi.common.convert.ExcelDictConvert;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+
+/**
+ * 庭院网管视图对象 g_courtyard_network_management
+ *
+ * @author JX.LI
+ * @date 2023-10-26
+ */
+@Data
+@ApiModel("庭院网管视图对象")
+@ExcelIgnoreUnannotated
+public class GCourtyardNetworkManagementVo {
+
+	private static final long serialVersionUID = 1L;
+
+	private Long areaId;
+	private String areaName;
+	private Long buildingId;
+	private String buildingName;
+	private String unitName;
+	private List<String> photoList;
+    /**
+     * 主键id
+     */
+	@ExcelProperty(value = "主键id")
+	@ApiModelProperty("主键id")
+	private Long id;
+
+    /**
+     * 单元id
+     */
+	@ExcelProperty(value = "单元id")
+	@ApiModelProperty("单元id")
+	private Long unitId;
+
+    /**
+     * 发现问题
+     */
+    @ExcelProperty(value = "发现问题", converter = ExcelDictConvert.class)
+    @ExcelDictFormat(dictType = "find_problem")
+	@ApiModelProperty("发现问题")
+	private String findProblem;
+
+    /**
+     * 备注
+     */
+	@ExcelProperty(value = "备注")
+	@ApiModelProperty("备注")
+	private String remarks;
+
+
+}

+ 49 - 0
ruoyi-gas/src/main/java/com/ruoyi/gas/domain/vo/GNetworkManagementPhotoVo.java

@@ -0,0 +1,49 @@
+package com.ruoyi.gas.domain.vo;
+
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.ruoyi.common.annotation.ExcelDictFormat;
+import com.ruoyi.common.convert.ExcelDictConvert;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import java.util.Date;
+
+
+
+/**
+ * 庭院网管照片视图对象 g_network_management_photo
+ *
+ * @author JX.Li
+ * @date 2023-10-26
+ */
+@Data
+@ApiModel("庭院网管照片视图对象")
+@ExcelIgnoreUnannotated
+public class GNetworkManagementPhotoVo {
+
+	private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+	@ExcelProperty(value = "主键id")
+	@ApiModelProperty("主键id")
+	private Long id;
+
+    /**
+     * 庭院网管id
+     */
+	@ExcelProperty(value = "庭院网管id")
+	@ApiModelProperty("庭院网管id")
+	private Long courtyardNetworkManagementId;
+
+    /**
+     * 照片
+     */
+	@ExcelProperty(value = "照片")
+	@ApiModelProperty("照片")
+	private String picUrl;
+
+
+}

+ 8 - 0
ruoyi-gas/src/main/java/com/ruoyi/gas/domain/vo/GRegulatorBoxVo.java

@@ -91,6 +91,14 @@ public class GRegulatorBoxVo {
 	private String guardrail;
 
     /**
+     * 主路
+     */
+    @ExcelProperty(value = "主路", converter = ExcelDictConvert.class)
+    @ExcelDictFormat(dictType = "main_road")
+	@ApiModelProperty("主路")
+	private String mainRoad;
+
+    /**
      * 基础
      */
     @ExcelProperty(value = "基础", converter = ExcelDictConvert.class)

+ 84 - 0
ruoyi-gas/src/main/java/com/ruoyi/gas/domain/vo/GWarningPileVo.java

@@ -0,0 +1,84 @@
+package com.ruoyi.gas.domain.vo;
+
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.ruoyi.common.annotation.ExcelDictFormat;
+import com.ruoyi.common.convert.ExcelDictConvert;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import java.util.Date;
+
+
+
+/**
+ * 警示桩视图对象 g_warning_pile
+ *
+ * @author JX.Li
+ * @date 2023-10-26
+ */
+@Data
+@ApiModel("警示桩视图对象")
+@ExcelIgnoreUnannotated
+public class GWarningPileVo {
+
+	private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+	@ExcelProperty(value = "主键id")
+	@ApiModelProperty("主键id")
+	private Long id;
+
+    /**
+     * 小区id
+     */
+	@ExcelProperty(value = "小区id")
+	@ApiModelProperty("小区id")
+	private Long areaId;
+
+    /**
+     * 巡查人员id
+     */
+	@ExcelProperty(value = "巡查人员id")
+	@ApiModelProperty("巡查人员id")
+	private String userId;
+
+    /**
+     * 警示桩名称
+     */
+	@ExcelProperty(value = "警示桩名称")
+	@ApiModelProperty("警示桩名称")
+	private String name;
+
+    /**
+     * 警示桩信信息
+     */
+	@ExcelProperty(value = "警示桩信信息")
+	@ApiModelProperty("警示桩信信息")
+	private String warningPileInfo;
+
+    /**
+     * 经度
+     */
+	@ExcelProperty(value = "经度")
+	@ApiModelProperty("经度")
+	private String longitude;
+
+    /**
+     * 纬度
+     */
+	@ExcelProperty(value = "纬度")
+	@ApiModelProperty("纬度")
+	private String latitude;
+
+    /**
+     * 备注
+     */
+	@ExcelProperty(value = "备注")
+	@ApiModelProperty("备注")
+	private String remarks;
+
+
+}

+ 24 - 0
ruoyi-gas/src/main/java/com/ruoyi/gas/mapper/GCourtyardNetworkManagementMapper.java

@@ -0,0 +1,24 @@
+package com.ruoyi.gas.mapper;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.common.core.mybatisplus.core.BaseMapperPlus;
+import com.ruoyi.gas.domain.GCourtyardNetworkManagement;
+import com.ruoyi.gas.domain.bo.GCourtyardNetworkManagementBo;
+import com.ruoyi.gas.domain.vo.GCourtyardNetworkManagementVo;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 庭院网管Mapper接口
+ *
+ * @author JX.LI
+ * @date 2023-10-26
+ */
+public interface GCourtyardNetworkManagementMapper extends BaseMapperPlus<GCourtyardNetworkManagement> {
+
+    Page<GCourtyardNetworkManagementVo> getList(@Param("p") GCourtyardNetworkManagementBo bo, Page<?> page);
+    List<String> getPhoto(Long id);
+    GCourtyardNetworkManagementVo getById(Long id);
+
+}

+ 1 - 1
ruoyi-gas/src/main/java/com/ruoyi/gas/mapper/GEmergencyRepairMapper.java

@@ -19,6 +19,6 @@ public interface GEmergencyRepairMapper extends BaseMapperPlus<GEmergencyRepair>
     Page<GEmergencyRepairVo> getList(@Param("p") GEmergencyRepairBo bo, Page<?> page);
 
     List<String> getPhoto(Long id);
-    GEmergencyRepairVo getById(Long unitId);
+    GEmergencyRepairVo getById(Long id);
 
 }

+ 18 - 0
ruoyi-gas/src/main/java/com/ruoyi/gas/mapper/GNetworkManagementPhotoMapper.java

@@ -0,0 +1,18 @@
+package com.ruoyi.gas.mapper;
+
+import com.ruoyi.gas.domain.GNetworkManagementPhoto;
+import com.ruoyi.common.core.mybatisplus.core.BaseMapperPlus;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 庭院网管照片Mapper接口
+ *
+ * @author JX.Li
+ * @date 2023-10-26
+ */
+public interface GNetworkManagementPhotoMapper extends BaseMapperPlus<GNetworkManagementPhoto> {
+    int deleteByUrl(@Param("courtyardNetworkManagementId") Long courtyardNetworkManagementId, @Param("list") List<String> list);
+
+}

+ 14 - 0
ruoyi-gas/src/main/java/com/ruoyi/gas/mapper/GWarningPileMapper.java

@@ -0,0 +1,14 @@
+package com.ruoyi.gas.mapper;
+
+import com.ruoyi.gas.domain.GWarningPile;
+import com.ruoyi.common.core.mybatisplus.core.BaseMapperPlus;
+
+/**
+ * 警示桩Mapper接口
+ *
+ * @author JX.Li
+ * @date 2023-10-26
+ */
+public interface GWarningPileMapper extends BaseMapperPlus<GWarningPile> {
+
+}

+ 56 - 0
ruoyi-gas/src/main/java/com/ruoyi/gas/service/IGCourtyardNetworkManagementService.java

@@ -0,0 +1,56 @@
+package com.ruoyi.gas.service;
+
+import com.ruoyi.gas.domain.GCourtyardNetworkManagement;
+import com.ruoyi.gas.domain.vo.GCourtyardNetworkManagementVo;
+import com.ruoyi.gas.domain.bo.GCourtyardNetworkManagementBo;
+import com.ruoyi.common.core.mybatisplus.core.IServicePlus;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * 庭院网管Service接口
+ *
+ * @author JX.LI
+ * @date 2023-10-26
+ */
+public interface IGCourtyardNetworkManagementService extends IServicePlus<GCourtyardNetworkManagement, GCourtyardNetworkManagementVo> {
+	/**
+	 * 查询单个
+	 * @return
+	 */
+	GCourtyardNetworkManagementVo queryById(Long id);
+
+	/**
+	 * 查询列表
+	 */
+    TableDataInfo<GCourtyardNetworkManagementVo> queryPageList(GCourtyardNetworkManagementBo bo);
+
+	/**
+	 * 查询列表
+	 */
+	List<GCourtyardNetworkManagementVo> queryList(GCourtyardNetworkManagementBo bo);
+
+	/**
+	 * 根据新增业务对象插入庭院网管
+	 * @param bo 庭院网管新增业务对象
+	 * @return
+	 */
+	Boolean insertByBo(GCourtyardNetworkManagementBo bo);
+
+	/**
+	 * 根据编辑业务对象修改庭院网管
+	 * @param bo 庭院网管编辑业务对象
+	 * @return
+	 */
+	Boolean updateByBo(GCourtyardNetworkManagementBo bo);
+
+	/**
+	 * 校验并删除数据
+	 * @param ids 主键集合
+	 * @param isValid 是否校验,true-删除前校验,false-不校验
+	 * @return
+	 */
+	Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
+}

+ 58 - 0
ruoyi-gas/src/main/java/com/ruoyi/gas/service/IGNetworkManagementPhotoService.java

@@ -0,0 +1,58 @@
+package com.ruoyi.gas.service;
+
+import com.ruoyi.gas.domain.GNetworkManagementPhoto;
+import com.ruoyi.gas.domain.vo.GNetworkManagementPhotoVo;
+import com.ruoyi.gas.domain.bo.GNetworkManagementPhotoBo;
+import com.ruoyi.common.core.mybatisplus.core.IServicePlus;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * 庭院网管照片Service接口
+ *
+ * @author JX.Li
+ * @date 2023-10-26
+ */
+public interface IGNetworkManagementPhotoService extends IServicePlus<GNetworkManagementPhoto, GNetworkManagementPhotoVo> {
+	void deleteByUrl(Long courtyardNetworkManagementId, List<String> list);
+
+	/**
+	 * 查询单个
+	 * @return
+	 */
+	GNetworkManagementPhotoVo queryById(Long id);
+
+	/**
+	 * 查询列表
+	 */
+    TableDataInfo<GNetworkManagementPhotoVo> queryPageList(GNetworkManagementPhotoBo bo);
+
+	/**
+	 * 查询列表
+	 */
+	List<GNetworkManagementPhotoVo> queryList(GNetworkManagementPhotoBo bo);
+
+	/**
+	 * 根据新增业务对象插入庭院网管照片
+	 * @param bo 庭院网管照片新增业务对象
+	 * @return
+	 */
+	Boolean insertByBo(GNetworkManagementPhotoBo bo);
+
+	/**
+	 * 根据编辑业务对象修改庭院网管照片
+	 * @param bo 庭院网管照片编辑业务对象
+	 * @return
+	 */
+	Boolean updateByBo(GNetworkManagementPhotoBo bo);
+
+	/**
+	 * 校验并删除数据
+	 * @param ids 主键集合
+	 * @param isValid 是否校验,true-删除前校验,false-不校验
+	 * @return
+	 */
+	Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
+}

+ 56 - 0
ruoyi-gas/src/main/java/com/ruoyi/gas/service/IGWarningPileService.java

@@ -0,0 +1,56 @@
+package com.ruoyi.gas.service;
+
+import com.ruoyi.gas.domain.GWarningPile;
+import com.ruoyi.gas.domain.vo.GWarningPileVo;
+import com.ruoyi.gas.domain.bo.GWarningPileBo;
+import com.ruoyi.common.core.mybatisplus.core.IServicePlus;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * 警示桩Service接口
+ *
+ * @author JX.Li
+ * @date 2023-10-26
+ */
+public interface IGWarningPileService extends IServicePlus<GWarningPile, GWarningPileVo> {
+	/**
+	 * 查询单个
+	 * @return
+	 */
+	GWarningPileVo queryById(Long id);
+
+	/**
+	 * 查询列表
+	 */
+    TableDataInfo<GWarningPileVo> queryPageList(GWarningPileBo bo);
+
+	/**
+	 * 查询列表
+	 */
+	List<GWarningPileVo> queryList(GWarningPileBo bo);
+
+	/**
+	 * 根据新增业务对象插入警示桩
+	 * @param bo 警示桩新增业务对象
+	 * @return
+	 */
+	Boolean insertByBo(GWarningPileBo bo);
+
+	/**
+	 * 根据编辑业务对象修改警示桩
+	 * @param bo 警示桩编辑业务对象
+	 * @return
+	 */
+	Boolean updateByBo(GWarningPileBo bo);
+
+	/**
+	 * 校验并删除数据
+	 * @param ids 主键集合
+	 * @param isValid 是否校验,true-删除前校验,false-不校验
+	 * @return
+	 */
+	Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
+}

+ 135 - 0
ruoyi-gas/src/main/java/com/ruoyi/gas/service/impl/GCourtyardNetworkManagementServiceImpl.java

@@ -0,0 +1,135 @@
+package com.ruoyi.gas.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.common.core.mybatisplus.core.ServicePlusImpl;
+import com.ruoyi.common.core.page.TableDataInfo;
+import com.ruoyi.common.utils.PageUtils;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.gas.domain.GCourtyardNetworkManagement;
+import com.ruoyi.gas.domain.bo.GCourtyardNetworkManagementBo;
+import com.ruoyi.gas.domain.bo.GNetworkManagementPhotoBo;
+import com.ruoyi.gas.domain.vo.GCourtyardNetworkManagementVo;
+import com.ruoyi.gas.mapper.GCourtyardNetworkManagementMapper;
+import com.ruoyi.gas.service.IGCourtyardNetworkManagementService;
+import com.ruoyi.gas.service.IGNetworkManagementPhotoService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.Collection;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+/**
+ * 庭院网管Service业务层处理
+ *
+ * @author JX.LI
+ * @date 2023-10-26
+ */
+@Service
+public class GCourtyardNetworkManagementServiceImpl extends ServicePlusImpl<GCourtyardNetworkManagementMapper, GCourtyardNetworkManagement, GCourtyardNetworkManagementVo> implements IGCourtyardNetworkManagementService {
+
+    @Autowired
+    private IGNetworkManagementPhotoService igNetworkManagementPhotoService;
+
+    @Override
+    public GCourtyardNetworkManagementVo queryById(Long id){
+        GCourtyardNetworkManagementVo byId = baseMapper.getById(id);
+        byId.setPhotoList(baseMapper.getPhoto(byId.getId()));
+        return byId;
+    }
+
+    @Override
+    public TableDataInfo<GCourtyardNetworkManagementVo> queryPageList(GCourtyardNetworkManagementBo bo) {
+        Page<GCourtyardNetworkManagementVo> page = new Page<>(bo.getPageNum(), bo.getPageSize());
+        Page<GCourtyardNetworkManagementVo> list = baseMapper.getList(bo, page);
+        list.getRecords().forEach(item -> item.setPhotoList(baseMapper.getPhoto(item.getId())));
+        return PageUtils.buildDataInfo(list);
+    }
+
+    @Override
+    public List<GCourtyardNetworkManagementVo> queryList(GCourtyardNetworkManagementBo bo) {
+        return listVo(buildQueryWrapper(bo));
+    }
+
+    private LambdaQueryWrapper<GCourtyardNetworkManagement> buildQueryWrapper(GCourtyardNetworkManagementBo bo) {
+        Map<String, Object> params = bo.getParams();
+        LambdaQueryWrapper<GCourtyardNetworkManagement> lqw = Wrappers.lambdaQuery();
+        lqw.eq(bo.getUnitId() != null, GCourtyardNetworkManagement::getUnitId, bo.getUnitId());
+        lqw.eq(StringUtils.isNotBlank(bo.getFindProblem()), GCourtyardNetworkManagement::getFindProblem, bo.getFindProblem());
+        lqw.eq(StringUtils.isNotBlank(bo.getRemarks()), GCourtyardNetworkManagement::getRemarks, bo.getRemarks());
+        return lqw;
+    }
+
+    @Override
+    public Boolean insertByBo(GCourtyardNetworkManagementBo bo) {
+        GCourtyardNetworkManagement add = BeanUtil.toBean(bo, GCourtyardNetworkManagement.class);
+        validEntityBeforeSave(add);
+        boolean flag = save(add);
+        if (flag) {
+            bo.setId(add.getId());
+            //添加照片
+            List<String> piclist = bo.getPhotoList();
+            if (piclist != null) {
+                for (int i = 0; i < bo.getPhotoList().size(); i++) {
+                    GNetworkManagementPhotoBo photo = new GNetworkManagementPhotoBo();
+                    photo.setCourtyardNetworkManagementId(bo.getId());
+                    photo.setPicUrl(bo.getPhotoList().get(i));
+                    igNetworkManagementPhotoService.insertByBo(photo);
+                }
+            }
+        }
+        return flag;
+    }
+
+    @Override
+    public Boolean updateByBo(GCourtyardNetworkManagementBo bo) {
+        GCourtyardNetworkManagement update = BeanUtil.toBean(bo, GCourtyardNetworkManagement.class);
+        validEntityBeforeSave(update);
+        List<String> piclist = bo.getPhotoList();
+        if (piclist != null) {
+            //原有的照片
+            List<String> photolist = baseMapper.getPhoto(bo.getId());
+            //原有的照片不在新传的照片里
+            List<String> dellist = photolist.stream().filter(i -> !piclist.contains(i)).collect(Collectors.toList());
+            //删除照片
+            if (dellist.size() > 0) {
+                igNetworkManagementPhotoService.deleteByUrl(bo.getId(), dellist);
+            }
+            //新传的照片不在原有的照片里
+            List<String> inslist = piclist.stream().filter(i -> !photolist.contains(i)).collect(Collectors.toList());
+            if (inslist.size() > 0) {
+                for (int i = 0; i < inslist.size(); i++) {
+                    if (StringUtils.isNotEmpty(inslist.get(i))) {
+                        //添加照片
+                        GNetworkManagementPhotoBo photo = new GNetworkManagementPhotoBo();
+                        photo.setCourtyardNetworkManagementId(bo.getId());
+                        photo.setPicUrl(inslist.get(i));
+                        igNetworkManagementPhotoService.insertByBo(photo);
+                    }
+                }
+            }
+        }
+        return updateById(update);
+    }
+
+    /**
+     * 保存前的数据校验
+     *
+     * @param entity 实体类数据
+     */
+    private void validEntityBeforeSave(GCourtyardNetworkManagement entity){
+        //TODO 做一些数据校验,如唯一约束
+    }
+
+    @Override
+    public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
+        if(isValid){
+            //TODO 做一些业务上的校验,判断是否需要校验
+        }
+        return removeByIds(ids);
+    }
+}

+ 1 - 0
ruoyi-gas/src/main/java/com/ruoyi/gas/service/impl/GEmergencyRepairServiceImpl.java

@@ -46,6 +46,7 @@ public class GEmergencyRepairServiceImpl extends ServicePlusImpl<GEmergencyRepai
     public TableDataInfo<GEmergencyRepairVo> queryPageList(GEmergencyRepairBo bo) {
         Page<GEmergencyRepairVo> page = new Page<>(bo.getPageNum(), bo.getPageSize());
         Page<GEmergencyRepairVo> list = baseMapper.getList(bo, page);
+        list.getRecords().forEach(item -> item.setPhotoList(baseMapper.getPhoto(item.getId())));
         return PageUtils.buildDataInfo(list);
     }
 

+ 93 - 0
ruoyi-gas/src/main/java/com/ruoyi/gas/service/impl/GNetworkManagementPhotoServiceImpl.java

@@ -0,0 +1,93 @@
+package com.ruoyi.gas.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.common.utils.PageUtils;
+import com.ruoyi.common.core.page.PagePlus;
+import com.ruoyi.common.core.page.TableDataInfo;
+import org.springframework.stereotype.Service;
+import com.ruoyi.common.core.mybatisplus.core.ServicePlusImpl;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.ruoyi.gas.domain.bo.GNetworkManagementPhotoBo;
+import com.ruoyi.gas.domain.vo.GNetworkManagementPhotoVo;
+import com.ruoyi.gas.domain.GNetworkManagementPhoto;
+import com.ruoyi.gas.mapper.GNetworkManagementPhotoMapper;
+import com.ruoyi.gas.service.IGNetworkManagementPhotoService;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Collection;
+
+/**
+ * 庭院网管照片Service业务层处理
+ *
+ * @author JX.Li
+ * @date 2023-10-26
+ */
+@Service
+public class GNetworkManagementPhotoServiceImpl extends ServicePlusImpl<GNetworkManagementPhotoMapper, GNetworkManagementPhoto, GNetworkManagementPhotoVo> implements IGNetworkManagementPhotoService {
+    @Override
+    public void deleteByUrl(Long courtyardNetworkManagementId, List<String> list) {
+        baseMapper.deleteByUrl(courtyardNetworkManagementId,list);
+    }
+
+    @Override
+    public GNetworkManagementPhotoVo queryById(Long id){
+        return getVoById(id);
+    }
+
+    @Override
+    public TableDataInfo<GNetworkManagementPhotoVo> queryPageList(GNetworkManagementPhotoBo bo) {
+        PagePlus<GNetworkManagementPhoto, GNetworkManagementPhotoVo> result = pageVo(PageUtils.buildPagePlus(), buildQueryWrapper(bo));
+        return PageUtils.buildDataInfo(result);
+    }
+
+    @Override
+    public List<GNetworkManagementPhotoVo> queryList(GNetworkManagementPhotoBo bo) {
+        return listVo(buildQueryWrapper(bo));
+    }
+
+    private LambdaQueryWrapper<GNetworkManagementPhoto> buildQueryWrapper(GNetworkManagementPhotoBo bo) {
+        Map<String, Object> params = bo.getParams();
+        LambdaQueryWrapper<GNetworkManagementPhoto> lqw = Wrappers.lambdaQuery();
+        lqw.eq(bo.getCourtyardNetworkManagementId() != null, GNetworkManagementPhoto::getCourtyardNetworkManagementId, bo.getCourtyardNetworkManagementId());
+        lqw.eq(StringUtils.isNotBlank(bo.getPicUrl()), GNetworkManagementPhoto::getPicUrl, bo.getPicUrl());
+        return lqw;
+    }
+
+    @Override
+    public Boolean insertByBo(GNetworkManagementPhotoBo bo) {
+        GNetworkManagementPhoto add = BeanUtil.toBean(bo, GNetworkManagementPhoto.class);
+        validEntityBeforeSave(add);
+        boolean flag = save(add);
+        if (flag) {
+            bo.setId(add.getId());
+        }
+        return flag;
+    }
+
+    @Override
+    public Boolean updateByBo(GNetworkManagementPhotoBo bo) {
+        GNetworkManagementPhoto update = BeanUtil.toBean(bo, GNetworkManagementPhoto.class);
+        validEntityBeforeSave(update);
+        return updateById(update);
+    }
+
+    /**
+     * 保存前的数据校验
+     *
+     * @param entity 实体类数据
+     */
+    private void validEntityBeforeSave(GNetworkManagementPhoto entity){
+        //TODO 做一些数据校验,如唯一约束
+    }
+
+    @Override
+    public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
+        if(isValid){
+            //TODO 做一些业务上的校验,判断是否需要校验
+        }
+        return removeByIds(ids);
+    }
+}

+ 1 - 0
ruoyi-gas/src/main/java/com/ruoyi/gas/service/impl/GRegulatorBoxServiceImpl.java

@@ -47,6 +47,7 @@ public class GRegulatorBoxServiceImpl extends ServicePlusImpl<GRegulatorBoxMappe
     public TableDataInfo<GRegulatorBoxVo> queryPageList(GRegulatorBoxBo bo) {
         Page<GRegulatorBoxBo> page = new Page<>(bo.getPageNum(), bo.getPageSize());
         Page<GRegulatorBoxVo> result = baseMapper.getList(bo, page);
+        result.getRecords().forEach(item -> item.setPhotoList(baseMapper.getPhoto(item.getId())));
         return PageUtils.buildDataInfo(result);
     }
 

+ 94 - 0
ruoyi-gas/src/main/java/com/ruoyi/gas/service/impl/GWarningPileServiceImpl.java

@@ -0,0 +1,94 @@
+package com.ruoyi.gas.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.common.utils.PageUtils;
+import com.ruoyi.common.core.page.PagePlus;
+import com.ruoyi.common.core.page.TableDataInfo;
+import org.springframework.stereotype.Service;
+import com.ruoyi.common.core.mybatisplus.core.ServicePlusImpl;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.ruoyi.gas.domain.bo.GWarningPileBo;
+import com.ruoyi.gas.domain.vo.GWarningPileVo;
+import com.ruoyi.gas.domain.GWarningPile;
+import com.ruoyi.gas.mapper.GWarningPileMapper;
+import com.ruoyi.gas.service.IGWarningPileService;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Collection;
+
+/**
+ * 警示桩Service业务层处理
+ *
+ * @author JX.Li
+ * @date 2023-10-26
+ */
+@Service
+public class GWarningPileServiceImpl extends ServicePlusImpl<GWarningPileMapper, GWarningPile, GWarningPileVo> implements IGWarningPileService {
+
+    @Override
+    public GWarningPileVo queryById(Long id){
+        return getVoById(id);
+    }
+
+    @Override
+    public TableDataInfo<GWarningPileVo> queryPageList(GWarningPileBo bo) {
+        PagePlus<GWarningPile, GWarningPileVo> result = pageVo(PageUtils.buildPagePlus(), buildQueryWrapper(bo));
+        return PageUtils.buildDataInfo(result);
+    }
+
+    @Override
+    public List<GWarningPileVo> queryList(GWarningPileBo bo) {
+        return listVo(buildQueryWrapper(bo));
+    }
+
+    private LambdaQueryWrapper<GWarningPile> buildQueryWrapper(GWarningPileBo bo) {
+        Map<String, Object> params = bo.getParams();
+        LambdaQueryWrapper<GWarningPile> lqw = Wrappers.lambdaQuery();
+        lqw.eq(bo.getAreaId() != null, GWarningPile::getAreaId, bo.getAreaId());
+        lqw.eq(StringUtils.isNotBlank(bo.getUserId()), GWarningPile::getUserId, bo.getUserId());
+        lqw.like(StringUtils.isNotBlank(bo.getName()), GWarningPile::getName, bo.getName());
+        lqw.eq(StringUtils.isNotBlank(bo.getWarningPileInfo()), GWarningPile::getWarningPileInfo, bo.getWarningPileInfo());
+        lqw.eq(StringUtils.isNotBlank(bo.getLongitude()), GWarningPile::getLongitude, bo.getLongitude());
+        lqw.eq(StringUtils.isNotBlank(bo.getLatitude()), GWarningPile::getLatitude, bo.getLatitude());
+        lqw.eq(StringUtils.isNotBlank(bo.getRemarks()), GWarningPile::getRemarks, bo.getRemarks());
+        return lqw;
+    }
+
+    @Override
+    public Boolean insertByBo(GWarningPileBo bo) {
+        GWarningPile add = BeanUtil.toBean(bo, GWarningPile.class);
+        validEntityBeforeSave(add);
+        boolean flag = save(add);
+        if (flag) {
+            bo.setId(add.getId());
+        }
+        return flag;
+    }
+
+    @Override
+    public Boolean updateByBo(GWarningPileBo bo) {
+        GWarningPile update = BeanUtil.toBean(bo, GWarningPile.class);
+        validEntityBeforeSave(update);
+        return updateById(update);
+    }
+
+    /**
+     * 保存前的数据校验
+     *
+     * @param entity 实体类数据
+     */
+    private void validEntityBeforeSave(GWarningPile entity){
+        //TODO 做一些数据校验,如唯一约束
+    }
+
+    @Override
+    public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
+        if(isValid){
+            //TODO 做一些业务上的校验,判断是否需要校验
+        }
+        return removeByIds(ids);
+    }
+}

+ 53 - 0
ruoyi-gas/src/main/resources/mapper/GCourtyardNetworkManagementMapper.xml

@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.gas.mapper.GCourtyardNetworkManagementMapper">
+
+    <resultMap type="com.ruoyi.gas.domain.GCourtyardNetworkManagement" id="GCourtyardNetworkManagementResult">
+        <result property="id" column="id"/>
+        <result property="unitId" column="unit_id"/>
+        <result property="findProblem" column="find_problem"/>
+        <result property="remarks" column="remarks"/>
+        <result property="delFlag" column="del_flag"/>
+        <result property="createBy" column="create_by"/>
+        <result property="createTime" column="create_time"/>
+        <result property="updateBy" column="update_by"/>
+        <result property="updateTime" column="update_time"/>
+    </resultMap>
+
+    <select id="getPhoto" resultType="java.lang.String">
+        select pic_url AS picUrl
+        from g_network_management_photo
+        where courtyard_network_management_id = #{id}
+          and del_flag = '0'
+    </select>
+
+    <select id="getList" resultType="com.ruoyi.gas.domain.vo.GCourtyardNetworkManagementVo">
+        select a.*,
+        b.name AS unitName,
+        c.name AS buildingName,
+        d.name AS areaName
+        from g_courtyard_network_management a
+        left join g_unit b on a.unit_id = b.id and b.del_flag = '0'
+        left join g_building c on b.building_id = c.id and c.del_flag = '0'
+        left join g_area d on d.id = c.area_id and d.del_flag = '0'
+        <where>
+            a.del_flag = '0'
+            <if test="p.findProblem != null  and p.findProblem != ''">
+                and a.find_problem = #{p.findProblem}
+            </if>
+        </where>
+    </select>
+    <select id="getById" resultType="com.ruoyi.gas.domain.vo.GCourtyardNetworkManagementVo">
+        select a.*,
+               c.id AS buildingId,
+               d.id AS areaId
+        from g_courtyard_network_management a
+                 left join g_unit b on a.unit_id = b.id and b.del_flag = '0'
+                 left join g_building c on b.building_id = c.id and c.del_flag = '0'
+                 left join g_area d on d.id = c.area_id and d.del_flag = '0'
+        where a.id = #{id}
+          and a.del_flag = '0'
+    </select>
+</mapper>

+ 27 - 0
ruoyi-gas/src/main/resources/mapper/GNetworkManagementPhotoMapper.xml

@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.gas.mapper.GNetworkManagementPhotoMapper">
+
+    <resultMap type="com.ruoyi.gas.domain.GNetworkManagementPhoto" id="GNetworkManagementPhotoResult">
+        <result property="id" column="id"/>
+        <result property="courtyardNetworkManagementId" column="courtyard_network_management_id"/>
+        <result property="picUrl" column="pic_url"/>
+        <result property="delFlag" column="del_flag"/>
+        <result property="createBy" column="create_by"/>
+        <result property="createTime" column="create_time"/>
+        <result property="updateBy" column="update_by"/>
+        <result property="updateTime" column="update_time"/>
+    </resultMap>
+
+
+    <delete id="deleteByUrl" parameterType="String">
+        delete from g_network_management_photo where courtyard_network_management_id = #{courtyardNetworkManagementId}
+        and pic_url in
+        <foreach item="item" index="index" collection="list" open="(" separator="," close=")">
+            #{item}
+        </foreach>
+    </delete>
+
+</mapper>

BIN
ruoyi-gas/target/classes/com/ruoyi/gas/service/impl/GEmergencyRepairServiceImpl.class


+ 1 - 1
ruoyi-gas/target/classes/mapper/GAreaPhotoMapper.xml

@@ -16,7 +16,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </resultMap>
 
     <delete id="deleteByUrl" parameterType="String">
-        delete from g_order_photo where order_id = #{areaId}
+        delete from g_area_photo where area_id = #{areaId}
         and pic_url in
         <foreach item="item" index="index" collection="list" open="(" separator="," close=")">
             #{item}

+ 90 - 0
ruoyi-mobile/src/main/java/com/ruoyi/mobile/domain/bo/MUserBo.java

@@ -0,0 +1,90 @@
+package com.ruoyi.mobile.domain.bo;
+
+import com.ruoyi.common.core.domain.BaseEntity;
+import com.ruoyi.common.core.validate.AddGroup;
+import com.ruoyi.common.core.validate.EditGroup;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+/**
+ * 用户业务对象 g_user
+ *
+ * @author ruoyi
+ * @date 2021-11-18
+ */
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ApiModel("用户业务对象")
+public class MUserBo extends BaseEntity {
+
+    /**
+     * 主键id
+     */
+    @ApiModelProperty(value = "主键id", required = true)
+    @NotNull(message = "主键id不能为空", groups = { EditGroup.class })
+    private Long id;
+
+
+
+    /**
+     * 姓名
+     */
+    @ApiModelProperty(value = "姓名", required = true)
+    @NotBlank(message = "姓名不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String name;
+
+    /**
+     * 工号
+     */
+    @ApiModelProperty(value = "工号", required = true)
+    @NotBlank(message = "工号不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String jobNum;
+
+    /**
+     * 手机号
+     */
+    @ApiModelProperty(value = "手机号", required = true)
+    @NotNull(message = "手机号不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Long phone;
+
+
+
+    /**
+     * 密码
+     */
+    @ApiModelProperty(value = "密码", required = true)
+    @NotBlank(message = "密码不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String password;
+
+
+    /**
+     * 分页大小
+     */
+    @ApiModelProperty("分页大小")
+    private Integer pageSize;
+
+    /**
+     * 当前页数
+     */
+    @ApiModelProperty("当前页数")
+    private Integer pageNum;
+
+    /**
+     * 排序列
+     */
+    @ApiModelProperty("排序列")
+    private String orderByColumn;
+
+    /**
+     * 排序的方向desc或者asc
+     */
+    @ApiModelProperty(value = "排序的方向", example = "asc,desc")
+    private String isAsc;
+
+}

+ 72 - 0
ruoyi-mobile/src/main/java/com/ruoyi/mobile/domain/vo/MUserVo.java

@@ -0,0 +1,72 @@
+package com.ruoyi.mobile.domain.vo;
+
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+
+
+/**
+ * 用户视图对象 g_user
+ *
+ * @author ruoyi
+ * @date 2021-11-18
+ */
+@Data
+@ApiModel("用户视图对象")
+@ExcelIgnoreUnannotated
+public class MUserVo {
+
+	private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+	@ExcelProperty(value = "主键id")
+	@ApiModelProperty("主键id")
+	private Long id;
+
+
+
+    /**
+     * 姓名
+     */
+	@ExcelProperty(value = "姓名")
+	@ApiModelProperty("姓名")
+	private String name;
+
+    /**
+     * 工号
+     */
+	@ExcelProperty(value = "工号")
+	@ApiModelProperty("工号")
+	private String jobNum;
+
+    /**
+     * 手机号
+     */
+	@ExcelProperty(value = "手机号")
+	@ApiModelProperty("手机号")
+	private Long phone;
+
+
+    /**
+     * 密码
+     */
+	@ExcelProperty(value = "密码")
+	@ApiModelProperty("密码")
+	private String password;
+
+
+	/**
+	 * 工程权限
+	 */
+	private String power;
+	/**
+	 * 民用工程权限
+	 */
+	private String civilPower;
+
+}

+ 14 - 0
ruoyi-mobile/src/main/java/com/ruoyi/mobile/mapper/MUserMapper.java

@@ -0,0 +1,14 @@
+package com.ruoyi.mobile.mapper;
+
+import com.ruoyi.common.core.domain.entity.MUser;
+import com.ruoyi.common.core.mybatisplus.core.BaseMapperPlus;
+
+/**
+ * 用户Mapper接口
+ *
+ * @author ruoyi
+ * @date 2021-11-18
+ */
+public interface MUserMapper extends BaseMapperPlus<MUser> {
+
+}

+ 33 - 0
ruoyi-mobile/src/main/java/com/ruoyi/mobile/service/IMUserService.java

@@ -0,0 +1,33 @@
+package com.ruoyi.mobile.service;
+
+import com.ruoyi.common.core.domain.entity.MUser;
+import com.ruoyi.mobile.domain.vo.MUserVo;
+import com.ruoyi.mobile.domain.bo.MUserBo;
+import com.ruoyi.common.core.mybatisplus.core.IServicePlus;
+
+import java.util.Map;
+
+/**
+ * 用户Service接口
+ *
+ * @author ruoyi
+ * @date 2021-11-18
+ */
+public interface IMUserService extends IServicePlus<MUser, MUserVo> {
+	/**
+	 * 查询单个
+	 * @return
+	 */
+	MUser getInfo();
+
+	/**
+	 * 根据编辑业务对象修改用户
+	 * @param bo 用户编辑业务对象
+	 * @return
+	 */
+	Boolean updateByBo(MUserBo bo);
+
+	Map<String, String> login(MUserBo bo);
+
+	MUserVo getName();
+}

+ 94 - 0
ruoyi-mobile/src/main/java/com/ruoyi/mobile/service/impl/MUserServiceImpl.java

@@ -0,0 +1,94 @@
+package com.ruoyi.mobile.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.http.HttpStatus;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.ruoyi.common.core.domain.model.MobileLoginUser;
+import com.ruoyi.common.core.service.MobileTokenService;
+import com.ruoyi.common.exception.ServiceException;
+import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.common.utils.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.ruoyi.common.core.mybatisplus.core.ServicePlusImpl;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.ruoyi.mobile.domain.bo.MUserBo;
+import com.ruoyi.mobile.domain.vo.MUserVo;
+import com.ruoyi.common.core.domain.entity.MUser;
+import com.ruoyi.mobile.mapper.MUserMapper;
+import com.ruoyi.mobile.service.IMUserService;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * 用户Service业务层处理
+ *
+ * @author ruoyi
+ * @date 2021-11-18
+ */
+@Service
+public class MUserServiceImpl extends ServicePlusImpl<MUserMapper, MUser, MUserVo> implements IMUserService {
+
+    @Autowired
+    private MobileTokenService mobileTokenService;
+
+    @Override
+    public MUser getInfo(){
+        return baseMapper.selectById(1);
+    }
+
+    private LambdaQueryWrapper<MUser> buildQueryWrapper(MUserBo bo) {
+        Map<String, Object> params = bo.getParams();
+        LambdaQueryWrapper<MUser> lqw = Wrappers.lambdaQuery();
+        lqw.like(StringUtils.isNotBlank(bo.getName()), MUser::getName, bo.getName());
+        lqw.eq(StringUtils.isNotBlank(bo.getJobNum()), MUser::getJobNum, bo.getJobNum());
+        lqw.eq(bo.getPhone() != null, MUser::getPhone, bo.getPhone());
+        lqw.eq(StringUtils.isNotBlank(bo.getPassword()), MUser::getPassword, bo.getPassword());
+        return lqw;
+    }
+
+    @Override
+    public Boolean updateByBo(MUserBo bo) {
+        MUser update = BeanUtil.toBean(bo, MUser.class);
+        validEntityBeforeSave(update);
+        return updateById(update);
+    }
+
+    @Override
+    public Map<String, String> login(MUserBo bo) {
+        MUser po = baseMapper.selectOne(new QueryWrapper<MUser>().lambda().eq(MUser::getJobNum, bo.getJobNum()));
+        if (StringUtils.isEmpty(po)) {
+            throw new ServiceException("用户不存在", HttpStatus.HTTP_PARTIAL);
+        }
+        if (!SecurityUtils.matchesPassword(bo.getPassword(), po.getPassword())) {
+            throw new ServiceException("密码错误", HttpStatus.HTTP_PARTIAL);
+        }
+        MobileLoginUser m = new MobileLoginUser();
+        m.setMUser(po);
+        Map<String, String> map = new HashMap<>();
+        map.put("token", mobileTokenService.createMToken(m));
+        return map;
+    }
+
+    @Override
+    public MUserVo getName() {
+        MUserVo vo = new MUserVo();
+        MUser user = SecurityUtils.getWxLoginUser().getMUser();
+        vo.setName(user.getName());
+        vo.setPower(user.getPower());
+        vo.setCivilPower(user.getCivilPower());
+        return vo;
+    }
+
+    /**
+     * 保存前的数据校验
+     *
+     * @param entity 实体类数据
+     */
+    private void validEntityBeforeSave(MUser entity){
+        //TODO 做一些数据校验,如唯一约束
+    }
+
+}

+ 21 - 0
ruoyi-mobile/src/main/resources/mapper/mobile/MUserMapper.xml

@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.mobile.mapper.MUserMapper">
+
+    <resultMap type="com.ruoyi.common.core.domain.entity.MUser" id="MUserResult">
+        <result property="id" column="id"/>
+        <result property="name" column="name"/>
+        <result property="jobNum" column="job_num"/>
+        <result property="phone" column="phone"/>
+        <result property="delFlag" column="del_flag"/>
+        <result property="createBy" column="create_by"/>
+        <result property="createTime" column="create_time"/>
+        <result property="updateBy" column="update_by"/>
+        <result property="updateTime" column="update_time"/>
+        <result property="password" column="password"/>
+    </resultMap>
+
+
+</mapper>