huangwenjie vor 5 Jahren
Ursprung
Commit
cf4976adf6

+ 76 - 1
business/im-service/src/main/java/com/yihu/jw/im/service/ImService.java

@ -10,7 +10,11 @@ import com.yihu.jw.entity.base.im.ConsultTeamDo;
import com.yihu.jw.entity.base.im.ConsultTeamDoctorDo;
import com.yihu.jw.entity.base.im.ConsultTeamLogDo;
import com.yihu.jw.entity.base.patient.BasePatientDO;
import com.yihu.jw.entity.base.score.BaseEvaluateDO;
import com.yihu.jw.entity.base.score.BaseEvaluateScoreDO;
import com.yihu.jw.entity.hospital.prescription.WlyyOutpatientDO;
import com.yihu.jw.evaluate.score.dao.BaseEvaluateDao;
import com.yihu.jw.evaluate.score.dao.BaseEvaluateScoreDao;
import com.yihu.jw.hospital.prescription.dao.OutpatientDao;
import com.yihu.jw.im.dao.ConsultDao;
import com.yihu.jw.im.dao.ConsultTeamDao;
@ -68,6 +72,11 @@ public class ImService {
	@Autowired
	public BasePatientDao basePatientDao;
	
	@Autowired
	public BaseEvaluateScoreDao baseEvaluateScoreDao;
	@Autowired
	public BaseEvaluateDao baseEvaluateDao;
	
	@Autowired
	public ImUtil imUtil;
	
@ -1097,5 +1106,71 @@ public class ImService {
		}
		return id;
	}
	
	/**
	 * 评价咨询
	 * @param consult
	 * @param scoreContent
	 * @param type
	 */
	public void evaluationByConsultCode(String consult, String scoreContent, Integer type) throws Exception{
		JSONArray jsonArray =  JSONArray.parseArray(scoreContent);
		
		Integer totalScore = 0;
		
		ConsultTeamDo consultTeamDo = consultTeamDao.findByConsult(consult);
		
		if(!jsonArray.isEmpty() && jsonArray.size() >0){
			BaseEvaluateScoreDO evaluateScoreDO = new BaseEvaluateScoreDO();
			evaluateScoreDO.setDoctor(consultTeamDo.getDoctor());
			evaluateScoreDO.setDoctorName(consultTeamDo.getDoctorName());
			evaluateScoreDO.setPatient(consultTeamDo.getPatient());
			evaluateScoreDO.setPatientName(consultTeamDo.getName());
			evaluateScoreDO.setRelationCode(consult);
			evaluateScoreDO.setEvaluateType(1);
			evaluateScoreDO.setType(type);
			evaluateScoreDO.setId(UUID.randomUUID().toString());
			
			String content = "";//评价内容
			
			List<BaseEvaluateDO> baseEvaluateDOS = new ArrayList<>();
			for (int i = 0; i < jsonArray.size(); i++) {
				JSONObject job = jsonArray.getJSONObject(i);
				if("4".equals(job.getString("scoreType"))){//非评价类型
					
					content = job.getString("content");
					BaseEvaluateDO baseEvaluateDO = new BaseEvaluateDO();
					baseEvaluateDO.setScoreType(job.getString("scoreType"));
					baseEvaluateDO.setScore(new Double(String.valueOf(job.getInteger("score"))));
					baseEvaluateDO.setRelationCode(evaluateScoreDO.getId());
					baseEvaluateDO.setContent(content);
					baseEvaluateDOS.add(baseEvaluateDO);
				}else{
					BaseEvaluateDO baseEvaluateDO = new BaseEvaluateDO();
					baseEvaluateDO.setScoreType(job.getString("scoreType"));
					baseEvaluateDO.setScore(new Double(String.valueOf(job.getInteger("score"))));
					baseEvaluateDO.setRelationCode(evaluateScoreDO.getId());
					totalScore += job.getInteger("score");
					baseEvaluateDOS.add(baseEvaluateDO);
				}
			}
			evaluateScoreDO.setScore((double) totalScore / 3);
			
			evaluateScoreDO = baseEvaluateScoreDao.save(evaluateScoreDO);
			
			for(BaseEvaluateDO baseEvaluateDO :baseEvaluateDOS){
				baseEvaluateDao.save(baseEvaluateDO);
			}
			
			consultTeamDo.setEvaluate(1);//保存已评价标识
			consultTeamDo.setEvaluateTime(new Date());
			consultTeamDao.save(consultTeamDo);
			
			/**
			 * todo 保存就诊记录表已评价标识
			 */
		
		}
		
	}
}

+ 11 - 1
common/common-entity/src/main/java/com/yihu/jw/entity/base/score/BaseEvaluateDO.java

@ -14,8 +14,9 @@ import javax.persistence.Table;
public class BaseEvaluateDO extends UuidIdentityEntityWithOperator {
    private String relationCode;//关联业务CODE(关联主表evlute_score)',
    private String scoreType;//评价类型:1、专业能力,2、服务态度,3、回复速度 (可拓展字段)',
    private String scoreType;//评价类型:1、专业能力,2、服务态度,3、回复速度 (可拓展字段),4其他',
    private Double score;//单项得分',
    private String content;//评语
    @Column(name = "relation_code")
    public String getRelationCode() {
@ -43,4 +44,13 @@ public class BaseEvaluateDO extends UuidIdentityEntityWithOperator {
    public void setScore(Double score) {
        this.score = score;
    }
    
    @Column(name = "content")
    public String getContent() {
        return content;
    }
    
    public void setContent(String content) {
        this.content = content;
    }
}

+ 3 - 0
common/common-request-mapping/src/main/java/com/yihu/jw/rm/hospital/BaseHospitalRequestMapping.java

@ -312,6 +312,9 @@ public class BaseHospitalRequestMapping {
        
        //根据复诊记录ID获取咨询CODE
        public static final String getConsultCodeByOutpatientId = "/getConsultCodeByOutpatientId";
        
        //评价咨询
        public static final String evaluationByConsultCode = "/evaluationByConsultCode";
        
    }

+ 16 - 0
svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/consult/PatientConsultEndpoint.java

@ -291,5 +291,21 @@ public class PatientConsultEndpoint extends EnvelopRestEndpoint {
			@RequestParam(value = "outpatientid",required = true) String outpatientid)throws Exception {
		return success("请求成功",imService.getConsultCodeByOutpatientId(outpatientid));
	}
	
	@PostMapping(value = BaseHospitalRequestMapping.PatientIM.evaluationByConsultCode)
	@ApiOperation(value = "评价咨询", notes = "评价咨询")
	public Envelop evaluationByConsultCode(
			@ApiParam(name = "consult", value = "咨询CODE")
			@RequestParam(value = "consult",required = true) String consult,
			@ApiParam(name = "scoreContent", value = "评价内容")
			@RequestParam(value = "scoreContent",required = false) String scoreContent,
			@ApiParam(name = "type", value = "1、实名,2、匿名")
			@RequestParam(value = "type",required = true) Integer type)throws Exception{
		if(StringUtils.isEmpty(scoreContent)){
			scoreContent= "[{\"scoreType\":\"1\",\"score\":100,\"content\":\"\"},{\"scoreType\":\"2\",\"score\":80,\"content\":\"\"},{\"scoreType\":\"3\",\"score\":80,\"content\":\"\"},{\"scoreType\":\"4\",\"score\":0,\"content\":\"测试评语。。。。123123\"}]";
		}
		imService.evaluationByConsultCode(consult,scoreContent,type);
		return success("请求成功");
	}
}