Ver código fonte

前端管理界面接口---

zhanghao 3 meses atrás
pai
commit
267c49aa88
30 arquivos alterados com 3079 adições e 0 exclusões
  1. 97 0
      project-zcustom/src/main/java/com/project/zcustom/controller/unit/LargeCameraController.java
  2. 74 0
      project-zcustom/src/main/java/com/project/zcustom/controller/unit/LargeIssueController.java
  3. 83 0
      project-zcustom/src/main/java/com/project/zcustom/controller/unit/LargePlanController.java
  4. 98 0
      project-zcustom/src/main/java/com/project/zcustom/controller/unit/LargeProjectController.java
  5. 98 0
      project-zcustom/src/main/java/com/project/zcustom/controller/unit/LargeUnitController.java
  6. 77 0
      project-zcustom/src/main/java/com/project/zcustom/domain/unit/LargeCamera.java
  7. 56 0
      project-zcustom/src/main/java/com/project/zcustom/domain/unit/LargeIssue.java
  8. 81 0
      project-zcustom/src/main/java/com/project/zcustom/domain/unit/LargePlan.java
  9. 56 0
      project-zcustom/src/main/java/com/project/zcustom/domain/unit/LargeProject.java
  10. 63 0
      project-zcustom/src/main/java/com/project/zcustom/domain/unit/LargeUnit.java
  11. 75 0
      project-zcustom/src/main/java/com/project/zcustom/mapper/unit/LargeCameraMapper.java
  12. 71 0
      project-zcustom/src/main/java/com/project/zcustom/mapper/unit/LargeIssueMapper.java
  13. 74 0
      project-zcustom/src/main/java/com/project/zcustom/mapper/unit/LargePlanMapper.java
  14. 77 0
      project-zcustom/src/main/java/com/project/zcustom/mapper/unit/LargeProjectMapper.java
  15. 77 0
      project-zcustom/src/main/java/com/project/zcustom/mapper/unit/LargeUnitMapper.java
  16. 95 0
      project-zcustom/src/main/java/com/project/zcustom/service/unit/ILargeCameraService.java
  17. 89 0
      project-zcustom/src/main/java/com/project/zcustom/service/unit/ILargeIssueService.java
  18. 93 0
      project-zcustom/src/main/java/com/project/zcustom/service/unit/ILargePlanService.java
  19. 93 0
      project-zcustom/src/main/java/com/project/zcustom/service/unit/ILargeProjectService.java
  20. 95 0
      project-zcustom/src/main/java/com/project/zcustom/service/unit/ILargeUnitService.java
  21. 191 0
      project-zcustom/src/main/java/com/project/zcustom/service/unit/impl/LargeCameraServiceImpl.java
  22. 167 0
      project-zcustom/src/main/java/com/project/zcustom/service/unit/impl/LargeIssueServiceImpl.java
  23. 185 0
      project-zcustom/src/main/java/com/project/zcustom/service/unit/impl/LargePlanServiceImpl.java
  24. 183 0
      project-zcustom/src/main/java/com/project/zcustom/service/unit/impl/LargeProjectServiceImpl.java
  25. 181 0
      project-zcustom/src/main/java/com/project/zcustom/service/unit/impl/LargeUnitServiceImpl.java
  26. 120 0
      project-zcustom/src/main/resources/mapper/zcustom/unit/LargeCameraMapper.xml
  27. 91 0
      project-zcustom/src/main/resources/mapper/zcustom/unit/LargeIssueMapper.xml
  28. 114 0
      project-zcustom/src/main/resources/mapper/zcustom/unit/LargePlanMapper.xml
  29. 99 0
      project-zcustom/src/main/resources/mapper/zcustom/unit/LargeProjectMapper.xml
  30. 126 0
      project-zcustom/src/main/resources/mapper/zcustom/unit/LargeUnitMapper.xml

+ 97 - 0
project-zcustom/src/main/java/com/project/zcustom/controller/unit/LargeCameraController.java

@@ -0,0 +1,97 @@
+package com.project.zcustom.controller.unit;
+
+import com.project.common.annotation.Log;
+import com.project.common.core.controller.BaseController;
+import com.project.common.core.domain.AjaxResult;
+import com.project.common.enums.BusinessType;
+import com.project.common.utils.poi.ExcelUtil;
+import com.project.zcustom.domain.unit.LargeCamera;
+import com.project.zcustom.service.unit.ILargeCameraService;
+import lombok.RequiredArgsConstructor;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.*;
+import javax.servlet.http.HttpServletResponse;
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * 摄像头Controller
+ *
+ * @author change
+ * @date 2024-12-30
+ */
+@RestController
+@RequestMapping("/zcustom/camera")
+@RequiredArgsConstructor(onConstructor_ = @Autowired)
+public class LargeCameraController extends BaseController {
+
+    private final ILargeCameraService largeCameraService;
+
+    @GetMapping("/list")
+    public AjaxResult list(LargeCamera entity) {
+        return AjaxResult.success("查询成功", largeCameraService.pagingLargeCameraList(entity));
+    }
+
+    @GetMapping("/listAll")
+    public AjaxResult listAll(LargeCamera entity) {
+        return AjaxResult.success("查询成功", largeCameraService.selectLargeCameraList(entity));
+    }
+
+    @Log(title = "摄像头", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, LargeCamera entity) {
+        List<LargeCamera> list = largeCameraService.selectLargeCameraList(entity);
+        ExcelUtil<LargeCamera> util = new ExcelUtil<>(LargeCamera.class);
+        util.exportExcel(response, list, "摄像头数据");
+    }
+
+    @GetMapping(value = "/getInfo/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id) {
+        return AjaxResult.success("查询成功", largeCameraService.getById(id));
+    }
+
+    @PreAuthorize("@ss.hasPermi('zcustom:camera:add')")
+    @Log(title = "摄像头", businessType = BusinessType.INSERT)
+    @PostMapping("add")
+    public AjaxResult add(@RequestBody LargeCamera entity) {
+        return toAjax(largeCameraService.save(entity));
+    }
+
+    @PreAuthorize("@ss.hasPermi('zcustom:camera:edit')")
+    @Log(title = "摄像头", businessType = BusinessType.UPDATE)
+    @PostMapping("edit")
+    public AjaxResult edit(@RequestBody LargeCamera entity) {
+        return toAjax(largeCameraService.updateById(entity));
+    }
+
+    @PreAuthorize("@ss.hasPermi('zcustom:camera:remove')")
+    @Log(title = "摄像头", businessType = BusinessType.DELETE)
+	@GetMapping("/remove/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids) {
+        return toAjax(largeCameraService.removeByIds(Arrays.asList(ids)) ? 1 : 0);
+    }
+
+    /**
+     * 已接入摄像头数量
+     */
+    @GetMapping("/getConnectCameraNum")
+    public AjaxResult getConnectCameraNum() {
+        return AjaxResult.success("查询成功", largeCameraService.getConnectCameraNum());
+    }
+    /**
+     * 某项目已接入摄像头
+     */
+    @GetMapping("/getConnectCameraNumByProject/{projectId}")
+    public AjaxResult getConnectCameraNumByProject(@PathVariable Long projectId){
+        return AjaxResult.success("查询成功", largeCameraService.getConnectCameraNumByProject(projectId));
+    }
+
+    /**
+     * 在线摄像头数量
+     */
+    @GetMapping("/getConnectOnlineCameraNum")
+    public AjaxResult getConnectOnlineCameraNum() {
+        return AjaxResult.success("查询成功", largeCameraService.getConnectOnlineCameraNum());
+    }
+}

+ 74 - 0
project-zcustom/src/main/java/com/project/zcustom/controller/unit/LargeIssueController.java

@@ -0,0 +1,74 @@
+package com.project.zcustom.controller.unit;
+
+import com.project.common.annotation.Log;
+import com.project.common.core.controller.BaseController;
+import com.project.common.core.domain.AjaxResult;
+import com.project.common.enums.BusinessType;
+import com.project.common.utils.poi.ExcelUtil;
+import com.project.zcustom.domain.unit.LargeIssue;
+import com.project.zcustom.service.unit.ILargeIssueService;
+import lombok.RequiredArgsConstructor;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.*;
+import javax.servlet.http.HttpServletResponse;
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * 上报问题Controller
+ *
+ * @author change
+ * @date 2024-12-30
+ */
+@RestController
+@RequestMapping("/zcustom/issue")
+@RequiredArgsConstructor(onConstructor_ = @Autowired)
+public class LargeIssueController extends BaseController {
+
+    private final ILargeIssueService largeIssueService;
+
+    @GetMapping("/list")
+    public AjaxResult list(LargeIssue entity) {
+        return AjaxResult.success("查询成功", largeIssueService.pagingLargeIssueList(entity));
+    }
+
+    @GetMapping("/listAll")
+    public AjaxResult listAll(LargeIssue entity) {
+        return AjaxResult.success("查询成功", largeIssueService.selectLargeIssueList(entity));
+    }
+
+    @Log(title = "上报问题", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, LargeIssue entity) {
+        List<LargeIssue> list = largeIssueService.selectLargeIssueList(entity);
+        ExcelUtil<LargeIssue> util = new ExcelUtil<>(LargeIssue.class);
+        util.exportExcel(response, list, "上报问题数据");
+    }
+
+    @GetMapping(value = "/getInfo/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id) {
+        return AjaxResult.success("查询成功", largeIssueService.getById(id));
+    }
+
+    @PreAuthorize("@ss.hasPermi('zcustom:issue:add')")
+    @Log(title = "上报问题", businessType = BusinessType.INSERT)
+    @PostMapping("add")
+    public AjaxResult add(@RequestBody LargeIssue entity) {
+        return toAjax(largeIssueService.save(entity));
+    }
+
+    @PreAuthorize("@ss.hasPermi('zcustom:issue:edit')")
+    @Log(title = "上报问题", businessType = BusinessType.UPDATE)
+    @PostMapping("edit")
+    public AjaxResult edit(@RequestBody LargeIssue entity) {
+        return toAjax(largeIssueService.updateById(entity));
+    }
+
+    @PreAuthorize("@ss.hasPermi('zcustom:issue:remove')")
+    @Log(title = "上报问题", businessType = BusinessType.DELETE)
+	@GetMapping("/remove/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids) {
+        return toAjax(largeIssueService.removeByIds(Arrays.asList(ids)) ? 1 : 0);
+    }
+}

+ 83 - 0
project-zcustom/src/main/java/com/project/zcustom/controller/unit/LargePlanController.java

@@ -0,0 +1,83 @@
+package com.project.zcustom.controller.unit;
+
+import com.project.common.annotation.Log;
+import com.project.common.core.controller.BaseController;
+import com.project.common.core.domain.AjaxResult;
+import com.project.common.enums.BusinessType;
+import com.project.common.utils.poi.ExcelUtil;
+import com.project.zcustom.domain.unit.LargePlan;
+import com.project.zcustom.service.unit.ILargePlanService;
+import lombok.RequiredArgsConstructor;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.*;
+import javax.servlet.http.HttpServletResponse;
+import java.util.Arrays;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 工程计划Controller
+ *
+ * @author change
+ * @date 2024-12-30
+ */
+@RestController
+@RequestMapping("/zcustom/plan")
+@RequiredArgsConstructor(onConstructor_ = @Autowired)
+public class LargePlanController extends BaseController {
+
+    private final ILargePlanService largePlanService;
+
+    @GetMapping("/list")
+    public AjaxResult list(LargePlan entity) {
+        return AjaxResult.success("查询成功", largePlanService.pagingLargePlanList(entity));
+    }
+
+    @GetMapping("/listAll")
+    public AjaxResult listAll(LargePlan entity) {
+        return AjaxResult.success("查询成功", largePlanService.selectLargePlanList(entity));
+    }
+
+    @Log(title = "工程计划", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, LargePlan entity) {
+        List<LargePlan> list = largePlanService.selectLargePlanList(entity);
+        ExcelUtil<LargePlan> util = new ExcelUtil<>(LargePlan.class);
+        util.exportExcel(response, list, "工程计划数据");
+    }
+
+    @GetMapping(value = "/getInfo/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id) {
+        return AjaxResult.success("查询成功", largePlanService.getById(id));
+    }
+
+    @PreAuthorize("@ss.hasPermi('zcustom:plan:add')")
+    @Log(title = "工程计划", businessType = BusinessType.INSERT)
+    @PostMapping("add")
+    public AjaxResult add(@RequestBody LargePlan entity) {
+        return toAjax(largePlanService.save(entity));
+    }
+
+    @PreAuthorize("@ss.hasPermi('zcustom:plan:edit')")
+    @Log(title = "工程计划", businessType = BusinessType.UPDATE)
+    @PostMapping("edit")
+    public AjaxResult edit(@RequestBody LargePlan entity) {
+        return toAjax(largePlanService.updateById(entity));
+    }
+
+    @PreAuthorize("@ss.hasPermi('zcustom:plan:remove')")
+    @Log(title = "工程计划", businessType = BusinessType.DELETE)
+	@GetMapping("/remove/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids) {
+        return toAjax(largePlanService.removeByIds(Arrays.asList(ids)) ? 1 : 0);
+    }
+
+    /**
+     * 本周检查项目数
+     */
+    @GetMapping(value = "/getCheckProjectNum")
+    public AjaxResult getCheckProjectNum(@RequestParam Date startDate, @RequestParam Date endDate){
+        return AjaxResult.success("查询成功", largePlanService.getCheckProjectNum(startDate, endDate));
+    }
+}

+ 98 - 0
project-zcustom/src/main/java/com/project/zcustom/controller/unit/LargeProjectController.java

@@ -0,0 +1,98 @@
+package com.project.zcustom.controller.unit;
+
+import com.project.common.annotation.Log;
+import com.project.common.core.controller.BaseController;
+import com.project.common.core.domain.AjaxResult;
+import com.project.common.enums.BusinessType;
+import com.project.common.utils.poi.ExcelUtil;
+import com.project.zcustom.domain.unit.LargeProject;
+import com.project.zcustom.service.unit.ILargeProjectService;
+import lombok.RequiredArgsConstructor;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.*;
+import javax.servlet.http.HttpServletResponse;
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * 工程项目Controller
+ *
+ * @author change
+ * @date 2024-12-30
+ */
+@RestController
+@RequestMapping("/zcustom/project")
+@RequiredArgsConstructor(onConstructor_ = @Autowired)
+public class LargeProjectController extends BaseController {
+
+    private final ILargeProjectService largeProjectService;
+
+    @GetMapping("/list")
+    public AjaxResult list(LargeProject entity) {
+        return AjaxResult.success("查询成功", largeProjectService.pagingLargeProjectList(entity));
+    }
+
+    @GetMapping("/listAll")
+    public AjaxResult listAll(LargeProject entity) {
+        return AjaxResult.success("查询成功", largeProjectService.selectLargeProjectList(entity));
+    }
+
+    @Log(title = "工程项目", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, LargeProject entity) {
+        List<LargeProject> list = largeProjectService.selectLargeProjectList(entity);
+        ExcelUtil<LargeProject> util = new ExcelUtil<>(LargeProject.class);
+        util.exportExcel(response, list, "工程项目数据");
+    }
+
+    @GetMapping(value = "/getInfo/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id) {
+        return AjaxResult.success("查询成功", largeProjectService.getById(id));
+    }
+
+    @PreAuthorize("@ss.hasPermi('zcustom:project:add')")
+    @Log(title = "工程项目", businessType = BusinessType.INSERT)
+    @PostMapping("add")
+    public AjaxResult add(@RequestBody LargeProject entity) {
+        return toAjax(largeProjectService.save(entity));
+    }
+
+    @PreAuthorize("@ss.hasPermi('zcustom:project:edit')")
+    @Log(title = "工程项目", businessType = BusinessType.UPDATE)
+    @PostMapping("edit")
+    public AjaxResult edit(@RequestBody LargeProject entity) {
+        return toAjax(largeProjectService.updateById(entity));
+    }
+
+    @PreAuthorize("@ss.hasPermi('zcustom:project:remove')")
+    @Log(title = "工程项目", businessType = BusinessType.DELETE)
+	@GetMapping("/remove/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids) {
+        return toAjax(largeProjectService.removeByIds(Arrays.asList(ids)) ? 1 : 0);
+    }
+
+    /**
+     * 应接入项目数量
+     */
+    @GetMapping("/getProjectNum")
+    public AjaxResult getProjectNum() {
+        return AjaxResult.success("查询成功", largeProjectService.getProjectNum());
+    }
+
+    /**
+     * 已接入项目数量
+     */
+    @GetMapping("/getConnectProjectNum")
+    public AjaxResult getConnectProjectNum() {
+        return AjaxResult.success("查询成功", largeProjectService.getConnectProjectNum());
+    }
+
+    /**
+     * 某单位已接入项目
+     */
+    @GetMapping("/getConnectProjectByUnit/{appOrg}")
+    public AjaxResult getConnectProjectByUnit(@PathVariable String appOrg) {
+        return AjaxResult.success("查询成功", largeProjectService.getConnectProjectByUnit(appOrg));
+    }
+}

+ 98 - 0
project-zcustom/src/main/java/com/project/zcustom/controller/unit/LargeUnitController.java

@@ -0,0 +1,98 @@
+package com.project.zcustom.controller.unit;
+
+import com.project.common.annotation.Log;
+import com.project.common.core.controller.BaseController;
+import com.project.common.core.domain.AjaxResult;
+import com.project.common.enums.BusinessType;
+import com.project.common.utils.poi.ExcelUtil;
+import com.project.zcustom.domain.unit.LargeUnit;
+import com.project.zcustom.service.unit.ILargeUnitService;
+import lombok.RequiredArgsConstructor;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.*;
+import javax.servlet.http.HttpServletResponse;
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * 地区编码Controller
+ *
+ * @author change
+ * @date 2024-12-30
+ */
+@RestController
+@RequestMapping("/zcustom/platAppOrg")
+@RequiredArgsConstructor(onConstructor_ = @Autowired)
+public class LargeUnitController extends BaseController {
+
+    private final ILargeUnitService largeUnitService;
+
+    @GetMapping("/list")
+    public AjaxResult list(LargeUnit entity) {
+        return AjaxResult.success("查询成功", largeUnitService.pagingLargeUnitList(entity));
+    }
+
+    @GetMapping("/listAll")
+    public AjaxResult listAll(LargeUnit entity) {
+        return AjaxResult.success("查询成功", largeUnitService.selectLargeUnitList(entity));
+    }
+
+    @Log(title = "地区编码", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, LargeUnit entity) {
+        List<LargeUnit> list = largeUnitService.selectLargeUnitList(entity);
+        ExcelUtil<LargeUnit> util = new ExcelUtil<>(LargeUnit.class);
+        util.exportExcel(response, list, "地区编码数据");
+    }
+
+    @GetMapping(value = "/getInfo/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id) {
+        return AjaxResult.success("查询成功", largeUnitService.getById(id));
+    }
+
+    @PreAuthorize("@ss.hasPermi('zcustom:platAppOrg:add')")
+    @Log(title = "地区编码", businessType = BusinessType.INSERT)
+    @PostMapping("add")
+    public AjaxResult add(@RequestBody LargeUnit entity) {
+        return toAjax(largeUnitService.save(entity));
+    }
+
+    @PreAuthorize("@ss.hasPermi('zcustom:platAppOrg:edit')")
+    @Log(title = "地区编码", businessType = BusinessType.UPDATE)
+    @PostMapping("edit")
+    public AjaxResult edit(@RequestBody LargeUnit entity) {
+        return toAjax(largeUnitService.updateById(entity));
+    }
+
+    @PreAuthorize("@ss.hasPermi('zcustom:platAppOrg:remove')")
+    @Log(title = "地区编码", businessType = BusinessType.DELETE)
+	@GetMapping("/remove/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids) {
+        return toAjax(largeUnitService.removeByIds(Arrays.asList(ids)) ? 1 : 0);
+    }
+
+    /**
+     * 接入单位数量
+     */
+    @GetMapping("/getConnectUnitNum")
+    public AjaxResult getConnectUnitNum() {
+        return AjaxResult.success("查询成功", largeUnitService.getConnectUnitNum());
+    }
+
+    /**
+     * 各单位已接入摄像头数量(在线和离线)
+     */
+    @GetMapping("/getAllCameraCondition")
+    public AjaxResult getAllCameraCondition(){
+        return AjaxResult.success("查询成功", largeUnitService.getAllCameraCondition());
+    }
+
+    /**
+     * 某单位已接入摄像头数量(在线和离线)
+     */
+    @GetMapping("/getCameraConditionByAppOrg/{appOrg}")
+    public AjaxResult getCameraConditionByAppOrg(@PathVariable String appOrg){
+        return AjaxResult.success("查询成功", largeUnitService.getCameraConditionByAppOrg(appOrg));
+    }
+}

+ 77 - 0
project-zcustom/src/main/java/com/project/zcustom/domain/unit/LargeCamera.java

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

+ 56 - 0
project-zcustom/src/main/java/com/project/zcustom/domain/unit/LargeIssue.java

@@ -0,0 +1,56 @@
+package com.project.zcustom.domain.unit;
+
+import com.project.common.annotation.Excel;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.project.common.core.domain.CustomBaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+import lombok.experimental.Accessors;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+/**
+ * 上报问题对象 large_issue
+ *
+ * @author change
+ * @date 2024-12-30
+ */
+@Data
+@Accessors(chain = true)
+@ToString(callSuper = true)
+@EqualsAndHashCode(callSuper = false)
+@TableName("large_issue")
+@ApiModel(value = "large_issue实体类")
+public class LargeIssue extends CustomBaseEntity {
+
+    /**
+     * 问题id
+     */
+    @TableId(value = "id")
+    @ApiModelProperty("问题id")
+    private Long id;
+
+    /**
+     * 问题描述
+     */
+    @Excel(name = "问题描述")
+    @ApiModelProperty("问题描述")
+    private String description;
+
+    /**
+     * 所属项目id
+     */
+    @Excel(name = "所属项目id")
+    @ApiModelProperty("所属项目id")
+    private Integer projectId;
+
+    /**
+     * 问题状态(0代表已解决  2代表待解决)
+     */
+    @Excel(name = "问题状态", readConverterExp = "0=代表已解决,2=代表待解决")
+    @ApiModelProperty("问题状态(0代表已解决  2代表待解决)")
+    private String status;
+
+}

+ 81 - 0
project-zcustom/src/main/java/com/project/zcustom/domain/unit/LargePlan.java

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

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

@@ -0,0 +1,56 @@
+package com.project.zcustom.domain.unit;
+
+import com.project.common.annotation.Excel;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.project.common.core.domain.CustomBaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+import lombok.experimental.Accessors;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+/**
+ * 工程项目对象 large_project
+ *
+ * @author change
+ * @date 2024-12-30
+ */
+@Data
+@Accessors(chain = true)
+@ToString(callSuper = true)
+@EqualsAndHashCode(callSuper = false)
+@TableName("large_project")
+@ApiModel(value = "large_project实体类")
+public class LargeProject extends CustomBaseEntity {
+
+    /**
+     * 项目id
+     */
+    @TableId(value = "id")
+    @ApiModelProperty("项目id")
+    private Long id;
+
+    /**
+     * 项目名称
+     */
+    @Excel(name = "项目名称")
+    @ApiModelProperty("项目名称")
+    private String projectName;
+
+    /**
+     * 所属单位id
+     */
+    @Excel(name = "所属单位id")
+    @ApiModelProperty("所属单位id")
+    private String unitId;
+
+    /**
+     * 接入标志(0代表接入 2代表未接入)
+     */
+    @Excel(name = "接入标志", readConverterExp = "0=代表接入,2=代表未接入")
+    @ApiModelProperty("接入标志(0代表接入 2代表未接入)")
+    private String connectFlag;
+
+}

+ 63 - 0
project-zcustom/src/main/java/com/project/zcustom/domain/unit/LargeUnit.java

@@ -0,0 +1,63 @@
+package com.project.zcustom.domain.unit;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.project.common.annotation.Excel;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.project.common.core.domain.CustomBaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+import lombok.experimental.Accessors;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+/**
+ * 地区编码对象 large_plat_app_org
+ *
+ * @author change
+ * @date 2024-12-30
+ */
+@Data
+@Accessors(chain = true)
+@ToString(callSuper = true)
+@EqualsAndHashCode(callSuper = false)
+@TableName("large_plat_app_org")
+@ApiModel(value = "large_plat_app_org实体类")
+public class LargeUnit extends CustomBaseEntity {
+
+    /**
+     * $column.columnComment
+     */
+    @TableId(value = "id")
+    @ApiModelProperty("$column.columnComment")
+    private Long id;
+
+    /**
+     * 地区编码
+     */
+    @Excel(name = "地区编码")
+    @ApiModelProperty("地区编码")
+    private String appOrg;
+
+    /**
+     * 地区名称
+     */
+    @Excel(name = "地区名称")
+    @ApiModelProperty("地区名称")
+    private String appName;
+
+    /**
+     * 接入标志
+     */
+    @Excel(name = "接入标志")
+    @ApiModelProperty("接入标志")
+    private String connectFlag;
+
+    @TableField(exist = false)
+    private Long cameraNum;
+
+    @TableField(exist = false)
+    private Long onlineCameraNum;
+
+}

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

@@ -0,0 +1,75 @@
+package com.project.zcustom.mapper.unit;
+
+import java.util.List;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.project.zcustom.domain.unit.LargeCamera;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Constants;
+import org.apache.ibatis.annotations.Param;
+
+
+/**
+ * 摄像头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 int getConnectCameraNum();
+    public List<LargeCamera> getConnectCameraNumByProject(Long projectId);
+    public int getConnectOnlineCameraNum();
+}

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

@@ -0,0 +1,71 @@
+package com.project.zcustom.mapper.unit;
+
+import java.util.List;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.project.zcustom.domain.unit.LargeIssue;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Constants;
+import org.apache.ibatis.annotations.Param;
+
+
+/**
+ * 上报问题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);
+}

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

@@ -0,0 +1,74 @@
+package com.project.zcustom.mapper.unit;
+
+import java.util.Date;
+import java.util.List;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.project.zcustom.domain.unit.LargePlan;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Constants;
+import org.apache.ibatis.annotations.Param;
+
+
+/**
+ * 工程计划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);
+}

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

@@ -0,0 +1,77 @@
+package com.project.zcustom.mapper.unit;
+
+import java.util.List;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.project.zcustom.domain.unit.LargeProject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Constants;
+import org.apache.ibatis.annotations.Param;
+
+
+/**
+ * 工程项目Mapper接口
+ *
+ * @author change
+ * @date 2024-12-30
+ */
+public interface LargeProjectMapper extends BaseMapper<LargeProject>
+{
+    /**
+     * 查询工程项目
+     *
+     * @param id 工程项目主键
+     * @return 工程项目
+     */
+    public LargeProject selectLargeProjectById(Long id);
+
+    /**
+     * 查询工程项目列表
+     *
+     * @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 getProjectNum();
+
+    public int getConnectProjectNum();
+
+    public List<LargeProject> getConnectProjectByUnit(String appOrg);
+}

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

@@ -0,0 +1,77 @@
+package com.project.zcustom.mapper.unit;
+
+import java.util.List;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.project.zcustom.domain.unit.LargeUnit;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Constants;
+import org.apache.ibatis.annotations.Param;
+
+
+/**
+ * 地区编码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 int getConnectUnitNum();
+
+    public List<LargeUnit> getAllCameraCondition();
+
+    public LargeUnit getCameraConditionByAppOrg(String appOrg);
+}

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

@@ -0,0 +1,95 @@
+package com.project.zcustom.service.unit;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.project.zcustom.domain.unit.LargeCamera;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.project.common.core.domain.search.PageParamVo;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.project.zcustom.domain.unit.LargeUnit;
+
+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 int getConnectCameraNum();
+    public List<LargeCamera> getConnectCameraNumByProject(Long projectId);
+    public int getConnectOnlineCameraNum();
+}

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

@@ -0,0 +1,89 @@
+package com.project.zcustom.service.unit;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.project.zcustom.domain.unit.LargeIssue;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.project.common.core.domain.search.PageParamVo;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+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);
+}

+ 93 - 0
project-zcustom/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.common.core.domain.search.PageParamVo;
+import com.project.zcustom.domain.unit.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);
+}

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

@@ -0,0 +1,93 @@
+package com.project.zcustom.service.unit;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.project.zcustom.domain.unit.LargeProject;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.project.common.core.domain.search.PageParamVo;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+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 getProjectNum();
+    public int getConnectProjectNum();
+    public List<LargeProject> getConnectProjectByUnit(String appOrg);
+}

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

@@ -0,0 +1,95 @@
+package com.project.zcustom.service.unit;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.project.zcustom.domain.unit.LargeUnit;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.project.common.core.domain.search.PageParamVo;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+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 int getConnectUnitNum();
+
+    public List<LargeUnit> getAllCameraCondition();
+
+    public LargeUnit getCameraConditionByAppOrg(String appOrg);
+}

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

@@ -0,0 +1,191 @@
+package com.project.zcustom.service.unit.impl;
+
+import com.project.zcustom.domain.unit.LargeCamera;
+import com.project.zcustom.domain.unit.LargeUnit;
+import com.project.zcustom.mapper.unit.LargeCameraMapper;
+import com.project.zcustom.service.unit.ILargeCameraService;
+import com.project.common.core.domain.search.PageParamVo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.project.common.utils.StringUtils;
+
+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 int getConnectCameraNum(){
+        return largeCameraMapper.getConnectCameraNum();
+    }
+    public List<LargeCamera> getConnectCameraNumByProject(Long projectId){
+        return largeCameraMapper.getConnectCameraNumByProject(projectId);
+    }
+    public int getConnectOnlineCameraNum(){
+        return largeCameraMapper.getConnectOnlineCameraNum();
+    }
+}

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

@@ -0,0 +1,167 @@
+package com.project.zcustom.service.unit.impl;
+
+import com.project.zcustom.domain.unit.LargeIssue;
+import com.project.zcustom.mapper.unit.LargeIssueMapper;
+import com.project.zcustom.service.unit.ILargeIssueService;
+import com.project.common.core.domain.search.PageParamVo;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.project.common.utils.StringUtils;
+
+import java.util.List;
+
+/**
+ * 上报问题Service业务层处理
+ *
+ * @author change
+ * @date 2024-12-30
+ */
+@Service
+public class LargeIssueServiceImpl extends ServiceImpl<LargeIssueMapper, LargeIssue> implements ILargeIssueService {
+
+    /**
+     * 组装查询条件
+     */
+    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);
+    }
+}

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

@@ -0,0 +1,185 @@
+package com.project.zcustom.service.unit.impl;
+
+import com.project.zcustom.domain.unit.LargePlan;
+import com.project.zcustom.mapper.unit.LargePlanMapper;
+import com.project.zcustom.service.unit.ILargePlanService;
+import com.project.common.core.domain.search.PageParamVo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.project.common.utils.StringUtils;
+
+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);
+    }
+}

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

@@ -0,0 +1,183 @@
+package com.project.zcustom.service.unit.impl;
+
+import com.project.zcustom.domain.unit.LargeProject;
+import com.project.zcustom.mapper.unit.LargeProjectMapper;
+import com.project.zcustom.service.unit.ILargeProjectService;
+import com.project.common.core.domain.search.PageParamVo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.project.common.utils.StringUtils;
+
+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.getUnitId())){
+                        lqw.eq(LargeProject::getUnitId ,largeProject.getUnitId());
+                    }
+                        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 getProjectNum() {
+        return largeProjectMapper.getProjectNum();
+    }
+
+    public int getConnectProjectNum() {
+        return largeProjectMapper.getConnectProjectNum();
+    }
+
+    public List<LargeProject> getConnectProjectByUnit(String appOrg){
+        return largeProjectMapper.getConnectProjectByUnit(appOrg);
+    }
+}

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

@@ -0,0 +1,181 @@
+package com.project.zcustom.service.unit.impl;
+
+import com.project.zcustom.domain.unit.LargeUnit;
+import com.project.zcustom.mapper.unit.LargeUnitMapper;
+import com.project.zcustom.service.unit.ILargeUnitService;
+import com.project.common.core.domain.search.PageParamVo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.project.common.utils.StringUtils;
+
+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.getAppOrg())){
+                        lqw.eq(LargeUnit::getAppOrg ,largeUnit.getAppOrg());
+                    }
+                        if (StringUtils.isNotBlank(largeUnit.getAppName())){
+                        lqw.like(LargeUnit::getAppName ,largeUnit.getAppName());
+                    }
+        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 int getConnectUnitNum(){
+        return largeUnitMapper.getConnectUnitNum();
+    }
+
+    public List<LargeUnit> getAllCameraCondition(){
+        return largeUnitMapper.getAllCameraCondition();
+    }
+
+    public LargeUnit getCameraConditionByAppOrg(String appOrg){
+        return largeUnitMapper.getCameraConditionByAppOrg(appOrg);
+    }
+}

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

@@ -0,0 +1,120 @@
+<?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.unit.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="getConnectCameraNum" resultType="int">
+        select count(*) from large_camera
+        where connect_flag = '0' and 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>

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

@@ -0,0 +1,91 @@
+<?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="LargeIssue" id="LargeIssueResult">
+        <result property="id"    column="id"    />
+        <result property="description"    column="description"    />
+        <result property="projectId"    column="project_id"    />
+        <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">
+        <include refid="selectLargeIssueVo"/>
+        <where>
+            <if test="description != null  and description != ''"> and description = #{description}</if>
+            <if test="projectId != null "> and project_id = #{projectId}</if>
+            <if test="status != null  and status != ''"> and status = #{status}</if>
+        </where>
+    </select>
+
+    <select id="selectLargeIssueById" parameterType="Long" resultMap="LargeIssueResult">
+        <include refid="selectLargeIssueVo"/>
+        where 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>
+</mapper>

+ 114 - 0
project-zcustom/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>

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

@@ -0,0 +1,99 @@
+<?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.unit.LargeProject" id="LargeProjectResult">
+        <result property="id"    column="id"    />
+        <result property="projectName"    column="project_name"    />
+        <result property="unitId"    column="unit_id"    />
+        <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_id, 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="unitId != null "> and unit_id = #{unitId}</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="unitId != null">unit_id,</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="unitId != null">#{unitId},</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="unitId != null">unit_id = #{unitId},</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="getProjectNum" resultType="int">
+        select count(*) from large_project
+        where del_flag = '0'
+    </select>
+
+    <select id="getConnectProjectNum" resultType="int">
+        select count(*) from large_project
+        where connect_flag = '0' and del_flag = '0'
+    </select>
+
+    <select id="getConnectProjectByUnit" parameterType="String" resultMap="LargeProjectResult">
+        <include refid="selectLargeProjectVo"/>
+        where connect_flag = '0' and del_flag = '0' and unit_id = #{appOrg}
+    </select>
+</mapper>

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

@@ -0,0 +1,126 @@
+<?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.unit.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="appOrg"    column="app_org"    />
+        <result property="appName"    column="app_name"    />
+    </resultMap>
+
+    <sql id="selectLargeUnitVo">
+        select id, del_flag, create_by, create_time, update_by, update_time, app_org, app_name from large_plat_app_org
+    </sql>
+
+    <select id="selectLargeUnitList" parameterType="LargeUnit" resultMap="LargeUnitResult">
+        <include refid="selectLargeUnitVo"/>
+        <where>
+            <if test="appOrg != null  and appOrg != ''"> and app_org = #{appOrg}</if>
+            <if test="appName != null  and appName != ''"> and app_name like concat('%', #{appName}, '%')</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_plat_app_org
+        <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_plat_app_org
+        <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_plat_app_org where id = #{id}
+    </delete>
+
+    <delete id="deleteLargeUnitByIds" parameterType="String">
+        delete from large_plat_app_org where id in
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+    <delete id="reallyDeleteByWrapper">
+        DELETE FROM large_plat_app_org ${ew.customSqlSegment}
+    </delete>
+
+    <select id="getConnectUnitNum" resultType="int">
+        select count(*) from large_plat_app_org
+        where connect_flag = '0' and del_flag = '0'
+    </select>
+
+    <select id="getAllCameraCondition" resultMap="LargeUnitResult">
+        SELECT
+            c.app_org,
+            c.app_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_plat_app_org c ON b.unit_id = c.app_org
+        GROUP BY
+            c.app_org
+    </select>
+
+    <select id="getCameraConditionByAppOrg" parameterType="String" resultMap="LargeUnitResult">
+        SELECT
+            c.app_org,
+            c.app_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_plat_app_org c ON b.unit_id = c.app_org
+        WHERE
+            c.app_org = #{appOrg}
+    </select>
+</mapper>