From 777d51091e283916b317c7539692fff2fabdc664 Mon Sep 17 00:00:00 2001
From: wangwei_123 <1255324804@qq.com>
Date: Fri, 1 Aug 2025 17:32:36 +0800
Subject: [PATCH] =?UTF-8?q?=E7=94=B5=E5=AD=90=E9=94=81=E6=A8=A1=E5=9D=97?=
=?UTF-8?q?=E5=88=9D=E5=A7=8B=E5=8C=96?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
cc-admin-master/lock-module/pom.xml | 79 +++++++++++++++
.../lock/controller/IsolationPointController.java | 106 ++++++++++++++++++++
.../module/lock/controller/LockController.java | 107 ++++++++++++++++++++
.../lock/controller/LockGuideController.java | 106 ++++++++++++++++++++
.../lock/controller/LockWordRecordController.java | 106 ++++++++++++++++++++
.../module/lock/controller/PlanController.java | 106 ++++++++++++++++++++
.../module/lock/controller/PlanItemController.java | 106 ++++++++++++++++++++
.../lock/controller/PlanItemDetailController.java | 109 +++++++++++++++++++++
.../lock/controller/PlanLifeLockController.java | 106 ++++++++++++++++++++
.../module/lock/controller/PointController.java | 106 ++++++++++++++++++++
.../admin/module/lock/dal/IsolationPointDO.java | 40 ++++++++
.../cn/iocoder/admin/module/lock/dal/LockDO.java | 61 ++++++++++++
.../iocoder/admin/module/lock/dal/LockGuideDO.java | 40 ++++++++
.../admin/module/lock/dal/LockWordRecordDO.java | 64 ++++++++++++
.../cn/iocoder/admin/module/lock/dal/PlanDO.java | 36 +++++++
.../iocoder/admin/module/lock/dal/PlanItemDO.java | 60 ++++++++++++
.../admin/module/lock/dal/PlanItemDetailDO.java | 48 +++++++++
.../admin/module/lock/dal/PlanLifeLockDO.java | 58 +++++++++++
.../cn/iocoder/admin/module/lock/dal/PointDO.java | 48 +++++++++
.../module/lock/enums/ErrorCodeConstants.java | 25 +++++
.../module/lock/mapper/IsolationPointMapper.java | 28 ++++++
.../admin/module/lock/mapper/LockGuideMapper.java | 28 ++++++
.../admin/module/lock/mapper/LockMapper.java | 33 +++++++
.../module/lock/mapper/LockWordRecordMapper.java | 34 +++++++
.../module/lock/mapper/PlanItemDetailMapper.java | 32 ++++++
.../admin/module/lock/mapper/PlanItemMapper.java | 33 +++++++
.../module/lock/mapper/PlanLifeLockMapper.java | 32 ++++++
.../admin/module/lock/mapper/PlanMapper.java | 27 +++++
.../admin/module/lock/mapper/PointMapper.java | 30 ++++++
.../lock/mapper/xml/IsolationPointMapper.xml | 12 +++
.../module/lock/mapper/xml/LockGuideMapper.xml | 12 +++
.../admin/module/lock/mapper/xml/LockMapper.xml | 10 ++
.../lock/mapper/xml/LockWordRecordMapper.xml | 12 +++
.../lock/mapper/xml/PlanItemDetailMapper.xml | 12 +++
.../module/lock/mapper/xml/PlanItemMapper.xml | 12 +++
.../module/lock/mapper/xml/PlanLifeLockMapper.xml | 12 +++
.../admin/module/lock/mapper/xml/PlanMapper.xml | 12 +++
.../admin/module/lock/mapper/xml/PointMapper.xml | 12 +++
.../module/lock/service/IsolationPointService.java | 65 ++++++++++++
.../module/lock/service/LockGuideService.java | 64 ++++++++++++
.../admin/module/lock/service/LockService.java | 64 ++++++++++++
.../module/lock/service/LockWordRecordService.java | 64 ++++++++++++
.../module/lock/service/PlanItemDetailService.java | 65 ++++++++++++
.../admin/module/lock/service/PlanItemService.java | 64 ++++++++++++
.../module/lock/service/PlanLifeLockService.java | 64 ++++++++++++
.../admin/module/lock/service/PlanService.java | 64 ++++++++++++
.../admin/module/lock/service/PointService.java | 65 ++++++++++++
.../service/impl/IsolationPointServiceImpl.java | 87 ++++++++++++++++
.../lock/service/impl/LockGuideServiceImpl.java | 88 +++++++++++++++++
.../module/lock/service/impl/LockServiceImpl.java | 87 ++++++++++++++++
.../service/impl/LockWordRecordServiceImpl.java | 88 +++++++++++++++++
.../service/impl/PlanItemDetailServiceImpl.java | 87 ++++++++++++++++
.../lock/service/impl/PlanItemServiceImpl.java | 86 ++++++++++++++++
.../lock/service/impl/PlanLifeLockServiceImpl.java | 86 ++++++++++++++++
.../module/lock/service/impl/PlanServiceImpl.java | 85 ++++++++++++++++
.../module/lock/service/impl/PointServiceImpl.java | 86 ++++++++++++++++
.../module/lock/vo/IsolationPointPageReqVO.java | 26 +++++
.../admin/module/lock/vo/IsolationPointRespVO.java | 31 ++++++
.../module/lock/vo/IsolationPointSaveReqVO.java | 23 +++++
.../admin/module/lock/vo/LockGuidePageReqVO.java | 26 +++++
.../admin/module/lock/vo/LockGuideRespVO.java | 31 ++++++
.../admin/module/lock/vo/LockGuideSaveReqVO.java | 22 +++++
.../admin/module/lock/vo/LockPageReqVO.java | 42 ++++++++
.../iocoder/admin/module/lock/vo/LockRespVO.java | 55 +++++++++++
.../admin/module/lock/vo/LockSaveReqVO.java | 43 ++++++++
.../module/lock/vo/LockWordRecordPageReqVO.java | 44 +++++++++
.../admin/module/lock/vo/LockWordRecordRespVO.java | 55 +++++++++++
.../module/lock/vo/LockWordRecordSaveReqVO.java | 42 ++++++++
.../module/lock/vo/PlanItemDetailPageReqVO.java | 32 ++++++
.../admin/module/lock/vo/PlanItemDetailRespVO.java | 39 ++++++++
.../module/lock/vo/PlanItemDetailSaveReqVO.java | 30 ++++++
.../admin/module/lock/vo/PlanItemPageReqVO.java | 41 ++++++++
.../admin/module/lock/vo/PlanItemRespVO.java | 51 ++++++++++
.../admin/module/lock/vo/PlanItemSaveReqVO.java | 41 ++++++++
.../module/lock/vo/PlanLifeLockPageReqVO.java | 40 ++++++++
.../admin/module/lock/vo/PlanLifeLockRespVO.java | 47 +++++++++
.../module/lock/vo/PlanLifeLockSaveReqVO.java | 39 ++++++++
.../admin/module/lock/vo/PlanPageReqVO.java | 23 +++++
.../iocoder/admin/module/lock/vo/PlanRespVO.java | 27 +++++
.../admin/module/lock/vo/PlanSaveReqVO.java | 19 ++++
.../admin/module/lock/vo/PointPageReqVO.java | 32 ++++++
.../iocoder/admin/module/lock/vo/PointRespVO.java | 39 ++++++++
.../admin/module/lock/vo/PointSaveReqVO.java | 30 ++++++
cc-admin-master/pom.xml | 1 +
cc-admin-master/yudao-server/pom.xml | 7 +-
.../src/main/resources/application-local.yaml | 14 +--
86 files changed, 4243 insertions(+), 8 deletions(-)
create mode 100644 cc-admin-master/lock-module/pom.xml
create mode 100644 cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/controller/IsolationPointController.java
create mode 100644 cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/controller/LockController.java
create mode 100644 cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/controller/LockGuideController.java
create mode 100644 cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/controller/LockWordRecordController.java
create mode 100644 cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/controller/PlanController.java
create mode 100644 cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/controller/PlanItemController.java
create mode 100644 cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/controller/PlanItemDetailController.java
create mode 100644 cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/controller/PlanLifeLockController.java
create mode 100644 cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/controller/PointController.java
create mode 100644 cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/dal/IsolationPointDO.java
create mode 100644 cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/dal/LockDO.java
create mode 100644 cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/dal/LockGuideDO.java
create mode 100644 cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/dal/LockWordRecordDO.java
create mode 100644 cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/dal/PlanDO.java
create mode 100644 cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/dal/PlanItemDO.java
create mode 100644 cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/dal/PlanItemDetailDO.java
create mode 100644 cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/dal/PlanLifeLockDO.java
create mode 100644 cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/dal/PointDO.java
create mode 100644 cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/enums/ErrorCodeConstants.java
create mode 100644 cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/mapper/IsolationPointMapper.java
create mode 100644 cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/mapper/LockGuideMapper.java
create mode 100644 cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/mapper/LockMapper.java
create mode 100644 cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/mapper/LockWordRecordMapper.java
create mode 100644 cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/mapper/PlanItemDetailMapper.java
create mode 100644 cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/mapper/PlanItemMapper.java
create mode 100644 cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/mapper/PlanLifeLockMapper.java
create mode 100644 cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/mapper/PlanMapper.java
create mode 100644 cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/mapper/PointMapper.java
create mode 100644 cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/mapper/xml/IsolationPointMapper.xml
create mode 100644 cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/mapper/xml/LockGuideMapper.xml
create mode 100644 cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/mapper/xml/LockMapper.xml
create mode 100644 cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/mapper/xml/LockWordRecordMapper.xml
create mode 100644 cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/mapper/xml/PlanItemDetailMapper.xml
create mode 100644 cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/mapper/xml/PlanItemMapper.xml
create mode 100644 cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/mapper/xml/PlanLifeLockMapper.xml
create mode 100644 cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/mapper/xml/PlanMapper.xml
create mode 100644 cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/mapper/xml/PointMapper.xml
create mode 100644 cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/service/IsolationPointService.java
create mode 100644 cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/service/LockGuideService.java
create mode 100644 cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/service/LockService.java
create mode 100644 cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/service/LockWordRecordService.java
create mode 100644 cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/service/PlanItemDetailService.java
create mode 100644 cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/service/PlanItemService.java
create mode 100644 cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/service/PlanLifeLockService.java
create mode 100644 cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/service/PlanService.java
create mode 100644 cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/service/PointService.java
create mode 100644 cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/service/impl/IsolationPointServiceImpl.java
create mode 100644 cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/service/impl/LockGuideServiceImpl.java
create mode 100644 cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/service/impl/LockServiceImpl.java
create mode 100644 cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/service/impl/LockWordRecordServiceImpl.java
create mode 100644 cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/service/impl/PlanItemDetailServiceImpl.java
create mode 100644 cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/service/impl/PlanItemServiceImpl.java
create mode 100644 cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/service/impl/PlanLifeLockServiceImpl.java
create mode 100644 cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/service/impl/PlanServiceImpl.java
create mode 100644 cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/service/impl/PointServiceImpl.java
create mode 100644 cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/vo/IsolationPointPageReqVO.java
create mode 100644 cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/vo/IsolationPointRespVO.java
create mode 100644 cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/vo/IsolationPointSaveReqVO.java
create mode 100644 cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/vo/LockGuidePageReqVO.java
create mode 100644 cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/vo/LockGuideRespVO.java
create mode 100644 cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/vo/LockGuideSaveReqVO.java
create mode 100644 cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/vo/LockPageReqVO.java
create mode 100644 cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/vo/LockRespVO.java
create mode 100644 cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/vo/LockSaveReqVO.java
create mode 100644 cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/vo/LockWordRecordPageReqVO.java
create mode 100644 cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/vo/LockWordRecordRespVO.java
create mode 100644 cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/vo/LockWordRecordSaveReqVO.java
create mode 100644 cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/vo/PlanItemDetailPageReqVO.java
create mode 100644 cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/vo/PlanItemDetailRespVO.java
create mode 100644 cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/vo/PlanItemDetailSaveReqVO.java
create mode 100644 cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/vo/PlanItemPageReqVO.java
create mode 100644 cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/vo/PlanItemRespVO.java
create mode 100644 cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/vo/PlanItemSaveReqVO.java
create mode 100644 cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/vo/PlanLifeLockPageReqVO.java
create mode 100644 cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/vo/PlanLifeLockRespVO.java
create mode 100644 cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/vo/PlanLifeLockSaveReqVO.java
create mode 100644 cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/vo/PlanPageReqVO.java
create mode 100644 cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/vo/PlanRespVO.java
create mode 100644 cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/vo/PlanSaveReqVO.java
create mode 100644 cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/vo/PointPageReqVO.java
create mode 100644 cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/vo/PointRespVO.java
create mode 100644 cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/vo/PointSaveReqVO.java
diff --git a/cc-admin-master/lock-module/pom.xml b/cc-admin-master/lock-module/pom.xml
new file mode 100644
index 0000000..b7fd6d8
--- /dev/null
+++ b/cc-admin-master/lock-module/pom.xml
@@ -0,0 +1,79 @@
+
+
+
+ cn.iocoder.boot
+ cc-admin-master
+ ${revision}
+
+ 4.0.0
+ lock-module
+ jar
+
+ ${project.artifactId}
+
+
+
+
+
+ cn.iocoder.boot
+ yudao-module-infra
+ ${revision}
+
+
+
+
+ cn.iocoder.boot
+ yudao-spring-boot-starter-biz-data-permission
+
+
+ cn.iocoder.boot
+ yudao-spring-boot-starter-biz-tenant
+
+
+ cn.iocoder.boot
+ yudao-spring-boot-starter-biz-ip
+
+
+
+
+ cn.iocoder.boot
+ yudao-spring-boot-starter-security
+
+
+
+ org.springframework.boot
+ spring-boot-starter-validation
+
+
+
+
+ cn.iocoder.boot
+ yudao-spring-boot-starter-mybatis
+
+
+
+
+ cn.iocoder.boot
+ yudao-spring-boot-starter-excel
+
+
+
+ org.springframework.boot
+ spring-boot-starter-mail
+
+
+
+ com.anji-plus
+ captcha-spring-boot-starter
+
+
+
+ org.dromara.hutool
+ hutool-extra
+
+
+
+
+
diff --git a/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/controller/IsolationPointController.java b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/controller/IsolationPointController.java
new file mode 100644
index 0000000..af37f90
--- /dev/null
+++ b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/controller/IsolationPointController.java
@@ -0,0 +1,106 @@
+package cn.iocoder.admin.module.lock.controller;
+
+import cn.iocoder.admin.module.lock.dal.IsolationPointDO;
+import cn.iocoder.admin.module.lock.service.IsolationPointService;
+import cn.iocoder.admin.module.lock.vo.IsolationPointPageReqVO;
+import cn.iocoder.admin.module.lock.vo.IsolationPointRespVO;
+import cn.iocoder.admin.module.lock.vo.IsolationPointSaveReqVO;
+import org.springframework.web.bind.annotation.*;
+import jakarta.annotation.Resource;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.security.access.prepost.PreAuthorize;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.Operation;
+
+import jakarta.validation.constraints.*;
+import jakarta.validation.*;
+import jakarta.servlet.http.*;
+import java.util.*;
+import java.io.IOException;
+
+import cn.iocoder.yudao.framework.common.pojo.PageParam;
+import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.framework.common.pojo.CommonResult;
+import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
+import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
+
+import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
+
+import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
+import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*;
+
+
+@Tag(name = "管理后台 - 指导书与隔离点关联")
+@RestController
+@RequestMapping("/guide/isolation-point")
+@Validated
+public class IsolationPointController {
+
+ @Resource
+ private IsolationPointService isolationPointService;
+
+ @PostMapping("/create")
+ @Operation(summary = "创建指导书与隔离点关联")
+ @PreAuthorize("@ss.hasPermission('guide:isolation-point:create')")
+ public CommonResult createIsolationPoint(@Valid @RequestBody IsolationPointSaveReqVO createReqVO) {
+ return success(isolationPointService.createIsolationPoint(createReqVO));
+ }
+
+ @PutMapping("/update")
+ @Operation(summary = "更新指导书与隔离点关联")
+ @PreAuthorize("@ss.hasPermission('guide:isolation-point:update')")
+ public CommonResult updateIsolationPoint(@Valid @RequestBody IsolationPointSaveReqVO updateReqVO) {
+ isolationPointService.updateIsolationPoint(updateReqVO);
+ return success(true);
+ }
+
+ @DeleteMapping("/delete")
+ @Operation(summary = "删除指导书与隔离点关联")
+ @Parameter(name = "id", description = "编号", required = true)
+ @PreAuthorize("@ss.hasPermission('guide:isolation-point:delete')")
+ public CommonResult deleteIsolationPoint(@RequestParam("id") Long id) {
+ isolationPointService.deleteIsolationPoint(id);
+ return success(true);
+ }
+
+ @DeleteMapping("/delete-list")
+ @Parameter(name = "ids", description = "编号", required = true)
+ @Operation(summary = "批量删除指导书与隔离点关联")
+ @PreAuthorize("@ss.hasPermission('guide:isolation-point:delete')")
+ public CommonResult deleteIsolationPointList(@RequestParam("ids") List ids) {
+ isolationPointService.deleteIsolationPointListByIds(ids);
+ return success(true);
+ }
+
+ @GetMapping("/get")
+ @Operation(summary = "获得指导书与隔离点关联")
+ @Parameter(name = "id", description = "编号", required = true, example = "1024")
+ @PreAuthorize("@ss.hasPermission('guide:isolation-point:query')")
+ public CommonResult getIsolationPoint(@RequestParam("id") Long id) {
+ IsolationPointDO isolationPoint = isolationPointService.getIsolationPoint(id);
+ return success(BeanUtils.toBean(isolationPoint, IsolationPointRespVO.class));
+ }
+
+ @GetMapping("/page")
+ @Operation(summary = "获得指导书与隔离点关联分页")
+ @PreAuthorize("@ss.hasPermission('guide:isolation-point:query')")
+ public CommonResult> getIsolationPointPage(@Valid IsolationPointPageReqVO pageReqVO) {
+ PageResult pageResult = isolationPointService.getIsolationPointPage(pageReqVO);
+ return success(BeanUtils.toBean(pageResult, IsolationPointRespVO.class));
+ }
+
+ @GetMapping("/export-excel")
+ @Operation(summary = "导出指导书与隔离点关联 Excel")
+ @PreAuthorize("@ss.hasPermission('guide:isolation-point:export')")
+ @ApiAccessLog(operateType = EXPORT)
+ public void exportIsolationPointExcel(@Valid IsolationPointPageReqVO pageReqVO,
+ HttpServletResponse response) throws IOException {
+ pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
+ List list = isolationPointService.getIsolationPointPage(pageReqVO).getList();
+ // 导出 Excel
+ ExcelUtils.write(response, "指导书与隔离点关联.xls", "数据", IsolationPointRespVO.class,
+ BeanUtils.toBean(list, IsolationPointRespVO.class));
+ }
+
+}
\ No newline at end of file
diff --git a/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/controller/LockController.java b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/controller/LockController.java
new file mode 100644
index 0000000..28b717b
--- /dev/null
+++ b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/controller/LockController.java
@@ -0,0 +1,107 @@
+package cn.iocoder.admin.module.lock.controller;
+
+import cn.iocoder.admin.module.lock.dal.LockDO;
+import cn.iocoder.admin.module.lock.service.LockService;
+import cn.iocoder.admin.module.lock.vo.LockPageReqVO;
+import cn.iocoder.admin.module.lock.vo.LockRespVO;
+import cn.iocoder.admin.module.lock.vo.LockSaveReqVO;
+import org.springframework.web.bind.annotation.*;
+import jakarta.annotation.Resource;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.security.access.prepost.PreAuthorize;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.Operation;
+
+import jakarta.validation.constraints.*;
+import jakarta.validation.*;
+import jakarta.servlet.http.*;
+import java.util.*;
+import java.io.IOException;
+
+import cn.iocoder.yudao.framework.common.pojo.PageParam;
+import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.framework.common.pojo.CommonResult;
+import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
+import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
+
+import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
+
+import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
+import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*;
+
+
+
+@Tag(name = "管理后台 - 电子锁")
+@RestController
+@RequestMapping("/electron/lock")
+@Validated
+public class LockController {
+
+ @Resource
+ private LockService lockService;
+
+ @PostMapping("/create")
+ @Operation(summary = "创建电子锁")
+ @PreAuthorize("@ss.hasPermission('electron:lock:create')")
+ public CommonResult createLock(@Valid @RequestBody LockSaveReqVO createReqVO) {
+ return success(lockService.createLock(createReqVO));
+ }
+
+ @PutMapping("/update")
+ @Operation(summary = "更新电子锁")
+ @PreAuthorize("@ss.hasPermission('electron:lock:update')")
+ public CommonResult updateLock(@Valid @RequestBody LockSaveReqVO updateReqVO) {
+ lockService.updateLock(updateReqVO);
+ return success(true);
+ }
+
+ @DeleteMapping("/delete")
+ @Operation(summary = "删除电子锁")
+ @Parameter(name = "id", description = "编号", required = true)
+ @PreAuthorize("@ss.hasPermission('electron:lock:delete')")
+ public CommonResult deleteLock(@RequestParam("id") Long id) {
+ lockService.deleteLock(id);
+ return success(true);
+ }
+
+ @DeleteMapping("/delete-list")
+ @Parameter(name = "ids", description = "编号", required = true)
+ @Operation(summary = "批量删除电子锁")
+ @PreAuthorize("@ss.hasPermission('electron:lock:delete')")
+ public CommonResult deleteLockList(@RequestParam("ids") List ids) {
+ lockService.deleteLockListByIds(ids);
+ return success(true);
+ }
+
+ @GetMapping("/get")
+ @Operation(summary = "获得电子锁")
+ @Parameter(name = "id", description = "编号", required = true, example = "1024")
+ @PreAuthorize("@ss.hasPermission('electron:lock:query')")
+ public CommonResult getLock(@RequestParam("id") Long id) {
+ LockDO lock = lockService.getLock(id);
+ return success(BeanUtils.toBean(lock, LockRespVO.class));
+ }
+
+ @GetMapping("/page")
+ @Operation(summary = "获得电子锁分页")
+ @PreAuthorize("@ss.hasPermission('electron:lock:query')")
+ public CommonResult> getLockPage(@Valid LockPageReqVO pageReqVO) {
+ PageResult pageResult = lockService.getLockPage(pageReqVO);
+ return success(BeanUtils.toBean(pageResult, LockRespVO.class));
+ }
+
+ @GetMapping("/export-excel")
+ @Operation(summary = "导出电子锁 Excel")
+ @PreAuthorize("@ss.hasPermission('electron:lock:export')")
+ @ApiAccessLog(operateType = EXPORT)
+ public void exportLockExcel(@Valid LockPageReqVO pageReqVO,
+ HttpServletResponse response) throws IOException {
+ pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
+ List list = lockService.getLockPage(pageReqVO).getList();
+ // 导出 Excel
+ ExcelUtils.write(response, "电子锁.xls", "数据", LockRespVO.class,
+ BeanUtils.toBean(list, LockRespVO.class));
+ }
+
+}
\ No newline at end of file
diff --git a/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/controller/LockGuideController.java b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/controller/LockGuideController.java
new file mode 100644
index 0000000..50b40bd
--- /dev/null
+++ b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/controller/LockGuideController.java
@@ -0,0 +1,106 @@
+package cn.iocoder.admin.module.lock.controller;
+
+import cn.iocoder.admin.module.lock.dal.LockGuideDO;
+import cn.iocoder.admin.module.lock.service.LockGuideService;
+import cn.iocoder.admin.module.lock.vo.LockGuidePageReqVO;
+import cn.iocoder.admin.module.lock.vo.LockGuideRespVO;
+import cn.iocoder.admin.module.lock.vo.LockGuideSaveReqVO;
+import org.springframework.web.bind.annotation.*;
+import jakarta.annotation.Resource;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.security.access.prepost.PreAuthorize;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.Operation;
+
+import jakarta.validation.constraints.*;
+import jakarta.validation.*;
+import jakarta.servlet.http.*;
+import java.util.*;
+import java.io.IOException;
+
+import cn.iocoder.yudao.framework.common.pojo.PageParam;
+import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.framework.common.pojo.CommonResult;
+import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
+import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
+
+import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
+
+import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
+import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*;
+
+
+@Tag(name = "管理后台 - 隔离指导书")
+@RestController
+@RequestMapping("/guide/lock-guide")
+@Validated
+public class LockGuideController {
+
+ @Resource
+ private LockGuideService lockGuideService;
+
+ @PostMapping("/create")
+ @Operation(summary = "创建隔离指导书")
+ @PreAuthorize("@ss.hasPermission('guide:lock-guide:create')")
+ public CommonResult createLockGuide(@Valid @RequestBody LockGuideSaveReqVO createReqVO) {
+ return success(lockGuideService.createLockGuide(createReqVO));
+ }
+
+ @PutMapping("/update")
+ @Operation(summary = "更新隔离指导书")
+ @PreAuthorize("@ss.hasPermission('guide:lock-guide:update')")
+ public CommonResult updateLockGuide(@Valid @RequestBody LockGuideSaveReqVO updateReqVO) {
+ lockGuideService.updateLockGuide(updateReqVO);
+ return success(true);
+ }
+
+ @DeleteMapping("/delete")
+ @Operation(summary = "删除隔离指导书")
+ @Parameter(name = "id", description = "编号", required = true)
+ @PreAuthorize("@ss.hasPermission('guide:lock-guide:delete')")
+ public CommonResult deleteLockGuide(@RequestParam("id") Long id) {
+ lockGuideService.deleteLockGuide(id);
+ return success(true);
+ }
+
+ @DeleteMapping("/delete-list")
+ @Parameter(name = "ids", description = "编号", required = true)
+ @Operation(summary = "批量删除隔离指导书")
+ @PreAuthorize("@ss.hasPermission('guide:lock-guide:delete')")
+ public CommonResult deleteLockGuideList(@RequestParam("ids") List ids) {
+ lockGuideService.deleteLockGuideListByIds(ids);
+ return success(true);
+ }
+
+ @GetMapping("/get")
+ @Operation(summary = "获得隔离指导书")
+ @Parameter(name = "id", description = "编号", required = true, example = "1024")
+ @PreAuthorize("@ss.hasPermission('guide:lock-guide:query')")
+ public CommonResult getLockGuide(@RequestParam("id") Long id) {
+ LockGuideDO lockGuide = lockGuideService.getLockGuide(id);
+ return success(BeanUtils.toBean(lockGuide, LockGuideRespVO.class));
+ }
+
+ @GetMapping("/page")
+ @Operation(summary = "获得隔离指导书分页")
+ @PreAuthorize("@ss.hasPermission('guide:lock-guide:query')")
+ public CommonResult> getLockGuidePage(@Valid LockGuidePageReqVO pageReqVO) {
+ PageResult pageResult = lockGuideService.getLockGuidePage(pageReqVO);
+ return success(BeanUtils.toBean(pageResult, LockGuideRespVO.class));
+ }
+
+ @GetMapping("/export-excel")
+ @Operation(summary = "导出隔离指导书 Excel")
+ @PreAuthorize("@ss.hasPermission('guide:lock-guide:export')")
+ @ApiAccessLog(operateType = EXPORT)
+ public void exportLockGuideExcel(@Valid LockGuidePageReqVO pageReqVO,
+ HttpServletResponse response) throws IOException {
+ pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
+ List list = lockGuideService.getLockGuidePage(pageReqVO).getList();
+ // 导出 Excel
+ ExcelUtils.write(response, "隔离指导书.xls", "数据", LockGuideRespVO.class,
+ BeanUtils.toBean(list, LockGuideRespVO.class));
+ }
+
+}
\ No newline at end of file
diff --git a/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/controller/LockWordRecordController.java b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/controller/LockWordRecordController.java
new file mode 100644
index 0000000..9eec3a9
--- /dev/null
+++ b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/controller/LockWordRecordController.java
@@ -0,0 +1,106 @@
+package cn.iocoder.admin.module.lock.controller;
+
+import cn.iocoder.admin.module.lock.dal.LockWordRecordDO;
+import cn.iocoder.admin.module.lock.service.LockWordRecordService;
+import cn.iocoder.admin.module.lock.vo.LockWordRecordPageReqVO;
+import cn.iocoder.admin.module.lock.vo.LockWordRecordRespVO;
+import cn.iocoder.admin.module.lock.vo.LockWordRecordSaveReqVO;
+import org.springframework.web.bind.annotation.*;
+import jakarta.annotation.Resource;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.security.access.prepost.PreAuthorize;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.Operation;
+
+import jakarta.validation.constraints.*;
+import jakarta.validation.*;
+import jakarta.servlet.http.*;
+import java.util.*;
+import java.io.IOException;
+
+import cn.iocoder.yudao.framework.common.pojo.PageParam;
+import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.framework.common.pojo.CommonResult;
+import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
+import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
+
+import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
+
+import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
+import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*;
+
+
+@Tag(name = "管理后台 - 电子锁操作记录")
+@RestController
+@RequestMapping("/electron/lock-word-record")
+@Validated
+public class LockWordRecordController {
+
+ @Resource
+ private LockWordRecordService lockWordRecordService;
+
+ @PostMapping("/create")
+ @Operation(summary = "创建电子锁操作记录")
+ @PreAuthorize("@ss.hasPermission('electron:lock-word-record:create')")
+ public CommonResult createLockWordRecord(@Valid @RequestBody LockWordRecordSaveReqVO createReqVO) {
+ return success(lockWordRecordService.createLockWordRecord(createReqVO));
+ }
+
+ @PutMapping("/update")
+ @Operation(summary = "更新电子锁操作记录")
+ @PreAuthorize("@ss.hasPermission('electron:lock-word-record:update')")
+ public CommonResult updateLockWordRecord(@Valid @RequestBody LockWordRecordSaveReqVO updateReqVO) {
+ lockWordRecordService.updateLockWordRecord(updateReqVO);
+ return success(true);
+ }
+
+ @DeleteMapping("/delete")
+ @Operation(summary = "删除电子锁操作记录")
+ @Parameter(name = "id", description = "编号", required = true)
+ @PreAuthorize("@ss.hasPermission('electron:lock-word-record:delete')")
+ public CommonResult deleteLockWordRecord(@RequestParam("id") Long id) {
+ lockWordRecordService.deleteLockWordRecord(id);
+ return success(true);
+ }
+
+ @DeleteMapping("/delete-list")
+ @Parameter(name = "ids", description = "编号", required = true)
+ @Operation(summary = "批量删除电子锁操作记录")
+ @PreAuthorize("@ss.hasPermission('electron:lock-word-record:delete')")
+ public CommonResult deleteLockWordRecordList(@RequestParam("ids") List ids) {
+ lockWordRecordService.deleteLockWordRecordListByIds(ids);
+ return success(true);
+ }
+
+ @GetMapping("/get")
+ @Operation(summary = "获得电子锁操作记录")
+ @Parameter(name = "id", description = "编号", required = true, example = "1024")
+ @PreAuthorize("@ss.hasPermission('electron:lock-word-record:query')")
+ public CommonResult getLockWordRecord(@RequestParam("id") Long id) {
+ LockWordRecordDO lockWordRecord = lockWordRecordService.getLockWordRecord(id);
+ return success(BeanUtils.toBean(lockWordRecord, LockWordRecordRespVO.class));
+ }
+
+ @GetMapping("/page")
+ @Operation(summary = "获得电子锁操作记录分页")
+ @PreAuthorize("@ss.hasPermission('electron:lock-word-record:query')")
+ public CommonResult> getLockWordRecordPage(@Valid LockWordRecordPageReqVO pageReqVO) {
+ PageResult pageResult = lockWordRecordService.getLockWordRecordPage(pageReqVO);
+ return success(BeanUtils.toBean(pageResult, LockWordRecordRespVO.class));
+ }
+
+ @GetMapping("/export-excel")
+ @Operation(summary = "导出电子锁操作记录 Excel")
+ @PreAuthorize("@ss.hasPermission('electron:lock-word-record:export')")
+ @ApiAccessLog(operateType = EXPORT)
+ public void exportLockWordRecordExcel(@Valid LockWordRecordPageReqVO pageReqVO,
+ HttpServletResponse response) throws IOException {
+ pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
+ List list = lockWordRecordService.getLockWordRecordPage(pageReqVO).getList();
+ // 导出 Excel
+ ExcelUtils.write(response, "电子锁操作记录.xls", "数据", LockWordRecordRespVO.class,
+ BeanUtils.toBean(list, LockWordRecordRespVO.class));
+ }
+
+}
\ No newline at end of file
diff --git a/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/controller/PlanController.java b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/controller/PlanController.java
new file mode 100644
index 0000000..7cad304
--- /dev/null
+++ b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/controller/PlanController.java
@@ -0,0 +1,106 @@
+package cn.iocoder.admin.module.lock.controller;
+
+import cn.iocoder.admin.module.lock.dal.PlanDO;
+import cn.iocoder.admin.module.lock.service.PlanService;
+import cn.iocoder.admin.module.lock.vo.PlanPageReqVO;
+import cn.iocoder.admin.module.lock.vo.PlanRespVO;
+import cn.iocoder.admin.module.lock.vo.PlanSaveReqVO;
+import org.springframework.web.bind.annotation.*;
+import jakarta.annotation.Resource;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.security.access.prepost.PreAuthorize;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.Operation;
+
+import jakarta.validation.constraints.*;
+import jakarta.validation.*;
+import jakarta.servlet.http.*;
+import java.util.*;
+import java.io.IOException;
+
+import cn.iocoder.yudao.framework.common.pojo.PageParam;
+import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.framework.common.pojo.CommonResult;
+import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
+import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
+
+import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
+
+import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
+import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*;
+
+
+@Tag(name = "管理后台 - 隔离计划")
+@RestController
+@RequestMapping("/isolation/plan")
+@Validated
+public class PlanController {
+
+ @Resource
+ private PlanService planService;
+
+ @PostMapping("/create")
+ @Operation(summary = "创建隔离计划")
+ @PreAuthorize("@ss.hasPermission('isolation:plan:create')")
+ public CommonResult createPlan(@Valid @RequestBody PlanSaveReqVO createReqVO) {
+ return success(planService.createPlan(createReqVO));
+ }
+
+ @PutMapping("/update")
+ @Operation(summary = "更新隔离计划")
+ @PreAuthorize("@ss.hasPermission('isolation:plan:update')")
+ public CommonResult updatePlan(@Valid @RequestBody PlanSaveReqVO updateReqVO) {
+ planService.updatePlan(updateReqVO);
+ return success(true);
+ }
+
+ @DeleteMapping("/delete")
+ @Operation(summary = "删除隔离计划")
+ @Parameter(name = "id", description = "编号", required = true)
+ @PreAuthorize("@ss.hasPermission('isolation:plan:delete')")
+ public CommonResult deletePlan(@RequestParam("id") Long id) {
+ planService.deletePlan(id);
+ return success(true);
+ }
+
+ @DeleteMapping("/delete-list")
+ @Parameter(name = "ids", description = "编号", required = true)
+ @Operation(summary = "批量删除隔离计划")
+ @PreAuthorize("@ss.hasPermission('isolation:plan:delete')")
+ public CommonResult deletePlanList(@RequestParam("ids") List ids) {
+ planService.deletePlanListByIds(ids);
+ return success(true);
+ }
+
+ @GetMapping("/get")
+ @Operation(summary = "获得隔离计划")
+ @Parameter(name = "id", description = "编号", required = true, example = "1024")
+ @PreAuthorize("@ss.hasPermission('isolation:plan:query')")
+ public CommonResult getPlan(@RequestParam("id") Long id) {
+ PlanDO plan = planService.getPlan(id);
+ return success(BeanUtils.toBean(plan, PlanRespVO.class));
+ }
+
+ @GetMapping("/page")
+ @Operation(summary = "获得隔离计划分页")
+ @PreAuthorize("@ss.hasPermission('isolation:plan:query')")
+ public CommonResult> getPlanPage(@Valid PlanPageReqVO pageReqVO) {
+ PageResult pageResult = planService.getPlanPage(pageReqVO);
+ return success(BeanUtils.toBean(pageResult, PlanRespVO.class));
+ }
+
+ @GetMapping("/export-excel")
+ @Operation(summary = "导出隔离计划 Excel")
+ @PreAuthorize("@ss.hasPermission('isolation:plan:export')")
+ @ApiAccessLog(operateType = EXPORT)
+ public void exportPlanExcel(@Valid PlanPageReqVO pageReqVO,
+ HttpServletResponse response) throws IOException {
+ pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
+ List list = planService.getPlanPage(pageReqVO).getList();
+ // 导出 Excel
+ ExcelUtils.write(response, "隔离计划.xls", "数据", PlanRespVO.class,
+ BeanUtils.toBean(list, PlanRespVO.class));
+ }
+
+}
\ No newline at end of file
diff --git a/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/controller/PlanItemController.java b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/controller/PlanItemController.java
new file mode 100644
index 0000000..eb39600
--- /dev/null
+++ b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/controller/PlanItemController.java
@@ -0,0 +1,106 @@
+package cn.iocoder.admin.module.lock.controller;
+
+import cn.iocoder.admin.module.lock.dal.PlanItemDO;
+import cn.iocoder.admin.module.lock.service.PlanItemService;
+import cn.iocoder.admin.module.lock.vo.PlanItemPageReqVO;
+import cn.iocoder.admin.module.lock.vo.PlanItemRespVO;
+import cn.iocoder.admin.module.lock.vo.PlanItemSaveReqVO;
+import org.springframework.web.bind.annotation.*;
+import jakarta.annotation.Resource;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.security.access.prepost.PreAuthorize;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.Operation;
+
+import jakarta.validation.constraints.*;
+import jakarta.validation.*;
+import jakarta.servlet.http.*;
+import java.util.*;
+import java.io.IOException;
+
+import cn.iocoder.yudao.framework.common.pojo.PageParam;
+import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.framework.common.pojo.CommonResult;
+import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
+import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
+
+import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
+
+import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
+import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*;
+
+
+@Tag(name = "管理后台 - 隔离计划子项")
+@RestController
+@RequestMapping("/isolation/plan-item")
+@Validated
+public class PlanItemController {
+
+ @Resource
+ private PlanItemService planItemService;
+
+ @PostMapping("/create")
+ @Operation(summary = "创建隔离计划子项")
+ @PreAuthorize("@ss.hasPermission('isolation:plan-item:create')")
+ public CommonResult createPlanItem(@Valid @RequestBody PlanItemSaveReqVO createReqVO) {
+ return success(planItemService.createPlanItem(createReqVO));
+ }
+
+ @PutMapping("/update")
+ @Operation(summary = "更新隔离计划子项")
+ @PreAuthorize("@ss.hasPermission('isolation:plan-item:update')")
+ public CommonResult updatePlanItem(@Valid @RequestBody PlanItemSaveReqVO updateReqVO) {
+ planItemService.updatePlanItem(updateReqVO);
+ return success(true);
+ }
+
+ @DeleteMapping("/delete")
+ @Operation(summary = "删除隔离计划子项")
+ @Parameter(name = "id", description = "编号", required = true)
+ @PreAuthorize("@ss.hasPermission('isolation:plan-item:delete')")
+ public CommonResult deletePlanItem(@RequestParam("id") Long id) {
+ planItemService.deletePlanItem(id);
+ return success(true);
+ }
+
+ @DeleteMapping("/delete-list")
+ @Parameter(name = "ids", description = "编号", required = true)
+ @Operation(summary = "批量删除隔离计划子项")
+ @PreAuthorize("@ss.hasPermission('isolation:plan-item:delete')")
+ public CommonResult deletePlanItemList(@RequestParam("ids") List ids) {
+ planItemService.deletePlanItemListByIds(ids);
+ return success(true);
+ }
+
+ @GetMapping("/get")
+ @Operation(summary = "获得隔离计划子项")
+ @Parameter(name = "id", description = "编号", required = true, example = "1024")
+ @PreAuthorize("@ss.hasPermission('isolation:plan-item:query')")
+ public CommonResult getPlanItem(@RequestParam("id") Long id) {
+ PlanItemDO planItem = planItemService.getPlanItem(id);
+ return success(BeanUtils.toBean(planItem, PlanItemRespVO.class));
+ }
+
+ @GetMapping("/page")
+ @Operation(summary = "获得隔离计划子项分页")
+ @PreAuthorize("@ss.hasPermission('isolation:plan-item:query')")
+ public CommonResult> getPlanItemPage(@Valid PlanItemPageReqVO pageReqVO) {
+ PageResult pageResult = planItemService.getPlanItemPage(pageReqVO);
+ return success(BeanUtils.toBean(pageResult, PlanItemRespVO.class));
+ }
+
+ @GetMapping("/export-excel")
+ @Operation(summary = "导出隔离计划子项 Excel")
+ @PreAuthorize("@ss.hasPermission('isolation:plan-item:export')")
+ @ApiAccessLog(operateType = EXPORT)
+ public void exportPlanItemExcel(@Valid PlanItemPageReqVO pageReqVO,
+ HttpServletResponse response) throws IOException {
+ pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
+ List list = planItemService.getPlanItemPage(pageReqVO).getList();
+ // 导出 Excel
+ ExcelUtils.write(response, "隔离计划子项.xls", "数据", PlanItemRespVO.class,
+ BeanUtils.toBean(list, PlanItemRespVO.class));
+ }
+
+}
\ No newline at end of file
diff --git a/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/controller/PlanItemDetailController.java b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/controller/PlanItemDetailController.java
new file mode 100644
index 0000000..eb7fdb5
--- /dev/null
+++ b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/controller/PlanItemDetailController.java
@@ -0,0 +1,109 @@
+package cn.iocoder.admin.module.lock.controller;
+
+import cn.iocoder.admin.module.lock.dal.PlanItemDetailDO;
+import cn.iocoder.admin.module.lock.service.PlanItemDetailService;
+import cn.iocoder.admin.module.lock.vo.PlanItemDetailPageReqVO;
+import cn.iocoder.admin.module.lock.vo.PlanItemDetailRespVO;
+import cn.iocoder.admin.module.lock.vo.PlanItemDetailSaveReqVO;
+import org.springframework.web.bind.annotation.*;
+import jakarta.annotation.Resource;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.security.access.prepost.PreAuthorize;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.Operation;
+
+import jakarta.validation.constraints.*;
+import jakarta.validation.*;
+import jakarta.servlet.http.*;
+
+import java.util.*;
+import java.io.IOException;
+
+import cn.iocoder.yudao.framework.common.pojo.PageParam;
+import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.framework.common.pojo.CommonResult;
+import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
+
+import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
+
+import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
+
+import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
+
+import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*;
+
+
+@Tag(name = "管理后台 - 隔离计划子项详情")
+@RestController
+@RequestMapping("/isolation/plan-item-detail")
+@Validated
+public class PlanItemDetailController {
+
+ @Resource
+ private PlanItemDetailService planItemDetailService;
+
+ @PostMapping("/create")
+ @Operation(summary = "创建隔离计划子项详情")
+ @PreAuthorize("@ss.hasPermission('isolation:plan-item-detail:create')")
+ public CommonResult createPlanItemDetail(@Valid @RequestBody PlanItemDetailSaveReqVO createReqVO) {
+ return success(planItemDetailService.createPlanItemDetail(createReqVO));
+ }
+
+ @PutMapping("/update")
+ @Operation(summary = "更新隔离计划子项详情")
+ @PreAuthorize("@ss.hasPermission('isolation:plan-item-detail:update')")
+ public CommonResult updatePlanItemDetail(@Valid @RequestBody PlanItemDetailSaveReqVO updateReqVO) {
+ planItemDetailService.updatePlanItemDetail(updateReqVO);
+ return success(true);
+ }
+
+ @DeleteMapping("/delete")
+ @Operation(summary = "删除隔离计划子项详情")
+ @Parameter(name = "id", description = "编号", required = true)
+ @PreAuthorize("@ss.hasPermission('isolation:plan-item-detail:delete')")
+ public CommonResult deletePlanItemDetail(@RequestParam("id") Long id) {
+ planItemDetailService.deletePlanItemDetail(id);
+ return success(true);
+ }
+
+ @DeleteMapping("/delete-list")
+ @Parameter(name = "ids", description = "编号", required = true)
+ @Operation(summary = "批量删除隔离计划子项详情")
+ @PreAuthorize("@ss.hasPermission('isolation:plan-item-detail:delete')")
+ public CommonResult deletePlanItemDetailList(@RequestParam("ids") List ids) {
+ planItemDetailService.deletePlanItemDetailListByIds(ids);
+ return success(true);
+ }
+
+ @GetMapping("/get")
+ @Operation(summary = "获得隔离计划子项详情")
+ @Parameter(name = "id", description = "编号", required = true, example = "1024")
+ @PreAuthorize("@ss.hasPermission('isolation:plan-item-detail:query')")
+ public CommonResult getPlanItemDetail(@RequestParam("id") Long id) {
+ PlanItemDetailDO planItemDetail = planItemDetailService.getPlanItemDetail(id);
+ return success(BeanUtils.toBean(planItemDetail, PlanItemDetailRespVO.class));
+ }
+
+ @GetMapping("/page")
+ @Operation(summary = "获得隔离计划子项详情分页")
+ @PreAuthorize("@ss.hasPermission('isolation:plan-item-detail:query')")
+ public CommonResult> getPlanItemDetailPage(@Valid PlanItemDetailPageReqVO pageReqVO) {
+ PageResult pageResult = planItemDetailService.getPlanItemDetailPage(pageReqVO);
+ return success(BeanUtils.toBean(pageResult, PlanItemDetailRespVO.class));
+ }
+
+ @GetMapping("/export-excel")
+ @Operation(summary = "导出隔离计划子项详情 Excel")
+ @PreAuthorize("@ss.hasPermission('isolation:plan-item-detail:export')")
+ @ApiAccessLog(operateType = EXPORT)
+ public void exportPlanItemDetailExcel(@Valid PlanItemDetailPageReqVO pageReqVO,
+ HttpServletResponse response) throws IOException {
+ pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
+ List list = planItemDetailService.getPlanItemDetailPage(pageReqVO).getList();
+ // 导出 Excel
+ ExcelUtils.write(response, "隔离计划子项详情.xls", "数据", PlanItemDetailRespVO.class,
+ BeanUtils.toBean(list, PlanItemDetailRespVO.class));
+ }
+
+}
\ No newline at end of file
diff --git a/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/controller/PlanLifeLockController.java b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/controller/PlanLifeLockController.java
new file mode 100644
index 0000000..adf300e
--- /dev/null
+++ b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/controller/PlanLifeLockController.java
@@ -0,0 +1,106 @@
+package cn.iocoder.admin.module.lock.controller;
+
+import cn.iocoder.admin.module.lock.dal.PlanLifeLockDO;
+import cn.iocoder.admin.module.lock.service.PlanLifeLockService;
+import cn.iocoder.admin.module.lock.vo.PlanLifeLockPageReqVO;
+import cn.iocoder.admin.module.lock.vo.PlanLifeLockRespVO;
+import cn.iocoder.admin.module.lock.vo.PlanLifeLockSaveReqVO;
+import org.springframework.web.bind.annotation.*;
+import jakarta.annotation.Resource;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.security.access.prepost.PreAuthorize;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.Operation;
+
+import jakarta.validation.constraints.*;
+import jakarta.validation.*;
+import jakarta.servlet.http.*;
+import java.util.*;
+import java.io.IOException;
+
+import cn.iocoder.yudao.framework.common.pojo.PageParam;
+import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.framework.common.pojo.CommonResult;
+import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
+import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
+
+import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
+
+import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
+import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*;
+
+
+@Tag(name = "管理后台 - 个人生命锁")
+@RestController
+@RequestMapping("/isolation/plan-life-lock")
+@Validated
+public class PlanLifeLockController {
+
+ @Resource
+ private PlanLifeLockService planLifeLockService;
+
+ @PostMapping("/create")
+ @Operation(summary = "创建个人生命锁")
+ @PreAuthorize("@ss.hasPermission('isolation:plan-life-lock:create')")
+ public CommonResult createPlanLifeLock(@Valid @RequestBody PlanLifeLockSaveReqVO createReqVO) {
+ return success(planLifeLockService.createPlanLifeLock(createReqVO));
+ }
+
+ @PutMapping("/update")
+ @Operation(summary = "更新个人生命锁")
+ @PreAuthorize("@ss.hasPermission('isolation:plan-life-lock:update')")
+ public CommonResult updatePlanLifeLock(@Valid @RequestBody PlanLifeLockSaveReqVO updateReqVO) {
+ planLifeLockService.updatePlanLifeLock(updateReqVO);
+ return success(true);
+ }
+
+ @DeleteMapping("/delete")
+ @Operation(summary = "删除个人生命锁")
+ @Parameter(name = "id", description = "编号", required = true)
+ @PreAuthorize("@ss.hasPermission('isolation:plan-life-lock:delete')")
+ public CommonResult deletePlanLifeLock(@RequestParam("id") Long id) {
+ planLifeLockService.deletePlanLifeLock(id);
+ return success(true);
+ }
+
+ @DeleteMapping("/delete-list")
+ @Parameter(name = "ids", description = "编号", required = true)
+ @Operation(summary = "批量删除个人生命锁")
+ @PreAuthorize("@ss.hasPermission('isolation:plan-life-lock:delete')")
+ public CommonResult deletePlanLifeLockList(@RequestParam("ids") List ids) {
+ planLifeLockService.deletePlanLifeLockListByIds(ids);
+ return success(true);
+ }
+
+ @GetMapping("/get")
+ @Operation(summary = "获得个人生命锁")
+ @Parameter(name = "id", description = "编号", required = true, example = "1024")
+ @PreAuthorize("@ss.hasPermission('isolation:plan-life-lock:query')")
+ public CommonResult getPlanLifeLock(@RequestParam("id") Long id) {
+ PlanLifeLockDO planLifeLock = planLifeLockService.getPlanLifeLock(id);
+ return success(BeanUtils.toBean(planLifeLock, PlanLifeLockRespVO.class));
+ }
+
+ @GetMapping("/page")
+ @Operation(summary = "获得个人生命锁分页")
+ @PreAuthorize("@ss.hasPermission('isolation:plan-life-lock:query')")
+ public CommonResult> getPlanLifeLockPage(@Valid PlanLifeLockPageReqVO pageReqVO) {
+ PageResult pageResult = planLifeLockService.getPlanLifeLockPage(pageReqVO);
+ return success(BeanUtils.toBean(pageResult, PlanLifeLockRespVO.class));
+ }
+
+ @GetMapping("/export-excel")
+ @Operation(summary = "导出个人生命锁 Excel")
+ @PreAuthorize("@ss.hasPermission('isolation:plan-life-lock:export')")
+ @ApiAccessLog(operateType = EXPORT)
+ public void exportPlanLifeLockExcel(@Valid PlanLifeLockPageReqVO pageReqVO,
+ HttpServletResponse response) throws IOException {
+ pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
+ List list = planLifeLockService.getPlanLifeLockPage(pageReqVO).getList();
+ // 导出 Excel
+ ExcelUtils.write(response, "个人生命锁.xls", "数据", PlanLifeLockRespVO.class,
+ BeanUtils.toBean(list, PlanLifeLockRespVO.class));
+ }
+
+}
\ No newline at end of file
diff --git a/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/controller/PointController.java b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/controller/PointController.java
new file mode 100644
index 0000000..b8f8839
--- /dev/null
+++ b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/controller/PointController.java
@@ -0,0 +1,106 @@
+package cn.iocoder.admin.module.lock.controller;
+
+import cn.iocoder.admin.module.lock.dal.PointDO;
+import cn.iocoder.admin.module.lock.service.PointService;
+import cn.iocoder.admin.module.lock.vo.PointPageReqVO;
+import cn.iocoder.admin.module.lock.vo.PointRespVO;
+import cn.iocoder.admin.module.lock.vo.PointSaveReqVO;
+import org.springframework.web.bind.annotation.*;
+import jakarta.annotation.Resource;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.security.access.prepost.PreAuthorize;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.Operation;
+
+import jakarta.validation.constraints.*;
+import jakarta.validation.*;
+import jakarta.servlet.http.*;
+import java.util.*;
+import java.io.IOException;
+
+import cn.iocoder.yudao.framework.common.pojo.PageParam;
+import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.framework.common.pojo.CommonResult;
+import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
+import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
+
+import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
+
+import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
+import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*;
+
+
+@Tag(name = "管理后台 - 隔离点")
+@RestController
+@RequestMapping("/isolation/point")
+@Validated
+public class PointController {
+
+ @Resource
+ private PointService pointService;
+
+ @PostMapping("/create")
+ @Operation(summary = "创建隔离点")
+ @PreAuthorize("@ss.hasPermission('isolation:point:create')")
+ public CommonResult createPoint(@Valid @RequestBody PointSaveReqVO createReqVO) {
+ return success(pointService.createPoint(createReqVO));
+ }
+
+ @PutMapping("/update")
+ @Operation(summary = "更新隔离点")
+ @PreAuthorize("@ss.hasPermission('isolation:point:update')")
+ public CommonResult updatePoint(@Valid @RequestBody PointSaveReqVO updateReqVO) {
+ pointService.updatePoint(updateReqVO);
+ return success(true);
+ }
+
+ @DeleteMapping("/delete")
+ @Operation(summary = "删除隔离点")
+ @Parameter(name = "id", description = "编号", required = true)
+ @PreAuthorize("@ss.hasPermission('isolation:point:delete')")
+ public CommonResult deletePoint(@RequestParam("id") Long id) {
+ pointService.deletePoint(id);
+ return success(true);
+ }
+
+ @DeleteMapping("/delete-list")
+ @Parameter(name = "ids", description = "编号", required = true)
+ @Operation(summary = "批量删除隔离点")
+ @PreAuthorize("@ss.hasPermission('isolation:point:delete')")
+ public CommonResult deletePointList(@RequestParam("ids") List ids) {
+ pointService.deletePointListByIds(ids);
+ return success(true);
+ }
+
+ @GetMapping("/get")
+ @Operation(summary = "获得隔离点")
+ @Parameter(name = "id", description = "编号", required = true, example = "1024")
+ @PreAuthorize("@ss.hasPermission('isolation:point:query')")
+ public CommonResult getPoint(@RequestParam("id") Long id) {
+ PointDO point = pointService.getPoint(id);
+ return success(BeanUtils.toBean(point, PointRespVO.class));
+ }
+
+ @GetMapping("/page")
+ @Operation(summary = "获得隔离点分页")
+ @PreAuthorize("@ss.hasPermission('isolation:point:query')")
+ public CommonResult> getPointPage(@Valid PointPageReqVO pageReqVO) {
+ PageResult pageResult = pointService.getPointPage(pageReqVO);
+ return success(BeanUtils.toBean(pageResult, PointRespVO.class));
+ }
+
+ @GetMapping("/export-excel")
+ @Operation(summary = "导出隔离点 Excel")
+ @PreAuthorize("@ss.hasPermission('isolation:point:export')")
+ @ApiAccessLog(operateType = EXPORT)
+ public void exportPointExcel(@Valid PointPageReqVO pageReqVO,
+ HttpServletResponse response) throws IOException {
+ pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
+ List list = pointService.getPointPage(pageReqVO).getList();
+ // 导出 Excel
+ ExcelUtils.write(response, "隔离点.xls", "数据", PointRespVO.class,
+ BeanUtils.toBean(list, PointRespVO.class));
+ }
+
+}
\ No newline at end of file
diff --git a/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/dal/IsolationPointDO.java b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/dal/IsolationPointDO.java
new file mode 100644
index 0000000..7e48b4e
--- /dev/null
+++ b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/dal/IsolationPointDO.java
@@ -0,0 +1,40 @@
+package cn.iocoder.admin.module.lock.dal;
+
+import lombok.*;
+import java.util.*;
+import java.time.LocalDateTime;
+import java.time.LocalDateTime;
+import com.baomidou.mybatisplus.annotation.*;
+import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
+
+/**
+ * 指导书与隔离点关联 DO
+ *
+ * @author 超级管理员
+ */
+@TableName("guide_isolation_point")
+@KeySequence("guide_isolation_point_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class IsolationPointDO extends BaseDO {
+
+ /**
+ * id
+ */
+ @TableId
+ private Long id;
+ /**
+ * 隔离指导书ID
+ */
+ private Long guideId;
+ /**
+ * 隔离点ID
+ */
+ private Long isolationPointId;
+
+
+}
\ No newline at end of file
diff --git a/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/dal/LockDO.java b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/dal/LockDO.java
new file mode 100644
index 0000000..e343fdf
--- /dev/null
+++ b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/dal/LockDO.java
@@ -0,0 +1,61 @@
+package cn.iocoder.admin.module.lock.dal;
+
+import lombok.*;
+import java.util.*;
+import java.time.LocalDateTime;
+import java.time.LocalDateTime;
+import java.time.LocalDateTime;
+import com.baomidou.mybatisplus.annotation.*;
+import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
+
+/**
+ * 电子锁 DO
+ *
+ * @author 超级管理员
+ */
+@TableName("electron_lock")
+@KeySequence("electron_lock_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class LockDO extends BaseDO {
+
+ /**
+ * 主键ID
+ */
+ @TableId
+ private Long id;
+ /**
+ * 编号
+ */
+ private String lockNumber;
+ /**
+ * 名称
+ */
+ private String lockName;
+ /**
+ * 状态
+ */
+ private String lockStatus;
+ /**
+ * 锁具类型
+ */
+ private String lockType;
+ /**
+ * 启用状态: 0=未启用, 1=已启用
+ */
+ private Boolean lockEnableStatus;
+ /**
+ * 上次充电时间
+ */
+ private LocalDateTime lockLastChargeTime;
+ /**
+ * 蓝牙ID
+ */
+ private String lockBluetoothId;
+
+
+}
\ No newline at end of file
diff --git a/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/dal/LockGuideDO.java b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/dal/LockGuideDO.java
new file mode 100644
index 0000000..bc8d288
--- /dev/null
+++ b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/dal/LockGuideDO.java
@@ -0,0 +1,40 @@
+package cn.iocoder.admin.module.lock.dal;
+
+import lombok.*;
+import java.util.*;
+import java.time.LocalDateTime;
+import java.time.LocalDateTime;
+import com.baomidou.mybatisplus.annotation.*;
+import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
+
+/**
+ * 隔离指导书 DO
+ *
+ * @author 超级管理员
+ */
+@TableName("guide")
+@KeySequence("guide_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class LockGuideDO extends BaseDO {
+
+ /**
+ * 主键ID
+ */
+ @TableId
+ private Long id;
+ /**
+ * 工作内容和范围
+ */
+ private String guideContent;
+ /**
+ * 所需设备锁数量
+ */
+ private Integer guideLockNums;
+
+
+}
\ No newline at end of file
diff --git a/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/dal/LockWordRecordDO.java b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/dal/LockWordRecordDO.java
new file mode 100644
index 0000000..3486461
--- /dev/null
+++ b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/dal/LockWordRecordDO.java
@@ -0,0 +1,64 @@
+package cn.iocoder.admin.module.lock.dal;
+
+import lombok.*;
+import java.util.*;
+import java.time.LocalDateTime;
+import java.time.LocalDateTime;
+import com.baomidou.mybatisplus.annotation.*;
+import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
+
+/**
+ * 电子锁操作记录 DO
+ *
+ * @author 超级管理员
+ */
+@TableName("electron_lock_word_record")
+@KeySequence("electron_lock_word_record_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class LockWordRecordDO extends BaseDO {
+
+ /**
+ * 主键ID
+ */
+ @TableId
+ private Long id;
+ /**
+ * 操作人ID
+ */
+ private Long operatorId;
+ /**
+ * 电子锁ID
+ */
+ private Long lockId;
+ /**
+ * 关联的子项详情ID (某些操作可能不关联)
+ */
+ private Long isolationPlanItemDetailId;
+ /**
+ * 记录类型
+ */
+ private String recordType;
+ /**
+ * 操作签名 (图片路径)
+ */
+ private String signaturePath;
+ /**
+ * 操作前照片 (图片路径)
+ */
+ private String beforePhotoPath;
+ /**
+ * 操作后照片 (图片路径)
+ */
+ private String afterPhotoPath;
+ /**
+ * 操作GPS坐标
+ */
+ private String gpsCoordinates;
+
+
+}
\ No newline at end of file
diff --git a/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/dal/PlanDO.java b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/dal/PlanDO.java
new file mode 100644
index 0000000..a2c944e
--- /dev/null
+++ b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/dal/PlanDO.java
@@ -0,0 +1,36 @@
+package cn.iocoder.admin.module.lock.dal;
+
+import lombok.*;
+import java.util.*;
+import java.time.LocalDateTime;
+import java.time.LocalDateTime;
+import com.baomidou.mybatisplus.annotation.*;
+import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
+
+/**
+ * 隔离计划 DO
+ *
+ * @author 超级管理员
+ */
+@TableName("isolation_plan")
+@KeySequence("isolation_plan_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class PlanDO extends BaseDO {
+
+ /**
+ * 主键ID
+ */
+ @TableId
+ private Long id;
+ /**
+ * 计划名称
+ */
+ private String ipName;
+
+
+}
\ No newline at end of file
diff --git a/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/dal/PlanItemDO.java b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/dal/PlanItemDO.java
new file mode 100644
index 0000000..9980186
--- /dev/null
+++ b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/dal/PlanItemDO.java
@@ -0,0 +1,60 @@
+package cn.iocoder.admin.module.lock.dal;
+
+import lombok.*;
+import java.util.*;
+import java.time.LocalDateTime;
+import java.time.LocalDateTime;
+import com.baomidou.mybatisplus.annotation.*;
+import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
+
+/**
+ * 隔离计划子项 DO
+ *
+ * @author 超级管理员
+ */
+@TableName("isolation_plan_item")
+@KeySequence("isolation_plan_item_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class PlanItemDO extends BaseDO {
+
+ /**
+ * 主键ID
+ */
+ @TableId
+ private Long id;
+ /**
+ * 隔离计划ID
+ */
+ private Long isolationPlanId;
+ /**
+ * 隔离指导书ID
+ */
+ private Long guideId;
+ /**
+ * 集中挂牌人ID
+ */
+ private Long operatorId;
+ /**
+ * 集中挂牌协助人ID
+ */
+ private Long operatorHelperId;
+ /**
+ * 验证人ID
+ */
+ private Long verifierId;
+ /**
+ * 验证协助人ID
+ */
+ private Long verifierHelperId;
+ /**
+ * 子项状态: 0=未完成, 1=已完成
+ */
+ private Boolean status;
+
+
+}
\ No newline at end of file
diff --git a/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/dal/PlanItemDetailDO.java b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/dal/PlanItemDetailDO.java
new file mode 100644
index 0000000..f6a6791
--- /dev/null
+++ b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/dal/PlanItemDetailDO.java
@@ -0,0 +1,48 @@
+package cn.iocoder.admin.module.lock.dal;
+
+import lombok.*;
+import java.util.*;
+import java.time.LocalDateTime;
+import java.time.LocalDateTime;
+import com.baomidou.mybatisplus.annotation.*;
+import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
+
+/**
+ * 隔离计划子项详情 DO
+ *
+ * @author 超级管理员
+ */
+@TableName("isolation_plan_item_detail")
+@KeySequence("isolation_plan_item_detail_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class PlanItemDetailDO extends BaseDO {
+
+ /**
+ * 主键ID
+ */
+ @TableId
+ private Long id;
+ /**
+ * 隔离计划子项ID
+ */
+ private Long isolationPlanItemId;
+ /**
+ * 隔离点ID
+ */
+ private Long isolationPointId;
+ /**
+ * 电子锁ID
+ */
+ private Long lockId;
+ /**
+ * 锁状态: 0=未上锁, 1=已上锁, 2=已解锁
+ */
+ private Boolean lockStatus;
+
+
+}
\ No newline at end of file
diff --git a/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/dal/PlanLifeLockDO.java b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/dal/PlanLifeLockDO.java
new file mode 100644
index 0000000..b486975
--- /dev/null
+++ b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/dal/PlanLifeLockDO.java
@@ -0,0 +1,58 @@
+package cn.iocoder.admin.module.lock.dal;
+
+import lombok.*;
+import java.util.*;
+import java.time.LocalDateTime;
+import java.time.LocalDateTime;
+import java.time.LocalDateTime;
+import java.time.LocalDateTime;
+import com.baomidou.mybatisplus.annotation.*;
+import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
+
+/**
+ * 个人生命锁 DO
+ *
+ * @author 超级管理员
+ */
+@TableName("isolation_plan_life_lock")
+@KeySequence("isolation_plan_life_lock_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class PlanLifeLockDO extends BaseDO {
+
+ /**
+ * 主键ID
+ */
+ @TableId
+ private Long id;
+ /**
+ * 子项详情ID
+ */
+ private Long isolationPlanItemDetailId;
+ /**
+ * 上锁人ID
+ */
+ private Long userId;
+ /**
+ * 生命锁类型
+ */
+ private String lockType;
+ /**
+ * 锁定状态: 0=未上锁, 1=已上锁
+ */
+ private Boolean lockStatus;
+ /**
+ * 上锁时间
+ */
+ private LocalDateTime lockTime;
+ /**
+ * 解锁时间
+ */
+ private LocalDateTime unlockTime;
+
+
+}
\ No newline at end of file
diff --git a/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/dal/PointDO.java b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/dal/PointDO.java
new file mode 100644
index 0000000..51c16ff
--- /dev/null
+++ b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/dal/PointDO.java
@@ -0,0 +1,48 @@
+package cn.iocoder.admin.module.lock.dal;
+
+import lombok.*;
+import java.util.*;
+import java.time.LocalDateTime;
+import java.time.LocalDateTime;
+import com.baomidou.mybatisplus.annotation.*;
+import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
+
+/**
+ * 隔离点 DO
+ *
+ * @author 超级管理员
+ */
+@TableName("isolation_point")
+@KeySequence("isolation_point_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class PointDO extends BaseDO {
+
+ /**
+ * 主键ID
+ */
+ @TableId
+ private Long id;
+ /**
+ * 隔离点类型
+ */
+ private String ipType;
+ /**
+ * 隔离点名称
+ */
+ private String ipName;
+ /**
+ * 隔离点位置
+ */
+ private String ipLocation;
+ /**
+ * 隔离点编号
+ */
+ private String ipNumber;
+
+
+}
\ No newline at end of file
diff --git a/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/enums/ErrorCodeConstants.java b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/enums/ErrorCodeConstants.java
new file mode 100644
index 0000000..297925e
--- /dev/null
+++ b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/enums/ErrorCodeConstants.java
@@ -0,0 +1,25 @@
+package cn.iocoder.admin.module.lock.enums;
+
+import cn.iocoder.yudao.framework.common.exception.ErrorCode;
+
+
+public interface ErrorCodeConstants {
+
+ ErrorCode LOCK_NOT_EXISTS = new ErrorCode(1_005_000_001, "电子锁不存在");
+
+ ErrorCode LOCK_WORD_RECORD_NOT_EXISTS = new ErrorCode(1_005_000_002, "电子锁操作记录不存在");
+
+ ErrorCode ISOLATION_POINT_NOT_EXISTS = new ErrorCode(1_005_000_003, "指导书与隔离点关联不存在");
+
+ ErrorCode PLAN_NOT_EXISTS = new ErrorCode(1_005_000_004, "隔离计划不存在");
+
+ ErrorCode PLAN_ITEM_NOT_EXISTS = new ErrorCode(1_005_000_005, "隔离计划子项不存在");
+
+ ErrorCode LOCK_GUIDE_NOT_EXISTS = new ErrorCode(1_005_000_006, "隔离指导书不存在");
+
+ ErrorCode PLAN_ITEM_DETAIL_NOT_EXISTS = new ErrorCode(1_005_000_007, "隔离计划子项详情不存在");
+
+ ErrorCode PLAN_LIFE_LOCK_NOT_EXISTS = new ErrorCode(1_005_000_008, "个人生命锁不存在");
+
+ ErrorCode POINT_NOT_EXISTS = new ErrorCode(1_005_000_009, "隔离点不存在");
+}
diff --git a/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/mapper/IsolationPointMapper.java b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/mapper/IsolationPointMapper.java
new file mode 100644
index 0000000..e7005e1
--- /dev/null
+++ b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/mapper/IsolationPointMapper.java
@@ -0,0 +1,28 @@
+package cn.iocoder.admin.module.lock.mapper;
+
+import java.util.*;
+
+import cn.iocoder.admin.module.lock.dal.IsolationPointDO;
+import cn.iocoder.admin.module.lock.vo.IsolationPointPageReqVO;
+import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
+import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 指导书与隔离点关联 Mapper
+ *
+ * @author 超级管理员
+ */
+@Mapper
+public interface IsolationPointMapper extends BaseMapperX {
+
+ default PageResult selectPage(IsolationPointPageReqVO reqVO) {
+ return selectPage(reqVO, new LambdaQueryWrapperX()
+ .eqIfPresent(IsolationPointDO::getGuideId, reqVO.getGuideId())
+ .eqIfPresent(IsolationPointDO::getIsolationPointId, reqVO.getIsolationPointId())
+ .betweenIfPresent(IsolationPointDO::getCreateTime, reqVO.getCreateTime())
+ .orderByDesc(IsolationPointDO::getId));
+ }
+
+}
\ No newline at end of file
diff --git a/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/mapper/LockGuideMapper.java b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/mapper/LockGuideMapper.java
new file mode 100644
index 0000000..e492d32
--- /dev/null
+++ b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/mapper/LockGuideMapper.java
@@ -0,0 +1,28 @@
+package cn.iocoder.admin.module.lock.mapper;
+
+import java.util.*;
+
+import cn.iocoder.admin.module.lock.dal.LockGuideDO;
+import cn.iocoder.admin.module.lock.vo.LockGuidePageReqVO;
+import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
+import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 隔离指导书 Mapper
+ *
+ * @author 超级管理员
+ */
+@Mapper
+public interface LockGuideMapper extends BaseMapperX {
+
+ default PageResult selectPage(LockGuidePageReqVO reqVO) {
+ return selectPage(reqVO, new LambdaQueryWrapperX()
+ .eqIfPresent(LockGuideDO::getGuideContent, reqVO.getGuideContent())
+ .eqIfPresent(LockGuideDO::getGuideLockNums, reqVO.getGuideLockNums())
+ .betweenIfPresent(LockGuideDO::getCreateTime, reqVO.getCreateTime())
+ .orderByDesc(LockGuideDO::getId));
+ }
+
+}
\ No newline at end of file
diff --git a/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/mapper/LockMapper.java b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/mapper/LockMapper.java
new file mode 100644
index 0000000..363d9e9
--- /dev/null
+++ b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/mapper/LockMapper.java
@@ -0,0 +1,33 @@
+package cn.iocoder.admin.module.lock.mapper;
+
+import java.util.*;
+
+import cn.iocoder.admin.module.lock.dal.LockDO;
+import cn.iocoder.admin.module.lock.vo.LockPageReqVO;
+import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
+import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 电子锁 Mapper
+ *
+ * @author 超级管理员
+ */
+@Mapper
+public interface LockMapper extends BaseMapperX {
+
+ default PageResult selectPage(LockPageReqVO reqVO) {
+ return selectPage(reqVO, new LambdaQueryWrapperX()
+ .eqIfPresent(LockDO::getLockNumber, reqVO.getLockNumber())
+ .likeIfPresent(LockDO::getLockName, reqVO.getLockName())
+ .eqIfPresent(LockDO::getLockStatus, reqVO.getLockStatus())
+ .eqIfPresent(LockDO::getLockType, reqVO.getLockType())
+ .eqIfPresent(LockDO::getLockEnableStatus, reqVO.getLockEnableStatus())
+ .betweenIfPresent(LockDO::getLockLastChargeTime, reqVO.getLockLastChargeTime())
+ .eqIfPresent(LockDO::getLockBluetoothId, reqVO.getLockBluetoothId())
+ .betweenIfPresent(LockDO::getCreateTime, reqVO.getCreateTime())
+ .orderByDesc(LockDO::getId));
+ }
+
+}
\ No newline at end of file
diff --git a/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/mapper/LockWordRecordMapper.java b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/mapper/LockWordRecordMapper.java
new file mode 100644
index 0000000..66db61e
--- /dev/null
+++ b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/mapper/LockWordRecordMapper.java
@@ -0,0 +1,34 @@
+package cn.iocoder.admin.module.lock.mapper;
+
+import java.util.*;
+
+import cn.iocoder.admin.module.lock.dal.LockWordRecordDO;
+import cn.iocoder.admin.module.lock.vo.LockWordRecordPageReqVO;
+import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
+import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 电子锁操作记录 Mapper
+ *
+ * @author 超级管理员
+ */
+@Mapper
+public interface LockWordRecordMapper extends BaseMapperX {
+
+ default PageResult selectPage(LockWordRecordPageReqVO reqVO) {
+ return selectPage(reqVO, new LambdaQueryWrapperX()
+ .eqIfPresent(LockWordRecordDO::getOperatorId, reqVO.getOperatorId())
+ .eqIfPresent(LockWordRecordDO::getLockId, reqVO.getLockId())
+ .eqIfPresent(LockWordRecordDO::getIsolationPlanItemDetailId, reqVO.getIsolationPlanItemDetailId())
+ .eqIfPresent(LockWordRecordDO::getRecordType, reqVO.getRecordType())
+ .eqIfPresent(LockWordRecordDO::getSignaturePath, reqVO.getSignaturePath())
+ .eqIfPresent(LockWordRecordDO::getBeforePhotoPath, reqVO.getBeforePhotoPath())
+ .eqIfPresent(LockWordRecordDO::getAfterPhotoPath, reqVO.getAfterPhotoPath())
+ .eqIfPresent(LockWordRecordDO::getGpsCoordinates, reqVO.getGpsCoordinates())
+ .betweenIfPresent(LockWordRecordDO::getCreateTime, reqVO.getCreateTime())
+ .orderByDesc(LockWordRecordDO::getId));
+ }
+
+}
\ No newline at end of file
diff --git a/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/mapper/PlanItemDetailMapper.java b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/mapper/PlanItemDetailMapper.java
new file mode 100644
index 0000000..a258df9
--- /dev/null
+++ b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/mapper/PlanItemDetailMapper.java
@@ -0,0 +1,32 @@
+package cn.iocoder.admin.module.lock.mapper;
+
+import cn.iocoder.admin.module.lock.dal.PlanItemDetailDO;
+import cn.iocoder.admin.module.lock.vo.PlanItemDetailPageReqVO;
+import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
+import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.*;
+
+
+
+/**
+ * 隔离计划子项详情 Mapper
+ *
+ * @author 超级管理员
+ */
+@Mapper
+public interface PlanItemDetailMapper extends BaseMapperX {
+
+ default PageResult selectPage(PlanItemDetailPageReqVO reqVO) {
+ return selectPage(reqVO, new LambdaQueryWrapperX()
+ .eqIfPresent(PlanItemDetailDO::getIsolationPlanItemId, reqVO.getIsolationPlanItemId())
+ .eqIfPresent(PlanItemDetailDO::getIsolationPointId, reqVO.getIsolationPointId())
+ .eqIfPresent(PlanItemDetailDO::getLockId, reqVO.getLockId())
+ .eqIfPresent(PlanItemDetailDO::getLockStatus, reqVO.getLockStatus())
+ .betweenIfPresent(PlanItemDetailDO::getCreateTime, reqVO.getCreateTime())
+ .orderByDesc(PlanItemDetailDO::getId));
+ }
+
+}
\ No newline at end of file
diff --git a/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/mapper/PlanItemMapper.java b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/mapper/PlanItemMapper.java
new file mode 100644
index 0000000..a87eab1
--- /dev/null
+++ b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/mapper/PlanItemMapper.java
@@ -0,0 +1,33 @@
+package cn.iocoder.admin.module.lock.mapper;
+
+import java.util.*;
+
+import cn.iocoder.admin.module.lock.dal.PlanItemDO;
+import cn.iocoder.admin.module.lock.vo.PlanItemPageReqVO;
+import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
+import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 隔离计划子项 Mapper
+ *
+ * @author 超级管理员
+ */
+@Mapper
+public interface PlanItemMapper extends BaseMapperX {
+
+ default PageResult selectPage(PlanItemPageReqVO reqVO) {
+ return selectPage(reqVO, new LambdaQueryWrapperX()
+ .eqIfPresent(PlanItemDO::getIsolationPlanId, reqVO.getIsolationPlanId())
+ .eqIfPresent(PlanItemDO::getGuideId, reqVO.getGuideId())
+ .eqIfPresent(PlanItemDO::getOperatorId, reqVO.getOperatorId())
+ .eqIfPresent(PlanItemDO::getOperatorHelperId, reqVO.getOperatorHelperId())
+ .eqIfPresent(PlanItemDO::getVerifierId, reqVO.getVerifierId())
+ .eqIfPresent(PlanItemDO::getVerifierHelperId, reqVO.getVerifierHelperId())
+ .eqIfPresent(PlanItemDO::getStatus, reqVO.getStatus())
+ .betweenIfPresent(PlanItemDO::getCreateTime, reqVO.getCreateTime())
+ .orderByDesc(PlanItemDO::getId));
+ }
+
+}
\ No newline at end of file
diff --git a/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/mapper/PlanLifeLockMapper.java b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/mapper/PlanLifeLockMapper.java
new file mode 100644
index 0000000..8efc02b
--- /dev/null
+++ b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/mapper/PlanLifeLockMapper.java
@@ -0,0 +1,32 @@
+package cn.iocoder.admin.module.lock.mapper;
+
+import java.util.*;
+
+import cn.iocoder.admin.module.lock.dal.PlanLifeLockDO;
+import cn.iocoder.admin.module.lock.vo.PlanLifeLockPageReqVO;
+import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
+import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 个人生命锁 Mapper
+ *
+ * @author 超级管理员
+ */
+@Mapper
+public interface PlanLifeLockMapper extends BaseMapperX {
+
+ default PageResult selectPage(PlanLifeLockPageReqVO reqVO) {
+ return selectPage(reqVO, new LambdaQueryWrapperX()
+ .eqIfPresent(PlanLifeLockDO::getIsolationPlanItemDetailId, reqVO.getIsolationPlanItemDetailId())
+ .eqIfPresent(PlanLifeLockDO::getUserId, reqVO.getUserId())
+ .eqIfPresent(PlanLifeLockDO::getLockType, reqVO.getLockType())
+ .eqIfPresent(PlanLifeLockDO::getLockStatus, reqVO.getLockStatus())
+ .betweenIfPresent(PlanLifeLockDO::getLockTime, reqVO.getLockTime())
+ .betweenIfPresent(PlanLifeLockDO::getUnlockTime, reqVO.getUnlockTime())
+ .betweenIfPresent(PlanLifeLockDO::getCreateTime, reqVO.getCreateTime())
+ .orderByDesc(PlanLifeLockDO::getId));
+ }
+
+}
\ No newline at end of file
diff --git a/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/mapper/PlanMapper.java b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/mapper/PlanMapper.java
new file mode 100644
index 0000000..dbcd221
--- /dev/null
+++ b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/mapper/PlanMapper.java
@@ -0,0 +1,27 @@
+package cn.iocoder.admin.module.lock.mapper;
+
+import java.util.*;
+
+import cn.iocoder.admin.module.lock.dal.PlanDO;
+import cn.iocoder.admin.module.lock.vo.PlanPageReqVO;
+import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
+import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 隔离计划 Mapper
+ *
+ * @author 超级管理员
+ */
+@Mapper
+public interface PlanMapper extends BaseMapperX {
+
+ default PageResult selectPage(PlanPageReqVO reqVO) {
+ return selectPage(reqVO, new LambdaQueryWrapperX()
+ .likeIfPresent(PlanDO::getIpName, reqVO.getIpName())
+ .betweenIfPresent(PlanDO::getCreateTime, reqVO.getCreateTime())
+ .orderByDesc(PlanDO::getId));
+ }
+
+}
\ No newline at end of file
diff --git a/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/mapper/PointMapper.java b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/mapper/PointMapper.java
new file mode 100644
index 0000000..06502d5
--- /dev/null
+++ b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/mapper/PointMapper.java
@@ -0,0 +1,30 @@
+package cn.iocoder.admin.module.lock.mapper;
+
+import java.util.*;
+
+import cn.iocoder.admin.module.lock.dal.PointDO;
+import cn.iocoder.admin.module.lock.vo.PointPageReqVO;
+import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
+import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 隔离点 Mapper
+ *
+ * @author 超级管理员
+ */
+@Mapper
+public interface PointMapper extends BaseMapperX {
+
+ default PageResult selectPage(PointPageReqVO reqVO) {
+ return selectPage(reqVO, new LambdaQueryWrapperX()
+ .eqIfPresent(PointDO::getIpType, reqVO.getIpType())
+ .likeIfPresent(PointDO::getIpName, reqVO.getIpName())
+ .eqIfPresent(PointDO::getIpLocation, reqVO.getIpLocation())
+ .eqIfPresent(PointDO::getIpNumber, reqVO.getIpNumber())
+ .betweenIfPresent(PointDO::getCreateTime, reqVO.getCreateTime())
+ .orderByDesc(PointDO::getId));
+ }
+
+}
\ No newline at end of file
diff --git a/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/mapper/xml/IsolationPointMapper.xml b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/mapper/xml/IsolationPointMapper.xml
new file mode 100644
index 0000000..d83838e
--- /dev/null
+++ b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/mapper/xml/IsolationPointMapper.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/mapper/xml/LockGuideMapper.xml b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/mapper/xml/LockGuideMapper.xml
new file mode 100644
index 0000000..e612968
--- /dev/null
+++ b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/mapper/xml/LockGuideMapper.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/mapper/xml/LockMapper.xml b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/mapper/xml/LockMapper.xml
new file mode 100644
index 0000000..0177b54
--- /dev/null
+++ b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/mapper/xml/LockMapper.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/mapper/xml/LockWordRecordMapper.xml b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/mapper/xml/LockWordRecordMapper.xml
new file mode 100644
index 0000000..24a8fe2
--- /dev/null
+++ b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/mapper/xml/LockWordRecordMapper.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/mapper/xml/PlanItemDetailMapper.xml b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/mapper/xml/PlanItemDetailMapper.xml
new file mode 100644
index 0000000..7ad3e0d
--- /dev/null
+++ b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/mapper/xml/PlanItemDetailMapper.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/mapper/xml/PlanItemMapper.xml b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/mapper/xml/PlanItemMapper.xml
new file mode 100644
index 0000000..d851ae6
--- /dev/null
+++ b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/mapper/xml/PlanItemMapper.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/mapper/xml/PlanLifeLockMapper.xml b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/mapper/xml/PlanLifeLockMapper.xml
new file mode 100644
index 0000000..e2c4909
--- /dev/null
+++ b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/mapper/xml/PlanLifeLockMapper.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/mapper/xml/PlanMapper.xml b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/mapper/xml/PlanMapper.xml
new file mode 100644
index 0000000..0075d78
--- /dev/null
+++ b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/mapper/xml/PlanMapper.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/mapper/xml/PointMapper.xml b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/mapper/xml/PointMapper.xml
new file mode 100644
index 0000000..b055560
--- /dev/null
+++ b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/mapper/xml/PointMapper.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/service/IsolationPointService.java b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/service/IsolationPointService.java
new file mode 100644
index 0000000..f832709
--- /dev/null
+++ b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/service/IsolationPointService.java
@@ -0,0 +1,65 @@
+package cn.iocoder.admin.module.lock.service;
+
+import java.util.*;
+
+import cn.iocoder.admin.module.lock.dal.IsolationPointDO;
+import cn.iocoder.admin.module.lock.vo.IsolationPointPageReqVO;
+import cn.iocoder.admin.module.lock.vo.IsolationPointSaveReqVO;
+import jakarta.validation.*;
+
+import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.framework.common.pojo.PageParam;
+
+/**
+ * 指导书与隔离点关联 Service 接口
+ *
+ * @author 超级管理员
+ */
+public interface IsolationPointService {
+
+ /**
+ * 创建指导书与隔离点关联
+ *
+ * @param createReqVO 创建信息
+ * @return 编号
+ */
+ Long createIsolationPoint(@Valid IsolationPointSaveReqVO createReqVO);
+
+ /**
+ * 更新指导书与隔离点关联
+ *
+ * @param updateReqVO 更新信息
+ */
+ void updateIsolationPoint(@Valid IsolationPointSaveReqVO updateReqVO);
+
+ /**
+ * 删除指导书与隔离点关联
+ *
+ * @param id 编号
+ */
+ void deleteIsolationPoint(Long id);
+
+ /**
+ * 批量删除指导书与隔离点关联
+ *
+ * @param ids 编号
+ */
+ void deleteIsolationPointListByIds(List ids);
+
+ /**
+ * 获得指导书与隔离点关联
+ *
+ * @param id 编号
+ * @return 指导书与隔离点关联
+ */
+ IsolationPointDO getIsolationPoint(Long id);
+
+ /**
+ * 获得指导书与隔离点关联分页
+ *
+ * @param pageReqVO 分页查询
+ * @return 指导书与隔离点关联分页
+ */
+ PageResult getIsolationPointPage(IsolationPointPageReqVO pageReqVO);
+
+}
\ No newline at end of file
diff --git a/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/service/LockGuideService.java b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/service/LockGuideService.java
new file mode 100644
index 0000000..7a70e73
--- /dev/null
+++ b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/service/LockGuideService.java
@@ -0,0 +1,64 @@
+package cn.iocoder.admin.module.lock.service;
+
+import java.util.*;
+
+import cn.iocoder.admin.module.lock.dal.LockGuideDO;
+import cn.iocoder.admin.module.lock.vo.LockGuidePageReqVO;
+import cn.iocoder.admin.module.lock.vo.LockGuideSaveReqVO;
+import jakarta.validation.*;
+import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.framework.common.pojo.PageParam;
+
+/**
+ * 隔离指导书 Service 接口
+ *
+ * @author 超级管理员
+ */
+public interface LockGuideService {
+
+ /**
+ * 创建隔离指导书
+ *
+ * @param createReqVO 创建信息
+ * @return 编号
+ */
+ Long createLockGuide(@Valid LockGuideSaveReqVO createReqVO);
+
+ /**
+ * 更新隔离指导书
+ *
+ * @param updateReqVO 更新信息
+ */
+ void updateLockGuide(@Valid LockGuideSaveReqVO updateReqVO);
+
+ /**
+ * 删除隔离指导书
+ *
+ * @param id 编号
+ */
+ void deleteLockGuide(Long id);
+
+ /**
+ * 批量删除隔离指导书
+ *
+ * @param ids 编号
+ */
+ void deleteLockGuideListByIds(List ids);
+
+ /**
+ * 获得隔离指导书
+ *
+ * @param id 编号
+ * @return 隔离指导书
+ */
+ LockGuideDO getLockGuide(Long id);
+
+ /**
+ * 获得隔离指导书分页
+ *
+ * @param pageReqVO 分页查询
+ * @return 隔离指导书分页
+ */
+ PageResult getLockGuidePage(LockGuidePageReqVO pageReqVO);
+
+}
\ No newline at end of file
diff --git a/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/service/LockService.java b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/service/LockService.java
new file mode 100644
index 0000000..678333d
--- /dev/null
+++ b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/service/LockService.java
@@ -0,0 +1,64 @@
+package cn.iocoder.admin.module.lock.service;
+
+import java.util.*;
+
+import cn.iocoder.admin.module.lock.dal.LockDO;
+import cn.iocoder.admin.module.lock.vo.LockPageReqVO;
+import cn.iocoder.admin.module.lock.vo.LockSaveReqVO;
+import jakarta.validation.*;
+import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.framework.common.pojo.PageParam;
+
+/**
+ * 电子锁 Service 接口
+ *
+ * @author 超级管理员
+ */
+public interface LockService {
+
+ /**
+ * 创建电子锁
+ *
+ * @param createReqVO 创建信息
+ * @return 编号
+ */
+ Long createLock(@Valid LockSaveReqVO createReqVO);
+
+ /**
+ * 更新电子锁
+ *
+ * @param updateReqVO 更新信息
+ */
+ void updateLock(@Valid LockSaveReqVO updateReqVO);
+
+ /**
+ * 删除电子锁
+ *
+ * @param id 编号
+ */
+ void deleteLock(Long id);
+
+ /**
+ * 批量删除电子锁
+ *
+ * @param ids 编号
+ */
+ void deleteLockListByIds(List ids);
+
+ /**
+ * 获得电子锁
+ *
+ * @param id 编号
+ * @return 电子锁
+ */
+ LockDO getLock(Long id);
+
+ /**
+ * 获得电子锁分页
+ *
+ * @param pageReqVO 分页查询
+ * @return 电子锁分页
+ */
+ PageResult getLockPage(LockPageReqVO pageReqVO);
+
+}
\ No newline at end of file
diff --git a/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/service/LockWordRecordService.java b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/service/LockWordRecordService.java
new file mode 100644
index 0000000..65f5fb3
--- /dev/null
+++ b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/service/LockWordRecordService.java
@@ -0,0 +1,64 @@
+package cn.iocoder.admin.module.lock.service;
+
+import java.util.*;
+
+import cn.iocoder.admin.module.lock.dal.LockWordRecordDO;
+import cn.iocoder.admin.module.lock.vo.LockWordRecordPageReqVO;
+import cn.iocoder.admin.module.lock.vo.LockWordRecordSaveReqVO;
+import jakarta.validation.*;
+import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.framework.common.pojo.PageParam;
+
+/**
+ * 电子锁操作记录 Service 接口
+ *
+ * @author 超级管理员
+ */
+public interface LockWordRecordService {
+
+ /**
+ * 创建电子锁操作记录
+ *
+ * @param createReqVO 创建信息
+ * @return 编号
+ */
+ Long createLockWordRecord(@Valid LockWordRecordSaveReqVO createReqVO);
+
+ /**
+ * 更新电子锁操作记录
+ *
+ * @param updateReqVO 更新信息
+ */
+ void updateLockWordRecord(@Valid LockWordRecordSaveReqVO updateReqVO);
+
+ /**
+ * 删除电子锁操作记录
+ *
+ * @param id 编号
+ */
+ void deleteLockWordRecord(Long id);
+
+ /**
+ * 批量删除电子锁操作记录
+ *
+ * @param ids 编号
+ */
+ void deleteLockWordRecordListByIds(List ids);
+
+ /**
+ * 获得电子锁操作记录
+ *
+ * @param id 编号
+ * @return 电子锁操作记录
+ */
+ LockWordRecordDO getLockWordRecord(Long id);
+
+ /**
+ * 获得电子锁操作记录分页
+ *
+ * @param pageReqVO 分页查询
+ * @return 电子锁操作记录分页
+ */
+ PageResult getLockWordRecordPage(LockWordRecordPageReqVO pageReqVO);
+
+}
\ No newline at end of file
diff --git a/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/service/PlanItemDetailService.java b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/service/PlanItemDetailService.java
new file mode 100644
index 0000000..c644ca3
--- /dev/null
+++ b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/service/PlanItemDetailService.java
@@ -0,0 +1,65 @@
+package cn.iocoder.admin.module.lock.service;
+
+import java.util.*;
+
+import cn.iocoder.admin.module.lock.dal.PlanItemDetailDO;
+import cn.iocoder.admin.module.lock.vo.PlanItemDetailPageReqVO;
+import cn.iocoder.admin.module.lock.vo.PlanItemDetailSaveReqVO;
+import jakarta.validation.*;
+
+import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.framework.common.pojo.PageParam;
+
+/**
+ * 隔离计划子项详情 Service 接口
+ *
+ * @author 超级管理员
+ */
+public interface PlanItemDetailService {
+
+ /**
+ * 创建隔离计划子项详情
+ *
+ * @param createReqVO 创建信息
+ * @return 编号
+ */
+ Long createPlanItemDetail(@Valid PlanItemDetailSaveReqVO createReqVO);
+
+ /**
+ * 更新隔离计划子项详情
+ *
+ * @param updateReqVO 更新信息
+ */
+ void updatePlanItemDetail(@Valid PlanItemDetailSaveReqVO updateReqVO);
+
+ /**
+ * 删除隔离计划子项详情
+ *
+ * @param id 编号
+ */
+ void deletePlanItemDetail(Long id);
+
+ /**
+ * 批量删除隔离计划子项详情
+ *
+ * @param ids 编号
+ */
+ void deletePlanItemDetailListByIds(List ids);
+
+ /**
+ * 获得隔离计划子项详情
+ *
+ * @param id 编号
+ * @return 隔离计划子项详情
+ */
+ PlanItemDetailDO getPlanItemDetail(Long id);
+
+ /**
+ * 获得隔离计划子项详情分页
+ *
+ * @param pageReqVO 分页查询
+ * @return 隔离计划子项详情分页
+ */
+ PageResult getPlanItemDetailPage(PlanItemDetailPageReqVO pageReqVO);
+
+}
\ No newline at end of file
diff --git a/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/service/PlanItemService.java b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/service/PlanItemService.java
new file mode 100644
index 0000000..7bf9afa
--- /dev/null
+++ b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/service/PlanItemService.java
@@ -0,0 +1,64 @@
+package cn.iocoder.admin.module.lock.service;
+
+import java.util.*;
+
+import cn.iocoder.admin.module.lock.dal.PlanItemDO;
+import cn.iocoder.admin.module.lock.vo.PlanItemPageReqVO;
+import cn.iocoder.admin.module.lock.vo.PlanItemSaveReqVO;
+import jakarta.validation.*;
+import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.framework.common.pojo.PageParam;
+
+/**
+ * 隔离计划子项 Service 接口
+ *
+ * @author 超级管理员
+ */
+public interface PlanItemService {
+
+ /**
+ * 创建隔离计划子项
+ *
+ * @param createReqVO 创建信息
+ * @return 编号
+ */
+ Long createPlanItem(@Valid PlanItemSaveReqVO createReqVO);
+
+ /**
+ * 更新隔离计划子项
+ *
+ * @param updateReqVO 更新信息
+ */
+ void updatePlanItem(@Valid PlanItemSaveReqVO updateReqVO);
+
+ /**
+ * 删除隔离计划子项
+ *
+ * @param id 编号
+ */
+ void deletePlanItem(Long id);
+
+ /**
+ * 批量删除隔离计划子项
+ *
+ * @param ids 编号
+ */
+ void deletePlanItemListByIds(List ids);
+
+ /**
+ * 获得隔离计划子项
+ *
+ * @param id 编号
+ * @return 隔离计划子项
+ */
+ PlanItemDO getPlanItem(Long id);
+
+ /**
+ * 获得隔离计划子项分页
+ *
+ * @param pageReqVO 分页查询
+ * @return 隔离计划子项分页
+ */
+ PageResult getPlanItemPage(PlanItemPageReqVO pageReqVO);
+
+}
\ No newline at end of file
diff --git a/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/service/PlanLifeLockService.java b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/service/PlanLifeLockService.java
new file mode 100644
index 0000000..5020262
--- /dev/null
+++ b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/service/PlanLifeLockService.java
@@ -0,0 +1,64 @@
+package cn.iocoder.admin.module.lock.service;
+
+import java.util.*;
+
+import cn.iocoder.admin.module.lock.dal.PlanLifeLockDO;
+import cn.iocoder.admin.module.lock.vo.PlanLifeLockPageReqVO;
+import cn.iocoder.admin.module.lock.vo.PlanLifeLockSaveReqVO;
+import jakarta.validation.*;
+import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.framework.common.pojo.PageParam;
+
+/**
+ * 个人生命锁 Service 接口
+ *
+ * @author 超级管理员
+ */
+public interface PlanLifeLockService {
+
+ /**
+ * 创建个人生命锁
+ *
+ * @param createReqVO 创建信息
+ * @return 编号
+ */
+ Long createPlanLifeLock(@Valid PlanLifeLockSaveReqVO createReqVO);
+
+ /**
+ * 更新个人生命锁
+ *
+ * @param updateReqVO 更新信息
+ */
+ void updatePlanLifeLock(@Valid PlanLifeLockSaveReqVO updateReqVO);
+
+ /**
+ * 删除个人生命锁
+ *
+ * @param id 编号
+ */
+ void deletePlanLifeLock(Long id);
+
+ /**
+ * 批量删除个人生命锁
+ *
+ * @param ids 编号
+ */
+ void deletePlanLifeLockListByIds(List ids);
+
+ /**
+ * 获得个人生命锁
+ *
+ * @param id 编号
+ * @return 个人生命锁
+ */
+ PlanLifeLockDO getPlanLifeLock(Long id);
+
+ /**
+ * 获得个人生命锁分页
+ *
+ * @param pageReqVO 分页查询
+ * @return 个人生命锁分页
+ */
+ PageResult getPlanLifeLockPage(PlanLifeLockPageReqVO pageReqVO);
+
+}
\ No newline at end of file
diff --git a/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/service/PlanService.java b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/service/PlanService.java
new file mode 100644
index 0000000..e34c598
--- /dev/null
+++ b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/service/PlanService.java
@@ -0,0 +1,64 @@
+package cn.iocoder.admin.module.lock.service;
+
+import java.util.*;
+
+import cn.iocoder.admin.module.lock.dal.PlanDO;
+import cn.iocoder.admin.module.lock.vo.PlanPageReqVO;
+import cn.iocoder.admin.module.lock.vo.PlanSaveReqVO;
+import jakarta.validation.*;
+import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.framework.common.pojo.PageParam;
+
+/**
+ * 隔离计划 Service 接口
+ *
+ * @author 超级管理员
+ */
+public interface PlanService {
+
+ /**
+ * 创建隔离计划
+ *
+ * @param createReqVO 创建信息
+ * @return 编号
+ */
+ Long createPlan(@Valid PlanSaveReqVO createReqVO);
+
+ /**
+ * 更新隔离计划
+ *
+ * @param updateReqVO 更新信息
+ */
+ void updatePlan(@Valid PlanSaveReqVO updateReqVO);
+
+ /**
+ * 删除隔离计划
+ *
+ * @param id 编号
+ */
+ void deletePlan(Long id);
+
+ /**
+ * 批量删除隔离计划
+ *
+ * @param ids 编号
+ */
+ void deletePlanListByIds(List ids);
+
+ /**
+ * 获得隔离计划
+ *
+ * @param id 编号
+ * @return 隔离计划
+ */
+ PlanDO getPlan(Long id);
+
+ /**
+ * 获得隔离计划分页
+ *
+ * @param pageReqVO 分页查询
+ * @return 隔离计划分页
+ */
+ PageResult getPlanPage(PlanPageReqVO pageReqVO);
+
+}
\ No newline at end of file
diff --git a/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/service/PointService.java b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/service/PointService.java
new file mode 100644
index 0000000..96d985a
--- /dev/null
+++ b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/service/PointService.java
@@ -0,0 +1,65 @@
+package cn.iocoder.admin.module.lock.service;
+
+import java.util.*;
+
+import cn.iocoder.admin.module.lock.dal.PointDO;
+import cn.iocoder.admin.module.lock.vo.PointPageReqVO;
+import cn.iocoder.admin.module.lock.vo.PointSaveReqVO;
+import jakarta.validation.*;
+
+import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.framework.common.pojo.PageParam;
+
+/**
+ * 隔离点 Service 接口
+ *
+ * @author 超级管理员
+ */
+public interface PointService {
+
+ /**
+ * 创建隔离点
+ *
+ * @param createReqVO 创建信息
+ * @return 编号
+ */
+ Long createPoint(@Valid PointSaveReqVO createReqVO);
+
+ /**
+ * 更新隔离点
+ *
+ * @param updateReqVO 更新信息
+ */
+ void updatePoint(@Valid PointSaveReqVO updateReqVO);
+
+ /**
+ * 删除隔离点
+ *
+ * @param id 编号
+ */
+ void deletePoint(Long id);
+
+ /**
+ * 批量删除隔离点
+ *
+ * @param ids 编号
+ */
+ void deletePointListByIds(List ids);
+
+ /**
+ * 获得隔离点
+ *
+ * @param id 编号
+ * @return 隔离点
+ */
+ PointDO getPoint(Long id);
+
+ /**
+ * 获得隔离点分页
+ *
+ * @param pageReqVO 分页查询
+ * @return 隔离点分页
+ */
+ PageResult getPointPage(PointPageReqVO pageReqVO);
+
+}
\ No newline at end of file
diff --git a/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/service/impl/IsolationPointServiceImpl.java b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/service/impl/IsolationPointServiceImpl.java
new file mode 100644
index 0000000..09c4be8
--- /dev/null
+++ b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/service/impl/IsolationPointServiceImpl.java
@@ -0,0 +1,87 @@
+package cn.iocoder.admin.module.lock.service.impl;
+
+import cn.hutool.core.collection.CollUtil;
+import cn.iocoder.admin.module.lock.dal.IsolationPointDO;
+import cn.iocoder.admin.module.lock.mapper.IsolationPointMapper;
+import cn.iocoder.admin.module.lock.service.IsolationPointService;
+import cn.iocoder.admin.module.lock.vo.IsolationPointPageReqVO;
+import cn.iocoder.admin.module.lock.vo.IsolationPointSaveReqVO;
+import org.springframework.stereotype.Service;
+import jakarta.annotation.Resource;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.*;
+import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.framework.common.pojo.PageParam;
+import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
+
+
+import static cn.iocoder.admin.module.lock.enums.ErrorCodeConstants.ISOLATION_POINT_NOT_EXISTS;
+import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
+import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertList;
+import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.diffList;
+
+/**
+ * 指导书与隔离点关联 Service 实现类
+ *
+ * @author 超级管理员
+ */
+@Service
+@Validated
+public class IsolationPointServiceImpl implements IsolationPointService {
+
+ @Resource
+ private IsolationPointMapper isolationPointMapper;
+
+ @Override
+ public Long createIsolationPoint(IsolationPointSaveReqVO createReqVO) {
+ // 插入
+ IsolationPointDO isolationPoint = BeanUtils.toBean(createReqVO, IsolationPointDO.class);
+ isolationPointMapper.insert(isolationPoint);
+
+ // 返回
+ return isolationPoint.getId();
+ }
+
+ @Override
+ public void updateIsolationPoint(IsolationPointSaveReqVO updateReqVO) {
+ // 校验存在
+ validateIsolationPointExists(updateReqVO.getId());
+ // 更新
+ IsolationPointDO updateObj = BeanUtils.toBean(updateReqVO, IsolationPointDO.class);
+ isolationPointMapper.updateById(updateObj);
+ }
+
+ @Override
+ public void deleteIsolationPoint(Long id) {
+ // 校验存在
+ validateIsolationPointExists(id);
+ // 删除
+ isolationPointMapper.deleteById(id);
+ }
+
+ @Override
+ public void deleteIsolationPointListByIds(List ids) {
+ // 删除
+ isolationPointMapper.deleteByIds(ids);
+ }
+
+
+ private void validateIsolationPointExists(Long id) {
+ if (isolationPointMapper.selectById(id) == null) {
+ throw exception(ISOLATION_POINT_NOT_EXISTS);
+ }
+ }
+
+ @Override
+ public IsolationPointDO getIsolationPoint(Long id) {
+ return isolationPointMapper.selectById(id);
+ }
+
+ @Override
+ public PageResult getIsolationPointPage(IsolationPointPageReqVO pageReqVO) {
+ return isolationPointMapper.selectPage(pageReqVO);
+ }
+
+}
\ No newline at end of file
diff --git a/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/service/impl/LockGuideServiceImpl.java b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/service/impl/LockGuideServiceImpl.java
new file mode 100644
index 0000000..9f3dfe5
--- /dev/null
+++ b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/service/impl/LockGuideServiceImpl.java
@@ -0,0 +1,88 @@
+package cn.iocoder.admin.module.lock.service.impl;
+
+import cn.hutool.core.collection.CollUtil;
+import cn.iocoder.admin.module.lock.dal.LockGuideDO;
+import cn.iocoder.admin.module.lock.mapper.LockGuideMapper;
+import cn.iocoder.admin.module.lock.service.LockGuideService;
+import cn.iocoder.admin.module.lock.vo.LockGuidePageReqVO;
+import cn.iocoder.admin.module.lock.vo.LockGuideSaveReqVO;
+import org.springframework.stereotype.Service;
+import jakarta.annotation.Resource;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.*;
+
+import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.framework.common.pojo.PageParam;
+import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
+
+
+import static cn.iocoder.admin.module.lock.enums.ErrorCodeConstants.LOCK_GUIDE_NOT_EXISTS;
+import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
+import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertList;
+
+
+/**
+ * 隔离指导书 Service 实现类
+ *
+ * @author 超级管理员
+ */
+@Service
+@Validated
+public class LockGuideServiceImpl implements LockGuideService {
+
+ @Resource
+ private LockGuideMapper lockGuideMapper;
+
+ @Override
+ public Long createLockGuide(LockGuideSaveReqVO createReqVO) {
+ // 插入
+ LockGuideDO lockGuide = BeanUtils.toBean(createReqVO, LockGuideDO.class);
+ lockGuideMapper.insert(lockGuide);
+
+ // 返回
+ return lockGuide.getId();
+ }
+
+ @Override
+ public void updateLockGuide(LockGuideSaveReqVO updateReqVO) {
+ // 校验存在
+ validateLockGuideExists(updateReqVO.getId());
+ // 更新
+ LockGuideDO updateObj = BeanUtils.toBean(updateReqVO, LockGuideDO.class);
+ lockGuideMapper.updateById(updateObj);
+ }
+
+ @Override
+ public void deleteLockGuide(Long id) {
+ // 校验存在
+ validateLockGuideExists(id);
+ // 删除
+ lockGuideMapper.deleteById(id);
+ }
+
+ @Override
+ public void deleteLockGuideListByIds(List ids) {
+ // 删除
+ lockGuideMapper.deleteByIds(ids);
+ }
+
+
+ private void validateLockGuideExists(Long id) {
+ if (lockGuideMapper.selectById(id) == null) {
+ throw exception(LOCK_GUIDE_NOT_EXISTS);
+ }
+ }
+
+ @Override
+ public LockGuideDO getLockGuide(Long id) {
+ return lockGuideMapper.selectById(id);
+ }
+
+ @Override
+ public PageResult getLockGuidePage(LockGuidePageReqVO pageReqVO) {
+ return lockGuideMapper.selectPage(pageReqVO);
+ }
+
+}
\ No newline at end of file
diff --git a/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/service/impl/LockServiceImpl.java b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/service/impl/LockServiceImpl.java
new file mode 100644
index 0000000..0eb1e0b
--- /dev/null
+++ b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/service/impl/LockServiceImpl.java
@@ -0,0 +1,87 @@
+package cn.iocoder.admin.module.lock.service.impl;
+
+import cn.hutool.core.collection.CollUtil;
+import cn.iocoder.admin.module.lock.dal.LockDO;
+import cn.iocoder.admin.module.lock.mapper.LockMapper;
+import cn.iocoder.admin.module.lock.service.LockService;
+import cn.iocoder.admin.module.lock.vo.LockPageReqVO;
+import cn.iocoder.admin.module.lock.vo.LockSaveReqVO;
+import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import org.springframework.stereotype.Service;
+import jakarta.annotation.Resource;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.*;
+
+import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
+
+
+import static cn.iocoder.admin.module.lock.enums.ErrorCodeConstants.LOCK_NOT_EXISTS;
+import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
+import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertList;
+import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.diffList;
+
+/**
+ * 电子锁 Service 实现类
+ *
+ * @author 超级管理员
+ */
+@Service
+@Validated
+public class LockServiceImpl implements LockService {
+
+ @Resource
+ private LockMapper lockMapper;
+
+ @Override
+ public Long createLock(LockSaveReqVO createReqVO) {
+ // 插入
+ LockDO lock = BeanUtils.toBean(createReqVO, LockDO.class);
+ lockMapper.insert(lock);
+
+ // 返回
+ return lock.getId();
+ }
+
+ @Override
+ public void updateLock(LockSaveReqVO updateReqVO) {
+ // 校验存在
+ validateLockExists(updateReqVO.getId());
+ // 更新
+ LockDO updateObj = BeanUtils.toBean(updateReqVO, LockDO.class);
+ lockMapper.updateById(updateObj);
+ }
+
+ @Override
+ public void deleteLock(Long id) {
+ // 校验存在
+ validateLockExists(id);
+ // 删除
+ lockMapper.deleteById(id);
+ }
+
+ @Override
+ public void deleteLockListByIds(List ids) {
+ // 删除
+ lockMapper.deleteByIds(ids);
+ }
+
+
+ private void validateLockExists(Long id) {
+ if (lockMapper.selectById(id) == null) {
+ throw exception(LOCK_NOT_EXISTS);
+ }
+ }
+
+ @Override
+ public LockDO getLock(Long id) {
+ return lockMapper.selectById(id);
+ }
+
+ @Override
+ public PageResult getLockPage(LockPageReqVO pageReqVO) {
+ return lockMapper.selectPage(pageReqVO);
+ }
+
+}
\ No newline at end of file
diff --git a/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/service/impl/LockWordRecordServiceImpl.java b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/service/impl/LockWordRecordServiceImpl.java
new file mode 100644
index 0000000..9f1c344
--- /dev/null
+++ b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/service/impl/LockWordRecordServiceImpl.java
@@ -0,0 +1,88 @@
+package cn.iocoder.admin.module.lock.service.impl;
+
+import cn.hutool.core.collection.CollUtil;
+import cn.iocoder.admin.module.lock.dal.LockWordRecordDO;
+import cn.iocoder.admin.module.lock.mapper.LockWordRecordMapper;
+import cn.iocoder.admin.module.lock.service.LockWordRecordService;
+import cn.iocoder.admin.module.lock.vo.LockWordRecordPageReqVO;
+import cn.iocoder.admin.module.lock.vo.LockWordRecordSaveReqVO;
+import org.springframework.stereotype.Service;
+import jakarta.annotation.Resource;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.*;
+
+import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.framework.common.pojo.PageParam;
+import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
+
+
+import static cn.iocoder.admin.module.lock.enums.ErrorCodeConstants.LOCK_WORD_RECORD_NOT_EXISTS;
+import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
+import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertList;
+import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.diffList;
+
+/**
+ * 电子锁操作记录 Service 实现类
+ *
+ * @author 超级管理员
+ */
+@Service
+@Validated
+public class LockWordRecordServiceImpl implements LockWordRecordService {
+
+ @Resource
+ private LockWordRecordMapper lockWordRecordMapper;
+
+ @Override
+ public Long createLockWordRecord(LockWordRecordSaveReqVO createReqVO) {
+ // 插入
+ LockWordRecordDO lockWordRecord = BeanUtils.toBean(createReqVO, LockWordRecordDO.class);
+ lockWordRecordMapper.insert(lockWordRecord);
+
+ // 返回
+ return lockWordRecord.getId();
+ }
+
+ @Override
+ public void updateLockWordRecord(LockWordRecordSaveReqVO updateReqVO) {
+ // 校验存在
+ validateLockWordRecordExists(updateReqVO.getId());
+ // 更新
+ LockWordRecordDO updateObj = BeanUtils.toBean(updateReqVO, LockWordRecordDO.class);
+ lockWordRecordMapper.updateById(updateObj);
+ }
+
+ @Override
+ public void deleteLockWordRecord(Long id) {
+ // 校验存在
+ validateLockWordRecordExists(id);
+ // 删除
+ lockWordRecordMapper.deleteById(id);
+ }
+
+ @Override
+ public void deleteLockWordRecordListByIds(List ids) {
+ // 删除
+ lockWordRecordMapper.deleteByIds(ids);
+ }
+
+
+ private void validateLockWordRecordExists(Long id) {
+ if (lockWordRecordMapper.selectById(id) == null) {
+ throw exception(LOCK_WORD_RECORD_NOT_EXISTS);
+ }
+ }
+
+ @Override
+ public LockWordRecordDO getLockWordRecord(Long id) {
+ return lockWordRecordMapper.selectById(id);
+ }
+
+ @Override
+ public PageResult getLockWordRecordPage(LockWordRecordPageReqVO pageReqVO) {
+ return lockWordRecordMapper.selectPage(pageReqVO);
+ }
+
+}
\ No newline at end of file
diff --git a/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/service/impl/PlanItemDetailServiceImpl.java b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/service/impl/PlanItemDetailServiceImpl.java
new file mode 100644
index 0000000..27912b6
--- /dev/null
+++ b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/service/impl/PlanItemDetailServiceImpl.java
@@ -0,0 +1,87 @@
+package cn.iocoder.admin.module.lock.service.impl;
+
+import cn.hutool.core.collection.CollUtil;
+import cn.iocoder.admin.module.lock.dal.PlanItemDetailDO;
+import cn.iocoder.admin.module.lock.mapper.PlanItemDetailMapper;
+import cn.iocoder.admin.module.lock.service.PlanItemDetailService;
+import cn.iocoder.admin.module.lock.vo.PlanItemDetailPageReqVO;
+import cn.iocoder.admin.module.lock.vo.PlanItemDetailSaveReqVO;
+import org.springframework.stereotype.Service;
+import jakarta.annotation.Resource;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.*;
+import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.framework.common.pojo.PageParam;
+import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
+
+
+import static cn.iocoder.admin.module.lock.enums.ErrorCodeConstants.PLAN_ITEM_DETAIL_NOT_EXISTS;
+import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
+import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertList;
+import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.diffList;
+
+/**
+ * 隔离计划子项详情 Service 实现类
+ *
+ * @author 超级管理员
+ */
+@Service
+@Validated
+public class PlanItemDetailServiceImpl implements PlanItemDetailService {
+
+ @Resource
+ private PlanItemDetailMapper planItemDetailMapper;
+
+ @Override
+ public Long createPlanItemDetail(PlanItemDetailSaveReqVO createReqVO) {
+ // 插入
+ PlanItemDetailDO planItemDetail = BeanUtils.toBean(createReqVO, PlanItemDetailDO.class);
+ planItemDetailMapper.insert(planItemDetail);
+
+ // 返回
+ return planItemDetail.getId();
+ }
+
+ @Override
+ public void updatePlanItemDetail(PlanItemDetailSaveReqVO updateReqVO) {
+ // 校验存在
+ validatePlanItemDetailExists(updateReqVO.getId());
+ // 更新
+ PlanItemDetailDO updateObj = BeanUtils.toBean(updateReqVO, PlanItemDetailDO.class);
+ planItemDetailMapper.updateById(updateObj);
+ }
+
+ @Override
+ public void deletePlanItemDetail(Long id) {
+ // 校验存在
+ validatePlanItemDetailExists(id);
+ // 删除
+ planItemDetailMapper.deleteById(id);
+ }
+
+ @Override
+ public void deletePlanItemDetailListByIds(List ids) {
+ // 删除
+ planItemDetailMapper.deleteByIds(ids);
+ }
+
+
+ private void validatePlanItemDetailExists(Long id) {
+ if (planItemDetailMapper.selectById(id) == null) {
+ throw exception(PLAN_ITEM_DETAIL_NOT_EXISTS);
+ }
+ }
+
+ @Override
+ public PlanItemDetailDO getPlanItemDetail(Long id) {
+ return planItemDetailMapper.selectById(id);
+ }
+
+ @Override
+ public PageResult getPlanItemDetailPage(PlanItemDetailPageReqVO pageReqVO) {
+ return planItemDetailMapper.selectPage(pageReqVO);
+ }
+
+}
\ No newline at end of file
diff --git a/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/service/impl/PlanItemServiceImpl.java b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/service/impl/PlanItemServiceImpl.java
new file mode 100644
index 0000000..d189470
--- /dev/null
+++ b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/service/impl/PlanItemServiceImpl.java
@@ -0,0 +1,86 @@
+package cn.iocoder.admin.module.lock.service.impl;
+
+import cn.hutool.core.collection.CollUtil;
+import cn.iocoder.admin.module.lock.dal.PlanItemDO;
+import cn.iocoder.admin.module.lock.mapper.PlanItemMapper;
+import cn.iocoder.admin.module.lock.service.PlanItemService;
+import cn.iocoder.admin.module.lock.vo.PlanItemPageReqVO;
+import cn.iocoder.admin.module.lock.vo.PlanItemSaveReqVO;
+import org.springframework.stereotype.Service;
+import jakarta.annotation.Resource;
+import org.springframework.validation.annotation.Validated;
+
+import java.util.*;
+import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.framework.common.pojo.PageParam;
+import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
+
+
+import static cn.iocoder.admin.module.lock.enums.ErrorCodeConstants.PLAN_ITEM_NOT_EXISTS;
+import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
+import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertList;
+import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.diffList;
+
+/**
+ * 隔离计划子项 Service 实现类
+ *
+ * @author 超级管理员
+ */
+@Service
+@Validated
+public class PlanItemServiceImpl implements PlanItemService {
+
+ @Resource
+ private PlanItemMapper planItemMapper;
+
+ @Override
+ public Long createPlanItem(PlanItemSaveReqVO createReqVO) {
+ // 插入
+ PlanItemDO planItem = BeanUtils.toBean(createReqVO, PlanItemDO.class);
+ planItemMapper.insert(planItem);
+
+ // 返回
+ return planItem.getId();
+ }
+
+ @Override
+ public void updatePlanItem(PlanItemSaveReqVO updateReqVO) {
+ // 校验存在
+ validatePlanItemExists(updateReqVO.getId());
+ // 更新
+ PlanItemDO updateObj = BeanUtils.toBean(updateReqVO, PlanItemDO.class);
+ planItemMapper.updateById(updateObj);
+ }
+
+ @Override
+ public void deletePlanItem(Long id) {
+ // 校验存在
+ validatePlanItemExists(id);
+ // 删除
+ planItemMapper.deleteById(id);
+ }
+
+ @Override
+ public void deletePlanItemListByIds(List ids) {
+ // 删除
+ planItemMapper.deleteByIds(ids);
+ }
+
+
+ private void validatePlanItemExists(Long id) {
+ if (planItemMapper.selectById(id) == null) {
+ throw exception(PLAN_ITEM_NOT_EXISTS);
+ }
+ }
+
+ @Override
+ public PlanItemDO getPlanItem(Long id) {
+ return planItemMapper.selectById(id);
+ }
+
+ @Override
+ public PageResult getPlanItemPage(PlanItemPageReqVO pageReqVO) {
+ return planItemMapper.selectPage(pageReqVO);
+ }
+
+}
\ No newline at end of file
diff --git a/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/service/impl/PlanLifeLockServiceImpl.java b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/service/impl/PlanLifeLockServiceImpl.java
new file mode 100644
index 0000000..b6fdb0e
--- /dev/null
+++ b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/service/impl/PlanLifeLockServiceImpl.java
@@ -0,0 +1,86 @@
+package cn.iocoder.admin.module.lock.service.impl;
+
+import cn.hutool.core.collection.CollUtil;
+import cn.iocoder.admin.module.lock.dal.PlanLifeLockDO;
+import cn.iocoder.admin.module.lock.mapper.PlanLifeLockMapper;
+import cn.iocoder.admin.module.lock.service.PlanLifeLockService;
+import cn.iocoder.admin.module.lock.vo.PlanLifeLockPageReqVO;
+import cn.iocoder.admin.module.lock.vo.PlanLifeLockSaveReqVO;
+import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import org.springframework.stereotype.Service;
+import jakarta.annotation.Resource;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.*;
+
+import cn.iocoder.yudao.framework.common.pojo.PageParam;
+import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
+
+import static cn.iocoder.admin.module.lock.enums.ErrorCodeConstants.PLAN_LIFE_LOCK_NOT_EXISTS;
+import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
+
+
+/**
+ * 个人生命锁 Service 实现类
+ *
+ * @author 超级管理员
+ */
+@Service
+@Validated
+public class PlanLifeLockServiceImpl implements PlanLifeLockService {
+
+ @Resource
+ private PlanLifeLockMapper planLifeLockMapper;
+
+ @Override
+ public Long createPlanLifeLock(PlanLifeLockSaveReqVO createReqVO) {
+ // 插入
+ PlanLifeLockDO planLifeLock = BeanUtils.toBean(createReqVO, PlanLifeLockDO.class);
+ planLifeLockMapper.insert(planLifeLock);
+
+ // 返回
+ return planLifeLock.getId();
+ }
+
+ @Override
+ public void updatePlanLifeLock(PlanLifeLockSaveReqVO updateReqVO) {
+ // 校验存在
+ validatePlanLifeLockExists(updateReqVO.getId());
+ // 更新
+ PlanLifeLockDO updateObj = BeanUtils.toBean(updateReqVO, PlanLifeLockDO.class);
+ planLifeLockMapper.updateById(updateObj);
+ }
+
+ @Override
+ public void deletePlanLifeLock(Long id) {
+ // 校验存在
+ validatePlanLifeLockExists(id);
+ // 删除
+ planLifeLockMapper.deleteById(id);
+ }
+
+ @Override
+ public void deletePlanLifeLockListByIds(List ids) {
+ // 删除
+ planLifeLockMapper.deleteByIds(ids);
+ }
+
+
+ private void validatePlanLifeLockExists(Long id) {
+ if (planLifeLockMapper.selectById(id) == null) {
+ throw exception(PLAN_LIFE_LOCK_NOT_EXISTS);
+ }
+ }
+
+ @Override
+ public PlanLifeLockDO getPlanLifeLock(Long id) {
+ return planLifeLockMapper.selectById(id);
+ }
+
+ @Override
+ public PageResult getPlanLifeLockPage(PlanLifeLockPageReqVO pageReqVO) {
+ return planLifeLockMapper.selectPage(pageReqVO);
+ }
+
+}
\ No newline at end of file
diff --git a/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/service/impl/PlanServiceImpl.java b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/service/impl/PlanServiceImpl.java
new file mode 100644
index 0000000..d943009
--- /dev/null
+++ b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/service/impl/PlanServiceImpl.java
@@ -0,0 +1,85 @@
+package cn.iocoder.admin.module.lock.service.impl;
+
+import cn.hutool.core.collection.CollUtil;
+import cn.iocoder.admin.module.lock.dal.PlanDO;
+import cn.iocoder.admin.module.lock.mapper.PlanMapper;
+import cn.iocoder.admin.module.lock.service.PlanService;
+import cn.iocoder.admin.module.lock.vo.PlanPageReqVO;
+import cn.iocoder.admin.module.lock.vo.PlanSaveReqVO;
+import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import org.springframework.stereotype.Service;
+import jakarta.annotation.Resource;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.*;
+
+import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
+
+
+import static cn.iocoder.admin.module.lock.enums.ErrorCodeConstants.PLAN_NOT_EXISTS;
+import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
+
+/**
+ * 隔离计划 Service 实现类
+ *
+ * @author 超级管理员
+ */
+@Service
+@Validated
+public class PlanServiceImpl implements PlanService {
+
+ @Resource
+ private PlanMapper planMapper;
+
+ @Override
+ public Long createPlan(PlanSaveReqVO createReqVO) {
+ // 插入
+ PlanDO plan = BeanUtils.toBean(createReqVO, PlanDO.class);
+ planMapper.insert(plan);
+
+ // 返回
+ return plan.getId();
+ }
+
+ @Override
+ public void updatePlan(PlanSaveReqVO updateReqVO) {
+ // 校验存在
+ validatePlanExists(updateReqVO.getId());
+ // 更新
+ PlanDO updateObj = BeanUtils.toBean(updateReqVO, PlanDO.class);
+ planMapper.updateById(updateObj);
+ }
+
+ @Override
+ public void deletePlan(Long id) {
+ // 校验存在
+ validatePlanExists(id);
+ // 删除
+ planMapper.deleteById(id);
+ }
+
+ @Override
+ public void deletePlanListByIds(List ids) {
+ // 删除
+ planMapper.deleteByIds(ids);
+ }
+
+
+ private void validatePlanExists(Long id) {
+ if (planMapper.selectById(id) == null) {
+ throw exception(PLAN_NOT_EXISTS);
+ }
+ }
+
+ @Override
+ public PlanDO getPlan(Long id) {
+ return planMapper.selectById(id);
+ }
+
+ @Override
+ public PageResult getPlanPage(PlanPageReqVO pageReqVO) {
+ return planMapper.selectPage(pageReqVO);
+ }
+
+}
\ No newline at end of file
diff --git a/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/service/impl/PointServiceImpl.java b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/service/impl/PointServiceImpl.java
new file mode 100644
index 0000000..ade96c9
--- /dev/null
+++ b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/service/impl/PointServiceImpl.java
@@ -0,0 +1,86 @@
+package cn.iocoder.admin.module.lock.service.impl;
+
+import cn.hutool.core.collection.CollUtil;
+import cn.iocoder.admin.module.lock.dal.PointDO;
+import cn.iocoder.admin.module.lock.mapper.PointMapper;
+import cn.iocoder.admin.module.lock.service.PointService;
+import cn.iocoder.admin.module.lock.vo.PointPageReqVO;
+import cn.iocoder.admin.module.lock.vo.PointSaveReqVO;
+import org.springframework.stereotype.Service;
+import jakarta.annotation.Resource;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.*;
+
+import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.framework.common.pojo.PageParam;
+import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
+
+import static cn.iocoder.admin.module.lock.enums.ErrorCodeConstants.POINT_NOT_EXISTS;
+import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
+
+
+/**
+ * 隔离点 Service 实现类
+ *
+ * @author 超级管理员
+ */
+@Service
+@Validated
+public class PointServiceImpl implements PointService {
+
+ @Resource
+ private PointMapper pointMapper;
+
+ @Override
+ public Long createPoint(PointSaveReqVO createReqVO) {
+ // 插入
+ PointDO point = BeanUtils.toBean(createReqVO, PointDO.class);
+ pointMapper.insert(point);
+
+ // 返回
+ return point.getId();
+ }
+
+ @Override
+ public void updatePoint(PointSaveReqVO updateReqVO) {
+ // 校验存在
+ validatePointExists(updateReqVO.getId());
+ // 更新
+ PointDO updateObj = BeanUtils.toBean(updateReqVO, PointDO.class);
+ pointMapper.updateById(updateObj);
+ }
+
+ @Override
+ public void deletePoint(Long id) {
+ // 校验存在
+ validatePointExists(id);
+ // 删除
+ pointMapper.deleteById(id);
+ }
+
+ @Override
+ public void deletePointListByIds(List ids) {
+ // 删除
+ pointMapper.deleteByIds(ids);
+ }
+
+
+ private void validatePointExists(Long id) {
+ if (pointMapper.selectById(id) == null) {
+ throw exception(POINT_NOT_EXISTS);
+ }
+ }
+
+ @Override
+ public PointDO getPoint(Long id) {
+ return pointMapper.selectById(id);
+ }
+
+ @Override
+ public PageResult getPointPage(PointPageReqVO pageReqVO) {
+ return pointMapper.selectPage(pageReqVO);
+ }
+
+}
\ No newline at end of file
diff --git a/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/vo/IsolationPointPageReqVO.java b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/vo/IsolationPointPageReqVO.java
new file mode 100644
index 0000000..35bca68
--- /dev/null
+++ b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/vo/IsolationPointPageReqVO.java
@@ -0,0 +1,26 @@
+package cn.iocoder.admin.module.lock.vo;
+
+import lombok.*;
+import java.util.*;
+import io.swagger.v3.oas.annotations.media.Schema;
+import cn.iocoder.yudao.framework.common.pojo.PageParam;
+import org.springframework.format.annotation.DateTimeFormat;
+import java.time.LocalDateTime;
+
+import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
+
+@Schema(description = "管理后台 - 指导书与隔离点关联分页 Request VO")
+@Data
+public class IsolationPointPageReqVO extends PageParam {
+
+ @Schema(description = "隔离指导书ID", example = "22721")
+ private Long guideId;
+
+ @Schema(description = "隔离点ID", example = "7504")
+ private Long isolationPointId;
+
+ @Schema(description = "创建时间")
+ @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
+ private LocalDateTime[] createTime;
+
+}
\ No newline at end of file
diff --git a/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/vo/IsolationPointRespVO.java b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/vo/IsolationPointRespVO.java
new file mode 100644
index 0000000..853c8a5
--- /dev/null
+++ b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/vo/IsolationPointRespVO.java
@@ -0,0 +1,31 @@
+package cn.iocoder.admin.module.lock.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.*;
+import java.util.*;
+import org.springframework.format.annotation.DateTimeFormat;
+import java.time.LocalDateTime;
+import com.alibaba.excel.annotation.*;
+
+@Schema(description = "管理后台 - 指导书与隔离点关联 Response VO")
+@Data
+@ExcelIgnoreUnannotated
+public class IsolationPointRespVO {
+
+ @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "11289")
+ @ExcelProperty("id")
+ private Long id;
+
+ @Schema(description = "隔离指导书ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "22721")
+ @ExcelProperty("隔离指导书ID")
+ private Long guideId;
+
+ @Schema(description = "隔离点ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "7504")
+ @ExcelProperty("隔离点ID")
+ private Long isolationPointId;
+
+ @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
+ @ExcelProperty("创建时间")
+ private LocalDateTime createTime;
+
+}
\ No newline at end of file
diff --git a/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/vo/IsolationPointSaveReqVO.java b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/vo/IsolationPointSaveReqVO.java
new file mode 100644
index 0000000..77d6bfe
--- /dev/null
+++ b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/vo/IsolationPointSaveReqVO.java
@@ -0,0 +1,23 @@
+package cn.iocoder.admin.module.lock.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.*;
+import java.util.*;
+import jakarta.validation.constraints.*;
+
+@Schema(description = "管理后台 - 指导书与隔离点关联新增/修改 Request VO")
+@Data
+public class IsolationPointSaveReqVO {
+
+ @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "11289")
+ private Long id;
+
+ @Schema(description = "隔离指导书ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "22721")
+ @NotNull(message = "隔离指导书ID不能为空")
+ private Long guideId;
+
+ @Schema(description = "隔离点ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "7504")
+ @NotNull(message = "隔离点ID不能为空")
+ private Long isolationPointId;
+
+}
\ No newline at end of file
diff --git a/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/vo/LockGuidePageReqVO.java b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/vo/LockGuidePageReqVO.java
new file mode 100644
index 0000000..4eb44ff
--- /dev/null
+++ b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/vo/LockGuidePageReqVO.java
@@ -0,0 +1,26 @@
+package cn.iocoder.admin.module.lock.vo;
+
+import lombok.*;
+import java.util.*;
+import io.swagger.v3.oas.annotations.media.Schema;
+import cn.iocoder.yudao.framework.common.pojo.PageParam;
+import org.springframework.format.annotation.DateTimeFormat;
+import java.time.LocalDateTime;
+
+import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
+
+@Schema(description = "管理后台 - 隔离指导书分页 Request VO")
+@Data
+public class LockGuidePageReqVO extends PageParam {
+
+ @Schema(description = "工作内容和范围")
+ private String guideContent;
+
+ @Schema(description = "所需设备锁数量")
+ private Integer guideLockNums;
+
+ @Schema(description = "创建时间")
+ @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
+ private LocalDateTime[] createTime;
+
+}
\ No newline at end of file
diff --git a/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/vo/LockGuideRespVO.java b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/vo/LockGuideRespVO.java
new file mode 100644
index 0000000..f09ebad
--- /dev/null
+++ b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/vo/LockGuideRespVO.java
@@ -0,0 +1,31 @@
+package cn.iocoder.admin.module.lock.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.*;
+import java.util.*;
+import org.springframework.format.annotation.DateTimeFormat;
+import java.time.LocalDateTime;
+import com.alibaba.excel.annotation.*;
+
+@Schema(description = "管理后台 - 隔离指导书 Response VO")
+@Data
+@ExcelIgnoreUnannotated
+public class LockGuideRespVO {
+
+ @Schema(description = "主键ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "23225")
+ @ExcelProperty("主键ID")
+ private Long id;
+
+ @Schema(description = "工作内容和范围")
+ @ExcelProperty("工作内容和范围")
+ private String guideContent;
+
+ @Schema(description = "所需设备锁数量", requiredMode = Schema.RequiredMode.REQUIRED)
+ @ExcelProperty("所需设备锁数量")
+ private Integer guideLockNums;
+
+ @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
+ @ExcelProperty("创建时间")
+ private LocalDateTime createTime;
+
+}
\ No newline at end of file
diff --git a/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/vo/LockGuideSaveReqVO.java b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/vo/LockGuideSaveReqVO.java
new file mode 100644
index 0000000..b12c969
--- /dev/null
+++ b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/vo/LockGuideSaveReqVO.java
@@ -0,0 +1,22 @@
+package cn.iocoder.admin.module.lock.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.*;
+import java.util.*;
+import jakarta.validation.constraints.*;
+
+@Schema(description = "管理后台 - 隔离指导书新增/修改 Request VO")
+@Data
+public class LockGuideSaveReqVO {
+
+ @Schema(description = "主键ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "23225")
+ private Long id;
+
+ @Schema(description = "工作内容和范围")
+ private String guideContent;
+
+ @Schema(description = "所需设备锁数量", requiredMode = Schema.RequiredMode.REQUIRED)
+ @NotNull(message = "所需设备锁数量不能为空")
+ private Integer guideLockNums;
+
+}
\ No newline at end of file
diff --git a/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/vo/LockPageReqVO.java b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/vo/LockPageReqVO.java
new file mode 100644
index 0000000..eec1326
--- /dev/null
+++ b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/vo/LockPageReqVO.java
@@ -0,0 +1,42 @@
+package cn.iocoder.admin.module.lock.vo;
+
+import lombok.*;
+import java.util.*;
+import io.swagger.v3.oas.annotations.media.Schema;
+import cn.iocoder.yudao.framework.common.pojo.PageParam;
+import org.springframework.format.annotation.DateTimeFormat;
+import java.time.LocalDateTime;
+
+import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
+
+@Schema(description = "管理后台 - 电子锁分页 Request VO")
+@Data
+public class LockPageReqVO extends PageParam {
+
+ @Schema(description = "编号")
+ private String lockNumber;
+
+ @Schema(description = "名称", example = "王五")
+ private String lockName;
+
+ @Schema(description = "状态", example = "2")
+ private String lockStatus;
+
+ @Schema(description = "锁具类型", example = "1")
+ private String lockType;
+
+ @Schema(description = "启用状态: 0=未启用, 1=已启用", example = "2")
+ private Boolean lockEnableStatus;
+
+ @Schema(description = "上次充电时间")
+ @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
+ private LocalDateTime[] lockLastChargeTime;
+
+ @Schema(description = "蓝牙ID", example = "15326")
+ private String lockBluetoothId;
+
+ @Schema(description = "创建时间")
+ @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
+ private LocalDateTime[] createTime;
+
+}
\ No newline at end of file
diff --git a/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/vo/LockRespVO.java b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/vo/LockRespVO.java
new file mode 100644
index 0000000..795f558
--- /dev/null
+++ b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/vo/LockRespVO.java
@@ -0,0 +1,55 @@
+package cn.iocoder.admin.module.lock.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.*;
+
+import java.util.*;
+
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.time.LocalDateTime;
+
+import com.alibaba.excel.annotation.*;
+
+@Schema(description = "管理后台 - 电子锁 Response VO")
+@Data
+@ExcelIgnoreUnannotated
+public class LockRespVO {
+
+ @Schema(description = "主键ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "2480")
+ @ExcelProperty("主键ID")
+ private Long id;
+
+ @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED)
+ @ExcelProperty("编号")
+ private String lockNumber;
+
+ @Schema(description = "名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五")
+ @ExcelProperty("名称")
+ private String lockName;
+
+ @Schema(description = "状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
+ @ExcelProperty("状态")
+ private String lockStatus;
+
+ @Schema(description = "锁具类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
+ @ExcelProperty("锁具类型")
+ private String lockType;
+
+ @Schema(description = "启用状态: 0=未启用, 1=已启用", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
+ @ExcelProperty("启用状态: 0=未启用, 1=已启用")
+ private Boolean lockEnableStatus;
+
+ @Schema(description = "上次充电时间")
+ @ExcelProperty("上次充电时间")
+ private LocalDateTime lockLastChargeTime;
+
+ @Schema(description = "蓝牙ID", example = "15326")
+ @ExcelProperty("蓝牙ID")
+ private String lockBluetoothId;
+
+ @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
+ @ExcelProperty("创建时间")
+ private LocalDateTime createTime;
+
+}
\ No newline at end of file
diff --git a/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/vo/LockSaveReqVO.java b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/vo/LockSaveReqVO.java
new file mode 100644
index 0000000..3dac633
--- /dev/null
+++ b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/vo/LockSaveReqVO.java
@@ -0,0 +1,43 @@
+package cn.iocoder.admin.module.lock.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.*;
+import java.util.*;
+import jakarta.validation.constraints.*;
+import org.springframework.format.annotation.DateTimeFormat;
+import java.time.LocalDateTime;
+
+@Schema(description = "管理后台 - 电子锁新增/修改 Request VO")
+@Data
+public class LockSaveReqVO {
+
+ @Schema(description = "主键ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "2480")
+ private Long id;
+
+ @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED)
+ @NotEmpty(message = "编号不能为空")
+ private String lockNumber;
+
+ @Schema(description = "名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五")
+ @NotEmpty(message = "名称不能为空")
+ private String lockName;
+
+ @Schema(description = "状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
+ @NotEmpty(message = "状态不能为空")
+ private String lockStatus;
+
+ @Schema(description = "锁具类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
+ @NotEmpty(message = "锁具类型不能为空")
+ private String lockType;
+
+ @Schema(description = "启用状态: 0=未启用, 1=已启用", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
+ @NotNull(message = "启用状态: 0=未启用, 1=已启用不能为空")
+ private Boolean lockEnableStatus;
+
+ @Schema(description = "上次充电时间")
+ private LocalDateTime lockLastChargeTime;
+
+ @Schema(description = "蓝牙ID", example = "15326")
+ private String lockBluetoothId;
+
+}
\ No newline at end of file
diff --git a/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/vo/LockWordRecordPageReqVO.java b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/vo/LockWordRecordPageReqVO.java
new file mode 100644
index 0000000..5267dcb
--- /dev/null
+++ b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/vo/LockWordRecordPageReqVO.java
@@ -0,0 +1,44 @@
+package cn.iocoder.admin.module.lock.vo;
+
+import lombok.*;
+import java.util.*;
+import io.swagger.v3.oas.annotations.media.Schema;
+import cn.iocoder.yudao.framework.common.pojo.PageParam;
+import org.springframework.format.annotation.DateTimeFormat;
+import java.time.LocalDateTime;
+
+import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
+
+@Schema(description = "管理后台 - 电子锁操作记录分页 Request VO")
+@Data
+public class LockWordRecordPageReqVO extends PageParam {
+
+ @Schema(description = "操作人ID", example = "24074")
+ private Long operatorId;
+
+ @Schema(description = "电子锁ID", example = "21680")
+ private Long lockId;
+
+ @Schema(description = "关联的子项详情ID (某些操作可能不关联)", example = "29583")
+ private Long isolationPlanItemDetailId;
+
+ @Schema(description = "记录类型", example = "1")
+ private String recordType;
+
+ @Schema(description = "操作签名 (图片路径)")
+ private String signaturePath;
+
+ @Schema(description = "操作前照片 (图片路径)")
+ private String beforePhotoPath;
+
+ @Schema(description = "操作后照片 (图片路径)")
+ private String afterPhotoPath;
+
+ @Schema(description = "操作GPS坐标")
+ private String gpsCoordinates;
+
+ @Schema(description = "操作/记录创建时间")
+ @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
+ private LocalDateTime[] createTime;
+
+}
\ No newline at end of file
diff --git a/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/vo/LockWordRecordRespVO.java b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/vo/LockWordRecordRespVO.java
new file mode 100644
index 0000000..8e8bd32
--- /dev/null
+++ b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/vo/LockWordRecordRespVO.java
@@ -0,0 +1,55 @@
+package cn.iocoder.admin.module.lock.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.*;
+import java.util.*;
+import org.springframework.format.annotation.DateTimeFormat;
+import java.time.LocalDateTime;
+import com.alibaba.excel.annotation.*;
+
+@Schema(description = "管理后台 - 电子锁操作记录 Response VO")
+@Data
+@ExcelIgnoreUnannotated
+public class LockWordRecordRespVO {
+
+ @Schema(description = "主键ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "31635")
+ @ExcelProperty("主键ID")
+ private Long id;
+
+ @Schema(description = "操作人ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "24074")
+ @ExcelProperty("操作人ID")
+ private Long operatorId;
+
+ @Schema(description = "电子锁ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "21680")
+ @ExcelProperty("电子锁ID")
+ private Long lockId;
+
+ @Schema(description = "关联的子项详情ID (某些操作可能不关联)", example = "29583")
+ @ExcelProperty("关联的子项详情ID (某些操作可能不关联)")
+ private Long isolationPlanItemDetailId;
+
+ @Schema(description = "记录类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
+ @ExcelProperty("记录类型")
+ private String recordType;
+
+ @Schema(description = "操作签名 (图片路径)")
+ @ExcelProperty("操作签名 (图片路径)")
+ private String signaturePath;
+
+ @Schema(description = "操作前照片 (图片路径)")
+ @ExcelProperty("操作前照片 (图片路径)")
+ private String beforePhotoPath;
+
+ @Schema(description = "操作后照片 (图片路径)")
+ @ExcelProperty("操作后照片 (图片路径)")
+ private String afterPhotoPath;
+
+ @Schema(description = "操作GPS坐标")
+ @ExcelProperty("操作GPS坐标")
+ private String gpsCoordinates;
+
+ @Schema(description = "操作/记录创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
+ @ExcelProperty("操作/记录创建时间")
+ private LocalDateTime createTime;
+
+}
\ No newline at end of file
diff --git a/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/vo/LockWordRecordSaveReqVO.java b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/vo/LockWordRecordSaveReqVO.java
new file mode 100644
index 0000000..8827815
--- /dev/null
+++ b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/vo/LockWordRecordSaveReqVO.java
@@ -0,0 +1,42 @@
+package cn.iocoder.admin.module.lock.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.*;
+import java.util.*;
+import jakarta.validation.constraints.*;
+
+@Schema(description = "管理后台 - 电子锁操作记录新增/修改 Request VO")
+@Data
+public class LockWordRecordSaveReqVO {
+
+ @Schema(description = "主键ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "31635")
+ private Long id;
+
+ @Schema(description = "操作人ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "24074")
+ @NotNull(message = "操作人ID不能为空")
+ private Long operatorId;
+
+ @Schema(description = "电子锁ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "21680")
+ @NotNull(message = "电子锁ID不能为空")
+ private Long lockId;
+
+ @Schema(description = "关联的子项详情ID (某些操作可能不关联)", example = "29583")
+ private Long isolationPlanItemDetailId;
+
+ @Schema(description = "记录类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
+ @NotEmpty(message = "记录类型不能为空")
+ private String recordType;
+
+ @Schema(description = "操作签名 (图片路径)")
+ private String signaturePath;
+
+ @Schema(description = "操作前照片 (图片路径)")
+ private String beforePhotoPath;
+
+ @Schema(description = "操作后照片 (图片路径)")
+ private String afterPhotoPath;
+
+ @Schema(description = "操作GPS坐标")
+ private String gpsCoordinates;
+
+}
\ No newline at end of file
diff --git a/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/vo/PlanItemDetailPageReqVO.java b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/vo/PlanItemDetailPageReqVO.java
new file mode 100644
index 0000000..eac1c32
--- /dev/null
+++ b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/vo/PlanItemDetailPageReqVO.java
@@ -0,0 +1,32 @@
+package cn.iocoder.admin.module.lock.vo;
+
+import lombok.*;
+import java.util.*;
+import io.swagger.v3.oas.annotations.media.Schema;
+import cn.iocoder.yudao.framework.common.pojo.PageParam;
+import org.springframework.format.annotation.DateTimeFormat;
+import java.time.LocalDateTime;
+
+import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
+
+@Schema(description = "管理后台 - 隔离计划子项详情分页 Request VO")
+@Data
+public class PlanItemDetailPageReqVO extends PageParam {
+
+ @Schema(description = "隔离计划子项ID", example = "31279")
+ private Long isolationPlanItemId;
+
+ @Schema(description = "隔离点ID", example = "27424")
+ private Long isolationPointId;
+
+ @Schema(description = "电子锁ID", example = "10317")
+ private Long lockId;
+
+ @Schema(description = "锁状态: 0=未上锁, 1=已上锁, 2=已解锁", example = "1")
+ private Boolean lockStatus;
+
+ @Schema(description = "创建时间")
+ @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
+ private LocalDateTime[] createTime;
+
+}
\ No newline at end of file
diff --git a/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/vo/PlanItemDetailRespVO.java b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/vo/PlanItemDetailRespVO.java
new file mode 100644
index 0000000..c173447
--- /dev/null
+++ b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/vo/PlanItemDetailRespVO.java
@@ -0,0 +1,39 @@
+package cn.iocoder.admin.module.lock.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.*;
+import java.util.*;
+import org.springframework.format.annotation.DateTimeFormat;
+import java.time.LocalDateTime;
+import com.alibaba.excel.annotation.*;
+
+@Schema(description = "管理后台 - 隔离计划子项详情 Response VO")
+@Data
+@ExcelIgnoreUnannotated
+public class PlanItemDetailRespVO {
+
+ @Schema(description = "主键ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "13713")
+ @ExcelProperty("主键ID")
+ private Long id;
+
+ @Schema(description = "隔离计划子项ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "31279")
+ @ExcelProperty("隔离计划子项ID")
+ private Long isolationPlanItemId;
+
+ @Schema(description = "隔离点ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "27424")
+ @ExcelProperty("隔离点ID")
+ private Long isolationPointId;
+
+ @Schema(description = "电子锁ID", example = "10317")
+ @ExcelProperty("电子锁ID")
+ private Long lockId;
+
+ @Schema(description = "锁状态: 0=未上锁, 1=已上锁, 2=已解锁", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
+ @ExcelProperty("锁状态: 0=未上锁, 1=已上锁, 2=已解锁")
+ private Boolean lockStatus;
+
+ @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
+ @ExcelProperty("创建时间")
+ private LocalDateTime createTime;
+
+}
\ No newline at end of file
diff --git a/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/vo/PlanItemDetailSaveReqVO.java b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/vo/PlanItemDetailSaveReqVO.java
new file mode 100644
index 0000000..dc1c47e
--- /dev/null
+++ b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/vo/PlanItemDetailSaveReqVO.java
@@ -0,0 +1,30 @@
+package cn.iocoder.admin.module.lock.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.*;
+import java.util.*;
+import jakarta.validation.constraints.*;
+
+@Schema(description = "管理后台 - 隔离计划子项详情新增/修改 Request VO")
+@Data
+public class PlanItemDetailSaveReqVO {
+
+ @Schema(description = "主键ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "13713")
+ private Long id;
+
+ @Schema(description = "隔离计划子项ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "31279")
+ @NotNull(message = "隔离计划子项ID不能为空")
+ private Long isolationPlanItemId;
+
+ @Schema(description = "隔离点ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "27424")
+ @NotNull(message = "隔离点ID不能为空")
+ private Long isolationPointId;
+
+ @Schema(description = "电子锁ID", example = "10317")
+ private Long lockId;
+
+ @Schema(description = "锁状态: 0=未上锁, 1=已上锁, 2=已解锁", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
+ @NotNull(message = "锁状态: 0=未上锁, 1=已上锁, 2=已解锁不能为空")
+ private Boolean lockStatus;
+
+}
\ No newline at end of file
diff --git a/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/vo/PlanItemPageReqVO.java b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/vo/PlanItemPageReqVO.java
new file mode 100644
index 0000000..4533475
--- /dev/null
+++ b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/vo/PlanItemPageReqVO.java
@@ -0,0 +1,41 @@
+package cn.iocoder.admin.module.lock.vo;
+
+import lombok.*;
+import java.util.*;
+import io.swagger.v3.oas.annotations.media.Schema;
+import cn.iocoder.yudao.framework.common.pojo.PageParam;
+import org.springframework.format.annotation.DateTimeFormat;
+import java.time.LocalDateTime;
+
+import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
+
+@Schema(description = "管理后台 - 隔离计划子项分页 Request VO")
+@Data
+public class PlanItemPageReqVO extends PageParam {
+
+ @Schema(description = "隔离计划ID", example = "16895")
+ private Long isolationPlanId;
+
+ @Schema(description = "隔离指导书ID", example = "23409")
+ private Long guideId;
+
+ @Schema(description = "集中挂牌人ID", example = "6573")
+ private Long operatorId;
+
+ @Schema(description = "集中挂牌协助人ID", example = "249")
+ private Long operatorHelperId;
+
+ @Schema(description = "验证人ID", example = "19847")
+ private Long verifierId;
+
+ @Schema(description = "验证协助人ID", example = "31703")
+ private Long verifierHelperId;
+
+ @Schema(description = "子项状态: 0=未完成, 1=已完成", example = "2")
+ private Boolean status;
+
+ @Schema(description = "创建时间")
+ @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
+ private LocalDateTime[] createTime;
+
+}
\ No newline at end of file
diff --git a/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/vo/PlanItemRespVO.java b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/vo/PlanItemRespVO.java
new file mode 100644
index 0000000..16c263c
--- /dev/null
+++ b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/vo/PlanItemRespVO.java
@@ -0,0 +1,51 @@
+package cn.iocoder.admin.module.lock.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.*;
+import java.util.*;
+import org.springframework.format.annotation.DateTimeFormat;
+import java.time.LocalDateTime;
+import com.alibaba.excel.annotation.*;
+
+@Schema(description = "管理后台 - 隔离计划子项 Response VO")
+@Data
+@ExcelIgnoreUnannotated
+public class PlanItemRespVO {
+
+ @Schema(description = "主键ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "28057")
+ @ExcelProperty("主键ID")
+ private Long id;
+
+ @Schema(description = "隔离计划ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "16895")
+ @ExcelProperty("隔离计划ID")
+ private Long isolationPlanId;
+
+ @Schema(description = "隔离指导书ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "23409")
+ @ExcelProperty("隔离指导书ID")
+ private Long guideId;
+
+ @Schema(description = "集中挂牌人ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "6573")
+ @ExcelProperty("集中挂牌人ID")
+ private Long operatorId;
+
+ @Schema(description = "集中挂牌协助人ID", example = "249")
+ @ExcelProperty("集中挂牌协助人ID")
+ private Long operatorHelperId;
+
+ @Schema(description = "验证人ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "19847")
+ @ExcelProperty("验证人ID")
+ private Long verifierId;
+
+ @Schema(description = "验证协助人ID", example = "31703")
+ @ExcelProperty("验证协助人ID")
+ private Long verifierHelperId;
+
+ @Schema(description = "子项状态: 0=未完成, 1=已完成", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
+ @ExcelProperty("子项状态: 0=未完成, 1=已完成")
+ private Boolean status;
+
+ @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
+ @ExcelProperty("创建时间")
+ private LocalDateTime createTime;
+
+}
\ No newline at end of file
diff --git a/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/vo/PlanItemSaveReqVO.java b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/vo/PlanItemSaveReqVO.java
new file mode 100644
index 0000000..1daaa20
--- /dev/null
+++ b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/vo/PlanItemSaveReqVO.java
@@ -0,0 +1,41 @@
+package cn.iocoder.admin.module.lock.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.*;
+import java.util.*;
+import jakarta.validation.constraints.*;
+
+@Schema(description = "管理后台 - 隔离计划子项新增/修改 Request VO")
+@Data
+public class PlanItemSaveReqVO {
+
+ @Schema(description = "主键ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "28057")
+ private Long id;
+
+ @Schema(description = "隔离计划ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "16895")
+ @NotNull(message = "隔离计划ID不能为空")
+ private Long isolationPlanId;
+
+ @Schema(description = "隔离指导书ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "23409")
+ @NotNull(message = "隔离指导书ID不能为空")
+ private Long guideId;
+
+ @Schema(description = "集中挂牌人ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "6573")
+ @NotNull(message = "集中挂牌人ID不能为空")
+ private Long operatorId;
+
+ @Schema(description = "集中挂牌协助人ID", example = "249")
+ private Long operatorHelperId;
+
+ @Schema(description = "验证人ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "19847")
+ @NotNull(message = "验证人ID不能为空")
+ private Long verifierId;
+
+ @Schema(description = "验证协助人ID", example = "31703")
+ private Long verifierHelperId;
+
+ @Schema(description = "子项状态: 0=未完成, 1=已完成", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
+ @NotNull(message = "子项状态: 0=未完成, 1=已完成不能为空")
+ private Boolean status;
+
+}
\ No newline at end of file
diff --git a/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/vo/PlanLifeLockPageReqVO.java b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/vo/PlanLifeLockPageReqVO.java
new file mode 100644
index 0000000..c9b5ea6
--- /dev/null
+++ b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/vo/PlanLifeLockPageReqVO.java
@@ -0,0 +1,40 @@
+package cn.iocoder.admin.module.lock.vo;
+
+import lombok.*;
+import java.util.*;
+import io.swagger.v3.oas.annotations.media.Schema;
+import cn.iocoder.yudao.framework.common.pojo.PageParam;
+import org.springframework.format.annotation.DateTimeFormat;
+import java.time.LocalDateTime;
+
+import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
+
+@Schema(description = "管理后台 - 个人生命锁分页 Request VO")
+@Data
+public class PlanLifeLockPageReqVO extends PageParam {
+
+ @Schema(description = "子项详情ID", example = "8076")
+ private Long isolationPlanItemDetailId;
+
+ @Schema(description = "上锁人ID", example = "28726")
+ private Long userId;
+
+ @Schema(description = "生命锁类型", example = "2")
+ private String lockType;
+
+ @Schema(description = "锁定状态: 0=未上锁, 1=已上锁", example = "1")
+ private Boolean lockStatus;
+
+ @Schema(description = "上锁时间")
+ @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
+ private LocalDateTime[] lockTime;
+
+ @Schema(description = "解锁时间")
+ @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
+ private LocalDateTime[] unlockTime;
+
+ @Schema(description = "创建时间")
+ @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
+ private LocalDateTime[] createTime;
+
+}
\ No newline at end of file
diff --git a/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/vo/PlanLifeLockRespVO.java b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/vo/PlanLifeLockRespVO.java
new file mode 100644
index 0000000..a11f197
--- /dev/null
+++ b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/vo/PlanLifeLockRespVO.java
@@ -0,0 +1,47 @@
+package cn.iocoder.admin.module.lock.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.*;
+import java.util.*;
+import org.springframework.format.annotation.DateTimeFormat;
+import java.time.LocalDateTime;
+import com.alibaba.excel.annotation.*;
+
+@Schema(description = "管理后台 - 个人生命锁 Response VO")
+@Data
+@ExcelIgnoreUnannotated
+public class PlanLifeLockRespVO {
+
+ @Schema(description = "主键ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "24945")
+ @ExcelProperty("主键ID")
+ private Long id;
+
+ @Schema(description = "子项详情ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "8076")
+ @ExcelProperty("子项详情ID")
+ private Long isolationPlanItemDetailId;
+
+ @Schema(description = "上锁人ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "28726")
+ @ExcelProperty("上锁人ID")
+ private Long userId;
+
+ @Schema(description = "生命锁类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
+ @ExcelProperty("生命锁类型")
+ private String lockType;
+
+ @Schema(description = "锁定状态: 0=未上锁, 1=已上锁", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
+ @ExcelProperty("锁定状态: 0=未上锁, 1=已上锁")
+ private Boolean lockStatus;
+
+ @Schema(description = "上锁时间")
+ @ExcelProperty("上锁时间")
+ private LocalDateTime lockTime;
+
+ @Schema(description = "解锁时间")
+ @ExcelProperty("解锁时间")
+ private LocalDateTime unlockTime;
+
+ @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
+ @ExcelProperty("创建时间")
+ private LocalDateTime createTime;
+
+}
\ No newline at end of file
diff --git a/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/vo/PlanLifeLockSaveReqVO.java b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/vo/PlanLifeLockSaveReqVO.java
new file mode 100644
index 0000000..6e21c49
--- /dev/null
+++ b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/vo/PlanLifeLockSaveReqVO.java
@@ -0,0 +1,39 @@
+package cn.iocoder.admin.module.lock.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.*;
+import java.util.*;
+import jakarta.validation.constraints.*;
+import org.springframework.format.annotation.DateTimeFormat;
+import java.time.LocalDateTime;
+
+@Schema(description = "管理后台 - 个人生命锁新增/修改 Request VO")
+@Data
+public class PlanLifeLockSaveReqVO {
+
+ @Schema(description = "主键ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "24945")
+ private Long id;
+
+ @Schema(description = "子项详情ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "8076")
+ @NotNull(message = "子项详情ID不能为空")
+ private Long isolationPlanItemDetailId;
+
+ @Schema(description = "上锁人ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "28726")
+ @NotNull(message = "上锁人ID不能为空")
+ private Long userId;
+
+ @Schema(description = "生命锁类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
+ @NotEmpty(message = "生命锁类型不能为空")
+ private String lockType;
+
+ @Schema(description = "锁定状态: 0=未上锁, 1=已上锁", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
+ @NotNull(message = "锁定状态: 0=未上锁, 1=已上锁不能为空")
+ private Boolean lockStatus;
+
+ @Schema(description = "上锁时间")
+ private LocalDateTime lockTime;
+
+ @Schema(description = "解锁时间")
+ private LocalDateTime unlockTime;
+
+}
\ No newline at end of file
diff --git a/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/vo/PlanPageReqVO.java b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/vo/PlanPageReqVO.java
new file mode 100644
index 0000000..fce75d5
--- /dev/null
+++ b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/vo/PlanPageReqVO.java
@@ -0,0 +1,23 @@
+package cn.iocoder.admin.module.lock.vo;
+
+import lombok.*;
+import java.util.*;
+import io.swagger.v3.oas.annotations.media.Schema;
+import cn.iocoder.yudao.framework.common.pojo.PageParam;
+import org.springframework.format.annotation.DateTimeFormat;
+import java.time.LocalDateTime;
+
+import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
+
+@Schema(description = "管理后台 - 隔离计划分页 Request VO")
+@Data
+public class PlanPageReqVO extends PageParam {
+
+ @Schema(description = "计划名称", example = "张三")
+ private String ipName;
+
+ @Schema(description = "创建时间")
+ @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
+ private LocalDateTime[] createTime;
+
+}
\ No newline at end of file
diff --git a/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/vo/PlanRespVO.java b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/vo/PlanRespVO.java
new file mode 100644
index 0000000..8d3a652
--- /dev/null
+++ b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/vo/PlanRespVO.java
@@ -0,0 +1,27 @@
+package cn.iocoder.admin.module.lock.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.*;
+import java.util.*;
+import org.springframework.format.annotation.DateTimeFormat;
+import java.time.LocalDateTime;
+import com.alibaba.excel.annotation.*;
+
+@Schema(description = "管理后台 - 隔离计划 Response VO")
+@Data
+@ExcelIgnoreUnannotated
+public class PlanRespVO {
+
+ @Schema(description = "主键ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "23080")
+ @ExcelProperty("主键ID")
+ private Long id;
+
+ @Schema(description = "计划名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三")
+ @ExcelProperty("计划名称")
+ private String ipName;
+
+ @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
+ @ExcelProperty("创建时间")
+ private LocalDateTime createTime;
+
+}
\ No newline at end of file
diff --git a/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/vo/PlanSaveReqVO.java b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/vo/PlanSaveReqVO.java
new file mode 100644
index 0000000..27a63ef
--- /dev/null
+++ b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/vo/PlanSaveReqVO.java
@@ -0,0 +1,19 @@
+package cn.iocoder.admin.module.lock.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.*;
+import java.util.*;
+import jakarta.validation.constraints.*;
+
+@Schema(description = "管理后台 - 隔离计划新增/修改 Request VO")
+@Data
+public class PlanSaveReqVO {
+
+ @Schema(description = "主键ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "23080")
+ private Long id;
+
+ @Schema(description = "计划名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三")
+ @NotEmpty(message = "计划名称不能为空")
+ private String ipName;
+
+}
\ No newline at end of file
diff --git a/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/vo/PointPageReqVO.java b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/vo/PointPageReqVO.java
new file mode 100644
index 0000000..c4f823b
--- /dev/null
+++ b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/vo/PointPageReqVO.java
@@ -0,0 +1,32 @@
+package cn.iocoder.admin.module.lock.vo;
+
+import lombok.*;
+import java.util.*;
+import io.swagger.v3.oas.annotations.media.Schema;
+import cn.iocoder.yudao.framework.common.pojo.PageParam;
+import org.springframework.format.annotation.DateTimeFormat;
+import java.time.LocalDateTime;
+
+import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
+
+@Schema(description = "管理后台 - 隔离点分页 Request VO")
+@Data
+public class PointPageReqVO extends PageParam {
+
+ @Schema(description = "隔离点类型", example = "2")
+ private String ipType;
+
+ @Schema(description = "隔离点名称", example = "李四")
+ private String ipName;
+
+ @Schema(description = "隔离点位置")
+ private String ipLocation;
+
+ @Schema(description = "隔离点编号")
+ private String ipNumber;
+
+ @Schema(description = "创建时间")
+ @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
+ private LocalDateTime[] createTime;
+
+}
\ No newline at end of file
diff --git a/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/vo/PointRespVO.java b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/vo/PointRespVO.java
new file mode 100644
index 0000000..98315e9
--- /dev/null
+++ b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/vo/PointRespVO.java
@@ -0,0 +1,39 @@
+package cn.iocoder.admin.module.lock.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.*;
+import java.util.*;
+import org.springframework.format.annotation.DateTimeFormat;
+import java.time.LocalDateTime;
+import com.alibaba.excel.annotation.*;
+
+@Schema(description = "管理后台 - 隔离点 Response VO")
+@Data
+@ExcelIgnoreUnannotated
+public class PointRespVO {
+
+ @Schema(description = "主键ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "5317")
+ @ExcelProperty("主键ID")
+ private Long id;
+
+ @Schema(description = "隔离点类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
+ @ExcelProperty("隔离点类型")
+ private String ipType;
+
+ @Schema(description = "隔离点名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "李四")
+ @ExcelProperty("隔离点名称")
+ private String ipName;
+
+ @Schema(description = "隔离点位置")
+ @ExcelProperty("隔离点位置")
+ private String ipLocation;
+
+ @Schema(description = "隔离点编号", requiredMode = Schema.RequiredMode.REQUIRED)
+ @ExcelProperty("隔离点编号")
+ private String ipNumber;
+
+ @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
+ @ExcelProperty("创建时间")
+ private LocalDateTime createTime;
+
+}
\ No newline at end of file
diff --git a/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/vo/PointSaveReqVO.java b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/vo/PointSaveReqVO.java
new file mode 100644
index 0000000..2c6bfb3
--- /dev/null
+++ b/cc-admin-master/lock-module/src/main/java/cn/iocoder/admin/module/lock/vo/PointSaveReqVO.java
@@ -0,0 +1,30 @@
+package cn.iocoder.admin.module.lock.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.*;
+import java.util.*;
+import jakarta.validation.constraints.*;
+
+@Schema(description = "管理后台 - 隔离点新增/修改 Request VO")
+@Data
+public class PointSaveReqVO {
+
+ @Schema(description = "主键ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "5317")
+ private Long id;
+
+ @Schema(description = "隔离点类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
+ @NotEmpty(message = "隔离点类型不能为空")
+ private String ipType;
+
+ @Schema(description = "隔离点名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "李四")
+ @NotEmpty(message = "隔离点名称不能为空")
+ private String ipName;
+
+ @Schema(description = "隔离点位置")
+ private String ipLocation;
+
+ @Schema(description = "隔离点编号", requiredMode = Schema.RequiredMode.REQUIRED)
+ @NotEmpty(message = "隔离点编号不能为空")
+ private String ipNumber;
+
+}
\ No newline at end of file
diff --git a/cc-admin-master/pom.xml b/cc-admin-master/pom.xml
index b343acb..829c53f 100644
--- a/cc-admin-master/pom.xml
+++ b/cc-admin-master/pom.xml
@@ -17,6 +17,7 @@
yudao-module-infra
yudao-module-bpm
yudao-module-report
+ lock-module
diff --git a/cc-admin-master/yudao-server/pom.xml b/cc-admin-master/yudao-server/pom.xml
index 11e1976..4f12cc3 100644
--- a/cc-admin-master/yudao-server/pom.xml
+++ b/cc-admin-master/yudao-server/pom.xml
@@ -51,7 +51,12 @@
yudao-module-iot-biz
${revision}
-->
-
+
+
+ cn.iocoder.boot
+ lock-module
+ ${revision}
+
org.springframework.boot
diff --git a/cc-admin-master/yudao-server/src/main/resources/application-local.yaml b/cc-admin-master/yudao-server/src/main/resources/application-local.yaml
index c3ea35d..39c3c13 100644
--- a/cc-admin-master/yudao-server/src/main/resources/application-local.yaml
+++ b/cc-admin-master/yudao-server/src/main/resources/application-local.yaml
@@ -52,13 +52,13 @@ spring:
username: root
password: roomasd111
driver-class-name: com.mysql.cj.jdbc.Driver # MySQL Connector/J 8.X 连接的示例
- tdengine:
- url: jdbc:TAOS-RS://192.168.0.180:6041/test
- username: root
- password: root
- driver-class-name: com.taosdata.jdbc.rs.RestfulDriver # TDengine 连接的示例
- druid:
- validation-query: SELECT 1 # TDengine 的验证 SQL
+# tdengine:
+# url: jdbc:TAOS-RS://192.168.0.180:6041/test
+# username: root
+# password: root
+# driver-class-name: com.taosdata.jdbc.rs.RestfulDriver # TDengine 连接的示例
+# druid:
+# validation-query: SELECT 1 # TDengine 的验证 SQL
# Redis 配置。Redisson 默认的配置足够使用,一般不需要进行调优
data: