diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/constant/SituationEnum.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/constant/SituationEnum.java index b312590..a4a0f99 100644 --- a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/constant/SituationEnum.java +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/constant/SituationEnum.java @@ -11,7 +11,7 @@ public enum SituationEnum { */ NONE(1, "未见异常"), LOW(2, "低风险"), - MIDDEL(3, "中风险"), + MIDDLE(3, "中风险"), HIGH(4, "高风险"), MAJOR(5, "重大风险"); diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/controller/StatisticController.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/controller/StatisticController.java new file mode 100644 index 0000000..711638f --- /dev/null +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/controller/StatisticController.java @@ -0,0 +1,61 @@ +package org.dromara.scale.controller; + +import lombok.RequiredArgsConstructor; +import org.dromara.common.core.domain.R; +import org.dromara.common.web.core.BaseController; +import org.dromara.scale.domain.vo.StatisticCompleteVo; +import org.dromara.scale.domain.vo.StatisticWarnVo; +import org.dromara.scale.service.IStatisticService; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +/** + *

统计

+ * + * @author cjw + * @version V1.0.0 + * @date 2024/4/21 16:22 + */ +@RequiredArgsConstructor +@RestController +@RequestMapping("/scale/statistic") +public class StatisticController extends BaseController { + + private final IStatisticService statisticService; + + /** + * 获取完成情况统计 + */ + @GetMapping("/complete/all") + public R getComplete(Long batchNo, Long scaleId) { + return R.ok(statisticService.getComplete4All(batchNo, scaleId)); + } + + /** + * 获取完成情况统计 + */ + @GetMapping("/complete/class") + public R> getComplete4Class(Long batchNo, Long scaleId) { + return R.ok(statisticService.getComplete4Class(batchNo, scaleId)); + } + + /** + * 获取完成情况统计 + */ + @GetMapping("/warn/all") + public R getWarn(Long batchNo, Long scaleId) { + return R.ok(statisticService.getWarn4All(batchNo, scaleId)); + } + + /** + * 获取完成情况统计 + */ + @GetMapping("/warn/class") + public R> getWarn4Class(Long batchNo, Long scaleId) { + return R.ok(statisticService.getWarn4Class(batchNo, scaleId)); + } + +} 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 index d00eb22..c4041a2 100644 --- 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 @@ -2,12 +2,10 @@ 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; @@ -80,23 +78,23 @@ public class SysInterveneRecordController extends BaseController { /** * 修改干预记录 */ - @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)); - } +// @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)); - } +// @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/SysScaleAnswerController.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/controller/SysScaleAnswerController.java index e90c2bd..8184644 100644 --- a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/controller/SysScaleAnswerController.java +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/controller/SysScaleAnswerController.java @@ -1,21 +1,10 @@ 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.excel.utils.ExcelUtil; -import org.dromara.common.log.annotation.Log; -import org.dromara.common.log.enums.BusinessType; import org.dromara.common.web.core.BaseController; -import org.dromara.scale.domain.bo.SysScaleAnswerBo; -import org.dromara.scale.domain.vo.SysScaleAnswerVo; -import org.dromara.scale.service.ISysScaleAnswerService; import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.*; - -import java.util.List; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; /** * 选项信息 @@ -29,7 +18,7 @@ import java.util.List; @RequestMapping("/scale/answer") public class SysScaleAnswerController extends BaseController { - private final ISysScaleAnswerService sysScaleAnswerService; + //private final ISysScaleAnswerService sysScaleAnswerService; /** * 查询选项信息列表 @@ -43,23 +32,23 @@ public class SysScaleAnswerController extends BaseController { /** * 导出选项信息列表 */ - @SaCheckPermission("scale:answer:export") - @Log(title = "选项信息", businessType = BusinessType.EXPORT) - @PostMapping("/export") - public void export(SysScaleAnswerBo bo, HttpServletResponse response) { - List list = sysScaleAnswerService.queryList(bo); - ExcelUtil.exportExcel(list, "选项信息", SysScaleAnswerVo.class, response); - } +// @SaCheckPermission("scale:answer:export") +// @Log(title = "选项信息", businessType = BusinessType.EXPORT) +// @PostMapping("/export") +// public void export(SysScaleAnswerBo bo, HttpServletResponse response) { +// List list = sysScaleAnswerService.queryList(bo); +// ExcelUtil.exportExcel(list, "选项信息", SysScaleAnswerVo.class, response); +// } /** * 获取选项信息详细信息 * * @param answerId 主键 */ - @SaCheckPermission("scale:answer:query") - @GetMapping("/{answerId}") - public R getInfo(@NotNull(message = "主键不能为空") - @PathVariable Long answerId) { - return R.ok(sysScaleAnswerService.queryById(answerId)); - } +// @SaCheckPermission("scale:answer:query") +// @GetMapping("/{answerId}") +// public R getInfo(@NotNull(message = "主键不能为空") +// @PathVariable Long answerId) { +// return R.ok(sysScaleAnswerService.queryById(answerId)); +// } } diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/controller/SysScaleFactorController.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/controller/SysScaleFactorController.java index a174772..9188d5d 100644 --- a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/controller/SysScaleFactorController.java +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/controller/SysScaleFactorController.java @@ -109,5 +109,4 @@ public class SysScaleFactorController extends BaseController { return toAjax(sysScaleFactorService.deleteWithValidByIds(List.of(factorIds), true)); } - } diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/controller/SysScalePublishController.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/controller/SysScalePublishController.java index f695e94..dd8acfc 100644 --- a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/controller/SysScalePublishController.java +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/controller/SysScalePublishController.java @@ -14,7 +14,7 @@ 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.SysScalePublishBo; -import org.dromara.scale.domain.vo.StatisticVo; +import org.dromara.scale.domain.vo.EvaluationVo; import org.dromara.scale.domain.vo.SysScalePublishVo; import org.dromara.scale.service.ISysScalePublishService; import org.springframework.validation.annotation.Validated; @@ -93,20 +93,11 @@ public class SysScalePublishController extends BaseController { } /** - * 获取量测记录统计 + * 获取量测进度 */ @SaCheckPermission("evaluation:record:query") - @GetMapping("/statistic/all") - public R getStatistic(Long batchNo, Long scale) { - return R.ok(sysScalePublishService.getStatistic4All(batchNo, scale)); - } - - /** - * 获取量测记录统计 - */ - @SaCheckPermission("evaluation:record:query") - @GetMapping("/statistic/class") - public R> getStatistic4Class(Long batchNo, Long scale) { - return R.ok(sysScalePublishService.getStatistic4Class(batchNo, scale)); + @GetMapping("/evaluation/list") + public R> getEvaluationList(Long batchNo, Long scaleId) { + return R.ok(sysScalePublishService.getEvaluationList(batchNo, scaleId)); } } 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 index 9e6dd26..d11d054 100644 --- 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 @@ -79,7 +79,13 @@ public class SysWarnRecordController extends BaseController { return toAjax(sysWarnRecordService.updateByBo(bo)); } - @SaCheckPermission("sacle:warn:query") + /** + * 查询预警下的量测记录 + * + * @param warnId + * @return + */ + @SaCheckPermission("scale:warn:query") @GetMapping("/evaluation/record") public R> getEvaluationRecordList(@NotNull(message = "主键不能为空") Long warnId) { return R.ok(sysWarnRecordService.queryConclusionListByWarnId(warnId)); diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/vo/EvaluationVo.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/vo/EvaluationVo.java new file mode 100644 index 0000000..57faf3c --- /dev/null +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/vo/EvaluationVo.java @@ -0,0 +1,38 @@ +package org.dromara.scale.domain.vo; + +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; + +/** + *

量测进度

+ * + * @author cjw + * @version V1.0.0 + * @date 2024/4/21 15:44 + */ +@Data +public class EvaluationVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + + private Long recordId; + + private Long scaleId; + + private String scaleName; + + private Long userId; + + private String nickName; + + private Long deptId; + + private String deptName; + + private Boolean used; + +} diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/vo/StatisticVo.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/vo/StatisticCompleteVo.java similarity index 52% rename from ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/vo/StatisticVo.java rename to ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/vo/StatisticCompleteVo.java index 1424c85..8a3bf73 100644 --- a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/vo/StatisticVo.java +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/vo/StatisticCompleteVo.java @@ -2,15 +2,21 @@ package org.dromara.scale.domain.vo; import lombok.Data; +import java.io.Serial; +import java.io.Serializable; + /** - *

统计实体

+ *

统计完成

* * @author cjw * @version V1.0.0 * @date 2024/4/17 15:21 */ @Data -public class StatisticVo { +public class StatisticCompleteVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; private String name; diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/vo/StatisticWarnVo.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/vo/StatisticWarnVo.java new file mode 100644 index 0000000..bfe61f4 --- /dev/null +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/vo/StatisticWarnVo.java @@ -0,0 +1,28 @@ +package org.dromara.scale.domain.vo; + +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; + +/** + *

统计预警

+ * + * @author cjw + * @version V1.0.0 + * @date 2024/4/21 16:31 + */ +@Data +public class StatisticWarnVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + private String deptName; + + private Integer noneNum; + private Integer lowNum; + private Integer middleNum; + private Integer highNum; + private Integer majorNum; +} diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/mapper/SysScalePublishMapper.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/mapper/SysScalePublishMapper.java index 87e4aaf..7d88da3 100644 --- a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/mapper/SysScalePublishMapper.java +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/mapper/SysScalePublishMapper.java @@ -4,7 +4,9 @@ import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; import org.dromara.scale.domain.SysScalePublish; -import org.dromara.scale.domain.vo.StatisticVo; +import org.dromara.scale.domain.vo.EvaluationVo; +import org.dromara.scale.domain.vo.StatisticCompleteVo; +import org.dromara.scale.domain.vo.StatisticWarnVo; import org.dromara.scale.domain.vo.SysScalePublishVo; import java.util.List; @@ -18,12 +20,20 @@ import java.util.List; @Mapper public interface SysScalePublishMapper extends BaseMapperPlus { - StatisticVo selectSingleAllAvaluation(Long batchNo); + StatisticCompleteVo selectSingleAllAvaluation(Long batchNo); - StatisticVo selectSingleAlreadyAvaluation(@Param("batchNo") Long batchNo, @Param("scaleId") Long scaleId); + StatisticCompleteVo selectSingleCompleteAvaluation(@Param("batchNo") Long batchNo, @Param("scaleId") Long scaleId); - List selectAllAvaluation(Long batchNo); + List selectAllAvaluation(Long batchNo); - List selectAlreadyAvaluation(@Param("batchNo") Long batchNo, @Param("scaleId") Long scaleId); + List selectCompleteAvaluation(@Param("batchNo") Long batchNo, @Param("scaleId") Long scaleId); + + List selectEvaluationVoList(@Param("batchNo") Long batchNo, @Param("scaleId") Long scaleId); + + List selectEvaluationVoList4Parent(@Param("batchNo") Long batchNo, @Param("scaleId") Long scaleId); + + StatisticWarnVo selectStatisticWarn(@Param("batchNo") Long batchNo, @Param("scaleId") Long scaleId); + + List selectStatisticWarn4Class(@Param("batchNo") Long batchNo, @Param("scaleId") Long scaleId); } diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/IStatisticService.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/IStatisticService.java new file mode 100644 index 0000000..599aa47 --- /dev/null +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/IStatisticService.java @@ -0,0 +1,19 @@ +package org.dromara.scale.service; + +import org.dromara.scale.domain.vo.StatisticCompleteVo; +import org.dromara.scale.domain.vo.StatisticWarnVo; + +import java.util.List; + +public interface IStatisticService { + + + StatisticCompleteVo getComplete4All(Long batchNo, Long scaleId); + + List getComplete4Class(Long batchNo, Long scaleId); + + + StatisticWarnVo getWarn4All(Long batchNo, Long scaleId); + + List getWarn4Class(Long batchNo, Long scaleId); +} diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/ISysScalePublishService.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/ISysScalePublishService.java index 9027597..be942c2 100644 --- a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/ISysScalePublishService.java +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/ISysScalePublishService.java @@ -3,7 +3,7 @@ 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.bo.SysScalePublishBo; -import org.dromara.scale.domain.vo.StatisticVo; +import org.dromara.scale.domain.vo.EvaluationVo; import org.dromara.scale.domain.vo.SysScalePublishVo; import java.util.Collection; @@ -47,7 +47,7 @@ public interface ISysScalePublishService { */ Boolean deleteWithValidByIds(Collection ids, Boolean isValid); - StatisticVo getStatistic4All(Long batchNo,Long scale); - List getStatistic4Class(Long batchNo,Long scale); + List getEvaluationList(Long batchNo,Long scaleId); + } diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/StatisticService.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/StatisticService.java new file mode 100644 index 0000000..147bc9b --- /dev/null +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/StatisticService.java @@ -0,0 +1,62 @@ +package org.dromara.scale.service.impl; + +import lombok.RequiredArgsConstructor; +import org.dromara.scale.domain.vo.StatisticCompleteVo; +import org.dromara.scale.domain.vo.StatisticWarnVo; +import org.dromara.scale.mapper.SysScalePublishMapper; +import org.dromara.scale.service.IStatisticService; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +/** + *

TODO

+ * + * @author cjw + * @version V1.0.0 + * @date 2024/4/21 16:24 + */ + +@RequiredArgsConstructor +@Service +public class StatisticService implements IStatisticService { + + private final SysScalePublishMapper scalePublishMapper; + + @Override + public StatisticCompleteVo getComplete4All(Long batchNo, Long scaleId) { + StatisticCompleteVo all = scalePublishMapper.selectSingleAllAvaluation(batchNo); + int total = all.getValue(); + StatisticCompleteVo already = scalePublishMapper.selectSingleCompleteAvaluation(batchNo, scaleId); + int alreadyValue = already.getValue(); + all.setSpareValue(total - alreadyValue); + return all; + } + + @Override + public List getComplete4Class(Long batchNo, Long scaleId) { + List all = scalePublishMapper.selectAllAvaluation(batchNo); + Map collect = all.stream().collect(Collectors.groupingBy(StatisticCompleteVo::getName, + Collectors.collectingAndThen(Collectors.mapping(StatisticCompleteVo::getValue, Collectors.toList()), + values -> values.get(0)))); + List completeList = scalePublishMapper.selectCompleteAvaluation(batchNo, scaleId); + completeList.forEach(a -> { + String name = a.getName(); + int total = collect.get(name); + a.setSpareValue(total - a.getValue()); + }); + return completeList; + } + + @Override + public StatisticWarnVo getWarn4All(Long batchNo, Long scaleId) { + return scalePublishMapper.selectStatisticWarn(batchNo, scaleId); + } + + @Override + public List getWarn4Class(Long batchNo, Long scaleId) { + return scalePublishMapper.selectStatisticWarn4Class(batchNo, scaleId); + } +} diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/SysScalePublishServiceImpl.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/SysScalePublishServiceImpl.java index 9e1457e..a3c2abb 100644 --- a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/SysScalePublishServiceImpl.java +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/SysScalePublishServiceImpl.java @@ -18,18 +18,19 @@ import org.dromara.common.redis.utils.QueueUtils; import org.dromara.scale.constant.StatusEnum; import org.dromara.scale.domain.SysScalePublish; import org.dromara.scale.domain.bo.SysScalePublishBo; -import org.dromara.scale.domain.vo.StatisticVo; +import org.dromara.scale.domain.vo.EvaluationVo; import org.dromara.scale.domain.vo.SysScalePublishVo; import org.dromara.scale.domain.vo.SysScaleVo; import org.dromara.scale.mapper.SysScaleMapper; import org.dromara.scale.mapper.SysScalePublishMapper; import org.dromara.scale.service.ISysScalePublishService; +import org.dromara.system.domain.vo.SysDeptVo; +import org.dromara.system.mapper.SysDeptMapper; import org.springframework.stereotype.Service; import java.util.Collection; import java.util.Date; import java.util.List; -import java.util.Map; import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; @@ -47,7 +48,9 @@ public class SysScalePublishServiceImpl implements ISysScalePublishService { private final SysScalePublishMapper baseMapper; - private final SysScaleMapper sysScaleMapper; + private final SysScaleMapper scaleMapper; + + private final SysDeptMapper deptMapper; /** * 查询量发布 @@ -107,12 +110,12 @@ public class SysScalePublishServiceImpl implements ISysScalePublishService { throw new ServiceException("截止日期必须在六小时后"); } if (CollUtil.isNotEmpty(bo.getScaleIds())) { - List list = sysScaleMapper.findSysScaleByIds(StrUtil.join(StrUtil.COMMA, bo.getScaleIds())); + List list = scaleMapper.findSysScaleByIds(StrUtil.join(StrUtil.COMMA, bo.getScaleIds())); add.setScaleNames(list.stream().map(SysScaleVo::getScaleName).collect(Collectors.joining(StrUtil.COMMA))); //List scaleList = new ArrayList<>(bo.getScaleIds().size()); for (String scaleId : bo.getScaleIds()) { - sysScaleMapper.updatePublishNums(Long.parseLong(scaleId)); + scaleMapper.updatePublishNums(Long.parseLong(scaleId)); // SysScale sysScale = sysScaleMapper.selectById(scaleId); // sysScale.setPublishNums(sysScale.getPublishNums() + 1); // scaleList.add(sysScale); @@ -163,35 +166,33 @@ public class SysScalePublishServiceImpl implements ISysScalePublishService { return baseMapper.deleteBatchIds(ids) > 0; } - /** - * 统计本场次 - * - * @param batchNo - * @return - */ @Override - public StatisticVo getStatistic4All(Long batchNo, Long scale) { - //SysScalePublishVo sysScalePublishVo = baseMapper.selectVoById(batchNo); - StatisticVo all = baseMapper.selectSingleAllAvaluation(batchNo); - int total = all.getValue(); - StatisticVo already = baseMapper.selectSingleAlreadyAvaluation(batchNo, scale); - int alreadyValue = already.getValue(); - all.setSpareValue(total - alreadyValue); - return all; + public List getEvaluationList(Long batchNo, Long scaleId) { + SysScalePublishVo scalePublishVo = baseMapper.selectVoById(batchNo); + Long deptId = scalePublishVo.getDeptId(); + //为父级 + List evaluationVos; + if (isParent(deptId)) { + evaluationVos = baseMapper.selectEvaluationVoList4Parent(batchNo, scaleId); + } else { + evaluationVos = baseMapper.selectEvaluationVoList(batchNo, scaleId); + } + SysScaleVo sysScaleVo = scaleMapper.selectVoById(scaleId); + evaluationVos.forEach(e -> { + e.setScaleId(scaleId); + e.setScaleName(sysScaleVo.getScaleName()); + e.setUsed(e.getRecordId() != null); + }); + return evaluationVos; } - @Override - public List getStatistic4Class(Long batchNo, Long scale) { - List all = baseMapper.selectAllAvaluation(batchNo); - Map collect = all.stream().collect(Collectors.groupingBy(StatisticVo::getName, - Collectors.collectingAndThen(Collectors.mapping(StatisticVo::getValue, Collectors.toList()), - values -> values.get(0)))); - List alreadyList = baseMapper.selectAlreadyAvaluation(batchNo, scale); - alreadyList.forEach(a -> { - String name = a.getName(); - int total = collect.get(name); - a.setSpareValue(total - a.getValue()); - }); - return alreadyList; + private boolean isParent(Long deptId) { + SysDeptVo dept = deptMapper.selectDeptById(deptId); + List split = StrUtil.split(dept.getAncestors(), StringUtils.SEPARATOR); + if (split.size() <= 2) { + return true; + } else { + return false; + } } } diff --git a/ruoyi-modules/rouyi-scale/src/main/resources/mapper/scale/SysScalePublishMapper.xml b/ruoyi-modules/rouyi-scale/src/main/resources/mapper/scale/SysScalePublishMapper.xml index c08923f..89b3e31 100644 --- a/ruoyi-modules/rouyi-scale/src/main/resources/mapper/scale/SysScalePublishMapper.xml +++ b/ruoyi-modules/rouyi-scale/src/main/resources/mapper/scale/SysScalePublishMapper.xml @@ -3,41 +3,99 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - select d.dept_name as `name`, count(u.user_id) as `value` from sys_scale_publish sp - left join sys_dept d on sp.dept_id = d.dept_id - left join sys_user u on d.dept_id = u.dept_id and u.user_type = 'student' + left join sys_dept d on d.dept_id = sp.dept_id + left join sys_user u on find_in_set(u.dept_id, d.ancestors) and u.user_type = 'student' where sp.batch_no = #{batchNo} group by d.dept_id - select d.dept_name as `name`, count(er.record_id) as `value` from sys_scale_publish sp - left join sys_dept d on sp.dept_id = d.dept_id + left join sys_dept d on d.dept_id = sp.dept_id left join sys_evaluation_record er on er.batch_no = sp.batch_no where sp.batch_no = #{batchNo} and er.scale_id = #{scaleId} group by d.dept_id - select d.dept_name as `name`, count(u.user_id) as `value` from sys_scale_publish sp - left join sys_dept d on sp.dept_id = d.parent_id - left join sys_user u on d.dept_id = u.dept_id and u.user_type = 'student' + left join sys_dept d on d.parent_id = sp.dept_id + left join sys_user u on u.dept_id = d.dept_id and u.user_type = 'student' where sp.batch_no = #{batchNo} group by d.dept_id - select d.dept_name as `name`, count(er.record_id) as `value` from sys_scale_publish sp - left join sys_dept d on sp.dept_id = d.parent_id + left join sys_dept d on d.parent_id = sp.dept_id left join sys_evaluation_record er on er.batch_no = sp.batch_no where sp.batch_no = #{batchNo} and er.scale_id = #{scaleId} group by d.dept_id + + + + + + + +