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