소스 검색

同义词修改

rgb 6 년 전
부모
커밋
cf8a85be13

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

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

+ 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.diagbot.dto.GetTopPatientInfoDTO;
 import com.diagbot.dto.PatientInfoDTO;
+import com.diagbot.entity.DoctorPageMode;
 import com.diagbot.entity.PatientInfo;
 import com.diagbot.service.impl.PatientInfoServiceImpl;
 import com.diagbot.util.DateUtil;
 import com.diagbot.vo.GetTopPatientInfoVO;
 import com.diagbot.vo.PatientInfoVO;
+
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 import org.springframework.web.bind.annotation.RequestBody;
 
@@ -18,6 +21,9 @@ import org.springframework.web.bind.annotation.RequestBody;
  */
 @Component
 public class PatientInfoFacade extends PatientInfoServiceImpl {
+	
+	@Autowired
+	private DoctorPageModeFacade doctorPageModeFacade;
 
     /**
      * 获取患者信息
@@ -40,6 +46,15 @@ public class PatientInfoFacade extends PatientInfoServiceImpl {
         GetTopPatientInfoDTO getTopPatientInfoDTO = baseMapper.getTopPatientInfo(getTopPatientInfoVO);
         getTopPatientInfoDTO.setSystemTime(DateUtil.now());
         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;
     }
 

+ 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;
-	
-}

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

@@ -3,6 +3,8 @@
  */
 package com.diagbot.facade;
 
+import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
 import java.util.Map;
 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.metadata.IPage;
 import com.diagbot.client.UserServiceClient;
-import com.diagbot.dto.AddTagRetrievalDTO;
 import com.diagbot.dto.GetRetrievalsByTagDTO;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.dto.RetrievalListDTO;
@@ -24,6 +25,7 @@ import com.diagbot.exception.CommonException;
 import com.diagbot.service.impl.RetrievalServiceImpl;
 import com.diagbot.util.DateUtil;
 import com.diagbot.util.UserUtils;
+import com.diagbot.vo.AddTagRetrievalDetailVO;
 import com.diagbot.vo.AddTagRetrievalVO;
 import com.diagbot.vo.DelRetrievalsByMapsVO;
 import com.diagbot.vo.GetRetrievalsByTagVO;
@@ -77,39 +79,80 @@ public class RetrievalFacade extends RetrievalServiceImpl {
      * @param addTagRetrievalVO
      * @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;
     }
     
     /**

+ 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;
 
-import javax.validation.constraints.NotBlank;
+import java.util.List;
+
+import javax.validation.Valid;
+import javax.validation.constraints.NotEmpty;
 import javax.validation.constraints.NotNull;
 
 import io.swagger.annotations.ApiModel;
@@ -13,7 +16,7 @@ import lombok.Setter;
  * @author rgb
  * @time 2018年12月5日下午5:00:52
  */
-@ApiModel(value="标签添加同义词接口传参")
+@ApiModel(value="添加或者编辑标签同义词接口传参")
 @Getter
 @Setter
 public class AddTagRetrievalVO {
@@ -25,26 +28,9 @@ public class AddTagRetrievalVO {
 	@NotNull(message="标签id必传")
     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;
 	
 }

+ 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.diagbot.annotation.SysLogger;
-import com.diagbot.dto.AddTagRetrievalDTO;
 import com.diagbot.dto.GetRetrievalsByTagDTO;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.dto.RetrievalListDTO;
@@ -59,11 +58,11 @@ public class RetrievalController {
         return RespDTO.onSuc(retrievalFacade.delRetrievalsByMaps(delRetrievalsByMapsVO));
     }
 
-    @ApiOperation(value = "标签添加同义词[by:rengb]")
+    @ApiOperation(value = "添加或者编辑标签同义词[by:rengb]")
     @PostMapping("/addTagRetrieval")
     @SysLogger("addTagRetrieval")
     @Transactional
-    public RespDTO<AddTagRetrievalDTO> addTagRetrieval(@Valid @RequestBody AddTagRetrievalVO addTagRetrievalVO) {
+    public RespDTO<Boolean> addTagRetrieval(@Valid @RequestBody AddTagRetrievalVO addTagRetrievalVO) {
         return RespDTO.onSuc(retrievalFacade.addTagRetrieval(addTagRetrievalVO));
     }