Procházet zdrojové kódy

pad端大屏接口

zhanghao před 4 měsíci
rodič
revize
e1b74be9b0
42 změnil soubory, kde provedl 3641 přidání a 13 odebrání
  1. 92 0
      src/main/java/com/project/zcustom/controller/build/PlatBuildOfficeController.java
  2. 43 0
      src/main/java/com/project/zcustom/controller/build/PlatBuildProtectController.java
  3. 68 0
      src/main/java/com/project/zcustom/controller/engineering/PlatProjectCheckController.java
  4. 49 0
      src/main/java/com/project/zcustom/controller/engineering/PlatProjectMonitorController.java
  5. 35 0
      src/main/java/com/project/zcustom/controller/engineering/PlatProjectProductionController.java
  6. 2 2
      src/main/java/com/project/zcustom/controller/service/PlatBasicsController.java
  7. 1 1
      src/main/java/com/project/zcustom/controller/service/PlatBuildController.java
  8. 2 2
      src/main/java/com/project/zcustom/controller/service/PlatEmployeeController.java
  9. 2 2
      src/main/java/com/project/zcustom/controller/service/PlatEmployeeHealthController.java
  10. 2 2
      src/main/java/com/project/zcustom/controller/service/PlatGreenSmartController.java
  11. 2 2
      src/main/java/com/project/zcustom/controller/service/PlatPostStationController.java
  12. 2 2
      src/main/java/com/project/zcustom/controller/service/PlatPropertyController.java
  13. 49 0
      src/main/java/com/project/zcustom/domain/addional/LargeBuilding.java
  14. 62 0
      src/main/java/com/project/zcustom/domain/addional/LargeCamera.java
  15. 49 0
      src/main/java/com/project/zcustom/domain/addional/LargeIssue.java
  16. 67 0
      src/main/java/com/project/zcustom/domain/addional/LargePlan.java
  17. 56 0
      src/main/java/com/project/zcustom/domain/addional/LargeProject.java
  18. 57 0
      src/main/java/com/project/zcustom/domain/addional/LargeUnit.java
  19. 78 0
      src/main/java/com/project/zcustom/mapper/unit/LargeCameraMapper.java
  20. 78 0
      src/main/java/com/project/zcustom/mapper/unit/LargeIssueMapper.java
  21. 75 0
      src/main/java/com/project/zcustom/mapper/unit/LargePlanMapper.java
  22. 73 0
      src/main/java/com/project/zcustom/mapper/unit/LargeProjectMapper.java
  23. 80 0
      src/main/java/com/project/zcustom/mapper/unit/LargeUnitMapper.java
  24. 60 0
      src/main/java/com/project/zcustom/mapper/unit/PlatBuildingMapper.java
  25. 96 0
      src/main/java/com/project/zcustom/service/unit/ILargeCameraService.java
  26. 99 0
      src/main/java/com/project/zcustom/service/unit/ILargeIssueService.java
  27. 93 0
      src/main/java/com/project/zcustom/service/unit/ILargePlanService.java
  28. 98 0
      src/main/java/com/project/zcustom/service/unit/ILargeProjectService.java
  29. 98 0
      src/main/java/com/project/zcustom/service/unit/ILargeUnitService.java
  30. 30 0
      src/main/java/com/project/zcustom/service/unit/IPlatBuildingService.java
  31. 194 0
      src/main/java/com/project/zcustom/service/unit/impl/LargeCameraServiceImpl.java
  32. 192 0
      src/main/java/com/project/zcustom/service/unit/impl/LargeIssueServiceImpl.java
  33. 185 0
      src/main/java/com/project/zcustom/service/unit/impl/LargePlanServiceImpl.java
  34. 186 0
      src/main/java/com/project/zcustom/service/unit/impl/LargeProjectServiceImpl.java
  35. 184 0
      src/main/java/com/project/zcustom/service/unit/impl/LargeUnitServiceImpl.java
  36. 280 0
      src/main/java/com/project/zcustom/service/unit/impl/PlatBuildingServiceImpl.java
  37. 125 0
      src/main/resources/mapper/zcustom/unit/LargeCameraMapper.xml
  38. 130 0
      src/main/resources/mapper/zcustom/unit/LargeIssueMapper.xml
  39. 114 0
      src/main/resources/mapper/zcustom/unit/LargePlanMapper.xml
  40. 127 0
      src/main/resources/mapper/zcustom/unit/LargeProjectMapper.xml
  41. 152 0
      src/main/resources/mapper/zcustom/unit/LargeUnitMapper.xml
  42. 174 0
      src/main/resources/mapper/zcustom/unit/PlatBuildingMapper.xml

+ 92 - 0
src/main/java/com/project/zcustom/controller/build/PlatBuildOfficeController.java

@@ -0,0 +1,92 @@
+package com.project.zcustom.controller.build;
+
+import com.project.zcustom.controller.core.AjaxResult;
+import com.project.zcustom.controller.core.BaseController;
+import com.project.zcustom.service.unit.IPlatBuildingService;
+import lombok.RequiredArgsConstructor;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController
+@RequestMapping("/large/first")
+@RequiredArgsConstructor(onConstructor_ = @Autowired)
+public class PlatBuildOfficeController extends BaseController {
+
+    @Autowired
+    private IPlatBuildingService platBuildingService;
+
+    /**
+     * 近一月楼宇能耗信息
+     */
+    @GetMapping("/powerAndWaterMonth")
+    public AjaxResult getPowerAndWaterMonth() {
+        return AjaxResult.success("查询成功", platBuildingService.getPowerAndWaterMonth());
+    }
+
+    /**
+     * 空气概况
+     */
+    @GetMapping("/air")
+    public AjaxResult getAirCondition() {
+        return AjaxResult.success("查询成功", platBuildingService.getAirCondition());
+    }
+
+    /**
+     * 定额指标
+     */
+    @GetMapping("/getTarget")
+    public AjaxResult getTarget() {
+        return AjaxResult.success("查询成功", platBuildingService.getTarget());
+    }
+
+    /**
+     * 用电分项
+     */
+    @GetMapping("/useElectricity")
+    public AjaxResult useElectricity() {
+        return AjaxResult.success("查询成功", platBuildingService.useElectricity());
+    }
+
+    /**
+     * 绿电比例
+     */
+    @GetMapping("/greenElectricity")
+    public AjaxResult greenElectricity() {
+        return AjaxResult.success("查询成功", platBuildingService.greenElectricity());
+    }
+
+    /**
+     * 碳排放量月度变化趋势图
+     */
+    @GetMapping("/carbon")
+    public AjaxResult carbon() {
+        return AjaxResult.success("查询成功", platBuildingService.carbon());
+    }
+
+    /**
+     * 年度累计综合能粍
+     */
+    @GetMapping("/energyYear")
+    public AjaxResult energyYear() {
+        return AjaxResult.success("查询成功", platBuildingService.energyYear());
+    }
+
+    /**
+     * 年度累计综合电粍
+     */
+    @GetMapping("/powerYear")
+    public AjaxResult powerYear() {
+        return AjaxResult.success("查询成功", platBuildingService.powerYear());
+    }
+
+    /**
+     * 年度累计综合水粍
+     */
+    @GetMapping("/waterYear")
+    public AjaxResult waterYear() {
+        return AjaxResult.success("查询成功", platBuildingService.waterYear());
+    }
+
+}

+ 43 - 0
src/main/java/com/project/zcustom/controller/build/PlatBuildProtectController.java

@@ -0,0 +1,43 @@
+package com.project.zcustom.controller.build;
+
+import com.project.zcustom.controller.core.AjaxResult;
+import com.project.zcustom.controller.core.BaseController;
+import com.project.zcustom.service.unit.IPlatBuildingService;
+import lombok.RequiredArgsConstructor;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController
+@RequestMapping("/large/second")
+@RequiredArgsConstructor(onConstructor_ = @Autowired)
+public class PlatBuildProtectController extends BaseController {
+
+    @Autowired
+    private IPlatBuildingService platBuildingService;
+
+    /**
+     * 巡更次数统计(近6月)
+     */
+    @GetMapping("/frequency")
+    public AjaxResult frequency() {
+        return AjaxResult.success("查询成功", platBuildingService.frequency());
+    }
+
+    /**
+     * 巡更及时率
+     */
+    @GetMapping("/patrol")
+    public AjaxResult patrol() {
+        return AjaxResult.success("查询成功", platBuildingService.patrol());
+    }
+
+    /**
+     * 巡更点统计
+     */
+    @GetMapping("/patrolPoint")
+    public AjaxResult patrolPoint() {
+        return AjaxResult.success("查询成功", platBuildingService.patrolPoint());
+    }
+}

+ 68 - 0
src/main/java/com/project/zcustom/controller/engineering/PlatProjectCheckController.java

@@ -0,0 +1,68 @@
+package com.project.zcustom.controller.engineering;
+
+import com.project.zcustom.controller.core.AjaxResult;
+import com.project.zcustom.controller.core.BaseController;
+import com.project.zcustom.domain.addional.LargeIssue;
+import com.project.zcustom.service.unit.ILargeIssueService;
+import com.project.zcustom.service.unit.ILargeProjectService;
+import lombok.RequiredArgsConstructor;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+@RestController
+@RequestMapping("/large/three")
+@RequiredArgsConstructor(onConstructor_ = @Autowired)
+public class PlatProjectCheckController extends BaseController {
+
+    private final ILargeProjectService largeProjectService;
+
+    private final ILargeIssueService largeIssueService;
+
+    /**
+     * 问题数量
+     */
+    @GetMapping("/getIssueNum")
+    public AjaxResult getIssueNum() {
+        return AjaxResult.success("查询成功", largeIssueService.getIssueNum());
+    }
+
+    /**
+     * 已整改问题数量
+     */
+    @GetMapping("/getOverIssueNum")
+    public AjaxResult getOverIssueNum() {
+        return AjaxResult.success("查询成功", largeIssueService.getOverIssueNum());
+    }
+
+    /**
+     * 本周检查项目数量
+     */
+    @GetMapping("/getProjectNumThisWeek")
+    public AjaxResult getProjectNumThisWeek() {
+        return AjaxResult.success("查询成功", largeProjectService.getProjectNumThisWeek());
+    }
+
+    /**
+     * 近一周问题列表
+     */
+    @GetMapping("/getIssueListLastWeek")
+    public AjaxResult getIssueListLastWeek() {
+        return AjaxResult.success("查询成功", largeIssueService.getIssueListLastWeek());
+    }
+
+    /**
+     * 问题列表
+     * */
+    @GetMapping("/issueList")
+    public AjaxResult issueList(LargeIssue entity) {
+        return AjaxResult.success("查询成功", largeIssueService.selectList(entity));
+    }
+
+    /**
+     * 更改问题状态
+     * */
+    @PostMapping("changeIssueStatus")
+    public AjaxResult changeIssueStatus(@RequestBody LargeIssue entity) {
+        return toAjax(largeIssueService.updateById(entity));
+    }
+}

+ 49 - 0
src/main/java/com/project/zcustom/controller/engineering/PlatProjectMonitorController.java

@@ -0,0 +1,49 @@
+package com.project.zcustom.controller.engineering;
+
+import com.project.zcustom.controller.core.AjaxResult;
+import com.project.zcustom.controller.core.BaseController;
+import com.project.zcustom.service.unit.ILargeCameraService;
+import com.project.zcustom.service.unit.ILargeProjectService;
+import com.project.zcustom.service.unit.ILargeUnitService;
+import lombok.RequiredArgsConstructor;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController
+@RequestMapping("/large/two")
+@RequiredArgsConstructor(onConstructor_ = @Autowired)
+public class PlatProjectMonitorController extends BaseController {
+
+    private final ILargeUnitService largeUnitService;
+
+    private final ILargeProjectService largeProjectService;
+
+    private final ILargeCameraService largeCameraService;
+
+    /**
+     * 各单位已接入项目数量和已接入摄像头数量
+     */
+    @GetMapping("/getProjectCameraNumList")
+    public AjaxResult getProjectCameraNumList() {
+        return AjaxResult.success("查询成功", largeUnitService.getProjectCameraNumList());
+    }
+
+    /**
+     * 各项目已接入摄像头数量
+     */
+    @GetMapping("/getCameraNumList/{unitCode}")
+    public AjaxResult getCameraNumList(@PathVariable String unitCode) {
+        return AjaxResult.success("查询成功", largeProjectService.getCameraNumList(unitCode));
+    }
+
+    /**
+     * 某项目的所有摄像头信息
+     */
+    @GetMapping("/getCameraList/{projectId}")
+    public AjaxResult getCameraList(@PathVariable Long projectId) {
+        return AjaxResult.success("查询成功", largeCameraService.getCameraList(projectId));
+    }
+}

+ 35 - 0
src/main/java/com/project/zcustom/controller/engineering/PlatProjectProductionController.java

@@ -0,0 +1,35 @@
+package com.project.zcustom.controller.engineering;
+
+import com.project.zcustom.controller.core.AjaxResult;
+import com.project.zcustom.controller.core.BaseController;
+import com.project.zcustom.service.unit.ILargeProjectService;
+import lombok.RequiredArgsConstructor;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController
+@RequestMapping("/large/one")
+@RequiredArgsConstructor(onConstructor_ = @Autowired)
+public class PlatProjectProductionController extends BaseController {
+
+    private final ILargeProjectService largeProjectService;
+
+    /**
+     * 已接入项目数量(在建)
+     */
+    @GetMapping("/getProjectNumX/{subdivision}")
+    public AjaxResult getProjectNumX(@PathVariable String subdivision) {
+        return AjaxResult.success("查询成功", largeProjectService.getProjectNumX(subdivision));
+    }
+
+    /**
+     * 已接入项目数量(施工)
+     */
+    @GetMapping("/getProjectNumY/{subdivision}")
+    public AjaxResult getProjectNumY(@PathVariable String subdivision) {
+        return AjaxResult.success("查询成功", largeProjectService.getProjectNumY(subdivision));
+    }
+}

+ 2 - 2
src/main/java/com/project/zcustom/controller/basics/PlatBasicsController.java → src/main/java/com/project/zcustom/controller/service/PlatBasicsController.java

@@ -1,4 +1,4 @@
-package com.project.zcustom.controller.basics;
+package com.project.zcustom.controller.service;
 
 import com.project.zcustom.controller.core.AjaxResult;
 import com.project.zcustom.controller.core.BaseController;
@@ -21,7 +21,7 @@ import java.util.List;
  * @date 2024-10-21
  */
 @RestController
-@RequestMapping("/basics")
+@RequestMapping("/large/basics")
 @RequiredArgsConstructor(onConstructor_ = @Autowired)
 public class PlatBasicsController extends BaseController {
 

+ 1 - 1
src/main/java/com/project/zcustom/controller/build/PlatBuildController.java → src/main/java/com/project/zcustom/controller/service/PlatBuildController.java

@@ -1,4 +1,4 @@
-package com.project.zcustom.controller.build;
+package com.project.zcustom.controller.service;
 
 import com.project.zcustom.controller.core.AjaxResult;
 import com.project.zcustom.controller.core.BaseController;

+ 2 - 2
src/main/java/com/project/zcustom/controller/employee/PlatEmployeeController.java → src/main/java/com/project/zcustom/controller/service/PlatEmployeeController.java

@@ -1,4 +1,4 @@
-package com.project.zcustom.controller.employee;
+package com.project.zcustom.controller.service;
 
 import com.project.zcustom.controller.core.AjaxResult;
 import com.project.zcustom.controller.core.BaseController;
@@ -16,7 +16,7 @@ import org.springframework.web.bind.annotation.*;
  * @date 2024-10-21
  */
 @RestController
-@RequestMapping("/employee")
+@RequestMapping("/large/employee")
 @RequiredArgsConstructor(onConstructor_ = @Autowired)
 public class PlatEmployeeController extends BaseController {
 

+ 2 - 2
src/main/java/com/project/zcustom/controller/employee/PlatEmployeeHealthController.java → src/main/java/com/project/zcustom/controller/service/PlatEmployeeHealthController.java

@@ -1,4 +1,4 @@
-package com.project.zcustom.controller.employee;
+package com.project.zcustom.controller.service;
 
 import com.project.zcustom.controller.core.AjaxResult;
 import com.project.zcustom.controller.core.BaseController;
@@ -14,7 +14,7 @@ import org.springframework.web.bind.annotation.*;
  * @date 2024-10-21
  */
 @RestController
-@RequestMapping("/health")
+@RequestMapping("/large/health")
 @RequiredArgsConstructor(onConstructor_ = @Autowired)
 public class PlatEmployeeHealthController extends BaseController {
 

+ 2 - 2
src/main/java/com/project/zcustom/controller/smart/PlatGreenSmartController.java → src/main/java/com/project/zcustom/controller/service/PlatGreenSmartController.java

@@ -1,4 +1,4 @@
-package com.project.zcustom.controller.smart;
+package com.project.zcustom.controller.service;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.project.zcustom.controller.core.AjaxResult;
@@ -23,7 +23,7 @@ import java.util.Objects;
  * @date 2024-10-21
  */
 @RestController
-@RequestMapping("/smart")
+@RequestMapping("/large/smart")
 @RequiredArgsConstructor(onConstructor_ = @Autowired)
 public class PlatGreenSmartController extends BaseController {
 

+ 2 - 2
src/main/java/com/project/zcustom/controller/post/PlatPostStationController.java → src/main/java/com/project/zcustom/controller/service/PlatPostStationController.java

@@ -1,4 +1,4 @@
-package com.project.zcustom.controller.post;
+package com.project.zcustom.controller.service;
 
 import com.project.zcustom.controller.core.AjaxResult;
 import com.project.zcustom.controller.core.BaseController;
@@ -20,7 +20,7 @@ import java.util.List;
  * @date 2024-10-21
  */
 @RestController
-@RequestMapping("/post")
+@RequestMapping("/large/post")
 @RequiredArgsConstructor(onConstructor_ = @Autowired)
 public class PlatPostStationController extends BaseController {
 

+ 2 - 2
src/main/java/com/project/zcustom/controller/property/PlatPropertyController.java → src/main/java/com/project/zcustom/controller/service/PlatPropertyController.java

@@ -1,4 +1,4 @@
-package com.project.zcustom.controller.property;
+package com.project.zcustom.controller.service;
 
 import com.project.zcustom.controller.core.AjaxResult;
 import com.project.zcustom.controller.core.BaseController;
@@ -18,7 +18,7 @@ import org.springframework.web.bind.annotation.RestController;
  * @date 2024-10-21
  */
 @RestController
-@RequestMapping("/property")
+@RequestMapping("/large/property")
 @RequiredArgsConstructor(onConstructor_ = @Autowired)
 public class PlatPropertyController extends BaseController {
 

+ 49 - 0
src/main/java/com/project/zcustom/domain/addional/LargeBuilding.java

@@ -0,0 +1,49 @@
+package com.project.zcustom.domain.addional;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonInclude;
+
+import com.project.zcustom.controller.core.CustomBaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+import lombok.experimental.Accessors;
+
+@Data
+@Accessors(chain = true)
+@ToString(callSuper = true)
+@EqualsAndHashCode(callSuper = false)
+@TableName("large_building")
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class LargeBuilding extends CustomBaseEntity {
+    /**
+     * 楼宇数据id
+     */
+    @TableId(value = "楼宇数据id")
+    private Long id;
+
+    private String jsonFrequency;
+
+    private String jsonPatrol;
+
+    private String jsonPatrolPoint;
+
+    private String jsonPowerWaterMonth;
+
+    private String jsonAir;
+
+    private String jsonTarget;
+
+    private String jsonUseElectricity;
+
+    private String jsonGreenElectricity;
+
+    private String jsonCarbon;
+
+    private String jsonEnergyYear;
+
+    private String jsonPowerYear;
+
+    private String jsonWaterYear;
+}

+ 62 - 0
src/main/java/com/project/zcustom/domain/addional/LargeCamera.java

@@ -0,0 +1,62 @@
+package com.project.zcustom.domain.addional;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.project.zcustom.controller.core.CustomBaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+import lombok.experimental.Accessors;
+
+/**
+ * 摄像头对象 large_camera
+ *
+ * @author change
+ * @date 2024-12-30
+ */
+@Data
+@Accessors(chain = true)
+@ToString(callSuper = true)
+@EqualsAndHashCode(callSuper = false)
+@TableName("large_camera")
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class LargeCamera extends CustomBaseEntity {
+
+    /**
+     * 摄像头id
+     */
+    @TableId(value = "id")
+    private Long id;
+
+    /**
+     * 摄像头名称
+     */
+    private String cameraName;
+
+    /**
+     * 所属项目id
+     */
+    private Long projectId;
+
+    /**
+     * 摄像头类型(0代表'',1代表'', 2代表'')
+     */
+    private String type;
+
+    /**
+     * 摄像头状态(0代表启用  2代表禁用)
+     */
+    private String status;
+
+    /**
+     * 在线标志(0代表在线 2代表不在线)
+     */
+    private String onlineFlag;
+
+    /**
+     * 接入标志(0代表接入 2代表未接入)
+     */
+    private String connectFlag;
+
+}

+ 49 - 0
src/main/java/com/project/zcustom/domain/addional/LargeIssue.java

@@ -0,0 +1,49 @@
+package com.project.zcustom.domain.addional;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.project.zcustom.controller.core.CustomBaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+import lombok.experimental.Accessors;
+
+/**
+ * 上报问题对象 large_issue
+ *
+ * @author change
+ * @date 2024-12-30
+ */
+@Data
+@Accessors(chain = true)
+@ToString(callSuper = true)
+@EqualsAndHashCode(callSuper = false)
+@TableName("large_issue")
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class LargeIssue extends CustomBaseEntity {
+
+    /**
+     * 问题id
+     */
+    @TableId(value = "id")
+    private Long id;
+
+    /**
+     * 问题描述
+     */
+    private String description;
+
+    /**
+     * 所属项目id
+     */
+    private Integer projectId;
+
+    private String projectName;
+
+    /**
+     * 问题状态(0代表已解决  2代表待解决)
+     */
+    private String status;
+
+}

+ 67 - 0
src/main/java/com/project/zcustom/domain/addional/LargePlan.java

@@ -0,0 +1,67 @@
+package com.project.zcustom.domain.addional;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.project.zcustom.controller.core.CustomBaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+import lombok.experimental.Accessors;
+
+import java.util.Date;
+
+/**
+ * 工程计划对象 large_plan
+ *
+ * @author change
+ * @date 2024-12-30
+ */
+@Data
+@Accessors(chain = true)
+@ToString(callSuper = true)
+@EqualsAndHashCode(callSuper = false)
+@TableName("large_plan")
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class LargePlan extends CustomBaseEntity {
+
+    /**
+     * 计划id
+     */
+    @TableId(value = "id")
+    private Long id;
+
+    /**
+     * 所属项目id
+     */
+    private Long projectId;
+
+    /**
+     * 计划类型(0 检查   1施工)
+     */
+    private String type;
+
+    /**
+     * 负责人
+     */
+    private String head;
+
+    /**
+     * 具体内容
+     */
+    private String content;
+
+    /**
+     * 开始日期
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date startTime;
+
+    /**
+     * 结束日期
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date endTime;
+
+}

+ 56 - 0
src/main/java/com/project/zcustom/domain/addional/LargeProject.java

@@ -0,0 +1,56 @@
+package com.project.zcustom.domain.addional;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.project.zcustom.controller.core.CustomBaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+import lombok.experimental.Accessors;
+
+/**
+ * 工程项目对象 large_project
+ *
+ * @author change
+ * @date 2024-12-30
+ */
+@Data
+@Accessors(chain = true)
+@ToString(callSuper = true)
+@EqualsAndHashCode(callSuper = false)
+@TableName("large_project")
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class LargeProject extends CustomBaseEntity {
+
+    /**
+     * 项目id
+     */
+    @TableId(value = "id")
+    private Long id;
+
+    /**
+     * 项目名称
+     */
+    private String projectName;
+
+    /**
+     * 所属单位id
+     */
+    private String unitCode;
+
+    /**
+     * 项目类型
+     */
+    private String type;
+
+    /**
+     * 接入标志(0代表接入 2代表未接入)
+     */
+    private String connectFlag;
+
+    @TableField(exist = false)
+    private Long cameraNum;
+
+}

+ 57 - 0
src/main/java/com/project/zcustom/domain/addional/LargeUnit.java

@@ -0,0 +1,57 @@
+package com.project.zcustom.domain.addional;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.project.zcustom.controller.core.CustomBaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+import lombok.experimental.Accessors;
+
+/**
+ * 地区编码对象 large_plat_app_org
+ *
+ * @author change
+ * @date 2024-12-30
+ */
+@Data
+@Accessors(chain = true)
+@ToString(callSuper = true)
+@EqualsAndHashCode(callSuper = false)
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class LargeUnit extends CustomBaseEntity {
+
+    /**
+     * $column.columnComment
+     */
+    @TableId(value = "id")
+    private Long id;
+
+    /**
+     * 地区编码
+     */
+    private String unitCode;
+
+    private String parentUnitCode;
+
+    /**
+     * 地区名称
+     */
+    private String unitName;
+
+    /**
+     * 接入标志
+     */
+    private String connectFlag;
+
+    @TableField(exist = false)
+    private Long projectNum;
+
+    @TableField(exist = false)
+    private Long cameraNum;
+
+    @TableField(exist = false)
+    private Long onlineCameraNum;
+
+}

+ 78 - 0
src/main/java/com/project/zcustom/mapper/unit/LargeCameraMapper.java

@@ -0,0 +1,78 @@
+package com.project.zcustom.mapper.unit;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.toolkit.Constants;
+import com.project.zcustom.domain.addional.LargeCamera;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+
+/**
+ * 摄像头Mapper接口
+ *
+ * @author change
+ * @date 2024-12-30
+ */
+public interface LargeCameraMapper extends BaseMapper<LargeCamera>
+{
+    /**
+     * 查询摄像头
+     *
+     * @param id 摄像头主键
+     * @return 摄像头
+     */
+    public LargeCamera selectLargeCameraById(Long id);
+
+    /**
+     * 查询摄像头列表
+     *
+     * @param largeCamera 摄像头
+     * @return 摄像头集合
+     */
+    public List<LargeCamera> selectLargeCameraList(LargeCamera largeCamera);
+
+    /**
+     * 新增摄像头
+     *
+     * @param largeCamera 摄像头
+     * @return 结果
+     */
+    public int insertLargeCamera(LargeCamera largeCamera);
+
+    /**
+     * 修改摄像头
+     *
+     * @param largeCamera 摄像头
+     * @return 结果
+     */
+    public int updateLargeCamera(LargeCamera largeCamera);
+
+    /**
+     * 删除摄像头
+     *
+     * @param id 摄像头主键
+     * @return 结果
+     */
+    public int deleteLargeCameraById(Long id);
+
+    /**
+     * 批量删除摄像头
+     *
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteLargeCameraByIds(Long[] ids);
+
+    /**
+    * 真删接口
+    */
+    Integer reallyDeleteByWrapper(@Param(Constants.WRAPPER) LambdaQueryWrapper<LargeCamera> deleteWrapper);
+
+    public List<LargeCamera> getCameraList(Long projectId);
+
+    public int getCameraNum();
+    public List<LargeCamera> getConnectCameraNumByProject(Long projectId);
+    public int getConnectOnlineCameraNum();
+}

+ 78 - 0
src/main/java/com/project/zcustom/mapper/unit/LargeIssueMapper.java

@@ -0,0 +1,78 @@
+package com.project.zcustom.mapper.unit;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.toolkit.Constants;
+import com.project.zcustom.domain.addional.LargeIssue;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+
+/**
+ * 上报问题Mapper接口
+ *
+ * @author change
+ * @date 2024-12-30
+ */
+public interface LargeIssueMapper extends BaseMapper<LargeIssue>
+{
+    /**
+     * 查询上报问题
+     *
+     * @param id 上报问题主键
+     * @return 上报问题
+     */
+    public LargeIssue selectLargeIssueById(Long id);
+
+    /**
+     * 查询上报问题列表
+     *
+     * @param largeIssue 上报问题
+     * @return 上报问题集合
+     */
+    public List<LargeIssue> selectLargeIssueList(LargeIssue largeIssue);
+
+    /**
+     * 新增上报问题
+     *
+     * @param largeIssue 上报问题
+     * @return 结果
+     */
+    public int insertLargeIssue(LargeIssue largeIssue);
+
+    /**
+     * 修改上报问题
+     *
+     * @param largeIssue 上报问题
+     * @return 结果
+     */
+    public int updateLargeIssue(LargeIssue largeIssue);
+
+    /**
+     * 删除上报问题
+     *
+     * @param id 上报问题主键
+     * @return 结果
+     */
+    public int deleteLargeIssueById(Long id);
+
+    /**
+     * 批量删除上报问题
+     *
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteLargeIssueByIds(Long[] ids);
+
+    /**
+    * 真删接口
+    */
+    Integer reallyDeleteByWrapper(@Param(Constants.WRAPPER) LambdaQueryWrapper<LargeIssue> deleteWrapper);
+
+    public int getIssueNum();
+
+    public int getOverIssueNum();
+
+    public List<LargeIssue> getIssueListLastWeek();
+}

+ 75 - 0
src/main/java/com/project/zcustom/mapper/unit/LargePlanMapper.java

@@ -0,0 +1,75 @@
+package com.project.zcustom.mapper.unit;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.toolkit.Constants;
+import com.project.zcustom.domain.addional.LargePlan;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.Date;
+import java.util.List;
+
+
+/**
+ * 工程计划Mapper接口
+ *
+ * @author change
+ * @date 2024-12-30
+ */
+public interface LargePlanMapper extends BaseMapper<LargePlan>
+{
+    /**
+     * 查询工程计划
+     *
+     * @param id 工程计划主键
+     * @return 工程计划
+     */
+    public LargePlan selectLargePlanById(Long id);
+
+    /**
+     * 查询工程计划列表
+     *
+     * @param largePlan 工程计划
+     * @return 工程计划集合
+     */
+    public List<LargePlan> selectLargePlanList(LargePlan largePlan);
+
+    /**
+     * 新增工程计划
+     *
+     * @param largePlan 工程计划
+     * @return 结果
+     */
+    public int insertLargePlan(LargePlan largePlan);
+
+    /**
+     * 修改工程计划
+     *
+     * @param largePlan 工程计划
+     * @return 结果
+     */
+    public int updateLargePlan(LargePlan largePlan);
+
+    /**
+     * 删除工程计划
+     *
+     * @param id 工程计划主键
+     * @return 结果
+     */
+    public int deleteLargePlanById(Long id);
+
+    /**
+     * 批量删除工程计划
+     *
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteLargePlanByIds(Long[] ids);
+
+    /**
+    * 真删接口
+    */
+    Integer reallyDeleteByWrapper(@Param(Constants.WRAPPER) LambdaQueryWrapper<LargePlan> deleteWrapper);
+
+    public int getCheckProjectNum(Date startDate, Date endDate);
+}

+ 73 - 0
src/main/java/com/project/zcustom/mapper/unit/LargeProjectMapper.java

@@ -0,0 +1,73 @@
+package com.project.zcustom.mapper.unit;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.toolkit.Constants;
+import com.project.zcustom.domain.addional.LargeProject;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+
+/**
+ * 工程项目Mapper接口
+ *
+ * @author change
+ * @date 2024-12-30
+ */
+public interface LargeProjectMapper extends BaseMapper<LargeProject>
+{
+
+    /**
+     * 查询工程项目列表
+     *
+     * @param largeProject 工程项目
+     * @return 工程项目集合
+     */
+    public List<LargeProject> selectLargeProjectList(LargeProject largeProject);
+
+    /**
+     * 新增工程项目
+     *
+     * @param largeProject 工程项目
+     * @return 结果
+     */
+    public int insertLargeProject(LargeProject largeProject);
+
+    /**
+     * 修改工程项目
+     *
+     * @param largeProject 工程项目
+     * @return 结果
+     */
+    public int updateLargeProject(LargeProject largeProject);
+
+    /**
+     * 删除工程项目
+     *
+     * @param id 工程项目主键
+     * @return 结果
+     */
+    public int deleteLargeProjectById(Long id);
+
+    /**
+     * 批量删除工程项目
+     *
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteLargeProjectByIds(Long[] ids);
+
+    /**
+    * 真删接口
+    */
+    Integer reallyDeleteByWrapper(@Param(Constants.WRAPPER) LambdaQueryWrapper<LargeProject> deleteWrapper);
+
+    public int getProjectNumX(String subdivision);
+
+    public int getProjectNumY(String subdivision);
+
+    public List<LargeProject> getCameraNumList(String unitCode);
+
+    public int getProjectNumThisWeek();
+}

+ 80 - 0
src/main/java/com/project/zcustom/mapper/unit/LargeUnitMapper.java

@@ -0,0 +1,80 @@
+package com.project.zcustom.mapper.unit;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.toolkit.Constants;
+import com.project.zcustom.domain.addional.LargeUnit;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+
+/**
+ * 地区编码Mapper接口
+ *
+ * @author change
+ * @date 2024-12-30
+ */
+public interface LargeUnitMapper extends BaseMapper<LargeUnit>
+{
+    /**
+     * 查询地区编码
+     *
+     * @param id 地区编码主键
+     * @return 地区编码
+     */
+    public LargeUnit selectLargeUnitById(Long id);
+
+    /**
+     * 查询地区编码列表
+     *
+     * @param largeUnit 地区编码
+     * @return 地区编码集合
+     */
+    public List<LargeUnit> selectLargeUnitList(LargeUnit largeUnit);
+
+    /**
+     * 新增地区编码
+     *
+     * @param largeUnit 地区编码
+     * @return 结果
+     */
+    public int insertLargeUnit(LargeUnit largeUnit);
+
+    /**
+     * 修改地区编码
+     *
+     * @param largeUnit 地区编码
+     * @return 结果
+     */
+    public int updateLargeUnit(LargeUnit largeUnit);
+
+    /**
+     * 删除地区编码
+     *
+     * @param id 地区编码主键
+     * @return 结果
+     */
+    public int deleteLargeUnitById(Long id);
+
+    /**
+     * 批量删除地区编码
+     *
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteLargeUnitByIds(Long[] ids);
+
+    /**
+    * 真删接口
+    */
+    Integer reallyDeleteByWrapper(@Param(Constants.WRAPPER) LambdaQueryWrapper<LargeUnit> deleteWrapper);
+
+    public List<LargeUnit> getProjectCameraNumList();
+
+    public int getConnectUnitNum();
+
+    public List<LargeUnit> getAllCameraCondition();
+
+    public LargeUnit getCameraConditionByAppOrg(String unitCode);
+}

+ 60 - 0
src/main/java/com/project/zcustom/mapper/unit/PlatBuildingMapper.java

@@ -0,0 +1,60 @@
+package com.project.zcustom.mapper.unit;
+
+import com.project.zcustom.domain.addional.LargeBuilding;
+
+public interface PlatBuildingMapper {
+    public int getCount();
+
+    public String getPowerAndWaterMonth();
+
+    public String getAirCondition();
+
+    public String getTarget();
+
+    public String useElectricity();
+
+    public String greenElectricity();
+
+    public String carbon();
+
+    public String energyYear();
+
+    public String powerYear();
+
+    public String waterYear();
+
+    public String frequency();
+
+    public String patrol();
+
+    public String patrolPoint();
+
+
+
+    public int updatePowerAndWaterMonth(String res);
+
+    public int updateAirCondition(String res);
+
+    public int updateTarget(String res);
+
+    public int updateUseElectricity(String res);
+
+    public int updateGreenElectricity(String res);
+
+    public int updateCarbon(String res);
+
+    public int updateEnergyYear(String res);
+
+    public int updatePowerYear(String res);
+
+    public int updateWaterYear(String res);
+
+    public int updateFrequency(String res);
+
+    public int updatePatrol(String res);
+
+    public int updatePatrolPoint(String res);
+
+    public int updateBuilding(LargeBuilding largeBuilding);
+    public int insertBuilding(LargeBuilding largeBuilding);
+}

+ 96 - 0
src/main/java/com/project/zcustom/service/unit/ILargeCameraService.java

@@ -0,0 +1,96 @@
+package com.project.zcustom.service.unit;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.project.zcustom.controller.core.PageParamVo;
+import com.project.zcustom.domain.addional.LargeCamera;
+
+import java.util.List;
+
+/**
+ * 摄像头Service接口
+ *
+ * @author change
+ * @date 2024-12-30
+ */
+public interface ILargeCameraService extends IService<LargeCamera> {
+
+    /**
+     * 分页查询摄像头列表
+     *
+     * @param largeCamera 摄像头
+     * @return 摄像头集合
+     */
+    public IPage<LargeCamera> pagingLargeCameraList(LargeCamera largeCamera);
+
+    /**
+     * 分页查询摄像头列表
+     *
+     * @param lqw
+     * @return 摄像头集合
+     */
+    public IPage<LargeCamera> pagingLargeCameraList(PageParamVo pageParamVo, LambdaQueryWrapper<LargeCamera> lqw);
+
+    /**
+     * 查询摄像头列表
+     *
+     * @param largeCamera 摄像头
+     * @return 摄像头集合
+     */
+    public List<LargeCamera> selectLargeCameraList(LargeCamera largeCamera);
+
+    /**
+     * 查询摄像头列表
+     *
+     * @param largeCamera 摄像头
+     * @return 摄像头集合
+     */
+    public List<LargeCamera> selectLargeCameraList(LargeCamera largeCamera,Long limitNum);
+
+    /**
+     * 根据指定字段查询信息
+     *
+     * @param field 字段名称
+     * @param filedValue 字段值
+     * @return 摄像头
+     */
+    public LargeCamera getLargeCameraByField(String field, String filedValue);
+
+    /**
+     * 根据指定字段查询信息列表
+     *
+     * @param field 字段名称
+     * @param filedValue 字段值
+     * @return 摄像头
+     */
+    public List<LargeCamera> selectLargeCameraListByField(String field, String filedValue);
+
+    /**
+     * 根据指定字段查询信息列表
+     *
+     * @param field 字段名称
+     * @param filedValue 字段值
+     * @return 摄像头
+     */
+    public List<LargeCamera> selectLargeCameraListByField(String field, String filedValue,Long limitNum);
+
+    /**
+     *判断指定字段值是否存在
+     *
+     * @param field 字段名称
+     * @param filedValue 字段值
+     */
+    public void checkFieldExist(String field, String filedValue,String tips,Long id);
+
+    /**
+     *  真删接口
+     */
+    public void reallyDeleteLargeCamera(LambdaQueryWrapper<LargeCamera> lqw);
+
+    public List<LargeCamera> getCameraList(Long projectId);
+
+    public int getCameraNum();
+    public List<LargeCamera> getConnectCameraNumByProject(Long projectId);
+    public int getConnectOnlineCameraNum();
+}

+ 99 - 0
src/main/java/com/project/zcustom/service/unit/ILargeIssueService.java

@@ -0,0 +1,99 @@
+package com.project.zcustom.service.unit;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.project.zcustom.controller.core.PageParamVo;
+import com.project.zcustom.domain.addional.LargeIssue;
+
+import java.util.List;
+
+/**
+ * 上报问题Service接口
+ *
+ * @author change
+ * @date 2024-12-30
+ */
+public interface ILargeIssueService extends IService<LargeIssue> {
+
+    /**
+     * 分页查询上报问题列表
+     *
+     * @param largeIssue 上报问题
+     * @return 上报问题集合
+     */
+    public IPage<LargeIssue> pagingLargeIssueList(LargeIssue largeIssue);
+
+    /**
+     * 分页查询上报问题列表
+     *
+     * @param lqw
+     * @return 上报问题集合
+     */
+    public IPage<LargeIssue> pagingLargeIssueList(PageParamVo pageParamVo, LambdaQueryWrapper<LargeIssue> lqw);
+
+    /**
+     * 查询上报问题列表
+     *
+     * @param largeIssue 上报问题
+     * @return 上报问题集合
+     */
+    public List<LargeIssue> selectLargeIssueList(LargeIssue largeIssue);
+
+    /**
+     * 查询上报问题列表
+     *
+     * @param largeIssue 上报问题
+     * @return 上报问题集合
+     */
+    public List<LargeIssue> selectLargeIssueList(LargeIssue largeIssue,Long limitNum);
+
+    /**
+     * 根据指定字段查询信息
+     *
+     * @param field 字段名称
+     * @param filedValue 字段值
+     * @return 上报问题
+     */
+    public LargeIssue getLargeIssueByField(String field, String filedValue);
+
+    /**
+     * 根据指定字段查询信息列表
+     *
+     * @param field 字段名称
+     * @param filedValue 字段值
+     * @return 上报问题
+     */
+    public List<LargeIssue> selectLargeIssueListByField(String field, String filedValue);
+
+    /**
+     * 根据指定字段查询信息列表
+     *
+     * @param field 字段名称
+     * @param filedValue 字段值
+     * @return 上报问题
+     */
+    public List<LargeIssue> selectLargeIssueListByField(String field, String filedValue,Long limitNum);
+
+    /**
+     *判断指定字段值是否存在
+     *
+     * @param field 字段名称
+     * @param filedValue 字段值
+     */
+    public void checkFieldExist(String field, String filedValue,String tips,Long id);
+
+    /**
+     *  真删接口
+     */
+    public void reallyDeleteLargeIssue(LambdaQueryWrapper<LargeIssue> lqw);
+
+    public int getIssueNum();
+
+    public int getOverIssueNum();
+
+    public List<LargeIssue> getIssueListLastWeek();
+
+    public List<LargeIssue> selectList(LargeIssue largeIssue);
+    public LargeIssue selectLargeIssueById(Long id);
+}

+ 93 - 0
src/main/java/com/project/zcustom/service/unit/ILargePlanService.java

@@ -0,0 +1,93 @@
+package com.project.zcustom.service.unit;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.project.zcustom.controller.core.PageParamVo;
+import com.project.zcustom.domain.addional.LargePlan;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 工程计划Service接口
+ *
+ * @author change
+ * @date 2024-12-30
+ */
+public interface ILargePlanService extends IService<LargePlan> {
+
+    /**
+     * 分页查询工程计划列表
+     *
+     * @param largePlan 工程计划
+     * @return 工程计划集合
+     */
+    public IPage<LargePlan> pagingLargePlanList(LargePlan largePlan);
+
+    /**
+     * 分页查询工程计划列表
+     *
+     * @param lqw
+     * @return 工程计划集合
+     */
+    public IPage<LargePlan> pagingLargePlanList(PageParamVo pageParamVo, LambdaQueryWrapper<LargePlan> lqw);
+
+    /**
+     * 查询工程计划列表
+     *
+     * @param largePlan 工程计划
+     * @return 工程计划集合
+     */
+    public List<LargePlan> selectLargePlanList(LargePlan largePlan);
+
+    /**
+     * 查询工程计划列表
+     *
+     * @param largePlan 工程计划
+     * @return 工程计划集合
+     */
+    public List<LargePlan> selectLargePlanList(LargePlan largePlan,Long limitNum);
+
+    /**
+     * 根据指定字段查询信息
+     *
+     * @param field 字段名称
+     * @param filedValue 字段值
+     * @return 工程计划
+     */
+    public LargePlan getLargePlanByField(String field, String filedValue);
+
+    /**
+     * 根据指定字段查询信息列表
+     *
+     * @param field 字段名称
+     * @param filedValue 字段值
+     * @return 工程计划
+     */
+    public List<LargePlan> selectLargePlanListByField(String field, String filedValue);
+
+    /**
+     * 根据指定字段查询信息列表
+     *
+     * @param field 字段名称
+     * @param filedValue 字段值
+     * @return 工程计划
+     */
+    public List<LargePlan> selectLargePlanListByField(String field, String filedValue,Long limitNum);
+
+    /**
+     *判断指定字段值是否存在
+     *
+     * @param field 字段名称
+     * @param filedValue 字段值
+     */
+    public void checkFieldExist(String field, String filedValue,String tips,Long id);
+
+    /**
+     *  真删接口
+     */
+    public void reallyDeleteLargePlan(LambdaQueryWrapper<LargePlan> lqw);
+
+    public int getCheckProjectNum(Date startDate, Date endDate);
+}

+ 98 - 0
src/main/java/com/project/zcustom/service/unit/ILargeProjectService.java

@@ -0,0 +1,98 @@
+package com.project.zcustom.service.unit;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.project.zcustom.controller.core.PageParamVo;
+import com.project.zcustom.domain.addional.LargeProject;
+
+import java.util.List;
+
+/**
+ * 工程项目Service接口
+ *
+ * @author change
+ * @date 2024-12-30
+ */
+public interface ILargeProjectService extends IService<LargeProject> {
+
+    /**
+     * 分页查询工程项目列表
+     *
+     * @param largeProject 工程项目
+     * @return 工程项目集合
+     */
+    public IPage<LargeProject> pagingLargeProjectList(LargeProject largeProject);
+
+    /**
+     * 分页查询工程项目列表
+     *
+     * @param lqw
+     * @return 工程项目集合
+     */
+    public IPage<LargeProject> pagingLargeProjectList(PageParamVo pageParamVo, LambdaQueryWrapper<LargeProject> lqw);
+
+    /**
+     * 查询工程项目列表
+     *
+     * @param largeProject 工程项目
+     * @return 工程项目集合
+     */
+    public List<LargeProject> selectLargeProjectList(LargeProject largeProject);
+
+    /**
+     * 查询工程项目列表
+     *
+     * @param largeProject 工程项目
+     * @return 工程项目集合
+     */
+    public List<LargeProject> selectLargeProjectList(LargeProject largeProject,Long limitNum);
+
+    /**
+     * 根据指定字段查询信息
+     *
+     * @param field 字段名称
+     * @param filedValue 字段值
+     * @return 工程项目
+     */
+    public LargeProject getLargeProjectByField(String field, String filedValue);
+
+    /**
+     * 根据指定字段查询信息列表
+     *
+     * @param field 字段名称
+     * @param filedValue 字段值
+     * @return 工程项目
+     */
+    public List<LargeProject> selectLargeProjectListByField(String field, String filedValue);
+
+    /**
+     * 根据指定字段查询信息列表
+     *
+     * @param field 字段名称
+     * @param filedValue 字段值
+     * @return 工程项目
+     */
+    public List<LargeProject> selectLargeProjectListByField(String field, String filedValue,Long limitNum);
+
+    /**
+     *判断指定字段值是否存在
+     *
+     * @param field 字段名称
+     * @param filedValue 字段值
+     */
+    public void checkFieldExist(String field, String filedValue,String tips,Long id);
+
+    /**
+     *  真删接口
+     */
+    public void reallyDeleteLargeProject(LambdaQueryWrapper<LargeProject> lqw);
+
+    public int getProjectNumX(String subdivision);
+
+    public int getProjectNumY(String subdivision);
+
+    public List<LargeProject> getCameraNumList(String unitCode);
+
+    public int getProjectNumThisWeek();
+}

+ 98 - 0
src/main/java/com/project/zcustom/service/unit/ILargeUnitService.java

@@ -0,0 +1,98 @@
+package com.project.zcustom.service.unit;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.project.zcustom.controller.core.PageParamVo;
+import com.project.zcustom.domain.addional.LargeUnit;
+
+import java.util.List;
+
+/**
+ * 地区编码Service接口
+ *
+ * @author change
+ * @date 2024-12-30
+ */
+public interface ILargeUnitService extends IService<LargeUnit> {
+
+    /**
+     * 分页查询地区编码列表
+     *
+     * @param largeUnit 地区编码
+     * @return 地区编码集合
+     */
+    public IPage<LargeUnit> pagingLargeUnitList(LargeUnit largeUnit);
+
+    /**
+     * 分页查询地区编码列表
+     *
+     * @param lqw
+     * @return 地区编码集合
+     */
+    public IPage<LargeUnit> pagingLargeUnitList(PageParamVo pageParamVo, LambdaQueryWrapper<LargeUnit> lqw);
+
+    /**
+     * 查询地区编码列表
+     *
+     * @param largeUnit 地区编码
+     * @return 地区编码集合
+     */
+    public List<LargeUnit> selectLargeUnitList(LargeUnit largeUnit);
+
+    /**
+     * 查询地区编码列表
+     *
+     * @param largeUnit 地区编码
+     * @return 地区编码集合
+     */
+    public List<LargeUnit> selectLargeUnitList(LargeUnit largeUnit,Long limitNum);
+
+    /**
+     * 根据指定字段查询信息
+     *
+     * @param field 字段名称
+     * @param filedValue 字段值
+     * @return 地区编码
+     */
+    public LargeUnit getLargeUnitByField(String field, String filedValue);
+
+    /**
+     * 根据指定字段查询信息列表
+     *
+     * @param field 字段名称
+     * @param filedValue 字段值
+     * @return 地区编码
+     */
+    public List<LargeUnit> selectLargeUnitListByField(String field, String filedValue);
+
+    /**
+     * 根据指定字段查询信息列表
+     *
+     * @param field 字段名称
+     * @param filedValue 字段值
+     * @return 地区编码
+     */
+    public List<LargeUnit> selectLargeUnitListByField(String field, String filedValue,Long limitNum);
+
+    /**
+     *判断指定字段值是否存在
+     *
+     * @param field 字段名称
+     * @param filedValue 字段值
+     */
+    public void checkFieldExist(String field, String filedValue,String tips,Long id);
+
+    /**
+     *  真删接口
+     */
+    public void reallyDeleteLargeUnit(LambdaQueryWrapper<LargeUnit> lqw);
+
+    public List<LargeUnit> getProjectCameraNumList();
+
+    public int getConnectUnitNum();
+
+    public List<LargeUnit> getAllCameraCondition();
+
+    public LargeUnit getCameraConditionByAppOrg(String appOrg);
+}

+ 30 - 0
src/main/java/com/project/zcustom/service/unit/IPlatBuildingService.java

@@ -0,0 +1,30 @@
+package com.project.zcustom.service.unit;
+
+import java.util.List;
+import java.util.Map;
+
+public interface IPlatBuildingService {
+    List<String> getPowerAndWaterMonth();
+
+    List<Map<String, Object>> getAirCondition();
+
+    List<Map<String, Object>> getTarget();
+
+    List<Map<String, Object>> useElectricity();
+
+    List<Map<String, Object>> greenElectricity();
+
+    List<Map<String, Object>> carbon();
+
+    Map<String, Object> energyYear();
+
+    Map<String, Object> powerYear();
+
+    Map<String, Object> waterYear();
+
+    List<Map<String, Object>> frequency();
+
+    Map<String, Object> patrol();
+
+    List<Map<String, Object>> patrolPoint();
+}

+ 194 - 0
src/main/java/com/project/zcustom/service/unit/impl/LargeCameraServiceImpl.java

@@ -0,0 +1,194 @@
+package com.project.zcustom.service.unit.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.project.zcustom.controller.core.PageParamVo;
+import com.project.zcustom.controller.core.StringUtils;
+import com.project.zcustom.domain.addional.LargeCamera;
+import com.project.zcustom.mapper.unit.LargeCameraMapper;
+import com.project.zcustom.service.unit.ILargeCameraService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 摄像头Service业务层处理
+ *
+ * @author change
+ * @date 2024-12-30
+ */
+@Service
+public class LargeCameraServiceImpl extends ServiceImpl<LargeCameraMapper, LargeCamera> implements ILargeCameraService {
+
+    @Autowired
+    private LargeCameraMapper largeCameraMapper;
+
+    /**
+     * 组装查询条件
+     */
+    private LambdaQueryWrapper<LargeCamera> getLambdaQueryWrapper(LargeCamera largeCamera) {
+        LambdaQueryWrapper<LargeCamera> lqw = new LambdaQueryWrapper<LargeCamera>();
+                        if (StringUtils.isNotBlank(largeCamera.getCameraName())){
+                        lqw.like(LargeCamera::getCameraName ,largeCamera.getCameraName());
+                    }
+                        if (StringUtils.isNotNull(largeCamera.getProjectId())){
+                        lqw.eq(LargeCamera::getProjectId ,largeCamera.getProjectId());
+                    }
+                        if (StringUtils.isNotBlank(largeCamera.getType())){
+                        lqw.eq(LargeCamera::getType ,largeCamera.getType());
+                    }
+                        if (StringUtils.isNotBlank(largeCamera.getStatus())){
+                        lqw.eq(LargeCamera::getStatus ,largeCamera.getStatus());
+                    }
+                        if (StringUtils.isNotBlank(largeCamera.getOnlineFlag())){
+                        lqw.eq(LargeCamera::getOnlineFlag ,largeCamera.getOnlineFlag());
+                    }
+                        if (StringUtils.isNotBlank(largeCamera.getConnectFlag())){
+                        lqw.eq(LargeCamera::getConnectFlag ,largeCamera.getConnectFlag());
+                    }
+        return lqw;
+    }
+
+    /**
+     * 分页查询摄像头列表
+     *
+     * @param largeCamera 摄像头
+     * @return 摄像头集合
+     */
+    @Override
+    public IPage<LargeCamera> pagingLargeCameraList(LargeCamera largeCamera) {
+        IPage<LargeCamera> page = new Page<>(largeCamera.getPageNum(), largeCamera.getPageSize());
+        LambdaQueryWrapper<LargeCamera> lqw = getLambdaQueryWrapper(largeCamera);
+        // 排序 默认时间倒序
+        lqw.orderByDesc(LargeCamera::getCreateTime);
+        return baseMapper.selectPage(page, lqw);
+    }
+
+    /**
+     * 分页查询摄像头列表
+     *
+     * @param lqw
+     * @return 摄像头集合
+     */
+    @Override
+    public IPage<LargeCamera> pagingLargeCameraList(PageParamVo pageParamVo, LambdaQueryWrapper<LargeCamera> lqw) {
+        IPage<LargeCamera> page = new Page<>(pageParamVo.getPageNum(), pageParamVo.getPageSize());
+        // 排序 默认时间倒序
+        lqw.orderByDesc(LargeCamera::getCreateTime);
+        return baseMapper.selectPage(page, lqw);
+    }
+
+    /**
+     * 查询摄像头列表
+     *
+     * @param largeCamera 摄像头
+     * @return 摄像头
+     */
+    @Override
+    public List<LargeCamera> selectLargeCameraList(LargeCamera largeCamera) {
+        LambdaQueryWrapper<LargeCamera> lqw = getLambdaQueryWrapper(largeCamera);
+        // 排序 默认时间倒序
+        lqw.orderByDesc(LargeCamera::getCreateTime);
+        return baseMapper.selectList(lqw);
+    }
+
+    /**
+     * 查询摄像头列表
+     *
+     * @param largeCamera 摄像头
+     * @return 摄像头
+     */
+    @Override
+    public List<LargeCamera> selectLargeCameraList(LargeCamera largeCamera,Long limitNum) {
+        LambdaQueryWrapper<LargeCamera> lqw = getLambdaQueryWrapper(largeCamera);
+        // 排序 默认时间倒序
+        lqw.orderByDesc(LargeCamera::getCreateTime);
+        lqw.last("limit "+limitNum);
+        return baseMapper.selectList(lqw);
+    }
+
+    /**
+     * 根据指定字段查询信息
+     *
+     * @param field 字段名称
+     * @param filedValue 字段值
+     * @return 摄像头
+     */
+    @Override
+    public LargeCamera getLargeCameraByField(String field, String filedValue) {
+        QueryWrapper<LargeCamera> lqw = new QueryWrapper<LargeCamera>();
+        lqw.eq(field, filedValue);
+        lqw.last("limit 1");
+        return this.getOne(lqw, false);
+    }
+
+    /**
+     * 根据指定字段查询信息列表
+     *
+     * @param field 字段名称
+     * @param filedValue 字段值
+     * @return 摄像头
+     */
+    @Override
+    public List<LargeCamera> selectLargeCameraListByField(String field, String filedValue,Long limitNum) {
+        QueryWrapper<LargeCamera> lqw = new QueryWrapper<LargeCamera>();
+        lqw.eq(field, filedValue);
+        lqw.last("limit "+limitNum);
+        return this.list(lqw);
+    }
+
+    /**
+     * 根据指定字段查询信息列表
+     *
+     * @param field 字段名称
+     * @param filedValue 字段值
+     * @return 摄像头
+     */
+    @Override
+    public List<LargeCamera> selectLargeCameraListByField(String field, String filedValue) {
+        QueryWrapper<LargeCamera> lqw = new QueryWrapper<LargeCamera>();
+        lqw.eq(field, filedValue);
+        return this.list(lqw);
+    }
+
+    /**
+     * 判断指定字段值是否存在
+     *
+     * @param field 字段名称
+     * @param filedValue 字段值
+     */
+    @Override
+    public void checkFieldExist(String field, String filedValue,String tips, Long id){
+        QueryWrapper<LargeCamera> lqw = new QueryWrapper<LargeCamera>();
+        lqw.eq(field, filedValue);
+        lqw.ne("id", id);
+        if(this.getOne(lqw,false) != null){
+            throw new RuntimeException(tips + "已存在");
+        }
+    }
+    /**
+     *  真删接口
+     */
+    @Override
+    public void reallyDeleteLargeCamera(LambdaQueryWrapper<LargeCamera> lqw){
+        baseMapper.reallyDeleteByWrapper(lqw);
+    }
+
+    public List<LargeCamera> getCameraList(Long projectId){
+        return largeCameraMapper.getCameraList(projectId);
+    }
+
+    public int getCameraNum(){
+        return largeCameraMapper.getCameraNum();
+    }
+    public List<LargeCamera> getConnectCameraNumByProject(Long projectId){
+        return largeCameraMapper.getConnectCameraNumByProject(projectId);
+    }
+    public int getConnectOnlineCameraNum(){
+        return largeCameraMapper.getConnectOnlineCameraNum();
+    }
+}

+ 192 - 0
src/main/java/com/project/zcustom/service/unit/impl/LargeIssueServiceImpl.java

@@ -0,0 +1,192 @@
+package com.project.zcustom.service.unit.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.project.zcustom.controller.core.PageParamVo;
+import com.project.zcustom.controller.core.StringUtils;
+import com.project.zcustom.domain.addional.LargeIssue;
+import com.project.zcustom.mapper.unit.LargeIssueMapper;
+import com.project.zcustom.service.unit.ILargeIssueService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 上报问题Service业务层处理
+ *
+ * @author change
+ * @date 2024-12-30
+ */
+@Service
+public class LargeIssueServiceImpl extends ServiceImpl<LargeIssueMapper, LargeIssue> implements ILargeIssueService {
+
+    @Autowired
+    private LargeIssueMapper largeIssueMapper;
+
+    /**
+     * 组装查询条件
+     */
+    private LambdaQueryWrapper<LargeIssue> getLambdaQueryWrapper(LargeIssue largeIssue) {
+        LambdaQueryWrapper<LargeIssue> lqw = new LambdaQueryWrapper<LargeIssue>();
+                        if (StringUtils.isNotBlank(largeIssue.getDescription())){
+                        lqw.eq(LargeIssue::getDescription ,largeIssue.getDescription());
+                    }
+                        if (StringUtils.isNotNull(largeIssue.getProjectId())){
+                        lqw.eq(LargeIssue::getProjectId ,largeIssue.getProjectId());
+                    }
+                        if (StringUtils.isNotBlank(largeIssue.getStatus())){
+                        lqw.eq(LargeIssue::getStatus ,largeIssue.getStatus());
+                    }
+        return lqw;
+    }
+
+    /**
+     * 分页查询上报问题列表
+     *
+     * @param largeIssue 上报问题
+     * @return 上报问题集合
+     */
+    @Override
+    public IPage<LargeIssue> pagingLargeIssueList(LargeIssue largeIssue) {
+        IPage<LargeIssue> page = new Page<>(largeIssue.getPageNum(), largeIssue.getPageSize());
+        LambdaQueryWrapper<LargeIssue> lqw = getLambdaQueryWrapper(largeIssue);
+        // 排序 默认时间倒序
+        lqw.orderByDesc(LargeIssue::getCreateTime);
+        return baseMapper.selectPage(page, lqw);
+    }
+
+    /**
+     * 分页查询上报问题列表
+     *
+     * @param lqw
+     * @return 上报问题集合
+     */
+    @Override
+    public IPage<LargeIssue> pagingLargeIssueList(PageParamVo pageParamVo, LambdaQueryWrapper<LargeIssue> lqw) {
+        IPage<LargeIssue> page = new Page<>(pageParamVo.getPageNum(), pageParamVo.getPageSize());
+        // 排序 默认时间倒序
+        lqw.orderByDesc(LargeIssue::getCreateTime);
+        return baseMapper.selectPage(page, lqw);
+    }
+
+    /**
+     * 查询上报问题列表
+     *
+     * @param largeIssue 上报问题
+     * @return 上报问题
+     */
+    @Override
+    public List<LargeIssue> selectLargeIssueList(LargeIssue largeIssue) {
+        LambdaQueryWrapper<LargeIssue> lqw = getLambdaQueryWrapper(largeIssue);
+        // 排序 默认时间倒序
+        lqw.orderByDesc(LargeIssue::getCreateTime);
+        return baseMapper.selectList(lqw);
+    }
+
+    /**
+     * 查询上报问题列表
+     *
+     * @param largeIssue 上报问题
+     * @return 上报问题
+     */
+    @Override
+    public List<LargeIssue> selectLargeIssueList(LargeIssue largeIssue,Long limitNum) {
+        LambdaQueryWrapper<LargeIssue> lqw = getLambdaQueryWrapper(largeIssue);
+        // 排序 默认时间倒序
+        lqw.orderByDesc(LargeIssue::getCreateTime);
+        lqw.last("limit "+limitNum);
+        return baseMapper.selectList(lqw);
+    }
+
+    /**
+     * 根据指定字段查询信息
+     *
+     * @param field 字段名称
+     * @param filedValue 字段值
+     * @return 上报问题
+     */
+    @Override
+    public LargeIssue getLargeIssueByField(String field, String filedValue) {
+        QueryWrapper<LargeIssue> lqw = new QueryWrapper<LargeIssue>();
+        lqw.eq(field, filedValue);
+        lqw.last("limit 1");
+        return this.getOne(lqw, false);
+    }
+
+    /**
+     * 根据指定字段查询信息列表
+     *
+     * @param field 字段名称
+     * @param filedValue 字段值
+     * @return 上报问题
+     */
+    @Override
+    public List<LargeIssue> selectLargeIssueListByField(String field, String filedValue,Long limitNum) {
+        QueryWrapper<LargeIssue> lqw = new QueryWrapper<LargeIssue>();
+        lqw.eq(field, filedValue);
+        lqw.last("limit "+limitNum);
+        return this.list(lqw);
+    }
+
+    /**
+     * 根据指定字段查询信息列表
+     *
+     * @param field 字段名称
+     * @param filedValue 字段值
+     * @return 上报问题
+     */
+    @Override
+    public List<LargeIssue> selectLargeIssueListByField(String field, String filedValue) {
+        QueryWrapper<LargeIssue> lqw = new QueryWrapper<LargeIssue>();
+        lqw.eq(field, filedValue);
+        return this.list(lqw);
+    }
+
+    /**
+     * 判断指定字段值是否存在
+     *
+     * @param field 字段名称
+     * @param filedValue 字段值
+     */
+    @Override
+    public void checkFieldExist(String field, String filedValue,String tips, Long id){
+        QueryWrapper<LargeIssue> lqw = new QueryWrapper<LargeIssue>();
+        lqw.eq(field, filedValue);
+        lqw.ne("id", id);
+        if(this.getOne(lqw,false) != null){
+            throw new RuntimeException(tips + "已存在");
+        }
+    }
+    /**
+     *  真删接口
+     */
+    @Override
+    public void reallyDeleteLargeIssue(LambdaQueryWrapper<LargeIssue> lqw){
+        baseMapper.reallyDeleteByWrapper(lqw);
+    }
+
+    public int getIssueNum(){
+        return largeIssueMapper.getIssueNum();
+    }
+
+    public int getOverIssueNum(){
+        return largeIssueMapper.getOverIssueNum();
+    }
+
+    public List<LargeIssue> getIssueListLastWeek(){
+        return largeIssueMapper.getIssueListLastWeek();
+    }
+
+
+    public List<LargeIssue> selectList(LargeIssue largeIssue){
+        return largeIssueMapper.selectLargeIssueList(largeIssue);
+    }
+
+    public LargeIssue selectLargeIssueById(Long id){
+        return largeIssueMapper.selectLargeIssueById(id);
+    }
+}

+ 185 - 0
src/main/java/com/project/zcustom/service/unit/impl/LargePlanServiceImpl.java

@@ -0,0 +1,185 @@
+package com.project.zcustom.service.unit.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.project.zcustom.controller.core.PageParamVo;
+import com.project.zcustom.controller.core.StringUtils;
+import com.project.zcustom.domain.addional.LargePlan;
+import com.project.zcustom.mapper.unit.LargePlanMapper;
+import com.project.zcustom.service.unit.ILargePlanService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 工程计划Service业务层处理
+ *
+ * @author change
+ * @date 2024-12-30
+ */
+@Service
+public class LargePlanServiceImpl extends ServiceImpl<LargePlanMapper, LargePlan> implements ILargePlanService {
+
+    @Autowired
+    private LargePlanMapper largePlanMapper;
+
+    /**
+     * 组装查询条件
+     */
+    private LambdaQueryWrapper<LargePlan> getLambdaQueryWrapper(LargePlan largePlan) {
+        LambdaQueryWrapper<LargePlan> lqw = new LambdaQueryWrapper<LargePlan>();
+                        if (StringUtils.isNotNull(largePlan.getProjectId())){
+                        lqw.eq(LargePlan::getProjectId ,largePlan.getProjectId());
+                    }
+                        if (StringUtils.isNotBlank(largePlan.getType())){
+                        lqw.eq(LargePlan::getType ,largePlan.getType());
+                    }
+                        if (StringUtils.isNotBlank(largePlan.getHead())){
+                        lqw.eq(LargePlan::getHead ,largePlan.getHead());
+                    }
+                        if (StringUtils.isNotBlank(largePlan.getContent())){
+                        lqw.eq(LargePlan::getContent ,largePlan.getContent());
+                    }
+                        if (StringUtils.isNotNull(largePlan.getStartTime())){
+                        lqw.eq(LargePlan::getStartTime ,largePlan.getStartTime());
+                    }
+                        if (StringUtils.isNotNull(largePlan.getEndTime())){
+                        lqw.eq(LargePlan::getEndTime ,largePlan.getEndTime());
+                    }
+        return lqw;
+    }
+
+    /**
+     * 分页查询工程计划列表
+     *
+     * @param largePlan 工程计划
+     * @return 工程计划集合
+     */
+    @Override
+    public IPage<LargePlan> pagingLargePlanList(LargePlan largePlan) {
+        IPage<LargePlan> page = new Page<>(largePlan.getPageNum(), largePlan.getPageSize());
+        LambdaQueryWrapper<LargePlan> lqw = getLambdaQueryWrapper(largePlan);
+        // 排序 默认时间倒序
+        lqw.orderByDesc(LargePlan::getCreateTime);
+        return baseMapper.selectPage(page, lqw);
+    }
+
+    /**
+     * 分页查询工程计划列表
+     *
+     * @param lqw
+     * @return 工程计划集合
+     */
+    @Override
+    public IPage<LargePlan> pagingLargePlanList(PageParamVo pageParamVo, LambdaQueryWrapper<LargePlan> lqw) {
+        IPage<LargePlan> page = new Page<>(pageParamVo.getPageNum(), pageParamVo.getPageSize());
+        // 排序 默认时间倒序
+        lqw.orderByDesc(LargePlan::getCreateTime);
+        return baseMapper.selectPage(page, lqw);
+    }
+
+    /**
+     * 查询工程计划列表
+     *
+     * @param largePlan 工程计划
+     * @return 工程计划
+     */
+    @Override
+    public List<LargePlan> selectLargePlanList(LargePlan largePlan) {
+        LambdaQueryWrapper<LargePlan> lqw = getLambdaQueryWrapper(largePlan);
+        // 排序 默认时间倒序
+        lqw.orderByDesc(LargePlan::getCreateTime);
+        return baseMapper.selectList(lqw);
+    }
+
+    /**
+     * 查询工程计划列表
+     *
+     * @param largePlan 工程计划
+     * @return 工程计划
+     */
+    @Override
+    public List<LargePlan> selectLargePlanList(LargePlan largePlan,Long limitNum) {
+        LambdaQueryWrapper<LargePlan> lqw = getLambdaQueryWrapper(largePlan);
+        // 排序 默认时间倒序
+        lqw.orderByDesc(LargePlan::getCreateTime);
+        lqw.last("limit "+limitNum);
+        return baseMapper.selectList(lqw);
+    }
+
+    /**
+     * 根据指定字段查询信息
+     *
+     * @param field 字段名称
+     * @param filedValue 字段值
+     * @return 工程计划
+     */
+    @Override
+    public LargePlan getLargePlanByField(String field, String filedValue) {
+        QueryWrapper<LargePlan> lqw = new QueryWrapper<LargePlan>();
+        lqw.eq(field, filedValue);
+        lqw.last("limit 1");
+        return this.getOne(lqw, false);
+    }
+
+    /**
+     * 根据指定字段查询信息列表
+     *
+     * @param field 字段名称
+     * @param filedValue 字段值
+     * @return 工程计划
+     */
+    @Override
+    public List<LargePlan> selectLargePlanListByField(String field, String filedValue,Long limitNum) {
+        QueryWrapper<LargePlan> lqw = new QueryWrapper<LargePlan>();
+        lqw.eq(field, filedValue);
+        lqw.last("limit "+limitNum);
+        return this.list(lqw);
+    }
+
+    /**
+     * 根据指定字段查询信息列表
+     *
+     * @param field 字段名称
+     * @param filedValue 字段值
+     * @return 工程计划
+     */
+    @Override
+    public List<LargePlan> selectLargePlanListByField(String field, String filedValue) {
+        QueryWrapper<LargePlan> lqw = new QueryWrapper<LargePlan>();
+        lqw.eq(field, filedValue);
+        return this.list(lqw);
+    }
+
+    /**
+     * 判断指定字段值是否存在
+     *
+     * @param field 字段名称
+     * @param filedValue 字段值
+     */
+    @Override
+    public void checkFieldExist(String field, String filedValue,String tips, Long id){
+        QueryWrapper<LargePlan> lqw = new QueryWrapper<LargePlan>();
+        lqw.eq(field, filedValue);
+        lqw.ne("id", id);
+        if(this.getOne(lqw,false) != null){
+            throw new RuntimeException(tips + "已存在");
+        }
+    }
+    /**
+     *  真删接口
+     */
+    @Override
+    public void reallyDeleteLargePlan(LambdaQueryWrapper<LargePlan> lqw){
+        baseMapper.reallyDeleteByWrapper(lqw);
+    }
+
+    public int getCheckProjectNum(Date startDate, Date endDate){
+        return largePlanMapper.getCheckProjectNum(startDate, endDate);
+    }
+}

+ 186 - 0
src/main/java/com/project/zcustom/service/unit/impl/LargeProjectServiceImpl.java

@@ -0,0 +1,186 @@
+package com.project.zcustom.service.unit.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.project.zcustom.controller.core.PageParamVo;
+import com.project.zcustom.controller.core.StringUtils;
+import com.project.zcustom.domain.addional.LargeProject;
+import com.project.zcustom.mapper.unit.LargeProjectMapper;
+import com.project.zcustom.service.unit.ILargeProjectService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 工程项目Service业务层处理
+ *
+ * @author change
+ * @date 2024-12-30
+ */
+@Service
+public class LargeProjectServiceImpl extends ServiceImpl<LargeProjectMapper, LargeProject> implements ILargeProjectService {
+
+    @Autowired
+    private LargeProjectMapper largeProjectMapper;
+
+    /**
+     * 组装查询条件
+     */
+    private LambdaQueryWrapper<LargeProject> getLambdaQueryWrapper(LargeProject largeProject) {
+        LambdaQueryWrapper<LargeProject> lqw = new LambdaQueryWrapper<LargeProject>();
+                        if (StringUtils.isNotBlank(largeProject.getProjectName())){
+                        lqw.like(LargeProject::getProjectName ,largeProject.getProjectName());
+                    }
+                        if (StringUtils.isNotNull(largeProject.getUnitCode())){
+                        lqw.eq(LargeProject::getUnitCode ,largeProject.getUnitCode());
+                    }
+                        if (StringUtils.isNotBlank(largeProject.getConnectFlag())){
+                        lqw.eq(LargeProject::getConnectFlag ,largeProject.getConnectFlag());
+                    }
+        return lqw;
+    }
+
+    /**
+     * 分页查询工程项目列表
+     *
+     * @param largeProject 工程项目
+     * @return 工程项目集合
+     */
+    @Override
+    public IPage<LargeProject> pagingLargeProjectList(LargeProject largeProject) {
+        IPage<LargeProject> page = new Page<>(largeProject.getPageNum(), largeProject.getPageSize());
+        LambdaQueryWrapper<LargeProject> lqw = getLambdaQueryWrapper(largeProject);
+        // 排序 默认时间倒序
+        lqw.orderByDesc(LargeProject::getCreateTime);
+        return baseMapper.selectPage(page, lqw);
+    }
+
+    /**
+     * 分页查询工程项目列表
+     *
+     * @param lqw
+     * @return 工程项目集合
+     */
+    @Override
+    public IPage<LargeProject> pagingLargeProjectList(PageParamVo pageParamVo, LambdaQueryWrapper<LargeProject> lqw) {
+        IPage<LargeProject> page = new Page<>(pageParamVo.getPageNum(), pageParamVo.getPageSize());
+        // 排序 默认时间倒序
+        lqw.orderByDesc(LargeProject::getCreateTime);
+        return baseMapper.selectPage(page, lqw);
+    }
+
+    /**
+     * 查询工程项目列表
+     *
+     * @param largeProject 工程项目
+     * @return 工程项目
+     */
+    @Override
+    public List<LargeProject> selectLargeProjectList(LargeProject largeProject) {
+        LambdaQueryWrapper<LargeProject> lqw = getLambdaQueryWrapper(largeProject);
+        // 排序 默认时间倒序
+        lqw.orderByDesc(LargeProject::getCreateTime);
+        return baseMapper.selectList(lqw);
+    }
+
+    /**
+     * 查询工程项目列表
+     *
+     * @param largeProject 工程项目
+     * @return 工程项目
+     */
+    @Override
+    public List<LargeProject> selectLargeProjectList(LargeProject largeProject,Long limitNum) {
+        LambdaQueryWrapper<LargeProject> lqw = getLambdaQueryWrapper(largeProject);
+        // 排序 默认时间倒序
+        lqw.orderByDesc(LargeProject::getCreateTime);
+        lqw.last("limit "+limitNum);
+        return baseMapper.selectList(lqw);
+    }
+
+    /**
+     * 根据指定字段查询信息
+     *
+     * @param field 字段名称
+     * @param filedValue 字段值
+     * @return 工程项目
+     */
+    @Override
+    public LargeProject getLargeProjectByField(String field, String filedValue) {
+        QueryWrapper<LargeProject> lqw = new QueryWrapper<LargeProject>();
+        lqw.eq(field, filedValue);
+        lqw.last("limit 1");
+        return this.getOne(lqw, false);
+    }
+
+    /**
+     * 根据指定字段查询信息列表
+     *
+     * @param field 字段名称
+     * @param filedValue 字段值
+     * @return 工程项目
+     */
+    @Override
+    public List<LargeProject> selectLargeProjectListByField(String field, String filedValue,Long limitNum) {
+        QueryWrapper<LargeProject> lqw = new QueryWrapper<LargeProject>();
+        lqw.eq(field, filedValue);
+        lqw.last("limit "+limitNum);
+        return this.list(lqw);
+    }
+
+    /**
+     * 根据指定字段查询信息列表
+     *
+     * @param field 字段名称
+     * @param filedValue 字段值
+     * @return 工程项目
+     */
+    @Override
+    public List<LargeProject> selectLargeProjectListByField(String field, String filedValue) {
+        QueryWrapper<LargeProject> lqw = new QueryWrapper<LargeProject>();
+        lqw.eq(field, filedValue);
+        return this.list(lqw);
+    }
+
+    /**
+     * 判断指定字段值是否存在
+     *
+     * @param field 字段名称
+     * @param filedValue 字段值
+     */
+    @Override
+    public void checkFieldExist(String field, String filedValue,String tips, Long id){
+        QueryWrapper<LargeProject> lqw = new QueryWrapper<LargeProject>();
+        lqw.eq(field, filedValue);
+        lqw.ne("id", id);
+        if(this.getOne(lqw,false) != null){
+            throw new RuntimeException(tips + "已存在");
+        }
+    }
+    /**
+     *  真删接口
+     */
+    @Override
+    public void reallyDeleteLargeProject(LambdaQueryWrapper<LargeProject> lqw){
+        baseMapper.reallyDeleteByWrapper(lqw);
+    }
+
+    public int getProjectNumX(String subdivision) {
+        return largeProjectMapper.getProjectNumX(subdivision);
+    }
+    public int getProjectNumY(String subdivision) {
+        return largeProjectMapper.getProjectNumY(subdivision);
+    }
+
+    public List<LargeProject> getCameraNumList(String unitCode){
+        return largeProjectMapper.getCameraNumList(unitCode);
+    }
+
+    public int getProjectNumThisWeek(){
+        return largeProjectMapper.getProjectNumThisWeek();
+    }
+}

+ 184 - 0
src/main/java/com/project/zcustom/service/unit/impl/LargeUnitServiceImpl.java

@@ -0,0 +1,184 @@
+package com.project.zcustom.service.unit.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.project.zcustom.controller.core.PageParamVo;
+import com.project.zcustom.domain.addional.LargeUnit;
+import com.project.zcustom.mapper.unit.LargeUnitMapper;
+import com.project.zcustom.service.unit.ILargeUnitService;
+import com.project.zcustom.controller.core.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 地区编码Service业务层处理
+ *
+ * @author change
+ * @date 2024-12-30
+ */
+@Service
+public class LargeUnitServiceImpl extends ServiceImpl<LargeUnitMapper, LargeUnit> implements ILargeUnitService {
+
+    @Autowired
+    private LargeUnitMapper largeUnitMapper;
+
+    /**
+     * 组装查询条件
+     */
+    private LambdaQueryWrapper<LargeUnit> getLambdaQueryWrapper(LargeUnit largeUnit) {
+        LambdaQueryWrapper<LargeUnit> lqw = new LambdaQueryWrapper<LargeUnit>();
+                        if (StringUtils.isNotBlank(largeUnit.getUnitCode())){
+                        lqw.eq(LargeUnit::getUnitCode ,largeUnit.getUnitCode());
+                    }
+                        if (StringUtils.isNotBlank(largeUnit.getUnitName())){
+                        lqw.like(LargeUnit::getUnitName ,largeUnit.getUnitName());
+                    }
+        return lqw;
+    }
+
+    /**
+     * 分页查询地区编码列表
+     *
+     * @param largeUnit 地区编码
+     * @return 地区编码集合
+     */
+    @Override
+    public IPage<LargeUnit> pagingLargeUnitList(LargeUnit largeUnit) {
+        IPage<LargeUnit> page = new Page<>(largeUnit.getPageNum(), largeUnit.getPageSize());
+        LambdaQueryWrapper<LargeUnit> lqw = getLambdaQueryWrapper(largeUnit);
+        // 排序 默认时间倒序
+        lqw.orderByDesc(LargeUnit::getCreateTime);
+        return baseMapper.selectPage(page, lqw);
+    }
+
+    /**
+     * 分页查询地区编码列表
+     *
+     * @param lqw
+     * @return 地区编码集合
+     */
+    @Override
+    public IPage<LargeUnit> pagingLargeUnitList(PageParamVo pageParamVo, LambdaQueryWrapper<LargeUnit> lqw) {
+        IPage<LargeUnit> page = new Page<>(pageParamVo.getPageNum(), pageParamVo.getPageSize());
+        // 排序 默认时间倒序
+        lqw.orderByDesc(LargeUnit::getCreateTime);
+        return baseMapper.selectPage(page, lqw);
+    }
+
+    /**
+     * 查询地区编码列表
+     *
+     * @param largeUnit 地区编码
+     * @return 地区编码
+     */
+    @Override
+    public List<LargeUnit> selectLargeUnitList(LargeUnit largeUnit) {
+        LambdaQueryWrapper<LargeUnit> lqw = getLambdaQueryWrapper(largeUnit);
+        // 排序 默认时间倒序
+        lqw.orderByDesc(LargeUnit::getCreateTime);
+        return baseMapper.selectList(lqw);
+    }
+
+    /**
+     * 查询地区编码列表
+     *
+     * @param largeUnit 地区编码
+     * @return 地区编码
+     */
+    @Override
+    public List<LargeUnit> selectLargeUnitList(LargeUnit largeUnit,Long limitNum) {
+        LambdaQueryWrapper<LargeUnit> lqw = getLambdaQueryWrapper(largeUnit);
+        // 排序 默认时间倒序
+        lqw.orderByDesc(LargeUnit::getCreateTime);
+        lqw.last("limit "+limitNum);
+        return baseMapper.selectList(lqw);
+    }
+
+    /**
+     * 根据指定字段查询信息
+     *
+     * @param field 字段名称
+     * @param filedValue 字段值
+     * @return 地区编码
+     */
+    @Override
+    public LargeUnit getLargeUnitByField(String field, String filedValue) {
+        QueryWrapper<LargeUnit> lqw = new QueryWrapper<LargeUnit>();
+        lqw.eq(field, filedValue);
+        lqw.last("limit 1");
+        return this.getOne(lqw, false);
+    }
+
+    /**
+     * 根据指定字段查询信息列表
+     *
+     * @param field 字段名称
+     * @param filedValue 字段值
+     * @return 地区编码
+     */
+    @Override
+    public List<LargeUnit> selectLargeUnitListByField(String field, String filedValue,Long limitNum) {
+        QueryWrapper<LargeUnit> lqw = new QueryWrapper<LargeUnit>();
+        lqw.eq(field, filedValue);
+        lqw.last("limit "+limitNum);
+        return this.list(lqw);
+    }
+
+    /**
+     * 根据指定字段查询信息列表
+     *
+     * @param field 字段名称
+     * @param filedValue 字段值
+     * @return 地区编码
+     */
+    @Override
+    public List<LargeUnit> selectLargeUnitListByField(String field, String filedValue) {
+        QueryWrapper<LargeUnit> lqw = new QueryWrapper<LargeUnit>();
+        lqw.eq(field, filedValue);
+        return this.list(lqw);
+    }
+
+    /**
+     * 判断指定字段值是否存在
+     *
+     * @param field 字段名称
+     * @param filedValue 字段值
+     */
+    @Override
+    public void checkFieldExist(String field, String filedValue,String tips, Long id){
+        QueryWrapper<LargeUnit> lqw = new QueryWrapper<LargeUnit>();
+        lqw.eq(field, filedValue);
+        lqw.ne("id", id);
+        if(this.getOne(lqw,false) != null){
+            throw new RuntimeException(tips + "已存在");
+        }
+    }
+    /**
+     *  真删接口
+     */
+    @Override
+    public void reallyDeleteLargeUnit(LambdaQueryWrapper<LargeUnit> lqw){
+        baseMapper.reallyDeleteByWrapper(lqw);
+    }
+
+    public List<LargeUnit> getProjectCameraNumList(){
+        return largeUnitMapper.getProjectCameraNumList();
+    }
+
+    public int getConnectUnitNum(){
+        return largeUnitMapper.getConnectUnitNum();
+    }
+
+    public List<LargeUnit> getAllCameraCondition(){
+        return largeUnitMapper.getAllCameraCondition();
+    }
+
+    public LargeUnit getCameraConditionByAppOrg(String appOrg){
+        return largeUnitMapper.getCameraConditionByAppOrg(appOrg);
+    }
+}

+ 280 - 0
src/main/java/com/project/zcustom/service/unit/impl/PlatBuildingServiceImpl.java

@@ -0,0 +1,280 @@
+package com.project.zcustom.service.unit.impl;
+
+import com.alibaba.fastjson2.JSONArray;
+import com.alibaba.fastjson2.JSONObject;
+import com.project.zcustom.controller.core.StringUtils;
+import com.project.zcustom.mapper.unit.PlatBuildingMapper;
+import com.project.zcustom.service.unit.IPlatBuildingService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+@Service
+public class PlatBuildingServiceImpl implements IPlatBuildingService {
+
+    @Autowired
+    private PlatBuildingMapper platBuildingMapper;
+
+    public List<String> getPowerAndWaterMonth(){
+        List<String> list = new ArrayList<>();
+        String json = platBuildingMapper.getPowerAndWaterMonth();
+        if (StringUtils.isEmpty(json)){
+            return null;
+        }
+        JSONArray dataArray = JSONArray.parseArray(json);
+        for (int i = 0; i < dataArray.size(); i++) {
+            JSONObject dataItem = dataArray.getJSONObject(i);
+            String value = dataItem.getString("value");
+            list.add(value);
+        }
+        return list;
+    }
+
+    public List<Map<String, Object>> getAirCondition(){
+        List<Map<String, Object>> resultList = new ArrayList<>();
+
+        String json = platBuildingMapper.getAirCondition();
+        if (StringUtils.isEmpty(json)){
+            return null;
+        }
+        JSONArray dataArray = JSONArray.parseArray(json);
+        for (int i = 0; i < dataArray.size(); i++) {
+            JSONObject dataItem = dataArray.getJSONObject(i);
+            String name = dataItem.getString("name");
+            String valueIn = dataItem.getString("value1");
+            String valueOut = dataItem.getString("value");
+            Map<String, Object> data = new HashMap<>();
+            data.put("name", name);
+            data.put("valueIn", valueIn);
+            data.put("valueOut", valueOut);
+            resultList.add(data);
+        }
+        return resultList;
+    }
+
+    public List<Map<String, Object>> getTarget(){
+        List<Map<String, Object>> resultList = new ArrayList<>();
+
+        String json = platBuildingMapper.getTarget();
+        if (StringUtils.isEmpty(json)){
+            return null;
+        }
+        JSONArray dataArray = JSONArray.parseArray(json);
+        for (int i = 0; i < dataArray.size(); i++) {
+            JSONObject dataItem = dataArray.getJSONObject(i);
+            String name = dataItem.getString("name");
+            String guideValue = dataItem.getString("guideValue");
+            String datumValue = dataItem.getString("datumValue");
+            String tieValue = dataItem.getString("tieValue");
+            String value = dataItem.getString("value");
+            Map<String, Object> data = new HashMap<>();
+            data.put("name", name);
+            data.put("guideValue", guideValue);
+            data.put("datumValue", datumValue);
+            data.put("tieValue", tieValue);
+            data.put("value", value);
+            resultList.add(data);
+        }
+        return resultList;
+    }
+
+    public List<Map<String, Object>> useElectricity(){
+        List<Map<String, Object>> resultList = new ArrayList<>();
+
+        String json = platBuildingMapper.useElectricity();
+        if (StringUtils.isEmpty(json)){
+            return null;
+        }
+        JSONArray dataArray = JSONArray.parseArray(json);
+        for (int i = 0; i < dataArray.size(); i++) {
+            JSONObject dataItem = dataArray.getJSONObject(i);
+            String itemValue = dataItem.getString("itemValue");
+            String itemName = dataItem.getString("itemName");
+            Map<String, Object> data = new HashMap<>();
+            data.put("itemValue", itemValue);
+            data.put("itemName", itemName);
+            resultList.add(data);
+        }
+        return resultList;
+    }
+
+
+    public List<Map<String, Object>> greenElectricity(){
+        List<Map<String, Object>> resultList = new ArrayList<>();
+
+        String json = platBuildingMapper.greenElectricity();
+        if (StringUtils.isEmpty(json)){
+            return null;
+        }
+        JSONObject jsonObject = JSONObject.parseObject(json);
+        String publicEnergy = jsonObject.getString("publicEnergy");
+        String grennEnergy = jsonObject.getString("grennEnergy");
+        Map<String, Object> data = new HashMap<>();
+        data.put("publicEnergy", publicEnergy);
+        data.put("grennEnergy", grennEnergy);
+        resultList.add(data);
+        return resultList;
+    }
+
+    public List<Map<String, Object>> carbon(){
+        List<Map<String, Object>> resultList = new ArrayList<>();
+        String json = platBuildingMapper.carbon();
+        if (json == null || json.isEmpty()) {
+            return null;
+        }
+        JSONObject jsonObject = JSONObject.parseObject(json);
+        JSONArray dataArray = jsonObject.getJSONArray("data");
+        for (int i = 0; i < dataArray.size(); i++) {
+            JSONObject dataItem = dataArray.getJSONObject(i);
+            String name = dataItem.getString("name");
+            JSONArray dataArrayItem = dataItem.getJSONArray("data");
+            Map<String, Object> data = new HashMap<>();
+            data.put("year", name);  // 设置年份字段
+            data.put("monthData", dataArrayItem.toJavaList(Double.class));
+            resultList.add(data);
+        }
+        return resultList;
+    }
+
+    public Map<String, Object> energyYear(){
+        Map<String, Object> res = new HashMap<>();
+        List<Map<String, Object>> resultList = new ArrayList<>();
+        String json = platBuildingMapper.energyYear();
+        if (json == null || json.isEmpty()) {
+            return null;
+        }
+        JSONObject dataObject = JSONObject.parseObject(json);
+        String yearTotal = dataObject.getString("yearTotal");
+        String yearGrowth = dataObject.getString("yearGrowth");
+        res.put("yearTotal", yearTotal);
+        res.put("yearGrowth", yearGrowth);
+        JSONArray twoYearData = dataObject.getJSONArray("twoYearData");
+        for (int i = 0; i < twoYearData.size(); i++) {
+            JSONObject dataItem = twoYearData.getJSONObject(i);
+            String year = dataItem.getString("value");
+            String lastYear = dataItem.getString("value1");
+            String month = dataItem.getString("key");
+            Map<String, Object> data = new HashMap<>();
+            data.put("year", year);
+            data.put("lastYear", lastYear);
+            data.put("month", month);
+            resultList.add(data);
+        }
+        res.put("monthData", resultList);
+        return res;
+    }
+
+    public Map<String, Object> powerYear(){
+        Map<String, Object> res = new HashMap<>();
+        List<Map<String, Object>> resultList = new ArrayList<>();
+        String json = platBuildingMapper.powerYear();
+        if (json == null || json.isEmpty()) {
+            return null;
+        }
+        JSONObject dataObject = JSONObject.parseObject(json);
+        String yearTotal = dataObject.getString("yearTotal");
+        String yearGrowth = dataObject.getString("yearGrowth");
+        res.put("yearTotal", yearTotal);
+        res.put("yearGrowth", yearGrowth);
+        JSONArray twoYearData = dataObject.getJSONArray("twoYearData");
+        for (int i = 0; i < twoYearData.size(); i++) {
+            JSONObject dataItem = twoYearData.getJSONObject(i);
+            String year = dataItem.getString("value");
+            String lastYear = dataItem.getString("value1");
+            String month = dataItem.getString("key");
+            Map<String, Object> data = new HashMap<>();
+            data.put("year", year);
+            data.put("lastYear", lastYear);
+            data.put("month", month);
+            resultList.add(data);
+        }
+        res.put("monthData", resultList);
+        return res;
+    }
+
+    public Map<String, Object> waterYear(){
+        Map<String, Object> res = new HashMap<>();
+        List<Map<String, Object>> resultList = new ArrayList<>();
+        String json = platBuildingMapper.waterYear();
+        if (json == null || json.isEmpty()) {
+            return null;
+        }
+        JSONObject dataObject = JSONObject.parseObject(json);
+        String yearTotal = dataObject.getString("yearTotal");
+        String yearGrowth = dataObject.getString("yearGrowth");
+        res.put("yearTotal", yearTotal);
+        res.put("yearGrowth", yearGrowth);
+        JSONArray twoYearData = dataObject.getJSONArray("twoYearData");
+        for (int i = 0; i < twoYearData.size(); i++) {
+            JSONObject dataItem = twoYearData.getJSONObject(i);
+            String year = dataItem.getString("value");
+            String lastYear = dataItem.getString("value1");
+            String month = dataItem.getString("key");
+            Map<String, Object> data = new HashMap<>();
+            data.put("year", year);
+            data.put("lastYear", lastYear);
+            data.put("month", month);
+            resultList.add(data);
+        }
+        res.put("monthData", resultList);
+        return res;
+    }
+
+    public List<Map<String, Object>> frequency(){
+        List<Map<String, Object>> resultList = new ArrayList<>();
+        String json = platBuildingMapper.frequency();
+        if (json == null || json.isEmpty()) {
+            return null;
+        }
+        JSONArray dataArray = JSONArray.parseArray(json);
+        for (int i = 0; i < dataArray.size(); i++) {
+            JSONObject dataItem = dataArray.getJSONObject(i);
+            String month = dataItem.getString("month");
+            String num = dataItem.getString("num");
+            Map<String, Object> data = new HashMap<>();
+            data.put("month", month);
+            data.put("num", num);
+            resultList.add(data);
+        }
+        return resultList;
+    }
+
+    public Map<String, Object> patrol(){
+        String json = platBuildingMapper.patrol();
+        if (json == null || json.isEmpty()) {
+            return null;
+        }
+        JSONObject jsonObject = JSONObject.parseObject(json);
+        JSONArray dataArray = jsonObject.getJSONArray("data");
+        JSONObject dataItem = dataArray.getJSONObject(0);
+        JSONArray patrolArray = dataItem.getJSONArray("data");
+        JSONArray monthArray = jsonObject.getJSONArray("xAxis");
+        Map<String, Object> data = new HashMap<>();
+        data.put("patrolArray", patrolArray.toJavaList(Double.class));
+        data.put("monthArray", monthArray.toJavaList(String.class));
+        return data;
+    }
+
+    public List<Map<String, Object>> patrolPoint(){
+        List<Map<String, Object>> resultList = new ArrayList<>();
+        String json = platBuildingMapper.patrolPoint();
+        if (json == null || json.isEmpty()) {
+            return null;
+        }
+        JSONArray dataArray = JSONArray.parseArray(json);
+        for (int i = 0; i < dataArray.size(); i++) {
+            JSONObject dataItem = dataArray.getJSONObject(i);
+            String number = dataItem.getString("number");
+            String floor = dataItem.getString("floor");
+            Map<String, Object> data = new HashMap<>();
+            data.put("number", number);
+            data.put("floor", floor);
+            resultList.add(data);
+        }
+        return resultList;
+    }
+}

+ 125 - 0
src/main/resources/mapper/zcustom/unit/LargeCameraMapper.xml

@@ -0,0 +1,125 @@
+<?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.project.zcustom.mapper.unit.LargeCameraMapper">
+
+    <resultMap type="com.project.zcustom.domain.addional.LargeCamera" id="LargeCameraResult">
+        <result property="id"    column="id"    />
+        <result property="cameraName"    column="camera_name"    />
+        <result property="projectId"    column="project_id"    />
+        <result property="type"    column="type"    />
+        <result property="status"    column="status"    />
+        <result property="onlineFlag"    column="online_flag"    />
+        <result property="connectFlag"    column="connect_flag"    />
+        <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>
+
+    <sql id="selectLargeCameraVo">
+        select id, camera_name, project_id, type, status, online_flag, connect_flag, del_flag, create_by, create_time, update_by, update_time from large_camera
+    </sql>
+
+    <select id="selectLargeCameraList" parameterType="LargeCamera" resultMap="LargeCameraResult">
+        <include refid="selectLargeCameraVo"/>
+        <where>
+            <if test="cameraName != null  and cameraName != ''"> and camera_name like concat('%', #{cameraName}, '%')</if>
+            <if test="projectId != null "> and project_id = #{projectId}</if>
+            <if test="type != null  and type != ''"> and type = #{type}</if>
+            <if test="status != null  and status != ''"> and status = #{status}</if>
+            <if test="onlineFlag != null  and onlineFlag != ''"> and online_flag = #{onlineFlag}</if>
+            <if test="connectFlag != null  and connectFlag != ''"> and connect_flag = #{connectFlag}</if>
+        </where>
+    </select>
+
+    <select id="selectLargeCameraById" parameterType="Long" resultMap="LargeCameraResult">
+        <include refid="selectLargeCameraVo"/>
+        where id = #{id}
+    </select>
+
+    <insert id="insertLargeCamera" parameterType="LargeCamera" useGeneratedKeys="true" keyProperty="id">
+        insert into large_camera
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="cameraName != null">camera_name,</if>
+            <if test="projectId != null">project_id,</if>
+            <if test="type != null">type,</if>
+            <if test="status != null">status,</if>
+            <if test="onlineFlag != null">online_flag,</if>
+            <if test="connectFlag != null">connect_flag,</if>
+            <if test="delFlag != null">del_flag,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="updateBy != null">update_by,</if>
+            <if test="updateTime != null">update_time,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="cameraName != null">#{cameraName},</if>
+            <if test="projectId != null">#{projectId},</if>
+            <if test="type != null">#{type},</if>
+            <if test="status != null">#{status},</if>
+            <if test="onlineFlag != null">#{onlineFlag},</if>
+            <if test="connectFlag != null">#{connectFlag},</if>
+            <if test="delFlag != null">#{delFlag},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+         </trim>
+    </insert>
+
+    <update id="updateLargeCamera" parameterType="LargeCamera">
+        update large_camera
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="cameraName != null">camera_name = #{cameraName},</if>
+            <if test="projectId != null">project_id = #{projectId},</if>
+            <if test="type != null">type = #{type},</if>
+            <if test="status != null">status = #{status},</if>
+            <if test="onlineFlag != null">online_flag = #{onlineFlag},</if>
+            <if test="connectFlag != null">connect_flag = #{connectFlag},</if>
+            <if test="delFlag != null">del_flag = #{delFlag},</if>
+            <if test="createBy != null">create_by = #{createBy},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteLargeCameraById" parameterType="Long">
+        delete from large_camera where id = #{id}
+    </delete>
+
+    <delete id="deleteLargeCameraByIds" parameterType="String">
+        delete from large_camera where id in
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+    <delete id="reallyDeleteByWrapper">
+        DELETE FROM large_camera ${ew.customSqlSegment}
+    </delete>
+
+    <select id="getCameraList" parameterType="Long" resultMap="LargeCameraResult">
+        select * from large_camera
+        where del_flag = '0' and project_id = #{projectId}
+    </select>
+
+    <select id="getCameraNum" resultType="int">
+        select count(*) from large_camera
+        where del_flag = '0'
+    </select>
+
+    <select id="getConnectCameraNumByProject" parameterType="Long" resultMap="LargeCameraResult">
+        <include refid="selectLargeCameraVo"/>
+        where connect_flag = '0' and del_flag = '0' and project_id = #{projectId}
+    </select>
+
+    <select id="getConnectOnlineCameraNum" resultType="int">
+        select count(*) from large_camera
+        where connect_flag = '0' and del_flag = '0' and online_flag = '0'
+    </select>
+
+</mapper>

+ 130 - 0
src/main/resources/mapper/zcustom/unit/LargeIssueMapper.xml

@@ -0,0 +1,130 @@
+<?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.project.zcustom.mapper.unit.LargeIssueMapper">
+
+    <resultMap type="com.project.zcustom.domain.addional.LargeIssue" id="LargeIssueResult">
+        <result property="id"    column="id"    />
+        <result property="description"    column="description"    />
+        <result property="projectId"    column="project_id"    />
+        <result property="projectName"    column="project_name"    />
+        <result property="status"    column="status"    />
+        <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>
+
+    <sql id="selectLargeIssueVo">
+        select id, description, project_id, status, del_flag, create_by, create_time, update_by, update_time from large_issue
+    </sql>
+
+    <select id="selectLargeIssueList" parameterType="LargeIssue" resultMap="LargeIssueResult">
+        select a.*, b.project_name
+        from large_issue a
+        left join large_project b
+        on a.project_id = b.id
+        <where>
+            <if test="description != null  and description != ''"> and description = #{description}</if>
+            <if test="projectId != null "> and a.project_id = #{projectId}</if>
+            <if test="status != null  and status != ''"> and status = #{status}</if>
+        </where>
+    </select>
+
+    <select id="selectLargeIssueById" parameterType="Long" resultMap="LargeIssueResult">
+        select a.*, b.project_name
+        from large_issue a
+        left join large_project b
+        on a.project_id = b.id
+        where a.id = #{id}
+    </select>
+
+    <insert id="insertLargeIssue" parameterType="LargeIssue">
+        insert into large_issue
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="id != null">id,</if>
+            <if test="description != null">description,</if>
+            <if test="projectId != null">project_id,</if>
+            <if test="status != null">status,</if>
+            <if test="delFlag != null">del_flag,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="updateBy != null">update_by,</if>
+            <if test="updateTime != null">update_time,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="id != null">#{id},</if>
+            <if test="description != null">#{description},</if>
+            <if test="projectId != null">#{projectId},</if>
+            <if test="status != null">#{status},</if>
+            <if test="delFlag != null">#{delFlag},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+         </trim>
+    </insert>
+
+    <update id="updateLargeIssue" parameterType="LargeIssue">
+        update large_issue
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="description != null">description = #{description},</if>
+            <if test="projectId != null">project_id = #{projectId},</if>
+            <if test="status != null">status = #{status},</if>
+            <if test="delFlag != null">del_flag = #{delFlag},</if>
+            <if test="createBy != null">create_by = #{createBy},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteLargeIssueById" parameterType="Long">
+        delete from large_issue where id = #{id}
+    </delete>
+
+    <delete id="deleteLargeIssueByIds" parameterType="String">
+        delete from large_issue where id in
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+    <delete id="reallyDeleteByWrapper">
+        DELETE FROM large_issue ${ew.customSqlSegment}
+    </delete>
+
+    <select id="getIssueNum" resultType="int">
+        SELECT
+            COUNT(*)
+        FROM
+            large_issue a
+                LEFT JOIN large_project b ON a.project_id = b.id
+        WHERE a.del_flag = 0 AND b.del_flag = 0
+    </select>
+
+    <select id="getOverIssueNum" resultType="int">
+        SELECT
+            COUNT(*)
+        FROM
+            large_issue a
+                LEFT JOIN large_project b ON a.project_id = b.id
+        WHERE a.del_flag = '0' AND b.del_flag = '0' AND a.`status` = '0'
+    </select>
+
+    <select id="getIssueListLastWeek" resultMap="LargeIssueResult">
+        SELECT
+            description,
+            `status`,
+            create_time
+        FROM
+            `large_issue`
+        WHERE
+            DATE(create_time) BETWEEN DATE_SUB( CURDATE(), INTERVAL ( DAYOFWEEK( CURDATE()) + 5 ) DAY )
+                AND DATE_SUB(
+                    CURDATE(),
+                    INTERVAL ( DAYOFWEEK( CURDATE()) - 1 ) DAY)
+    </select>
+</mapper>

+ 114 - 0
src/main/resources/mapper/zcustom/unit/LargePlanMapper.xml

@@ -0,0 +1,114 @@
+<?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.project.zcustom.mapper.unit.LargePlanMapper">
+
+    <resultMap type="LargePlan" id="LargePlanResult">
+        <result property="id"    column="id"    />
+        <result property="projectId"    column="project_id"    />
+        <result property="type"    column="type"    />
+        <result property="head"    column="head"    />
+        <result property="content"    column="content"    />
+        <result property="startTime"    column="start_time"    />
+        <result property="endTime"    column="end_time"    />
+        <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>
+
+    <sql id="selectLargePlanVo">
+        select id, project_id, type, head, content, start_time, end_time, create_by, create_time, update_by, update_time from large_plan
+    </sql>
+
+    <select id="selectLargePlanList" parameterType="LargePlan" resultMap="LargePlanResult">
+        <include refid="selectLargePlanVo"/>
+        <where>
+            <if test="projectId != null "> and project_id = #{projectId}</if>
+            <if test="type != null  and type != ''"> and type = #{type}</if>
+            <if test="head != null  and head != ''"> and head = #{head}</if>
+            <if test="content != null  and content != ''"> and content = #{content}</if>
+            <if test="startTime != null "> and start_time = #{startTime}</if>
+            <if test="endTime != null "> and end_time = #{endTime}</if>
+        </where>
+    </select>
+
+    <select id="selectLargePlanById" parameterType="Long" resultMap="LargePlanResult">
+        <include refid="selectLargePlanVo"/>
+        where id = #{id}
+    </select>
+
+    <insert id="insertLargePlan" parameterType="LargePlan" useGeneratedKeys="true" keyProperty="id">
+        insert into large_plan
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="projectId != null">project_id,</if>
+            <if test="type != null">type,</if>
+            <if test="head != null">head,</if>
+            <if test="content != null">content,</if>
+            <if test="startTime != null">start_time,</if>
+            <if test="endTime != null">end_time,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="updateBy != null">update_by,</if>
+            <if test="updateTime != null">update_time,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="projectId != null">#{projectId},</if>
+            <if test="type != null">#{type},</if>
+            <if test="head != null">#{head},</if>
+            <if test="content != null">#{content},</if>
+            <if test="startTime != null">#{startTime},</if>
+            <if test="endTime != null">#{endTime},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+         </trim>
+    </insert>
+
+    <update id="updateLargePlan" parameterType="LargePlan">
+        update large_plan
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="projectId != null">project_id = #{projectId},</if>
+            <if test="type != null">type = #{type},</if>
+            <if test="head != null">head = #{head},</if>
+            <if test="content != null">content = #{content},</if>
+            <if test="startTime != null">start_time = #{startTime},</if>
+            <if test="endTime != null">end_time = #{endTime},</if>
+            <if test="createBy != null">create_by = #{createBy},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteLargePlanById" parameterType="Long">
+        delete from large_plan where id = #{id}
+    </delete>
+
+    <delete id="deleteLargePlanByIds" parameterType="String">
+        delete from large_plan where id in
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+    <delete id="reallyDeleteByWrapper">
+        DELETE FROM large_plan ${ew.customSqlSegment}
+    </delete>
+
+    <select id="getCheckProjectNum" resultType="int">
+        SELECT
+            COUNT(*)
+        FROM
+            large_plan
+        WHERE
+            type = 0
+          AND DATE( start_time ) >= #{arg0}
+          OR DATE( end_time ) &lt;= #{arg1}
+        GROUP BY
+            `type`,
+            project_id
+    </select>
+</mapper>

+ 127 - 0
src/main/resources/mapper/zcustom/unit/LargeProjectMapper.xml

@@ -0,0 +1,127 @@
+<?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.project.zcustom.mapper.unit.LargeProjectMapper">
+
+    <resultMap type="com.project.zcustom.domain.addional.LargeProject" id="LargeProjectResult">
+        <result property="id"    column="id"    />
+        <result property="projectName"    column="project_name"    />
+        <result property="unitCode"    column="unit_code"    />
+        <result property="connectFlag"    column="connect_flag"    />
+        <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>
+
+    <sql id="selectLargeProjectVo">
+        select id, project_name, unit_code, connect_flag, del_flag, create_by, create_time, update_by, update_time from large_project
+    </sql>
+
+    <select id="selectLargeProjectList" parameterType="LargeProject" resultMap="LargeProjectResult">
+        <include refid="selectLargeProjectVo"/>
+        <where>
+            <if test="projectName != null  and projectName != ''"> and project_name like concat('%', #{projectName}, '%')</if>
+            <if test="unitCode != null "> and unit_code = #{unitCode}</if>
+            <if test="connectFlag != null  and connectFlag != ''"> and connect_flag = #{connectFlag}</if>
+        </where>
+    </select>
+
+    <insert id="insertLargeProject" parameterType="LargeProject" useGeneratedKeys="true" keyProperty="id">
+        insert into large_project
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="projectName != null">project_name,</if>
+            <if test="unitCode != null">unit_code,</if>
+            <if test="connectFlag != null">connect_flag,</if>
+            <if test="delFlag != null">del_flag,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="updateBy != null">update_by,</if>
+            <if test="updateTime != null">update_time,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="projectName != null">#{projectName},</if>
+            <if test="unitCode != null">#{unitCode},</if>
+            <if test="connectFlag != null">#{connectFlag},</if>
+            <if test="delFlag != null">#{delFlag},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+         </trim>
+    </insert>
+
+    <update id="updateLargeProject" parameterType="LargeProject">
+        update large_project
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="projectName != null">project_name = #{projectName},</if>
+            <if test="unitCode != null">unit_code = #{unitCode},</if>
+            <if test="connectFlag != null">connect_flag = #{connectFlag},</if>
+            <if test="delFlag != null">del_flag = #{delFlag},</if>
+            <if test="createBy != null">create_by = #{createBy},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteLargeProjectById" parameterType="Long">
+        delete from large_project where id = #{id}
+    </delete>
+
+    <delete id="deleteLargeProjectByIds" parameterType="String">
+        delete from large_project where id in
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+    <delete id="reallyDeleteByWrapper">
+        DELETE FROM large_project ${ew.customSqlSegment}
+    </delete>
+
+    <select id="getProjectNumX" parameterType="String" resultType="int">
+        select count(*) from large_project
+        where del_flag = '0' and type = '0' and subdivision = #{subdivision}
+    </select>
+
+    <select id="getProjectNumY" parameterType="String" resultType="int">
+        select count(*) from large_project
+        where del_flag = '0' and type = '2' and subdivision = #{subdivision}
+    </select>
+
+    <select id="getCameraNumList" parameterType="String" resultMap="LargeProjectResult">
+        SELECT
+            a.project_name,
+            COUNT(
+                    IF
+                        ( a.del_flag = 0 AND b.del_flag = 0, 1, NULL )) AS cameraNum
+        FROM
+            large_project a
+                LEFT JOIN large_camera b ON a.id = b.project_id
+        WHERE a.del_flag = 0 AND a.unit_code = #{unitCode}
+        GROUP BY a.id
+    </select>
+
+    <select id="getProjectNumThisWeek" resultType="int">
+        SELECT
+            COUNT(*)
+        FROM
+            large_plan a
+                LEFT JOIN large_project b ON a.project_id = b.id
+        WHERE
+            a.del_flag = '0'
+          AND b.del_flag = '0'
+          AND a.type = '0'
+          AND DATE(a.start_time) BETWEEN DATE_SUB( CURDATE(), INTERVAL ( DAYOFWEEK( CURDATE()) - 2 ) DAY )
+          AND DATE_ADD( CURDATE(), INTERVAL ( 8 - DAYOFWEEK( CURDATE())) DAY )
+           OR DATE(a.end_time) BETWEEN DATE_SUB( CURDATE(), INTERVAL ( DAYOFWEEK( CURDATE()) - 2 ) DAY )
+          AND DATE_ADD(
+            CURDATE(),
+            INTERVAL (
+            8 - DAYOFWEEK(
+            CURDATE())) DAY)
+    </select>
+</mapper>

+ 152 - 0
src/main/resources/mapper/zcustom/unit/LargeUnitMapper.xml

@@ -0,0 +1,152 @@
+<?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.project.zcustom.mapper.unit.LargeUnitMapper">
+
+    <resultMap type="com.project.zcustom.domain.addional.LargeUnit" id="LargeUnitResult">
+        <result property="id"    column="id"    />
+        <result property="delFlag"    column="del_flag"    />
+        <result property="connectFlag"    column="connect_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="unitCode"    column="unit_code"    />
+        <result property="unitName"    column="unit_name"    />
+        <result property="parentUnitCode"    column="parent_unit_code"    />
+    </resultMap>
+
+    <sql id="selectLargeUnitVo">
+        select id, del_flag, connect_flag, create_by, create_time, update_by, update_time, unit_name, unit_code, parent_unit_code from large_unit
+    </sql>
+
+    <select id="selectLargeUnitList" parameterType="LargeUnit" resultMap="LargeUnitResult">
+        <include refid="selectLargeUnitVo"/>
+        <where>
+            <if test="unitCode != null  and unitCode != ''"> and unit_code = #{unitCode}</if>
+            <if test="unitName != null  and unitName != ''"> and unit_name like concat('%', #{unitName}, '%')</if>
+        </where>
+    </select>
+
+    <select id="selectLargeUnitById" parameterType="Long" resultMap="LargeUnitResult">
+        <include refid="selectLargeUnitVo"/>
+        where id = #{id}
+    </select>
+
+    <insert id="insertLargeUnit" parameterType="LargeUnit" useGeneratedKeys="true" keyProperty="id">
+        insert into large_unit
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="delFlag != null">del_flag,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="updateBy != null">update_by,</if>
+            <if test="updateTime != null">update_time,</if>
+            <if test="appOrg != null">app_org,</if>
+            <if test="appName != null">app_name,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="delFlag != null">#{delFlag},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="appOrg != null">#{appOrg},</if>
+            <if test="appName != null">#{appName},</if>
+         </trim>
+    </insert>
+
+    <update id="updateLargeUnit" parameterType="LargeUnit">
+        update large_unit
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="delFlag != null">del_flag = #{delFlag},</if>
+            <if test="createBy != null">create_by = #{createBy},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="appOrg != null">app_org = #{appOrg},</if>
+            <if test="appName != null">app_name = #{appName},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteLargeUnitById" parameterType="Long">
+        delete from large_unit where id = #{id}
+    </delete>
+
+    <delete id="deleteLargeUnitByIds" parameterType="String">
+        delete from large_unit where id in
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+    <delete id="reallyDeleteByWrapper">
+        DELETE FROM large_unit ${ew.customSqlSegment}
+    </delete>
+
+    <select id="getProjectCameraNumList" resultMap="LargeUnitResult">
+        SELECT
+            c.unit_name,
+            COUNT(*) AS projectNum,
+            SUM(t.cameraNum) AS cameraNum
+        FROM
+            (
+                SELECT
+                    a.unit_code,
+                    COUNT(
+                            IF
+                                ( a.del_flag = 0 AND b.del_flag = 0, 1, NULL )) AS cameraNum
+                FROM
+                    large_project a
+                        LEFT JOIN large_camera b ON a.id = b.project_id
+                WHERE a.del_flag = 0
+                GROUP BY a.id
+            ) t
+                LEFT JOIN large_unit c ON t.unit_code = c.unit_code
+        WHERE c.del_flag = 0
+        GROUP BY
+            c.id
+    </select>
+
+
+    <select id="getConnectUnitNum" resultType="int">
+        select count(*) from large_unit
+        where connect_flag = '0' and del_flag = '0'
+    </select>
+
+    <select id="getAllCameraCondition" resultMap="LargeUnitResult">
+        SELECT
+            c.unit_code,
+            c.unit_name,
+            COUNT(
+                    IF
+                        ( a.del_flag = 0 AND a.connect_flag = 0, 1, NULL )) AS cameraNum,
+            COUNT(
+                    IF
+                        ( a.del_flag = 0 AND a.connect_flag = 0 AND a.online_flag = 0, 1, NULL )) AS onlineCameraNum
+        FROM
+            `large_camera` a
+                LEFT JOIN large_project b ON a.project_id = b.id
+                LEFT JOIN large_unit c ON b.unit_code = c.unit_code
+        GROUP BY
+            c.unit_code
+    </select>
+
+    <select id="getCameraConditionByAppOrg" parameterType="String" resultMap="LargeUnitResult">
+        SELECT
+            c.unit_code,
+            c.unit_name,
+            COUNT(
+                    IF
+                        ( a.del_flag = 0 AND a.connect_flag = 0, 1, NULL )) AS cameraNum,
+            COUNT(
+                    IF
+                        ( a.del_flag = 0 AND a.connect_flag = 0 AND a.online_flag = 0, 1, NULL )) AS onlineCameraNum
+        FROM
+            `large_camera` a
+                LEFT JOIN large_project b ON a.project_id = b.id
+                LEFT JOIN large_unit c ON b.unit_code = c.unit_code
+        WHERE
+            c.unit_code = #{unitCode}
+    </select>
+</mapper>

+ 174 - 0
src/main/resources/mapper/zcustom/unit/PlatBuildingMapper.xml

@@ -0,0 +1,174 @@
+<?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.project.zcustom.mapper.unit.PlatBuildingMapper">
+
+    <select id="getCount" resultType="int">
+        select count(*) from large_building
+    </select>
+
+    <select id="getPowerAndWaterMonth" resultType="String">
+        select json_power_water_month from large_building
+    </select>
+
+    <select id="getAirCondition" resultType="String">
+        select json_air from large_building
+    </select>
+
+    <select id="getTarget" resultType="String">
+        select json_target from large_building
+    </select>
+
+    <select id="useElectricity" resultType="String">
+        select json_use_electricity from large_building
+    </select>
+
+    <select id="greenElectricity" resultType="String">
+        select json_green_electricity from large_building
+    </select>
+
+    <select id="carbon" resultType="String">
+        select json_carbon from large_building
+    </select>
+
+    <select id="energyYear" resultType="String">
+        select json_energy_year from large_building
+    </select>
+
+    <select id="powerYear" resultType="String">
+        select json_power_year from large_building
+    </select>
+
+    <select id="waterYear" resultType="String">
+        select json_water_year from large_building
+    </select>
+
+    <select id="frequency" resultType="String">
+        select json_frequency from large_building
+    </select>
+
+    <select id="patrol" resultType="String">
+        select json_patrol from large_building
+    </select>
+
+    <select id="patrolPoint" resultType="String">
+        select json_patrol_point from large_building
+    </select>
+
+
+
+
+    <update id="updatePowerAndWaterMonth" parameterType="String">
+        update large_building
+        set json_power_water_month = #{res}
+    </update>
+
+    <update id="updateAirCondition" parameterType="String">
+        update large_building
+        set json_air = #{res}
+    </update>
+
+    <update id="updateTarget" parameterType="String">
+        update large_building
+        set json_target = #{res}
+    </update>
+
+    <update id="updateUseElectricity" parameterType="String">
+        update large_building
+        set json_use_electricity = #{res}
+    </update>
+
+    <update id="updateGreenElectricity" parameterType="String">
+        update large_building
+        set json_green_electricity = #{res}
+    </update>
+
+    <update id="updateCarbon" parameterType="String">
+        update large_building
+        set json_carbon = #{res}
+    </update>
+
+    <update id="updateEnergyYear" parameterType="String">
+        update large_building
+        set json_energy_year = #{res}
+    </update>
+
+    <update id="updatePowerYear" parameterType="String">
+        update large_building
+        set json_power_year = #{res}
+    </update>
+
+    <update id="updateWaterYear" parameterType="String">
+        update large_building
+        set json_water_year = #{res}
+    </update>
+
+    <update id="updateFrequency" parameterType="String">
+        update large_building
+        set json_frequency = #{res}
+    </update>
+
+    <update id="updatePatrol" parameterType="String">
+        update large_building
+        set json_patrol = #{res}
+    </update>
+
+    <update id="updatePatrolPoint" parameterType="String">
+        update large_building
+        set json_patrol_point = #{res}
+    </update>
+
+    <update id="updateBuilding" parameterType="LargeBuilding">
+        update large_building
+        <set>
+            <if test="jsonFrequency != null and jsonFrequency != '' ">json_frequency = #{jsonFrequency},</if>
+            <if test="jsonPatrol != null and jsonPatrol != '' ">json_patrol = #{jsonPatrol},</if>
+            <if test="jsonPatrolPoint != null and jsonPatrolPoint != '' ">json_patrol_point = #{jsonPatrolPoint},</if>
+            <if test="jsonPowerWaterMonth != null and jsonPowerWaterMonth != '' ">json_power_water_month = #{jsonPowerWaterMonth},</if>
+            <if test="jsonAir != null and jsonAir != ''">json_air = #{jsonAir},</if>
+            <if test="jsonTarget != null and jsonTarget != ''">json_target = #{jsonTarget},</if>
+            <if test="jsonUseElectricity != null and jsonUseElectricity != '' ">json_use_electricity = #{jsonUseElectricity},</if>
+            <if test="jsonGreenElectricity != null and jsonGreenElectricity != '' ">json_green_electricity = #{jsonGreenElectricity},</if>
+            <if test="jsonCarbon != null and jsonCarbon != ''">json_carbon = #{jsonCarbon},</if>
+            <if test="jsonEnergyYear != null and jsonEnergyYear != ''">json_energy_year = #{jsonEnergyYear},</if>
+            <if test="jsonPowerYear != null and jsonPowerYear != ''">json_power_year = #{jsonPowerYear},</if>
+            <if test="jsonWaterYear != null and jsonWaterYear != ''">json_water_year = #{jsonWaterYear},</if>
+            update_time = sysdate()
+        </set>
+        where del_flag = '0'
+    </update>
+
+
+    <insert id="insertBuilding" parameterType="LargeBuilding">
+        insert into large_building (
+        <if test="jsonFrequency != null and jsonFrequency != '' ">json_frequency,</if>
+        <if test="jsonPatrol != null and jsonPatrol != '' ">json_patrol,</if>
+        <if test="jsonPatrolPoint != null and jsonPatrolPoint != '' ">json_patrol_point,</if>
+        <if test="jsonPowerWaterMonth != null and jsonPowerWaterMonth != '' ">json_power_water_month,</if>
+        <if test="jsonAir != null and jsonAir != ''">json_air,</if>
+        <if test="jsonTarget != null and jsonTarget != ''">json_target,</if>
+        <if test="jsonUseElectricity != null and jsonUseElectricity != '' ">json_use_electricity,</if>
+        <if test="jsonGreenElectricity != null and jsonGreenElectricity != '' ">json_green_electricity,</if>
+        <if test="jsonCarbon != null and jsonCarbon != ''">json_carbon,</if>
+        <if test="jsonEnergyYear != null and jsonEnergyYear != ''">json_energy_year,</if>
+        <if test="jsonPowerYear != null and jsonPowerYear != ''">json_power_year,</if>
+        <if test="jsonWaterYear != null and jsonWaterYear != ''">json_water_year,</if>
+        del_flag, create_time
+        )values(
+        <if test="jsonFrequency != null and jsonFrequency != '' ">#{jsonFrequency},</if>
+        <if test="jsonPatrol != null and jsonPatrol != '' ">#{jsonPatrol},</if>
+        <if test="jsonPatrolPoint != null and jsonPatrolPoint != '' ">#{jsonPatrolPoint},</if>
+        <if test="jsonPowerWaterMonth != null and jsonPowerWaterMonth != '' ">#{jsonPowerWaterMonth},</if>
+        <if test="jsonAir != null and jsonAir != ''">#{jsonAir},</if>
+        <if test="jsonTarget != null and jsonTarget != ''">#{jsonTarget},</if>
+        <if test="jsonUseElectricity != null and jsonUseElectricity != '' ">#{jsonUseElectricity},</if>
+        <if test="jsonGreenElectricity != null and jsonGreenElectricity != '' ">#{jsonGreenElectricity},</if>
+        <if test="jsonCarbon != null and jsonCarbon != ''">#{jsonCarbon},</if>
+        <if test="jsonEnergyYear != null and jsonEnergyYear != ''">#{jsonEnergyYear},</if>
+        <if test="jsonPowerYear != null and jsonPowerYear != ''">#{jsonPowerYear},</if>
+        <if test="jsonWaterYear != null and jsonWaterYear != ''">#{jsonWaterYear},</if>
+        '0', sysdate()
+        )
+    </insert>
+</mapper>