zhaops 4 роки тому
батько
коміт
ee974fed24
1 змінених файлів з 29 додано та 10 видалено
  1. 29 10
      src/main/java/com/diagbot/facade/ConceptInfoFacade.java

+ 29 - 10
src/main/java/com/diagbot/facade/ConceptInfoFacade.java

@@ -27,6 +27,7 @@ import com.diagbot.util.RespDTOUtil;
 import com.diagbot.util.StringUtil;
 import com.diagbot.util.SysUserUtils;
 import com.diagbot.vo.ChangeStatusVO;
+import com.diagbot.vo.ConceptDetailVO;
 import com.diagbot.vo.ConceptInfoPageVO;
 import com.diagbot.vo.ConceptInfoVO;
 import com.diagbot.vo.HasStaticKnowledgeVO;
@@ -542,7 +543,14 @@ public class ConceptInfoFacade extends ConceptInfoServiceImpl {
         String typeName = convertTypeName(ConceptTypeEnum.getName(Integer.valueOf(conceptInfoVO.getType())), 1, dicList);
         conceptInfoVO.setTypeName(typeName);
         ConceptInfo conceptInfo = new ConceptInfo();
-        if (conceptInfoVO.getId() == null) {
+
+        if (conceptInfoVO.getId() != null) {
+            conceptInfo = this.getById(conceptInfoVO.getId());
+            if (conceptInfo != null
+                    && !conceptInfo.getName().equals(conceptInfoVO.getName())) {
+                throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "标准术语名称不允许修改");
+            }
+        } else {
             QueryWrapper<ConceptInfo> conceptInfoQueryWrapper = new QueryWrapper<>();
             conceptInfoQueryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
                     .eq("name", conceptInfoVO.getName())
@@ -561,12 +569,18 @@ public class ConceptInfoFacade extends ConceptInfoServiceImpl {
         conceptInfo.setType(typeName);
         conceptInfo.setModifier(userId);
         conceptInfo.setGmtModified(now);
-        this.saveOrUpdate(conceptInfo);
-        conceptInfoVO.setId(conceptInfo.getId());
+
         //是否包含静态信息,包含启用和禁用
+        List<ConceptDetail> oldDetails = null;
         QueryWrapper<ConceptDetail> conceptDetailQueryWrapper = new QueryWrapper<>();
-        conceptDetailQueryWrapper.eq("concept_id",conceptInfo.getId());
-        List<ConceptDetail> oldDetails = conceptDetailFacade.list(conceptDetailQueryWrapper);
+        if (conceptInfo.getId() != null) {
+            conceptDetailQueryWrapper.eq("concept_id", conceptInfo.getId());
+            oldDetails = conceptDetailFacade.list(conceptDetailQueryWrapper);
+        }
+        if (conceptInfoVO.getId() == null
+                && ListUtil.isNotEmpty(oldDetails)) {
+            throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "静态信息已添加,不允许重复添加");
+        }
         if (ListUtil.isEmpty(oldDetails)
                 && ListUtil.isNotEmpty(conceptInfoVO.getDetails())) {
             //TODO 更新图谱是否有静态信息
@@ -582,21 +596,26 @@ public class ConceptInfoFacade extends ConceptInfoServiceImpl {
         }
 
         //删除已有静态信息
-        conceptDetailFacade.remove(conceptDetailQueryWrapper);
+        if (conceptInfo.getId() != null) {
+            conceptDetailFacade.remove(conceptDetailQueryWrapper);
+        }
+
+        //更新术语信息
+        this.saveOrUpdate(conceptInfo);
 
         //插入新的静态信息
         List<ConceptDetail> conceptDetailList = Lists.newLinkedList();
         if (ListUtil.isNotEmpty(conceptInfoVO.getDetails())) {
-            conceptInfoVO.getDetails().forEach(detail -> {
+            for (ConceptDetailVO detailVO : conceptInfoVO.getDetails()) {
                 ConceptDetail conceptDetail = new ConceptDetail();
-                BeanUtil.copyProperties(detail, conceptDetail);
-                conceptDetail.setConceptId(conceptInfoVO.getId());
+                BeanUtil.copyProperties(detailVO, conceptDetail);
+                conceptDetail.setConceptId(conceptInfo.getId());
                 conceptDetail.setCreator(userId);
                 conceptDetail.setGmtCreate(now);
                 conceptDetail.setModifier(userId);
                 conceptDetail.setGmtModified(now);
                 conceptDetailList.add(conceptDetail);
-            });
+            }
             conceptDetailService.saveBatch(conceptDetailList);
         }
         return true;