ConceptDetailFacade.java 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165
  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.client.UserServiceClient;
  6. import com.diagbot.dto.GetConceptDetailListDTO;
  7. import com.diagbot.dto.ConceptDetailDTO;
  8. import com.diagbot.dto.ConceptIndexDTO;
  9. import com.diagbot.dto.RespDTO;
  10. import com.diagbot.entity.ConceptDetail;
  11. import com.diagbot.enums.IsDeleteEnum;
  12. import com.diagbot.enums.LexiconTypeEnum;
  13. import com.diagbot.exception.CommonErrorCode;
  14. import com.diagbot.exception.CommonException;
  15. import com.diagbot.service.ConceptDetailService;
  16. import com.diagbot.service.impl.ConceptDetailServiceImpl;
  17. import com.diagbot.util.DateUtil;
  18. import com.diagbot.util.ListUtil;
  19. import com.diagbot.util.UserUtils;
  20. import com.diagbot.vo.AddConceptDetailVO;
  21. import com.diagbot.vo.GetConceptDetailListVO;
  22. import com.diagbot.vo.GetConceptDetailVO;
  23. import com.diagbot.vo.ConceptIndexVO;
  24. import com.diagbot.vo.RemoveConceptDetailVO;
  25. import org.springframework.beans.factory.annotation.Autowired;
  26. import org.springframework.beans.factory.annotation.Qualifier;
  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. * @Description: 术语基本信息查询业务层
  35. * @author: Weixuan Huang
  36. * @time: 2019/1/16 14:17
  37. */
  38. @Component
  39. public class ConceptDetailFacade extends ConceptDetailServiceImpl {
  40. @Autowired
  41. private UserServiceClient userServiceClient;
  42. @Autowired
  43. @Qualifier("conceptDetailServiceImpl")
  44. private ConceptDetailService conceptDetailService;
  45. /**
  46. * 获取医学术语命名列表
  47. *
  48. * @param getConceptDetailListVO
  49. * @return
  50. */
  51. public IPage<GetConceptDetailListDTO> getListFac(GetConceptDetailListVO getConceptDetailListVO) {
  52. IPage<GetConceptDetailListDTO> ipage = this.baseMapper.getConceptDetailList(getConceptDetailListVO);
  53. List<String> ids = ipage.getRecords().stream().map(i -> i.getModifier()).distinct().collect(Collectors.toList());
  54. if (ids.size() > 0) {
  55. RespDTO<Map<String, String>> respDTO = userServiceClient.getUserInfoByIds(ids);
  56. if (respDTO == null || !CommonErrorCode.OK.getCode().equals(respDTO.code)) {
  57. throw new CommonException(CommonErrorCode.RPC_ERROR,
  58. "获取用户信息失败");
  59. }
  60. ipage.getRecords().forEach(i -> {
  61. i.setModifier(respDTO.data.get(i.getModifier()));
  62. i.setType(LexiconTypeEnum.getName(i.getTypeId().intValue()));
  63. i.setNameType(i.getLibName()+"("+LexiconTypeEnum.getName(i.getTypeId().intValue())+")");
  64. });
  65. }
  66. return ipage;
  67. }
  68. /**
  69. * 医学术语静态知识删除
  70. *
  71. * @param removeConceptDetailVO
  72. * @return
  73. */
  74. public Boolean delete(RemoveConceptDetailVO removeConceptDetailVO) {
  75. if (!(IsDeleteEnum.N.getKey().equals(removeConceptDetailVO.getStatus())
  76. || IsDeleteEnum.Y.getKey().equals(removeConceptDetailVO.getStatus()))) {
  77. throw new CommonException(CommonErrorCode.STATUS_IS_ERROR, "状态值错误【Y】或【N】");
  78. }
  79. String person = UserUtils.getCurrentPrincipleID();
  80. List<Long> ids = removeConceptDetailVO.getConceptId();
  81. Date now = DateUtil.now();
  82. this.update(new ConceptDetail(), new UpdateWrapper<ConceptDetail>()
  83. .in("concept_id", ids)
  84. .set("gmt_modified", now)
  85. .set("modifier", person)
  86. .set("is_deleted", removeConceptDetailVO.getStatus()));
  87. return true;
  88. }
  89. /**
  90. * 获取医学术语静态知识详情
  91. *
  92. * @param getConceptDetailVO
  93. * @return
  94. */
  95. public List<ConceptDetailDTO> getByConceptId(GetConceptDetailVO getConceptDetailVO) {
  96. return this.getByParam(getConceptDetailVO.getConceptId());
  97. }
  98. /**
  99. * 医学术语静态知识添加或者编辑
  100. *
  101. * @param addConceptDetailVOList
  102. * @return
  103. */
  104. public Boolean insertOrUpdate(List<AddConceptDetailVO> addConceptDetailVOList) {
  105. if (ListUtil.isEmpty(addConceptDetailVOList)) {
  106. throw new CommonException(CommonErrorCode.SERVER_IS_ERROR,
  107. "静态知识明细内容不能为空");
  108. }
  109. // 删除原明细信息
  110. Long conceptId = addConceptDetailVOList.get(0).getConceptId();
  111. if (conceptId != null) {
  112. this.remove(new QueryWrapper<ConceptDetail>()
  113. .eq("concept_id", conceptId));
  114. }
  115. // 新增明细信息
  116. String currentUser = UserUtils.getCurrentPrincipleID();
  117. Date now = DateUtil.now();
  118. List<ConceptDetail> list = new ArrayList<>();
  119. for (AddConceptDetailVO detailVO : addConceptDetailVOList) {
  120. ConceptDetail bean = new ConceptDetail();
  121. bean.setConceptId(detailVO.getConceptId());
  122. bean.setGmtModified(now);
  123. bean.setGmtCreate(now);
  124. bean.setIsDeleted(IsDeleteEnum.N.getKey());
  125. bean.setModifier(currentUser);
  126. bean.setCreator(currentUser);
  127. bean.setContent(detailVO.getContent());
  128. bean.setIsReason(detailVO.getIsReason());
  129. bean.setOrderNo(detailVO.getOrderNo());
  130. bean.setPosition(detailVO.getPosition());
  131. bean.setText(detailVO.getText());
  132. bean.setTitle(detailVO.getTitle());
  133. list.add(bean);
  134. }
  135. conceptDetailService.saveBatch(list);
  136. return true;
  137. }
  138. /**
  139. * 检索
  140. *
  141. * @param conceptIndexVO
  142. * @return
  143. */
  144. public List<ConceptIndexDTO> indexFac(ConceptIndexVO conceptIndexVO) {
  145. List<ConceptIndexDTO> retList = this.index(conceptIndexVO);
  146. retList.forEach(i->{
  147. i.setType(LexiconTypeEnum.getName(i.getTypeId().intValue()));
  148. i.setNameType(i.getName()+"("+LexiconTypeEnum.getName(i.getTypeId().intValue())+")");
  149. });
  150. return retList;
  151. }
  152. }