From 75ff22d8c9cb6c8af1b736dec6ca4428f63468f2 Mon Sep 17 00:00:00 2001 From: cjw Date: Tue, 30 Jul 2024 11:16:35 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E8=AF=84=E5=88=86=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=EF=BC=9B=E9=87=8F=E8=A1=A8=E8=AF=A6=E6=83=85=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E8=AF=84=E5=88=86=E4=BF=A1=E6=81=AF=EF=BC=9B=E5=B0=8F?= =?UTF-8?q?=E7=A8=8B=E5=BA=8F=E7=AB=AF=E6=B5=8B=E8=AF=84=E5=8A=9F=E8=83=BD?= =?UTF-8?q?=EF=BC=9B=E5=85=B6=E4=BB=96=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WxEvaluationController.java} | 24 ++-- .../wx/WxScoreRecordController.java | 106 ++++++++++++++ .../org/dromara/scale/domain/ScoreRecord.java | 47 +++++++ .../scale/domain/SysEvaluationConclusion.java | 7 +- .../scale/domain/SysEvaluationRecord.java | 17 +-- .../org/dromara/scale/domain/SysScale.java | 4 +- .../dromara/scale/domain/SysScaleAnswer.java | 7 +- .../dromara/scale/domain/SysScaleFactor.java | 4 +- .../scale/domain/SysScaleFactorRange.java | 11 +- .../dromara/scale/domain/SysScalePublish.java | 19 +-- .../scale/domain/SysScaleQuestion.java | 9 +- .../dromara/scale/domain/SysWarnRecord.java | 7 +- .../scale/domain/bo/ScoreRecordBo.java | 49 +++++++ .../scale/domain/vo/ScoreRecordVo.java | 57 ++++++++ .../dromara/scale/domain/vo/SysScaleVo.java | 2 + .../scale/mapper/ScoreRecordMapper.java | 18 +++ ...ebService.java => IEvaluationService.java} | 2 +- .../scale/service/IScoreRecordService.java | 68 +++++++++ ...ceImpl.java => EvaluationServiceImpl.java} | 4 +- .../service/impl/ScoreRecordServiceImpl.java | 131 ++++++++++++++++++ .../service/impl/SysScaleServiceImpl.java | 21 ++- .../mapper/scale/ScoreRecordMapper.xml | 7 + 22 files changed, 567 insertions(+), 54 deletions(-) rename ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/controller/{web/WebController.java => wx/WxEvaluationController.java} (69%) create mode 100644 ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/controller/wx/WxScoreRecordController.java create mode 100644 ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/ScoreRecord.java create mode 100644 ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/bo/ScoreRecordBo.java create mode 100644 ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/vo/ScoreRecordVo.java create mode 100644 ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/mapper/ScoreRecordMapper.java rename ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/{IWebService.java => IEvaluationService.java} (92%) create mode 100644 ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/IScoreRecordService.java rename ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/{WebServiceImpl.java => EvaluationServiceImpl.java} (99%) create mode 100644 ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/ScoreRecordServiceImpl.java create mode 100644 ruoyi-modules/rouyi-scale/src/main/resources/mapper/scale/ScoreRecordMapper.xml diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/controller/web/WebController.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/controller/wx/WxEvaluationController.java similarity index 69% rename from ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/controller/web/WebController.java rename to ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/controller/wx/WxEvaluationController.java index 4eda3dc..85229d6 100644 --- a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/controller/web/WebController.java +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/controller/wx/WxEvaluationController.java @@ -1,4 +1,4 @@ -package org.dromara.scale.controller.web; +package org.dromara.scale.controller.wx; import jakarta.validation.constraints.NotNull; import lombok.RequiredArgsConstructor; @@ -11,7 +11,7 @@ import org.dromara.common.web.core.BaseController; import org.dromara.scale.domain.bo.SubmitAnswerBo; import org.dromara.scale.domain.vo.QuestionAnswerVo; import org.dromara.scale.domain.vo.SysScaleVo; -import org.dromara.scale.service.IWebService; +import org.dromara.scale.service.IEvaluationService; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -23,22 +23,22 @@ import java.util.Map; * * @author cjw * @version V1.0.0 - * @date 2024/4/7 16:44 + * @date 2024/7/30 11:02 */ @Validated @RequiredArgsConstructor @RestController -@RequestMapping("/wx") -public class WebController extends BaseController { +@RequestMapping("/wx/evaluation") +public class WxEvaluationController extends BaseController { - private final IWebService webService; + private final IEvaluationService evaluationService; /** * 查询发布量表 */ @GetMapping("/publish") public R> queryPublish() { - return R.ok(webService.queryPublishScale()); + return R.ok(evaluationService.queryPublishScale()); } /** @@ -46,26 +46,26 @@ public class WebController extends BaseController { */ @GetMapping("/answer/{id}") public R> queryAnswer(@NotNull(message = "主键不能为空") @PathVariable Long id) { - return R.ok(webService.queryQuestionAnswerListByScaleId(id)); + return R.ok(evaluationService.queryQuestionAnswerListByScaleId(id)); } /** * 新增量测记录 */ - @Log(title = "量测记录", businessType = BusinessType.INSERT) + @Log(title = "新增量测记录", businessType = BusinessType.INSERT) @RepeatSubmit() @PostMapping("/record/{id}") public R addRecord(@NotNull(message = "主键不能为空") @PathVariable Long id) { - return toAjax(webService.newRecord(id)); + return toAjax(evaluationService.newRecord(id)); } /** * 新增记录答案选择 */ - @Log(title = "量测记录", businessType = BusinessType.INSERT) + @Log(title = "新增记录答案选择", businessType = BusinessType.INSERT) @RepeatSubmit() @PostMapping("/record/answer") public R> add(@Validated(AddGroup.class) @RequestBody SubmitAnswerBo bo) { - return R.ok(webService.submitAnswer(bo)); + return R.ok(evaluationService.submitAnswer(bo)); } } diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/controller/wx/WxScoreRecordController.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/controller/wx/WxScoreRecordController.java new file mode 100644 index 0000000..fec2af8 --- /dev/null +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/controller/wx/WxScoreRecordController.java @@ -0,0 +1,106 @@ +package org.dromara.scale.controller.wx; + +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.ScoreRecordBo; +import org.dromara.scale.domain.vo.ScoreRecordVo; +import org.dromara.scale.service.IScoreRecordService; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * 评分 + * + * @author cjw + * @date 2024-07-30 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/wx/score") +public class WxScoreRecordController extends BaseController { + + private final IScoreRecordService scoreRecordService; + + /** + * 查询评分列表 + */ + @SaCheckPermission("scale:scoreRecord:list") + @GetMapping("/list") + public TableDataInfo list(ScoreRecordBo bo, PageQuery pageQuery) { + return scoreRecordService.queryPageList(bo, pageQuery); + } + + /** + * 导出评分列表 + */ + @SaCheckPermission("scale:scoreRecord:export") + @Log(title = "评分", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(ScoreRecordBo bo, HttpServletResponse response) { + List list = scoreRecordService.queryList(bo); + ExcelUtil.exportExcel(list, "评分", ScoreRecordVo.class, response); + } + + /** + * 获取评分详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("scale:scoreRecord:query") + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long id) { + return R.ok(scoreRecordService.queryById(id)); + } + + /** + * 新增评分 + */ + @SaCheckPermission("scale:scoreRecord:add") + @Log(title = "评分", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody ScoreRecordBo bo) { + return toAjax(scoreRecordService.insertByBo(bo)); + } + + /** + * 修改评分 + */ + @SaCheckPermission("scale:scoreRecord:edit") + @Log(title = "评分", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody ScoreRecordBo bo) { + return toAjax(scoreRecordService.updateByBo(bo)); + } + + /** + * 删除评分 + * + * @param ids 主键串 + */ + @SaCheckPermission("scale:scoreRecord:remove") + @Log(title = "评分", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] ids) { + return toAjax(scoreRecordService.deleteWithValidByIds(List.of(ids), true)); + } +} diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/ScoreRecord.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/ScoreRecord.java new file mode 100644 index 0000000..2bbfa17 --- /dev/null +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/ScoreRecord.java @@ -0,0 +1,47 @@ +package org.dromara.scale.domain; + +import org.dromara.common.tenant.core.TenantEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.math.BigDecimal; + +import java.io.Serial; + +/** + * 评分对象 m_score_record + * + * @author cjw + * @date 2024-07-30 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("m_score_record") +public class ScoreRecord extends TenantEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * + */ + @TableId(value = "id") + private Long id; + + /** + * status为0是量表id,1是咨询师id + */ + private Long businessId; + + /** + * 0为scale 1为咨询师 + */ + private Integer recordStatus; + + /** + * + */ + private BigDecimal score; + + +} diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/SysEvaluationConclusion.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/SysEvaluationConclusion.java index 9f408e9..dfbadb3 100644 --- a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/SysEvaluationConclusion.java +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/SysEvaluationConclusion.java @@ -3,6 +3,9 @@ package org.dromara.scale.domain; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.dromara.common.tenant.core.TenantEntity; import java.io.Serial; import java.math.BigDecimal; @@ -14,8 +17,10 @@ import java.math.BigDecimal; * @date 2024-04-07 */ @Data +@NoArgsConstructor +@EqualsAndHashCode(callSuper = true) @TableName("sys_evaluation_conclusion") -public class SysEvaluationConclusion { +public class SysEvaluationConclusion extends TenantEntity { @Serial private static final long serialVersionUID = 1L; diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/SysEvaluationRecord.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/SysEvaluationRecord.java index a723672..075d2f0 100644 --- a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/SysEvaluationRecord.java +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/SysEvaluationRecord.java @@ -3,9 +3,11 @@ package org.dromara.scale.domain; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.dromara.common.tenant.core.TenantEntity; import java.io.Serial; -import java.util.Date; /** * 量测记录对象 sys_evaluation_record @@ -14,8 +16,10 @@ import java.util.Date; * @date 2024-04-07 */ @Data +@NoArgsConstructor +@EqualsAndHashCode(callSuper = true) @TableName("sys_evaluation_record") -public class SysEvaluationRecord { +public class SysEvaluationRecord extends TenantEntity { @Serial private static final long serialVersionUID = 1L; @@ -51,13 +55,4 @@ public class SysEvaluationRecord { */ private Integer status; - /** - * 创建时间 - */ - //@TableField(fill = FieldFill.INSERT) - private Date createTime; - - private Date updateTime; - - } diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/SysScale.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/SysScale.java index 0be70a4..823a4a4 100644 --- a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/SysScale.java +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/SysScale.java @@ -6,7 +6,7 @@ import io.github.linpeilie.annotations.AutoMapper; import io.github.linpeilie.annotations.AutoMapping; import lombok.Data; import lombok.EqualsAndHashCode; -import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.tenant.core.TenantEntity; import org.dromara.scale.domain.vo.SysScaleVo; import java.io.Serial; @@ -22,7 +22,7 @@ import java.math.BigDecimal; @EqualsAndHashCode(callSuper = true) @TableName("sys_scale") @AutoMapper(target = SysScaleVo.class, reverseConvertGenerate = false) -public class SysScale extends BaseEntity { +public class SysScale extends TenantEntity { @Serial private static final long serialVersionUID = 1L; diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/SysScaleAnswer.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/SysScaleAnswer.java index aa96ec6..cf77223 100644 --- a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/SysScaleAnswer.java +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/SysScaleAnswer.java @@ -3,6 +3,9 @@ package org.dromara.scale.domain; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.dromara.common.tenant.core.TenantEntity; import java.io.Serial; import java.math.BigDecimal; @@ -14,8 +17,10 @@ import java.math.BigDecimal; * @date 2024-03-29 */ @Data +@NoArgsConstructor +@EqualsAndHashCode(callSuper = true) @TableName("sys_scale_answer") -public class SysScaleAnswer { +public class SysScaleAnswer extends TenantEntity { @Serial private static final long serialVersionUID = 1L; diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/SysScaleFactor.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/SysScaleFactor.java index b62d093..860a527 100644 --- a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/SysScaleFactor.java +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/SysScaleFactor.java @@ -6,7 +6,7 @@ import io.github.linpeilie.annotations.AutoMapper; import io.github.linpeilie.annotations.AutoMapping; import lombok.Data; import lombok.EqualsAndHashCode; -import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.tenant.core.TenantEntity; import org.dromara.scale.domain.vo.SysScaleFactorVo; import java.io.Serial; @@ -22,7 +22,7 @@ import java.math.BigDecimal; @EqualsAndHashCode(callSuper = true) @TableName("sys_scale_factor") @AutoMapper(target = SysScaleFactorVo.class, reverseConvertGenerate = false) -public class SysScaleFactor extends BaseEntity { +public class SysScaleFactor extends TenantEntity { @Serial private static final long serialVersionUID = 1L; diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/SysScaleFactorRange.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/SysScaleFactorRange.java index d8cb9eb..1cf59c7 100644 --- a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/SysScaleFactorRange.java +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/SysScaleFactorRange.java @@ -1,12 +1,14 @@ package org.dromara.scale.domain; -import org.dromara.common.mybatis.core.domain.BaseEntity; -import com.baomidou.mybatisplus.annotation.*; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import lombok.EqualsAndHashCode; -import java.math.BigDecimal; +import lombok.NoArgsConstructor; +import org.dromara.common.tenant.core.TenantEntity; import java.io.Serial; +import java.math.BigDecimal; /** * 因子分段对象 sys_scale_factor_range @@ -15,9 +17,10 @@ import java.io.Serial; * @date 2024-04-07 */ @Data +@NoArgsConstructor @EqualsAndHashCode(callSuper = true) @TableName("sys_scale_factor_range") -public class SysScaleFactorRange extends BaseEntity { +public class SysScaleFactorRange extends TenantEntity { @Serial private static final long serialVersionUID = 1L; diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/SysScalePublish.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/SysScalePublish.java index d291b47..ce815c0 100644 --- a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/SysScalePublish.java +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/SysScalePublish.java @@ -1,12 +1,14 @@ package org.dromara.scale.domain; -import com.baomidou.mybatisplus.annotation.FieldFill; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import io.github.linpeilie.annotations.AutoMapper; import io.github.linpeilie.annotations.AutoMapping; import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.dromara.common.tenant.core.TenantEntity; import org.dromara.scale.domain.vo.SysScalePublishVo; import java.io.Serial; @@ -19,9 +21,11 @@ import java.util.Date; * @date 2024-04-07 */ @Data +@NoArgsConstructor +@EqualsAndHashCode(callSuper = true) @TableName("sys_scale_publish") @AutoMapper(target = SysScalePublishVo.class, reverseConvertGenerate = false) -public class SysScalePublish { +public class SysScalePublish extends TenantEntity { @Serial private static final long serialVersionUID = 1L; @@ -93,18 +97,9 @@ public class SysScalePublish { */ private Integer publishType; - /** - * 创建者 - */ - //@TableField(fill = FieldFill.INSERT) - private Long createBy; @TableField(exist = false) private String createName; - /** - * 创建时间 - */ - @TableField(fill = FieldFill.INSERT) - private Date createTime; + } diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/SysScaleQuestion.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/SysScaleQuestion.java index f7d16a2..183f17e 100644 --- a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/SysScaleQuestion.java +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/SysScaleQuestion.java @@ -1,9 +1,11 @@ package org.dromara.scale.domain; -import org.dromara.common.mybatis.core.domain.BaseEntity; -import com.baomidou.mybatisplus.annotation.*; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.dromara.common.tenant.core.TenantEntity; import java.io.Serial; @@ -14,9 +16,10 @@ import java.io.Serial; * @date 2024-03-29 */ @Data +@NoArgsConstructor @EqualsAndHashCode(callSuper = true) @TableName("sys_scale_question") -public class SysScaleQuestion extends BaseEntity { +public class SysScaleQuestion extends TenantEntity { @Serial private static final long serialVersionUID = 1L; 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 index 2112ef9..34ec1a4 100644 --- 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 @@ -3,6 +3,9 @@ package org.dromara.scale.domain; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.dromara.common.tenant.core.TenantEntity; import java.io.Serial; import java.util.Date; @@ -14,8 +17,10 @@ import java.util.Date; * @date 2024-04-16 */ @Data +@NoArgsConstructor +@EqualsAndHashCode(callSuper = true) @TableName("sys_warn_record") -public class SysWarnRecord { +public class SysWarnRecord extends TenantEntity { @Serial private static final long serialVersionUID = 1L; diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/bo/ScoreRecordBo.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/bo/ScoreRecordBo.java new file mode 100644 index 0000000..07bd1cd --- /dev/null +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/bo/ScoreRecordBo.java @@ -0,0 +1,49 @@ +package org.dromara.scale.domain.bo; + +import org.dromara.scale.domain.ScoreRecord; +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.math.BigDecimal; + +/** + * 评分业务对象 m_score_record + * + * @author cjw + * @date 2024-07-30 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = ScoreRecord.class, reverseConvertGenerate = false) +public class ScoreRecordBo extends BaseEntity { + + /** + * + */ + @NotNull(message = "不能为空", groups = { EditGroup.class }) + private Long id; + + /** + * status为0是量表id,1是咨询师id + */ + @NotNull(message = "status为0是量表id,1是咨询师id不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long businessId; + + /** + * 0为scale 1为咨询师 + */ + @NotNull(message = "0为scale 1为咨询师不能为空", groups = { AddGroup.class, EditGroup.class }) + private Integer recordStatus; + + /** + * + */ + @NotNull(message = "不能为空", groups = { AddGroup.class, EditGroup.class }) + private BigDecimal score; + + +} diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/vo/ScoreRecordVo.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/vo/ScoreRecordVo.java new file mode 100644 index 0000000..97dab8c --- /dev/null +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/vo/ScoreRecordVo.java @@ -0,0 +1,57 @@ +package org.dromara.scale.domain.vo; + +import java.math.BigDecimal; +import org.dromara.scale.domain.ScoreRecord; +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; + + + +/** + * 评分视图对象 m_score_record + * + * @author cjw + * @date 2024-07-30 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = ScoreRecord.class) +public class ScoreRecordVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * + */ + @ExcelProperty(value = "") + private Long id; + + /** + * status为0是量表id,1是咨询师id + */ + @ExcelProperty(value = "status为0是量表id,1是咨询师id") + private Long businessId; + + /** + * 0为scale 1为咨询师 + */ + @ExcelProperty(value = "0为scale 1为咨询师") + private Integer recordStatus; + + /** + * + */ + @ExcelProperty(value = "") + private BigDecimal score; + + +} diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/vo/SysScaleVo.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/vo/SysScaleVo.java index 269d150..bf1d121 100644 --- a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/vo/SysScaleVo.java +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/vo/SysScaleVo.java @@ -123,4 +123,6 @@ public class SysScaleVo implements Serializable { private BigDecimal price; + private BigDecimal score; + } diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/mapper/ScoreRecordMapper.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/mapper/ScoreRecordMapper.java new file mode 100644 index 0000000..212bf2c --- /dev/null +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/mapper/ScoreRecordMapper.java @@ -0,0 +1,18 @@ +package org.dromara.scale.mapper; + +import org.apache.ibatis.annotations.Mapper; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; +import org.dromara.scale.domain.ScoreRecord; +import org.dromara.scale.domain.vo.ScoreRecordVo; + + +/** + * 评分Mapper接口 + * + * @author cjw + * @date 2024-07-30 + */ +@Mapper +public interface ScoreRecordMapper extends BaseMapperPlus { + +} diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/IWebService.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/IEvaluationService.java similarity index 92% rename from ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/IWebService.java rename to ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/IEvaluationService.java index a4d55d2..3015a58 100644 --- a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/IWebService.java +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/IEvaluationService.java @@ -7,7 +7,7 @@ import org.dromara.scale.domain.vo.SysScaleVo; import java.util.List; import java.util.Map; -public interface IWebService { +public interface IEvaluationService { List queryPublishScale(); diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/IScoreRecordService.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/IScoreRecordService.java new file mode 100644 index 0000000..0cce01f --- /dev/null +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/IScoreRecordService.java @@ -0,0 +1,68 @@ +package org.dromara.scale.service; + +import org.dromara.scale.domain.vo.ScoreRecordVo; +import org.dromara.scale.domain.bo.ScoreRecordBo; +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-07-30 + */ +public interface IScoreRecordService { + + /** + * 查询评分 + * + * @param id 主键 + * @return 评分 + */ + ScoreRecordVo queryById(Long id); + + /** + * 分页查询评分列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 评分分页列表 + */ + TableDataInfo queryPageList(ScoreRecordBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的评分列表 + * + * @param bo 查询条件 + * @return 评分列表 + */ + List queryList(ScoreRecordBo bo); + + /** + * 新增评分 + * + * @param bo 评分 + * @return 是否新增成功 + */ + Boolean insertByBo(ScoreRecordBo bo); + + /** + * 修改评分 + * + * @param bo 评分 + * @return 是否修改成功 + */ + Boolean updateByBo(ScoreRecordBo bo); + + /** + * 校验并批量删除评分信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} 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/EvaluationServiceImpl.java similarity index 99% rename from ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/WebServiceImpl.java rename to ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/EvaluationServiceImpl.java index dbb8231..37ee89d 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/EvaluationServiceImpl.java @@ -18,7 +18,7 @@ import org.dromara.scale.mapper.*; import org.dromara.scale.service.ISysScaleAnswerService; import org.dromara.scale.service.ISysScaleFactorService; import org.dromara.scale.service.ISysWarnRecordService; -import org.dromara.scale.service.IWebService; +import org.dromara.scale.service.IEvaluationService; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -42,7 +42,7 @@ import static org.dromara.common.satoken.utils.LoginHelper.getLoginUser; @Slf4j @RequiredArgsConstructor @Service -public class WebServiceImpl implements IWebService { +public class EvaluationServiceImpl implements IEvaluationService { private final ISysScaleFactorService scaleFactorService; diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/ScoreRecordServiceImpl.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/ScoreRecordServiceImpl.java new file mode 100644 index 0000000..e03211b --- /dev/null +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/ScoreRecordServiceImpl.java @@ -0,0 +1,131 @@ +package org.dromara.scale.service.impl; + +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import org.dromara.scale.domain.bo.ScoreRecordBo; +import org.dromara.scale.domain.vo.ScoreRecordVo; +import org.dromara.scale.domain.ScoreRecord; +import org.dromara.scale.mapper.ScoreRecordMapper; +import org.dromara.scale.service.IScoreRecordService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 评分Service业务层处理 + * + * @author cjw + * @date 2024-07-30 + */ +@RequiredArgsConstructor +@Service +public class ScoreRecordServiceImpl implements IScoreRecordService { + + private final ScoreRecordMapper baseMapper; + + /** + * 查询评分 + * + * @param id 主键 + * @return 评分 + */ + @Override + public ScoreRecordVo queryById(Long id){ + return baseMapper.selectVoById(id); + } + + /** + * 分页查询评分列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 评分分页列表 + */ + @Override + public TableDataInfo queryPageList(ScoreRecordBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的评分列表 + * + * @param bo 查询条件 + * @return 评分列表 + */ + @Override + public List queryList(ScoreRecordBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(ScoreRecordBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.eq(bo.getBusinessId() != null, ScoreRecord::getBusinessId, bo.getBusinessId()); + lqw.eq(bo.getRecordStatus() != null, ScoreRecord::getRecordStatus, bo.getRecordStatus()); + lqw.eq(bo.getScore() != null, ScoreRecord::getScore, bo.getScore()); + return lqw; + } + + /** + * 新增评分 + * + * @param bo 评分 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(ScoreRecordBo bo) { + ScoreRecord add = MapstructUtils.convert(bo, ScoreRecord.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setId(add.getId()); + } + return flag; + } + + /** + * 修改评分 + * + * @param bo 评分 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(ScoreRecordBo bo) { + ScoreRecord update = MapstructUtils.convert(bo, ScoreRecord.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(ScoreRecord entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除评分信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } +} diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/SysScaleServiceImpl.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/SysScaleServiceImpl.java index e6c5c40..f06347d 100644 --- a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/SysScaleServiceImpl.java +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/SysScaleServiceImpl.java @@ -10,9 +10,11 @@ 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.ScoreRecord; import org.dromara.scale.domain.SysScale; import org.dromara.scale.domain.bo.SysScaleBo; import org.dromara.scale.domain.vo.SysScaleVo; +import org.dromara.scale.mapper.ScoreRecordMapper; import org.dromara.scale.mapper.SysScaleMapper; import org.dromara.scale.service.ISysScaleService; import org.dromara.system.domain.SysOss; @@ -21,8 +23,10 @@ import org.dromara.system.mapper.SysDictDataMapper; import org.dromara.system.mapper.SysOssMapper; import org.springframework.stereotype.Service; +import java.math.BigDecimal; import java.util.Collection; import java.util.List; +import java.util.OptionalDouble; import java.util.stream.Collectors; /** @@ -37,13 +41,26 @@ public class SysScaleServiceImpl implements ISysScaleService { private final SysScaleMapper baseMapper; private final SysDictDataMapper sysDictDataMapper; private final SysOssMapper sysOssMapper; + private final ScoreRecordMapper scoreMapper; /** * 查询心理测评量 */ @Override public SysScaleVo queryById(Long scaleId) { - return baseMapper.selectVoById(scaleId); + + SysScaleVo sysScaleVo = baseMapper.selectVoById(scaleId); + //计算均分 + List scoreList = scoreMapper.selectList(new LambdaQueryWrapper().select(ScoreRecord::getScore).eq(ScoreRecord::getBusinessId, scaleId).eq(ScoreRecord::getRecordStatus, 0)); + OptionalDouble averageScore = scoreList.stream() + .mapToDouble(score -> score.getScore().doubleValue()) + .average(); + if (averageScore.isPresent()) { + sysScaleVo.setScore(BigDecimal.valueOf(averageScore.getAsDouble())); + } else { + sysScaleVo.setScore(BigDecimal.ZERO); + } + return sysScaleVo; } /** @@ -82,7 +99,7 @@ public class SysScaleServiceImpl implements ISysScaleService { lqw.like(StringUtils.isNotBlank(bo.getScaleName()), SysScale::getScaleName, bo.getScaleName()); lqw.like(StringUtils.isNotBlank(bo.getScaleCode()), SysScale::getScaleCode, bo.getScaleCode()); lqw.eq(bo.getStatus() != null, SysScale::getStatus, bo.getStatus()); - if(CollUtil.isNotEmpty(bo.getScaleType())){ + if (CollUtil.isNotEmpty(bo.getScaleType())) { lqw.like(CollUtil.isNotEmpty(bo.getScaleType()), SysScale::getScaleType, bo.getScaleType().get(0)); } return lqw; diff --git a/ruoyi-modules/rouyi-scale/src/main/resources/mapper/scale/ScoreRecordMapper.xml b/ruoyi-modules/rouyi-scale/src/main/resources/mapper/scale/ScoreRecordMapper.xml new file mode 100644 index 0000000..69c5a80 --- /dev/null +++ b/ruoyi-modules/rouyi-scale/src/main/resources/mapper/scale/ScoreRecordMapper.xml @@ -0,0 +1,7 @@ + + + + +