Browse Source

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

gaodm 6 years ago
parent
commit
238e879dc5
19 changed files with 294 additions and 123 deletions
  1. 12 0
      icss-service/src/main/java/com/diagbot/dto/GetTopPatientInfoDTO.java
  2. 4 1
      icss-service/src/main/java/com/diagbot/entity/QuestionDetail.java
  3. 15 0
      icss-service/src/main/java/com/diagbot/facade/PatientInfoFacade.java
  4. 1 0
      icss-service/src/main/resources/mapper/QuestionDetailMapper.xml
  5. 0 33
      icssman-service/src/main/java/com/diagbot/dto/AddTagRetrievalDTO.java
  6. 30 7
      icssman-service/src/main/java/com/diagbot/facade/QuestionInfoFacade.java
  7. 1 1
      icssman-service/src/main/java/com/diagbot/facade/QuestionUsualFacade.java
  8. 76 33
      icssman-service/src/main/java/com/diagbot/facade/RetrievalFacade.java
  9. 8 0
      icssman-service/src/main/java/com/diagbot/mapper/QuestionInfoMapper.java
  10. 9 0
      icssman-service/src/main/java/com/diagbot/service/QuestionInfoService.java
  11. 5 0
      icssman-service/src/main/java/com/diagbot/service/impl/QuestionInfoServiceImpl.java
  12. 42 0
      icssman-service/src/main/java/com/diagbot/vo/AddTagRetrievalDetailVO.java
  13. 9 23
      icssman-service/src/main/java/com/diagbot/vo/AddTagRetrievalVO.java
  14. 6 2
      icssman-service/src/main/java/com/diagbot/dto/QuestionIndexDTO.java
  15. 20 0
      icssman-service/src/main/java/com/diagbot/vo/QuestionSpecVO.java
  16. 14 3
      icssman-service/src/main/java/com/diagbot/web/QuestionInfoController.java
  17. 2 3
      icssman-service/src/main/java/com/diagbot/web/RetrievalController.java
  18. 33 17
      icssman-service/src/main/resources/mapper/QuestionInfoMapper.xml
  19. 7 0
      pom.xml

+ 12 - 0
icss-service/src/main/java/com/diagbot/dto/GetTopPatientInfoDTO.java

@@ -126,4 +126,16 @@ public class GetTopPatientInfoDTO {
 	@ApiModelProperty(value="门诊号")
 	@ApiModelProperty(value="门诊号")
 	private String recordId;
 	private String recordId;
 	
 	
+    /**
+     * 模式分类
+     */
+	@ApiModelProperty(value="模式分类")
+    private Integer modeClassify;
+
+    /**
+     * 模式值
+     */
+	@ApiModelProperty(value="模式值")
+    private Integer modeValue;
+	
 }
 }

+ 4 - 1
icss-service/src/main/java/com/diagbot/entity/QuestionDetail.java

@@ -68,7 +68,10 @@ public class QuestionDetail implements Serializable {
      */
      */
     private String remark;
     private String remark;
 
 
-
+    /**
+     * 是否异常
+     */
+    private Integer abnormal;
 
 
 
 
 }
 }

+ 15 - 0
icss-service/src/main/java/com/diagbot/facade/PatientInfoFacade.java

@@ -3,11 +3,14 @@ package com.diagbot.facade;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.diagbot.dto.GetTopPatientInfoDTO;
 import com.diagbot.dto.GetTopPatientInfoDTO;
 import com.diagbot.dto.PatientInfoDTO;
 import com.diagbot.dto.PatientInfoDTO;
+import com.diagbot.entity.DoctorPageMode;
 import com.diagbot.entity.PatientInfo;
 import com.diagbot.entity.PatientInfo;
 import com.diagbot.service.impl.PatientInfoServiceImpl;
 import com.diagbot.service.impl.PatientInfoServiceImpl;
 import com.diagbot.util.DateUtil;
 import com.diagbot.util.DateUtil;
 import com.diagbot.vo.GetTopPatientInfoVO;
 import com.diagbot.vo.GetTopPatientInfoVO;
 import com.diagbot.vo.PatientInfoVO;
 import com.diagbot.vo.PatientInfoVO;
+
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 import org.springframework.stereotype.Component;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestBody;
 
 
@@ -18,6 +21,9 @@ import org.springframework.web.bind.annotation.RequestBody;
  */
  */
 @Component
 @Component
 public class PatientInfoFacade extends PatientInfoServiceImpl {
 public class PatientInfoFacade extends PatientInfoServiceImpl {
+	
+	@Autowired
+	private DoctorPageModeFacade doctorPageModeFacade;
 
 
     /**
     /**
      * 获取患者信息
      * 获取患者信息
@@ -40,6 +46,15 @@ public class PatientInfoFacade extends PatientInfoServiceImpl {
         GetTopPatientInfoDTO getTopPatientInfoDTO = baseMapper.getTopPatientInfo(getTopPatientInfoVO);
         GetTopPatientInfoDTO getTopPatientInfoDTO = baseMapper.getTopPatientInfo(getTopPatientInfoVO);
         getTopPatientInfoDTO.setSystemTime(DateUtil.now());
         getTopPatientInfoDTO.setSystemTime(DateUtil.now());
         getTopPatientInfoDTO.setRecordId(getTopPatientInfoVO.getRecordId());
         getTopPatientInfoDTO.setRecordId(getTopPatientInfoVO.getRecordId());
+        
+        QueryWrapper<DoctorPageMode> doctorPageModeQe = new QueryWrapper<>();
+        doctorPageModeQe.eq("is_deleted", "N");
+        doctorPageModeQe.eq("doctor_id", getTopPatientInfoDTO.getDoctorId());
+        DoctorPageMode doctorPageMode = doctorPageModeFacade.getOne(doctorPageModeQe);
+        if(doctorPageMode!=null){
+        	getTopPatientInfoDTO.setModeClassify(doctorPageMode.getModeClassify());
+        	getTopPatientInfoDTO.setModeValue(doctorPageMode.getModeValue());
+        }
         return getTopPatientInfoDTO;
         return getTopPatientInfoDTO;
     }
     }
 
 

+ 1 - 0
icss-service/src/main/resources/mapper/QuestionDetailMapper.xml

@@ -11,6 +11,7 @@
         <result column="question_id" property="questionId" />
         <result column="question_id" property="questionId" />
         <result column="order_no" property="orderNo" />
         <result column="order_no" property="orderNo" />
         <result column="default_select" property="defaultSelect" />
         <result column="default_select" property="defaultSelect" />
+        <result column="abnormal" property="abnormal" />
         <result column="remark" property="remark" />
         <result column="remark" property="remark" />
     </resultMap>
     </resultMap>
 
 

+ 0 - 33
icssman-service/src/main/java/com/diagbot/dto/AddTagRetrievalDTO.java

@@ -1,33 +0,0 @@
-/**
- * 
- */
-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 AddTagRetrievalDTO {
-	
-	/**
-	 * 同义词id
-	 */
-	@ApiModelProperty(value="同义词id")
-	private Long retrievalId;
-	
-	/**
-	 * 同义词映射id
-	 */
-	@ApiModelProperty(value="同义词映射id")
-	private Long retrievalMappingId;
-	
-}

+ 30 - 7
icssman-service/src/main/java/com/diagbot/facade/QuestionInfoFacade.java

@@ -4,7 +4,6 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.diagbot.dto.GetQuestionInfoDTO;
 import com.diagbot.dto.GetQuestionInfoDTO;
-import com.diagbot.dto.QuestionIndexDTO;
 import com.diagbot.dto.QuestionPageDTO;
 import com.diagbot.dto.QuestionPageDTO;
 import com.diagbot.entity.CommonParam;
 import com.diagbot.entity.CommonParam;
 import com.diagbot.entity.DeptInfo;
 import com.diagbot.entity.DeptInfo;
@@ -28,8 +27,10 @@ import com.diagbot.util.StringUtil;
 import com.diagbot.util.UserUtils;
 import com.diagbot.util.UserUtils;
 import com.diagbot.vo.GetQuestionInfoVO;
 import com.diagbot.vo.GetQuestionInfoVO;
 import com.diagbot.vo.GetQuestionUsualByDeptVO;
 import com.diagbot.vo.GetQuestionUsualByDeptVO;
+import com.diagbot.vo.QuestionIndexVO;
 import com.diagbot.vo.QuestionPageVO;
 import com.diagbot.vo.QuestionPageVO;
 import com.diagbot.vo.QuestionSaveVO;
 import com.diagbot.vo.QuestionSaveVO;
+import com.diagbot.vo.QuestionSpecVO;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.stereotype.Component;
 import org.springframework.stereotype.Component;
@@ -283,6 +284,7 @@ public class QuestionInfoFacade extends QuestionInfoServiceImpl {
         this.saveOrUpdate(questionInfo);
         this.saveOrUpdate(questionInfo);
     }
     }
 
 
+
     /**
     /**
      * 标签列表
      * 标签列表
      *
      *
@@ -333,19 +335,38 @@ public class QuestionInfoFacade extends QuestionInfoServiceImpl {
     /**
     /**
      * 检索
      * 检索
      *
      *
-     * @param questionIndexDTO
+     * @param questionIndexVO
      * @return
      * @return
      */
      */
-    public List<QuestionInfo> indexFac(QuestionIndexDTO questionIndexDTO) {
+    public List<QuestionInfo> indexFac(QuestionIndexVO questionIndexVO) {
         Map<String, Object> paramMap = new HashMap<>();
         Map<String, Object> paramMap = new HashMap<>();
         paramMap.put("isDeleted", IsDeleteEnum.N.getKey());
         paramMap.put("isDeleted", IsDeleteEnum.N.getKey());
-        paramMap.put("age", questionIndexDTO.getAge());
-        paramMap.put("sexType", questionIndexDTO.getSexType());
-        paramMap.put("tagName", questionIndexDTO.getTagName());
-        paramMap.put("type", questionIndexDTO.getType());
+        paramMap.put("age", questionIndexVO.getAge());
+        paramMap.put("sexType", questionIndexVO.getSexType());
+        paramMap.put("tagName", questionIndexVO.getTagName());
+        paramMap.put("type", questionIndexVO.getType());
+        paramMap.put("controlType", questionIndexVO.getControlType());
+        paramMap.put("notIds", questionIndexVO.getNotIds());
         return this.index(paramMap);
         return this.index(paramMap);
     }
     }
 
 
+
+    /**
+     * 获取特殊标签(同伴|无)
+     *
+     * @param questionSpecVO
+     * @return
+     */
+    public List<QuestionInfo> getSpecialFac(QuestionSpecVO questionSpecVO) {
+        Map<String, Object> paramMap = new HashMap<>();
+        paramMap.put("age", questionSpecVO.getAge());
+        paramMap.put("sexType", questionSpecVO.getSexType());
+        paramMap.put("type", questionSpecVO.getType());
+        paramMap.put("notIds", questionSpecVO.getNotIds());
+        return this.getSpecial(paramMap);
+    }
+
+
     /**
     /**
      * 根据标签名获取标签信息
      * 根据标签名获取标签信息
      *
      *
@@ -360,6 +381,7 @@ public class QuestionInfoFacade extends QuestionInfoServiceImpl {
         return this.getOne(queryWrapper);
         return this.getOne(queryWrapper);
     }
     }
 
 
+
     /**
     /**
      * 根据标签名获取标签信息
      * 根据标签名获取标签信息
      *
      *
@@ -371,6 +393,7 @@ public class QuestionInfoFacade extends QuestionInfoServiceImpl {
         return getQuestionInfoDTOS;
         return getQuestionInfoDTOS;
     }
     }
 
 
+
     /**
     /**
      * 根据科室id获取常用标签信息
      * 根据科室id获取常用标签信息
      *
      *

+ 1 - 1
icssman-service/src/main/java/com/diagbot/facade/QuestionUsualFacade.java

@@ -105,7 +105,7 @@ public class QuestionUsualFacade extends QuestionUsualServiceImpl {
             }
             }
         }
         }
         if(!flag){
         if(!flag){
-            throw new CommonException(CommonErrorCode.RPC_ERROR,
+            throw new CommonException(CommonErrorCode.FAIL,
                     "标签已删除");
                     "标签已删除");
         }
         }
         //删除常用标签
         //删除常用标签

+ 76 - 33
icssman-service/src/main/java/com/diagbot/facade/RetrievalFacade.java

@@ -3,6 +3,8 @@
  */
  */
 package com.diagbot.facade;
 package com.diagbot.facade;
 
 
+import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
 import java.util.List;
 import java.util.Map;
 import java.util.Map;
 import java.util.stream.Collectors;
 import java.util.stream.Collectors;
@@ -13,7 +15,6 @@ import org.springframework.stereotype.Component;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.diagbot.client.UserServiceClient;
 import com.diagbot.client.UserServiceClient;
-import com.diagbot.dto.AddTagRetrievalDTO;
 import com.diagbot.dto.GetRetrievalsByTagDTO;
 import com.diagbot.dto.GetRetrievalsByTagDTO;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.dto.RetrievalListDTO;
 import com.diagbot.dto.RetrievalListDTO;
@@ -24,6 +25,7 @@ import com.diagbot.exception.CommonException;
 import com.diagbot.service.impl.RetrievalServiceImpl;
 import com.diagbot.service.impl.RetrievalServiceImpl;
 import com.diagbot.util.DateUtil;
 import com.diagbot.util.DateUtil;
 import com.diagbot.util.UserUtils;
 import com.diagbot.util.UserUtils;
+import com.diagbot.vo.AddTagRetrievalDetailVO;
 import com.diagbot.vo.AddTagRetrievalVO;
 import com.diagbot.vo.AddTagRetrievalVO;
 import com.diagbot.vo.DelRetrievalsByMapsVO;
 import com.diagbot.vo.DelRetrievalsByMapsVO;
 import com.diagbot.vo.GetRetrievalsByTagVO;
 import com.diagbot.vo.GetRetrievalsByTagVO;
@@ -77,39 +79,80 @@ public class RetrievalFacade extends RetrievalServiceImpl {
      * @param addTagRetrievalVO
      * @param addTagRetrievalVO
      * @return
      * @return
      */
      */
-    public AddTagRetrievalDTO addTagRetrieval(AddTagRetrievalVO addTagRetrievalVO) {
-        AddTagRetrievalDTO addTagRetrievalDTO = new AddTagRetrievalDTO();
-        QueryWrapper<Retrieval> queryWrapper = new QueryWrapper<Retrieval>();
-        queryWrapper.eq("name", addTagRetrievalVO.getRetrievalName());
-        queryWrapper.eq("is_deleted", "N");
-        Retrieval retrieval = this.getOne(queryWrapper);
-        String userId = UserUtils.getCurrentPrincipleID();
-        if (retrieval == null) {
-            retrieval = new Retrieval();
-            retrieval.setName(addTagRetrievalVO.getRetrievalName());
-            retrieval.setCreator(userId);
-            retrieval.setGmtCreate(DateUtil.now());
-        } else {
-            QueryWrapper<RetrievalMapping> queryWrapper2 = new QueryWrapper<RetrievalMapping>();
-            queryWrapper2.eq("retrieval_id", retrieval.getId());
-            queryWrapper2.eq("question_id", addTagRetrievalVO.getQuestionId());
-            retrievalMappingFacade.remove(queryWrapper2);
-        }
-
-        retrieval.setSpell(addTagRetrievalVO.getRetrievalSpell());
-        this.saveOrUpdate(retrieval);
-
-        RetrievalMapping retrievalMapping = new RetrievalMapping();
-        retrievalMapping.setQuestionId(addTagRetrievalVO.getQuestionId());
-        retrievalMapping.setRetrievalId(retrieval.getId());
-        retrievalMapping.setShowType(addTagRetrievalVO.getRetrievalType());
-        retrievalMapping.setCreator(userId);
-        retrievalMapping.setGmtCreate(DateUtil.now());
-        retrievalMappingFacade.save(retrievalMapping);
+    public Boolean addTagRetrieval(AddTagRetrievalVO addTagRetrievalVO) {
+    	Date now = DateUtil.now();
+    	String userId = UserUtils.getCurrentPrincipleID();
+    	
+        Map<String,AddTagRetrievalDetailVO> detailMap = addTagRetrievalVO.getItemList().stream().collect(Collectors.toMap(AddTagRetrievalDetailVO::getRetrievalName,i->i));
+    	List<String> retrievalNames = addTagRetrievalVO.getItemList().stream().map(i->i.getRetrievalName()).collect(Collectors.toList());
+    	
+        QueryWrapper<Retrieval> retrievalQe = new QueryWrapper<Retrieval>();
+        retrievalQe.in("name", retrievalNames);
+        retrievalQe.eq("is_deleted", "N");
+        Map<String,Retrieval> retrievalMap = this.list(retrievalQe).stream().collect(Collectors.toMap(Retrieval::getName,i->i));
+        
+        List<Retrieval> saveOrUpdateRetrievals = new ArrayList<>();
+        List<Retrieval> retrievals = new ArrayList<>();
+        addTagRetrievalVO.getItemList().forEach(i->{
+        	Retrieval retrieval = retrievalMap.get(i.getRetrievalName());
+        	if(retrieval==null){
+        		retrieval = new Retrieval();
+        		retrieval.setName(i.getRetrievalName());
+        		retrieval.setSpell(i.getRetrievalSpell());
+        		retrieval.setCreator(userId);
+        		retrieval.setGmtCreate(now);
+        		retrieval.setModifier(userId);
+        		retrieval.setGmtModified(now);
+        		saveOrUpdateRetrievals.add(retrieval);
+        	}else if(!retrieval.getSpell().equals(i.getRetrievalSpell())){
+        		retrieval.setSpell(i.getRetrievalSpell());
+        		retrieval.setModifier(userId);
+        		retrieval.setGmtModified(now);
+        		saveOrUpdateRetrievals.add(retrieval);
+        	}else{
+        		retrievals.add(retrieval);
+        	}
+        });
+        this.saveOrUpdateBatch(saveOrUpdateRetrievals);
+        retrievals.addAll(saveOrUpdateRetrievals);
+        List<Long> retrievalIds = retrievals.stream().map(i->i.getId()).collect(Collectors.toList());
+        
+    	QueryWrapper<RetrievalMapping> retrievalMappingQe = new QueryWrapper<RetrievalMapping>();
+    	retrievalMappingQe.eq("question_id", addTagRetrievalVO.getQuestionId());
+        List<RetrievalMapping> retrievalMappings = retrievalMappingFacade.list(retrievalMappingQe);
+        Map<Long,RetrievalMapping> retrievalMappingMap = retrievalMappings.stream().collect(Collectors.toMap(RetrievalMapping::getRetrievalId, i->i));
+        
+        List<RetrievalMapping> addOrUpdateRetrievalMappings = new ArrayList<>();
+        retrievalMappings.stream().filter(i->retrievalIds.contains(i.getRetrievalId())).forEach(i->{
+        	i.setIsDeleted("Y");
+        	i.setGmtModified(now);
+        	i.setModifier(userId);
+        	addOrUpdateRetrievalMappings.add(i);
+        });
+        
+        retrievals.forEach(i->{
+        	RetrievalMapping retrievalMapping = retrievalMappingMap.get(i.getId());
+        	if(retrievalMapping==null){
+        		retrievalMapping = new RetrievalMapping();
+        		retrievalMapping.setQuestionId(addTagRetrievalVO.getQuestionId());
+        		retrievalMapping.setRetrievalId(i.getId());
+        		retrievalMapping.setGmtCreate(now);
+        		retrievalMapping.setGmtModified(now);
+        		retrievalMapping.setCreator(userId);
+        		retrievalMapping.setModifier(userId);
+        	}else{
+        		if(detailMap.get(i.getName()).getRetrievalType()!=retrievalMapping.getShowType()){
+        			retrievalMapping.setShowType(detailMap.get(i.getName()).getRetrievalType());
+        			retrievalMapping.setGmtModified(now);
+        			retrievalMapping.setModifier(userId);
+        		}
+        	}
+        	addOrUpdateRetrievalMappings.add(retrievalMapping);
+        });
+        
+        retrievalMappingFacade.saveOrUpdateBatch(addOrUpdateRetrievalMappings);     
 
 
-        addTagRetrievalDTO.setRetrievalId(retrieval.getId());
-        addTagRetrievalDTO.setRetrievalMappingId(retrievalMapping.getId());
-        return addTagRetrievalDTO;
+        return true;
     }
     }
     
     
     /**
     /**

+ 8 - 0
icssman-service/src/main/java/com/diagbot/mapper/QuestionInfoMapper.java

@@ -43,6 +43,14 @@ public interface QuestionInfoMapper extends BaseMapper<QuestionInfo> {
     public List<GetQuestionInfoDTO> getQuestionUsualsByDept(GetQuestionUsualByDeptVO getQuestionUsualByDeptVO);
     public List<GetQuestionInfoDTO> getQuestionUsualsByDept(GetQuestionUsualByDeptVO getQuestionUsualByDeptVO);
 
 
 
 
+    /**
+     * 获取特殊标签,同伴|无
+     * @param map
+     * @return
+     */
+    public List<QuestionInfo> getSpecial(Map map);
+
+
     /**
     /**
      * 获取标签列表
      * 获取标签列表
      *
      *

+ 9 - 0
icssman-service/src/main/java/com/diagbot/service/QuestionInfoService.java

@@ -63,6 +63,15 @@ public interface QuestionInfoService extends IService<QuestionInfo> {
      * @return
      * @return
      */
      */
     public List<GetQuestionInfoDTO> getQuestionUsualsByDept(GetQuestionUsualByDeptVO getQuestionUsualByDeptVO);
     public List<GetQuestionInfoDTO> getQuestionUsualsByDept(GetQuestionUsualByDeptVO getQuestionUsualByDeptVO);
+
+
+    /**
+     * 获取特殊标签
+     *
+     * @param map
+     * @return
+     */
+    public List<QuestionInfo> getSpecial(Map map);
 }
 }
 
 
 
 

+ 5 - 0
icssman-service/src/main/java/com/diagbot/service/impl/QuestionInfoServiceImpl.java

@@ -46,6 +46,11 @@ public class QuestionInfoServiceImpl extends ServiceImpl<QuestionInfoMapper, Que
         return baseMapper.getQuestionUsualsByDept(getQuestionUsualByDeptVO);
         return baseMapper.getQuestionUsualsByDept(getQuestionUsualByDeptVO);
     }
     }
 
 
+    @Override
+    public List<QuestionInfo> getSpecial(Map map) {
+        return baseMapper.getSpecial(map);
+    }
+
     @Override
     @Override
     public IPage<QuestionPageDTO> getList(QuestionPageVO questionPageVO) {
     public IPage<QuestionPageDTO> getList(QuestionPageVO questionPageVO) {
         return baseMapper.getList(questionPageVO);
         return baseMapper.getList(questionPageVO);

+ 42 - 0
icssman-service/src/main/java/com/diagbot/vo/AddTagRetrievalDetailVO.java

@@ -0,0 +1,42 @@
+package com.diagbot.vo;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+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 AddTagRetrievalDetailVO {
+	
+	/**
+	 * 同义词名称
+	 */
+	@ApiModelProperty(value="同义词名称",required=true)
+	@NotBlank(message="同义词名称必传")
+	private String retrievalName;
+	
+	/**
+	 * 同义词拼音
+	 */
+	@ApiModelProperty(value="同义词拼音",required=true)
+	@NotBlank(message="同义词拼音必传")
+	private String retrievalSpell;
+	
+	/**
+	 * 同义词种类
+	 */
+	@ApiModelProperty(value="同义词种类",required=true)
+	@NotNull(message="同义词种类必传")
+	private Integer retrievalType;
+	
+}

+ 9 - 23
icssman-service/src/main/java/com/diagbot/vo/AddTagRetrievalVO.java

@@ -1,6 +1,9 @@
 package com.diagbot.vo;
 package com.diagbot.vo;
 
 
-import javax.validation.constraints.NotBlank;
+import java.util.List;
+
+import javax.validation.Valid;
+import javax.validation.constraints.NotEmpty;
 import javax.validation.constraints.NotNull;
 import javax.validation.constraints.NotNull;
 
 
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModel;
@@ -13,7 +16,7 @@ import lombok.Setter;
  * @author rgb
  * @author rgb
  * @time 2018年12月5日下午5:00:52
  * @time 2018年12月5日下午5:00:52
  */
  */
-@ApiModel(value="标签添加同义词接口传参")
+@ApiModel(value="添加或者编辑标签同义词接口传参")
 @Getter
 @Getter
 @Setter
 @Setter
 public class AddTagRetrievalVO {
 public class AddTagRetrievalVO {
@@ -25,26 +28,9 @@ public class AddTagRetrievalVO {
 	@NotNull(message="标签id必传")
 	@NotNull(message="标签id必传")
     private Long questionId;
     private Long questionId;
 	
 	
-	
-	/**
-	 * 同义词名称
-	 */
-	@ApiModelProperty(value="同义词名称",required=true)
-	@NotBlank(message="同义词名称必传")
-	private String retrievalName;
-	
-	/**
-	 * 同义词拼音
-	 */
-	@ApiModelProperty(value="同义词拼音",required=true)
-	@NotBlank(message="同义词拼音必传")
-	private String retrievalSpell;
-	
-	/**
-	 * 同义词种类
-	 */
-	@ApiModelProperty(value="同义词种类",required=true)
-	@NotNull(message="同义词种类必传")
-	private Integer retrievalType;
+	@Valid
+	@ApiModelProperty(value="同义词集合",required=true)
+	@NotEmpty(message="同义词必传")
+	private List<AddTagRetrievalDetailVO> itemList;
 	
 	
 }
 }

+ 6 - 2
icssman-service/src/main/java/com/diagbot/dto/QuestionIndexDTO.java

@@ -1,8 +1,10 @@
-package com.diagbot.dto;
+package com.diagbot.vo;
 
 
 import lombok.Getter;
 import lombok.Getter;
 import lombok.Setter;
 import lombok.Setter;
 
 
+import java.util.List;
+
 /**
 /**
  * @Description:
  * @Description:
  * @Author:zhaops
  * @Author:zhaops
@@ -10,9 +12,11 @@ import lombok.Setter;
  */
  */
 @Getter
 @Getter
 @Setter
 @Setter
-public class QuestionIndexDTO {
+public class QuestionIndexVO {
     private String tagName;
     private String tagName;
     private Integer sexType;
     private Integer sexType;
     private Integer age;
     private Integer age;
     private Integer type;
     private Integer type;
+    private Integer controlType;
+    private List<Long> notIds;
 }
 }

+ 20 - 0
icssman-service/src/main/java/com/diagbot/vo/QuestionSpecVO.java

@@ -0,0 +1,20 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.List;
+
+/**
+ * @Description: 特殊标签
+ * @Author: ztg
+ * @Date: 2018/12/18 16:35
+ */
+@Getter
+@Setter
+public class QuestionSpecVO {
+    private Integer sexType;
+    private Integer age;
+    private Integer type;
+    private List<Long> notIds;
+}

+ 14 - 3
icssman-service/src/main/java/com/diagbot/web/QuestionInfoController.java

@@ -3,13 +3,14 @@ package com.diagbot.web;
 
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.diagbot.annotation.SysLogger;
 import com.diagbot.annotation.SysLogger;
-import com.diagbot.dto.QuestionIndexDTO;
 import com.diagbot.dto.QuestionPageDTO;
 import com.diagbot.dto.QuestionPageDTO;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.entity.QuestionInfo;
 import com.diagbot.entity.QuestionInfo;
 import com.diagbot.facade.QuestionInfoFacade;
 import com.diagbot.facade.QuestionInfoFacade;
+import com.diagbot.vo.QuestionIndexVO;
 import com.diagbot.vo.QuestionPageVO;
 import com.diagbot.vo.QuestionPageVO;
 import com.diagbot.vo.QuestionSaveVO;
 import com.diagbot.vo.QuestionSaveVO;
+import com.diagbot.vo.QuestionSpecVO;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -63,8 +64,18 @@ public class QuestionInfoController {
             notes = "")
             notes = "")
     @PostMapping("/index")
     @PostMapping("/index")
     @SysLogger("index")
     @SysLogger("index")
-    public RespDTO<List<QuestionInfo>> index(@RequestBody QuestionIndexDTO questionIndexDTO) {
-        List<QuestionInfo> data = questionInfoFacade.indexFac(questionIndexDTO);
+    public RespDTO<List<QuestionInfo>> index(@RequestBody QuestionIndexVO questionIndexVO) {
+        List<QuestionInfo> data = questionInfoFacade.indexFac(questionIndexVO);
+        return RespDTO.onSuc(data);
+    }
+
+
+    @ApiOperation(value = "获取特殊标签(同伴|无)[by:zhoutg]",
+            notes = "")
+    @PostMapping("/getSpecial")
+    @SysLogger("getSpecial")
+    public RespDTO<List<QuestionInfo>> getSpecial(@RequestBody QuestionSpecVO questionSpecVO) {
+        List<QuestionInfo> data = questionInfoFacade.getSpecialFac(questionSpecVO);
         return RespDTO.onSuc(data);
         return RespDTO.onSuc(data);
     }
     }
 
 

+ 2 - 3
icssman-service/src/main/java/com/diagbot/web/RetrievalController.java

@@ -13,7 +13,6 @@ import org.springframework.web.bind.annotation.RestController;
 
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.diagbot.annotation.SysLogger;
 import com.diagbot.annotation.SysLogger;
-import com.diagbot.dto.AddTagRetrievalDTO;
 import com.diagbot.dto.GetRetrievalsByTagDTO;
 import com.diagbot.dto.GetRetrievalsByTagDTO;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.dto.RetrievalListDTO;
 import com.diagbot.dto.RetrievalListDTO;
@@ -59,11 +58,11 @@ public class RetrievalController {
         return RespDTO.onSuc(retrievalFacade.delRetrievalsByMaps(delRetrievalsByMapsVO));
         return RespDTO.onSuc(retrievalFacade.delRetrievalsByMaps(delRetrievalsByMapsVO));
     }
     }
 
 
-    @ApiOperation(value = "标签添加同义词[by:rengb]")
+    @ApiOperation(value = "添加或者编辑标签同义词[by:rengb]")
     @PostMapping("/addTagRetrieval")
     @PostMapping("/addTagRetrieval")
     @SysLogger("addTagRetrieval")
     @SysLogger("addTagRetrieval")
     @Transactional
     @Transactional
-    public RespDTO<AddTagRetrievalDTO> addTagRetrieval(@Valid @RequestBody AddTagRetrievalVO addTagRetrievalVO) {
+    public RespDTO<Boolean> addTagRetrieval(@Valid @RequestBody AddTagRetrievalVO addTagRetrievalVO) {
         return RespDTO.onSuc(retrievalFacade.addTagRetrieval(addTagRetrievalVO));
         return RespDTO.onSuc(retrievalFacade.addTagRetrieval(addTagRetrievalVO));
     }
     }
 
 

+ 33 - 17
icssman-service/src/main/resources/mapper/QuestionInfoMapper.xml

@@ -48,7 +48,7 @@
         select * from `icss_question_info`
         select * from `icss_question_info`
         where is_deleted = 'N'
         where is_deleted = 'N'
         <if test="tagName != null and tagName != ''">
         <if test="tagName != null and tagName != ''">
-            and tag_name = #{tagName}
+            and tag_name like concat("%", #{tagName}, "%")
         </if>
         </if>
         <if test="sexType != null and sexType != ''">
         <if test="sexType != null and sexType != ''">
             and sex_type in (3, #{sexType})
             and sex_type in (3, #{sexType})
@@ -60,24 +60,16 @@
         <if test="type != null and type != ''">
         <if test="type != null and type != ''">
             and type = #{type}
             and type = #{type}
         </if>
         </if>
-
-        union
-
-        select * from `icss_question_info`
-        where is_deleted = 'N'
-        <if test="tagName != null and tagName != ''">
-            and tag_name like concat("%", #{tagName}, "%")
-        </if>
-        <if test="sexType != null and sexType != ''">
-            and sex_type in (3, #{sexType})
+        <if test="controlType != null and controlType != ''">
+            and control_type = #{controlType}
         </if>
         </if>
-        <if test="age != null and age != ''">
-            <![CDATA[ and age_begin <= #{age} ]]>
-            <![CDATA[ and age_end >= #{age} ]]>
-        </if>
-        <if test="type != null and type != ''">
-            and type = #{type}
+        <if test="notIds != null and notIds.size() > 0 ">
+            and id not in
+            <foreach  collection="notIds" item="id" open="("  separator=","  close=")">
+                #{id}
+            </foreach>
         </if>
         </if>
+        order by gmt_modified desc
     </select>
     </select>
 
 
     <select id="getQuestiongInfoByName" resultType="com.diagbot.dto.GetQuestionInfoDTO">
     <select id="getQuestiongInfoByName" resultType="com.diagbot.dto.GetQuestionInfoDTO">
@@ -127,4 +119,28 @@
         GROUP BY a.id
         GROUP BY a.id
     </select>
     </select>
 
 
+
+    <select id="getSpecial" parameterType="java.util.Map" resultMap="BaseResultMap">
+        SELECT DISTINCT t1.* FROM icss_question_info t1, `icss_question_detail` t2
+        where t1.is_deleted = 'N' and t2.is_deleted = 'N' and
+        t1.id = t2.question_id and t2.`code` in (1,2)
+        <if test="sexType != null and sexType != ''">
+            and t1.sex_type in (3, #{sexType})
+        </if>
+        <if test="age != null and age != ''">
+            <![CDATA[ and t1.age_begin <= #{age} ]]>
+            <![CDATA[ and t1.age_end >= #{age} ]]>
+        </if>
+        <if test="type != null and type != ''">
+            and t1.type = #{type}
+        </if>
+        <if test="notIds != null and notIds.size() > 0 ">
+            and t1.id not in
+            <foreach  collection="notIds" item="id" open="("  separator=","  close=")">
+                #{id}
+            </foreach>
+        </if>
+    </select>
+
+
 </mapper>
 </mapper>

+ 7 - 0
pom.xml

@@ -84,6 +84,13 @@
                 <version>${druid.version}</version>
                 <version>${druid.version}</version>
             </dependency>
             </dependency>
 
 
+            <!-- https://mvnrepository.com/artifact/com.alibaba/fastjson -->
+            <dependency>
+                <groupId>com.alibaba</groupId>
+                <artifactId>fastjson</artifactId>
+                <version>1.2.46</version>
+            </dependency>
+
             <!--swagger-->
             <!--swagger-->
             <dependency>
             <dependency>
                 <groupId>io.springfox</groupId>
                 <groupId>io.springfox</groupId>