refactor(ops): 提取 AreaPathBuilder 公共组件,消除保洁/安保 buildAreaPath 重复代码

将 CleanOrderServiceImpl 中的 buildAreaPath 私有方法提取到 ops-biz 公共层
AreaPathBuilder 组件,供各业务模块(保洁、安保等)共享使用。同时优化:
- 用正则 matches("\d+") 替代 try-catch NumberFormatException 做数字校验
- 增加相邻重复ID去重保护

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
lzh
2026-03-15 10:30:03 +08:00
parent 2a20f7a89f
commit 825c8eecca
5 changed files with 174 additions and 96 deletions

View File

@@ -0,0 +1,20 @@
package com.viewsh.module.ops.controller.admin.security.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
/**
* 安保工单误报请求 VO
*
* @author lzh
*/
@Schema(description = "安保工单误报请求")
@Data
public class SecurityOrderFalseAlarmReqVO {
@Schema(description = "工单ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1001")
@NotNull(message = "工单ID不能为空")
private Long orderId;
}

View File

@@ -0,0 +1,22 @@
package com.viewsh.module.ops.controller.admin.security.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
/**
* 安保工单 - 仅含工单ID的通用请求 VO
* <p>
* 用于误报标记、开放接口确认等只需要工单ID的场景
*
* @author lzh
*/
@Schema(description = "安保工单ID请求")
@Data
public class SecurityOrderIdReqVO {
@Schema(description = "工单ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1001")
@NotNull(message = "工单ID不能为空")
private Long orderId;
}

View File

@@ -0,0 +1,20 @@
package com.viewsh.module.ops.controller.admin.security.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
/**
* 安保工单开放接口确认请求 VO无需传 userId默认使用已分配人员
*
* @author lzh
*/
@Schema(description = "安保工单确认请求(开放接口)")
@Data
public class SecurityOrderOpenConfirmReqVO {
@Schema(description = "工单ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1001")
@NotNull(message = "工单ID不能为空")
private Long orderId;
}