KlScaleFacade.java 9.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185
  1. package com.diagbot.facade;
  2. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  3. import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
  4. import com.baomidou.mybatisplus.core.metadata.IPage;
  5. import com.diagbot.dto.KlScaleByIdDTO;
  6. import com.diagbot.dto.KlScaleInfoDTO;
  7. import com.diagbot.entity.KlConceptScale;
  8. import com.diagbot.entity.KlConceptStatic;
  9. import com.diagbot.entity.wrapper.KlScaleDetailWrapper;
  10. import com.diagbot.enums.IsDeleteEnum;
  11. import com.diagbot.exception.CommonErrorCode;
  12. import com.diagbot.exception.CommonException;
  13. import com.diagbot.util.BeanUtil;
  14. import com.diagbot.util.DateUtil;
  15. import com.diagbot.util.ListUtil;
  16. import com.diagbot.vo.KlScaleByIdVO;
  17. import com.diagbot.vo.KlScaleClearVO;
  18. import com.diagbot.vo.KlScaleDetailMenuVO;
  19. import com.diagbot.vo.KlScaleInfoVO;
  20. import com.diagbot.vo.KlScaleSatartOrdisaVO;
  21. import com.diagbot.vo.KlScaleSaveGroupVO;
  22. import com.diagbot.vo.KlScaleSaveUpDetailVO;
  23. import com.diagbot.vo.KlScaleSaveUpParentVO;
  24. import com.diagbot.vo.KlScaleSaveUpVO;
  25. import com.diagbot.vo.KlScaleSubDetailVO;
  26. import org.springframework.beans.factory.annotation.Autowired;
  27. import org.springframework.stereotype.Component;
  28. import java.util.ArrayList;
  29. import java.util.Date;
  30. import java.util.List;
  31. import java.util.Map;
  32. import java.util.stream.Collectors;
  33. /**
  34. * @author wangfeng
  35. * @Description:
  36. * @date 2021-05-10 10:29
  37. */
  38. @Component
  39. public class KlScaleFacade {
  40. @Autowired
  41. KlConceptScaleFacade klConceptScaleFacade;
  42. @Autowired
  43. KlConceptStaticFacade klConceptStaticFacade;
  44. public IPage<KlScaleInfoDTO> getKlScaleInfoAll(KlScaleInfoVO klScaleInfoVO) {
  45. IPage<KlScaleInfoDTO> klScaleInfoPage = klConceptStaticFacade.getKlScaleInfoPage(klScaleInfoVO);
  46. return klScaleInfoPage;
  47. }
  48. /**
  49. * @param klScaleByIdVO
  50. * @return
  51. */
  52. public List<KlScaleByIdDTO> getKlScaleById(KlScaleByIdVO klScaleByIdVO) {
  53. List<KlScaleByIdDTO> klScaleInfoData = klConceptStaticFacade.getklScaleInfo(klScaleByIdVO);
  54. List<Long> conceptId = new ArrayList<>();
  55. if (ListUtil.isNotEmpty(klScaleInfoData)) {
  56. for (KlScaleByIdDTO data : klScaleInfoData) {
  57. conceptId.add(data.getConceptId());
  58. }
  59. }
  60. if (ListUtil.isEmpty(conceptId)) {
  61. throw new CommonException(CommonErrorCode.NOT_EXISTS, "该数据不存在!");
  62. }
  63. KlScaleDetailMenuVO detailMenuVO = new KlScaleDetailMenuVO();
  64. detailMenuVO.setConceptId(conceptId);
  65. List<KlScaleDetailWrapper> vteFormDetailData = klConceptScaleFacade.getKlScaleDetailData(detailMenuVO);
  66. Map<Long, Map<Integer, List<KlScaleDetailWrapper>>> collect = vteFormDetailData.stream().filter(i -> !i.getParentId().equals(-1)).collect(Collectors.groupingBy(KlScaleDetailWrapper::getConceptId, Collectors.groupingBy(KlScaleDetailWrapper::getGroupNum)));
  67. //把子级数据,放在父级下
  68. Map<Long, List<KlScaleDetailWrapper>> mapParentId = vteFormDetailData.stream().collect(Collectors.groupingBy(KlScaleDetailWrapper::getConceptId));
  69. for (Long key : mapParentId.keySet()) {
  70. for (KlScaleByIdDTO klScaleByIdData : klScaleInfoData) {
  71. if (klScaleByIdData.getConceptId().equals(key)) {
  72. klScaleByIdData.setKlScaleDetail(mapParentId.get(key));
  73. }
  74. }
  75. }
  76. return klScaleInfoData;
  77. }
  78. public Boolean saveUpKlScaleAll(KlScaleSaveUpVO klScaleSaveUpVO) {
  79. boolean res = false;
  80. Date now = DateUtil.now();
  81. int count = klConceptStaticFacade.count(new QueryWrapper<KlConceptStatic>()
  82. .eq("is_deleted", IsDeleteEnum.N.getKey())
  83. .eq("concept_id", klScaleSaveUpVO.getConceptId())
  84. .ne("id", klScaleSaveUpVO.getId() == null ? -1 : klScaleSaveUpVO.getId()));
  85. if (count > 0) {
  86. throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "该量表已存在");
  87. }
  88. UpdateWrapper<KlConceptScale> KlConceptScaleUp = new UpdateWrapper<>();
  89. KlConceptScaleUp.eq("is_deleted", IsDeleteEnum.N.getKey()).eq("concept_id", klScaleSaveUpVO.getConceptId());
  90. res = klConceptScaleFacade.remove(KlConceptScaleUp);
  91. //更新主表或者保存
  92. if (null == klScaleSaveUpVO.getId()) {
  93. KlConceptStatic klScale = new KlConceptStatic();
  94. klScale.setConceptId(klScaleSaveUpVO.getConceptId());
  95. klScale.setGmtModified(now);
  96. klScale.setModifier(klScaleSaveUpVO.getModifier());
  97. klScale.setStatus(1);
  98. res = klConceptStaticFacade.save(klScale);
  99. }
  100. //保存问题明细
  101. if (res) {
  102. //组别默认从1开始
  103. int baseGroup = 0;
  104. List<KlScaleSaveUpParentVO> klScaleParent = klScaleSaveUpVO.getKlScaleParent();//标题
  105. if (ListUtil.isNotEmpty(klScaleParent)) {
  106. for (KlScaleSaveUpParentVO data : klScaleParent) {
  107. KlConceptScale klConceptScale = new KlConceptScale();
  108. BeanUtil.copyProperties(data, klConceptScale);
  109. klConceptScale.setGmtModified(now);
  110. klConceptScale.setModifier(klScaleSaveUpVO.getModifier());
  111. klConceptScale.setParentId(-1L);
  112. klConceptScale.setConceptId(klScaleSaveUpVO.getConceptId());
  113. res = klConceptScaleFacade.save(klConceptScale);
  114. List<KlScaleSaveGroupVO> klScaleSaveGroup = data.getKlScaleSaveGroup();
  115. if (ListUtil.isNotEmpty(klScaleSaveGroup)) {
  116. for (KlScaleSaveGroupVO groupData : klScaleSaveGroup) {//组别
  117. baseGroup = baseGroup + 1;
  118. List<KlScaleSaveUpDetailVO> klScaleSub = groupData.getKlScaleSub();
  119. if (ListUtil.isNotEmpty(klScaleSub)) {
  120. for (KlScaleSaveUpDetailVO data1 : klScaleSub) {//问题
  121. KlConceptScale klConceptScaleSub = new KlConceptScale();
  122. BeanUtil.copyProperties(data1, klConceptScaleSub);
  123. klConceptScaleSub.setGmtModified(now);
  124. klConceptScaleSub.setGroupNum(baseGroup);
  125. klConceptScaleSub.setModifier(klScaleSaveUpVO.getModifier());
  126. klConceptScaleSub.setParentId(klConceptScale.getId());
  127. klConceptScaleSub.setConceptId(klScaleSaveUpVO.getConceptId());
  128. res = klConceptScaleFacade.save(klConceptScaleSub);
  129. List<KlScaleSubDetailVO> klScaleDetail = data1.getKlScaleDetail();
  130. if (ListUtil.isNotEmpty(klScaleDetail)) {
  131. for (KlScaleSubDetailVO data2 : klScaleDetail) {//答案
  132. KlConceptScale klConceptScaleDetail = new KlConceptScale();
  133. BeanUtil.copyProperties(data2, klConceptScaleDetail);
  134. klConceptScaleDetail.setGmtModified(now);
  135. klConceptScaleDetail.setModifier(klScaleSaveUpVO.getModifier());
  136. klConceptScaleDetail.setParentId(klConceptScaleSub.getId());
  137. klConceptScaleDetail.setConceptId(klScaleSaveUpVO.getConceptId());
  138. res = klConceptScaleFacade.save(klConceptScaleDetail);
  139. }
  140. }
  141. }
  142. }
  143. }
  144. }
  145. }
  146. }
  147. }
  148. return res;
  149. }
  150. public Boolean clearKlScaleAll(KlScaleClearVO klScaleClearVO) {
  151. boolean res = false;
  152. UpdateWrapper<KlConceptScale> KlConceptScaleUp = new UpdateWrapper<>();
  153. KlConceptScaleUp.eq("is_deleted", IsDeleteEnum.N.getKey()).eq("concept_id", klScaleClearVO.getConceptId());
  154. res = klConceptScaleFacade.remove(KlConceptScaleUp);
  155. UpdateWrapper<KlConceptStatic> klScale = new UpdateWrapper<>();
  156. klScale.eq("is_deleted", IsDeleteEnum.N.getKey()).eq("concept_id", klScaleClearVO.getConceptId());
  157. res = klConceptStaticFacade.remove(klScale);
  158. return res;
  159. }
  160. public Boolean startOrDisableScale(KlScaleSatartOrdisaVO klScaleSatartOrdisaVO, int start) {
  161. boolean res = false;
  162. Date now = DateUtil.now();
  163. int sum = klConceptStaticFacade.count(new QueryWrapper<KlConceptStatic>().eq("is_deleted", IsDeleteEnum.N.getKey())
  164. .eq("id", klScaleSatartOrdisaVO.getId()));
  165. if (sum == 0) {
  166. throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "该数据已不存在!");
  167. }
  168. UpdateWrapper<KlConceptStatic> klScaleUpdate = new UpdateWrapper<>();
  169. klScaleUpdate.eq("is_deleted", IsDeleteEnum.N.getKey())
  170. .eq("id", klScaleSatartOrdisaVO.getId())
  171. .set("status", start)
  172. .set("modifier", klScaleSatartOrdisaVO.getModifier())
  173. .set("gmt_modified", now);
  174. return klConceptStaticFacade.update(klScaleUpdate);
  175. }
  176. }