From d498439c9f5d30f41e8542562cd87322bc73445a Mon Sep 17 00:00:00 2001 From: cjw Date: Tue, 16 Apr 2024 17:08:39 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=9D=E5=A7=8B=E5=8C=96=E9=A2=84=E8=AD=A6?= =?UTF-8?q?=E4=B8=8E=E5=B9=B2=E9=A2=84=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SysInterveneRecordController.java | 106 +++++++++++++++ .../controller/SysWarnRecordController.java | 81 ++++++++++++ .../scale/domain/SysInterveneRecord.java | 47 +++++++ .../dromara/scale/domain/SysWarnRecord.java | 55 ++++++++ .../scale/domain/bo/SysInterveneRecordBo.java | 53 ++++++++ .../scale/domain/bo/SysWarnRecordBo.java | 62 +++++++++ .../scale/domain/vo/SysInterveneRecordVo.java | 56 ++++++++ .../scale/domain/vo/SysWarnRecordVo.java | 70 ++++++++++ .../mapper/SysInterveneRecordMapper.java | 17 +++ .../scale/mapper/SysWarnRecordMapper.java | 17 +++ .../service/ISysInterveneRecordService.java | 49 +++++++ .../scale/service/ISysWarnRecordService.java | 44 ++++++ .../impl/SysInterveneRecordServiceImpl.java | 125 ++++++++++++++++++ .../impl/SysWarnRecordServiceImpl.java | 106 +++++++++++++++ .../scale/service/impl/WebServiceImpl.java | 41 +++--- .../mapper/scale/SysInterveneRecordMapper.xml | 7 + .../mapper/scale/SysWarnRecordMapper.xml | 7 + 17 files changed, 926 insertions(+), 17 deletions(-) create mode 100644 ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/controller/SysInterveneRecordController.java create mode 100644 ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/controller/SysWarnRecordController.java create mode 100644 ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/SysInterveneRecord.java create mode 100644 ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/SysWarnRecord.java create mode 100644 ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/bo/SysInterveneRecordBo.java create mode 100644 ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/bo/SysWarnRecordBo.java create mode 100644 ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/vo/SysInterveneRecordVo.java create mode 100644 ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/vo/SysWarnRecordVo.java create mode 100644 ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/mapper/SysInterveneRecordMapper.java create mode 100644 ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/mapper/SysWarnRecordMapper.java create mode 100644 ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/ISysInterveneRecordService.java create mode 100644 ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/ISysWarnRecordService.java create mode 100644 ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/SysInterveneRecordServiceImpl.java create mode 100644 ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/SysWarnRecordServiceImpl.java create mode 100644 ruoyi-modules/rouyi-scale/src/main/resources/mapper/scale/SysInterveneRecordMapper.xml create mode 100644 ruoyi-modules/rouyi-scale/src/main/resources/mapper/scale/SysWarnRecordMapper.xml diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/controller/SysInterveneRecordController.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/controller/SysInterveneRecordController.java new file mode 100644 index 0000000..abcd840 --- /dev/null +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/controller/SysInterveneRecordController.java @@ -0,0 +1,106 @@ +package org.dromara.scale.controller; + +import cn.dev33.satoken.annotation.SaCheckPermission; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotNull; +import lombok.RequiredArgsConstructor; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.web.core.BaseController; +import org.dromara.scale.domain.bo.SysInterveneRecordBo; +import org.dromara.scale.domain.vo.SysInterveneRecordVo; +import org.dromara.scale.service.ISysInterveneRecordService; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * 干预记录 + * + * @author cjw + * @date 2024-04-16 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/scale/intervene") +public class SysInterveneRecordController extends BaseController { + + private final ISysInterveneRecordService sysInterveneRecordService; + + /** + * 查询干预记录列表 + */ + @SaCheckPermission("scale:intervene:list") + @GetMapping("/list") + public TableDataInfo list(SysInterveneRecordBo bo, PageQuery pageQuery) { + return sysInterveneRecordService.queryPageList(bo, pageQuery); + } + + /** + * 导出干预记录列表 + */ + @SaCheckPermission("scale:intervene:export") + @Log(title = "干预记录", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(SysInterveneRecordBo bo, HttpServletResponse response) { + List list = sysInterveneRecordService.queryList(bo); + ExcelUtil.exportExcel(list, "干预记录", SysInterveneRecordVo.class, response); + } + + /** + * 获取干预记录详细信息 + * + * @param interveneId 主键 + */ + @SaCheckPermission("scale:intervene:query") + @GetMapping("/{interveneId}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long interveneId) { + return R.ok(sysInterveneRecordService.queryById(interveneId)); + } + + /** + * 新增干预记录 + */ + @SaCheckPermission("scale:intervene:add") + @Log(title = "干预记录", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody SysInterveneRecordBo bo) { + return toAjax(sysInterveneRecordService.insertByBo(bo)); + } + + /** + * 修改干预记录 + */ + @SaCheckPermission("scale:intervene:edit") + @Log(title = "干预记录", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody SysInterveneRecordBo bo) { + return toAjax(sysInterveneRecordService.updateByBo(bo)); + } + + /** + * 删除干预记录 + * + * @param interveneIds 主键串 + */ + @SaCheckPermission("scale:intervene:remove") + @Log(title = "干预记录", businessType = BusinessType.DELETE) + @DeleteMapping("/{interveneIds}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] interveneIds) { + return toAjax(sysInterveneRecordService.deleteWithValidByIds(List.of(interveneIds), true)); + } +} diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/controller/SysWarnRecordController.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/controller/SysWarnRecordController.java new file mode 100644 index 0000000..f51e7cd --- /dev/null +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/controller/SysWarnRecordController.java @@ -0,0 +1,81 @@ +package org.dromara.scale.controller; + +import cn.dev33.satoken.annotation.SaCheckPermission; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.NotNull; +import lombok.RequiredArgsConstructor; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.web.core.BaseController; +import org.dromara.scale.domain.bo.SysWarnRecordBo; +import org.dromara.scale.domain.vo.SysWarnRecordVo; +import org.dromara.scale.service.ISysWarnRecordService; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * 预警记录 + * + * @author cjw + * @date 2024-04-16 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/sacle/warn") +public class SysWarnRecordController extends BaseController { + + private final ISysWarnRecordService sysWarnRecordService; + + /** + * 查询预警记录列表 + */ + @SaCheckPermission("sacle:warn:list") + @GetMapping("/list") + public TableDataInfo list(SysWarnRecordBo bo, PageQuery pageQuery) { + return sysWarnRecordService.queryPageList(bo, pageQuery); + } + + /** + * 导出预警记录列表 + */ + @SaCheckPermission("sacle:warn:export") + @Log(title = "预警记录", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(SysWarnRecordBo bo, HttpServletResponse response) { + List list = sysWarnRecordService.queryList(bo); + ExcelUtil.exportExcel(list, "预警记录", SysWarnRecordVo.class, response); + } + + /** + * 获取预警记录详细信息 + * + * @param warnId 主键 + */ + @SaCheckPermission("sacle:warn:query") + @GetMapping("/{warnId}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long warnId) { + return R.ok(sysWarnRecordService.queryById(warnId)); + } + + /** + * 修改预警记录 + */ + @SaCheckPermission("sacle:warn:edit") + @Log(title = "预警记录", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody SysWarnRecordBo bo) { + return toAjax(sysWarnRecordService.updateByBo(bo)); + } + +} diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/SysInterveneRecord.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/SysInterveneRecord.java new file mode 100644 index 0000000..48131d8 --- /dev/null +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/SysInterveneRecord.java @@ -0,0 +1,47 @@ +package org.dromara.scale.domain; + +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.io.Serial; +import java.util.Date; + +/** + * 干预记录对象 sys_intervene_record + * + * @author cjw + * @date 2024-04-16 + */ +@Data +@TableName("sys_intervene_record") +public class SysInterveneRecord { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 干预记录id + */ + @TableId(value = "intervene_id") + private Long interveneId; + + /** + * 预警记录id + */ + private Long warnId; + + /** + * 诊断 + */ + private String diagnose; + + /** + * 诊断附件 + */ + private Long annex; + + private Date createTime; + + +} diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/SysWarnRecord.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/SysWarnRecord.java new file mode 100644 index 0000000..f834912 --- /dev/null +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/SysWarnRecord.java @@ -0,0 +1,55 @@ +package org.dromara.scale.domain; + +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.io.Serial; +import java.util.Date; + +/** + * 预警记录对象 sys_warn_record + * + * @author cjw + * @date 2024-04-16 + */ +@Data +@TableName("sys_warn_record") +public class SysWarnRecord { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * + */ + @TableId(value = "warn_id") + private Long warnId; + + /** + * td_scale_publish表主键 + */ + private Long batchNo; + + /** + * 测评人id + */ + private Long userId; + + /** + * 状态 0 未处理,1 分配咨询师,2 咨询师拒绝干预,3 干预中 4 干预结束 + */ + private Integer status; + + /** + * 补充说明 + */ + private String note; + + /** + * 预警时间 + */ + private Date warnTime; + + +} diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/bo/SysInterveneRecordBo.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/bo/SysInterveneRecordBo.java new file mode 100644 index 0000000..82e25b4 --- /dev/null +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/bo/SysInterveneRecordBo.java @@ -0,0 +1,53 @@ +package org.dromara.scale.domain.bo; + +import org.dromara.scale.domain.SysInterveneRecord; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; + +/** + * 干预记录业务对象 sys_intervene_record + * + * @author cjw + * @date 2024-04-16 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = SysInterveneRecord.class, reverseConvertGenerate = false) +public class SysInterveneRecordBo extends BaseEntity { + + /** + * 干预记录id + */ + //@NotNull(message = "干预记录id不能为空", groups = { EditGroup.class }) + private Long interveneId; + + /** + * 预警记录id + */ + @NotNull(message = "预警记录id不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long warnId; + + /** + * 诊断 + */ + @NotBlank(message = "诊断不能为空", groups = { AddGroup.class, EditGroup.class }) + private String diagnose; + + /** + * 诊断附件 + */ + //@NotNull(message = "诊断附件不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long annex; + + /** + * 状态,是暂存还是完成 + */ + private Integer status; + + +} diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/bo/SysWarnRecordBo.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/bo/SysWarnRecordBo.java new file mode 100644 index 0000000..ea2013f --- /dev/null +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/bo/SysWarnRecordBo.java @@ -0,0 +1,62 @@ +package org.dromara.scale.domain.bo; + +import org.dromara.scale.domain.SysWarnRecord; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; + +/** + * 预警记录业务对象 sys_warn_record + * + * @author cjw + * @date 2024-04-16 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = SysWarnRecord.class, reverseConvertGenerate = false) +public class SysWarnRecordBo extends BaseEntity { + + /** + * + */ + @NotNull(message = "不能为空", groups = { EditGroup.class }) + private Long warnId; + + /** + * td_scale_publish表主键 + */ + @NotNull(message = "td_scale_publish表主键不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long batchNo; + + /** + * 测评人id + */ + @NotNull(message = "测评人id不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long userId; + + /** + * 状态 0 未处理,1 分配咨询师,2 咨询师拒绝干预,3 干预中 4 干预结束 + */ + @NotNull(message = "状态 0 未处理,1 分配咨询师,2 咨询师拒绝干预,3 干预中 4 干预结束不能为空", groups = { AddGroup.class, EditGroup.class }) + private Integer status; + + /** + * 补充说明 + */ + @NotBlank(message = "补充说明不能为空", groups = { AddGroup.class, EditGroup.class }) + private String note; + + /** + * 预警时间 + */ + @NotNull(message = "预警时间不能为空", groups = { AddGroup.class, EditGroup.class }) + private Date warnTime; + + +} diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/vo/SysInterveneRecordVo.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/vo/SysInterveneRecordVo.java new file mode 100644 index 0000000..1d60639 --- /dev/null +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/vo/SysInterveneRecordVo.java @@ -0,0 +1,56 @@ +package org.dromara.scale.domain.vo; + +import org.dromara.scale.domain.SysInterveneRecord; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + + +/** + * 干预记录视图对象 sys_intervene_record + * + * @author cjw + * @date 2024-04-16 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = SysInterveneRecord.class) +public class SysInterveneRecordVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 干预记录id + */ + @ExcelProperty(value = "干预记录id") + private Long interveneId; + + /** + * 预警记录id + */ + @ExcelProperty(value = "预警记录id") + private Long warnId; + + /** + * 诊断 + */ + @ExcelProperty(value = "诊断") + private String diagnose; + + /** + * 诊断附件 + */ + @ExcelProperty(value = "诊断附件") + private Long annex; + + +} diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/vo/SysWarnRecordVo.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/vo/SysWarnRecordVo.java new file mode 100644 index 0000000..650662b --- /dev/null +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/vo/SysWarnRecordVo.java @@ -0,0 +1,70 @@ +package org.dromara.scale.domain.vo; + +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.dromara.scale.domain.SysWarnRecord; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + + +/** + * 预警记录视图对象 sys_warn_record + * + * @author cjw + * @date 2024-04-16 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = SysWarnRecord.class) +public class SysWarnRecordVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * + */ + @ExcelProperty(value = "") + private Long warnId; + + /** + * td_scale_publish表主键 + */ + @ExcelProperty(value = "td_scale_publish表主键") + private Long batchNo; + + /** + * 测评人id + */ + @ExcelProperty(value = "测评人id") + private Long userId; + + /** + * 状态 0 未处理,1 分配咨询师,2 咨询师拒绝干预,3 干预中 4 干预结束 + */ + @ExcelProperty(value = "状态 0 未处理,1 分配咨询师,2 咨询师拒绝干预,3 干预中 4 干预结束") + private Integer status; + + /** + * 补充说明 + */ + @ExcelProperty(value = "补充说明") + private String note; + + /** + * 预警时间 + */ + @ExcelProperty(value = "预警时间") + private Date warnTime; + + +} diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/mapper/SysInterveneRecordMapper.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/mapper/SysInterveneRecordMapper.java new file mode 100644 index 0000000..ca0787b --- /dev/null +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/mapper/SysInterveneRecordMapper.java @@ -0,0 +1,17 @@ +package org.dromara.scale.mapper; + +import org.apache.ibatis.annotations.Mapper; +import org.dromara.scale.domain.SysInterveneRecord; +import org.dromara.scale.domain.vo.SysInterveneRecordVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 干预记录Mapper接口 + * + * @author cjw + * @date 2024-04-16 + */ +@Mapper +public interface SysInterveneRecordMapper extends BaseMapperPlus { + +} diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/mapper/SysWarnRecordMapper.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/mapper/SysWarnRecordMapper.java new file mode 100644 index 0000000..7a3a34a --- /dev/null +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/mapper/SysWarnRecordMapper.java @@ -0,0 +1,17 @@ +package org.dromara.scale.mapper; + +import org.apache.ibatis.annotations.Mapper; +import org.dromara.scale.domain.SysWarnRecord; +import org.dromara.scale.domain.vo.SysWarnRecordVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 预警记录Mapper接口 + * + * @author cjw + * @date 2024-04-16 + */ +@Mapper +public interface SysWarnRecordMapper extends BaseMapperPlus { + +} diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/ISysInterveneRecordService.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/ISysInterveneRecordService.java new file mode 100644 index 0000000..efacc8f --- /dev/null +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/ISysInterveneRecordService.java @@ -0,0 +1,49 @@ +package org.dromara.scale.service; + +import org.dromara.scale.domain.SysInterveneRecord; +import org.dromara.scale.domain.vo.SysInterveneRecordVo; +import org.dromara.scale.domain.bo.SysInterveneRecordBo; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; + +import java.util.Collection; +import java.util.List; + +/** + * 干预记录Service接口 + * + * @author cjw + * @date 2024-04-16 + */ +public interface ISysInterveneRecordService { + + /** + * 查询干预记录 + */ + SysInterveneRecordVo queryById(Long interveneId); + + /** + * 查询干预记录列表 + */ + TableDataInfo queryPageList(SysInterveneRecordBo bo, PageQuery pageQuery); + + /** + * 查询干预记录列表 + */ + List queryList(SysInterveneRecordBo bo); + + /** + * 新增干预记录 + */ + Boolean insertByBo(SysInterveneRecordBo bo); + + /** + * 修改干预记录 + */ + Boolean updateByBo(SysInterveneRecordBo bo); + + /** + * 校验并批量删除干预记录信息 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/ISysWarnRecordService.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/ISysWarnRecordService.java new file mode 100644 index 0000000..4e746fa --- /dev/null +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/ISysWarnRecordService.java @@ -0,0 +1,44 @@ +package org.dromara.scale.service; + +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.scale.domain.SysWarnRecord; +import org.dromara.scale.domain.bo.SysWarnRecordBo; +import org.dromara.scale.domain.vo.SysWarnRecordVo; + +import java.util.List; + +/** + * 预警记录Service接口 + * + * @author cjw + * @date 2024-04-16 + */ +public interface ISysWarnRecordService { + + /** + * 查询预警记录 + */ + SysWarnRecordVo queryById(Long warnId); + + /** + * 查询预警记录列表 + */ + TableDataInfo queryPageList(SysWarnRecordBo bo, PageQuery pageQuery); + + /** + * 查询预警记录列表 + */ + List queryList(SysWarnRecordBo bo); + + /** + * 新增预警记录 + */ + Boolean insertByBo(SysWarnRecord add); + + /** + * 修改预警记录 + */ + Boolean updateByBo(SysWarnRecordBo bo); + +} diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/SysInterveneRecordServiceImpl.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/SysInterveneRecordServiceImpl.java new file mode 100644 index 0000000..9319c5f --- /dev/null +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/SysInterveneRecordServiceImpl.java @@ -0,0 +1,125 @@ +package org.dromara.scale.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import lombok.RequiredArgsConstructor; +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.scale.domain.SysInterveneRecord; +import org.dromara.scale.domain.SysWarnRecord; +import org.dromara.scale.domain.bo.SysInterveneRecordBo; +import org.dromara.scale.domain.vo.SysInterveneRecordVo; +import org.dromara.scale.mapper.SysInterveneRecordMapper; +import org.dromara.scale.mapper.SysWarnRecordMapper; +import org.dromara.scale.service.ISysInterveneRecordService; +import org.springframework.stereotype.Service; + +import java.util.Collection; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/** + * 干预记录Service业务层处理 + * + * @author cjw + * @date 2024-04-16 + */ +@RequiredArgsConstructor +@Service +public class SysInterveneRecordServiceImpl implements ISysInterveneRecordService { + + private final SysInterveneRecordMapper baseMapper; + + private final SysWarnRecordMapper warnMapper; + + /** + * 查询干预记录 + */ + @Override + public SysInterveneRecordVo queryById(Long interveneId) { + return baseMapper.selectVoById(interveneId); + } + + /** + * 查询干预记录列表 + */ + @Override + public TableDataInfo queryPageList(SysInterveneRecordBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询干预记录列表 + */ + @Override + public List queryList(SysInterveneRecordBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(SysInterveneRecordBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.eq(bo.getWarnId() != null, SysInterveneRecord::getWarnId, bo.getWarnId()); + lqw.eq(StringUtils.isNotBlank(bo.getDiagnose()), SysInterveneRecord::getDiagnose, bo.getDiagnose()); + lqw.eq(bo.getAnnex() != null, SysInterveneRecord::getAnnex, bo.getAnnex()); + return lqw; + } + + /** + * 新增干预记录 + */ + @Override + public Boolean insertByBo(SysInterveneRecordBo bo) { + + SysInterveneRecord add = MapstructUtils.convert(bo, SysInterveneRecord.class); + add.setCreateTime(new Date()); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setInterveneId(add.getInterveneId()); + } + Integer status = bo.getStatus(); + if (status.equals(1)) { + SysWarnRecord warnRecord = new SysWarnRecord(); + warnRecord.setWarnId(add.getWarnId()); + warnRecord.setStatus(4); + warnMapper.updateById(warnRecord); + } + return flag; + } + + /** + * 修改干预记录 + */ + @Override + public Boolean updateByBo(SysInterveneRecordBo bo) { + SysInterveneRecord update = MapstructUtils.convert(bo, SysInterveneRecord.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(SysInterveneRecord entity) { + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 批量删除干预记录 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if (isValid) { + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteBatchIds(ids) > 0; + } +} diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/SysWarnRecordServiceImpl.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/SysWarnRecordServiceImpl.java new file mode 100644 index 0000000..d0339e6 --- /dev/null +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/SysWarnRecordServiceImpl.java @@ -0,0 +1,106 @@ +package org.dromara.scale.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import lombok.RequiredArgsConstructor; +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.scale.domain.SysWarnRecord; +import org.dromara.scale.domain.bo.SysWarnRecordBo; +import org.dromara.scale.domain.vo.SysWarnRecordVo; +import org.dromara.scale.mapper.SysWarnRecordMapper; +import org.dromara.scale.service.ISysWarnRecordService; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.Map; + +/** + * 预警记录Service业务层处理 + * + * @author cjw + * @date 2024-04-16 + */ +@RequiredArgsConstructor +@Service +public class SysWarnRecordServiceImpl implements ISysWarnRecordService { + + private final SysWarnRecordMapper baseMapper; + + /** + * 查询预警记录 + */ + @Override + public SysWarnRecordVo queryById(Long warnId) { + return baseMapper.selectVoById(warnId); + } + + /** + * 查询预警记录列表 + */ + @Override + public TableDataInfo queryPageList(SysWarnRecordBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询预警记录列表 + */ + @Override + public List queryList(SysWarnRecordBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(SysWarnRecordBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.eq(bo.getBatchNo() != null, SysWarnRecord::getBatchNo, bo.getBatchNo()); + lqw.eq(bo.getUserId() != null, SysWarnRecord::getUserId, bo.getUserId()); + lqw.eq(bo.getStatus() != null, SysWarnRecord::getStatus, bo.getStatus()); + lqw.eq(StringUtils.isNotBlank(bo.getNote()), SysWarnRecord::getNote, bo.getNote()); + lqw.eq(bo.getWarnTime() != null, SysWarnRecord::getWarnTime, bo.getWarnTime()); + return lqw; + } + + /** + * 新增预警记录 + */ + @Override + public Boolean insertByBo(SysWarnRecord add) { + validEntityBeforeSave(add); + SysWarnRecord sysWarnRecord = baseMapper.selectOne(new LambdaQueryWrapper() + .eq(SysWarnRecord::getBatchNo, add.getBatchNo()) + .eq(SysWarnRecord::getUserId, add.getUserId())); + //保证同一个batch只有一条数据; + if (sysWarnRecord == null) { + return baseMapper.insert(add) > 0; + } else { + return true; + } + } + + /** + * 修改预警记录 + */ + @Override + public Boolean updateByBo(SysWarnRecordBo bo) { + SysWarnRecord update = MapstructUtils.convert(bo, SysWarnRecord.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(SysWarnRecord entity) { + //TODO 做一些数据校验,如唯一约束 + } + + +} diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/WebServiceImpl.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/WebServiceImpl.java index 984ba1a..2ffcf1c 100644 --- a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/WebServiceImpl.java +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/WebServiceImpl.java @@ -20,7 +20,7 @@ import org.dromara.scale.domain.vo.*; import org.dromara.scale.mapper.*; import org.dromara.scale.service.ISysScaleAnswerService; import org.dromara.scale.service.ISysScaleFactorService; -import org.dromara.scale.service.ISysScaleQuestionService; +import org.dromara.scale.service.ISysWarnRecordService; import org.dromara.scale.service.IWebService; import org.dromara.system.domain.SysOss; import org.dromara.system.domain.vo.SysDeptVo; @@ -52,10 +52,10 @@ public class WebServiceImpl implements IWebService { private final ISysScaleFactorService scaleFactorService; - private final ISysScaleQuestionService scaleQuestionService; - private final ISysScaleAnswerService scaleAnswerService; + private final ISysWarnRecordService warnRecordService; + private final SysScaleMapper scaleMapper; private final SysScalePublishMapper publishMapper; @@ -133,7 +133,7 @@ public class WebServiceImpl implements IWebService { add.setUserId(loginUser.getUserId()); add.setDeptId(loginUser.getDeptId()); add.setCreateTime(new Date()); - //validEntityBeforeSave(add); + validEntityBeforeSave(add); boolean flag = recordMapper.insert(add) > 0; if (flag) { bo.setRecordId(add.getRecordId()); @@ -151,7 +151,7 @@ public class WebServiceImpl implements IWebService { int keySize = answerMapByQuestion.keySet().size(); List answerList = bo.getAnswerList(); if (ArrayUtil.isEmpty(answerList)) { - throw new ServiceException("请先填写,再提交"); + throw new ServiceException("请先填写答案,再提交"); } int answerSize = answerList.size(); if (keySize != answerSize) { @@ -171,25 +171,21 @@ public class WebServiceImpl implements IWebService { evaluationConclusionMapper.insertBatch(conclusionAdd); Integer riskLevel = -1; - String riskName = ""; //选择风险等级最高 for (SysEvaluationConclusionVo ec : list) { if (ec.getSituation() > riskLevel) { riskLevel = ec.getSituation(); - riskName = ec.getSituationName(); } } //判断风险等级是否为"高风险、重大风险",若是,则形成预警记录 -// if(riskName.equals("高风险") || riskName.equals("重大风险")){ -// WarnRecordEval wre = new WarnRecordEval(); -// wre.setId(idWorker.nextId()); -// wre.setErId(evalRecord.getId()); -// wre.setRiskLevel(riskName); -// wre.setUserId(evalRecord.getEvalUid()); -// wre.setScaleId(evalRecord.getScaleId()); -// wre.setTenantNo(sysUser.getTenantNo()); -// warnRecordDAO.evalWarn(wre); -// } + if (riskLevel.equals(SituationEnum.HIGH.getValue()) || riskLevel.equals(SituationEnum.MAJOR.getValue())) { + SysWarnRecord wre = new SysWarnRecord(); + wre.setBatchNo(scalePublishVo.getBatchNo()); + wre.setUserId(getLoginUser().getUserId()); + wre.setStatus(0); + wre.setWarnTime(new Date()); + warnRecordService.insertByBo(wre); + } //不允许查看考核结果 if (!allowQueryResult) { return null; @@ -208,6 +204,17 @@ public class WebServiceImpl implements IWebService { }}; } + private void validEntityBeforeSave(SysEvaluationRecord entity) { + //TODO 做一些数据校验,如唯一约束 + List recordList = recordMapper.selectVoList(new LambdaQueryWrapper() + .eq(SysEvaluationRecord::getBatchNo, entity.getBatchNo()) + .eq(SysEvaluationRecord::getUserId, entity.getUserId()) + .eq(SysEvaluationRecord::getScaleId, entity.getScaleId())); + if (!ArrayUtil.isEmpty(recordList)) { + throw new ServiceException("本场次中你已做过此量表"); + } + } + private List calculateEvaluationResult(Long scaleId, List answerList) { Long recordId = answerList.get(0).getRecordId(); Map> questionMapByFactor = scaleFactorService.getQuestionMapByFactor(scaleId); diff --git a/ruoyi-modules/rouyi-scale/src/main/resources/mapper/scale/SysInterveneRecordMapper.xml b/ruoyi-modules/rouyi-scale/src/main/resources/mapper/scale/SysInterveneRecordMapper.xml new file mode 100644 index 0000000..9d1c0ff --- /dev/null +++ b/ruoyi-modules/rouyi-scale/src/main/resources/mapper/scale/SysInterveneRecordMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/ruoyi-modules/rouyi-scale/src/main/resources/mapper/scale/SysWarnRecordMapper.xml b/ruoyi-modules/rouyi-scale/src/main/resources/mapper/scale/SysWarnRecordMapper.xml new file mode 100644 index 0000000..88771ff --- /dev/null +++ b/ruoyi-modules/rouyi-scale/src/main/resources/mapper/scale/SysWarnRecordMapper.xml @@ -0,0 +1,7 @@ + + + + +