From f87760efbc6b10685540a003e1d4ae7e4d9d00fa Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期五, 23 一月 2026 14:11:51 +0800
Subject: [PATCH] 大屏项目接口

---
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/ProjectController.java             |    8 
 ruoyi-system/src/main/java/com/ruoyi/system/service/RecordService.java                    |    2 
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/RecordServiceImpl.java           |   21 ++
 ruoyi-system/src/main/java/com/ruoyi/system/vo/ProblemVo.java                             |    7 
 /dev/null                                                                                 |  264 ---------------------------------
 ruoyi-system/src/main/java/com/ruoyi/system/model/AccidentBrief.java                      |    4 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/EntrustProjectController.java      |    6 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/DashboardStatisticsController.java |   44 ++++
 ruoyi-system/src/main/resources/mapper/system/RecordMapper.xml                            |   24 ++
 ruoyi-system/src/main/java/com/ruoyi/system/model/ErrorReview.java                        |   62 +++++++
 ruoyi-system/src/main/java/com/ruoyi/system/mapper/RecordMapper.java                      |    9 +
 ruoyi-common/src/main/java/com/ruoyi/common/core/controller/FileController.java           |    4 
 12 files changed, 172 insertions(+), 283 deletions(-)

diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/DashboardStatisticsController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/DashboardStatisticsController.java
index bf4ca17..1cec76a 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/DashboardStatisticsController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/DashboardStatisticsController.java
@@ -23,6 +23,7 @@
 
 import java.util.HashMap;
 import java.util.List;
+import java.util.Optional;
 
 /**
  * 数据统计面板 前端控制器
@@ -36,8 +37,6 @@
 @RequiredArgsConstructor(onConstructor_ = @Lazy)
 public class DashboardStatisticsController {
 
-    @Autowired
-    private ScreenAccountService screenAccountService;
 
     @Autowired
     private TokenService tokenService;
@@ -54,6 +53,8 @@
     @Autowired
     private AccidentBriefService accidentBriefService;
 
+    @Autowired
+    private AccidentClassificationService accidentClassificationService;
 
 
     @ApiOperation("获取当前登录信息")
@@ -99,10 +100,10 @@
 
 
     @ApiOperation(value = "获取故事简讯列表",response = AccidentBrief.class)
-    @PostMapping("/getStoryList")
-    public R<Page<AccidentBrief>> getStoryList(@RequestBody StoryListQuery query) {
+    @PostMapping("/getStoryPage")
+    public R<Page<AccidentBrief>> getStoryPage(@RequestBody StoryListQuery query) {
         Page<AccidentBrief> page = new Page<>(query.getPageNum(), query.getPageSize());
-
+        List<AccidentClassification> list = accidentClassificationService.list(new LambdaQueryWrapper<AccidentClassification>().eq(AccidentClassification::getDeleted, false));
         LambdaQueryWrapper<AccidentBrief> wrapper = new LambdaQueryWrapper<>();
         wrapper.eq(AccidentBrief::getState,1);
         if(query.getCity()!=null && !query.getCity().isEmpty()){
@@ -121,6 +122,39 @@
         }
         wrapper.orderByDesc(AccidentBrief::getTime);
         Page<AccidentBrief> accidentBriefPage = accidentBriefService.page(page, wrapper);
+        accidentBriefPage.getRecords().forEach(item->{
+            item.setClassifyName(list.stream().filter(classify->classify.getId().equals(item.getClassifyId())).findFirst().get().getName());
+        });
+        return R.ok(accidentBriefPage);
+    }
+
+
+
+    @ApiOperation(value = "获取故事简讯列表-不分页",response = AccidentBrief.class)
+    @PostMapping("/getStoryList")
+    public R<List<AccidentBrief>> getStoryList(@RequestBody StoryListQuery query) {
+        List<AccidentClassification> list = accidentClassificationService.list(new LambdaQueryWrapper<AccidentClassification>().eq(AccidentClassification::getDeleted, false));
+        LambdaQueryWrapper<AccidentBrief> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(AccidentBrief::getState,1);
+        if(query.getCity()!=null && !query.getCity().isEmpty()){
+            wrapper.eq(AccidentBrief::getCity, query.getCity());
+        }
+        if(query.getClassifyId()!=null){
+            wrapper.eq(AccidentBrief::getClassifyId, query.getClassifyId());
+        }
+        if(query.getTime()!=null && !query.getTime().isEmpty()){
+            String sTime = query.getTime().split(" - ")[0]+" 00:00:00";
+            String eTime = query.getTime().split(" - ")[1]+" 23:59:59";
+            wrapper.between(AccidentBrief::getTime,sTime,eTime);
+        }
+        if(query.getContent()!=null && !query.getContent().isEmpty()){
+            wrapper.like(AccidentBrief::getContent, query.getContent());
+        }
+        wrapper.orderByDesc(AccidentBrief::getTime);
+        List<AccidentBrief> accidentBriefPage = accidentBriefService.list( wrapper);
+        accidentBriefPage.forEach(item->{
+            item.setClassifyName(list.stream().filter(classify -> classify.getId().equals(item.getClassifyId())).findFirst().orElse(new AccidentClassification()).getName());
+        });
         return R.ok(accidentBriefPage);
     }
 
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/EntrustProjectController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/EntrustProjectController.java
index 826445a..13f894d 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/EntrustProjectController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/EntrustProjectController.java
@@ -242,9 +242,9 @@
 
 
     @ApiOperation(value = "获取隐患详情")
-    @GetMapping("/getHiddenDangerDetail/{problemId}")
-    public R<?> getHiddenDangerDetail(@PathVariable Integer problemId) {
-        var record = recordService.getHiddenDangerDetail(problemId);
+    @GetMapping("/getHiddenDangerDetail/{id}")
+    public R<?> getHiddenDangerDetail(@PathVariable Integer id) {
+        var record = recordService.getHiddenDangerDetail(id);
         return R.ok(record);
     }
 
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/ProjectController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/ProjectController.java
index 2e78fd5..993ea13 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/ProjectController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/ProjectController.java
@@ -163,10 +163,10 @@
     }
 
 
-    @ApiOperation(value = "获取隐患详情")
-    @GetMapping("/getHiddenDangerDetail/{problemId}")
-    public R<?> getHiddenDangerDetail(@PathVariable Integer problemId) {
-        var record = recordService.getHiddenDangerDetail(problemId);
+    @ApiOperation(value = "获取隐患详情",response = ProblemVo.class)
+    @GetMapping("/getHiddenDangerDetail/{id}")
+    public R<ProblemVo> getHiddenDangerDetail(@PathVariable Integer id) {
+        ProblemVo record = recordService.getHiddenDangerDetail(id);
         return R.ok(record);
     }
 
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/controller/FileController.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/controller/FileController.java
index fe43adc..ed61520 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/core/controller/FileController.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/controller/FileController.java
@@ -40,7 +40,7 @@
         }
         String TimeDir =new SimpleDateFormat("yyyy-MM-dd").format(new Date());
 //        String realPath = fileUploadConfig.getLocation() + TimeDir;
-        String realPath =  "/mnt/file/" + TimeDir;
+        String realPath =  "F:\\file\\estate\\files";
         File file = new File(realPath);
         // 没有目录就创建
         if (!file.exists()) {
@@ -61,7 +61,7 @@
         mf.transferTo(targetFile);
         //拼接数据
 //        String imgstr = fileUploadConfig.getAccessPath() + TimeDir +"\\"+ filename;
-        String imgstr = TimeDir +"/"+ filename;
+        String imgstr = filename;
         return R.ok(imgstr);
     }
 
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/enums/BizResultCode.java b/ruoyi-system/src/main/java/com/ruoyi/system/enums/BizResultCode.java
deleted file mode 100644
index f4831cb..0000000
--- a/ruoyi-system/src/main/java/com/ruoyi/system/enums/BizResultCode.java
+++ /dev/null
@@ -1,227 +0,0 @@
-package com.ruoyi.system.enums;
-
-
-import lombok.Getter;
-
-/**
- * @description: 弹窗消息的定义
- * @author: code
- **/
-@Getter
-public enum BizResultCode implements ApiResultCode {
-
-    INVALID_OPERATION("无效操作"),
-    MOBILE_ALREADY_EXIST("手机号已存在"),
-    USERNAME_ALREADY_EXIST("用户名已存在"),
-    ACCOUNT_NOT_FOUND("帐号不存在"),
-    SYS_VALIDATION_FAILED_ERROR("验证失败,无效请求"),
-    APP_CLIENT_NOT_EXIST("登录客户端不存在"),
-    SESSION_EXPIRED("会话已过期"),
-    SESSION_INVALID("会话无效"),
-    NO_LOGIN_ERROR("未登录"),
-    ACCOUNT_FORBIDDEN("帐号被禁用"),
-
-    H_CAPTCHA_CODE_NULL_ERROR("图形验证码不能为空"),
-    CAPTCHA_CODE_NOT_NULL(""),
-    H_CAPTCHA_CODE_VALIDATE_ERROR("图形验证失败"),
-    VERIFICATION_CODE_INVALID("图形验证码验证失败"),
-    BIZ_PASSWORD_INVALID("密码错误"),
-
-//    BIZ_CLIENT_NOT_FOUND("委托方不存在"),
-//    BIZ_CLIENT_NAME_ALREADY_EXISTS("委托方名称已存在"),
-//    BIZ_CONTRACT_NOT_EXIST("合同不存在"),
-
-    BIZ_CAR_NOT_EXIST("车辆不存在"),
-
-    BIZ_DATE_FORMAT_ERROR("日期格式错误"),
-
-    BIZ_PROJECT_NOT_EXIST("项目不存在"),
-
-    BIZ_DEVICE_NOT_EXIST("设备不存在"),
-
-    BIZ_SCORE_WEIGHT_CAN_NOT_NULL("分数和权重不能为空"),
-
-    BIZ_HIERARCHY_SYSTEM_NOT_EXIST("体系不存在"),
-
-    BIZ_PARENT_HIERARCHY_SYSTEM_NOT_EXIST("父ID体系不存在"),
-
-    BIZ_PLAN_NOT_EXIST("计划不存在"),
-
-    BIZ_PROBLEM_NUM_CANNOT_NULL("问题数量集合不能为空"),
-
-    BIZ_PROBLEM_SCALE_CANNOT_NULL("对应规模集合不能为空"),
-
-    BIZ_REAL_RULE_NOT_EXIST("实测实量规则不存在"),
-
-    BIZ_EXPERT_NOT_EXIST("专家不存在"),
-
-    EXPERT_FUNCTIONS_MUST_ENABLE("专家功能必须启用"),
-
-    BIZ_MODEL_NOT_EXIST("模型不存在"),
-
-    BIZ_PROJECT_STATUS_NOT_MATCH("项目状态不匹配"),
-
-    BIZ_EXPERT_SCORE_SYS_NOT_EXIST("专家评分体系不存在"),
-
-    BIZ_MEMBERSHIP_DEGREE_NOT_EXIST("隐患等级不存在"),
-
-    BIZ_PROJECT_SUPERVISOR_HIS_NOT_EXIST("项目监督历史不存在"),
-
-    BIZ_PROJECT_DEVICE_NOT_EXIST("项目设备不存在"),
-
-    BIZ_REPORT_TEMPLATE_NOT_EXIST("报告模板不存在"),
-
-    BIZ_REPORT_TEMPLATE_TYPE_NOT_EXIST("报告模板类型不存在"),
-
-    BIZ_ARCHIVE_NOT_EXIST("档案不存在"),
-
-    BIZ_PROJECT_NOT_CLOSED("项目未关闭"),
-
-    BIZ_PROJECT_ALREADY_CLOSED("项目已关闭"),
-
-    BIZ_PLAN_CLIENT_EXIST("该委托方对应的计划已存在"),
-
-    BIZ_PLAN_PROJECT_RELATION_NOT_EXIST("计划项目关系不存在"),
-
-    BIZ_PROJECT_NAME_EXIST("同一个委托方下已存在相同名称的项目"),
-    HIERARCHY_PARENT_NOT_FOUND("父级体系不存在"),
-    HIERARCHY_NODE_NOT_FOUND("节点不存在"),
-    HIERARCHY_NODE_NAME_ALREADY_EXISTS("节点名称已存在"),
-    BIZ_MODEL_NOT_FOUND("模型不存在"),
-    DRIVER_CAR_NOT_MATCH("司机和车辆数量不匹配"),
-    PARAM_ERROR("参数错误"),
-    CAR_NOT_EXIST("车辆不存在"),
-    PROBLEM_NOT_EXIST("问题不存在"),
-    ID_CANNOT_NULL("ID不能为空"),
-    MODEL_NOT_FOUND("模型不存在"),
-    PROJECT_INFO_NOT_EXIST("项目信息不存在"),
-    DEVICE_NOT_FOUND("设备不存在"),
-    DEVICE_IS_BUSY("设备正在使用中"),
-    PLAN_NOT_EXIST("计划不存在"),
-    ARCHIVE_NOT_EXIST("档案不存在"),
-    ENTITY_NOT_FOUND("实体不存在"),
-    ENTITY_NAME_ALREADY_EXISTS("实体名称已存在"),
-    ENTITY_CANNOT_NULL("实体不能为空"),
-    MODEL_PUBLISHED_CANNOT_MODIFY("已发布的模型不可修改"),
-    ACCOUNT_ALREADY_EXISTS("登录账号已存在"),
-    //无权修改他人信息
-    NO_PERMISSION_MODIFY_OTHERS_INFO("无权修改他人信息"),
-    DEVICE_USAGE_NOT_FOUND("设备使用记录不存在"),
-    MEMBERSHIP_MATRIX_LOAD_ERROR("隶属度矩阵加载失败"),
-    TASK_NOT_FOUND("任务不存在"),
-    TASK_ALREADY_EXIST("任务已存在"),
-    TASK_STATUS_ERROR("任务状态错误"),
-    NUMBER_FACTOR_NOT_EXIST("问题数量集合不存在"),
-    NUMBER_FACTOR_INDEX_ERROR("问题数量索引错误"),
-    SCALE_FACTOR_NOT_EXIST("对应规模集合不存在"),
-    SCALE_FACTOR_INDEX_ERROR("对应规模索引错误"),
-    INDEX_COLS_EMPTY("索引列为空"),
-    COMPARE_MATRIX_EMPTY("比较矩阵为空"),
-    MATRIX_SIZE_ERROR("矩阵大小错误"),
-    MATRIX_ERROR("所有的数字都应该是正数,且沿着主对角线对称的元素应该是彼此的相反数"),
-    NUMBER_NON_NEGATIVE("所有的数字都应该是非负数"),
-    INDEX_RANGE_ERROR("索引范围错误"),
-    MEMBERSHIP_MATRIX_ERROR("隶属度矩阵每一行的和应该等于1"),
-    SIGN_RECORD_EXIST("重复签到"),
-    PLAN_NAME_EXIST("计划名称已存在"),
-    CAR_LICENSE_NO_EXIST("车牌号已存在"),
-    HIERARCHY_NOT_FOUND("体系数据不存在"),
-    PLAN_NOT_FOUND("计划不存在"),
-    RECORD_NOT_FOUND("问题记录不存在"),
-    RECORD_REVIEW_EXISTED("问题已经复核"),
-    REVIEW_ALREADY_REFORMED("问题已经整改,无须复查"),
-    UPLOAD_FILE_FAILED("上传文件失败"),
-    UPLOAD_FILE_CONTAINS_ILLEGAL_CHARACTERS("上传文件名包含非法字符"),
-    FILE_NOT_FOUND("文件不存在"),
-    EVAL_FUZZY_RESULT_NOT_EXIST("模糊评价结果不存在"),
-    EVAL_SCORE_RESULT_NOT_EXIST("评分评价结果不存在"),
-    USER_IS_DISABLE("用户已被禁用"),
-    EXPERT_MODEL_NOT_EXIST("专家对应的模型不存在"),
-    MEMBERSHIP_MATRIX_NOT_EXIST("隶属度矩阵不存在"),
-    EXPERT_NOT_FOUND("专家不存在"),
-    MOBILE_FORMAT_ERROR("手机号格式错误"),
-    HIERARCHY_NOT_EXIST("体系不存在"),
-    PlAN_MODEL_EXPERT_SHOULD_PAIRED("计划模型和专家模型不匹配"),
-    PLAN_SYSTEM_MODEL_NOT_EXIST("综合体系模型不存在"),
-    PLAN_DEVICE_MODEL_NOT_EXIST("设备体系模型不存在"),
-    REVIEW_TASK_NOT_EXIST("复核任务不存在"),
-    ERROR_RECORD_ALL_REVIEWD("问题已全部复核"),
-    PROJECT_INFO_EXISTS("检查任务对应的项目信息已存在"),
-    IMPORT_DATA_EMPTY("导入数据为空"),
-    IMPORT_DATA_COLUMN_COUNT("导入数据列数不正确"),
-    CLIENT_NOT_FOUND("委托方不存在"),
-    DEVICE_ALREADY_EXISTS("设备名称已存在"),
-    ROLE_NOT_FOUND("角色不存在"),
-    CHECK_TASK_NOT_EXIST("检查任务不存在"),
-    DEVICE_USAGE_NOT_EXISTED("设备使用记录不存在"),
-    PASSWORD_ERROR("密码输入错误"),
-    PASSWORD_FORMAT_ERROR("密码需要6到16位长度"),
-
-    // License相关错误码
-    LICENSE_NOT_CONFIGURED("License密钥未配置"),
-    LICENSE_INVALID_FORMAT("License格式错误"),
-    LICENSE_SIGNATURE_INVALID("License签名验证失败"),
-    LICENSE_EXPIRED("License已过期"),
-    LICENSE_VALIDATION_FAILED("License验证失败"),
-
-    // 报告生成相关错误码
-    BIZ_REPORT_GENERATE_FAILED("报告生成失败");
-
-    private final String errorMsg;
-
-    BizResultCode(String errorMsg) {
-        this.errorMsg = errorMsg;
-    }
-
-    /**
-     * 得到 message 的值.
-     *
-     * @return 属性 message 的值.
-     */
-    @Override
-    public String getErrorMsg() {
-        return errorMsg + "(" + getAppId() + ")";
-    }
-
-    /**
-     * @return 当前服务的AppId
-     */
-    @Override
-    public String getAppId() {
-        return "1001";
-    }
-
-    /**
-     * 校验方法
-     *
-     * @param expect
-     */
-    public void check(boolean expect) {
-        if (expect) {
-            throw new BizException(this.errorMsg);
-        }
-    }
-
-    /**
-     * 校验方法
-     * @param expect
-     * @param code
-     */
-    public void check(boolean expect, String code) {
-        if (expect) {
-            throw new BizException(code);
-        }
-    }
-
-    /**
-     * 校验方法
-     * @param expect
-     * @param code
-     * @param message
-     */
-    public void check(boolean expect, String code, String message) {
-        if (expect) {
-            throw new BizException(message);
-        }
-    }
-}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/RecordMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/RecordMapper.java
index 5a44497..ba83d7e 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/RecordMapper.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/RecordMapper.java
@@ -3,6 +3,7 @@
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.system.model.ErrorReview;
 import com.ruoyi.system.model.Record;
 import com.ruoyi.system.query.HiddenDangerListQuery;
 import com.ruoyi.system.vo.HiddenDangerListVo;
@@ -25,7 +26,13 @@
     List<HiddenDangerListVo> getHiddenDangerList(@Param("page") Page<HiddenDangerListVo> page, @Param("query") HiddenDangerListQuery query, @Param("taskIds") List<Integer> taskIds);
 
     ProblemVo getHiddenDangerDetail(@Param("problemId") Integer problemId);
-    
 
 
+    ErrorReview getErrorReview(@Param("errorReviewId") Integer errorReviewId);
+
+    List<String> findReviewImg(@Param("errorReviewId") Integer errorReviewId);
+
+
+    String getProjectName(@Param("checkTaskId") Integer checkTaskId);
+
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/model/AccidentBrief.java b/ruoyi-system/src/main/java/com/ruoyi/system/model/AccidentBrief.java
index b95006b..c99a8b2 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/model/AccidentBrief.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/model/AccidentBrief.java
@@ -85,5 +85,9 @@
     @TableField("create_time")
     private LocalDateTime createTime;
 
+    @TableField(exist = false)
+    @ApiModelProperty(value = "类别名称")
+    private String classifyName;
+
 
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/model/ErrorReview.java b/ruoyi-system/src/main/java/com/ruoyi/system/model/ErrorReview.java
new file mode 100644
index 0000000..b6d71e1
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/model/ErrorReview.java
@@ -0,0 +1,62 @@
+package com.ruoyi.system.model;
+
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author administrator
+ * @since 2026-01-23
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("error_review")
+public class ErrorReview extends Model<ErrorReview> {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+    @TableField("create_time")
+    @ApiModelProperty(value = "创建时间")
+    private Date createTime;
+    private Boolean deleted;
+    @ApiModelProperty(value = "名称")
+    private String name;
+    @TableField("update_time")
+    @ApiModelProperty(value = "更新时间")
+    private Date updateTime;
+    @ApiModelProperty(value = "复核内容")
+    private String content;
+    @ApiModelProperty(value = "0未整改  1部分整改  2已整改")
+    private Integer state;
+    @TableField("creator_id")
+    private Integer creatorId;
+
+    @ApiModelProperty(value = "复核人")
+    private String  creator;
+
+
+    @ApiModelProperty(value = "图片 没有前缀")
+    private List<String> img;
+
+
+
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/RecordService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/RecordService.java
index 9272541..2f84239 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/RecordService.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/RecordService.java
@@ -24,7 +24,7 @@
 
     List<HiddenDangerListVo> getHiddenDangerList(Page<HiddenDangerListVo> page, @Valid HiddenDangerListQuery query, List<Integer> taskIds);
 
-    ProblemVo getHiddenDangerDetail(Integer problemId);
+    ProblemVo getHiddenDangerDetail(Integer id);
 
 
 
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/RecordServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/RecordServiceImpl.java
index 278922e..dca8ae0 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/RecordServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/RecordServiceImpl.java
@@ -6,6 +6,7 @@
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ruoyi.system.mapper.RecordImageMapper;
 import com.ruoyi.system.mapper.RecordMapper;
+import com.ruoyi.system.model.ErrorReview;
 import com.ruoyi.system.model.Record;
 import com.ruoyi.system.model.RecordImage;
 import com.ruoyi.system.model.UserFile;
@@ -70,9 +71,14 @@
     }
 
     @Override
-    public ProblemVo getHiddenDangerDetail(Integer problemId) {
+    public ProblemVo getHiddenDangerDetail(Integer id) {
+        // 根据id找到记录
+        Record record = baseMapper.selectById(id);
         // 直接查询并返回,让前端处理JSON字符串解析
-        ProblemVo hiddenDangerDetail = baseMapper.getHiddenDangerDetail(problemId);
+        ProblemVo hiddenDangerDetail = baseMapper.getHiddenDangerDetail(record.getProblemId());
+        String projectName =baseMapper.getProjectName(record.getCheckTaskId());
+        hiddenDangerDetail.setProjectName(projectName);
+
         if(hiddenDangerDetail!=null){
             if (hiddenDangerDetail.getSpecificTermsStr()!=null && !hiddenDangerDetail.getSpecificTermsStr().isEmpty()) {
                 String specificTermsStr = hiddenDangerDetail.getSpecificTermsStr();
@@ -89,6 +95,17 @@
                 hiddenDangerDetail.setNumberFactors(JSON.parseArray(numberFactorsStr, String.class));
             }
         }
+        Integer errorReviewId = record.getErrorReviewId();
+        if(errorReviewId!=null){
+            ErrorReview errorReview = baseMapper.getErrorReview(errorReviewId);
+            if(errorReview!=null){
+                // 查询图片
+                List<String> img = baseMapper.findReviewImg(errorReviewId);
+                errorReview.setImg(img);
+                hiddenDangerDetail.setErrorReview(errorReview);
+            }
+        }
+
         return hiddenDangerDetail;
     }
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/ReportServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/ReportServiceImpl.java
deleted file mode 100644
index 30054c9..0000000
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/ReportServiceImpl.java
+++ /dev/null
@@ -1,264 +0,0 @@
-package com.ruoyi.system.service.impl;
-
-
-import com.alibaba.fastjson2.JSONObject;
-import com.ruoyi.system.enums.BizResultCode;
-import com.ruoyi.system.model.ReportTemplate;
-import com.ruoyi.system.service.*;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Service;
-
-import javax.annotation.Resource;
-import java.io.ByteArrayInputStream;
-import java.io.OutputStream;
-
-/**
- * 报告数据服务实现类
- **/
-@Slf4j
-@Service
-public class ReportServiceImpl implements ReportService {
-
-    @Resource
-    private ReportTemplateService reportTemplateService;
-
-    @Resource
-    private ProjectInfoService projectInfoService;
-
-    @Resource
-    private DeviceUsageService deviceUsageService;
-
-    @Resource
-    private EvalFuzzyService evalFuzzyService;
-
-    @Resource
-    private EvalScoreService evalScoreService;
-
-    @Resource
-    private ErrorRecordService errorRecordService;
-
-    @Resource
-    private DeviceService deviceService;
-
-    @Resource
-    private UserFileService userFileService;
-
-    @Override
-    public JSONObject fuzzyReportData(Integer checkTaskId, Integer templateId) {
-        var evalFuzzyResult = evalFuzzyService.getByCheckTaskId(checkTaskId);
-        BizResultCode.EVAL_FUZZY_RESULT_NOT_EXIST.check(evalFuzzyResult == null);
-
-        var evalScoreResult =  evalScoreService.getByCheckTaskId(checkTaskId);
-        BizResultCode.EVAL_SCORE_RESULT_NOT_EXIST.check(evalScoreResult == null);
-
-        var reportTemplate = reportTemplateService.get(templateId);
-        BizResultCode.BIZ_REPORT_TEMPLATE_NOT_EXIST.check(reportTemplate == null);
-
-        switch (reportTemplate.getType()) {
-            case ThirdPartyReport:
-                return buildFuzzySystemReportData(evalFuzzyResult, evalScoreResult, reportTemplate);
-            case DeviceReport:
-                return buildFuzzyDeviceReportData(evalFuzzyResult, evalScoreResult, reportTemplate);
-            default:
-                throw new BizException(BizResultCode.BIZ_REPORT_TEMPLATE_TYPE_NOT_EXIST);
-        }
-    }
-
-    @Override
-    public JSONObject scoreReportData(Integer checkTaskId, Integer templateId) {
-        var evalFuzzyResult = evalFuzzyService.getByCheckTaskId(checkTaskId);
-        BizResultCode.EVAL_FUZZY_RESULT_NOT_EXIST.check(evalFuzzyResult == null);
-
-        var evalScoreResult =  evalScoreService.getByCheckTaskId(checkTaskId);
-        BizResultCode.EVAL_SCORE_RESULT_NOT_EXIST.check(evalScoreResult == null);
-
-        var reportTemplate = reportTemplateService.get(templateId);
-        BizResultCode.BIZ_REPORT_TEMPLATE_NOT_EXIST.check(reportTemplate == null);
-
-        switch (reportTemplate.getType()) {
-            case ThirdPartyReport:
-                return buildScoreSystemReportData(evalFuzzyResult, evalScoreResult, reportTemplate);
-            case DeviceReport:
-                return buildScoreDeviceReportData(evalFuzzyResult, evalScoreResult, reportTemplate);
-            default:
-                throw new BizException(BizResultCode.BIZ_REPORT_TEMPLATE_TYPE_NOT_EXIST);
-        }
-    }
-
-    @Override
-    public XWPFTemplate fuzzyReport(Integer checkTaskId, Integer templateId) {
-        var reportData = fuzzyReportData(checkTaskId, templateId);
-        var builder = getReportBuilder(templateId);
-        var template = reportTemplateService.get(templateId);
-
-        // reportData to JSONObject
-        return builder.buildReport(reportData, template.getConfig());
-    }
-
-    @Override
-    public XWPFTemplate scoreReport(Integer checkTaskId, Integer templateId) {
-        var reportData = scoreReportData(checkTaskId, templateId);
-        var builder = getReportBuilder(templateId);
-        var template = reportTemplateService.get(templateId);
-
-        // reportData to JSONObject
-        return builder.buildReport(reportData, template.getConfig());
-    }
-
-    @Override
-    public void fuzzyReportPdf(Integer checkTaskId, Integer templateId, OutputStream outputStream) {
-        try (var doc = fuzzyReport(checkTaskId, templateId)) {
-            convertToPdf(doc, outputStream);
-        } catch (Exception e) {
-            log.error("生成模糊评价PDF报告失败", e);
-            throw new BizException("生成模糊评价PDF报告失败");
-        }
-    }
-
-    @Override
-    public void scoreReportPdf(Integer checkTaskId, Integer templateId, OutputStream outputStream) {
-        try (var doc = scoreReport(checkTaskId, templateId)) {
-            convertToPdf(doc, outputStream);
-        } catch (Exception e) {
-            log.error("生成打分评价PDF报告失败", e);
-            throw new BizException("生成打分评价PDF报告失败");
-        }
-    }
-
-    /**
-     * 将Word文档转换为PDF
-     * @param template Word模板
-     * @param outputStream 输出流
-     */
-    private void convertToPdf(XWPFTemplate template, OutputStream outputStream) throws Exception {
-        // 先将Word模板写入字节数组
-        ByteArrayOutputStream docOutputStream = new ByteArrayOutputStream();
-        template.write(docOutputStream);
-
-        // 从字节数组读取Word文档
-        ByteArrayInputStream docInputStream = new ByteArrayInputStream(docOutputStream.toByteArray());
-        org.apache.poi.xwpf.usermodel.XWPFDocument document = new org.apache.poi.xwpf.usermodel.XWPFDocument(docInputStream);
-
-        // 转换为PDF
-        PdfOptions options = PdfOptions.create();
-        PdfConverter.getInstance().convert(document, outputStream, options);
-
-        // 关闭资源
-        document.close();
-        docInputStream.close();
-        docOutputStream.close();
-    }
-
-    private ReportBuilderBase getReportBuilder(Integer templateId) {
-        var reportTemplate = reportTemplateService.get(templateId);
-        BizResultCode.BIZ_REPORT_TEMPLATE_NOT_EXIST.check(reportTemplate == null);
-        switch (reportTemplate.getType()) {
-            case ThirdPartyReport:
-                return new SystemReportBuilder(userFileService);
-            case DeviceReport:
-                return new DeviceReportBuilder(userFileService);
-            default:
-                throw new BizException(BizResultCode.BIZ_REPORT_TEMPLATE_TYPE_NOT_EXIST);
-        }
-    }
-
-    private JSONObject buildFuzzySystemReportData(EvalFuzzyResult evalFuzzyResult, EvalScoreResult scoreResult, ReportTemplate reportTemplate) {
-        // 查询必须要的数据
-        var records = errorRecordService.listSystemErrors(evalFuzzyResult.getTask().getId());
-        var project = evalFuzzyResult.getProject();
-        var projectInfo = evalFuzzyResult.getTask().getProjectInfo();
-//        var projectInfo = projectInfoService.getByCheckTaskId(evalFuzzyResult.getTask().getId());
-        var deviceUsages = deviceUsageService.listUsages(project.getId(), null);
-        var devices= deviceUsages.stream().map(DeviceUsage::getDevice).toList();
-        var hierarchy = evalFuzzyResult.getPlan().getSystemScoreExpert().getModel().getHierarchy().getContent();
-
-        // 生成报告数据
-        return SystemFuzzyReportData.builder()
-                .reportId(evalFuzzyResult.getId())
-                .systemHierarchy(hierarchy)
-                .sysResult(evalFuzzyResult.getSystemRes())
-                .scoreResult(scoreResult.getSystemRes())
-                .template(reportTemplate)
-                .project(project)
-                .projectInfo(projectInfo)
-                .devices(devices)
-                .records(records)
-                .build()
-                .generate();
-    }
-
-    private JSONObject buildScoreSystemReportData(EvalFuzzyResult evalFuzzyResult, EvalScoreResult scoreResult, ReportTemplate reportTemplate) {
-        // 查询必须要的数据
-        var records = errorRecordService.listSystemErrors(evalFuzzyResult.getTask().getId());
-        var project = evalFuzzyResult.getProject();
-//        var projectInfo = projectInfoService.latest(evalFuzzyResult.getProject().getId());
-        var projectInfo = evalFuzzyResult.getTask().getProjectInfo();
-        var deviceUsages = deviceUsageService.listUsages(project.getId(), null);
-        var devices= deviceUsages.stream().map(DeviceUsage::getDevice).toList();
-        var hierarchy = evalFuzzyResult.getPlan().getSystemScoreExpert().getModel().getHierarchy().getContent();
-
-        // 生成报告数据
-        return SystemScoreReportData.builder()
-                .reportId(evalFuzzyResult.getId())
-                .systemHierarchy(hierarchy)
-                .sysResult(evalFuzzyResult.getSystemRes())
-                .scoreResult(scoreResult.getSystemRes())
-                .template(reportTemplate)
-                .project(project)
-                .projectInfo(projectInfo)
-                .devices(devices)
-                .records(records)
-                .build()
-                .generate();
-    }
-
-    private JSONObject buildFuzzyDeviceReportData(EvalFuzzyResult evalFuzzyResult, EvalScoreResult scoreResult,  ReportTemplate reportTemplate) {
-        var records = errorRecordService.listDeviceErrors(evalFuzzyResult.getTask().getId());
-        var project = evalFuzzyResult.getProject();
-        var projectInfo = evalFuzzyResult.getTask().getProjectInfo();
-//        var projectInfo = projectInfoService.getByCheckTaskId(evalFuzzyResult.getTask().getId());
-        var deviceIds = evalFuzzyResult.getDeviceResMap().keySet();
-        var devices = deviceService.findAllById(deviceIds);
-        var hierarchy = evalFuzzyResult.getPlan().getDeviceScoreExpert().getModel().getHierarchy().getContent();
-
-        // 生成报告数据
-        return DeviceFuzzyReportData.builder()
-                .reportId(evalFuzzyResult.getId())
-                .deviceResMap(evalFuzzyResult.getDeviceResMap())
-                .deviceHierarchy(hierarchy)
-                .template(reportTemplate)
-                .project(project)
-                .projectInfo(projectInfo)
-                .devices(devices)
-                .records(records)
-                .build()
-                .generate();
-    }
-
-    private JSONObject buildScoreDeviceReportData(EvalFuzzyResult evalFuzzyResult, EvalScoreResult evalScoreResult, ReportTemplate reportTemplate) {
-        var records = errorRecordService.listDeviceErrors(evalFuzzyResult.getTask().getId());
-        var project = evalFuzzyResult.getProject();
-//        var projectInfo = projectInfoService.getByCheckTaskId(evalFuzzyResult.getTask().getId());
-        var projectInfo = evalFuzzyResult.getTask().getProjectInfo();
-        var deviceIds = evalFuzzyResult.getDeviceResMap().keySet();
-        var devices = deviceService.findAllById(deviceIds);
-        var hierarchy = evalFuzzyResult.getPlan().getDeviceScoreExpert().getModel().getHierarchy().getContent();
-
-        // 生成报告数据
-        return DeviceScoreReportData.builder()
-                .reportId(evalFuzzyResult.getId())
-                .deviceResMap(evalFuzzyResult.getDeviceResMap())
-                .deviceScoreResMap(evalScoreResult.getDeviceResMap())
-                .deviceHierarchy(hierarchy)
-                .template(reportTemplate)
-                .project(project)
-                .projectInfo(projectInfo)
-                .devices(devices)
-                .records(records)
-                .build()
-                .generate();
-    }
-
-
-
-}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/vo/ProblemVo.java b/ruoyi-system/src/main/java/com/ruoyi/system/vo/ProblemVo.java
index 77af953..60a9e97 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/vo/ProblemVo.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/vo/ProblemVo.java
@@ -1,6 +1,7 @@
 package com.ruoyi.system.vo;
 
 
+import com.ruoyi.system.model.ErrorReview;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Builder;
@@ -68,4 +69,10 @@
 
     @ApiModelProperty(value = "问题数量集合")
     List<String> numberFactors;
+
+    @ApiModelProperty(value = "复核信息")
+    ErrorReview errorReview;
+
+    @ApiModelProperty(value = "项目名称")
+    String projectName;
 }
\ No newline at end of file
diff --git a/ruoyi-system/src/main/resources/mapper/system/RecordMapper.xml b/ruoyi-system/src/main/resources/mapper/system/RecordMapper.xml
index b359e23..196b13b 100644
--- a/ruoyi-system/src/main/resources/mapper/system/RecordMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/RecordMapper.xml
@@ -60,7 +60,7 @@
             and t1.create_time between #{query.startTime} and #{query.endTime}
         </if>
 
-        ) as o
+        ) as o where 1=1
         <if test="query.type != null">
             and o.type = #{query.type}
         </if>
@@ -72,5 +72,27 @@
         from problem
         where id = #{problemId}
     </select>
+    <select id="getErrorReview" resultType="com.ruoyi.system.model.ErrorReview">
+        select t1.id, t1.create_time,
+            t1.deleted,
+            t1.name,
+            t1.update_time,
+            t1.content,
+            t1.state,
+            t1.creator_id, t2.name creator
+        from error_review t1
+                 left join user t2 on t1.creator_id = t2.id
+        where t1.id = #{errorReviewId}
+
+    </select>
+    <select id="findReviewImg" resultType="java.lang.String">
+        select CONCAT(t2.name, '.', t2.extension) from error_review_image t1
+                 left join user_file t2 on t1.user_file_id = t2.id
+        where t1.error_review_id = #{errorReviewId}
+    </select>
+    <select id="getProjectName" resultType="java.lang.String">
+        select t2.name from task t1 left join project t2 on t1.project_id = t2.id
+                    where t1.id = #{checkTaskId}
+    </select>
 
 </mapper>

--
Gitblit v1.7.1