Browse Source

Merge branch 'dev' of trick9191/patient-co-management into dev

trick9191 8 years ago
parent
commit
4854200499

+ 37 - 13
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{
@ -287,7 +301,7 @@ public class EvaluateService extends BaseService {
                " AND s.consult = c.consult   " +
                " AND p.`code` = c.patient " +
                " AND e.evaluate_type <> 0  "+
                " AND s.doctor ="+doctor+" ";
                " AND s.doctor ='"+doctor+"' ";
        if("0".equals(type)){
@ -317,17 +331,27 @@ public class EvaluateService extends BaseService {
    public JSONArray getScoreListTitle(String doctor){
        String sql ="SELECT  " +
                " (SELECT COUNT(1) FROM wlyy_evaluate_score s " +
                " WHERE s.doctor="+doctor+") total,  " +
                " WHERE s.doctor='"+doctor+"') total,  " +
                " (SELECT COUNT(1) FROM wlyy_evaluate_score s " +
                " WHERE s.doctor="+doctor+" AND s.score>=71) good, " +
                " WHERE s.doctor='"+doctor+"' AND s.score>=71) good, " +
                " (SELECT COUNT(1) FROM wlyy_evaluate_score s " +
                " WHERE  s.doctor="+doctor+" AND s.score>=41 AND s.score<71) notBad, " +
                " WHERE  s.doctor='"+doctor+"' AND s.score>=41 AND s.score<71) notBad, " +
                " (SELECT COUNT(1) FROM wlyy_evaluate_score s " +
                " WHERE  s.doctor="+doctor+" AND s.score<41) bad";
                " WHERE  s.doctor='"+doctor+"' AND s.score<41) bad";
        List<Map<String,Object>> rs = jdbcTemplate.queryForList(sql);
        return new JSONArray(rs);
    }
    public JSONArray getScoreTitle(String doctor){
        String sql = "SELECT" +
                " (SELECT evaluate_score FROM wlyy_doctor WHERE code ='"+doctor+"') score ," +
                " (SELECT ifnull(FORMAT(avg(score),1),0)  FROM wlyy_evaluate  WHERE evaluate_type = 1 AND doctor ='"+doctor+"') ability ," +
                " (SELECT ifnull(FORMAT(avg(score),1),0)  FROM wlyy_evaluate  WHERE evaluate_type = 2 AND doctor ='"+doctor+"') attitude ," +
                " (SELECT ifnull(FORMAT(avg(score),1),0)  FROM wlyy_evaluate  WHERE evaluate_type = 3 AND doctor ='"+doctor+"') speed";
        List<Map<String,Object>> rs =jdbcTemplate.queryForList(sql);
        return new JSONArray(rs);
    }
    public static Long REAL_SCORE_DEFAULT = 100L;
    public static Long ANONYMOUS_SCORE_DEFAULT_ONE = 100L;
    public static Long ANONYMOUS_SCORE_DEFAULT_TWO = 100L;

+ 59 - 0
patient-co-wlyy/src/main/java/com/yihu/wlyy/web/doctor/consult/DoctorEvaluateController.java

@ -79,4 +79,63 @@ public class DoctorEvaluateController extends BaseController {
        }
    }
    /**
     * 获取医生评价列表
     * @param type
     * @param page
     * @param size
     * @return
     */
    @RequestMapping(value = "getDoctorSorceList")
    @ResponseBody
    public String getDoctorSorceList(@RequestParam(required = true)String type,
                                     @RequestParam(required = false)Integer page,
                                     @RequestParam(required = false)Integer size){
        try{
            JSONArray rs =evaluateService.getDoctorSorceList(getUID(),type,page,size);
            //JSONArray rs =evaluateService.getDoctorSorceList("zbqD201703150226",type,page,size);
            return  write(200,"查询成功!","data",rs);
        }catch (Exception e){
            error(e);
            return write(-1,e.getMessage());
        }
    }
    /**
     * 获取医生各个类型评价数
     * @return
     */
    @RequestMapping(value = "getScoreListTitle")
    @ResponseBody
    public String  getScoreListTitle(){
        try{
            JSONArray rs =evaluateService.getScoreListTitle(getUID());
            //JSONArray rs =evaluateService.getScoreListTitle("zbqD201703150226");
            return  write(200,"查询成功!","data",rs);
        }catch (Exception e){
            error(e);
            return write(-1,e.getMessage());
        }
    }
    /**
     * 获取医生各个评分头部信息
     * @return
     */
    @RequestMapping(value = "getScoreTitle")
    @ResponseBody
    public String getScoreTitle(){
        try{
            JSONArray rs =evaluateService.getScoreTitle(getUID());
            //JSONArray rs =evaluateService.getScoreTitle("zbqD201703150226");
            return  write(200,"查询成功!","data",rs);
        }catch (Exception e){
            error(e);
            return write(-1,e.getMessage());
        }
    }
}

+ 0 - 35
patient-co-wlyy/src/main/java/com/yihu/wlyy/web/patient/consult/EvaluateController.java

@ -98,42 +98,7 @@ public class EvaluateController  extends BaseController {
        }
    }
    /**
     * 获取医生评价列表
     * @param type
     * @param page
     * @param size
     * @return
     */
    @RequestMapping(value = "getDoctorSorceList")
    @ResponseBody
    public String getDoctorSorceList(@RequestParam(required = true)String type,
                                     @RequestParam(required = false)Integer page,
                                     @RequestParam(required = false)Integer size){
        try{
            JSONArray rs =evaluateService.getDoctorSorceList(getUID(),type,page,size);
            return  write(200,"查询成功!","data",rs);
        }catch (Exception e){
            error(e);
            return write(-1,e.getMessage());
        }
    }
    /**
     * 获取医生各个类型评价数
     * @return
     */
    @RequestMapping(value = "getScoreListTitle")
    @ResponseBody
    public String  getScoreListTitle(){
        try{
            JSONArray rs =evaluateService.getScoreListTitle(getUID());
            return  write(200,"查询成功!","data",rs);
        }catch (Exception e){
            error(e);
            return write(-1,e.getMessage());
        }
    }
    /**
     * 保存评价