LAPTOP-KB9HII50\70708 před 11 měsíci
rodič
revize
d64d069e88

+ 104 - 16
business/es-service/src/main/java/com/yihu/jw/es/service/StatisticsEsService.java

@ -6904,33 +6904,114 @@ public class StatisticsEsService {
     */
    public List<JSONObject> businessRanking(ScreenQvo qvo) throws Exception{
        String level2_type = qvo.getLevel2_type();
        List<SaveModel> saveModels = elasticsearchUtil.findDateQuotaLevel2New(qvo.getStartDate(), qvo.getEndDate(), qvo.getArea(), qvo.getLevel(),
        List<SaveModel> wz_model = elasticsearchUtil.findDateQuotaLevel2New(qvo.getStartDate(), qvo.getEndDate(), qvo.getArea(), qvo.getLevel(),
                "5", "1", null, null,null,level2_type);
        List<SaveModel> cf_model = elasticsearchUtil.findDateQuotaLevel2New(qvo.getStartDate(), qvo.getEndDate(), qvo.getArea(), qvo.getLevel(),
                "2", "1", null, null,null,level2_type);
        List<SaveModel> jz_model = elasticsearchUtil.findDateQuotaLevel2New(qvo.getStartDate(), qvo.getEndDate(), qvo.getArea(), qvo.getLevel(),
                "12,14,16", "1", "9,16,12,1,17", "1",null,level2_type);
        //门诊转住院
        String sql = "select COUNT(DISTINCT r.id) zzyNum,column_tmp from wlyy_outpatient_hospitalization r,base_doctor_hospital bdh,base_doctor bd,dict_hospital_dept hd " +
                "WHERE r.doctor=bdh.doctor_code and bdh.doctor_code = bd.id AND hd.code= bdh.dept_code " +
                "AND bdh.del=1 AND hd.CONSULT_DEPT_FLAG='1' AND bd.job_title_code IN('1201','1301','1401','1101','066','067','061','1310','061','065','1','2','3','4') ";
        //本周期
        String sql01 = sql + " and r.create_time>='"+qvo.getStartDate()+"' and r.create_time<='"+qvo.getEndDate()+" 23:59:59'";
        if("5".equals(qvo.getLevel())){
            //科室
            sql01 += " and hd.code='"+qvo.getArea()+"' ";
        }
        if("6".equals(qvo.getLevel())){
            //医生
            sql01 += " and r.doctor='"+qvo.getArea()+"' ";
        }
        if("5".equals(level2_type)){
            //科室
            sql01 += " group by hd.code";
            sql01 = sql01.replace("column_tmp","hd.code dept,hd.name deptName");
        }
        if("6".equals(level2_type)){
            //医生
            sql01 += " group by r.doctor ";
            sql01 = sql01.replace("column_tmp","r.doctor,r.doctor doctorName");
        }
        List<Map<String,Object>> list = jdbcTemplate.queryForList(sql01);
        Map<String,String> codeMap = new HashMap<>();
        Map<String,Double> wzMap = new HashMap<>();
        Map<String,Double> cfMap = new HashMap<>();
        Map<String,Double> jzMap = new HashMap<>();
        Map<String,Double> zzyMap = new HashMap<>();
        if (level2_type.equals(SaveModel.deptLevel)) {
            for (SaveModel saveModel : wz_model) {
                wzMap.put(saveModel.getDept(),saveModel.getResult1());
                codeMap.put(saveModel.getDept(),saveModel.getDeptName());
            }
            for (SaveModel saveModel : cf_model) {
                cfMap.put(saveModel.getDept(),saveModel.getResult1());
                if(!codeMap.containsKey(saveModel.getDept())){
                    codeMap.put(saveModel.getDept(),saveModel.getDeptName());
                }
            }
            for (SaveModel saveModel : jz_model) {
                jzMap.put(saveModel.getDept(),saveModel.getResult1());
                if(!codeMap.containsKey(saveModel.getDept())){
                    codeMap.put(saveModel.getDept(),saveModel.getDeptName());
                }
            }
            for (Map<String,Object> map : list) {
                zzyMap.put(map.get("dept")+"",Double.valueOf(map.get("zzyNum")+""));
                if(!codeMap.containsKey(map.get("dept")+"")){
                    codeMap.put(map.get("dept")+"",map.get("deptName")+"");
                }
            }
        } else if (level2_type.equals(SaveModel.doctorLevel)) {
            for (SaveModel saveModel : wz_model) {
                wzMap.put(saveModel.getDoctor(),saveModel.getResult1());
                codeMap.put(saveModel.getDoctor(),saveModel.getDoctorName());
            }
            for (SaveModel saveModel : cf_model) {
                cfMap.put(saveModel.getDoctor(),saveModel.getResult1());
                if(!codeMap.containsKey(saveModel.getDoctor())){
                    codeMap.put(saveModel.getDoctor(),saveModel.getDoctorName());
                }
            }
            for (SaveModel saveModel : jz_model) {
                jzMap.put(saveModel.getDoctor(),saveModel.getResult1());
                if(!codeMap.containsKey(saveModel.getDoctor())){
                    codeMap.put(saveModel.getDoctor(),saveModel.getDoctorName());
                }
            }
            for (Map<String,Object> map : list) {
                zzyMap.put(map.get("doctor")+"",Double.valueOf(map.get("zzyNum")+""));
                if(!codeMap.containsKey(map.get("doctor")+"")){
                    codeMap.put(map.get("doctor")+"",map.get("doctorName")+"");
                }
            }
        }
        //【接诊率】= 接诊量 ÷ 问诊量 ×100%
        List<JSONObject> result = new ArrayList<>();
        for (SaveModel saveModel : saveModels) {
        for (Map.Entry<String,String> entry:codeMap.entrySet()){
            JSONObject object1 = new JSONObject();
            if (level2_type.equals(SaveModel.deptLevel)) {
                object1.put("dept", saveModel.getDept());
                object1.put("deptName", saveModel.getDeptName());
            } else if (level2_type.equals(SaveModel.doctorLevel)) {
                object1.put("doctor", saveModel.getDoctor());
                object1.put("doctorName", saveModel.getDoctorName());
            } else if (level2_type.equals(SaveModel.OrgLevel)) {
                object1.put("hospital", saveModel.getHospital());
                object1.put("hospitalName", saveModel.getHospitalName());
            }
            object1.put("result1", saveModel.getResult1());
            object1.put("result2", saveModel.getResult2());
            String key = entry.getKey();
            object1.put("code", key);
            object1.put("name", entry.getValue());
            object1.put("wzNum", nullToZero(wzMap.get(key)));
            object1.put("cfNum", nullToZero(cfMap.get(key)));
            object1.put("jzNum", nullToZero(jzMap.get(key)));
            object1.put("zzyNum", nullToZero(zzyMap.get(key)));
            object1.put("jzRate",  getRange(nullToZero(jzMap.get(key)).intValue(), nullToZero(wzMap.get(key)).intValue(), 0));
            result.add(object1);
        }
        // 排序
        result.sort(new Comparator<JSONObject>() {
            @Override
            public int compare(JSONObject o1, JSONObject o2) {
                if (o1.getString("result1").compareTo(o2.getString("result1")) > 0) {
                if (o1.getInteger("wzNum").compareTo(o2.getInteger("wzNum")) > 0) {
                    return -1;
                } else if (o1.getString("result1").compareTo(o2.getString("result1")) < 0) {
                } else if (o1.getInteger("wzNum").compareTo(o2.getInteger("wzNum")) < 0) {
                    return 1;
                } else {
                    return 0;
@ -6940,6 +7021,13 @@ public class StatisticsEsService {
        return result;
    }
    public Double nullToZero(Double d){
        if (d==null){
            return 0d;
        }
        return d;
    }
    /**
     * 收入情况
     1、【总收入】=药品费+诊查费;

+ 11 - 0
common/common-rest-model/src/main/java/com/yihu/jw/restmodel/hospital/survey/WlyySurveyUserVO.java

@ -12,6 +12,8 @@ import java.util.Date;
@ApiModel(value = "WlyySurveyUserVO", description = "问卷调查")
public class WlyySurveyUserVO extends UuidIdentityVO {
    @ApiModelProperty(value = "用户答案编码", example = "模块1")
    private String code;//用户答案编码',
    @ApiModelProperty(value = "问卷模板编码", example = "模块1")
    private String surveyTempCode;//问卷模板编码',
    @ApiModelProperty(value = "模板标题", example = "模块1")
@ -41,6 +43,15 @@ public class WlyySurveyUserVO extends UuidIdentityVO {
    @ApiModelProperty(value = "性别", example = "模块1")
    private Integer sex;
    public String getCode() {
        return code;
    }
    public void setCode(String code) {
        this.code = code;
    }
    public String getSurveyTempCode() {
        return surveyTempCode;
    }