feat(ops): 新增安保模块数据模型与 Mapper
新增安保区域人员绑定表 ops_area_security_user 和安保工单扩展表 ops_order_security_ext,以及对应的 DO 和 Mapper 接口。 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,58 @@
|
||||
package com.viewsh.module.ops.security.dal.dataobject.area;
|
||||
|
||||
import com.viewsh.framework.mybatis.core.dataobject.BaseDO;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.*;
|
||||
|
||||
/**
|
||||
* 区域-安保人员绑定 DO
|
||||
*
|
||||
* @author lzh
|
||||
*/
|
||||
@TableName("ops_area_security_user")
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class OpsAreaSecurityUserDO extends BaseDO {
|
||||
|
||||
/**
|
||||
* 主键
|
||||
*/
|
||||
@TableId
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 区域ID,关联 ops_bus_area.id
|
||||
*/
|
||||
private Long areaId;
|
||||
|
||||
/**
|
||||
* 安保人员用户ID,关联 system_users.id
|
||||
*/
|
||||
private Long userId;
|
||||
|
||||
/**
|
||||
* 安保人员姓名(冗余)
|
||||
*/
|
||||
private String userName;
|
||||
|
||||
/**
|
||||
* 所属班组ID
|
||||
*/
|
||||
private Long teamId;
|
||||
|
||||
/**
|
||||
* 是否启用
|
||||
*/
|
||||
private Boolean enabled;
|
||||
|
||||
/**
|
||||
* 排序值
|
||||
*/
|
||||
private Integer sort;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,100 @@
|
||||
package com.viewsh.module.ops.security.dal.dataobject.workorder;
|
||||
|
||||
import com.viewsh.framework.mybatis.core.dataobject.BaseDO;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.*;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* 安保工单扩展 DO
|
||||
*
|
||||
* @author lzh
|
||||
*/
|
||||
@TableName("ops_order_security_ext")
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class OpsOrderSecurityExtDO extends BaseDO {
|
||||
|
||||
/**
|
||||
* 主键
|
||||
*/
|
||||
@TableId
|
||||
private Long id;
|
||||
/**
|
||||
* 工单ID
|
||||
*
|
||||
* 关联 {@link com.viewsh.module.ops.dal.dataobject.workorder.OpsOrderDO#getId()}
|
||||
*/
|
||||
private Long opsOrderId;
|
||||
|
||||
// ==================== 告警来源 ====================
|
||||
|
||||
/**
|
||||
* 关联告警ID(告警工单必填,手动工单可空)
|
||||
*/
|
||||
private String alarmId;
|
||||
/**
|
||||
* 告警类型(intrusion=入侵/leave_post=离岗/fire=火灾/fence=越界)
|
||||
*/
|
||||
private String alarmType;
|
||||
/**
|
||||
* 摄像头ID
|
||||
*/
|
||||
private String cameraId;
|
||||
/**
|
||||
* ROI区域ID
|
||||
*/
|
||||
private String roiId;
|
||||
/**
|
||||
* 告警截图URL
|
||||
*/
|
||||
private String imageUrl;
|
||||
|
||||
// ==================== 处理人信息(冗余快照) ====================
|
||||
|
||||
/**
|
||||
* 处理人user_id
|
||||
*/
|
||||
private Long assignedUserId;
|
||||
/**
|
||||
* 处理人姓名
|
||||
*/
|
||||
private String assignedUserName;
|
||||
/**
|
||||
* 班组ID
|
||||
*/
|
||||
private Long assignedTeamId;
|
||||
|
||||
// ==================== 处理结果(完成时提交) ====================
|
||||
|
||||
/**
|
||||
* 处理结果描述
|
||||
*/
|
||||
private String result;
|
||||
/**
|
||||
* 处理结果图片URL,JSON数组
|
||||
*/
|
||||
private String resultImgUrls;
|
||||
|
||||
// ==================== 关键时间点 ====================
|
||||
|
||||
/**
|
||||
* 派单时间
|
||||
*/
|
||||
private LocalDateTime dispatchedTime;
|
||||
/**
|
||||
* 确认时间
|
||||
*/
|
||||
private LocalDateTime confirmedTime;
|
||||
/**
|
||||
* 完成时间
|
||||
*/
|
||||
private LocalDateTime completedTime;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
package com.viewsh.module.ops.security.dal.mysql.area;
|
||||
|
||||
import com.viewsh.framework.mybatis.core.mapper.BaseMapperX;
|
||||
import com.viewsh.module.ops.security.dal.dataobject.area.OpsAreaSecurityUserDO;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 区域-安保人员绑定 Mapper
|
||||
*
|
||||
* @author lzh
|
||||
*/
|
||||
@Mapper
|
||||
public interface OpsAreaSecurityUserMapper extends BaseMapperX<OpsAreaSecurityUserDO> {
|
||||
|
||||
/**
|
||||
* 查询区域内所有启用的安保人员
|
||||
*/
|
||||
default List<OpsAreaSecurityUserDO> selectListByAreaId(Long areaId) {
|
||||
return selectList(new LambdaQueryWrapper<OpsAreaSecurityUserDO>()
|
||||
.eq(OpsAreaSecurityUserDO::getAreaId, areaId)
|
||||
.eq(OpsAreaSecurityUserDO::getEnabled, true)
|
||||
.orderByAsc(OpsAreaSecurityUserDO::getSort));
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据区域ID和用户ID查询(唯一性校验用)
|
||||
*/
|
||||
default OpsAreaSecurityUserDO selectByAreaIdAndUserId(Long areaId, Long userId) {
|
||||
return selectOne(new LambdaQueryWrapper<OpsAreaSecurityUserDO>()
|
||||
.eq(OpsAreaSecurityUserDO::getAreaId, areaId)
|
||||
.eq(OpsAreaSecurityUserDO::getUserId, userId));
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
package com.viewsh.module.ops.security.dal.mysql.workorder;
|
||||
|
||||
import com.viewsh.framework.mybatis.core.mapper.BaseMapperX;
|
||||
import com.viewsh.module.ops.security.dal.dataobject.workorder.OpsOrderSecurityExtDO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
/**
|
||||
* 安保工单扩展 Mapper
|
||||
*
|
||||
* @author lzh
|
||||
*/
|
||||
@Mapper
|
||||
public interface OpsOrderSecurityExtMapper extends BaseMapperX<OpsOrderSecurityExtDO> {
|
||||
|
||||
/**
|
||||
* 根据工单ID查询扩展信息
|
||||
*/
|
||||
default OpsOrderSecurityExtDO selectByOpsOrderId(Long opsOrderId) {
|
||||
return selectOne(OpsOrderSecurityExtDO::getOpsOrderId, opsOrderId);
|
||||
}
|
||||
|
||||
/**
|
||||
* 插入或选择性更新扩展信息
|
||||
* <p>
|
||||
* 已存在时按 ID 更新,不存在时插入
|
||||
*/
|
||||
default int insertOrUpdateSelective(OpsOrderSecurityExtDO entity) {
|
||||
OpsOrderSecurityExtDO existing = selectByOpsOrderId(entity.getOpsOrderId());
|
||||
if (existing == null) {
|
||||
return insert(entity);
|
||||
} else {
|
||||
entity.setId(existing.getId());
|
||||
return updateById(entity);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user