From c20a42f68a6b9c170d94f3e2939c7cb257bf2436 Mon Sep 17 00:00:00 2001 From: lzh Date: Thu, 19 Mar 2026 09:22:25 +0800 Subject: [PATCH] =?UTF-8?q?feat(ops):=20=E5=B7=A1=E6=A3=80=E8=AE=B0?= =?UTF-8?q?=E5=BD=95=E6=96=B0=E5=A2=9E=E5=BF=AB=E6=8D=B7=E6=A0=87=E7=AD=BE?= =?UTF-8?q?=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 巡检主记录和明细项新增 tags 字段(JSON 数组),支持巡检员在提交时 选择预设的快捷标签(如"地面污渍"、"垃圾未清理"),便于后续统计分析。 Co-Authored-By: Claude Opus 4.6 (1M context) --- sql/mysql/aiot_ops_inspection.sql | 8 ++++++++ .../admin/inspection/vo/InspectionSubmitItemVO.java | 7 +++++++ .../admin/inspection/vo/InspectionSubmitReqVO.java | 5 +++++ .../dataobject/inspection/OpsInspectionRecordDO.java | 11 ++++++++++- .../inspection/OpsInspectionRecordItemDO.java | 11 ++++++++++- 5 files changed, 40 insertions(+), 2 deletions(-) diff --git a/sql/mysql/aiot_ops_inspection.sql b/sql/mysql/aiot_ops_inspection.sql index 6e771cc..36258e6 100644 --- a/sql/mysql/aiot_ops_inspection.sql +++ b/sql/mysql/aiot_ops_inspection.sql @@ -37,6 +37,7 @@ CREATE TABLE `ops_inspection_record` ( `stay_duration` int COMMENT '归属判定-保洁员停留时长(秒)', `attribution_result` tinyint COMMENT '归属判定结果(1个人责任 2突发状况 3正常)', `generated_order_id` bigint COMMENT '整改工单ID', + `tags` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '快捷标签JSON数组', `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '创建者', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '更新者', @@ -59,6 +60,7 @@ CREATE TABLE `ops_inspection_record_item` ( `template_id` bigint NOT NULL COMMENT '模板检查项ID', `is_passed` bit(1) NOT NULL DEFAULT b'1' COMMENT '是否合格', `remark` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '备注', + `tags` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '快捷标签JSON数组', `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '创建者', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '更新者', @@ -69,3 +71,9 @@ CREATE TABLE `ops_inspection_record_item` ( KEY `idx_record_id` (`record_id`), KEY `idx_template_id` (`template_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='巡检明细'; + +-- ---------------------------- +-- 增量变更:新增快捷标签字段 +-- ---------------------------- +ALTER TABLE `ops_inspection_record` ADD COLUMN `tags` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '快捷标签JSON数组'; +ALTER TABLE `ops_inspection_record_item` ADD COLUMN `tags` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '快捷标签JSON数组'; diff --git a/viewsh-module-ops/viewsh-module-environment-biz/src/main/java/com/viewsh/module/ops/environment/controller/admin/inspection/vo/InspectionSubmitItemVO.java b/viewsh-module-ops/viewsh-module-environment-biz/src/main/java/com/viewsh/module/ops/environment/controller/admin/inspection/vo/InspectionSubmitItemVO.java index 1458422..1d1a6cd 100644 --- a/viewsh-module-ops/viewsh-module-environment-biz/src/main/java/com/viewsh/module/ops/environment/controller/admin/inspection/vo/InspectionSubmitItemVO.java +++ b/viewsh-module-ops/viewsh-module-environment-biz/src/main/java/com/viewsh/module/ops/environment/controller/admin/inspection/vo/InspectionSubmitItemVO.java @@ -2,8 +2,11 @@ package com.viewsh.module.ops.environment.controller.admin.inspection.vo; import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Size; import lombok.Data; +import java.util.List; + @Schema(description = "管理后台 - 巡检提交明细项 VO") @Data public class InspectionSubmitItemVO { @@ -19,4 +22,8 @@ public class InspectionSubmitItemVO { @Schema(description = "备注", example = "地面有明显污渍") private String remark; + @Schema(description = "快捷标签", example = "[\"地面污渍\",\"垃圾未清理\"]") + @Size(max = 10, message = "标签数量不能超过10个") + private List<@Size(max = 32, message = "单个标签长度不能超过32") String> tags; + } diff --git a/viewsh-module-ops/viewsh-module-environment-biz/src/main/java/com/viewsh/module/ops/environment/controller/admin/inspection/vo/InspectionSubmitReqVO.java b/viewsh-module-ops/viewsh-module-environment-biz/src/main/java/com/viewsh/module/ops/environment/controller/admin/inspection/vo/InspectionSubmitReqVO.java index 6f94e81..039ac1c 100644 --- a/viewsh-module-ops/viewsh-module-environment-biz/src/main/java/com/viewsh/module/ops/environment/controller/admin/inspection/vo/InspectionSubmitReqVO.java +++ b/viewsh-module-ops/viewsh-module-environment-biz/src/main/java/com/viewsh/module/ops/environment/controller/admin/inspection/vo/InspectionSubmitReqVO.java @@ -4,6 +4,7 @@ import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.Valid; import jakarta.validation.constraints.NotEmpty; import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Size; import lombok.Data; import java.util.List; @@ -23,6 +24,10 @@ public class InspectionSubmitReqVO { @Schema(description = "备注", example = "卫生间地面有污渍") private String remark; + @Schema(description = "快捷标签", example = "[\"地面污渍\",\"垃圾未清理\"]") + @Size(max = 10, message = "标签数量不能超过10个") + private List<@Size(max = 32, message = "单个标签长度不能超过32") String> tags; + @Schema(description = "巡检明细项列表", requiredMode = Schema.RequiredMode.REQUIRED) @NotEmpty(message = "巡检明细项不能为空") @Valid diff --git a/viewsh-module-ops/viewsh-module-environment-biz/src/main/java/com/viewsh/module/ops/environment/dal/dataobject/inspection/OpsInspectionRecordDO.java b/viewsh-module-ops/viewsh-module-environment-biz/src/main/java/com/viewsh/module/ops/environment/dal/dataobject/inspection/OpsInspectionRecordDO.java index cc420de..6bb3678 100644 --- a/viewsh-module-ops/viewsh-module-environment-biz/src/main/java/com/viewsh/module/ops/environment/dal/dataobject/inspection/OpsInspectionRecordDO.java +++ b/viewsh-module-ops/viewsh-module-environment-biz/src/main/java/com/viewsh/module/ops/environment/dal/dataobject/inspection/OpsInspectionRecordDO.java @@ -2,14 +2,18 @@ package com.viewsh.module.ops.environment.dal.dataobject.inspection; import com.viewsh.framework.mybatis.core.dataobject.BaseDO; import com.baomidou.mybatisplus.annotation.KeySequence; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler; import lombok.*; +import java.util.List; + /** * 巡检主记录 DO */ -@TableName("ops_inspection_record") +@TableName(value = "ops_inspection_record", autoResultMap = true) @KeySequence("ops_inspection_record_seq") @Data @EqualsAndHashCode(callSuper = true) @@ -60,5 +64,10 @@ public class OpsInspectionRecordDO extends BaseDO { * 整改工单ID */ private Long generatedOrderId; + /** + * 快捷标签 + */ + @TableField(typeHandler = JacksonTypeHandler.class) + private List tags; } diff --git a/viewsh-module-ops/viewsh-module-environment-biz/src/main/java/com/viewsh/module/ops/environment/dal/dataobject/inspection/OpsInspectionRecordItemDO.java b/viewsh-module-ops/viewsh-module-environment-biz/src/main/java/com/viewsh/module/ops/environment/dal/dataobject/inspection/OpsInspectionRecordItemDO.java index 03c320f..b23d4b0 100644 --- a/viewsh-module-ops/viewsh-module-environment-biz/src/main/java/com/viewsh/module/ops/environment/dal/dataobject/inspection/OpsInspectionRecordItemDO.java +++ b/viewsh-module-ops/viewsh-module-environment-biz/src/main/java/com/viewsh/module/ops/environment/dal/dataobject/inspection/OpsInspectionRecordItemDO.java @@ -2,14 +2,18 @@ package com.viewsh.module.ops.environment.dal.dataobject.inspection; import com.viewsh.framework.mybatis.core.dataobject.BaseDO; import com.baomidou.mybatisplus.annotation.KeySequence; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler; import lombok.*; +import java.util.List; + /** * 巡检明细 DO */ -@TableName("ops_inspection_record_item") +@TableName(value = "ops_inspection_record_item", autoResultMap = true) @KeySequence("ops_inspection_record_item_seq") @Data @EqualsAndHashCode(callSuper = true) @@ -40,5 +44,10 @@ public class OpsInspectionRecordItemDO extends BaseDO { * 备注 */ private String remark; + /** + * 快捷标签 + */ + @TableField(typeHandler = JacksonTypeHandler.class) + private List tags; }