Browse Source

Merge remote-tracking branch 'origin/dev/icss' into debug

Zhaops 6 năm trước cách đây
mục cha
commit
f8406e4136
29 tập tin đã thay đổi với 373 bổ sung67 xóa
  1. 6 0
      config-server/src/main/resources/shared/icssman-service-dev.yml
  2. 6 0
      config-server/src/main/resources/shared/icssman-service-local.yml
  3. 6 0
      config-server/src/main/resources/shared/icssman-service-pro.yml
  4. 6 0
      config-server/src/main/resources/shared/icssman-service-test.yml
  5. 6 6
      icss-service/src/main/java/com/diagbot/dto/PushDTO.java
  6. 31 26
      icss-service/src/main/java/com/diagbot/facade/PushFacade.java
  7. 2 1
      icss-service/src/main/java/com/diagbot/web/DeptInfoController.java
  8. 1 0
      icss-service/src/main/java/com/diagbot/web/DiseaseController.java
  9. 2 3
      icss-service/src/main/java/com/diagbot/web/PushController.java
  10. 41 0
      icssman-service/src/main/java/com/diagbot/dto/GetRetrievalsByTagDTO.java
  11. 10 9
      icssman-service/src/main/java/com/diagbot/entity/Retrieval.java
  12. 10 9
      icssman-service/src/main/java/com/diagbot/entity/RetrievalMapping.java
  13. 2 1
      icssman-service/src/main/java/com/diagbot/exception/ServiceErrorCode.java
  14. 5 2
      icssman-service/src/main/java/com/diagbot/facade/DeptVitalFacade.java
  15. 47 0
      icssman-service/src/main/java/com/diagbot/facade/RetrievalFacede.java
  16. 19 0
      icssman-service/src/main/java/com/diagbot/facade/RetrievalMappingFacede.java
  17. 12 1
      icssman-service/src/main/java/com/diagbot/mapper/RetrievalMapper.java
  18. 12 8
      icssman-service/src/main/java/com/diagbot/service/impl/UploadServiceImpl.java
  19. 30 0
      icssman-service/src/main/java/com/diagbot/vo/DelRetrievalsByMapsVO.java
  20. 34 0
      icssman-service/src/main/java/com/diagbot/vo/GetRetrievalsByTagVO.java
  21. 4 0
      icssman-service/src/main/java/com/diagbot/web/DeptVitalController.java
  22. 3 0
      icssman-service/src/main/java/com/diagbot/web/IntroduceDetailController.java
  23. 4 0
      icssman-service/src/main/java/com/diagbot/web/IntroduceInfoController.java
  24. 3 0
      icssman-service/src/main/java/com/diagbot/web/IntroduceMapController.java
  25. 4 0
      icssman-service/src/main/java/com/diagbot/web/ModuleInfoController.java
  26. 2 0
      icssman-service/src/main/java/com/diagbot/web/QuestionInfoController.java
  27. 41 1
      icssman-service/src/main/java/com/diagbot/web/RetrievalController.java
  28. 4 0
      icssman-service/src/main/java/com/diagbot/web/VitalOrderController.java
  29. 20 0
      icssman-service/src/main/resources/mapper/RetrievalMapper.xml

+ 6 - 0
config-server/src/main/resources/shared/icssman-service-dev.yml

@@ -47,6 +47,12 @@ spring:
         login-username: root
         login-password: root
 
+  servlet:
+    multipart:
+      enabled: true
+      max-file-size: 1MB
+      max-request-size: 1MB
+
   cloud:
     stream:
       bindings:

+ 6 - 0
config-server/src/main/resources/shared/icssman-service-local.yml

@@ -47,6 +47,12 @@ spring:
         login-username: root
         login-password: root
 
+  servlet:
+    multipart:
+      enabled: true
+      max-file-size: 1MB
+      max-request-size: 1MB
+
   cloud:
     stream:
       bindings:

+ 6 - 0
config-server/src/main/resources/shared/icssman-service-pro.yml

@@ -47,6 +47,12 @@ spring:
         login-username: root
         login-password: root
 
+  servlet:
+    multipart:
+      enabled: true
+      max-file-size: 1MB
+      max-request-size: 1MB
+
   cloud:
     stream:
       bindings:

+ 6 - 0
config-server/src/main/resources/shared/icssman-service-test.yml

@@ -47,6 +47,12 @@ spring:
         login-username: root
         login-password: root
 
+  servlet:
+    multipart:
+      enabled: true
+      max-file-size: 1MB
+      max-request-size: 1MB
+
   cloud:
     stream:
       bindings:

+ 6 - 6
icss-service/src/main/java/com/diagbot/dto/PushDTO.java

@@ -3,6 +3,7 @@ package com.diagbot.dto;
 import lombok.Getter;
 import lombok.Setter;
 
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -13,10 +14,9 @@ import java.util.Map;
 @Getter
 @Setter
 public class PushDTO {
-    private Map<String, Object> symptomMap;
-    private Map<String, Object> vitalMap;
-    private Map<String, Object> labMap;
-    private Map<String, Object> pacsMap;
-    private Map<String,Map<String, Object>> disMap;
-
+    private List<QuestionDTO> symptom;
+    private List<QuestionDTO> vital;
+    private List<QuestionDTO> lab;
+    private List<QuestionDTO> pacs;
+    private Map<String, List<QuestionDTO>> dis;
 }

+ 31 - 26
icss-service/src/main/java/com/diagbot/facade/PushFacade.java

@@ -13,7 +13,6 @@ import com.diagbot.entity.DeptInfo;
 import com.diagbot.entity.DeptVital;
 import com.diagbot.entity.QuestionInfo;
 import com.diagbot.entity.VitalOrder;
-import com.diagbot.enums.InputModeEnum;
 import com.diagbot.enums.IsDeleteEnum;
 import com.diagbot.enums.QuantitativeTypeEnum;
 import com.diagbot.enums.QuestionTypeEnum;
@@ -94,10 +93,9 @@ public class PushFacade {
      * 推理接口
      *
      * @param pushVO
-     * @param mode
      * @return
      */
-    public PushDTO pushInner(PushVO pushVO, Integer mode) {
+    public PushDTO pushInner(PushVO pushVO) {
         PushDTO pushDTO = new PushDTO();
         ResponseData data = pushAI(pushVO);
 
@@ -111,31 +109,29 @@ public class PushFacade {
         List<FeatureRate> labs = data.getLabs();
 
         Map<String, Object> symptomMap = list2Map(symptom);
-        Map<String, Object> vitalMap = new LinkedHashMap<>();
         Map<String, Object> disMap = list2Map(dis);
         Map<String, Object> labMap = list2Map(labs);
         Map<String, Object> pacsMap = list2Map(pacs);
 
         if (featureTypeSet.contains(String.valueOf(QuestionTypeEnum.Lis.getKey()))) {
-            pushDTO.setLabMap(labMap);
+            List<QuestionDTO> labDTO = getTagListByMap(labMap, pushVO, QuestionTypeEnum.Lis.getKey());
+            pushDTO.setLab(labDTO);
         }
         if (featureTypeSet.contains(String.valueOf(QuestionTypeEnum.Pacs.getKey()))) {
-            pushDTO.setPacsMap(pacsMap);
+            List<QuestionDTO> pacsDTO = getTagListByMap(labMap, pushVO, QuestionTypeEnum.Pacs.getKey());
+            pushDTO.setPacs(pacsDTO);
         }
         //诊断 返回tagName+标签
         if (featureTypeSet.contains(String.valueOf(QuestionTypeEnum.Disease.getKey()))) {
-            disMap = getTagByMap(disMap, pushVO, QuestionTypeEnum.Disease.getKey());
-            Map<String, Map<String, Object>> disMapDTO = new LinkedHashMap<>();
-            disMapDTO.put("疑似诊断:", disMap);
-            pushDTO.setDisMap(disMapDTO);
+            List<QuestionDTO> disDTO = getTagListByMap(disMap, pushVO, QuestionTypeEnum.Disease.getKey());
+            Map<String, List<QuestionDTO>> disMapDTO = new LinkedHashMap<>();
+            disMapDTO.put("疑似诊断:", disDTO);
+            pushDTO.setDis(disMapDTO);
         }
         //症状(主诉 type=1;现病史 type=2) 返回 tagName+填写单
         if (featureTypeSet.contains(String.valueOf(QuestionTypeEnum.Symptom.getKey()))) {
-            //结构化模式,症状返回标签
-            if (mode.equals(InputModeEnum.Structured.getKey())) {
-                symptomMap = getTagByMap(symptomMap, pushVO, QuestionTypeEnum.Symptom.getKey());
-            }
-            pushDTO.setSymptomMap(symptomMap);
+            List<QuestionDTO> symptomDTO = getTagListByMap(symptomMap, pushVO, QuestionTypeEnum.Symptom.getKey());
+            pushDTO.setSymptom(symptomDTO);
         }
         //查体 返回模板
         if (featureTypeSet.contains(String.valueOf(QuestionTypeEnum.Vital.getKey()))) {
@@ -144,13 +140,14 @@ public class PushFacade {
             if (dis != null && dis.size() > 0) {
                 deptName = dis.get(0).getExtraProperty();
             }
-            vitalMap = getVitalModule(deptName, pushVO);
-            pushDTO.setVitalMap(vitalMap);
+            List<QuestionDTO> vitalDTO = getVitalModule(deptName, pushVO);
+            pushDTO.setVital(vitalDTO);
 
         }
         return pushDTO;
     }
 
+
     /**
      * 获取返回结果标签
      *
@@ -158,7 +155,8 @@ public class PushFacade {
      * @param pushVO
      * @return
      */
-    public Map<String, Object> getTagByMap(Map<String, Object> map, PushVO pushVO, Integer type) {
+    public List<QuestionDTO> getTagListByMap(Map<String, Object> map, PushVO pushVO, Integer type) {
+        List<QuestionDTO> questionDTOList = Lists.newLinkedList();
         QueryWrapper<QuestionInfo> questionInfoQueryWrapper = new QueryWrapper();
         questionInfoQueryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey()).
                 in("tag_name", map.keySet()).
@@ -166,18 +164,24 @@ public class PushFacade {
         List<QuestionInfo> questionInfoList = questionFacade.list(questionInfoQueryWrapper);
         Map<String, QuestionInfo> questionMap = EntityUtil.makeEntityMap(questionInfoList, "tagName");
         for (Map.Entry<String, Object> entry : map.entrySet()) {
+            QuestionDTO questionDTO = new QuestionDTO();
             if (questionMap.get(entry.getKey()) != null) {
                 QuestionVO questionVO = new QuestionVO();
                 questionVO.setAge(pushVO.getAge());
                 questionVO.setSexType(pushVO.getSex());
                 questionVO.setId(questionMap.get(entry.getKey()).getId());
-                QuestionDTO questionDTO = questionFacade.getById(questionVO);
-                if (questionDTO.getSubType().equals(0)) {
-                    entry.setValue(questionDTO);
+                questionDTO = questionFacade.getById(questionVO);
+                if (questionDTO == null || (!questionDTO.getSubType().equals(0))) {
+                    questionDTO = new QuestionDTO();
+                    questionDTO.setTagName(entry.getKey());
                 }
+
+            } else {
+                questionDTO.setTagName(entry.getKey());
             }
+            questionDTOList.add(questionDTO);
         }
-        return map;
+        return questionDTOList;
     }
 
     /**
@@ -222,6 +226,7 @@ public class PushFacade {
         return map;
     }
 
+
     /**
      * 快易检结果预处理
      *
@@ -289,8 +294,8 @@ public class PushFacade {
      * @param pushVO
      * @return
      */
-    public Map<String, Object> getVitalModule(String deptName, PushVO pushVO) {
-        Map<String, Object> vitalMap = new LinkedHashMap<>();
+    public List<QuestionDTO> getVitalModule(String deptName, PushVO pushVO) {
+        List<QuestionDTO> vitalDTO = Lists.newLinkedList();
         QueryWrapper<DeptInfo> deptInfoQueryWrapper = new QueryWrapper<>();
         deptInfoQueryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey()).
                 eq("name", deptName);
@@ -320,10 +325,10 @@ public class PushFacade {
                 questionVO.setId(entry.getKey());
                 QuestionDTO questionDTO = questionFacade.getById(questionVO);
                 if (questionDTO != null) {
-                    vitalMap.put(questionDTO.getName(), questionDTO);
+                    vitalDTO.add(questionDTO);
                 }
             }
         }
-        return vitalMap;
+        return vitalDTO;
     }
 }

+ 2 - 1
icss-service/src/main/java/com/diagbot/web/DeptInfoController.java

@@ -40,6 +40,7 @@ public class DeptInfoController {
     @PostMapping("/getDeptInfo")
     @SysLogger("getDeptInfo")
     public RespDTO<List<DeptInfoDTO>> getDeptInfo(@Valid @RequestBody DeptInfoVO deptInfoVO) {
-        return RespDTO.onSuc(deptInfoFacade.getDeptInfo(deptInfoVO));
+        List<DeptInfoDTO> data = deptInfoFacade.getDeptInfo(deptInfoVO);
+        return RespDTO.onSuc(data);
     }
 }

+ 1 - 0
icss-service/src/main/java/com/diagbot/web/DiseaseController.java

@@ -14,6 +14,7 @@ import org.springframework.web.bind.annotation.RestController;
  */
 @RestController
 @RequestMapping("/disease")
+@SuppressWarnings("unchecked")
 @Api(value = "诊断相关API", tags = { "诊断相关API" })
 public class DiseaseController {
 

+ 2 - 3
icss-service/src/main/java/com/diagbot/web/PushController.java

@@ -5,7 +5,6 @@ import com.diagbot.client.bean.ResponseData;
 import com.diagbot.dto.PushDTO;
 import com.diagbot.dto.PushKYJDTO;
 import com.diagbot.dto.RespDTO;
-import com.diagbot.enums.InputModeEnum;
 import com.diagbot.facade.PushFacade;
 import com.diagbot.vo.PushKYJVO;
 import com.diagbot.vo.PushVO;
@@ -46,7 +45,7 @@ public class PushController {
     @PostMapping("/pushInner")
     @SysLogger("pushInner")
     public RespDTO<PushDTO> pushInner(@RequestBody @Valid PushVO pushVO) {
-        return RespDTO.onSuc(pushFacade.pushInner(pushVO, InputModeEnum.Structured.getKey()));
+        return RespDTO.onSuc(pushFacade.pushInner(pushVO));
     }
 
     @ApiOperation(value = "推理接口(文本模式)[by:zhaops]",
@@ -62,7 +61,7 @@ public class PushController {
     @PostMapping("/pushText")
     @SysLogger("pushText")
     public RespDTO<PushDTO> pushText(@RequestBody @Valid PushVO pushVO) {
-        return RespDTO.onSuc(pushFacade.pushInner(pushVO, InputModeEnum.Text.getKey()));
+        return RespDTO.onSuc(pushFacade.pushInner(pushVO));
     }
 
     @ApiOperation(value = "推理接口(大数据结果)[by:zhaops]",

+ 41 - 0
icssman-service/src/main/java/com/diagbot/dto/GetRetrievalsByTagDTO.java

@@ -0,0 +1,41 @@
+/**
+ * 
+ */
+package com.diagbot.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description
+ * @author rgb
+ * @time 2018年12月5日下午5:00:34
+ */
+@ApiModel(value="根据标签获取同义词接口出参")
+@Getter
+@Setter
+public class GetRetrievalsByTagDTO {
+	
+	/**
+	 * 同义词id
+	 */
+	@ApiModelProperty(value="同义词id")
+	private Long retrievalId;
+	
+	/**
+	 * 同义词映射id
+	 */
+	@ApiModelProperty(value="同义词映射id")
+	private Long retrievalMappingId;
+	
+	/**
+	 * 同义词名称
+	 */
+	@ApiModelProperty(value="同义词名称")
+	private String retrievalName;
+	
+	
+
+}

+ 10 - 9
icssman-service/src/main/java/com/diagbot/entity/Retrieval.java

@@ -1,10 +1,11 @@
 package com.diagbot.entity;
 
-import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.util.Date;
+
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
-import java.time.LocalDateTime;
-import java.io.Serializable;
+import com.baomidou.mybatisplus.annotation.TableName;
 
 /**
  * <p>
@@ -33,12 +34,12 @@ public class Retrieval implements Serializable {
     /**
      * 记录创建时间
      */
-    private LocalDateTime gmtCreate;
+    private Date gmtCreate;
 
     /**
      * 记录修改时间,如果时间是1970年则表示纪录未修改
      */
-    private LocalDateTime gmtModified;
+    private Date gmtModified;
 
     /**
      * 创建人,0表示无创建人值
@@ -79,18 +80,18 @@ public class Retrieval implements Serializable {
     public void setIsDeleted(String isDeleted) {
         this.isDeleted = isDeleted;
     }
-    public LocalDateTime getGmtCreate() {
+    public Date getGmtCreate() {
         return gmtCreate;
     }
 
-    public void setGmtCreate(LocalDateTime gmtCreate) {
+    public void setGmtCreate(Date gmtCreate) {
         this.gmtCreate = gmtCreate;
     }
-    public LocalDateTime getGmtModified() {
+    public Date getGmtModified() {
         return gmtModified;
     }
 
-    public void setGmtModified(LocalDateTime gmtModified) {
+    public void setGmtModified(Date gmtModified) {
         this.gmtModified = gmtModified;
     }
     public String getCreator() {

+ 10 - 9
icssman-service/src/main/java/com/diagbot/entity/RetrievalMapping.java

@@ -1,10 +1,11 @@
 package com.diagbot.entity;
 
-import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.util.Date;
+
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
-import java.time.LocalDateTime;
-import java.io.Serializable;
+import com.baomidou.mybatisplus.annotation.TableName;
 
 /**
  * <p>
@@ -33,12 +34,12 @@ public class RetrievalMapping implements Serializable {
     /**
      * 记录创建时间
      */
-    private LocalDateTime gmtCreate;
+    private Date gmtCreate;
 
     /**
      * 记录修改时间,如果时间是1970年则表示纪录未修改
      */
-    private LocalDateTime gmtModified;
+    private Date gmtModified;
 
     /**
      * 创建人,0表示无创建人值
@@ -84,18 +85,18 @@ public class RetrievalMapping implements Serializable {
     public void setIsDeleted(String isDeleted) {
         this.isDeleted = isDeleted;
     }
-    public LocalDateTime getGmtCreate() {
+    public Date getGmtCreate() {
         return gmtCreate;
     }
 
-    public void setGmtCreate(LocalDateTime gmtCreate) {
+    public void setGmtCreate(Date gmtCreate) {
         this.gmtCreate = gmtCreate;
     }
-    public LocalDateTime getGmtModified() {
+    public Date getGmtModified() {
         return gmtModified;
     }
 
-    public void setGmtModified(LocalDateTime gmtModified) {
+    public void setGmtModified(Date gmtModified) {
         this.gmtModified = gmtModified;
     }
     public String getCreator() {

+ 2 - 1
icssman-service/src/main/java/com/diagbot/exception/ServiceErrorCode.java

@@ -9,7 +9,8 @@ package com.diagbot.exception;
  */
 public enum ServiceErrorCode implements ErrorCode {
     FILE_UPLOAD_ERROE("12020001", "文件上传出错"),
-    FILE_DELETE_ERROR("12020002", "远程删除文件出错");
+    FILE_DELETE_ERROR("12020002", "远程删除文件出错"),
+    FILE_MAX_SIZE_LIMIT("12020003","文件大小超出限制");
 
     private String code;
     private String msg;

+ 5 - 2
icssman-service/src/main/java/com/diagbot/facade/DeptVitalFacade.java

@@ -20,6 +20,7 @@ import org.springframework.stereotype.Component;
 import java.util.Date;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * @Description:
@@ -111,8 +112,10 @@ public class DeptVitalFacade extends DeptVitalServiceImpl implements DeptVitalSe
         deptVitalQueryWrapper.eq("dept_id", deptId).
                 eq("is_deleted", IsDeleteEnum.N.getKey());
         List<DeptVital> deptVitalList = this.list(deptVitalQueryWrapper);
-        Map<Long, DeptVital> vitalIdsMap = EntityUtil.makeEntityMap(deptVitalList, "vitalId");
-        List<QuestionInfo> vitalList = Lists.newArrayList(questionInfoFacade.listByIds(vitalIdsMap.keySet()));
+        List<Long> vitalIds = deptVitalList.stream()
+                .map(deptVitals -> deptVitals.getVitalId())
+                .collect(Collectors.toList());
+        List<QuestionInfo> vitalList = Lists.newArrayList(questionInfoFacade.listByIds(vitalIds));
         return vitalList;
     }
 }

+ 47 - 0
icssman-service/src/main/java/com/diagbot/facade/RetrievalFacede.java

@@ -0,0 +1,47 @@
+/**
+ * 
+ */
+package com.diagbot.facade;
+
+import java.util.List;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import com.diagbot.dto.GetRetrievalsByTagDTO;
+import com.diagbot.service.impl.RetrievalServiceImpl;
+import com.diagbot.vo.DelRetrievalsByMapsVO;
+import com.diagbot.vo.GetRetrievalsByTagVO;
+
+/**
+ * @Description
+ * @author rgb
+ * @time 2018年12月5日下午4:53:59
+ */
+@Component
+public class RetrievalFacede extends RetrievalServiceImpl {
+	
+	@Autowired
+	private RetrievalMappingFacede retrievalMappingFacede;
+	
+	/**
+	 * 根据标签获取同义词
+	 * @param getRetrievalsByTagVO
+	 * @return
+	 */
+	public List<GetRetrievalsByTagDTO> getRetrievalsByTag(GetRetrievalsByTagVO getRetrievalsByTagVO){
+		
+		return this.baseMapper.getRetrievalsByTag(getRetrievalsByTagVO);
+	}
+
+	/**
+	 * 根据映射关系删除标签的同义词
+	 * @param delRetrievalsByMapsVO
+	 * @return
+	 */
+	public Boolean delRetrievalsByMaps(DelRetrievalsByMapsVO delRetrievalsByMapsVO){
+		retrievalMappingFacede.removeByIds(delRetrievalsByMapsVO.getRetrievalMappingIds());
+		return true;
+	}
+	
+}

+ 19 - 0
icssman-service/src/main/java/com/diagbot/facade/RetrievalMappingFacede.java

@@ -0,0 +1,19 @@
+/**
+ * 
+ */
+package com.diagbot.facade;
+
+import org.springframework.stereotype.Component;
+
+import com.diagbot.service.impl.RetrievalMappingServiceImpl;
+
+/**
+ * @Description
+ * @author rgb
+ * @time 2018年12月5日下午4:53:59
+ */
+@Component
+public class RetrievalMappingFacede extends RetrievalMappingServiceImpl {
+
+	
+}

+ 12 - 1
icssman-service/src/main/java/com/diagbot/mapper/RetrievalMapper.java

@@ -1,7 +1,11 @@
 package com.diagbot.mapper;
 
-import com.diagbot.entity.Retrieval;
+import java.util.List;
+
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.diagbot.dto.GetRetrievalsByTagDTO;
+import com.diagbot.entity.Retrieval;
+import com.diagbot.vo.GetRetrievalsByTagVO;
 
 /**
  * <p>
@@ -12,5 +16,12 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  * @since 2018-12-03
  */
 public interface RetrievalMapper extends BaseMapper<Retrieval> {
+	
+	/**
+	 * 根据标签获取同义词
+	 * @param getRetrievalsByTagVO
+	 * @return
+	 */
+	List<GetRetrievalsByTagDTO> getRetrievalsByTag(GetRetrievalsByTagVO getRetrievalsByTagVO);
 
 }

+ 12 - 8
icssman-service/src/main/java/com/diagbot/service/impl/UploadServiceImpl.java

@@ -26,12 +26,16 @@ public class UploadServiceImpl implements UploadService {
         if (file.isEmpty()) {
             throw new CommonException(ServiceErrorCode.FILE_UPLOAD_ERROE, "文件不能为空");
         }
+        //文件大小上限1M
+        if (file.getSize() > 1024 * 1024) {
+            throw new CommonException(ServiceErrorCode.FILE_MAX_SIZE_LIMIT, "文件上传失败,超出大小限制1MB");
+        }
         try {
             // Get the file and save it somewhere
             path = saveFile(file);
         } catch (Exception e) {
-            log.error("upload file failed", e);
-            throw new CommonException(ServiceErrorCode.FILE_UPLOAD_ERROE, "upload file failed");
+            log.error("文件上传失败", e);
+            throw new CommonException(ServiceErrorCode.FILE_UPLOAD_ERROE, "文件上传失败,请重新上传");
         }
         return path;
     }
@@ -57,12 +61,12 @@ public class UploadServiceImpl implements UploadService {
         try {
             fileAbsolutePath = FastDFSClient.upload(file);  //upload to fastdfs
         } catch (Exception e) {
-            log.error("upload file Exception!", e);
-            throw new CommonException(ServiceErrorCode.FILE_UPLOAD_ERROE, "upload file Exception");
+            log.error("文件上传异常", e);
+            throw new CommonException(ServiceErrorCode.FILE_UPLOAD_ERROE, "文件上传异常");
         }
         if (fileAbsolutePath == null) {
-            log.error("upload file failed,please upload again!");
-            throw new CommonException(ServiceErrorCode.FILE_UPLOAD_ERROE, "upload file failed,please upload again");
+            log.error("文件上传失败,请重新上传");
+            throw new CommonException(ServiceErrorCode.FILE_UPLOAD_ERROE, "文件上传失败,请重新上传");
         }
         String path = "/" + fileAbsolutePath[0] + "/" + fileAbsolutePath[1];
         return path;
@@ -85,8 +89,8 @@ public class UploadServiceImpl implements UploadService {
             FastDFSClient.deleteFile(groupName, fileName);
         } catch (Exception e) {
             log.error("", e);
-            throw new CommonException(ServiceErrorCode.FILE_DELETE_ERROR, "delete file failed");
+            throw new CommonException(ServiceErrorCode.FILE_DELETE_ERROR, "文件删除失败");
         }
         return true;
     }
-}
+}

+ 30 - 0
icssman-service/src/main/java/com/diagbot/vo/DelRetrievalsByMapsVO.java

@@ -0,0 +1,30 @@
+package com.diagbot.vo;
+
+import java.util.List;
+
+import javax.validation.constraints.NotEmpty;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description
+ * @author rgb
+ * @time 2018年12月5日下午5:00:52
+ */
+@ApiModel(value="根据映射关系删除标签的同义词接口传参")
+@Getter
+@Setter
+public class DelRetrievalsByMapsVO {
+	
+	/**
+	 * 标签同义词映射关系id集合
+	 */
+	@ApiModelProperty(value="标签同义词映射关系id集合",required=true)
+	@NotEmpty(message="标签同义词映射关系id必传")
+	private List<Long> retrievalMappingIds;
+
+
+}

+ 34 - 0
icssman-service/src/main/java/com/diagbot/vo/GetRetrievalsByTagVO.java

@@ -0,0 +1,34 @@
+package com.diagbot.vo;
+
+import javax.validation.constraints.NotBlank;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description
+ * @author rgb
+ * @time 2018年12月5日下午5:00:52
+ */
+@ApiModel(value="根据标签获取同义词接口传参")
+@Getter
+@Setter
+public class GetRetrievalsByTagVO {
+	
+	/**
+     * 标签id
+     */
+	@ApiModelProperty(value="标签id")
+    private Long questionId;
+	
+	/**
+	 * 标签名称
+	 */
+	@ApiModelProperty(value="标签名称",required=true)
+	@NotBlank(message="标签名称必传")
+	private String questionName;
+
+
+}

+ 4 - 0
icssman-service/src/main/java/com/diagbot/web/DeptVitalController.java

@@ -10,6 +10,7 @@ import com.diagbot.vo.DeptVitalVO;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -40,6 +41,7 @@ public class DeptVitalController {
                     "vitalIds:查体标签ids,必填<br>")
     @PostMapping("/saveDeptVitals")
     @SysLogger("saveDeptVitals")
+    @Transactional
     public RespDTO<Boolean> saveDeptVitals(@RequestBody DeptVitalVO deptVitalVO) {
         Boolean data = deptVitalFacade.saveDeptVitals(deptVitalVO);
         return RespDTO.onSuc(data);
@@ -50,6 +52,7 @@ public class DeptVitalController {
                     "vitalIds:查体标签ids,必填<br>")
     @PostMapping("/delDeptVitalList")
     @SysLogger("delDeptVitalList")
+    @Transactional
     public RespDTO<Boolean> delDeptVitalList(@RequestBody DeptVitalVO deptVitalVO) {
         Boolean data = deptVitalFacade.delDeptVitalList(deptVitalVO);
         return RespDTO.onSuc(data);
@@ -59,6 +62,7 @@ public class DeptVitalController {
             notes = "deptId:科室ID,必填<br>")
     @PostMapping("/delAllDeptVitalList")
     @SysLogger("delAllDeptVitalList")
+    @Transactional
     public RespDTO<Boolean> delAllDeptVitalList(@RequestParam("deptId") Long deptId) {
         Boolean data = deptVitalFacade.delAllDeptVitalList(deptId);
         return RespDTO.onSuc(data);

+ 3 - 0
icssman-service/src/main/java/com/diagbot/web/IntroduceDetailController.java

@@ -8,6 +8,7 @@ import com.diagbot.facade.IntroduceDetailFacade;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestParam;
@@ -45,6 +46,7 @@ public class IntroduceDetailController {
             notes = "id: id,必填")
     @PostMapping("/deleteRecord")
     @SysLogger("deleteRecord")
+    @Transactional
     public RespDTO<Boolean> deleteRecord(@RequestParam Long id) {
         Boolean data = introduceDetailFacade.removeById(id);
         return RespDTO.onSuc(data);
@@ -54,6 +56,7 @@ public class IntroduceDetailController {
             notes = "ids: ids,必填")
     @PostMapping("/deleteRecords")
     @SysLogger("deleteRecords")
+    @Transactional
     public RespDTO<Boolean> deleteRecords(@RequestParam Long[] ids) {
         Boolean data = introduceDetailFacade.removeByIds(Arrays.asList(ids));
         return RespDTO.onSuc(data);

+ 4 - 0
icssman-service/src/main/java/com/diagbot/web/IntroduceInfoController.java

@@ -11,6 +11,7 @@ import com.diagbot.vo.IntroduceVO;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -50,6 +51,7 @@ public class IntroduceInfoController {
                     "position:显示位置<br>")
     @PostMapping("/saveIntroduce")
     @SysLogger("saveIntroduce")
+    @Transactional
     public RespDTO<Boolean> saveIntroduce(@RequestBody @Valid IntroduceVO introduceVO) {
         Boolean data = introduceInfoFacade.saveIntroduce(introduceVO);
         return RespDTO.onSuc(data);
@@ -59,6 +61,7 @@ public class IntroduceInfoController {
             notes = "id: id,必填")
     @PostMapping("/deleteRecord")
     @SysLogger("deleteRecord")
+    @Transactional
     public RespDTO<Boolean> deleteRecord(@RequestParam Long id) {
         Boolean data = introduceInfoFacade.deleteRecord(id);
         return RespDTO.onSuc(data);
@@ -68,6 +71,7 @@ public class IntroduceInfoController {
             notes = "ids: ids,必填")
     @PostMapping("/deleteRecords")
     @SysLogger("deleteRecords")
+    @Transactional
     public RespDTO<Boolean> deleteRecords(@RequestParam Long[] ids) {
         Boolean data = introduceInfoFacade.deleteRecords(ids);
         return RespDTO.onSuc(data);

+ 3 - 0
icssman-service/src/main/java/com/diagbot/web/IntroduceMapController.java

@@ -8,6 +8,7 @@ import com.diagbot.vo.IntroduceMapVO;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -36,6 +37,7 @@ public class IntroduceMapController {
                     "type: 标签类型,必填")
     @PostMapping("/saveIntroduceMap")
     @SysLogger("saveIntroduceMap")
+    @Transactional
     public RespDTO<Boolean> saveIntroduceMap(@RequestBody IntroduceMapVO introduceMapVO) {
         Boolean data = introduceMapFacade.saveIntroduceMap(introduceMapVO);
         return RespDTO.onSuc(data);
@@ -47,6 +49,7 @@ public class IntroduceMapController {
                     "type: 标签类型,必填")
     @PostMapping("/delIntroduceMap")
     @SysLogger("delIntroduceMap")
+    @Transactional
     public RespDTO<Boolean> delIntroduceMap(@RequestBody IntroduceMapVO introduceMapVO) {
         Boolean data = introduceMapFacade.delIntroduceMap(introduceMapVO);
         return RespDTO.onSuc(data);

+ 4 - 0
icssman-service/src/main/java/com/diagbot/web/ModuleInfoController.java

@@ -7,6 +7,7 @@ import com.diagbot.facade.ModuleInfoFacade;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
@@ -21,6 +22,7 @@ import org.springframework.web.bind.annotation.RestController;
  */
 @RestController
 @RequestMapping("/moduleInfo")
+@SuppressWarnings("unchecked")
 @Api(value = "标签模板相关API", tags = { "标签模板相关API" })
 public class ModuleInfoController {
 
@@ -32,6 +34,7 @@ public class ModuleInfoController {
             notes = "")
     @PostMapping("/saveOrUpdate")
     @SysLogger("saveOrUpdate")
+    @Transactional
     public RespDTO<Boolean> saveOrUpdate() {
 
         return RespDTO.onSuc(true);
@@ -42,6 +45,7 @@ public class ModuleInfoController {
             notes = "")
     @PostMapping("/delete")
     @SysLogger("delete")
+    @Transactional
     public RespDTO<Boolean> delete(String ids) {
         moduleInfoFacade.deleteByIdsFac(ids);
         return RespDTO.onSuc(true);

+ 2 - 0
icssman-service/src/main/java/com/diagbot/web/QuestionInfoController.java

@@ -27,6 +27,7 @@ import java.util.List;
  */
 @RestController
 @RequestMapping("/questionInfo")
+@SuppressWarnings("unchecked")
 @Api(value = "标签相关API——数据谨慎操作", tags = { "标签相关API——数据谨慎操作" })
 public class QuestionInfoController {
 
@@ -37,6 +38,7 @@ public class QuestionInfoController {
             notes = "")
     @PostMapping("/saveOrUpdate")
     @SysLogger("saveOrUpdate")
+    @Transactional
     public RespDTO<Boolean> saveOrUpdate() {
 
         return RespDTO.onSuc(true);

+ 41 - 1
icssman-service/src/main/java/com/diagbot/web/RetrievalController.java

@@ -1,10 +1,26 @@
 package com.diagbot.web;
 
+import java.util.List;
 
-import io.swagger.annotations.Api;
+import javax.validation.Valid;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import com.diagbot.annotation.SysLogger;
+import com.diagbot.dto.GetRetrievalsByTagDTO;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.facade.RetrievalFacede;
+import com.diagbot.vo.DelRetrievalsByMapsVO;
+import com.diagbot.vo.GetRetrievalsByTagVO;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
 /**
  * <p>
  * 同义词检索表 前端控制器
@@ -18,5 +34,29 @@ import org.springframework.web.bind.annotation.RestController;
 @SuppressWarnings("unchecked")
 @Api(value = "同义词维护相关API", tags = { "同义词维护相关API" })
 public class RetrievalController {
+	
+	@Autowired
+	private RetrievalFacede retrievalFacede;
+	
+    @ApiOperation(value = "根据标签获取同义词[by:rengb]")
+	@PostMapping("/getRetrievalsByTag")
+	@SysLogger("getRetrievalsByTag")
+	public RespDTO<List<GetRetrievalsByTagDTO>> getRetrievalsByTag(@Valid @RequestBody GetRetrievalsByTagVO getRetrievalsByTagVO) {
+		return RespDTO.onSuc(retrievalFacede.getRetrievalsByTag(getRetrievalsByTagVO));
+	}
+	
+	
+    @ApiOperation(value = "根据映射关系删除标签的同义词[by:rengb]")
+	@PostMapping("/delRetrievalsByMaps")
+	@SysLogger("delRetrievalsByMaps")
+	@Transactional
+	public RespDTO<List<Boolean>> delRetrievalsByMaps(@Valid @RequestBody DelRetrievalsByMapsVO delRetrievalsByMapsVO) {
+		return RespDTO.onSuc(retrievalFacede.delRetrievalsByMaps(delRetrievalsByMapsVO));
+	}
+	
+	
+	
+	
+	
 
 }

+ 4 - 0
icssman-service/src/main/java/com/diagbot/web/VitalOrderController.java

@@ -10,6 +10,7 @@ import com.diagbot.vo.VitalOrderVO;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -40,6 +41,7 @@ public class VitalOrderController {
                     "orderNo:查体排序号,必填<br>")
     @PostMapping("/saveAll")
     @SysLogger("saveAll")
+    @Transactional
     public RespDTO<Boolean> saveAll(@RequestBody List<VitalOrderVO> vitalOrderVOList) {
         Boolean data = vitalOrderFacade.saveAll(vitalOrderVOList);
         return RespDTO.onSuc(data);
@@ -57,6 +59,7 @@ public class VitalOrderController {
             notes = "vitalId:查体标签ID,必填<br>")
     @PostMapping("/deleteVitalOrder")
     @SysLogger("deleteVitalOrder")
+    @Transactional
     public RespDTO<Boolean> deleteVitalOrder(@RequestParam("vitalId") Long vitalId) {
         Boolean data = vitalOrderFacade.deleteVitalOrder(vitalId);
         return RespDTO.onSuc(data);
@@ -66,6 +69,7 @@ public class VitalOrderController {
             notes = "vitalIds:查体标签ID,必填<br>")
     @PostMapping("/deleteVitalOrders")
     @SysLogger("deleteVitalOrders")
+    @Transactional
     public RespDTO<Boolean> deleteVitalOrders(@RequestParam("vitalIds") Long[] vitalIds) {
         Boolean data = vitalOrderFacade.deleteVitalOrders(vitalIds);
         return RespDTO.onSuc(data);

+ 20 - 0
icssman-service/src/main/resources/mapper/RetrievalMapper.xml

@@ -15,4 +15,24 @@
         <result column="remark" property="remark" />
     </resultMap>
 
+	<select id="getRetrievalsByTag" parameterType="com.diagbot.vo.GetRetrievalsByTagVO"
+		resultType="com.diagbot.dto.GetRetrievalsByTagDTO">
+		SELECT
+			c.id as retrievalId,
+			b.id as retrievalMappingId,
+			c.`name` as retrievalName
+		FROM icss_question_info a 
+		JOIN icss_retrieval_mapping b
+		ON a.id=b.question_id
+		JOIN icss_retrieval c 
+		ON b.retrieval_id=c.id
+		WHERE a.is_deleted='N' AND b.is_deleted='N' AND c.is_deleted='N'
+		<if test="questionId!=null">
+			AND a.id=#{questionId}
+		</if>
+		<if test="questionName!=null">
+			AND a.`name`=#{questionName}
+		</if>
+	</select>
+
 </mapper>