Kaynağa Gözat

满意度评价

trick9191 8 yıl önce
ebeveyn
işleme
9c8f8b882f

+ 22 - 8
patient-co-wlyy/src/main/java/com/yihu/wlyy/service/app/consult/EvaluateService.java

@ -2,6 +2,7 @@
package com.yihu.wlyy.service.app.consult;
import com.yihu.wlyy.aop.ObserverRequired;
import com.yihu.wlyy.entity.consult.ConsultTeam;
import com.yihu.wlyy.entity.consult.Evaluate;
import com.yihu.wlyy.entity.consult.EvaluateLabel;
@ -49,12 +50,14 @@ public class EvaluateService extends BaseService {
    public void saveByJson(String jsonData, String patient) {
        JSONObject jsonObject = new JSONObject(jsonData);
        String consult = jsonObject.getString("consult");
        String remark = jsonObject.getString("remark");
        ConsultTeam consultTeam = consultTeamService.findByCode(consult);
        //评价的分数
        JSONArray evaluateArray = jsonObject.getJSONArray("evaluate");
        //标签
        JSONArray labelArray = jsonObject.getJSONArray("label");
        JSONArray doctorArray = jsonObject.getJSONArray("doctors");
        List<Evaluate> evaluateList = null;
        List<EvaluateLabel> evaluateLabelList = new ArrayList<>();
        Map<String, List<Evaluate>> docEvaMap = new HashMap<>();
@ -85,8 +88,15 @@ public class EvaluateService extends BaseService {
            evaluateLabel.setPatient(patient);
            evaluateLabelList.add(evaluateLabel);
        }
        Map<String,JSONObject> doctorMap = new HashMap<>();
        //生成医生信息
        for(Object doctor : doctorArray){
            JSONObject d = (JSONObject) doctor;
            doctorMap.put((String)d.get("doctor"),d);
        }
        //计算单条得分
        evaluateScoreC(docEvaMap, consult,remark);
        evaluateScoreC(docEvaMap, consult,doctorMap);
        this.save(docEvaMap);
        evaluateLabelService.save(evaluateLabelList);
        consultTeam.setEvaluate(1);
@ -101,10 +111,12 @@ public class EvaluateService extends BaseService {
    public void updateByJson(String jsonData, String patient) {
        JSONObject jsonObject = new JSONObject(jsonData);
        String consult = jsonObject.getString("consult");
        String doctors = jsonObject.getString("doctors");
        if(StringUtils.isNotBlank(doctors)){
            String doctor[] = doctors.split(",");
            for(int i =0;i<doctor.length;i++){
        JSONArray doctors = jsonObject.getJSONArray("doctors");
        if(doctors!=null&&doctors.length()>0){
            for(Object d:doctors){
                JSONObject jd = (JSONObject) d;
                String doctor = jd.getString("doctor");
                //删除各类别分数
                String delEvSql = " DELETE  FROM wlyy_evaluate  WHERE consult ='"+consult+"' AND doctor ='"+doctor+"'";
                //删除分数
@ -156,9 +168,8 @@ public class EvaluateService extends BaseService {
        return evaluates;
    }
    private void evaluateScoreC(Map<String, List<Evaluate>> docEvaMap, String consult,String remark) {
    private void evaluateScoreC(Map<String, List<Evaluate>> docEvaMap, String consult,Map<String,JSONObject> doctorMap) {
        for (String doctor : docEvaMap.keySet()) {
            List<Evaluate> evaluates = docEvaMap.get(doctor);
                BigDecimal anonymousScore1 = new BigDecimal(ANONYMOUS_SCORE_DEFAULT_ONE);//专业能力
                BigDecimal anonymousScore2 = new BigDecimal(ANONYMOUS_SCORE_DEFAULT_TWO);//服务态度
                BigDecimal anonymousScore3 = new BigDecimal(ANONYMOUS_SCORE_DEFAULT_THREE);//回复速度
@ -177,6 +188,9 @@ public class EvaluateService extends BaseService {
                evaluateScore.setConsult(consult);
                evaluateScore.setDoctor(doctor);
                evaluateScore.setScore(score.doubleValue());
                //获取医生评价信息
                JSONObject doctorInfo = doctorMap.get(doctor);
                String remark = (String)doctorInfo.get("remark");
                if(StringUtils.isNotBlank(remark)){
                    evaluateScore.setRemark(remark);
                }else{