瀏覽代碼

更新术语医学知识接口增删改查功能

MarkHuang 6 年之前
父節點
當前提交
0d46b20087

+ 4 - 4
knowledgeman-service/src/main/java/com/diagbot/facade/ConceptFacade.java

@@ -209,7 +209,7 @@ public class ConceptFacade extends ConceptServiceImpl {
 
         TermVo termVo = new TermVo();
         termVo.setTerm(amendTermVo.getConcept());
-        termVo.setType(amendTermVo.getType());
+        termVo.setType(amendTermVo.getNewtype());
 
         // 如果概念术语不存在,添加新术语,然后添加新的概念
         conceptDTO = getConcept(termVo);
@@ -218,12 +218,12 @@ public class ConceptFacade extends ConceptServiceImpl {
             amendconcept.setOldterm(amendTermVo.getOldterm());
             amendconcept.setNewterm(amendTermVo.getConcept());
             amendconcept.setConcept("");
-            amendconcept.setType(amendTermVo.getType());
+            amendconcept.setNewtype(amendTermVo.getNewtype());
             libraryinfoFacade.upsertLibraryInfo(amendconcept);
 
             Map<String, Object> params = new HashMap<>();
             params.put("name", amendTermVo.getConcept());
-            params.put("type", amendTermVo.getType());
+            params.put("type", amendTermVo.getNewtype());
             int libid = libraryinfoFacade.getLibraryInfor(params).getId().intValue();
 
 
@@ -232,7 +232,7 @@ public class ConceptFacade extends ConceptServiceImpl {
             concept.setGmtCreated(LocalDateTime.now());
             this.saveOrUpdate(concept);
 
-            termVo.setType(amendTermVo.getType());
+            termVo.setType(amendTermVo.getNewtype());
             conceptDTO = getConcept(termVo);
         }
 

+ 1 - 1
knowledgeman-service/src/main/java/com/diagbot/facade/LibraryInfoFacade.java

@@ -58,7 +58,7 @@ public class LibraryInfoFacade extends LibraryInfoServiceImpl {
 
         String oldterm = amendTermVo.getOldterm();
         String newterm = amendTermVo.getNewterm();
-        String type = amendTermVo.getType();
+        String type = amendTermVo.getNewtype();
         String concept = amendTermVo.getConcept();
         int concept_id = amendTermVo.getConcept_id();
 

+ 53 - 17
knowledgeman-service/src/main/java/com/diagbot/facade/MedicalFacade.java

@@ -7,7 +7,6 @@ import com.diagbot.entity.LibraryInfo;
 import com.diagbot.entity.Medical;
 import com.diagbot.service.impl.MedicalServiceImpl;
 import com.diagbot.vo.AmendTermVo;
-import com.diagbot.vo.MedicalVo;
 import com.diagbot.vo.TermVo;
 import com.diagbot.vo.TypeVo;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -57,7 +56,7 @@ public class MedicalFacade extends MedicalServiceImpl {
      * @param termVo
      * @result ConceptDTO
      */
-    public ConceptDTO getConceptMedicalInfo(@RequestBody TermVo termVo) {
+    public ConceptDTO getMedicalInfo(@RequestBody TermVo termVo) {
         List<LibraryInfo> libraryInfos;
         LibraryInfo libraryInfo;
         List<Medical> medicals;
@@ -91,17 +90,30 @@ public class MedicalFacade extends MedicalServiceImpl {
     }
 
     /**
-     * 更新或添加医学术语信息
+     * 更新或添加术语医学信息
      *
      * @param amendTermVo
-     * @return
+     * @return ConceptDTO
      */
-    public void upsertMedicalInfo(AmendTermVo amendTermVo) {
+    public ConceptDTO upsertMedicalInfo(AmendTermVo amendTermVo) {
+        ConceptDTO conceptDTO = new ConceptDTO();
+
         Map<String, Object> map;
         Medical medical;
         List<Medical> medicals;
 
-        if (amendTermVo.getMedicalInfo() != null /*&& amendTermVo.getMedicalInfo().size() > 0*/) {
+        conceptDTO.setName(amendTermVo.getNewterm());
+        QueryWrapper<LibraryInfo> query = new QueryWrapper<>();
+        query.eq("name", amendTermVo.getNewterm());
+        query.eq("type", amendTermVo.getNewtype());
+        LibraryInfo libraryInfo = libraryInfoFacade.getOne(query);
+
+        if (amendTermVo.getMedicalInfo() != null && libraryInfo != null) {
+
+            conceptDTO.setLibId(libraryInfo.getId().intValue());
+            conceptDTO.setId(libraryInfo.getConceptId());
+            conceptDTO.setMedicalInfo(new ArrayList<>());
+
             for (int i=0; i<amendTermVo.getMedicalInfo().size(); i++) {
                 medical = amendTermVo.getMedicalInfo().get(i);
 //                medical = amendTermVo.getMedicalInfo();
@@ -112,16 +124,6 @@ public class MedicalFacade extends MedicalServiceImpl {
 
                 if (medicals.size() > 0) {
                     Medical exist_medical = getMedicalInfo(map).get(0);
-                    /*
-                    // 如果更新数据有效
-                    if (medical.getConceptId() != null) {
-                        medical.setId(exist_medical.getId());
-                    }
-                    else {
-                        medical = exist_medical;
-                        medical.setName(amendTermVo.getNewterm());
-                    }
-                    */
                     medical.setId(exist_medical.getId());
                 }
                 else {
@@ -132,9 +134,43 @@ public class MedicalFacade extends MedicalServiceImpl {
                 this.saveOrUpdate(medical);
 
 //                amendTermVo.setMedicalInfo(medical);
-                amendTermVo.getMedicalInfo().set(i, medical);
+//                amendTermVo.getMedicalInfo().set(i, medical);
+                conceptDTO.getMedicalInfo().add(medical);
             }
         }
+
+        return conceptDTO;
+    }
+
+
+    /**
+     * 删除术语医学信息
+     *
+     * @param termVo
+     * @return ConceptDTO
+     */
+    public Boolean deleteMedicalInfo(TermVo termVo) {
+
+        Boolean isdeleted = false;
+        Medical medical;
+
+        QueryWrapper<LibraryInfo> query = new QueryWrapper<>();
+        query.eq("name", termVo.getTerm());
+        query.eq("type", termVo.getType());
+        LibraryInfo libraryInfo = libraryInfoFacade.getOne(query);
+
+        if (libraryInfo != null) {
+            QueryWrapper<Medical> medquery = new QueryWrapper<>();
+            medquery.eq("name", termVo.getTerm());
+            medquery.eq("concept_id", libraryInfo.getConceptId());
+            medical = getOne(medquery);
+
+            if (medical != null) {
+                return remove(medquery);
+            }
+        }
+
+        return isdeleted;
     }
 
 

+ 4 - 1
knowledgeman-service/src/main/java/com/diagbot/vo/AmendTermVo.java

@@ -22,11 +22,14 @@ public class AmendTermVo {
     @NotNull(message="请输入现有的医学术语")
     private String oldterm;
 
+    @NotNull(message="请输入现有的医学术语类型")
+    private String oldtype;
+
     @NotNull(message="请输入新的医学术语")
     private String newterm;
 
     @NotNull(message="请输入新的医学术语类型")
-    private String type;
+    private String newtype;
 
     @NotNull(message="请输入医学概念名称")
     private String concept;

+ 28 - 0
knowledgeman-service/src/main/java/com/diagbot/vo/ConceptVo.java

@@ -0,0 +1,28 @@
+package com.diagbot.vo;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @Description:
+ * @author: Weixuan Huang
+ * @time: 2019/3/14 16:03
+ */
+@Getter
+@Setter
+public class ConceptVo extends Page {
+    @NotNull(message = "请输入医学术语")
+    private String term;
+
+    @NotNull(message = "请输入术语类型")
+    private String type;
+
+    private int id;
+
+    private int concept_id;
+
+    private String conecpt_name;
+}

+ 1 - 1
knowledgeman-service/src/main/java/com/diagbot/vo/TermVo.java

@@ -13,7 +13,7 @@ import javax.validation.constraints.NotNull;
  */
 @Getter
 @Setter
-public class TermVo extends Page {
+public class TermVo {
     @NotNull(message = "请输入医学术语")
     private String term;
 

+ 3 - 2
knowledgeman-service/src/main/java/com/diagbot/web/ConceptController.java

@@ -7,6 +7,7 @@ import com.diagbot.dto.LibraryInfoDTO;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.facade.ConceptFacade;
 import com.diagbot.vo.AmendTermVo;
+import com.diagbot.vo.ConceptVo;
 import com.diagbot.vo.TermVo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -38,8 +39,8 @@ public class ConceptController {
     @ApiOperation(value = "查询所有术语")
     @PostMapping("getAllConcept")
     @SysLogger("getAllConcept")
-    public RespDTO<IPage<LibraryInfoDTO>> getAllConcept(@RequestBody TermVo termVo) {
-        IPage<LibraryInfoDTO> data = conceptFacade.getAllConcepts(termVo);
+    public RespDTO<IPage<LibraryInfoDTO>> getAllConcept(@RequestBody ConceptVo conceptVo) {
+        IPage<LibraryInfoDTO> data = conceptFacade.getAllConcepts(conceptVo);
 
         return RespDTO.onSuc(data);
     }

+ 27 - 6
knowledgeman-service/src/main/java/com/diagbot/web/MedicalController.java

@@ -4,9 +4,9 @@ package com.diagbot.web;
 import com.diagbot.annotation.SysLogger;
 import com.diagbot.dto.ConceptDTO;
 import com.diagbot.dto.RespDTO;
-import com.diagbot.dto.TermDTO;
 import com.diagbot.facade.MedicalFacade;
 import com.diagbot.vo.TermVo;
+import com.diagbot.vo.AmendTermVo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -14,7 +14,6 @@ import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 
-import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.RestController;
 
 import javax.validation.Valid;
@@ -37,12 +36,34 @@ public class MedicalController {
 
     @ApiOperation(value = "术语医学知识查询",
             notes = "Term:术语名称, 必填<br>Type:术语类型, 必填<br>")
-    @PostMapping("/getConceptMedicalInfo")
-    @SysLogger("getConceptMedicalInfo")
-    public RespDTO<ConceptDTO> getConceptMedicalInfo(@Valid @RequestBody TermVo termvo) {
-        ConceptDTO data = medicalFacade.getConceptMedicalInfo(termvo);
+    @PostMapping("/getMedicalInfo")
+    @SysLogger("getMedicalInfo")
+    public RespDTO<ConceptDTO> getMedicalInfo(@Valid @RequestBody TermVo termvo) {
+        ConceptDTO data = medicalFacade.getMedicalInfo(termvo);
 
         return RespDTO.onSuc(data);
     }
 
+    @ApiOperation(value = "术语医学知识修改",
+            notes = "OldTerm: 原来的术语名称, 必填<br/>NewTerm: 新的术语名称, 必填<br/>" +
+                    "OldType: 原来的术语类型, 必填<br/>NewType: 新的术语类型, 必填<br/>")
+    @PostMapping("/upsertMedicalInfo")
+    @SysLogger("upsertMedicalInfo")
+    public RespDTO<ConceptDTO> upsertMedicalInfo(@Valid @RequestBody AmendTermVo amendTermVo) {
+        ConceptDTO data = medicalFacade.upsertMedicalInfo(amendTermVo);
+
+        return RespDTO.onSuc(data);
+    }
+
+    @ApiOperation(value = "术语医学知识删除",
+            notes = "Term: 术语名称, 必填<br/>Type: 术语类型, 必填<br/>")
+    @PostMapping("/deleteMedicalInfo")
+    @SysLogger("deleteMedicalInfo")
+    public RespDTO<ConceptDTO> deleteMedicalInfo(@Valid @RequestBody TermVo termVo) {
+        Boolean result = medicalFacade.deleteMedicalInfo(termVo);
+
+        return RespDTO.onSuc(result);
+    }
+
+
 }

+ 4 - 2
knowledgeman-service/src/main/resources/mapper/ConceptMapper.xml

@@ -13,8 +13,10 @@
     <select id="getConcept" parameterType="com.diagbot.vo.TermVo" resultType="com.diagbot.dto.ConceptDTO">
         SELECT
         a.id, a.lib_id, a.gmt_created, a.gmt_modified
-        FROM concept a, library_info b
-        WHERE a.lib_id = b.id and b.name = #{term} and b.type = #{type}
+        FROM concept a WHERE a.id IN (
+            SELECT concept_id FROM library_info
+            WHERE name = #{term} and type = #{type}
+        )
     </select>
 
     <select id="getLimboItems" resultType="com.diagbot.dto.ConceptDTO">