EvaluateManageServiceImpl.java 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  1. package com.xjrsoft.module.evaluate.service.impl;
  2. import cn.dev33.satoken.stp.StpUtil;
  3. import cn.hutool.core.bean.BeanUtil;
  4. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  5. import com.baomidou.mybatisplus.core.toolkit.Wrappers;
  6. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  7. import com.github.yulichang.base.MPJBaseServiceImpl;
  8. import com.xjrsoft.common.exception.MyException;
  9. import com.xjrsoft.module.evaluate.dto.EvaluateManagePageDto;
  10. import com.xjrsoft.module.evaluate.dto.EvaluateWritePageDto;
  11. import com.xjrsoft.module.evaluate.entity.EvaluateExecuter;
  12. import com.xjrsoft.module.evaluate.entity.EvaluateItem;
  13. import com.xjrsoft.module.evaluate.entity.EvaluateManage;
  14. import com.xjrsoft.module.evaluate.entity.EvaluateManageItem;
  15. import com.xjrsoft.module.evaluate.entity.EvaluateObject;
  16. import com.xjrsoft.module.evaluate.mapper.EvaluateExecuterMapper;
  17. import com.xjrsoft.module.evaluate.mapper.EvaluateItemMapper;
  18. import com.xjrsoft.module.evaluate.mapper.EvaluateManageItemMapper;
  19. import com.xjrsoft.module.evaluate.mapper.EvaluateManageMapper;
  20. import com.xjrsoft.module.evaluate.mapper.EvaluateObjectMapper;
  21. import com.xjrsoft.module.evaluate.service.IEvaluateManageService;
  22. import com.xjrsoft.module.evaluate.vo.EvaluateManageItemVo;
  23. import com.xjrsoft.module.evaluate.vo.EvaluateManagePageVo;
  24. import com.xjrsoft.module.evaluate.vo.EvaluateManageScoreVo;
  25. import com.xjrsoft.module.evaluate.vo.EvaluateWritePageVo;
  26. import com.xjrsoft.module.evaluate.vo.EvaluateWriteVo;
  27. import lombok.AllArgsConstructor;
  28. import org.springframework.stereotype.Service;
  29. import org.springframework.transaction.annotation.Transactional;
  30. import java.util.List;
  31. /**
  32. * @title: 评价管理
  33. * @Author dzx
  34. * @Date: 2024-01-16
  35. * @Version 1.0
  36. */
  37. @Service
  38. @AllArgsConstructor
  39. public class EvaluateManageServiceImpl extends MPJBaseServiceImpl<EvaluateManageMapper, EvaluateManage> implements IEvaluateManageService {
  40. private final EvaluateManageMapper evaluateManageMapper;
  41. private final EvaluateObjectMapper evaluateObjectMapper;
  42. private final EvaluateExecuterMapper evaluateExecuterMapper;
  43. private final EvaluateItemMapper evaluateItemMapper;
  44. private final EvaluateManageItemMapper evaluateManageItemMapper;
  45. @Override
  46. @Transactional(rollbackFor = Exception.class)
  47. public Boolean add(EvaluateManage evaluateManage) {
  48. evaluateManage.setStatus(-1);
  49. evaluateManageMapper.insert(evaluateManage);
  50. return true;
  51. }
  52. @Override
  53. @Transactional(rollbackFor = Exception.class)
  54. public Boolean update(EvaluateManage evaluateManage) {
  55. evaluateManageMapper.updateById(evaluateManage);
  56. return true;
  57. }
  58. @Override
  59. @Transactional(rollbackFor = Exception.class)
  60. public Boolean delete(List<Long> ids) {
  61. evaluateManageMapper.deleteBatchIds(ids);
  62. evaluateObjectMapper.delete(Wrappers.lambdaQuery(EvaluateObject.class).in(EvaluateObject::getEvaluateManageId, ids));
  63. evaluateExecuterMapper.delete(Wrappers.lambdaQuery(EvaluateExecuter.class).in(EvaluateExecuter::getEvaluateManageId, ids));
  64. return true;
  65. }
  66. @Override
  67. public Page<EvaluateManagePageVo> getPage(Page<EvaluateManagePageDto> page, EvaluateManagePageDto dto) {
  68. return evaluateManageMapper.getPage(page, dto);
  69. }
  70. @Override
  71. public Boolean release(Long id) {
  72. EvaluateManage evaluateManage = evaluateManageMapper.selectById(id);
  73. if(evaluateManage == null){
  74. throw new MyException("未查询到数据,请检查传入的id是否正确");
  75. }
  76. // evaluateManageItemMapper.cloneItems(evaluateManage.getEvaluateTemplateId(), evaluateManage.getId(), StpUtil.getLoginIdAsLong());
  77. //查询模板中的评价项
  78. List<EvaluateItem> evaluateItemList = evaluateItemMapper.selectList(
  79. new QueryWrapper<EvaluateItem>().lambda()
  80. .eq(EvaluateItem::getEvaluateTemplateId, evaluateManage.getEvaluateTemplateId())
  81. );
  82. //克隆一份,存到评价管理下面,可以采用sql语句
  83. for (EvaluateItem evaluateItem : evaluateItemList) {
  84. EvaluateManageItem manageItem = BeanUtil.toBean(evaluateItem, EvaluateManageItem.class);
  85. manageItem.setEvaluateManageId(evaluateManage.getId());
  86. manageItem.setEvaluateItemId(manageItem.getId());
  87. evaluateManageItemMapper.insert(manageItem);
  88. }
  89. //将评价管理状态改为进行中
  90. evaluateManage.setStatus(1);
  91. evaluateManageMapper.updateById(evaluateManage);
  92. return true;
  93. }
  94. @Override
  95. public Page<EvaluateWritePageVo> getMobilePage(Page<EvaluateWritePageDto> page, EvaluateWritePageDto dto) {
  96. Page<EvaluateWritePageVo> mobilePage = evaluateManageMapper.getMobilePage(page, dto);
  97. if(dto.getStatus() == 1){
  98. List<EvaluateManageScoreVo> scoreList = evaluateManageMapper.getScoreList();
  99. for (EvaluateWritePageVo record : mobilePage.getRecords()) {
  100. for (EvaluateManageScoreVo evaluateManageScoreVo : scoreList) {
  101. if(!record.getId().equals(evaluateManageScoreVo.getEvaluateManageId())){
  102. continue;
  103. }
  104. record.setTotalScore(evaluateManageScoreVo.getScore());
  105. }
  106. }
  107. }
  108. return mobilePage;
  109. }
  110. @Override
  111. public EvaluateWriteVo getWriteInfo(Long id) {
  112. return evaluateManageMapper.getWriteInfo(id);
  113. }
  114. @Override
  115. public List<EvaluateManageItemVo> getItemList(Long id) {
  116. return evaluateManageMapper.getItemList(id);
  117. }
  118. @Override
  119. public List<EvaluateManageItemVo> getResultList(Long id) {
  120. return evaluateManageMapper.getResultList(id, StpUtil.getLoginIdAsLong());
  121. }
  122. }