package com.vincent.rsf.server.system.entity; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableLogic; import com.baomidou.mybatisplus.annotation.TableName; import com.fasterxml.jackson.annotation.JsonFormat; import com.vincent.rsf.framework.common.Cools; import com.vincent.rsf.framework.common.SpringUtils; import com.vincent.rsf.server.ai.constant.AiSceneCode; import com.vincent.rsf.server.system.service.TenantService; import com.vincent.rsf.server.system.service.UserService; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.experimental.Accessors; import org.springframework.format.annotation.DateTimeFormat; import java.io.Serializable; import java.text.SimpleDateFormat; import java.util.Date; @Data @Accessors(chain = true) @TableName("sys_ai_diagnosis_record") public class AiDiagnosisRecord implements Serializable { private static final long serialVersionUID = 1L; @ApiModelProperty(value = "ID") @TableId(value = "id", type = IdType.AUTO) private Long id; @ApiModelProperty(value = "诊断编号") private String diagnosisNo; @ApiModelProperty(value = "会话ID") private String sessionId; @ApiModelProperty(value = "场景编码") private String sceneCode; @ApiModelProperty(value = "问题") private String question; @ApiModelProperty(value = "结论") private String conclusion; @ApiModelProperty(value = "报告标题") private String reportTitle; @ApiModelProperty(value = "执行摘要") private String executiveSummary; @ApiModelProperty(value = "证据摘要") private String evidenceSummary; @ApiModelProperty(value = "建议动作") private String actionSummary; @ApiModelProperty(value = "风险评估") private String riskSummary; @ApiModelProperty(value = "报告Markdown") private String reportMarkdown; @ApiModelProperty(value = "工具摘要") private String toolSummary; @ApiModelProperty(value = "模型编码") private String modelCode; @ApiModelProperty(value = "结果 2:运行中 1:成功 0:失败") private Integer result; @ApiModelProperty(value = "错误信息") private String err; @ApiModelProperty(value = "开始时间") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date startTime; @ApiModelProperty(value = "结束时间") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date endTime; @ApiModelProperty(value = "耗时毫秒") private Long spendTime; @ApiModelProperty(value = "状态 1:正常 0:冻结") private Integer status; @ApiModelProperty(value = "是否删除 1:是 0:否") @TableLogic private Integer deleted; @ApiModelProperty(value = "租户") private Long tenantId; @ApiModelProperty(value = "用户") private Long userId; @ApiModelProperty(value = "创建时间") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date createTime; @ApiModelProperty(value = "更新时间") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date updateTime; public String getSceneCode$() { if (AiSceneCode.SYSTEM_DIAGNOSE.equals(this.sceneCode)) { return "系统诊断"; } if (AiSceneCode.GENERAL_CHAT.equals(this.sceneCode)) { return "通用对话"; } return this.sceneCode; } public String getResult$() { if (this.result == null) { return null; } if (Integer.valueOf(2).equals(this.result)) { return "运行中"; } if (Integer.valueOf(1).equals(this.result)) { return "成功"; } if (Integer.valueOf(0).equals(this.result)) { return "失败"; } return String.valueOf(this.result); } public String getUserId$() { UserService service = SpringUtils.getBean(UserService.class); User user = service.getById(this.userId); if (!Cools.isEmpty(user)) { return String.valueOf(user.getNickname()); } return null; } public String getTenantId$() { TenantService service = SpringUtils.getBean(TenantService.class); Tenant tenant = service.getById(this.tenantId); if (!Cools.isEmpty(tenant)) { return String.valueOf(tenant.getName()); } return null; } public String getStartTime$() { if (Cools.isEmpty(this.startTime)) { return ""; } return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.startTime); } public String getEndTime$() { if (Cools.isEmpty(this.endTime)) { return ""; } return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.endTime); } }