|
@@ -1,6 +1,7 @@
|
|
|
package com.diagbot.facade;
|
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
import com.diagbot.client.CdssCoreClient;
|
|
|
import com.diagbot.dto.ConceptInfoDTO;
|
|
@@ -15,23 +16,29 @@ import com.diagbot.enums.ConceptTypeEnum;
|
|
|
import com.diagbot.enums.IsDeleteEnum;
|
|
|
import com.diagbot.exception.CommonErrorCode;
|
|
|
import com.diagbot.exception.CommonException;
|
|
|
+import com.diagbot.service.ConceptDetailService;
|
|
|
import com.diagbot.service.impl.ConceptInfoServiceImpl;
|
|
|
import com.diagbot.util.BeanUtil;
|
|
|
+import com.diagbot.util.DateUtil;
|
|
|
import com.diagbot.util.EntityUtil;
|
|
|
import com.diagbot.util.ListUtil;
|
|
|
import com.diagbot.util.RespDTOUtil;
|
|
|
import com.diagbot.util.StringUtil;
|
|
|
import com.diagbot.util.SysUserUtils;
|
|
|
+import com.diagbot.vo.ChangeStatusVO;
|
|
|
import com.diagbot.vo.ConceptInfoPageVO;
|
|
|
+import com.diagbot.vo.ConceptInfoVO;
|
|
|
import com.diagbot.vo.StaticKnowledgeHISVO;
|
|
|
import com.diagbot.vo.StaticKnowledgeIndexVO;
|
|
|
import com.diagbot.vo.StaticKnowledgeVO;
|
|
|
import com.google.common.collect.Lists;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.beans.factory.annotation.Qualifier;
|
|
|
import org.springframework.stereotype.Component;
|
|
|
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.Arrays;
|
|
|
+import java.util.Date;
|
|
|
import java.util.HashMap;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
@@ -51,6 +58,9 @@ public class ConceptInfoFacade extends ConceptInfoServiceImpl {
|
|
|
@Autowired
|
|
|
private ConceptDetailFacade conceptDetailFacade;
|
|
|
@Autowired
|
|
|
+ @Qualifier("conceptDetailServiceImpl")
|
|
|
+ private ConceptDetailService conceptDetailService;
|
|
|
+ @Autowired
|
|
|
private LisConfigFacade lisConfigFacade;
|
|
|
@Autowired
|
|
|
private PacsConfigFacade pacsConfigFacade;
|
|
@@ -490,4 +500,105 @@ public class ConceptInfoFacade extends ConceptInfoServiceImpl {
|
|
|
page.setRecords(records);
|
|
|
return page;
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 保存记录(新增or修改)
|
|
|
+ *
|
|
|
+ * @param conceptInfoVO
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public Boolean saveOrUpdateRecord(ConceptInfoVO conceptInfoVO) {
|
|
|
+ String userId = SysUserUtils.getCurrentPrincipleID();
|
|
|
+ Date now = DateUtil.now();
|
|
|
+ List<DictionaryInfoDTO> dicList = dictionaryFacade.getListByGroupType(8);
|
|
|
+ //术语类型转换
|
|
|
+ String typeName = convertTypeName(ConceptTypeEnum.getName(Integer.valueOf(conceptInfoVO.getType())), 1, dicList);
|
|
|
+ conceptInfoVO.setTypeName(typeName);
|
|
|
+ if (conceptInfoVO.getId() == null) {
|
|
|
+ QueryWrapper<ConceptInfo> conceptInfoQueryWrapper = new QueryWrapper<>();
|
|
|
+ conceptInfoQueryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
|
|
|
+ .eq("name", conceptInfoVO.getName())
|
|
|
+ .eq("type", typeName);
|
|
|
+ ConceptInfo conceptInfo = this.getOne(conceptInfoQueryWrapper, false);
|
|
|
+ //术语不存在,保存术语信息
|
|
|
+ if (conceptInfo == null) {
|
|
|
+ BeanUtil.copyProperties(conceptInfoVO, conceptInfo);
|
|
|
+ conceptInfo.setType(typeName);
|
|
|
+ conceptInfo.setCreator(userId);
|
|
|
+ conceptInfo.setGmtCreate(now);
|
|
|
+ conceptInfo.setModifier(userId);
|
|
|
+ conceptInfo.setGmtModified(now);
|
|
|
+ this.save(conceptInfo);
|
|
|
+ }
|
|
|
+ conceptInfoVO.setId(conceptInfo.getId());
|
|
|
+ }
|
|
|
+
|
|
|
+ //删除已有静态信息
|
|
|
+ QueryWrapper<ConceptDetail> conceptDetailQueryWrapper = new QueryWrapper<>();
|
|
|
+ conceptDetailQueryWrapper.eq("concept_id", conceptInfoVO.getId());
|
|
|
+ conceptDetailFacade.remove(conceptDetailQueryWrapper);
|
|
|
+ //插入新的静态信息
|
|
|
+ List<ConceptDetail> conceptDetailList = Lists.newLinkedList();
|
|
|
+ if (ListUtil.isNotEmpty(conceptInfoVO.getDetails())) {
|
|
|
+ conceptInfoVO.getDetails().forEach(detail -> {
|
|
|
+ ConceptDetail conceptDetail = new ConceptDetail();
|
|
|
+ BeanUtil.copyProperties(detail, conceptDetail);
|
|
|
+ conceptDetail.setConceptId(conceptInfoVO.getId());
|
|
|
+ conceptDetail.setCreator(userId);
|
|
|
+ conceptDetail.setGmtCreate(now);
|
|
|
+ conceptDetail.setModifier(userId);
|
|
|
+ conceptDetail.setGmtModified(now);
|
|
|
+ conceptDetailList.add(conceptDetail);
|
|
|
+ });
|
|
|
+ conceptDetailService.saveBatch(conceptDetailList);
|
|
|
+ }
|
|
|
+
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 启用禁用
|
|
|
+ *
|
|
|
+ * @param changeStatusVO
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public Boolean changeStatus(ChangeStatusVO changeStatusVO) {
|
|
|
+ String userId = SysUserUtils.getCurrentPrincipleID();
|
|
|
+ Date now = DateUtil.now();
|
|
|
+ UpdateWrapper<ConceptDetail> conceptDetailUpdateWrapper = new UpdateWrapper<>();
|
|
|
+ conceptDetailUpdateWrapper.eq("concept_id", changeStatusVO.getId())
|
|
|
+ .set("gmt_modified", now)
|
|
|
+ .set("modifier", userId)
|
|
|
+ .set("is_deleted", changeStatusVO.getIsDeleted());
|
|
|
+ conceptDetailService.update(conceptDetailUpdateWrapper);
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 是否已存在
|
|
|
+ *
|
|
|
+ * @param conceptInfoVO
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public Boolean isExist(ConceptInfoVO conceptInfoVO) {
|
|
|
+ List<DictionaryInfoDTO> dicList = dictionaryFacade.getListByGroupType(8);
|
|
|
+ //术语类型转换
|
|
|
+ String typeName = convertTypeName(ConceptTypeEnum.getName(Integer.valueOf(conceptInfoVO.getType())), 1, dicList);
|
|
|
+ conceptInfoVO.setTypeName(typeName);
|
|
|
+ QueryWrapper<ConceptInfo> conceptInfoQueryWrapper = new QueryWrapper<>();
|
|
|
+ conceptInfoQueryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
|
|
|
+ .eq("name", conceptInfoVO.getName())
|
|
|
+ .eq("type", typeName);
|
|
|
+ ConceptInfo conceptInfo = this.getOne(conceptInfoQueryWrapper, false);
|
|
|
+ if (conceptInfo == null) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ QueryWrapper<ConceptDetail> conceptDetailQueryWrapper = new QueryWrapper<>();
|
|
|
+ conceptDetailQueryWrapper.eq("concept_id", conceptInfo.getId());
|
|
|
+ List<ConceptDetail> conceptDetailList = conceptDetailService.list(conceptDetailQueryWrapper);
|
|
|
+ if (ListUtil.isEmpty(conceptDetailList)) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ return true;
|
|
|
+ }
|
|
|
}
|