diff --git a/cc-admin-master/dependencies/pom.xml b/cc-admin-master/dependencies/pom.xml
index cf76d62..970799d 100644
--- a/cc-admin-master/dependencies/pom.xml
+++ b/cc-admin-master/dependencies/pom.xml
@@ -75,10 +75,26 @@
2.0.0
1.9.5
4.7.5.B
+ 5.2.3
+
+
+ org.apache.poi
+ poi-ooxml
+ ${word.version}
+
+
+
+
+ org.apache.poi
+ poi-scratchpad
+ ${word.version}
+
+
+
io.netty
diff --git a/cc-admin-master/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/pojo/PageParam.java b/cc-admin-master/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/pojo/PageParam.java
index fcea50f..268d117 100644
--- a/cc-admin-master/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/pojo/PageParam.java
+++ b/cc-admin-master/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/pojo/PageParam.java
@@ -30,7 +30,7 @@ public class PageParam implements Serializable {
@Schema(description = "每页条数,最大值为 100", requiredMode = Schema.RequiredMode.REQUIRED, example = "10")
@NotNull(message = "每页条数不能为空")
@Min(value = 1, message = "每页条数最小值为 1")
- @Max(value = 99999999, message = "每页条数最大值为 99999999")
+ @Max(value = 100, message = "每页条数最大值为 100")
private Integer pageSize = PAGE_SIZE;
}
diff --git a/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/controller/admin/PlanItemController.java b/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/controller/admin/PlanItemController.java
index 14eb6ee..4329e47 100644
--- a/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/controller/admin/PlanItemController.java
+++ b/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/controller/admin/PlanItemController.java
@@ -41,14 +41,14 @@ public class PlanItemController {
@PostMapping("/create")
@Operation(summary = "创建隔离计划子项")
- @PreAuthorize("@ss.hasPermission('isolation:plan-item:create')")
+ //@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')")
+ //@PreAuthorize("@ss.hasPermission('isolation:plan-item:update')")
public CommonResult updatePlanItem(@Valid @RequestBody PlanItemSaveReqVO updateReqVO) {
planItemService.updatePlanItem(updateReqVO);
return success(true);
@@ -75,7 +75,7 @@ public class PlanItemController {
@GetMapping("/get")
@Operation(summary = "获得隔离计划子项")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
- @PreAuthorize("@ss.hasPermission('isolation:plan-item:query')")
+ //@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));
@@ -83,7 +83,7 @@ public class PlanItemController {
@GetMapping("/page")
@Operation(summary = "获得隔离计划子项分页")
- @PreAuthorize("@ss.hasPermission('isolation:plan-item:query')")
+ //@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));
diff --git a/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/controller/admin/PlanItemDetailController.java b/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/controller/admin/PlanItemDetailController.java
index 7f3aa37..05bc4cb 100644
--- a/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/controller/admin/PlanItemDetailController.java
+++ b/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/controller/admin/PlanItemDetailController.java
@@ -44,14 +44,14 @@ public class PlanItemDetailController {
@PostMapping("/create")
@Operation(summary = "创建隔离计划子项详情")
- @PreAuthorize("@ss.hasPermission('isolation:plan-item-detail:create')")
+ //@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')")
+ //@PreAuthorize("@ss.hasPermission('isolation:plan-item-detail:update')")
public CommonResult updatePlanItemDetail(@Valid @RequestBody PlanItemDetailSaveReqVO updateReqVO) {
planItemDetailService.updatePlanItemDetail(updateReqVO);
return success(true);
@@ -78,7 +78,7 @@ public class PlanItemDetailController {
@GetMapping("/get")
@Operation(summary = "获得隔离计划子项详情")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
- @PreAuthorize("@ss.hasPermission('isolation:plan-item-detail:query')")
+ // @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));
@@ -86,7 +86,7 @@ public class PlanItemDetailController {
@GetMapping("/page")
@Operation(summary = "获得隔离计划子项详情分页")
- @PreAuthorize("@ss.hasPermission('isolation:plan-item-detail:query')")
+ //@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));
diff --git a/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/controller/admin/PlanLifeLockController.java b/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/controller/admin/PlanLifeLockController.java
index 3b4bca5..c6e9a5c 100644
--- a/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/controller/admin/PlanLifeLockController.java
+++ b/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/controller/admin/PlanLifeLockController.java
@@ -46,7 +46,7 @@ public class PlanLifeLockController {
@PostMapping("/create")
@Operation(summary = "创建个人生命锁")
- @PreAuthorize("@ss.hasPermission('isolation:plan-life-lock:create')")
+ //@PreAuthorize("@ss.hasPermission('isolation:plan-life-lock:create')")
public CommonResult createPlanLifeLock(@Valid @RequestBody PlanLifeLockSaveReqVO createReqVO) {
return success(planLifeLockService.createPlanLifeLock(createReqVO));
}
@@ -54,7 +54,7 @@ public class PlanLifeLockController {
@PutMapping("/update")
@Operation(summary = "更新个人生命锁")
- @PreAuthorize("@ss.hasPermission('isolation:plan-life-lock:update')")
+ //@PreAuthorize("@ss.hasPermission('isolation:plan-life-lock:update')")
public CommonResult updatePlanLifeLock(@Valid @RequestBody PlanLifeLockSaveReqVO updateReqVO) {
planLifeLockService.updatePlanLifeLock(updateReqVO);
return success(true);
@@ -63,7 +63,7 @@ public class PlanLifeLockController {
@DeleteMapping("/delete")
@Operation(summary = "删除个人生命锁")
@Parameter(name = "id", description = "编号", required = true)
- @PreAuthorize("@ss.hasPermission('isolation:plan-life-lock:delete')")
+ //@PreAuthorize("@ss.hasPermission('isolation:plan-life-lock:delete')")
public CommonResult deletePlanLifeLock(@RequestParam("id") Long id) {
planLifeLockService.deletePlanLifeLock(id);
return success(true);
@@ -81,7 +81,7 @@ public class PlanLifeLockController {
@GetMapping("/get")
@Operation(summary = "获得个人生命锁")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
- @PreAuthorize("@ss.hasPermission('isolation:plan-life-lock:query')")
+ //@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));
@@ -89,7 +89,7 @@ public class PlanLifeLockController {
@GetMapping("/page")
@Operation(summary = "获得个人生命锁分页")
- @PreAuthorize("@ss.hasPermission('isolation:plan-life-lock:query')")
+ // @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));
diff --git a/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/controller/admin/PointController.java b/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/controller/admin/PointController.java
index 0e4f926..e0f571d 100644
--- a/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/controller/admin/PointController.java
+++ b/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/controller/admin/PointController.java
@@ -1,10 +1,19 @@
package cn.iocoder.yudao.module.lock.controller.admin;
import cn.iocoder.yudao.module.lock.dal.PointDO;
+import cn.iocoder.yudao.module.lock.dal.entity.LockEntity;
+import cn.iocoder.yudao.module.lock.dal.entity.PlanEntity;
+import cn.iocoder.yudao.module.lock.enums.ErrorCodeConstants;
import cn.iocoder.yudao.module.lock.service.PointService;
+import cn.iocoder.yudao.module.lock.vo.LockStatusVo;
import cn.iocoder.yudao.module.lock.vo.PointPageReqVO;
import cn.iocoder.yudao.module.lock.vo.PointRespVO;
import cn.iocoder.yudao.module.lock.vo.PointSaveReqVO;
+import org.apache.poi.extractor.ExtractorFactory;
+import org.apache.poi.extractor.POITextExtractor;
+import org.apache.poi.hwpf.extractor.WordExtractor;
+import org.apache.poi.xwpf.extractor.XWPFWordExtractor;
+import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.springframework.web.bind.annotation.*;
import jakarta.annotation.Resource;
import org.springframework.validation.annotation.Validated;
@@ -15,18 +24,29 @@ import io.swagger.v3.oas.annotations.Operation;
import jakarta.validation.*;
import jakarta.servlet.http.*;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.InputStream;
import java.util.*;
import java.io.IOException;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
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.exception.util.ServiceExceptionUtil.exception;
+import static cn.iocoder.yudao.framework.common.pojo.CommonResult.error;
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 org.springframework.web.multipart.MultipartFile;
+
import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*;
@@ -102,4 +122,62 @@ public class PointController {
BeanUtils.toBean(list, PointRespVO.class));
}
+
+ @GetMapping("/getListAll")
+ @Operation(summary = "获取全部")
+ public CommonResult getListAll() {
+ return success(pointService.getListAll());
+ }
+
+ @PutMapping("/bindlock")
+ @Operation(summary = "修改锁状态")
+ public CommonResult bindlock(@RequestBody LockStatusVo updateReqVO) {
+ pointService.bindlock(updateReqVO);
+ return success(true);
+ }
+
+ @PutMapping("/createLock")
+ @Operation(summary = "上锁")
+ public CommonResult createLock(@RequestBody LockStatusVo updateReqVO) {
+ pointService.createLock(updateReqVO);
+ return success(true);
+ }
+ @PutMapping("/verifyLock")
+ @Operation(summary = "验证")
+ public CommonResult verifyLock(@RequestBody LockStatusVo updateReqVO) {
+ pointService.verifyLock(updateReqVO);
+ return success(true);
+ }
+ @PutMapping("/verifyUnLock")
+ @Operation(summary = "验证解锁")
+ public CommonResult verifyUnLock(@RequestBody LockStatusVo updateReqVO) {
+ pointService.verifyUnLock(updateReqVO);
+ return success(true);
+ }
+
+ @PutMapping("/unLock")
+ @Operation(summary = "解锁")
+ public CommonResult unLock(@RequestBody LockStatusVo updateReqVO) {
+ pointService.unLock(updateReqVO);
+ return success(true);
+ }
+
+ @PostMapping(value = "/import", consumes = "multipart/form-data")
+ @Operation(summary = "从 Word 文件导入隔离点")
+ public CommonResult importPointsFromWord(@Valid @RequestPart("file") MultipartFile file) {
+
+ if (Objects.isNull(file) || file.isEmpty()) {
+ throw exception(ErrorCodeConstants.IMPORT_ERROR);
+ }
+ String contentType = file.getContentType();
+ if (!"application/vnd.openxmlformats-officedocument.wordprocessingml.document".equals(contentType) &&
+ !"application/msword".equals(contentType)) {
+
+ throw exception(ErrorCodeConstants.IMPORT_FILE_ERROR);
+ }
+
+ pointService.importPointsFromWord(file);
+
+ return success(true);
+ }
}
\ No newline at end of file
diff --git a/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/dal/LockDO.java b/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/dal/LockDO.java
index 7e1aa10..cedf03c 100644
--- a/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/dal/LockDO.java
+++ b/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/dal/LockDO.java
@@ -39,11 +39,11 @@ public class LockDO extends BaseDO {
/**
* 状态
*/
- private String lockStatus;
+ private Integer lockStatus;
/**
* 锁具类型
*/
- private String lockType;
+ private Integer lockType;
/**
* 启用状态: 0=未启用, 1=已启用
*/
diff --git a/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/dal/LockGuideDO.java b/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/dal/LockGuideDO.java
index 95f5abe..31ac4db 100644
--- a/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/dal/LockGuideDO.java
+++ b/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/dal/LockGuideDO.java
@@ -62,4 +62,5 @@ public class LockGuideDO extends BaseDO {
*/
@TableField(updateStrategy = FieldStrategy.ALWAYS)
private Long verifierHelperId;
+
}
\ No newline at end of file
diff --git a/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/dal/PlanItemDetailDO.java b/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/dal/PlanItemDetailDO.java
index 4d7d551..d519cb4 100644
--- a/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/dal/PlanItemDetailDO.java
+++ b/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/dal/PlanItemDetailDO.java
@@ -40,7 +40,7 @@ public class PlanItemDetailDO extends BaseDO {
*/
private Long lockId;
/**
- * 锁状态: 0=未上锁, 1=已上锁, 2=已解锁
+ * 锁箱状态: 0=未上锁, 1=已上锁, 2=已解锁
*/
private Integer lockStatus;
diff --git a/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/dal/PlanLifeLockDO.java b/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/dal/PlanLifeLockDO.java
index a0782e1..78db309 100644
--- a/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/dal/PlanLifeLockDO.java
+++ b/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/dal/PlanLifeLockDO.java
@@ -40,7 +40,7 @@ public class PlanLifeLockDO extends BaseDO {
/**
* 生命锁类型
*/
- private String lockType;
+ private Integer lockType;
/**
* 锁定状态: 0=未上锁, 1=已上锁
*/
diff --git a/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/dal/entity/LockEntity.java b/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/dal/entity/LockEntity.java
new file mode 100644
index 0000000..ed4e7d8
--- /dev/null
+++ b/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/dal/entity/LockEntity.java
@@ -0,0 +1,27 @@
+package cn.iocoder.yudao.module.lock.dal.entity;
+
+import cn.iocoder.yudao.module.lock.dal.*;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class LockEntity {
+
+ private List isolationPointList;
+
+ private List lockList;
+
+ private List lockGuideList;
+
+ private List planList;
+
+ private List planItemDetailList;
+
+ private List planItemList;
+
+ private List planLifeLockList;
+
+ private List pointList;
+
+}
diff --git a/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/dal/entity/PlanLifeLockEntity.java b/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/dal/entity/PlanLifeLockEntity.java
index 78765a6..425d6a4 100644
--- a/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/dal/entity/PlanLifeLockEntity.java
+++ b/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/dal/entity/PlanLifeLockEntity.java
@@ -30,7 +30,7 @@ public class PlanLifeLockEntity {
/**
* 生命锁类型
*/
- private String lockType;
+ private Integer lockType;
/**
* 锁定状态: 0=未上锁, 1=已上锁
*/
diff --git a/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/enums/ErrorCodeConstants.java b/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/enums/ErrorCodeConstants.java
index 770ef48..9e417b9 100644
--- a/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/enums/ErrorCodeConstants.java
+++ b/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/enums/ErrorCodeConstants.java
@@ -10,7 +10,6 @@ public interface ErrorCodeConstants {
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, "隔离计划子项不存在");
@@ -22,6 +21,24 @@ public interface ErrorCodeConstants {
ErrorCode PLAN_LIFE_LOCK_NOT_EXISTS = new ErrorCode(1_005_000_008, "个人生命锁不存在");
ErrorCode POINT_NOT_EXISTS = new ErrorCode(1_005_000_009, "隔离点不存在");
+
+ ErrorCode POINT_NUMBER_EXISTS = new ErrorCode(1_005_000_009, "隔离点编号已经存在");
ErrorCode CENTRALIZED_LISTING_LOCK_NOT_EXISTS = new ErrorCode(1_005_000_010, "请先创建集中挂牌人锁");
ErrorCode CENTRALIZED_LISTING_LOCK_EXISTS = new ErrorCode(1_005_000_010, "请勿重复创建挂牌人锁");
+
+ ErrorCode ISOLATION_POINT_EXISTS = new ErrorCode(1_005_000_011, "指导书与隔离点关联已经存在");
+
+ ErrorCode PLAN_LIFE_LOCK_EXISTS = new ErrorCode(1_005_000_001, "需要等受影响人锁全部解开才能开锁");
+ ErrorCode LOCK_STATUS_ERROR = new ErrorCode(1_005_000_001, "已经上锁无法重复上锁");
+
+ ErrorCode DETAIL_UNLOCK_STATUS_ERROR = new ErrorCode(1_005_000_001, "该锁已经解锁");
+ ErrorCode DETAIL_LOCK_STATUS_ERROR = new ErrorCode(1_005_000_001, "该锁已经验证");
+ ErrorCode DETAIL_LOCK_VERITY_ERROR = new ErrorCode(1_005_000_001, "该锁未验证");
+
+ ErrorCode PLAN_ITEM_DETAIL_LOCK_STATUS_ERROR = new ErrorCode(1_005_000_001, "无法重复上锁");
+
+ ErrorCode IMPORT_ERROR = new ErrorCode(1_005_000_001, "上传的 Word 文件不能为空");
+
+ ErrorCode IMPORT_FILE_ERROR = new ErrorCode(1_005_000_001, "仅支持 Word 文件(.doc 或 .docx");
+
}
diff --git a/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/mapper/LockMapper.java b/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/mapper/LockMapper.java
index f573af5..28c2475 100644
--- a/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/mapper/LockMapper.java
+++ b/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/mapper/LockMapper.java
@@ -6,6 +6,10 @@ 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;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Update;
+
+import java.util.List;
/**
* 电子锁 Mapper
@@ -28,4 +32,6 @@ public interface LockMapper extends BaseMapperX {
.orderByDesc(LockDO::getId));
}
+
+ void updateStatus(@Param("id") Long id,@Param("status")Integer status);
}
\ No newline at end of file
diff --git a/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/mapper/PlanItemDetailMapper.java b/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/mapper/PlanItemDetailMapper.java
index 77f3a1e..c60b9b4 100644
--- a/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/mapper/PlanItemDetailMapper.java
+++ b/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/mapper/PlanItemDetailMapper.java
@@ -6,6 +6,7 @@ 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 org.apache.ibatis.annotations.Update;
/**
@@ -26,4 +27,5 @@ public interface PlanItemDetailMapper extends BaseMapperX {
.orderByDesc(PlanItemDetailDO::getId));
}
+ void updateDetailLockStatus(Integer status,Long planItemDetailId, Long lockId,Long operateRecordId,Long verifyRecordId);
}
\ No newline at end of file
diff --git a/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/mapper/PlanItemMapper.java b/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/mapper/PlanItemMapper.java
index ce91a98..83e7684 100644
--- a/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/mapper/PlanItemMapper.java
+++ b/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/mapper/PlanItemMapper.java
@@ -28,4 +28,5 @@ public interface PlanItemMapper extends BaseMapperX {
.orderByDesc(PlanItemDO::getId));
}
+ void updateStatus(Long isolationPlanItemId, Integer status);
}
\ No newline at end of file
diff --git a/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/mapper/PlanLifeLockMapper.java b/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/mapper/PlanLifeLockMapper.java
index b93025d..c57b4ad 100644
--- a/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/mapper/PlanLifeLockMapper.java
+++ b/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/mapper/PlanLifeLockMapper.java
@@ -7,6 +7,8 @@ import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
import org.apache.ibatis.annotations.Mapper;
+import java.util.Date;
+
/**
* 个人生命锁 Mapper
*
@@ -27,4 +29,5 @@ public interface PlanLifeLockMapper extends BaseMapperX {
.orderByDesc(PlanLifeLockDO::getId));
}
+ void updateStatus(Long id, Integer status, Date unlockTime);
}
\ No newline at end of file
diff --git a/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/mapper/PlanMapper.java b/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/mapper/PlanMapper.java
index 934eade..40ff4e6 100644
--- a/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/mapper/PlanMapper.java
+++ b/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/mapper/PlanMapper.java
@@ -22,4 +22,5 @@ public interface PlanMapper extends BaseMapperX {
.orderByDesc(PlanDO::getId));
}
+ void updateStatus(Long planId, Integer status);
}
\ No newline at end of file
diff --git a/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/mapper/PointMapper.java b/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/mapper/PointMapper.java
index 6328cfe..531f820 100644
--- a/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/mapper/PointMapper.java
+++ b/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/mapper/PointMapper.java
@@ -6,6 +6,10 @@ 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;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Update;
+
+import java.util.List;
/**
* 隔离点 Mapper
@@ -24,4 +28,5 @@ public interface PointMapper extends BaseMapperX {
.orderByDesc(PointDO::getId));
}
+ void updateStatusBatch(@Param("idList") List idList, @Param("status") Integer status);
}
\ No newline at end of file
diff --git a/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/service/LockService.java b/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/service/LockService.java
index 1fb3b9e..fb2c448 100644
--- a/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/service/LockService.java
+++ b/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/service/LockService.java
@@ -60,4 +60,6 @@ public interface LockService {
*/
PageResult getLockPage(LockPageReqVO pageReqVO);
+
+
}
\ No newline at end of file
diff --git a/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/service/PointService.java b/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/service/PointService.java
index 6c65745..da80111 100644
--- a/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/service/PointService.java
+++ b/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/service/PointService.java
@@ -3,11 +3,15 @@ package cn.iocoder.yudao.module.lock.service;
import java.util.*;
import cn.iocoder.yudao.module.lock.dal.PointDO;
+import cn.iocoder.yudao.module.lock.dal.entity.LockEntity;
+import cn.iocoder.yudao.module.lock.dal.entity.PlanEntity;
+import cn.iocoder.yudao.module.lock.vo.LockStatusVo;
import cn.iocoder.yudao.module.lock.vo.PointPageReqVO;
import cn.iocoder.yudao.module.lock.vo.PointSaveReqVO;
import jakarta.validation.*;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import org.springframework.web.multipart.MultipartFile;
/**
* 隔离点 Service 接口
@@ -61,4 +65,18 @@ public interface PointService {
*/
PageResult getPointPage(PointPageReqVO pageReqVO);
+
+ LockEntity getListAll();
+
+ void bindlock(LockStatusVo updateReqVO);
+
+ void createLock(LockStatusVo updateReqVO);
+
+ void verifyLock(LockStatusVo updateReqVO);
+
+ void verifyUnLock(LockStatusVo updateReqVO);
+
+ void unLock(LockStatusVo updateReqVO);
+
+ void importPointsFromWord(MultipartFile file);
}
\ No newline at end of file
diff --git a/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/service/impl/IsolationPointServiceImpl.java b/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/service/impl/IsolationPointServiceImpl.java
index 61f401d..f059132 100644
--- a/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/service/impl/IsolationPointServiceImpl.java
+++ b/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/service/impl/IsolationPointServiceImpl.java
@@ -7,6 +7,7 @@ import cn.iocoder.yudao.module.lock.mapper.IsolationPointMapper;
import cn.iocoder.yudao.module.lock.service.IsolationPointService;
import cn.iocoder.yudao.module.lock.vo.IsolationPointPageReqVO;
import cn.iocoder.yudao.module.lock.vo.IsolationPointSaveReqVO;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import org.springframework.stereotype.Service;
import jakarta.annotation.Resource;
import org.springframework.validation.annotation.Validated;
@@ -34,6 +35,14 @@ public class IsolationPointServiceImpl implements IsolationPointService {
@Override
public Long createIsolationPoint(IsolationPointSaveReqVO createReqVO) {
// 插入
+ QueryWrapper objectQueryWrapper = new QueryWrapper<>();
+ objectQueryWrapper.eq("guide_id", createReqVO.getGuideId());
+ objectQueryWrapper.eq("isolation_point_id", createReqVO.getIsolationPointId());
+ IsolationPointDO isolationPointDO = isolationPointMapper.selectOne(objectQueryWrapper);
+ if (isolationPointDO != null) {
+ throw ServiceExceptionUtil.exception(ErrorCodeConstants.ISOLATION_POINT_EXISTS);
+ }
+
IsolationPointDO isolationPoint = BeanUtils.toBean(createReqVO, IsolationPointDO.class);
isolationPointMapper.insert(isolationPoint);
@@ -45,6 +54,15 @@ public class IsolationPointServiceImpl implements IsolationPointService {
public void updateIsolationPoint(IsolationPointSaveReqVO updateReqVO) {
// 校验存在
validateIsolationPointExists(updateReqVO.getId());
+
+ QueryWrapper objectQueryWrapper = new QueryWrapper<>();
+ objectQueryWrapper.eq("guide_id", updateReqVO.getGuideId());
+ objectQueryWrapper.eq("isolation_point_id", updateReqVO.getIsolationPointId());
+ IsolationPointDO isolationPointDO = isolationPointMapper.selectOne(objectQueryWrapper);
+ if (isolationPointDO != null && !isolationPointDO.getId().equals(updateReqVO.getId())) {
+ throw ServiceExceptionUtil.exception(ErrorCodeConstants.ISOLATION_POINT_EXISTS);
+ }
+
// 更新
IsolationPointDO updateObj = BeanUtils.toBean(updateReqVO, IsolationPointDO.class);
isolationPointMapper.updateById(updateObj);
diff --git a/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/service/impl/LockServiceImpl.java b/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/service/impl/LockServiceImpl.java
index f9a90dc..0f1bc3e 100644
--- a/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/service/impl/LockServiceImpl.java
+++ b/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/service/impl/LockServiceImpl.java
@@ -8,6 +8,7 @@ import cn.iocoder.yudao.module.lock.service.LockService;
import cn.iocoder.yudao.module.lock.vo.LockPageReqVO;
import cn.iocoder.yudao.module.lock.vo.LockSaveReqVO;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import jakarta.annotation.Resource;
@@ -49,6 +50,7 @@ public class LockServiceImpl implements LockService {
// 校验存在
log.info("[updateLock][updateReqVO({})]", updateReqVO);
validateLockExists(updateReqVO.getId());
+
// 更新
LockDO updateObj = BeanUtils.toBean(updateReqVO, LockDO.class);
lockMapper.updateById(updateObj);
@@ -70,7 +72,8 @@ public class LockServiceImpl implements LockService {
private void validateLockExists(Long id) {
- if (lockMapper.selectById(id) == null) {
+ LockDO lockDO = lockMapper.selectById(id);
+ if (lockDO == null) {
throw ServiceExceptionUtil.exception(ErrorCodeConstants.LOCK_NOT_EXISTS);
}
}
@@ -85,4 +88,5 @@ public class LockServiceImpl implements LockService {
return lockMapper.selectPage(pageReqVO);
}
+
}
\ No newline at end of file
diff --git a/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/service/impl/PlanItemDetailServiceImpl.java b/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/service/impl/PlanItemDetailServiceImpl.java
index 5502865..80a5c30 100644
--- a/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/service/impl/PlanItemDetailServiceImpl.java
+++ b/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/service/impl/PlanItemDetailServiceImpl.java
@@ -50,6 +50,12 @@ public class PlanItemDetailServiceImpl implements PlanItemDetailService {
planItemDetailMapper.updateById(updateObj);
}
+ private void checkLockStatus(PlanItemDetailSaveReqVO updateReqVO) {
+ if (updateReqVO.getLockStatus() != null){
+
+ }
+ }
+
@Override
public void deletePlanItemDetail(Long id) {
// 校验存在
diff --git a/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/service/impl/PlanLifeLockServiceImpl.java b/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/service/impl/PlanLifeLockServiceImpl.java
index a04bd9c..9f4831f 100644
--- a/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/service/impl/PlanLifeLockServiceImpl.java
+++ b/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/service/impl/PlanLifeLockServiceImpl.java
@@ -1,8 +1,11 @@
package cn.iocoder.yudao.module.lock.service.impl;
import cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil;
+import cn.iocoder.yudao.module.lock.dal.LockDO;
+import cn.iocoder.yudao.module.lock.dal.PlanItemDetailDO;
import cn.iocoder.yudao.module.lock.dal.PlanLifeLockDO;
import cn.iocoder.yudao.module.lock.enums.ErrorCodeConstants;
+import cn.iocoder.yudao.module.lock.mapper.PlanItemDetailMapper;
import cn.iocoder.yudao.module.lock.mapper.PlanLifeLockMapper;
import cn.iocoder.yudao.module.lock.service.PlanLifeLockService;
import cn.iocoder.yudao.module.lock.vo.PlanLifeLockPageReqVO;
@@ -32,7 +35,8 @@ public class PlanLifeLockServiceImpl implements PlanLifeLockService {
@Resource
private PlanLifeLockMapper planLifeLockMapper;
- @Override
+ @Resource
+ private PlanItemDetailMapper planItemDetailMapper;
public Long createPlanLifeLock(PlanLifeLockSaveReqVO createReqVO) {
List listAll = getListAll(createReqVO.getIsolationPlanItemDetailId());
@@ -77,9 +81,23 @@ public class PlanLifeLockServiceImpl implements PlanLifeLockService {
private void validatePlanLifeLockExists(Long id) {
- if (planLifeLockMapper.selectById(id) == null) {
+ PlanLifeLockDO planLifeLockDO = planLifeLockMapper.selectById(id);
+ if (planLifeLockDO == null) {
throw ServiceExceptionUtil.exception(ErrorCodeConstants.PLAN_LIFE_LOCK_NOT_EXISTS);
}
+ PlanItemDetailDO planItemDetailDO = planItemDetailMapper.selectById(planLifeLockDO.getIsolationPlanItemDetailId());
+ if (!planItemDetailDO.getLockStatus().equals(3)){
+ throw ServiceExceptionUtil.exception(ErrorCodeConstants.DETAIL_UNLOCK_STATUS_ERROR);
+ }
+ QueryWrapper objectQueryWrapper = new QueryWrapper<>();
+ objectQueryWrapper.eq("isolation_plan_item_detail_id", planLifeLockDO.getIsolationPlanItemDetailId());
+ objectQueryWrapper.eq("lock_type", 5);//5是受影响人锁
+ objectQueryWrapper.eq("lock_status", 1);//1是锁已上锁
+ List planLifeLockDOS = planLifeLockMapper.selectList(objectQueryWrapper);
+ if (!planLifeLockDOS.isEmpty() && !planLifeLockDO.getLockType().equals(5)){
+ throw ServiceExceptionUtil.exception(ErrorCodeConstants.PLAN_LIFE_LOCK_EXISTS);
+ }
+
}
@Override
diff --git a/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/service/impl/PointServiceImpl.java b/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/service/impl/PointServiceImpl.java
index 1328b29..b3ce223 100644
--- a/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/service/impl/PointServiceImpl.java
+++ b/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/service/impl/PointServiceImpl.java
@@ -1,22 +1,34 @@
package cn.iocoder.yudao.module.lock.service.impl;
+import cn.hutool.core.collection.CollectionUtil;
import cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil;
-import cn.iocoder.yudao.module.lock.dal.PointDO;
+import cn.iocoder.yudao.framework.web.core.util.WebFrameworkUtils;
+import cn.iocoder.yudao.module.lock.dal.*;
+import cn.iocoder.yudao.module.lock.dal.entity.*;
import cn.iocoder.yudao.module.lock.enums.ErrorCodeConstants;
-import cn.iocoder.yudao.module.lock.mapper.PointMapper;
+import cn.iocoder.yudao.module.lock.mapper.*;
+import cn.iocoder.yudao.module.lock.service.LockWorkRecordService;
import cn.iocoder.yudao.module.lock.service.PointService;
-import cn.iocoder.yudao.module.lock.vo.PointPageReqVO;
-import cn.iocoder.yudao.module.lock.vo.PointSaveReqVO;
+import cn.iocoder.yudao.module.lock.util.WordUtils;
+import cn.iocoder.yudao.module.lock.vo.*;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.springframework.stereotype.Service;
import jakarta.annotation.Resource;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.CollectionUtils;
import org.springframework.validation.annotation.Validated;
+import java.time.LocalDateTime;
import java.util.*;
+import java.util.List;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
+import org.springframework.web.multipart.MultipartFile;
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
+import static java.util.stream.Collectors.groupingBy;
/**
@@ -28,13 +40,42 @@ import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionU
@Validated
public class PointServiceImpl implements PointService {
+ private static final int LOCK_STATUS_UNLOCKED = 0;
+ private static final int LOCK_STATUS_LOCKED = 5;
+ private static final int UNLOCK_STATUS_LOCKED = 4;
+ private static final int PLAN_ITEM_STATUS_UNLOCKED = 1;
+ private static final int PLAN_STATUS_PARTIALLY_UNLOCKED = 2;
+ private static final int LOCK_MAIN_STATUS_UNLOCKED = 2;
+ private static final int CREATE_LOCK_STATUS = 7;
+ private static final int VERITY_STATUS_UNLOCKED = 3;
@Resource
private PointMapper pointMapper;
+ @Resource
+ private IsolationPointMapper isolationPointMapper;
+ @Resource
+ private LockGuideMapper lockGuideMapper;
+ @Resource
+ private PlanItemDetailMapper planItemDetailMapper;
+ @Resource
+ private PlanItemMapper planItemMapper;
+ @Resource
+ private PlanLifeLockMapper planLifeLockMapper;
+ @Resource
+ private LockMapper lockMapper;
+ @Resource
+ private PlanMapper planMapper;
@Override
public Long createPoint(PointSaveReqVO createReqVO) {
// 插入
PointDO point = BeanUtils.toBean(createReqVO, PointDO.class);
+
+ QueryWrapper objectQueryWrapper = new QueryWrapper<>();
+ objectQueryWrapper.eq("ip_number", point.getIpNumber());
+ PointDO pointDO = pointMapper.selectOne(objectQueryWrapper);
+ if (pointDO != null) {
+ throw ServiceExceptionUtil.exception(ErrorCodeConstants.POINT_NUMBER_EXISTS);
+ }
pointMapper.insert(point);
// 返回
@@ -45,6 +86,14 @@ public class PointServiceImpl implements PointService {
public void updatePoint(PointSaveReqVO updateReqVO) {
// 校验存在
validatePointExists(updateReqVO.getId());
+
+ QueryWrapper objectQueryWrapper = new QueryWrapper<>();
+ objectQueryWrapper.eq("ip_number", updateReqVO.getIpNumber());
+ PointDO pointDO = pointMapper.selectOne(objectQueryWrapper);
+ if (pointDO != null && !pointDO.getId().equals(updateReqVO.getId())) {
+ throw ServiceExceptionUtil.exception(ErrorCodeConstants.POINT_NUMBER_EXISTS);
+ }
+
// 更新
PointDO updateObj = BeanUtils.toBean(updateReqVO, PointDO.class);
pointMapper.updateById(updateObj);
@@ -59,10 +108,10 @@ public class PointServiceImpl implements PointService {
}
@Override
- public void deletePointListByIds(List ids) {
+ public void deletePointListByIds(List ids) {
// 删除
pointMapper.deleteByIds(ids);
- }
+ }
private void validatePointExists(Long id) {
@@ -81,4 +130,224 @@ public class PointServiceImpl implements PointService {
return pointMapper.selectPage(pageReqVO);
}
+
+ @Override
+ public LockEntity getListAll() {
+ LockEntity lockEntity = new LockEntity();
+ lockEntity.setPointList(pointMapper.selectList());
+ lockEntity.setIsolationPointList(isolationPointMapper.selectList());
+ lockEntity.setLockGuideList(lockGuideMapper.selectList());
+ lockEntity.setPlanItemDetailList(planItemDetailMapper.selectList());
+ lockEntity.setPlanItemList(planItemMapper.selectList());
+ lockEntity.setPlanLifeLockList(planLifeLockMapper.selectList());
+ lockEntity.setLockList(lockMapper.selectList());
+ lockEntity.setPlanList(planMapper.selectList());
+ return lockEntity;
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void bindlock(LockStatusVo updateReqVO) {
+
+ QueryWrapper objectQueryWrapper = new QueryWrapper<>();
+ objectQueryWrapper.eq("id", updateReqVO.getPlanItemDetailId());
+
+ List planItemDetailDOS = planItemDetailMapper.selectList(objectQueryWrapper);
+ if (CollectionUtils.isEmpty(planItemDetailDOS)) {
+ throw ServiceExceptionUtil.exception(ErrorCodeConstants.PLAN_ITEM_DETAIL_NOT_EXISTS);
+ }
+ if (planItemDetailDOS.get(0).getLockStatus().equals(1)) {
+ throw ServiceExceptionUtil.exception(ErrorCodeConstants.PLAN_ITEM_DETAIL_LOCK_STATUS_ERROR);
+ }
+
+ lockMapper.updateStatus(updateReqVO.getLockId(), 7);//上锁已验证
+
+ List pointIdList = planItemDetailDOS.stream().map(PlanItemDetailDO::getIsolationPointId).toList();
+ pointMapper.updateStatusBatch(pointIdList, 1);
+
+ planItemDetailMapper.updateDetailLockStatus(1, updateReqVO.getPlanItemDetailId(), updateReqVO.getLockId(), null, null);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void createLock(LockStatusVo updateReqVO) {
+ PlanItemDetailDO planItemDetailDO = planItemDetailMapper.selectById(updateReqVO.getPlanItemDetailId());
+ if (planItemDetailDO == null) {
+ throw ServiceExceptionUtil.exception(ErrorCodeConstants.PLAN_ITEM_DETAIL_NOT_EXISTS);
+ }
+ LockDO lockDO = lockMapper.selectById(planItemDetailDO.getLockId());
+ if (lockDO == null) {
+ throw ServiceExceptionUtil.exception(ErrorCodeConstants.LOCK_NOT_EXISTS);
+ }
+ if (lockDO.getLockStatus() != CREATE_LOCK_STATUS) {
+ throw ServiceExceptionUtil.exception(ErrorCodeConstants.LOCK_STATUS_ERROR);
+
+ }
+ lockMapper.updateStatus(lockDO.getId(), 3);
+ planItemDetailMapper.updateDetailLockStatus(2, updateReqVO.getPlanItemDetailId(), null, updateReqVO.getOperateRecordld(), null);
+
+
+ createPlanLiteLock(1, updateReqVO);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void verifyLock(LockStatusVo updateReqVO) {
+ PlanItemDetailDO planItemDetailDO = planItemDetailMapper.selectById(updateReqVO.getPlanItemDetailId());
+ if (planItemDetailDO == null) {
+ throw ServiceExceptionUtil.exception(ErrorCodeConstants.PLAN_ITEM_DETAIL_NOT_EXISTS);
+ }
+ if (planItemDetailDO.getLockStatus() != PLAN_STATUS_PARTIALLY_UNLOCKED) {
+ throw ServiceExceptionUtil.exception(ErrorCodeConstants.DETAIL_LOCK_VERITY_ERROR);
+ }
+
+ createPlanLiteLock(3, updateReqVO);
+ planItemDetailMapper.updateDetailLockStatus(3, updateReqVO.getPlanItemDetailId(), null, null, updateReqVO.getVerifyRecordId());
+
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void verifyUnLock(LockStatusVo updateReqVO) {
+ PlanItemDetailDO planItemDetailDO = planItemDetailMapper.selectById(updateReqVO.getPlanItemDetailId());
+ if (planItemDetailDO == null) {
+ throw ServiceExceptionUtil.exception(ErrorCodeConstants.PLAN_ITEM_DETAIL_NOT_EXISTS);
+ }
+ if (planItemDetailDO.getLockStatus() != VERITY_STATUS_UNLOCKED) {
+ throw ServiceExceptionUtil.exception(ErrorCodeConstants.DETAIL_LOCK_STATUS_ERROR);
+ }
+ QueryWrapper lockDOQueryWrapper = new QueryWrapper<>();
+ lockDOQueryWrapper.eq("isolation_plan_item_detail_id", planItemDetailDO.getId());
+ lockDOQueryWrapper.eq("lock_type", 5);
+ List lockDOS = planLifeLockMapper.selectList(lockDOQueryWrapper);
+
+ boolean lockStatus = lockDOS.stream().anyMatch(plan -> plan.getLockStatus() == 1);
+ if (lockStatus) {
+ throw exception(ErrorCodeConstants.PLAN_LIFE_LOCK_EXISTS);
+ }
+ planItemDetailDO.setLockStatus(UNLOCK_STATUS_LOCKED);
+
+ planItemDetailMapper.updateById(planItemDetailDO);
+ planLifeLockMapper.updateStatus(updateReqVO.getLifelockId(), 0, new Date());
+
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void unLock(LockStatusVo updateReqVO) {
+
+ PlanItemDetailDO planItemDetailDO = planItemDetailMapper.selectById(updateReqVO.getPlanItemDetailId());
+ if (planItemDetailDO == null) {
+ throw exception(ErrorCodeConstants.PLAN_ITEM_DETAIL_NOT_EXISTS);
+ }
+ if (planItemDetailDO.getLockStatus() != UNLOCK_STATUS_LOCKED) {
+ throw exception(ErrorCodeConstants.DETAIL_UNLOCK_STATUS_ERROR);
+ }
+ QueryWrapper lockDOQueryWrapper = new QueryWrapper<>();
+ lockDOQueryWrapper.eq("isolation_plan_item_detail_id", planItemDetailDO.getId());
+ lockDOQueryWrapper.eq("lock_type", 5);
+ List lockDOS = planLifeLockMapper.selectList(lockDOQueryWrapper);
+
+ boolean lockStatus = lockDOS.stream().anyMatch(plan -> plan.getLockStatus() == 1);
+ if (lockStatus) {
+ throw exception(ErrorCodeConstants.PLAN_LIFE_LOCK_EXISTS);
+ }
+
+ planItemDetailMapper.updateDetailLockStatus(LOCK_STATUS_LOCKED, updateReqVO.getPlanItemDetailId(),
+ null, null, null);
+
+ planLifeLockMapper.updateStatus(updateReqVO.getLifelockId(), LOCK_STATUS_UNLOCKED, new Date());
+
+
+ lockMapper.updateStatus(planItemDetailDO.getLockId(), LOCK_MAIN_STATUS_UNLOCKED);
+
+
+ // 2. 查询关联的生命锁状态
+ QueryWrapper lifeLockQuery = new QueryWrapper()
+ .eq("isolation_plan_item_detail_id", updateReqVO.getPlanItemDetailId());
+ List lifeLocks = planLifeLockMapper.selectList(lifeLockQuery);
+
+
+ boolean allUnlocked = lifeLocks.stream().allMatch(plan -> plan.getLockStatus() == LOCK_STATUS_UNLOCKED);
+
+
+ QueryWrapper objectQueryWrapper11 = new QueryWrapper<>();
+ objectQueryWrapper11.eq("isolation_plan_item_id", planItemDetailDO.getIsolationPlanItemId());
+ List planItemDetailDOS1 = planItemDetailMapper.selectList(objectQueryWrapper11);
+
+ boolean detailLocked = planItemDetailDOS1.stream().allMatch(plan -> plan.getLockStatus() == LOCK_STATUS_LOCKED);
+
+
+ if (allUnlocked && detailLocked) {
+ updatePlanAndItemStatus(planItemDetailDO.getIsolationPlanItemId(), updateReqVO.getPlanId());
+ }
+ // 3. 更新隔离点位状态
+ QueryWrapper objectQueryWrapper1 = new QueryWrapper<>();
+ objectQueryWrapper1.eq("isolation_point_id", planItemDetailDO.getIsolationPointId());
+ List planItemDetailDOS = planItemDetailMapper.selectList(objectQueryWrapper1);
+ boolean pointStatus = planItemDetailDOS.stream().allMatch(plan -> plan.getLockStatus() == LOCK_STATUS_LOCKED);
+ if (pointStatus) {
+ pointMapper.updateStatusBatch(Collections.singletonList(planItemDetailDO.getIsolationPointId()), 0);
+ }
+
+
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void importPointsFromWord(MultipartFile file) {
+ try {
+ String rawContent = WordUtils.extractTextFromWord(file);
+ LockWordPointVo lockWordPointVo = WordUtils.parseAndPrintStructuredContent(rawContent);
+
+ ArrayList objects = new ArrayList<>();
+ if (CollectionUtil.isNotEmpty(lockWordPointVo.getDataVoList())) {
+ for (LockWordPointDataVo lockWordPointDataVo : lockWordPointVo.getDataVoList()) {
+ PointDO pointDO = new PointDO();
+ pointDO.setStatus(0);
+ pointDO.setIpName(lockWordPointDataVo.getLocation());
+ pointDO.setIpNumber(lockWordPointDataVo.getSequence());
+ pointDO.setIpType("1");
+ pointDO.setGuideLockNums(Integer.valueOf(lockWordPointVo.getDeviceLock()));
+ objects.add(pointDO);
+ }
+ }
+ pointMapper.insertBatch(objects);
+
+
+ } catch (Exception e) {
+ throw ServiceExceptionUtil.exception(ErrorCodeConstants.IMPORT_ERROR);
+ }
+ }
+
+ private void updatePlanAndItemStatus(Long isolationPlanItemId, Long planId) {
+ // 更新计划项状态
+ planItemMapper.updateStatus(isolationPlanItemId, PLAN_ITEM_STATUS_UNLOCKED);
+
+ // 检查是否需要更新主计划的状态
+ QueryWrapper planItemQuery = new QueryWrapper()
+ .eq("isolation_plan_id", planId);
+ List planItems = planItemMapper.selectList(planItemQuery);
+
+ boolean anyPlanItemUnlocked = planItems.stream()
+ .allMatch(plan -> plan.getStatus() == PLAN_ITEM_STATUS_UNLOCKED);
+
+
+ if (anyPlanItemUnlocked) {
+ planMapper.updateStatus(planId, PLAN_ITEM_STATUS_UNLOCKED);
+ }
+ }
+
+ private void createPlanLiteLock(Integer type, LockStatusVo updateReqVO) {
+ Long userId = WebFrameworkUtils.getLoginUserId();
+
+ PlanLifeLockDO planLifeLockDO = new PlanLifeLockDO();
+ planLifeLockDO.setIsolationPlanItemDetailId(updateReqVO.getPlanItemDetailId());
+ planLifeLockDO.setUserId(userId);
+ planLifeLockDO.setLockType(type);
+ planLifeLockDO.setLockStatus(1);
+ planLifeLockDO.setLockTime(LocalDateTime.now());
+ planLifeLockMapper.insert(planLifeLockDO);
+ }
+
}
\ No newline at end of file
diff --git a/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/util/WordUtils.java b/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/util/WordUtils.java
new file mode 100644
index 0000000..d799093
--- /dev/null
+++ b/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/util/WordUtils.java
@@ -0,0 +1,174 @@
+package cn.iocoder.yudao.module.lock.util;
+
+import cn.iocoder.yudao.module.lock.vo.LockWordPointDataVo;
+import cn.iocoder.yudao.module.lock.vo.LockWordPointVo;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.poi.extractor.ExtractorFactory;
+import org.apache.poi.extractor.POITextExtractor;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.regex.Pattern;
+
+@Slf4j
+public class WordUtils {
+
+
+ public static void main(String[] args) {
+ // =================================================================
+ // 请将此路径修改为您本地Word文件的实际路径
+ // 支持 .doc 和 .docx 格式
+ // =================================================================
+ var filePath = "C:\\Users\\admin\\Desktop\\1.docx"; // <-- 请确保路径正确
+
+ var file = new File(filePath);
+
+ if (!file.exists() || !file.isFile()) {
+ // 2. 使用 log.error 记录错误
+ log.error("错误:文件不存在或不是一个有效的文件路径 -> {}", filePath);
+ return;
+ }
+
+ try {
+ // 1. 从 Word 文件中提取纯文本
+ var rawContent = extractTextFrom(file);
+
+ // 2. 解析提取出的文本并按结构化格式打印
+ parseAndPrintStructuredContent(rawContent);
+
+ } catch (Exception e) {
+ // 3. 记录异常信息和堆栈
+ log.error("处理文件时发生未知异常。", e);
+ }
+ }
+
+ /**
+ * 整合所有解析逻辑,并结构化地打印出来。
+ *
+ * @param rawContent 从 Word 中提取的完整纯文本
+ */
+ public static LockWordPointVo parseAndPrintStructuredContent(String rawContent) {
+
+ var energyPattern = Pattern.compile("☑ ([^、☐\\s]+)");
+ var energyMatcher = energyPattern.matcher(rawContent);
+ var selectedEnergies = new ArrayList();
+ while (energyMatcher.find()) {
+ selectedEnergies.add(energyMatcher.group(1));
+ }
+
+ if (selectedEnergies.isEmpty()) {
+ log.info("未找到任何已勾选的能量项。");
+ } else {
+ log.info("已勾选的能量: " + String.join(", ", selectedEnergies));
+ }
+
+ LockWordPointVo lockWordPointVo = new LockWordPointVo();
+ // --- 2. 解析:上锁前准备 ---
+ String deviceLock = extractAndPrint("设备锁数量", rawContent, "准备设备锁:([^;]+);");
+ String repairBrand = extractAndPrint("停机大修牌数量", rawContent, "停机大修牌:([^;]+);");
+ String sixClip = extractAndPrint("6孔锁夹数量", rawContent, "6孔锁夹:([^;]+);");
+ String locking = extractAndPrint("上锁装置", rawContent, "上锁装置:([^\n\r]+)");
+ lockWordPointVo.setDeviceLock(deviceLock);
+ lockWordPointVo.setRepairBrand(repairBrand);
+ lockWordPointVo.setSixClip(sixClip);
+ lockWordPointVo.setLocking(locking);
+
+ // --- 3. 解析:表格数据 ---
+ var dataList = new ArrayList();
+ var lines = rawContent.split("\\r?\\n");
+ var isParsingTable = false;
+
+ for (var line : lines) {
+ var trimmedLine = line.trim();
+ if (trimmedLine.isEmpty()) continue;
+ if (trimmedLine.startsWith("验证方法")) break; // 表格内容结束
+
+ if (trimmedLine.contains("隔离序号") && trimmedLine.contains("隔离点编号")) {
+ isParsingTable = true;
+ continue; // 这是标题行,跳过
+ }
+
+ if (isParsingTable) {
+ var parts = trimmedLine.split("\t");
+ if (parts.length >= 4) { // 确保数据足够,避免数组越界
+ var data = new LockWordPointDataVo(parts[0], parts[1], parts[2], parts[3]);
+ dataList.add(data);
+ } else {
+ log.warn("检测到格式不正确的表格行,已跳过: {}", trimmedLine);
+ }
+ }
+ }
+
+ // 打印解析出的表格数据
+ if (dataList.isEmpty()) {
+ log.warn("未找到或未能解析出表格数据。");
+ } else {
+ lockWordPointVo.setDataVoList(dataList);
+ }
+ return lockWordPointVo;
+ }
+
+ /**
+ * 辅助方法:根据正则表达式从文本中提取信息并打印。
+ *
+ * @param label 信息的标签
+ * @param content 原始内容
+ * @param regex 正则表达式
+ */
+ private static String extractAndPrint(String label, String content, String regex) {
+ var pattern = Pattern.compile(regex);
+ var matcher = pattern.matcher(content);
+ String value = null;
+ if (matcher.find()) {
+ value = matcher.group(1).replaceAll("[把个]|至少", "").trim();
+ log.info(label + ": " + (value.isEmpty() ? "未填写" : value));
+ } else {
+ log.error(label + ": 未找到");
+ }
+ return value;
+ }
+ /**
+ * 使用 ExtractorFactory 自动识别上传的 Office 文件真实格式并提取纯文本。
+ * 该方法直接处理 MultipartFile,避免了先将文件存到本地的需要。
+ *
+ * @param multipartFile 要处理的上传文件 (e.g., .doc, .docx, .xls, .xlsx, .ppt, .pptx)
+ * @return 提取出的纯文本
+ * @throws Exception 如果文件处理失败,例如文件为空、无法识别格式或读取错误
+ */
+ public static String extractTextFromWord(MultipartFile multipartFile) throws Exception {
+ // 1. 校验文件是否为空,增加健壮性
+ if (multipartFile == null || multipartFile.isEmpty()) {
+ throw new IllegalArgumentException("文件不能为空。");
+ }
+
+ // 2. 使用 try-with-resources 确保 InputStream 和 Extractor 被自动关闭
+ // 直接从 MultipartFile 获取输入流,而不是从本地文件
+ try (InputStream inputStream = multipartFile.getInputStream();
+ POITextExtractor extractor = ExtractorFactory.createExtractor(inputStream)) {
+
+ if (extractor == null) {
+ // 3. 优化了异常提示信息
+ throw new IllegalArgumentException("无法识别的文件类型或文件已损坏。请确保是标准的Office格式。");
+ }
+ // 4. 返回提取的文本
+ return extractor.getText();
+ }
+ }
+
+ public static String extractTextFrom(File file) throws Exception {
+ // Java 7+ try-with-resources 自动关闭资源
+ try (InputStream inputStream = new FileInputStream(file);
+ POITextExtractor extractor = ExtractorFactory.createExtractor(inputStream)) {
+
+ if (extractor == null) {
+ throw new IllegalArgumentException("无法识别的文件类型,文件可能已损坏或非标准Office格式。");
+ }
+ return extractor.getText();
+ }
+ }
+}
+
+
diff --git a/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/vo/LockGuideSaveReqVO.java b/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/vo/LockGuideSaveReqVO.java
index e644835..93dd3f4 100644
--- a/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/vo/LockGuideSaveReqVO.java
+++ b/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/vo/LockGuideSaveReqVO.java
@@ -16,6 +16,18 @@ public class LockGuideSaveReqVO {
private String guideContent;
/**
+ * 隔离指导书名称
+ */
+ @Schema(description = "隔离指导书名称")
+ private String name;
+
+ /**
+ * 隔离计划编号
+ */
+ @Schema(description = "隔离计划编号")
+ private String code;
+
+ /**
* 集中挂牌人ID
*/
@Schema(description = "集中挂牌人ID")
diff --git a/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/vo/LockPageReqVO.java b/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/vo/LockPageReqVO.java
index 4c315e5..a47a4ff 100644
--- a/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/vo/LockPageReqVO.java
+++ b/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/vo/LockPageReqVO.java
@@ -20,10 +20,10 @@ public class LockPageReqVO extends PageParam {
private String lockName;
@Schema(description = "状态", example = "2")
- private String lockStatus;
+ private Integer lockStatus;
@Schema(description = "锁具类型", example = "1")
- private String lockType;
+ private Integer lockType;
@Schema(description = "启用状态: 0=未启用, 1=已启用", example = "2")
private Integer lockEnableStatus;
diff --git a/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/vo/LockRespVO.java b/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/vo/LockRespVO.java
index c4cfa8e..e65b338 100644
--- a/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/vo/LockRespVO.java
+++ b/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/vo/LockRespVO.java
@@ -30,11 +30,11 @@ public class LockRespVO {
@Schema(description = "状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
@ExcelProperty("状态")
- private String lockStatus;
+ private Integer lockStatus;
@Schema(description = "锁具类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
@ExcelProperty("锁具类型")
- private String lockType;
+ private Integer lockType;
@Schema(description = "启用状态: 0=未启用, 1=已启用", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
@ExcelProperty("启用状态: 0=未启用, 1=已启用")
diff --git a/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/vo/LockSaveReqVO.java b/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/vo/LockSaveReqVO.java
index 47382fd..87252af 100644
--- a/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/vo/LockSaveReqVO.java
+++ b/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/vo/LockSaveReqVO.java
@@ -23,11 +23,11 @@ public class LockSaveReqVO {
private String lockName;
@Schema(description = "状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
- private String lockStatus;
+ private Integer lockStatus;
@Schema(description = "锁具类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
////@NotEmpty(message = "锁具类型不能为空")
- private String lockType;
+ private Integer lockType;
@Schema(description = "启用状态: 0=未启用, 1=已启用", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
//@NotNull(message = "启用状态: 0=未启用, 1=已启用不能为空")
diff --git a/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/vo/LockStatusVo.java b/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/vo/LockStatusVo.java
new file mode 100644
index 0000000..231425d
--- /dev/null
+++ b/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/vo/LockStatusVo.java
@@ -0,0 +1,24 @@
+package cn.iocoder.yudao.module.lock.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+@Schema(description = "管理后台 - 电子锁修改")
+@Data
+public class LockStatusVo {
+
+ private Long planId;
+
+
+ private Long lockId;
+
+ private Long planItemDetailId;
+
+ private Long operateRecordld;
+
+ private Long verifyRecordId;
+
+ private Long lifelockId;
+
+
+}
diff --git a/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/vo/LockWordPointDataVo.java b/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/vo/LockWordPointDataVo.java
new file mode 100644
index 0000000..5c0187d
--- /dev/null
+++ b/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/vo/LockWordPointDataVo.java
@@ -0,0 +1,19 @@
+package cn.iocoder.yudao.module.lock.vo;
+
+import lombok.Data;
+
+@Data
+public class LockWordPointDataVo {
+
+ private String sequence;
+ private String isolationPointId;
+ private String deviceName;
+ private String location;
+
+ public LockWordPointDataVo(String sequence, String isolationPointId, String deviceName, String location) {
+ this.sequence = sequence != null ? sequence.trim() : "";
+ this.isolationPointId = isolationPointId != null ? isolationPointId.trim() : "";
+ this.deviceName = deviceName != null ? deviceName.trim() : "";
+ this.location = location != null ? location.trim() : "";
+ }
+}
diff --git a/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/vo/LockWordPointVo.java b/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/vo/LockWordPointVo.java
new file mode 100644
index 0000000..2ea4923
--- /dev/null
+++ b/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/vo/LockWordPointVo.java
@@ -0,0 +1,19 @@
+package cn.iocoder.yudao.module.lock.vo;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class LockWordPointVo {
+
+
+ private String deviceLock;
+ private String repairBrand;
+ private String sixClip;
+ private String locking;
+
+ private List dataVoList;
+
+
+}
diff --git a/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/vo/PlanLifeLockPageReqVO.java b/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/vo/PlanLifeLockPageReqVO.java
index 8d345d5..e3986d4 100644
--- a/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/vo/PlanLifeLockPageReqVO.java
+++ b/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/vo/PlanLifeLockPageReqVO.java
@@ -20,7 +20,7 @@ public class PlanLifeLockPageReqVO extends PageParam {
private Long userId;
@Schema(description = "生命锁类型", example = "2")
- private String lockType;
+ private Integer lockType;
@Schema(description = "锁定状态: 0=未上锁, 1=已上锁", example = "1")
private Integer lockStatus;
diff --git a/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/vo/PlanLifeLockRespVO.java b/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/vo/PlanLifeLockRespVO.java
index 0b25df1..dcd2e87 100644
--- a/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/vo/PlanLifeLockRespVO.java
+++ b/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/vo/PlanLifeLockRespVO.java
@@ -26,7 +26,7 @@ public class PlanLifeLockRespVO {
@Schema(description = "生命锁类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
@ExcelProperty("生命锁类型")
- private String lockType;
+ private Integer lockType;
@Schema(description = "锁定状态: 0=未上锁, 1=已上锁", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
@ExcelProperty("锁定状态: 0=未上锁, 1=已上锁")
diff --git a/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/vo/PlanLifeLockSaveReqVO.java b/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/vo/PlanLifeLockSaveReqVO.java
index 5271503..0b411f5 100644
--- a/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/vo/PlanLifeLockSaveReqVO.java
+++ b/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/vo/PlanLifeLockSaveReqVO.java
@@ -24,7 +24,7 @@ public class PlanLifeLockSaveReqVO {
@Schema(description = "生命锁类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
//@NotEmpty(message = "生命锁类型不能为空")
- private String lockType;
+ private Integer lockType;
@Schema(description = "锁定状态: 0=未上锁, 1=已上锁", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
//@NotNull(message = "锁定状态: 0=未上锁, 1=已上锁不能为空")
diff --git a/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/vo/PlanPageReqVO.java b/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/vo/PlanPageReqVO.java
index b5a9c39..63000e5 100644
--- a/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/vo/PlanPageReqVO.java
+++ b/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/vo/PlanPageReqVO.java
@@ -16,6 +16,13 @@ public class PlanPageReqVO extends PageParam {
@Schema(description = "计划名称", example = "张三")
private String ipName;
+
+ /**
+ * 计划状态
+ */
+ @Schema(description = "计划状态", example = "1")
+ private Integer status;
+
@Schema(description = "创建时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] createTime;
diff --git a/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/vo/PlanRespVO.java b/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/vo/PlanRespVO.java
index a5587f6..a1228d2 100644
--- a/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/vo/PlanRespVO.java
+++ b/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/vo/PlanRespVO.java
@@ -19,6 +19,9 @@ public class PlanRespVO {
@Schema(description = "计划名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三")
@ExcelProperty("计划名称")
private String ipName;
+ @Schema(description = "计划状态", example = "1")
+ @ExcelProperty("计划状态")
+ private Integer status;
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("创建时间")
diff --git a/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/vo/PlanSaveReqVO.java b/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/vo/PlanSaveReqVO.java
index 0d764fd..2829bff 100644
--- a/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/vo/PlanSaveReqVO.java
+++ b/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/vo/PlanSaveReqVO.java
@@ -1,5 +1,6 @@
package cn.iocoder.yudao.module.lock.vo;
+import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
@@ -13,7 +14,9 @@ public class PlanSaveReqVO {
private Long id;
@Schema(description = "计划名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三")
- @NotEmpty(message = "计划名称不能为空")
+ //@NotEmpty(message = "计划名称不能为空")
private String ipName;
+ @Schema(description = "计划状态", example = "1")
+ private Integer status;
}
\ No newline at end of file
diff --git a/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/controller/admin/IsolationPointController.java b/cc-admin-master/yudao-module-lock/src/main/resources/IsolationPointController.java
similarity index 94%
rename from cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/controller/admin/IsolationPointController.java
rename to cc-admin-master/yudao-module-lock/src/main/resources/IsolationPointController.java
index e900b69..f8aff91 100644
--- a/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/controller/admin/IsolationPointController.java
+++ b/cc-admin-master/yudao-module-lock/src/main/resources/IsolationPointController.java
@@ -41,14 +41,14 @@ public class IsolationPointController {
@PostMapping("/create")
@Operation(summary = "创建指导书与隔离点关联")
- @PreAuthorize("@ss.hasPermission('guide:isolation-point:create')")
+ //@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')")
+ //@PreAuthorize("@ss.hasPermission('guide:isolation-point:update')")
public CommonResult updateIsolationPoint(@Valid @RequestBody IsolationPointSaveReqVO updateReqVO) {
isolationPointService.updateIsolationPoint(updateReqVO);
return success(true);
@@ -75,7 +75,7 @@ public class IsolationPointController {
@GetMapping("/get")
@Operation(summary = "获得指导书与隔离点关联")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
- @PreAuthorize("@ss.hasPermission('guide:isolation-point:query')")
+ //@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));
@@ -83,7 +83,7 @@ public class IsolationPointController {
@GetMapping("/page")
@Operation(summary = "获得指导书与隔离点关联分页")
- @PreAuthorize("@ss.hasPermission('guide:isolation-point:query')")
+ //@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));
diff --git a/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/mapper/xml/IsolationPointMapper.xml b/cc-admin-master/yudao-module-lock/src/main/resources/mapper/IsolationPointMapper.xml
similarity index 100%
rename from cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/mapper/xml/IsolationPointMapper.xml
rename to cc-admin-master/yudao-module-lock/src/main/resources/mapper/IsolationPointMapper.xml
diff --git a/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/mapper/xml/LockGuideMapper.xml b/cc-admin-master/yudao-module-lock/src/main/resources/mapper/LockGuideMapper.xml
similarity index 100%
rename from cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/mapper/xml/LockGuideMapper.xml
rename to cc-admin-master/yudao-module-lock/src/main/resources/mapper/LockGuideMapper.xml
diff --git a/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/mapper/xml/LockMapper.xml b/cc-admin-master/yudao-module-lock/src/main/resources/mapper/LockMapper.xml
similarity index 78%
rename from cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/mapper/xml/LockMapper.xml
rename to cc-admin-master/yudao-module-lock/src/main/resources/mapper/LockMapper.xml
index c30471d..3f21fb1 100644
--- a/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/mapper/xml/LockMapper.xml
+++ b/cc-admin-master/yudao-module-lock/src/main/resources/mapper/LockMapper.xml
@@ -7,4 +7,9 @@
无法满足的场景,例如说多表关联查询,才使用 XML 编写 SQL。
代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。 -->
+
+ UPDATE electron_lock
+ SET lock_status = #{status}
+ WHERE id = #{id}
+
\ No newline at end of file
diff --git a/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/mapper/xml/LockWordRecordMapper.xml b/cc-admin-master/yudao-module-lock/src/main/resources/mapper/LockWordRecordMapper.xml
similarity index 100%
rename from cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/mapper/xml/LockWordRecordMapper.xml
rename to cc-admin-master/yudao-module-lock/src/main/resources/mapper/LockWordRecordMapper.xml
diff --git a/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/mapper/xml/PlanItemDetailMapper.xml b/cc-admin-master/yudao-module-lock/src/main/resources/mapper/PlanItemDetailMapper.xml
similarity index 50%
rename from cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/mapper/xml/PlanItemDetailMapper.xml
rename to cc-admin-master/yudao-module-lock/src/main/resources/mapper/PlanItemDetailMapper.xml
index 0c46558..373f59f 100644
--- a/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/mapper/xml/PlanItemDetailMapper.xml
+++ b/cc-admin-master/yudao-module-lock/src/main/resources/mapper/PlanItemDetailMapper.xml
@@ -9,4 +9,23 @@
文档可见:https://www.iocoder.cn/MyBatis/x-plugins/
-->
+
+
+ UPDATE isolation_plan_item_detail
+
+
+ lock_status = #{status},
+
+
+ lock_id = #{lockId},
+
+
+ operate_record_id = #{operateRecordId},
+
+
+ verify_record_id = #{verifyRecordId}
+
+
+ WHERE id = #{planItemDetailId}
+
\ No newline at end of file
diff --git a/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/mapper/xml/PlanItemMapper.xml b/cc-admin-master/yudao-module-lock/src/main/resources/mapper/PlanItemMapper.xml
similarity index 77%
rename from cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/mapper/xml/PlanItemMapper.xml
rename to cc-admin-master/yudao-module-lock/src/main/resources/mapper/PlanItemMapper.xml
index 6361ba0..2bd1cbc 100644
--- a/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/mapper/xml/PlanItemMapper.xml
+++ b/cc-admin-master/yudao-module-lock/src/main/resources/mapper/PlanItemMapper.xml
@@ -9,4 +9,11 @@
文档可见:https://www.iocoder.cn/MyBatis/x-plugins/
-->
+
+
+ update isolation_plan_item
+ set status = #{status}
+ where id = #{isolationPlanItemId}
+
+
\ No newline at end of file
diff --git a/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/mapper/xml/PlanLifeLockMapper.xml b/cc-admin-master/yudao-module-lock/src/main/resources/mapper/PlanLifeLockMapper.xml
similarity index 75%
rename from cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/mapper/xml/PlanLifeLockMapper.xml
rename to cc-admin-master/yudao-module-lock/src/main/resources/mapper/PlanLifeLockMapper.xml
index c567c27..a3eb7a1 100644
--- a/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/mapper/xml/PlanLifeLockMapper.xml
+++ b/cc-admin-master/yudao-module-lock/src/main/resources/mapper/PlanLifeLockMapper.xml
@@ -9,4 +9,12 @@
文档可见:https://www.iocoder.cn/MyBatis/x-plugins/
-->
+
+
+ UPDATE isolation_plan_life_lock
+ SET lock_status = #{status},
+ unlock_time = #{unlockTime}
+ WHERE id = #{id}
+
+
\ No newline at end of file
diff --git a/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/mapper/xml/PlanMapper.xml b/cc-admin-master/yudao-module-lock/src/main/resources/mapper/PlanMapper.xml
similarity index 80%
rename from cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/mapper/xml/PlanMapper.xml
rename to cc-admin-master/yudao-module-lock/src/main/resources/mapper/PlanMapper.xml
index da8da92..6353a74 100644
--- a/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/mapper/xml/PlanMapper.xml
+++ b/cc-admin-master/yudao-module-lock/src/main/resources/mapper/PlanMapper.xml
@@ -9,4 +9,10 @@
文档可见:https://www.iocoder.cn/MyBatis/x-plugins/
-->
+
+
+ UPDATE isolation_plan
+ SET status = #{status}
+ WHERE id = #{planId}
+
\ No newline at end of file
diff --git a/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/mapper/xml/PointMapper.xml b/cc-admin-master/yudao-module-lock/src/main/resources/mapper/PointMapper.xml
similarity index 69%
rename from cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/mapper/xml/PointMapper.xml
rename to cc-admin-master/yudao-module-lock/src/main/resources/mapper/PointMapper.xml
index 04d11ad..32c6aca 100644
--- a/cc-admin-master/yudao-module-lock/src/main/java/cn/iocoder/yudao/module/lock/mapper/xml/PointMapper.xml
+++ b/cc-admin-master/yudao-module-lock/src/main/resources/mapper/PointMapper.xml
@@ -9,4 +9,14 @@
文档可见:https://www.iocoder.cn/MyBatis/x-plugins/
-->
+
+
+ UPDATE isolation_point
+ SET status = #{status}
+ WHERE id IN
+
+ #{item}
+
+
\ No newline at end of file
diff --git a/cc-admin-master/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthRegisterReqVO.java b/cc-admin-master/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthRegisterReqVO.java
index bcfc3ef..65a930a 100644
--- a/cc-admin-master/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthRegisterReqVO.java
+++ b/cc-admin-master/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthRegisterReqVO.java
@@ -3,6 +3,7 @@ package cn.iocoder.yudao.module.system.controller.admin.auth.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
+import org.checkerframework.checker.units.qual.min;
import org.hibernate.validator.constraints.Length;
import jakarta.validation.constraints.*;
@@ -26,4 +27,13 @@ public class AuthRegisterReqVO extends CaptchaVerificationReqVO {
@NotEmpty(message = "密码不能为空")
@Length(min = 4, max = 16, message = "密码长度为 4-16 位")
private String password;
+
+ @Schema(description = "手机号", requiredMode = Schema.RequiredMode.REQUIRED, example = "123456")
+ @NotEmpty(message = "手机号")
+ @Size(min = 5, max = 18, message = "手机号长度为 5-18 个字符")
+ @Pattern(regexp = "^1[3-9]\\d{9}$", message = "手机号格式不正确")
+ private String mobile;
+
+ @Schema(description = "注册类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
+ private Integer type;
}
\ No newline at end of file
diff --git a/cc-admin-master/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserSimpleRespVO.java b/cc-admin-master/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserSimpleRespVO.java
index 6dac286..69833e5 100644
--- a/cc-admin-master/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserSimpleRespVO.java
+++ b/cc-admin-master/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserSimpleRespVO.java
@@ -19,7 +19,10 @@ public class UserSimpleRespVO {
@Schema(description = "部门ID", example = "我是一个用户")
private Long deptId;
+
@Schema(description = "部门名称", example = "IT 部")
private String deptName;
+ @Schema(description = "部门名称", example = "IT 部")
+ private String mobile;
}
diff --git a/cc-admin-master/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/auth/AdminAuthServiceImpl.java b/cc-admin-master/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/auth/AdminAuthServiceImpl.java
index b1aac03..60a9e99 100644
--- a/cc-admin-master/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/auth/AdminAuthServiceImpl.java
+++ b/cc-admin-master/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/auth/AdminAuthServiceImpl.java
@@ -21,6 +21,7 @@ import cn.iocoder.yudao.module.system.enums.sms.SmsSceneEnum;
import cn.iocoder.yudao.module.system.service.logger.LoginLogService;
import cn.iocoder.yudao.module.system.service.member.MemberService;
import cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenService;
+import cn.iocoder.yudao.module.system.service.permission.PermissionService;
import cn.iocoder.yudao.module.system.service.social.SocialUserService;
import cn.iocoder.yudao.module.system.service.user.AdminUserService;
import com.anji.captcha.model.common.ResponseModel;
@@ -35,11 +36,14 @@ import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
+import java.util.HashSet;
import java.util.Objects;
+import java.util.Set;
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
import static cn.iocoder.yudao.framework.common.util.servlet.ServletUtils.getClientIP;
import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.*;
+import static java.util.Collections.singleton;
/**
* Auth Service 实现类
@@ -67,7 +71,8 @@ public class AdminAuthServiceImpl implements AdminAuthService {
private SmsCodeApi smsCodeApi;
@Resource
private SocialUserService socialUserService;
-
+ @Resource
+ private PermissionService permissionService;
/**
* 验证码的开关,默认为 true
*/
@@ -265,6 +270,10 @@ public class AdminAuthServiceImpl implements AdminAuthService {
// 2. 校验用户名是否已存在
Long userId = userService.registerUser(registerReqVO);
+ // 分配角色
+ if (1 == registerReqVO.getType()){
+ permissionService.assignUserRole(userId, singleton(164L));
+ }
// 3. 创建 Token 令牌,记录登录日志
return createTokenAfterLoginSuccess(userId, registerReqVO.getUsername(), LoginLogTypeEnum.LOGIN_USERNAME);
diff --git a/cc-admin-master/yudao-server/pom.xml b/cc-admin-master/yudao-server/pom.xml
index 663b099..7ed1cb6 100644
--- a/cc-admin-master/yudao-server/pom.xml
+++ b/cc-admin-master/yudao-server/pom.xml
@@ -72,7 +72,7 @@
- ${project.artifactId}
+ lock-server