Sand 8 лет назад
Родитель
Сommit
b1cbbdf6cb
23 измененных файлов с 1017 добавлено и 923 удалено
  1. 6 6
      src/main/java/com/yihu/wlyy/entity/doctor/profile/Doctor.java
  2. 2 2
      src/main/java/com/yihu/wlyy/entity/job/QuartzJobConfig.java
  3. 14 3
      src/main/java/com/yihu/wlyy/entity/organization/HospitalDept.java
  4. 82 79
      src/main/java/com/yihu/wlyy/job/ChangeSignJob.java
  5. 14 0
      src/main/java/com/yihu/wlyy/job/Constant.java
  6. 82 76
      src/main/java/com/yihu/wlyy/job/ConsultJob.java
  7. 6 0
      src/main/java/com/yihu/wlyy/job/CurrentDayAllQuotaJob.java
  8. 80 77
      src/main/java/com/yihu/wlyy/job/FollowUpJob.java
  9. 83 76
      src/main/java/com/yihu/wlyy/job/HealthGuideJob.java
  10. 3 0
      src/main/java/com/yihu/wlyy/job/SignAgeGroupDiseaseJob.java
  11. 215 348
      src/main/java/com/yihu/wlyy/job/SignJob.java
  12. 75 82
      src/main/java/com/yihu/wlyy/job/UnSignJob.java
  13. 73 82
      src/main/java/com/yihu/wlyy/job/WaitSignJob.java
  14. 5 4
      src/main/java/com/yihu/wlyy/repository/consult/ConsultTeamDao.java
  15. 6 5
      src/main/java/com/yihu/wlyy/repository/doctor/DoctorDao.java
  16. 7 1
      src/main/java/com/yihu/wlyy/repository/organization/HospitalDeptDao.java
  17. 44 0
      src/main/java/com/yihu/wlyy/service/app/account/DoctorInfoService.java
  18. 54 0
      src/main/java/com/yihu/wlyy/service/app/hospital/HospitalDeptService.java
  19. 2 0
      src/main/java/com/yihu/wlyy/service/app/message/MessageService.java
  20. 1 1
      src/main/java/com/yihu/wlyy/service/app/scheduling/DoctorWorkTimeService.java
  21. 10 23
      src/main/java/com/yihu/wlyy/service/common/account/DoctorService.java
  22. 148 2
      src/main/java/com/yihu/wlyy/web/doctor/account/DoctorController.java
  23. 5 56
      src/main/java/com/yihu/wlyy/web/patient/consult/ConsultController.java

+ 6 - 6
src/main/java/com/yihu/wlyy/entity/doctor/profile/Doctor.java

@ -50,7 +50,7 @@ public class Doctor extends IdEntity {
	private String introduce;       // 医生介绍
	
	private Integer level;          // 类型:1专科医生,2全科医生,3健康管理师
	private Integer isCertified;   // 资格是否认证通过,1是,0否
	private Integer iscertified;   // 资格是否认证通过,1是,0否
	
	private String qrcode;          // 二维码
	
@ -262,13 +262,13 @@ public class Doctor extends IdEntity {
		this.level = level;
	}
	@Column(name = "iscertified")
	public Integer getIsCertified() {
		return isCertified;
    @Column(name = "iscertified")
    public Integer getIsCertified() {
		return iscertified;
	}
	public void setIsCertified(Integer isCertified) {
		this.isCertified = isCertified;
	public void setIscertified(Integer isCertified) {
		this.iscertified = iscertified;
	}
	public String getQrcode() {

+ 2 - 2
src/main/java/com/yihu/wlyy/entity/job/QuartzJobConfig.java

@ -25,8 +25,8 @@ public class QuartzJobConfig implements java.io.Serializable {
	private String del;//是否删除 1正常 0删除
	/** minimal constructor */
	public QuartzJobConfig(String jobName) {
		this.jobName = jobName;
	public QuartzJobConfig() {
	}
	/** full constructor */

+ 14 - 3
src/main/java/com/yihu/wlyy/entity/organization/HospitalDept.java

@ -16,12 +16,15 @@ import javax.persistence.Table;
public class HospitalDept extends IdEntity {
	private static final long serialVersionUID = -5296182461037390028L;
	
	// 城市編碼
	// 科市編碼
	private String code;
	// 城市名稱
	// 科市名稱
	private String name;	
	// 城市名稱
	// 科市名稱
	private String del;
	//医生code
	private String hospital;
	public String getDel() {
		return del;
@ -46,4 +49,12 @@ public class HospitalDept extends IdEntity {
	public void setName(String name) {
		this.name = name;
	}
	public String getHospital() {
		return hospital;
	}
	public void setHospital(String hospital) {
		this.hospital = hospital;
	}
}

+ 82 - 79
src/main/java/com/yihu/wlyy/job/ChangeSignJob.java

@ -112,103 +112,74 @@ public class ChangeSignJob implements Job {
        for (SignFamily signFamily : signFamilys) {
            String doctorCode = signFamily.getDoctor();//得到已改簽中全科医生的code
            //统计团队
            if (tjQkdoctorMap.containsKey(doctorCode)) {
                tjQkdoctorMap.put(doctorCode, tjQkdoctorMap.get(doctorCode) + 1);
            } else {
                tjQkdoctorMap.put(doctorCode, 1L);
            }
            compute(tjQkdoctorMap, doctorCode);
            //判断医生属于哪个机构
            Doctor doctor = doctorsMap.get(doctorCode);
            String orgCode = doctor.getHospital();
            //统计机构
            if (tjOrgMap.containsKey(orgCode)) {
                tjOrgMap.put(orgCode, tjOrgMap.get(orgCode) + 1);
            } else {
                tjOrgMap.put(orgCode, 1L);
            if(!"00".equals(orgCode.substring(8))){
                //统计站
                String orgCodeTemp=orgCode.substring(0,8)+"00";
                compute(tjOrgMap, orgCodeTemp);
            }else{
                //统计社区
                compute(tjOrgMap, orgCode);
            }
            String townCode = doctor.getTown();
            //统计区
            if (tjTownMap.containsKey(townCode)) {
                tjTownMap.put(townCode, tjTownMap.get(townCode) + 1);
            } else {
                tjTownMap.put(townCode, 1L);
            }
            compute(tjTownMap, townCode);
            //统计市
            cityCount++;
        }
        //保存统计的结果
        //保存全科医生的已改簽统计
        //保存全科医生的改签统计
        for (Map.Entry<String, Doctor> entry : doctorsMap.entrySet()) {
            Doctor doctor = doctorsMap.get(entry.getKey());//得到全科医生
            WlyyQuotaResult wlyyQuotaResult = new WlyyQuotaResult();
            wlyyQuotaResult.setDel("1");
            wlyyQuotaResult.setOrgCode(doctor.getHospital());
            wlyyQuotaResult.setOrgName(doctor.getHosptialName());
            wlyyQuotaResult.setCity(doctor.getCity());
            wlyyQuotaResult.setCityName(doctor.getCityName());
            wlyyQuotaResult.setQuatoCode(wlyyQuota.getId());
            wlyyQuotaResult.setQuatoName(wlyyQuota.getName());
            wlyyQuotaResult.setQuotaDate(getYesterday());
            wlyyQuotaResult.setCreateTime(new Date());
            wlyyQuotaResult.setQkdoctorJobName(doctor.getJobName());
            wlyyQuotaResult.setQkdoctorName(doctor.getName());
            wlyyQuotaResult.setQkdoctorCode(doctor.getCode());
            wlyyQuotaResult.setTown(doctor.getTown());
            wlyyQuotaResult.setTownName(doctor.getTownName());
            wlyyQuotaResult.setLevel1Type("1");
            //判断全科医生是否有已改簽量
            if (tjQkdoctorMap.containsKey(doctor.getCode())) {
                wlyyQuotaResult.setResult(tjQkdoctorMap.get(doctor.getCode()) + "");
            } else {
                wlyyQuotaResult.setResult("0");
            }
            wlyyQuotaResultDao.save(wlyyQuotaResult);
            String city=Constant.city;
            String cityName=Constant.cityName;
            String town=doctor.getTown();
            String townName=doctor.getTownName();
            String org=doctor.getHospital();
            String orgName=doctor.getHosptialName();
            String doctorCode=doctor.getCode();
            String doctorName=doctor.getName();
            String doctorJob=doctor.getJob();
            String level="1";
            String key=doctor.getCode();
            save(tjQkdoctorMap, key, city, cityName, town, townName, org, orgName, doctorCode, doctorName, doctorJob, level);
        }
        //保存机构的已改簽统计
        //保存机构的改签统计
        for (Map.Entry<String, Hospital> entry : hospitalsMap.entrySet()) {
            Hospital hospital = hospitalsMap.get(entry.getKey());//得到全科医生
            WlyyQuotaResult wlyyQuotaResult = new WlyyQuotaResult();
            wlyyQuotaResult.setDel("1");
            wlyyQuotaResult.setOrgCode(hospital.getCode());
            wlyyQuotaResult.setOrgName(hospital.getName());
            wlyyQuotaResult.setCity(hospital.getCity());
            wlyyQuotaResult.setCityName(hospital.getCityName());
            wlyyQuotaResult.setTown(hospital.getTown());
            wlyyQuotaResult.setTownName(hospital.getTownName());
            wlyyQuotaResult.setQuatoCode(wlyyQuota.getId());
            wlyyQuotaResult.setQuatoName(wlyyQuota.getName());
            wlyyQuotaResult.setQuotaDate(getYesterday());
            wlyyQuotaResult.setCreateTime(new Date());
            wlyyQuotaResult.setLevel1Type("2");
            //判断全科医生是否有已改簽量
            if (tjOrgMap.containsKey(hospital.getCode())) {
                wlyyQuotaResult.setResult(tjOrgMap.get(hospital.getCode()) + "");
            } else {
                wlyyQuotaResult.setResult("0");
            }
            wlyyQuotaResultDao.save(wlyyQuotaResult);
            String city=Constant.city;
            String cityName=Constant.cityName;
            String town=hospital.getTown();
            String townName=hospital.getTownName();
            String org=hospital.getCode();
            String orgName=hospital.getName();
            String doctorCode="";
            String doctorName="";
            String doctorJob="";
            String level="2";
            String key=hospital.getCode();
            save(tjOrgMap, key, city, cityName, town, townName, org, orgName, doctorCode, doctorName, doctorJob, level);
        }
        //保存区级的已改簽统计
        //保存区级的改签统计
        for (Map.Entry<String, Town> entry : townsMap.entrySet()) {
            Town town = townsMap.get(entry.getKey());//得到全科医生
            WlyyQuotaResult wlyyQuotaResult = new WlyyQuotaResult();
            wlyyQuotaResult.setDel("1");
            wlyyQuotaResult.setCity(town.getCity());
            wlyyQuotaResult.setCityName(Constant.cityName);
            wlyyQuotaResult.setTown(town.getCode());
            wlyyQuotaResult.setTownName(town.getName());
            wlyyQuotaResult.setQuatoCode(wlyyQuota.getId());
            wlyyQuotaResult.setQuatoName(wlyyQuota.getName());
            wlyyQuotaResult.setQuotaDate(getYesterday());
            wlyyQuotaResult.setCreateTime(new Date());
            wlyyQuotaResult.setLevel1Type("3");
            //判断全科医生是否有已改簽量
            if (tjTownMap.containsKey(town.getCode())) {
                wlyyQuotaResult.setResult(tjTownMap.get(town.getCode()) + "");
            } else {
                wlyyQuotaResult.setResult("0");
            }
            wlyyQuotaResultDao.save(wlyyQuotaResult);
            Town townObj = townsMap.get(entry.getKey());//得到全科医生
            String city=Constant.city;
            String cityName=Constant.cityName;
            String town=townObj.getCode();
            String townName=townObj.getName();
            String org="";
            String orgName="";
            String doctorCode="";
            String doctorName="";
            String doctorJob="";
            String level="3";
            String key=townObj.getCode();
            save(tjTownMap, key, city, cityName, town, townName, org, orgName, doctorCode, doctorName, doctorJob, level);
        }
        //保存市级的统计
        {
@ -221,7 +192,7 @@ public class ChangeSignJob implements Job {
            wlyyQuotaResult.setQuotaDate(getYesterday());
            wlyyQuotaResult.setCreateTime(new Date());
            wlyyQuotaResult.setLevel1Type("4");
            //判断全科医生是否有已改簽量
            //判断全科医生是否有改签量
            if (cityCount > 0) {
                wlyyQuotaResult.setResult(cityCount + "");
            } else {
@ -236,6 +207,38 @@ public class ChangeSignJob implements Job {
        quartzJobLogDao.save(quartzJobLog);
    }
    private void compute(Map<String, Long> tjQkdoctorMap, String doctorCode) {
        if (tjQkdoctorMap.containsKey(doctorCode)) {
            tjQkdoctorMap.put(doctorCode, tjQkdoctorMap.get(doctorCode) + 1);
        } else {
            tjQkdoctorMap.put(doctorCode, 1L);
        }
    }
    private void save(Map<String, Long> countMap, String key, String city, String cityName, String town, String townName, String org, String orgName, String doctorCode, String doctorName, String doctorJob, String level) {
        WlyyQuotaResult wlyyQuotaResult = new WlyyQuotaResult();
        wlyyQuotaResult.setDel("1");
        wlyyQuotaResult.setOrgCode(org);
        wlyyQuotaResult.setOrgName(orgName);
        wlyyQuotaResult.setCity(city);
        wlyyQuotaResult.setCityName(cityName);
        wlyyQuotaResult.setQuatoCode(wlyyQuota.getId());
        wlyyQuotaResult.setQuatoName(wlyyQuota.getName());
        wlyyQuotaResult.setQuotaDate(getYesterday());
        wlyyQuotaResult.setCreateTime(new Date());
        wlyyQuotaResult.setQkdoctorJobName(doctorJob);
        wlyyQuotaResult.setQkdoctorName(doctorName);
        wlyyQuotaResult.setQkdoctorCode(doctorCode);
        wlyyQuotaResult.setTown(town);
        wlyyQuotaResult.setTownName(townName);
        wlyyQuotaResult.setLevel1Type(level);
        //判断全科医生是否有改签量
        if (countMap.containsKey(key)) {
            wlyyQuotaResult.setResult(countMap.get(key) + "");
        } else {
            wlyyQuotaResult.setResult("0");
        }
        wlyyQuotaResultDao.save(wlyyQuotaResult);
    }
    public String getYesterday() {
        Calendar cal = Calendar.getInstance();
        cal.add(Calendar.DATE, -1);

+ 14 - 0
src/main/java/com/yihu/wlyy/job/Constant.java

@ -15,6 +15,20 @@ public class Constant {
    public static String level_sex_2_name="男";
    public static String level_sex_3_name="未知";
    public static String getLevelSexName(String key){
        switch (key){
            case "1":{
                return level_sex_1_name;
            }
            case "2":{
                return level_sex_2_name;
            }
            case "3":{
                return level_sex_3_name;
            }
        }
        return "";
    }
    //二级维度的年龄
    public static String level_age_1="1";
    public static String level_age_2="2";

+ 82 - 76
src/main/java/com/yihu/wlyy/job/ConsultJob.java

@ -106,11 +106,7 @@ public class ConsultJob implements Job {
        for (ConsultTeam consultTeam : consultTeams) {
            String doctorCode = consultTeam.getDoctor();//得到咨询中健康医生的code
            //统计团队
            if (tjQkdoctorMap.containsKey(doctorCode)) {
                tjQkdoctorMap.put(doctorCode, tjQkdoctorMap.get(doctorCode) + 1);
            } else {
                tjQkdoctorMap.put(doctorCode, 1L);
            }
            compute(tjQkdoctorMap, doctorCode);
            //判断医生属于哪个机构
            Doctor doctor = doctorsMap.get(doctorCode);
            if(doctor==null){
@ -118,18 +114,18 @@ public class ConsultJob implements Job {
            }
            String orgCode = doctor.getHospital();
            //统计机构
            if (tjOrgMap.containsKey(orgCode)) {
                tjOrgMap.put(orgCode, tjOrgMap.get(orgCode) + 1);
            } else {
                tjOrgMap.put(orgCode, 1L);
            if(!"00".equals(orgCode.substring(8))){
                //统计站
                String orgCodeTemp=orgCode.substring(0,8)+"00";
                compute(tjOrgMap, orgCodeTemp);
            }else{
                //统计社区
                compute(tjOrgMap, orgCode);
            }
            String townCode = doctor.getTown();
            //统计区
            if (tjTownMap.containsKey(townCode)) {
                tjTownMap.put(townCode, tjTownMap.get(townCode) + 1);
            } else {
                tjTownMap.put(townCode, 1L);
            }
            compute(tjTownMap, townCode);
            //统计市
            cityCount++;
        }
@ -137,75 +133,50 @@ public class ConsultJob implements Job {
        //保存全科医生的咨询统计
        for (Map.Entry<String, Doctor> entry : doctorsMap.entrySet()) {
            Doctor doctor = doctorsMap.get(entry.getKey());//得到健康管理师
            WlyyQuotaResult wlyyQuotaResult = new WlyyQuotaResult();
            wlyyQuotaResult.setDel("1");
            wlyyQuotaResult.setOrgCode(doctor.getHospital());
            wlyyQuotaResult.setOrgName(doctor.getHosptialName());
            wlyyQuotaResult.setCity(doctor.getCity());
            wlyyQuotaResult.setCityName(doctor.getCityName());
            wlyyQuotaResult.setQuatoCode(wlyyQuota.getId());
            wlyyQuotaResult.setQuatoName(wlyyQuota.getName());
            wlyyQuotaResult.setQuotaDate(getYesterday());
            wlyyQuotaResult.setQkdoctorJobName(doctor.getJobName());
            wlyyQuotaResult.setQkdoctorName(doctor.getName());
            wlyyQuotaResult.setQkdoctorCode(doctor.getCode());
            wlyyQuotaResult.setTown(doctor.getTown());
            wlyyQuotaResult.setTownName(doctor.getTownName());
            wlyyQuotaResult.setLevel1Type("1");
            wlyyQuotaResult.setCreateTime(new Date());
            //判断全科医生是否有咨询量
            if (tjQkdoctorMap.containsKey(doctor.getCode())) {
                wlyyQuotaResult.setResult(tjQkdoctorMap.get(doctor.getCode()) + "");
            } else {
                wlyyQuotaResult.setResult("0");
            }
            wlyyQuotaResultDao.save(wlyyQuotaResult);
            String city=Constant.city;
            String cityName=Constant.cityName;
            String town=doctor.getTown();
            String townName=doctor.getTownName();
            String org=doctor.getHospital();
            String orgName=doctor.getHosptialName();
            String doctorCode=doctor.getCode();
            String doctorName=doctor.getName();
            String doctorJob=doctor.getJob();
            String level="1";
            String key=doctor.getCode();
            save(tjQkdoctorMap, city, cityName, town, townName, org, orgName, doctorCode, doctorName, doctorJob, level, key);
        }
        //保存机构的咨询统计
        for (Map.Entry<String, Hospital> entry : hospitalsMap.entrySet()) {
            Hospital hospital = hospitalsMap.get(entry.getKey());
            WlyyQuotaResult wlyyQuotaResult = new WlyyQuotaResult();
            wlyyQuotaResult.setDel("1");
            wlyyQuotaResult.setOrgCode(hospital.getCode());
            wlyyQuotaResult.setOrgName(hospital.getName());
            wlyyQuotaResult.setCity(hospital.getCity());
            wlyyQuotaResult.setCityName(hospital.getCityName());
            wlyyQuotaResult.setTown(hospital.getTown());
            wlyyQuotaResult.setTownName(hospital.getTownName());
            wlyyQuotaResult.setQuatoCode(wlyyQuota.getId());
            wlyyQuotaResult.setQuatoName(wlyyQuota.getName());
            wlyyQuotaResult.setQuotaDate(getYesterday());
            wlyyQuotaResult.setCreateTime(new Date());
            wlyyQuotaResult.setLevel1Type("2");
            //判断全科医生是否有咨询量
            if (tjOrgMap.containsKey(hospital.getCode())) {
                wlyyQuotaResult.setResult(tjOrgMap.get(hospital.getCode()) + "");
            } else {
                wlyyQuotaResult.setResult("0");
            }
            wlyyQuotaResultDao.save(wlyyQuotaResult);
            String city=Constant.city;
            String cityName=Constant.cityName;
            String town=hospital.getTown();
            String townName=hospital.getTownName();
            String org=hospital.getCode();
            String orgName=hospital.getName();
            String doctorCode="";
            String doctorName="";
            String doctorJob="";
            String level="2";
            String key=hospital.getCode();
            save(tjOrgMap, city, cityName, town, townName, org, orgName, doctorCode, doctorName, doctorJob, level, key);
        }
        //保存区级的咨询统计
        for (Map.Entry<String, Town> entry : townsMap.entrySet()) {
            Town town = townsMap.get(entry.getKey());
            WlyyQuotaResult wlyyQuotaResult = new WlyyQuotaResult();
            wlyyQuotaResult.setDel("1");
            wlyyQuotaResult.setCity(town.getCity());
            wlyyQuotaResult.setCityName("厦门市");
            wlyyQuotaResult.setTown(town.getCode());
            wlyyQuotaResult.setTownName(town.getName());
            wlyyQuotaResult.setQuatoCode(wlyyQuota.getId());
            wlyyQuotaResult.setQuatoName(wlyyQuota.getName());
            wlyyQuotaResult.setQuotaDate(getYesterday());
            wlyyQuotaResult.setCreateTime(new Date());
            wlyyQuotaResult.setLevel1Type("3");
            //判断全科医生是否有咨询量
            if (tjTownMap.containsKey(town.getCode())) {
                wlyyQuotaResult.setResult(tjTownMap.get(town.getCode()) + "");
            } else {
                wlyyQuotaResult.setResult("0");
            }
            wlyyQuotaResultDao.save(wlyyQuotaResult);
            Town townObj = townsMap.get(entry.getKey());
            String city=Constant.city;
            String cityName=Constant.cityName;
            String town=townObj.getCode();
            String townName=townObj.getName();
            String org="";
            String orgName="";
            String doctorCode="";
            String doctorName="";
            String doctorJob="";
            String level="3";
            String key=townObj.getCode();
            save(tjTownMap, city, cityName, town, townName, org, orgName, doctorCode, doctorName, doctorJob, level, key);
        }
        //保存市级的统计
        {
@ -232,6 +203,41 @@ public class ConsultJob implements Job {
        quartzJobLog.setJobType("1");
        quartzJobLogDao.save(quartzJobLog);
    }
    private void save(Map<String, Long> tjTownMap, String city, String cityName, String town, String townName, String org, String orgName, String doctorCode, String doctorName, String doctorJob, String level, String key) {
        WlyyQuotaResult wlyyQuotaResult = new WlyyQuotaResult();
        wlyyQuotaResult.setDel("1");
        wlyyQuotaResult.setCity(city);
        wlyyQuotaResult.setCityName(cityName);
        wlyyQuotaResult.setTown(town);
        wlyyQuotaResult.setTownName(townName);
        wlyyQuotaResult.setOrgCode(org);
        wlyyQuotaResult.setOrgName(orgName);
        wlyyQuotaResult.setQkdoctorJobName(doctorJob);
        wlyyQuotaResult.setQkdoctorName(doctorName);
        wlyyQuotaResult.setQkdoctorCode(doctorCode);
        wlyyQuotaResult.setQuatoCode(wlyyQuota.getId());
        wlyyQuotaResult.setQuatoName(wlyyQuota.getName());
        wlyyQuotaResult.setQuotaDate(getYesterday());
        wlyyQuotaResult.setCreateTime(new Date());
        wlyyQuotaResult.setLevel1Type(level);
        //判断全科医生是否有咨询量
        if (tjTownMap.containsKey(key)) {
            wlyyQuotaResult.setResult(tjTownMap.get(key) + "");
        } else {
            wlyyQuotaResult.setResult("0");
        }
        wlyyQuotaResultDao.save(wlyyQuotaResult);
    }
    private void compute(Map<String, Long> tjQkdoctorMap, String doctorCode) {
        if (tjQkdoctorMap.containsKey(doctorCode)) {
            tjQkdoctorMap.put(doctorCode, tjQkdoctorMap.get(doctorCode) + 1);
        } else {
            tjQkdoctorMap.put(doctorCode, 1L);
        }
    }
    public String getYesterday() {
        return yesterday;
    }

+ 6 - 0
src/main/java/com/yihu/wlyy/job/CurrentDayAllQuotaJob.java

@ -180,6 +180,9 @@ public class CurrentDayAllQuotaJob implements Job {
            JSONArray redisValues = new JSONArray(jsonString);
            for (Object obj : redisValues) {
                JSONObject redisValue = new JSONObject(obj);
                if(!redisValue.has("signType")){
                    continue;
                }
                //排除掉三师签约
                if ("1".equals(redisValue.get("signType").toString())) {
                    continue;
@ -875,6 +878,9 @@ public class CurrentDayAllQuotaJob implements Job {
                JSONArray redisValues = new JSONArray(jsonString);
                for (Object obj : redisValues) {
                    JSONObject redisValue = new JSONObject(obj);
                    if(!redisValue.has("signType")){
                        continue;
                    }
                    //排除掉三师签约
                    if ("1".equals(redisValue.get("signType").toString())) {
                        continue;

+ 80 - 77
src/main/java/com/yihu/wlyy/job/FollowUpJob.java

@ -118,27 +118,22 @@ public class FollowUpJob implements Job {
        for (Map<String,Object> plan : plans) {
            String doctorCode = (String) plan.get("doctor_uid");//得到随访中健康医生的code
            //统计团队
            if (tjQkdoctorMap.containsKey(doctorCode)) {
                tjQkdoctorMap.put(doctorCode, tjQkdoctorMap.get(doctorCode) + 1);
            } else {
                tjQkdoctorMap.put(doctorCode, 1L);
            }
            compute(tjQkdoctorMap, doctorCode);
            //判断医生属于哪个机构
            Doctor doctor = doctorsMap.get(doctorCode);
            String orgCode = doctor.getHospital();
            //统计机构
            if (tjOrgMap.containsKey(orgCode)) {
                tjOrgMap.put(orgCode, tjOrgMap.get(orgCode) + 1);
            } else {
                tjOrgMap.put(orgCode, 1L);
            if(!"00".equals(orgCode.substring(8))){
                //统计站
                String orgCodeTemp=orgCode.substring(0,8)+"00";
                compute(tjOrgMap, orgCodeTemp);
            }else{
                //统计社区
                compute(tjOrgMap, orgCode);
            }
            String townCode = doctor.getTown();
            //统计区
            if (tjTownMap.containsKey(townCode)) {
                tjTownMap.put(townCode, tjTownMap.get(townCode) + 1);
            } else {
                tjTownMap.put(townCode, 1L);
            }
            compute(tjTownMap, townCode);
            //统计市
            cityCount++;
        }
@ -146,75 +141,50 @@ public class FollowUpJob implements Job {
        //保存全科医生的随访统计
        for (Map.Entry<String, Doctor> entry : doctorsMap.entrySet()) {
            Doctor doctor = doctorsMap.get(entry.getKey());//得到健康管理师
            WlyyQuotaResult wlyyQuotaResult = new WlyyQuotaResult();
            wlyyQuotaResult.setDel("1");
            wlyyQuotaResult.setOrgCode(doctor.getHospital());
            wlyyQuotaResult.setOrgName(doctor.getHosptialName());
            wlyyQuotaResult.setCity(doctor.getCity());
            wlyyQuotaResult.setCityName(doctor.getCityName());
            wlyyQuotaResult.setQuatoCode(wlyyQuota.getId());
            wlyyQuotaResult.setQuatoName(wlyyQuota.getName());
            wlyyQuotaResult.setQuotaDate(getYesterday());
            wlyyQuotaResult.setQkdoctorJobName(doctor.getJobName());
            wlyyQuotaResult.setQkdoctorName(doctor.getName());
            wlyyQuotaResult.setQkdoctorCode(doctor.getCode());
            wlyyQuotaResult.setTown(doctor.getTown());
            wlyyQuotaResult.setTownName(doctor.getTownName());
            wlyyQuotaResult.setLevel1Type("1");
            wlyyQuotaResult.setCreateTime(new Date());
            //判断全科医生是否有随访量
            if (tjQkdoctorMap.containsKey(doctor.getCode())) {
                wlyyQuotaResult.setResult(tjQkdoctorMap.get(doctor.getCode()) + "");
            } else {
                wlyyQuotaResult.setResult("0");
            }
            wlyyQuotaResultDao.save(wlyyQuotaResult);
            String city=Constant.city;
            String cityName=Constant.cityName;
            String town=doctor.getTown();
            String townName=doctor.getTownName();
            String org=doctor.getHospital();
            String orgName=doctor.getHosptialName();
            String doctorCode=doctor.getCode();
            String doctorName=doctor.getName();
            String doctorJob=doctor.getJob();
            String level="1";
            String key=doctor.getCode();
            save(tjQkdoctorMap, city, cityName, town, townName, org, orgName, doctorCode, doctorName, doctorJob, level, key);
        }
        //保存机构的随访统计
        for (Map.Entry<String, Hospital> entry : hospitalsMap.entrySet()) {
            Hospital hospital = hospitalsMap.get(entry.getKey());
            WlyyQuotaResult wlyyQuotaResult = new WlyyQuotaResult();
            wlyyQuotaResult.setDel("1");
            wlyyQuotaResult.setOrgCode(hospital.getCode());
            wlyyQuotaResult.setOrgName(hospital.getName());
            wlyyQuotaResult.setCity(hospital.getCity());
            wlyyQuotaResult.setCityName(hospital.getCityName());
            wlyyQuotaResult.setTown(hospital.getTown());
            wlyyQuotaResult.setTownName(hospital.getTownName());
            wlyyQuotaResult.setQuatoCode(wlyyQuota.getId());
            wlyyQuotaResult.setQuatoName(wlyyQuota.getName());
            wlyyQuotaResult.setQuotaDate(getYesterday());
            wlyyQuotaResult.setCreateTime(new Date());
            wlyyQuotaResult.setLevel1Type("2");
            //判断全科医生是否有随访量
            if (tjOrgMap.containsKey(hospital.getCode())) {
                wlyyQuotaResult.setResult(tjOrgMap.get(hospital.getCode()) + "");
            } else {
                wlyyQuotaResult.setResult("0");
            }
            wlyyQuotaResultDao.save(wlyyQuotaResult);
            String city=Constant.city;
            String cityName=Constant.cityName;
            String town=hospital.getTown();
            String townName=hospital.getTownName();
            String org=hospital.getCode();
            String orgName=hospital.getName();
            String doctorCode="";
            String doctorName="";
            String doctorJob="";
            String level="2";
            String key=hospital.getCode();
            save(tjOrgMap, city, cityName, town, townName, org, orgName, doctorCode, doctorName, doctorJob, level, key);
        }
        //保存区级的随访统计
        for (Map.Entry<String, Town> entry : townsMap.entrySet()) {
            Town town = townsMap.get(entry.getKey());
            WlyyQuotaResult wlyyQuotaResult = new WlyyQuotaResult();
            wlyyQuotaResult.setDel("1");
            wlyyQuotaResult.setCity(town.getCity());
            wlyyQuotaResult.setCityName(Constant.cityName);
            wlyyQuotaResult.setTown(town.getCode());
            wlyyQuotaResult.setTownName(town.getName());
            wlyyQuotaResult.setQuatoCode(wlyyQuota.getId());
            wlyyQuotaResult.setQuatoName(wlyyQuota.getName());
            wlyyQuotaResult.setQuotaDate(getYesterday());
            wlyyQuotaResult.setCreateTime(new Date());
            wlyyQuotaResult.setLevel1Type("3");
            //判断全科医生是否有随访量
            if (tjTownMap.containsKey(town.getCode())) {
                wlyyQuotaResult.setResult(tjTownMap.get(town.getCode()) + "");
            } else {
                wlyyQuotaResult.setResult("0");
            }
            wlyyQuotaResultDao.save(wlyyQuotaResult);
            Town townObj = townsMap.get(entry.getKey());
            String city=Constant.city;
            String cityName=Constant.cityName;
            String town=townObj.getCode();
            String townName=townObj.getName();
            String org="";
            String orgName="";
            String doctorCode="";
            String doctorName="";
            String doctorJob="";
            String level="3";
            String key=townObj.getCode();
            save(tjTownMap, city, cityName, town, townName, org, orgName, doctorCode, doctorName, doctorJob, level, key);
        }
        //保存市级的统计
        {
@ -241,6 +211,15 @@ public class FollowUpJob implements Job {
        quartzJobLog.setJobType("1");
        quartzJobLogDao.save(quartzJobLog);
    }
    private void compute(Map<String, Long> tjQkdoctorMap, String doctorCode) {
        if (tjQkdoctorMap.containsKey(doctorCode)) {
            tjQkdoctorMap.put(doctorCode, tjQkdoctorMap.get(doctorCode) + 1);
        } else {
            tjQkdoctorMap.put(doctorCode, 1L);
        }
    }
    public String getYesterday() {
        return yesterday;
    }
@ -249,7 +228,31 @@ public class FollowUpJob implements Job {
        String sql=" select * from fv_plan a where unix_timestamp(a.update_time)>=unix_timestamp('"+yesterday+"') and unix_timestamp(a.update_time)< unix_timestamp('"+now+"')  ";
        return jdbcTemplate.queryForList(sql);
    }
    private void save(Map<String, Long> tjTownMap, String city, String cityName, String town, String townName, String org, String orgName, String doctorCode, String doctorName, String doctorJob, String level, String key) {
        WlyyQuotaResult wlyyQuotaResult = new WlyyQuotaResult();
        wlyyQuotaResult.setDel("1");
        wlyyQuotaResult.setCity(city);
        wlyyQuotaResult.setCityName(cityName);
        wlyyQuotaResult.setTown(town);
        wlyyQuotaResult.setTownName(townName);
        wlyyQuotaResult.setOrgCode(org);
        wlyyQuotaResult.setOrgName(orgName);
        wlyyQuotaResult.setQkdoctorJobName(doctorJob);
        wlyyQuotaResult.setQkdoctorName(doctorName);
        wlyyQuotaResult.setQkdoctorCode(doctorCode);
        wlyyQuotaResult.setQuatoCode(wlyyQuota.getId());
        wlyyQuotaResult.setQuatoName(wlyyQuota.getName());
        wlyyQuotaResult.setQuotaDate(getYesterday());
        wlyyQuotaResult.setCreateTime(new Date());
        wlyyQuotaResult.setLevel1Type(level);
        //判断全科医生是否有随访量
        if (tjTownMap.containsKey(key)) {
            wlyyQuotaResult.setResult(tjTownMap.get(key) + "");
        } else {
            wlyyQuotaResult.setResult("0");
        }
        wlyyQuotaResultDao.save(wlyyQuotaResult);
    }
    public Properties getSystemProperties() {
        if (systemProperties == null) {
            InputStream is = null;

+ 83 - 76
src/main/java/com/yihu/wlyy/job/HealthGuideJob.java

@ -106,11 +106,7 @@ public class HealthGuideJob implements Job {
        for (PatientHealthGuidance patientHealthGuidance : patientHealthGuidances) {
            String doctorCode = patientHealthGuidance.getDoctor();//得到健康指导中健康医生的code
            //统计团队
            if (tjdoctorMap.containsKey(doctorCode)) {
                tjdoctorMap.put(doctorCode, tjdoctorMap.get(doctorCode) + 1);
            } else {
                tjdoctorMap.put(doctorCode, 1L);
            }
            compute(tjdoctorMap, doctorCode);
            //判断医生属于哪个机构
            Doctor doctor = doctorsMap.get(doctorCode);
            if(doctor==null){
@ -118,92 +114,69 @@ public class HealthGuideJob implements Job {
            }
            String orgCode = doctor.getHospital();
            //统计机构
            if (tjOrgMap.containsKey(orgCode)) {
                tjOrgMap.put(orgCode, tjOrgMap.get(orgCode) + 1);
            } else {
                tjOrgMap.put(orgCode, 1L);
            if(!"00".equals(orgCode.substring(8))){
                //统计站
                String orgCodeTemp=orgCode.substring(0,8)+"00";
                compute(tjOrgMap, orgCodeTemp);
            }else{
                //统计社区
                compute(tjOrgMap, orgCode);
            }
            String townCode = doctor.getTown();
            //统计区
            if (tjTownMap.containsKey(townCode)) {
                tjTownMap.put(townCode, tjTownMap.get(townCode) + 1);
            } else {
                tjTownMap.put(townCode, 1L);
            }
            compute(tjTownMap, townCode);
            //统计市
            cityCount++;
        }
        //保存统计的结果
        //保存全科医生和健康管理师的健康指导统计
        //保存全科医生的咨询统计
        for (Map.Entry<String, Doctor> entry : doctorsMap.entrySet()) {
            Doctor doctor = doctorsMap.get(entry.getKey());//得到健康管理师
            WlyyQuotaResult wlyyQuotaResult = new WlyyQuotaResult();
            wlyyQuotaResult.setDel("1");
            wlyyQuotaResult.setOrgCode(doctor.getHospital());
            wlyyQuotaResult.setOrgName(doctor.getHosptialName());
            wlyyQuotaResult.setCity(doctor.getCity());
            wlyyQuotaResult.setCityName(doctor.getCityName());
            wlyyQuotaResult.setQuatoCode(wlyyQuota.getId());
            wlyyQuotaResult.setQuatoName(wlyyQuota.getName());
            wlyyQuotaResult.setQuotaDate(getYesterday());
            wlyyQuotaResult.setQkdoctorJobName(doctor.getJobName());
            wlyyQuotaResult.setQkdoctorName(doctor.getName());
            wlyyQuotaResult.setQkdoctorCode(doctor.getCode());
            wlyyQuotaResult.setTown(doctor.getTown());
            wlyyQuotaResult.setTownName(doctor.getTownName());
            wlyyQuotaResult.setLevel1Type("1");
            wlyyQuotaResult.setCreateTime(new Date());
            //判断全科医生和健康管理师是否有健康指导量
            if (tjdoctorMap.containsKey(doctor.getCode())) {
                wlyyQuotaResult.setResult(tjdoctorMap.get(doctor.getCode()) + "");
            } else {
                wlyyQuotaResult.setResult("0");
            }
            wlyyQuotaResultDao.save(wlyyQuotaResult);
            String city=Constant.city;
            String cityName=Constant.cityName;
            String town=doctor.getTown();
            String townName=doctor.getTownName();
            String org=doctor.getHospital();
            String orgName=doctor.getHosptialName();
            String doctorCode=doctor.getCode();
            String doctorName=doctor.getName();
            String doctorJob=doctor.getJob();
            String level="1";
            String key=doctor.getCode();
            save(tjdoctorMap, city, cityName, town, townName, org, orgName, doctorCode, doctorName, doctorJob, level, key);
        }
        //保存机构的健康指导统计
        //保存机构的咨询统计
        for (Map.Entry<String, Hospital> entry : hospitalsMap.entrySet()) {
            Hospital hospital = hospitalsMap.get(entry.getKey());
            WlyyQuotaResult wlyyQuotaResult = new WlyyQuotaResult();
            wlyyQuotaResult.setDel("1");
            wlyyQuotaResult.setOrgCode(hospital.getCode());
            wlyyQuotaResult.setOrgName(hospital.getName());
            wlyyQuotaResult.setCity(hospital.getCity());
            wlyyQuotaResult.setCityName(hospital.getCityName());
            wlyyQuotaResult.setTown(hospital.getTown());
            wlyyQuotaResult.setTownName(hospital.getTownName());
            wlyyQuotaResult.setQuatoCode(wlyyQuota.getId());
            wlyyQuotaResult.setQuatoName(wlyyQuota.getName());
            wlyyQuotaResult.setQuotaDate(getYesterday());
            wlyyQuotaResult.setCreateTime(new Date());
            wlyyQuotaResult.setLevel1Type("2");
            if (tjOrgMap.containsKey(hospital.getCode())) {
                wlyyQuotaResult.setResult(tjOrgMap.get(hospital.getCode()) + "");
            } else {
                wlyyQuotaResult.setResult("0");
            }
            wlyyQuotaResultDao.save(wlyyQuotaResult);
            String city=Constant.city;
            String cityName=Constant.cityName;
            String town=hospital.getTown();
            String townName=hospital.getTownName();
            String org=hospital.getCode();
            String orgName=hospital.getName();
            String doctorCode="";
            String doctorName="";
            String doctorJob="";
            String level="2";
            String key=hospital.getCode();
            save(tjOrgMap, city, cityName, town, townName, org, orgName, doctorCode, doctorName, doctorJob, level, key);
        }
        //保存区级的健康指导统计
        //保存区级的咨询统计
        for (Map.Entry<String, Town> entry : townsMap.entrySet()) {
            Town town = townsMap.get(entry.getKey());
            WlyyQuotaResult wlyyQuotaResult = new WlyyQuotaResult();
            wlyyQuotaResult.setDel("1");
            wlyyQuotaResult.setCity(town.getCity());
            wlyyQuotaResult.setCityName(Constant.cityName);
            wlyyQuotaResult.setTown(town.getCode());
            wlyyQuotaResult.setTownName(town.getName());
            wlyyQuotaResult.setQuatoCode(wlyyQuota.getId());
            wlyyQuotaResult.setQuatoName(wlyyQuota.getName());
            wlyyQuotaResult.setQuotaDate(getYesterday());
            wlyyQuotaResult.setCreateTime(new Date());
            wlyyQuotaResult.setLevel1Type("3");
            if (tjTownMap.containsKey(town.getCode())) {
                wlyyQuotaResult.setResult(tjTownMap.get(town.getCode()) + "");
            } else {
                wlyyQuotaResult.setResult("0");
            }
            wlyyQuotaResultDao.save(wlyyQuotaResult);
            Town townObj = townsMap.get(entry.getKey());
            String city=Constant.city;
            String cityName=Constant.cityName;
            String town=townObj.getCode();
            String townName=townObj.getName();
            String org="";
            String orgName="";
            String doctorCode="";
            String doctorName="";
            String doctorJob="";
            String level="3";
            String key=townObj.getCode();
            save(tjTownMap, city, cityName, town, townName, org, orgName, doctorCode, doctorName, doctorJob, level, key);
        }
        //保存市级的统计
        {
@ -216,6 +189,7 @@ public class HealthGuideJob implements Job {
            wlyyQuotaResult.setQuotaDate(getYesterday());
            wlyyQuotaResult.setCreateTime(new Date());
            wlyyQuotaResult.setLevel1Type("4");
            //判断全科医生是否有咨询量
            if (cityCount > 0) {
                wlyyQuotaResult.setResult(cityCount + "");
            } else {
@ -230,6 +204,39 @@ public class HealthGuideJob implements Job {
        quartzJobLogDao.save(quartzJobLog);
    }
    private void compute(Map<String, Long> tjdoctorMap, String doctorCode) {
        if (tjdoctorMap.containsKey(doctorCode)) {
            tjdoctorMap.put(doctorCode, tjdoctorMap.get(doctorCode) + 1);
        } else {
            tjdoctorMap.put(doctorCode, 1L);
        }
    }
    private void save(Map<String, Long> tjTownMap, String city, String cityName, String town, String townName, String org, String orgName, String doctorCode, String doctorName, String doctorJob, String level, String key) {
        WlyyQuotaResult wlyyQuotaResult = new WlyyQuotaResult();
        wlyyQuotaResult.setDel("1");
        wlyyQuotaResult.setCity(city);
        wlyyQuotaResult.setCityName(cityName);
        wlyyQuotaResult.setTown(town);
        wlyyQuotaResult.setTownName(townName);
        wlyyQuotaResult.setOrgCode(org);
        wlyyQuotaResult.setOrgName(orgName);
        wlyyQuotaResult.setQkdoctorJobName(doctorJob);
        wlyyQuotaResult.setQkdoctorName(doctorName);
        wlyyQuotaResult.setQkdoctorCode(doctorCode);
        wlyyQuotaResult.setQuatoCode(wlyyQuota.getId());
        wlyyQuotaResult.setQuatoName(wlyyQuota.getName());
        wlyyQuotaResult.setQuotaDate(getYesterday());
        wlyyQuotaResult.setCreateTime(new Date());
        wlyyQuotaResult.setLevel1Type(level);
        //判断全科医生是否有随访量
        if (tjTownMap.containsKey(key)) {
            wlyyQuotaResult.setResult(tjTownMap.get(key) + "");
        } else {
            wlyyQuotaResult.setResult("0");
        }
        wlyyQuotaResultDao.save(wlyyQuotaResult);
    }
    public String getYesterday() {
        return yesterday;
    }

+ 3 - 0
src/main/java/com/yihu/wlyy/job/SignAgeGroupDiseaseJob.java

@ -131,6 +131,9 @@ public class SignAgeGroupDiseaseJob implements Job {
                    if(redisValues.length()>0){
                        for (Object obj : redisValues) {
                            JSONObject redisValue = new JSONObject(obj);
                            if(!redisValue.has("signType")){
                                continue;
                            }
                            //排除掉三师签约
                            if ("1".equals(redisValue.get("signType").toString())) {
                                continue;

+ 215 - 348
src/main/java/com/yihu/wlyy/job/SignJob.java

@ -1,13 +1,16 @@
package com.yihu.wlyy.job;
import com.yihu.wlyy.entity.*;
import com.yihu.wlyy.entity.address.Hospital;
import com.yihu.wlyy.entity.address.Town;
import com.yihu.wlyy.entity.doctor.profile.Doctor;
import com.yihu.wlyy.entity.doctor.team.sign.DoctorPatientGroupInfo;
import com.yihu.wlyy.entity.job.QuartzJobLog;
import com.yihu.wlyy.entity.patient.Patient;
import com.yihu.wlyy.entity.patient.PatientDisease;
import com.yihu.wlyy.entity.patient.SignFamily;
import com.yihu.wlyy.entity.statistics.WlyyQuotaResult;
import com.yihu.wlyy.repository.*;
import com.yihu.wlyy.repository.address.TownDao;
import com.yihu.wlyy.repository.doctor.DoctorDao;
import com.yihu.wlyy.repository.doctor.DoctorPatientGroupInfoDao;
@ -17,6 +20,7 @@ import com.yihu.wlyy.repository.patient.PatientDao;
import com.yihu.wlyy.repository.patient.SignFamilyDao;
import com.yihu.wlyy.repository.statistics.WlyyQuotaResultDao;
import com.yihu.wlyy.service.app.disease.PatientDiseaseService;
import com.yihu.wlyy.service.common.account.PatientService;
import com.yihu.wlyy.util.IdCardUtil;
import com.yihu.wlyy.web.quota.WlyyJobConfigVO;
import com.yihu.wlyy.web.quota.WlyyQuotaVO;
@ -59,12 +63,8 @@ public class SignJob implements Job {
    @Autowired
    private DoctorPatientGroupInfoDao doctorPatientGroupInfoDao;
    @Autowired
    private PatientDao patientDao;
    @Autowired
    private JdbcTemplate jdbcTemplate;
    @Autowired
    private PatientDiseaseService patientDiseaseService;
    @Autowired
    private StringRedisTemplate redisTemplate;
    String yesterday;
@ -121,10 +121,10 @@ public class SignJob implements Job {
        try {
            //新建任务日志对象
            QuartzJobLog quartzJobLog = new QuartzJobLog();
            quartzJobLog.setJobStartTime(new Date());
            quartzJobLog.setJobId(wlyyJobConfig.getId());
            quartzJobLog.setJobName(wlyyJobConfig.getJobName());
            QuartzJobLog QuartzJobLog = new QuartzJobLog();
            QuartzJobLog.setJobStartTime(new Date());
            QuartzJobLog.setJobId(wlyyJobConfig.getId());
            QuartzJobLog.setJobName(wlyyJobConfig.getJobName());
            //查找出系统全部的机构
            List<Hospital> hospitals = hospitalDao.findHospitalzxFWZ();
            Map<String, Hospital> hospitalsMap = new HashMap<String, Hospital>();
@ -152,259 +152,126 @@ public class SignJob implements Job {
                String hospitalCode = hospital.getCode();//得到患者签约的机构号
                String sex = IdCardUtil.getSexForIdcard(idcard);//根据身份证得到性别
                //统计市 目前只统计厦门市 所以先写死 后期再改造
                if (citySexMap.containsKey(Constant.city)) {
                    Map<String, Long> sexMap = citySexMap.get(Constant.city);
                    sexMap.put(sex, (sexMap.get(sex) == null ? 0l : sexMap.get(sex)) + 1);
                    citySexMap.put(Constant.city, sexMap);
                } else {
                    Map<String, Long> sexMap = new HashMap<String, Long>();
                    sexMap.put(sex, 1L);
                    citySexMap.put(Constant.city, sexMap);
                }
                compute_level2_1(citySexMap,Constant.city, sex);
                //统计区
                if (townSexMap.containsKey(town)) {
                    Map<String, Long> sexMap = townSexMap.get(town);
                    sexMap.put(sex, (sexMap.get(sex) == null ? 0l : sexMap.get(sex)) + 1);
                    townSexMap.put(town, sexMap);
                } else {
                    Map<String, Long> sexMap = new HashMap<String, Long>();
                    sexMap.put(sex, 1L);
                    townSexMap.put(town, sexMap);
                }
                compute_level2_1(townSexMap,town, sex);
                //统计机构
                //统计站
                if (!"00".equals(hospitalCode.substring(8))) {
                    String orgCodeTemp = hospitalCode.substring(0, 8) + "00";
                    if (orgSexMap.containsKey(orgCodeTemp)) {
                        Map<String, Long> sexMap = orgSexMap.get(orgCodeTemp);
                        sexMap.put(sex, (sexMap.get(sex) == null ? 0l : sexMap.get(sex)) + 1);
                        orgSexMap.put(orgCodeTemp, sexMap);
                    } else {
                        Map<String, Long> sexMap = new HashMap<String, Long>();
                        sexMap.put(sex, 1L);
                        orgSexMap.put(orgCodeTemp, sexMap);
                    }
                    compute_level2_1(orgSexMap,orgCodeTemp, sex);
                } else {
                    //统计社区
                    if (orgSexMap.containsKey(hospitalCode)) {
                        Map<String, Long> sexMap = orgSexMap.get(hospitalCode);
                        sexMap.put(sex, (sexMap.get(sex) == null ? 0l : sexMap.get(sex)) + 1);
                        orgSexMap.put(hospitalCode, sexMap);
                    } else {
                        Map<String, Long> sexMap = new HashMap<String, Long>();
                        sexMap.put(sex, 1L);
                        orgSexMap.put(hospitalCode, sexMap);
                    }
                    compute_level2_1(orgSexMap,hospitalCode, sex);
                }
            }
            //保存统计数据
            //保存市统计数据
            for (Map.Entry<String, Map<String, Long>> entry : citySexMap.entrySet()) {
                //保存女
                WlyyQuotaResult wlyyQuotaResult = new WlyyQuotaResult();
                wlyyQuotaResult.setDel("1");
                wlyyQuotaResult.setCity(entry.getKey());
                wlyyQuotaResult.setCityName(Constant.cityName);
                wlyyQuotaResult.setQuatoCode(wlyyQuota.getId());
                wlyyQuotaResult.setQuatoName(wlyyQuota.getName());
                wlyyQuotaResult.setQuotaDate(getYesterday());
                wlyyQuotaResult.setCreateTime(new Date());
                wlyyQuotaResult.setLevel1Type("4");//市级
                wlyyQuotaResult.setLevel2Type(Constant.level_sex_1);
                wlyyQuotaResult.setLevel2TypeName(Constant.level_sex_1_name);
                if (entry.getValue() != null && entry.getValue().containsKey(Constant.level_sex_1)) {
                    wlyyQuotaResult.setResult(entry.getValue().get(Constant.level_sex_1) + "");
                } else {
                    wlyyQuotaResult.setResult("0");
                for(int i=1;i<4;i++){
                    String key=i+"";
                    String city=Constant.city;
                    String cityName=Constant.cityName;
                    String town="";
                    String townName="";
                    String org="";
                    String orgName="";
                    String level="3";
                    save_level2_1(entry.getValue(), key, city, cityName, town, townName, org, orgName, level);
                }
                wlyyQuotaResultDao.save(wlyyQuotaResult);
                //保存男
                wlyyQuotaResult = new WlyyQuotaResult();
                wlyyQuotaResult.setDel("1");
                wlyyQuotaResult.setCity(entry.getKey());
                wlyyQuotaResult.setCityName(Constant.cityName);
                wlyyQuotaResult.setQuatoCode(wlyyQuota.getId());
                wlyyQuotaResult.setQuatoName(wlyyQuota.getName());
                wlyyQuotaResult.setQuotaDate(getYesterday());
                wlyyQuotaResult.setCreateTime(new Date());
                wlyyQuotaResult.setLevel1Type("4");//市级
                wlyyQuotaResult.setLevel2Type(Constant.level_sex_2);
                wlyyQuotaResult.setLevel2TypeName(Constant.level_sex_2_name);
                if (entry.getValue() != null && entry.getValue().containsKey(Constant.level_sex_2)) {
                    wlyyQuotaResult.setResult(entry.getValue().get(Constant.level_sex_2) + "");
                } else {
                    wlyyQuotaResult.setResult("0");
                }
                wlyyQuotaResultDao.save(wlyyQuotaResult);
                //保存位置
                wlyyQuotaResult = new WlyyQuotaResult();
                wlyyQuotaResult.setDel("1");
                wlyyQuotaResult.setCity(entry.getKey());
                wlyyQuotaResult.setCityName(Constant.cityName);
                wlyyQuotaResult.setQuatoCode(wlyyQuota.getId());
                wlyyQuotaResult.setQuatoName(wlyyQuota.getName());
                wlyyQuotaResult.setQuotaDate(getYesterday());
                wlyyQuotaResult.setCreateTime(new Date());
                wlyyQuotaResult.setLevel1Type("4");//市级
                wlyyQuotaResult.setLevel2Type(Constant.level_sex_3);
                wlyyQuotaResult.setLevel2TypeName(Constant.level_sex_3_name);
                if (entry.getValue() != null && entry.getValue().containsKey(Constant.level_sex_3)) {
                    wlyyQuotaResult.setResult(entry.getValue().get(Constant.level_sex_3) + "");
                } else {
                    wlyyQuotaResult.setResult("0");
                }
                wlyyQuotaResultDao.save(wlyyQuotaResult);
            }
            //保存区的统计数据
            for (Map.Entry<String, Town> townEntry : townsMap.entrySet()) {
                //判断该区是否有统计数据
                Map<String, Long> oneTownSexMap = townSexMap.get(townEntry.getKey());//得到当个区的统计数据
                Town town = townEntry.getValue();//得到区级信息
                //保存女
                WlyyQuotaResult wlyyQuotaResult = new WlyyQuotaResult();
                wlyyQuotaResult.setDel("1");
                wlyyQuotaResult.setCity(Constant.city);
                wlyyQuotaResult.setCityName(Constant.cityName);
                wlyyQuotaResult.setTown(town.getCode());
                wlyyQuotaResult.setTownName(town.getName());
                wlyyQuotaResult.setQuatoCode(wlyyQuota.getId());
                wlyyQuotaResult.setQuatoName(wlyyQuota.getName());
                wlyyQuotaResult.setQuotaDate(getYesterday());
                wlyyQuotaResult.setCreateTime(new Date());
                wlyyQuotaResult.setLevel1Type("3");//区级
                wlyyQuotaResult.setLevel2Type(Constant.level_sex_1);
                wlyyQuotaResult.setLevel2TypeName(Constant.level_sex_1_name);
                if (oneTownSexMap != null && oneTownSexMap.containsKey(Constant.level_sex_1)) {
                    wlyyQuotaResult.setResult(oneTownSexMap.get(Constant.level_sex_1) + "");
                } else {
                    wlyyQuotaResult.setResult("0");
                }
                wlyyQuotaResultDao.save(wlyyQuotaResult);
                //保存男
                wlyyQuotaResult = new WlyyQuotaResult();
                wlyyQuotaResult.setDel("1");
                wlyyQuotaResult.setCity(Constant.city);
                wlyyQuotaResult.setCityName(Constant.cityName);
                wlyyQuotaResult.setTown(town.getCode());
                wlyyQuotaResult.setTownName(town.getName());
                wlyyQuotaResult.setQuatoCode(wlyyQuota.getId());
                wlyyQuotaResult.setQuatoName(wlyyQuota.getName());
                wlyyQuotaResult.setQuotaDate(getYesterday());
                wlyyQuotaResult.setCreateTime(new Date());
                wlyyQuotaResult.setLevel1Type("3");//区级
                wlyyQuotaResult.setLevel2Type(Constant.level_sex_2);
                wlyyQuotaResult.setLevel2TypeName(Constant.level_sex_2_name);
                if (oneTownSexMap != null && oneTownSexMap.containsKey(Constant.level_sex_2)) {
                    wlyyQuotaResult.setResult(oneTownSexMap.get(Constant.level_sex_2) + "");
                } else {
                    wlyyQuotaResult.setResult("0");
                }
                wlyyQuotaResultDao.save(wlyyQuotaResult);
                //保存未知的统计信息
                wlyyQuotaResult = new WlyyQuotaResult();
                wlyyQuotaResult.setDel("1");
                wlyyQuotaResult.setCity(Constant.city);
                wlyyQuotaResult.setCityName(Constant.cityName);
                wlyyQuotaResult.setTown(town.getCode());
                wlyyQuotaResult.setTownName(town.getName());
                wlyyQuotaResult.setQuatoCode(wlyyQuota.getId());
                wlyyQuotaResult.setQuatoName(wlyyQuota.getName());
                wlyyQuotaResult.setQuotaDate(getYesterday());
                wlyyQuotaResult.setCreateTime(new Date());
                wlyyQuotaResult.setLevel1Type("3");//区级
                wlyyQuotaResult.setLevel2Type(Constant.level_sex_3);
                wlyyQuotaResult.setLevel2TypeName(Constant.level_sex_3_name);
                if (oneTownSexMap != null && oneTownSexMap.containsKey(Constant.level_sex_3)) {
                    wlyyQuotaResult.setResult(oneTownSexMap.get(Constant.level_sex_3) + "");
                } else {
                    wlyyQuotaResult.setResult("0");
                Town townObj = townEntry.getValue();//得到区级信息
                for(int i=1;i<4;i++){
                    String key=i+"";
                    String city=Constant.city;
                    String cityName=Constant.cityName;
                    String town=townObj.getCode();
                    String townName=townObj.getName();
                    String org="";
                    String orgName="";
                    String level="3";
                    save_level2_1(oneTownSexMap, key, city, cityName, town, townName, org, orgName, level);
                }
                wlyyQuotaResultDao.save(wlyyQuotaResult);
            }
            //统计机构
            for (Map.Entry<String, Hospital> hospitalEntry : hospitalsMap.entrySet()) {
                //判断该机构是否有统计数据
                Map<String, Long> oneorgSexMap = orgSexMap.get(hospitalEntry.getKey());//得到当个机构的统计数据
                Hospital hospital = hospitalEntry.getValue();//得到区级信息
                //保存女
                WlyyQuotaResult wlyyQuotaResult = new WlyyQuotaResult();
                wlyyQuotaResult.setDel("1");
                wlyyQuotaResult.setCity(Constant.city);
                wlyyQuotaResult.setCityName(Constant.cityName);
                wlyyQuotaResult.setQuatoCode(wlyyQuota.getId());
                wlyyQuotaResult.setQuatoName(wlyyQuota.getName());
                wlyyQuotaResult.setTown(hospital.getTown());
                wlyyQuotaResult.setTownName(hospital.getTownName());
                wlyyQuotaResult.setOrgCode(hospital.getCode());
                wlyyQuotaResult.setOrgName(hospital.getName());
                wlyyQuotaResult.setQuotaDate(getYesterday());
                wlyyQuotaResult.setCreateTime(new Date());
                wlyyQuotaResult.setLevel1Type("2");//机构级
                wlyyQuotaResult.setLevel2Type(Constant.level_sex_1);
                wlyyQuotaResult.setLevel2TypeName(Constant.level_sex_1_name);
                if (oneorgSexMap != null && oneorgSexMap.containsKey(Constant.level_sex_1)) {
                    wlyyQuotaResult.setResult(oneorgSexMap.get(Constant.level_sex_1) + "");
                } else {
                    wlyyQuotaResult.setResult("0");
                }
                wlyyQuotaResultDao.save(wlyyQuotaResult);
                //保存男
                wlyyQuotaResult = new WlyyQuotaResult();
                wlyyQuotaResult.setDel("1");
                wlyyQuotaResult.setCity(Constant.city);
                wlyyQuotaResult.setCityName(Constant.cityName);
                wlyyQuotaResult.setTown(hospital.getTown());
                wlyyQuotaResult.setTownName(hospital.getTownName());
                wlyyQuotaResult.setOrgCode(hospital.getCode());
                wlyyQuotaResult.setOrgName(hospital.getName());
                wlyyQuotaResult.setQuatoCode(wlyyQuota.getId());
                wlyyQuotaResult.setQuatoName(wlyyQuota.getName());
                wlyyQuotaResult.setQuotaDate(getYesterday());
                wlyyQuotaResult.setCreateTime(new Date());
                wlyyQuotaResult.setLevel1Type("2");//机构级
                wlyyQuotaResult.setLevel2Type(Constant.level_sex_2);
                wlyyQuotaResult.setLevel2TypeName(Constant.level_sex_2_name);
                if (oneorgSexMap != null && oneorgSexMap.containsKey(Constant.level_sex_2)) {
                    wlyyQuotaResult.setResult(oneorgSexMap.get(Constant.level_sex_2) + "");
                } else {
                    wlyyQuotaResult.setResult("0");
                }
                wlyyQuotaResultDao.save(wlyyQuotaResult);
                //保存未知
                wlyyQuotaResult = new WlyyQuotaResult();
                wlyyQuotaResult.setDel("1");
                wlyyQuotaResult.setCity(Constant.city);
                wlyyQuotaResult.setCityName(Constant.cityName);
                wlyyQuotaResult.setTown(hospital.getTown());
                wlyyQuotaResult.setTownName(hospital.getTownName());
                wlyyQuotaResult.setOrgCode(hospital.getCode());
                wlyyQuotaResult.setOrgName(hospital.getName());
                wlyyQuotaResult.setQuatoCode(wlyyQuota.getId());
                wlyyQuotaResult.setQuatoName(wlyyQuota.getName());
                wlyyQuotaResult.setQuotaDate(getYesterday());
                wlyyQuotaResult.setCreateTime(new Date());
                wlyyQuotaResult.setLevel1Type("2");//机构级
                wlyyQuotaResult.setLevel2Type(Constant.level_sex_3);
                wlyyQuotaResult.setLevel2TypeName(Constant.level_sex_3_name);
                if (oneorgSexMap != null && oneorgSexMap.containsKey(Constant.level_sex_3)) {
                    wlyyQuotaResult.setResult(oneorgSexMap.get(Constant.level_sex_3) + "");
                } else {
                    wlyyQuotaResult.setResult("0");
                }
                wlyyQuotaResultDao.save(wlyyQuotaResult);
                for(int i=1;i<4;i++){
                    String key=i+"";
                    String city=Constant.city;
                    String cityName=Constant.cityName;
                    String town=hospital.getTown();
                    String townName=hospital.getTownName();
                    String org=hospital.getCode();
                    String orgName=hospital.getName();
                    String level="2";
                    save_level2_1(oneorgSexMap, key, city, cityName, town, townName, org, orgName, level);
               }
            }
            quartzJobLog.setJobEndTime(new Date());
            quartzJobLog.setJobContent("统计" + getYesterday() + " 的签约性别数据完成 ");
            quartzJobLog.setJobType("1");
            quartzJobLogDao.save(quartzJobLog);
            QuartzJobLog.setJobEndTime(new Date());
            QuartzJobLog.setJobContent("统计" + getYesterday() + " 的签约性别数据完成 ");
            QuartzJobLog.setJobType("1");
            quartzJobLogDao.save(QuartzJobLog);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    /**
     * 机构维度下患者性别维度计算指标 公用保存方法
     * @param oneorgSexMap
     * @param key
     * @param city
     * @param cityName
     * @param town
     * @param townName
     * @param org
     * @param orgName
     * @param level
     */
    private void save_level2_1(Map<String, Long> oneorgSexMap, String key, String city, String cityName, String town, String townName, String org, String orgName, String level) {
        WlyyQuotaResult wlyyQuotaResult = new WlyyQuotaResult();
        wlyyQuotaResult.setDel("1");
        wlyyQuotaResult.setCity(city);
        wlyyQuotaResult.setCityName(cityName);
        wlyyQuotaResult.setTown(town);
        wlyyQuotaResult.setTownName(townName);
        wlyyQuotaResult.setOrgCode(org);
        wlyyQuotaResult.setOrgName(orgName);
        wlyyQuotaResult.setQuatoCode(wlyyQuota.getId());
        wlyyQuotaResult.setQuatoName(wlyyQuota.getName());
        wlyyQuotaResult.setQuotaDate(getYesterday());
        wlyyQuotaResult.setCreateTime(new Date());
        wlyyQuotaResult.setLevel1Type(level);//机构级
        wlyyQuotaResult.setLevel2Type(key);
        wlyyQuotaResult.setLevel2TypeName(Constant.getLevelSexName(key));
        if (oneorgSexMap != null && oneorgSexMap.containsKey(key)) {
            wlyyQuotaResult.setResult(oneorgSexMap.get(key) + "");
        } else {
            wlyyQuotaResult.setResult("0");
        }
        wlyyQuotaResultDao.save(wlyyQuotaResult);
    }
    private void compute_level2_1(Map<String, Map<String, Long>> citySexMap,String key, String sex) {
        if (citySexMap.containsKey(key)) {
            Map<String, Long> sexMap = citySexMap.get(key);
            sexMap.put(sex, (sexMap.get(sex) == null ? 0l : sexMap.get(sex)) + 1);
            citySexMap.put(key, sexMap);
        } else {
            Map<String, Long> sexMap = new HashMap<String, Long>();
            sexMap.put(sex, 1L);
            citySexMap.put(key, sexMap);
        }
    }
    /**
     * 机构维度患者分组维度计算指标
     */
@ -419,10 +286,10 @@ public class SignJob implements Job {
            Map<String, Map<String, Long>> townGroupMap = new HashMap<String, Map<String, Long>>();//key是区行政代码
            Map<String, Map<String, Long>> orgGroupMap = new HashMap<String, Map<String, Long>>();//key是机构代码
            //新建任务日志对象
            QuartzJobLog quartzJobLog = new QuartzJobLog();
            quartzJobLog.setJobStartTime(new Date());
            quartzJobLog.setJobId(wlyyJobConfig.getId());
            quartzJobLog.setJobName(wlyyJobConfig.getJobName());
            QuartzJobLog QuartzJobLog = new QuartzJobLog();
            QuartzJobLog.setJobStartTime(new Date());
            QuartzJobLog.setJobId(wlyyJobConfig.getId());
            QuartzJobLog.setJobName(wlyyJobConfig.getJobName());
            //查找出系统全部的机构
            List<Hospital> hospitals = hospitalDao.findHospital2();
            Map<String, Hospital> hospitalsMap = new HashMap<String, Hospital>();
@ -437,12 +304,6 @@ public class SignJob implements Job {
                one.put("100", 0L);
                orgGroupMap.put(hospital.getCode(), one);
            }
            //查找出系统全部的患者
            List<Patient> patients = patientDao.findAllSignPatient();
            Map<String, Patient> patientsMap = new HashMap<String, Patient>();
            for (Patient patient : patients) {
                patientsMap.put(patient.getCode(), patient);
            }
            //查找出厦门市全部的区
            List<Town> towns = townDao.findByCityCode(Constant.city);
            Map<String, Town> townsMap = new HashMap<String, Town>();
@ -457,19 +318,22 @@ public class SignJob implements Job {
                one.put("100", 0L);
                townGroupMap.put(town.getCode(), one);
            }
            //得到所有的签约病人的分组信息
            List<DoctorPatientGroupInfo> doctorPatientGroupInfos = doctorPatientGroupInfoDao.findAllPatient();
            Map<String, String> groupMap = new HashMap<String, String>();
            for (DoctorPatientGroupInfo doctorPatientGroupInfo : doctorPatientGroupInfos) {
                groupMap.put(doctorPatientGroupInfo.getPatient(), doctorPatientGroupInfo.getGroup());
            }
            //找出今天的签约信息
            List<SignFamily> signFamilys = signFamilyDao.findByJiatingSignYesterday(yesterday, now);
            //统计有签约的
            for (SignFamily signFamily : signFamilys) {
                String patient = signFamily.getPatient();
                String group = groupMap.get(patient);//得到该签约病人的所在分组 1 普通 2 慢病 3是 65岁以上人群  4是 高血压 5是糖尿病 100是高血压和糖尿病
                //设置查看病人所在分组
                List<DoctorPatientGroupInfo> dctorPatientGroupInfo = doctorPatientGroupInfoDao.findByMorenPatient(patient);
                String group ="";//得到该签约病人的所在分组 1 普通 2 慢病 3是 65岁以上人群  4是 高血压 5是糖尿病 100是高血压和糖尿病
                if (dctorPatientGroupInfo != null && dctorPatientGroupInfo.size() > 0) {
                    group=dctorPatientGroupInfo.get(0).getGroup();
                } else {
                    group="1";
                }
                Hospital hospital = hospitalsMap.get(signFamily.getHospital());//得到患者签约的机构
                if (hospital == null) {
                    continue;
@ -533,6 +397,9 @@ public class SignJob implements Job {
                    JSONArray redisValues = new JSONArray(jsonString);
                    for (Object obj : redisValues) {
                        JSONObject redisValue = new JSONObject(obj);
                        if(!redisValue.has("signType")){
                            continue;
                        }
                        //排除掉三师签约
                        if ("1".equals(redisValue.get("signType").toString())) {
                            continue;
@ -984,10 +851,10 @@ public class SignJob implements Job {
                wlyyQuotaResultDao.save(wlyyQuotaResult);
            }
            quartzJobLog.setJobEndTime(new Date());
            quartzJobLog.setJobContent("统计" + getYesterday() + " 的签约病人分组数据完成 ");
            quartzJobLog.setJobType("1");
            quartzJobLogDao.save(quartzJobLog);
            QuartzJobLog.setJobEndTime(new Date());
            QuartzJobLog.setJobContent("统计" + getYesterday() + " 的签约病人分组数据完成 ");
            QuartzJobLog.setJobType("1");
            quartzJobLogDao.save(QuartzJobLog);
        } catch (Exception e) {
            e.printStackTrace();
        }
@ -1001,10 +868,10 @@ public class SignJob implements Job {
        try {
            jdbcTemplate.execute("delete from wlyy_quota_result where quota_date='" + yesterday + "' and quato_code='" + 8 + "'");
            //新建任务日志对象
            QuartzJobLog quartzJobLog = new QuartzJobLog();
            quartzJobLog.setJobStartTime(new Date());
            quartzJobLog.setJobId(wlyyJobConfig.getId());
            quartzJobLog.setJobName(wlyyJobConfig.getJobName());
            QuartzJobLog QuartzJobLog = new QuartzJobLog();
            QuartzJobLog.setJobStartTime(new Date());
            QuartzJobLog.setJobId(wlyyJobConfig.getId());
            QuartzJobLog.setJobName(wlyyJobConfig.getJobName());
            //查找出系统全部的机构
            List<Hospital> hospitals = hospitalDao.findHospital2();
            Map<String, Hospital> hospitalsMap = new HashMap<String, Hospital>();
@ -1457,10 +1324,10 @@ public class SignJob implements Job {
                wlyyQuotaResultDao.save(wlyyQuotaResult);
            }
            quartzJobLog.setJobEndTime(new Date());
            quartzJobLog.setJobContent("统计" + getYesterday() + " 的签约患者年龄数据完成 ");
            quartzJobLog.setJobType("1");
            quartzJobLogDao.save(quartzJobLog);
            QuartzJobLog.setJobEndTime(new Date());
            QuartzJobLog.setJobContent("统计" + getYesterday() + " 的签约患者年龄数据完成 ");
            QuartzJobLog.setJobType("1");
            quartzJobLogDao.save(QuartzJobLog);
        } catch (Exception e) {
            e.printStackTrace();
        }
@ -1474,10 +1341,10 @@ public class SignJob implements Job {
        jdbcTemplate.execute("delete from wlyy_quota_result where quota_date='" + yesterday + "' and quato_code='" + 1 + "'");
        //新建任务日志对象
        QuartzJobLog quartzJobLog = new QuartzJobLog();
        quartzJobLog.setJobStartTime(new Date());
        quartzJobLog.setJobId(wlyyJobConfig.getId());
        quartzJobLog.setJobName(wlyyJobConfig.getJobName());
        QuartzJobLog QuartzJobLog = new QuartzJobLog();
        QuartzJobLog.setJobStartTime(new Date());
        QuartzJobLog.setJobId(wlyyJobConfig.getId());
        QuartzJobLog.setJobName(wlyyJobConfig.getJobName());
        //查找出系统全部的全科医生
        List<Doctor> doctors = doctorDao.findAllQKDoctot();
@ -1508,11 +1375,7 @@ public class SignJob implements Job {
        for (SignFamily signFamily : signFamilys) {
            String doctorCode = signFamily.getDoctor();//得到签约中全科医生的code
            //统计团队
            if (tjQkdoctorMap.containsKey(doctorCode)) {
                tjQkdoctorMap.put(doctorCode, tjQkdoctorMap.get(doctorCode) + 1);
            } else {
                tjQkdoctorMap.put(doctorCode, 1L);
            }
            compute_level1(tjQkdoctorMap, doctorCode);
            //判断医生属于哪个机构
            Doctor doctor = doctorsMap.get(doctorCode);
            if (doctor == null) {
@ -1523,28 +1386,16 @@ public class SignJob implements Job {
            //统计站
            if (!"00".equals(orgCode.substring(8))) {
                String orgCodeTemp = orgCode.substring(0, 8) + "00";
                if (tjOrgMap.containsKey(orgCodeTemp)) {
                    tjOrgMap.put(orgCodeTemp, tjOrgMap.get(orgCodeTemp) + 1);
                } else {
                    tjOrgMap.put(orgCodeTemp, 1L);
                }
                compute_level1(tjOrgMap, orgCodeTemp);
            } else {
                //统计社区
                if (tjOrgMap.containsKey(orgCode)) {
                    tjOrgMap.put(orgCode, tjOrgMap.get(orgCode) + 1);
                } else {
                    tjOrgMap.put(orgCode, 1L);
                }
                compute_level1(tjOrgMap, orgCode);
            }
            String townCode = doctor.getTown();
            //统计区
            if (tjTownMap.containsKey(townCode)) {
                tjTownMap.put(townCode, tjTownMap.get(townCode) + 1);
            } else {
                tjTownMap.put(townCode, 1L);
            }
            compute_level1(tjTownMap, townCode);
            //统计市
            cityCount++;
        }
@ -1552,75 +1403,50 @@ public class SignJob implements Job {
        //保存全科医生的签约统计
        for (Map.Entry<String, Doctor> entry : doctorsMap.entrySet()) {
            Doctor doctor = doctorsMap.get(entry.getKey());//得到全科医生
            WlyyQuotaResult wlyyQuotaResult = new WlyyQuotaResult();
            wlyyQuotaResult.setDel("1");
            wlyyQuotaResult.setOrgCode(doctor.getHospital());
            wlyyQuotaResult.setOrgName(doctor.getHosptialName());
            wlyyQuotaResult.setCity(doctor.getCity());
            wlyyQuotaResult.setCityName(doctor.getCityName());
            wlyyQuotaResult.setQuatoCode(wlyyQuota.getId());
            wlyyQuotaResult.setQuatoName(wlyyQuota.getName());
            wlyyQuotaResult.setQuotaDate(getYesterday());
            wlyyQuotaResult.setCreateTime(new Date());
            wlyyQuotaResult.setQkdoctorJobName(doctor.getJobName());
            wlyyQuotaResult.setQkdoctorName(doctor.getName());
            wlyyQuotaResult.setQkdoctorCode(doctor.getCode());
            wlyyQuotaResult.setTown(doctor.getTown());
            wlyyQuotaResult.setTownName(doctor.getTownName());
            wlyyQuotaResult.setLevel1Type("1");
            //判断全科医生是否有签约量
            if (tjQkdoctorMap.containsKey(doctor.getCode())) {
                wlyyQuotaResult.setResult(tjQkdoctorMap.get(doctor.getCode()) + "");
            } else {
                wlyyQuotaResult.setResult("0");
            }
            wlyyQuotaResultDao.save(wlyyQuotaResult);
            String city=Constant.city;
            String cityName=Constant.cityName;
            String town=doctor.getTown();
            String townName=doctor.getTownName();
            String org=doctor.getHospital();
            String orgName=doctor.getHosptialName();
            String doctorCode=doctor.getCode();
            String doctorName=doctor.getName();
            String doctorJob=doctor.getJob();
            String level="1";
            String key=doctor.getCode();
            save_level1(tjQkdoctorMap, key, city, cityName, town, townName, org, orgName, doctorCode, doctorName, doctorJob, level);
        }
        //保存机构的签约统计
        for (Map.Entry<String, Hospital> entry : hospitalsMap.entrySet()) {
            Hospital hospital = hospitalsMap.get(entry.getKey());//得到全科医生
            WlyyQuotaResult wlyyQuotaResult = new WlyyQuotaResult();
            wlyyQuotaResult.setDel("1");
            wlyyQuotaResult.setOrgCode(hospital.getCode());
            wlyyQuotaResult.setOrgName(hospital.getName());
            wlyyQuotaResult.setCity(hospital.getCity());
            wlyyQuotaResult.setCityName(hospital.getCityName());
            wlyyQuotaResult.setTown(hospital.getTown());
            wlyyQuotaResult.setTownName(hospital.getTownName());
            wlyyQuotaResult.setQuatoCode(wlyyQuota.getId());
            wlyyQuotaResult.setQuatoName(wlyyQuota.getName());
            wlyyQuotaResult.setQuotaDate(getYesterday());
            wlyyQuotaResult.setCreateTime(new Date());
            wlyyQuotaResult.setLevel1Type("2");
            //判断全科医生是否有签约量
            if (tjOrgMap.containsKey(hospital.getCode())) {
                wlyyQuotaResult.setResult(tjOrgMap.get(hospital.getCode()) + "");
            } else {
                wlyyQuotaResult.setResult("0");
            }
            wlyyQuotaResultDao.save(wlyyQuotaResult);
            String city=Constant.city;
            String cityName=Constant.cityName;
            String town=hospital.getTown();
            String townName=hospital.getTownName();
            String org=hospital.getCode();
            String orgName=hospital.getName();
            String doctorCode="";
            String doctorName="";
            String doctorJob="";
            String level="2";
            String key=hospital.getCode();
            save_level1(tjOrgMap, key, city, cityName, town, townName, org, orgName, doctorCode, doctorName, doctorJob, level);
        }
        //保存区级的签约统计
        for (Map.Entry<String, Town> entry : townsMap.entrySet()) {
            Town town = townsMap.get(entry.getKey());//得到全科医生
            WlyyQuotaResult wlyyQuotaResult = new WlyyQuotaResult();
            wlyyQuotaResult.setDel("1");
            wlyyQuotaResult.setCity(town.getCity());
            wlyyQuotaResult.setCityName(Constant.cityName);
            wlyyQuotaResult.setTown(town.getCode());
            wlyyQuotaResult.setTownName(town.getName());
            wlyyQuotaResult.setQuatoCode(wlyyQuota.getId());
            wlyyQuotaResult.setQuatoName(wlyyQuota.getName());
            wlyyQuotaResult.setQuotaDate(getYesterday());
            wlyyQuotaResult.setCreateTime(new Date());
            wlyyQuotaResult.setLevel1Type("3");
            //判断全科医生是否有签约量
            if (tjTownMap.containsKey(town.getCode())) {
                wlyyQuotaResult.setResult(tjTownMap.get(town.getCode()) + "");
            } else {
                wlyyQuotaResult.setResult("0");
            }
            wlyyQuotaResultDao.save(wlyyQuotaResult);
            Town townObj = townsMap.get(entry.getKey());//得到全科医生
            String city=Constant.city;
            String cityName=Constant.cityName;
            String town=townObj.getCode();
            String townName=townObj.getName();
            String org="";
            String orgName="";
            String doctorCode="";
            String doctorName="";
            String doctorJob="";
            String level="3";
            String key=townObj.getCode();
            save_level1(tjTownMap, key, city, cityName, town, townName, org, orgName, doctorCode, doctorName, doctorJob, level);
        }
        //保存市级的统计
        {
@ -1642,10 +1468,51 @@ public class SignJob implements Job {
            wlyyQuotaResultDao.save(wlyyQuotaResult);
        }
        quartzJobLog.setJobEndTime(new Date());
        quartzJobLog.setJobContent("统计" + getYesterday() + " 的签约数据完成 ");
        quartzJobLog.setJobType("1");
        quartzJobLogDao.save(quartzJobLog);
        QuartzJobLog.setJobEndTime(new Date());
        QuartzJobLog.setJobContent("统计" + getYesterday() + " 的签约数据完成 ");
        QuartzJobLog.setJobType("1");
        quartzJobLogDao.save(QuartzJobLog);
    }
    /**
     * 统计签约的公用保存方案
     *
     */
    private void save_level1(Map<String, Long> countMap, String key, String city, String cityName, String town, String townName, String org, String orgName, String doctorCode, String doctorName, String doctorJob, String level) {
        WlyyQuotaResult wlyyQuotaResult = new WlyyQuotaResult();
        wlyyQuotaResult.setDel("1");
        wlyyQuotaResult.setOrgCode(org);
        wlyyQuotaResult.setOrgName(orgName);
        wlyyQuotaResult.setCity(city);
        wlyyQuotaResult.setCityName(cityName);
        wlyyQuotaResult.setQuatoCode(wlyyQuota.getId());
        wlyyQuotaResult.setQuatoName(wlyyQuota.getName());
        wlyyQuotaResult.setQuotaDate(getYesterday());
        wlyyQuotaResult.setCreateTime(new Date());
        wlyyQuotaResult.setQkdoctorJobName(doctorJob);
        wlyyQuotaResult.setQkdoctorName(doctorName);
        wlyyQuotaResult.setQkdoctorCode(doctorCode);
        wlyyQuotaResult.setTown(town);
        wlyyQuotaResult.setTownName(townName);
        wlyyQuotaResult.setLevel1Type(level);
        //判断全科医生是否有解约量
        if (countMap.containsKey(key)) {
            wlyyQuotaResult.setResult(countMap.get(key) + "");
        } else {
            wlyyQuotaResult.setResult("0");
        }
        wlyyQuotaResultDao.save(wlyyQuotaResult);
    }
    /**
     * 统计签约的公用统计方案
     * @param tjQkdoctorMap
     * @param doctorCode
     */
    private void compute_level1(Map<String, Long> tjQkdoctorMap, String doctorCode) {
        if (tjQkdoctorMap.containsKey(doctorCode)) {
            tjQkdoctorMap.put(doctorCode, tjQkdoctorMap.get(doctorCode) + 1);
        } else {
            tjQkdoctorMap.put(doctorCode, 1L);
        }
    }
    /*

+ 75 - 82
src/main/java/com/yihu/wlyy/job/UnSignJob.java

@ -109,11 +109,7 @@ public class UnSignJob implements Job {
        for (SignFamily signFamily : signFamilys) {
            String doctorCode = signFamily.getDoctor();//得到解约中全科医生的code
            //统计团队
            if (tjQkdoctorMap.containsKey(doctorCode)) {
                tjQkdoctorMap.put(doctorCode, tjQkdoctorMap.get(doctorCode) + 1);
            } else {
                tjQkdoctorMap.put(doctorCode, 1L);
            }
            compute(tjQkdoctorMap, doctorCode);
            //判断医生属于哪个机构
            Doctor doctor = doctorsMap.get(doctorCode);
            String orgCode = doctor.getHospital();
@ -121,28 +117,16 @@ public class UnSignJob implements Job {
            if(!"00".equals(orgCode.substring(8))){
                //统计站
                String orgCodeTemp=orgCode.substring(0,8)+"00";
                if (tjOrgMap.containsKey(orgCodeTemp)) {
                    tjOrgMap.put(orgCodeTemp, tjOrgMap.get(orgCodeTemp) + 1);
                } else {
                    tjOrgMap.put(orgCodeTemp, 1L);
                }
                compute(tjOrgMap, orgCodeTemp);
            }else{
                //统计社区
                if (tjOrgMap.containsKey(orgCode)) {
                    tjOrgMap.put(orgCode, tjOrgMap.get(orgCode) + 1);
                } else {
                    tjOrgMap.put(orgCode, 1L);
                }
                compute(tjOrgMap, orgCode);
            }
            String townCode = doctor.getTown();
            //统计区
            if (tjTownMap.containsKey(townCode)) {
                tjTownMap.put(townCode, tjTownMap.get(townCode) + 1);
            } else {
                tjTownMap.put(townCode, 1L);
            }
            compute(tjTownMap, townCode);
            //统计市
            cityCount++;
        }
@ -150,75 +134,50 @@ public class UnSignJob implements Job {
        //保存全科医生的解约统计
        for (Map.Entry<String, Doctor> entry : doctorsMap.entrySet()) {
            Doctor doctor = doctorsMap.get(entry.getKey());//得到全科医生
            WlyyQuotaResult wlyyQuotaResult = new WlyyQuotaResult();
            wlyyQuotaResult.setDel("1");
            wlyyQuotaResult.setOrgCode(doctor.getHospital());
            wlyyQuotaResult.setOrgName(doctor.getHosptialName());
            wlyyQuotaResult.setCity(doctor.getCity());
            wlyyQuotaResult.setCityName(doctor.getCityName());
            wlyyQuotaResult.setQuatoCode(wlyyQuota.getId());
            wlyyQuotaResult.setQuatoName(wlyyQuota.getName());
            wlyyQuotaResult.setQuotaDate(getYesterday());
            wlyyQuotaResult.setCreateTime(new Date());
            wlyyQuotaResult.setQkdoctorJobName(doctor.getJobName());
            wlyyQuotaResult.setQkdoctorName(doctor.getName());
            wlyyQuotaResult.setQkdoctorCode(doctor.getCode());
            wlyyQuotaResult.setTown(doctor.getTown());
            wlyyQuotaResult.setTownName(doctor.getTownName());
            wlyyQuotaResult.setLevel1Type("1");
            //判断全科医生是否有解约量
            if (tjQkdoctorMap.containsKey(doctor.getCode())) {
                wlyyQuotaResult.setResult(tjQkdoctorMap.get(doctor.getCode()) + "");
            } else {
                wlyyQuotaResult.setResult("0");
            }
            wlyyQuotaResultDao.save(wlyyQuotaResult);
            String city=Constant.city;
            String cityName=Constant.cityName;
            String town=doctor.getTown();
            String townName=doctor.getTownName();
            String org=doctor.getHospital();
            String orgName=doctor.getHosptialName();
            String doctorCode=doctor.getCode();
            String doctorName=doctor.getName();
            String doctorJob=doctor.getJob();
            String level="1";
            String key=doctor.getCode();
            save(tjQkdoctorMap, key, city, cityName, town, townName, org, orgName, doctorCode, doctorName, doctorJob, level);
        }
        //保存机构的解约统计
        for (Map.Entry<String, Hospital> entry : hospitalsMap.entrySet()) {
            Hospital hospital = hospitalsMap.get(entry.getKey());//得到全科医生
            WlyyQuotaResult wlyyQuotaResult = new WlyyQuotaResult();
            wlyyQuotaResult.setDel("1");
            wlyyQuotaResult.setOrgCode(hospital.getCode());
            wlyyQuotaResult.setOrgName(hospital.getName());
            wlyyQuotaResult.setCity(hospital.getCity());
            wlyyQuotaResult.setCityName(hospital.getCityName());
            wlyyQuotaResult.setTown(hospital.getTown());
            wlyyQuotaResult.setTownName(hospital.getTownName());
            wlyyQuotaResult.setQuatoCode(wlyyQuota.getId());
            wlyyQuotaResult.setQuatoName(wlyyQuota.getName());
            wlyyQuotaResult.setQuotaDate(getYesterday());
            wlyyQuotaResult.setCreateTime(new Date());
            wlyyQuotaResult.setLevel1Type("2");
            //判断全科医生是否有解约量
            if (tjOrgMap.containsKey(hospital.getCode())) {
                wlyyQuotaResult.setResult(tjOrgMap.get(hospital.getCode()) + "");
            } else {
                wlyyQuotaResult.setResult("0");
            }
            wlyyQuotaResultDao.save(wlyyQuotaResult);
            String city=Constant.city;
            String cityName=Constant.cityName;
            String town=hospital.getTown();
            String townName=hospital.getTownName();
            String org=hospital.getCode();
            String orgName=hospital.getName();
            String doctorCode="";
            String doctorName="";
            String doctorJob="";
            String level="2";
            String key=hospital.getCode();
            save(tjOrgMap, key, city, cityName, town, townName, org, orgName, doctorCode, doctorName, doctorJob, level);
        }
        //保存区级的解约统计
        for (Map.Entry<String, Town> entry : townsMap.entrySet()) {
            Town town = townsMap.get(entry.getKey());//得到全科医生
            WlyyQuotaResult wlyyQuotaResult = new WlyyQuotaResult();
            wlyyQuotaResult.setDel("1");
            wlyyQuotaResult.setCity(town.getCity());
            wlyyQuotaResult.setCityName(Constant.cityName);
            wlyyQuotaResult.setTown(town.getCode());
            wlyyQuotaResult.setTownName(town.getName());
            wlyyQuotaResult.setQuatoCode(wlyyQuota.getId());
            wlyyQuotaResult.setQuatoName(wlyyQuota.getName());
            wlyyQuotaResult.setQuotaDate(getYesterday());
            wlyyQuotaResult.setCreateTime(new Date());
            wlyyQuotaResult.setLevel1Type("3");
            //判断全科医生是否有解约量
            if (tjTownMap.containsKey(town.getCode())) {
                wlyyQuotaResult.setResult(tjTownMap.get(town.getCode()) + "");
            } else {
                wlyyQuotaResult.setResult("0");
            }
            wlyyQuotaResultDao.save(wlyyQuotaResult);
            Town townObj = townsMap.get(entry.getKey());//得到全科医生
            String city=Constant.city;
            String cityName=Constant.cityName;
            String town=townObj.getCode();
            String townName=townObj.getName();
            String org="";
            String orgName="";
            String doctorCode="";
            String doctorName="";
            String doctorJob="";
            String level="3";
            String key=townObj.getCode();
            save(tjTownMap, key, city, cityName, town, townName, org, orgName, doctorCode, doctorName, doctorJob, level);
        }
        //保存市级的统计
        {
@ -246,6 +205,40 @@ public class UnSignJob implements Job {
        quartzJobLogDao.save(quartzJobLog);
    }
    private void compute(Map<String, Long> tjQkdoctorMap, String doctorCode) {
        if (tjQkdoctorMap.containsKey(doctorCode)) {
            tjQkdoctorMap.put(doctorCode, tjQkdoctorMap.get(doctorCode) + 1);
        } else {
            tjQkdoctorMap.put(doctorCode, 1L);
        }
    }
    private void save(Map<String, Long> countMap, String key, String city, String cityName, String town, String townName, String org, String orgName, String doctorCode, String doctorName, String doctorJob, String level) {
        WlyyQuotaResult wlyyQuotaResult = new WlyyQuotaResult();
        wlyyQuotaResult.setDel("1");
        wlyyQuotaResult.setOrgCode(org);
        wlyyQuotaResult.setOrgName(orgName);
        wlyyQuotaResult.setCity(city);
        wlyyQuotaResult.setCityName(cityName);
        wlyyQuotaResult.setQuatoCode(wlyyQuota.getId());
        wlyyQuotaResult.setQuatoName(wlyyQuota.getName());
        wlyyQuotaResult.setQuotaDate(getYesterday());
        wlyyQuotaResult.setCreateTime(new Date());
        wlyyQuotaResult.setQkdoctorJobName(doctorJob);
        wlyyQuotaResult.setQkdoctorName(doctorName);
        wlyyQuotaResult.setQkdoctorCode(doctorCode);
        wlyyQuotaResult.setTown(town);
        wlyyQuotaResult.setTownName(townName);
        wlyyQuotaResult.setLevel1Type(level);
        //判断全科医生是否有解约量
        if (countMap.containsKey(key)) {
            wlyyQuotaResult.setResult(countMap.get(key) + "");
        } else {
            wlyyQuotaResult.setResult("0");
        }
        wlyyQuotaResultDao.save(wlyyQuotaResult);
    }
    public String getYesterday() {
        return yesterday;
    }

+ 73 - 82
src/main/java/com/yihu/wlyy/job/WaitSignJob.java

@ -107,11 +107,7 @@ public class WaitSignJob implements Job {
        for (SignFamily signFamily : signFamilys) {
            String doctorCode = signFamily.getDoctor();//得到待签约中全科医生的code
            //统计团队
            if (tjQkdoctorMap.containsKey(doctorCode)) {
                tjQkdoctorMap.put(doctorCode, tjQkdoctorMap.get(doctorCode) + 1);
            } else {
                tjQkdoctorMap.put(doctorCode, 1L);
            }
            compute(tjQkdoctorMap, doctorCode);
            //判断医生属于哪个机构
            Doctor doctor = doctorsMap.get(doctorCode);
            if(doctor==null){
@ -122,26 +118,14 @@ public class WaitSignJob implements Job {
            if(!"00".equals(orgCode.substring(8))){
                //统计站
                String orgCodeTemp=orgCode.substring(0,8)+"00";
                if (tjOrgMap.containsKey(orgCodeTemp)) {
                    tjOrgMap.put(orgCodeTemp, tjOrgMap.get(orgCodeTemp) + 1);
                } else {
                    tjOrgMap.put(orgCodeTemp, 1L);
                }
                compute(tjOrgMap, orgCodeTemp);
            }else{
                //统计社区
                if (tjOrgMap.containsKey(orgCode)) {
                    tjOrgMap.put(orgCode, tjOrgMap.get(orgCode) + 1);
                } else {
                    tjOrgMap.put(orgCode, 1L);
                }
                compute(tjOrgMap, orgCode);
            }
            String townCode = doctor.getTown();
            //统计区
            if (tjTownMap.containsKey(townCode)) {
                tjTownMap.put(townCode, tjTownMap.get(townCode) + 1);
            } else {
                tjTownMap.put(townCode, 1L);
            }
            compute(tjTownMap, townCode);
            //统计市
            cityCount++;
        }
@ -149,75 +133,50 @@ public class WaitSignJob implements Job {
        //保存全科医生的待签约统计
        for (Map.Entry<String, Doctor> entry : doctorsMap.entrySet()) {
            Doctor doctor = doctorsMap.get(entry.getKey());//得到全科医生
            WlyyQuotaResult wlyyQuotaResult = new WlyyQuotaResult();
            wlyyQuotaResult.setDel("1");
            wlyyQuotaResult.setOrgCode(doctor.getHospital());
            wlyyQuotaResult.setOrgName(doctor.getHosptialName());
            wlyyQuotaResult.setCity(doctor.getCity());
            wlyyQuotaResult.setCityName(doctor.getCityName());
            wlyyQuotaResult.setQuatoCode(wlyyQuota.getId());
            wlyyQuotaResult.setQuatoName(wlyyQuota.getName());
            wlyyQuotaResult.setQuotaDate(getYesterday());
            wlyyQuotaResult.setCreateTime(new Date());
            wlyyQuotaResult.setQkdoctorJobName(doctor.getJobName());
            wlyyQuotaResult.setQkdoctorName(doctor.getName());
            wlyyQuotaResult.setQkdoctorCode(doctor.getCode());
            wlyyQuotaResult.setTown(doctor.getTown());
            wlyyQuotaResult.setTownName(doctor.getTownName());
            wlyyQuotaResult.setLevel1Type("1");
            //判断全科医生是否有待签约量
            if (tjQkdoctorMap.containsKey(doctor.getCode())) {
                wlyyQuotaResult.setResult(tjQkdoctorMap.get(doctor.getCode()) + "");
            } else {
                wlyyQuotaResult.setResult("0");
            }
            wlyyQuotaResultDao.save(wlyyQuotaResult);
            String city=Constant.city;
            String cityName=Constant.cityName;
            String town=doctor.getTown();
            String townName=doctor.getTownName();
            String org=doctor.getHospital();
            String orgName=doctor.getHosptialName();
            String doctorCode=doctor.getCode();
            String doctorName=doctor.getName();
            String doctorJob=doctor.getJob();
            String level="1";
            String key=doctor.getCode();
            save(tjQkdoctorMap, key, city, cityName, town, townName, org, orgName, doctorCode, doctorName, doctorJob, level);
        }
        //保存机构的待签约统计
        for (Map.Entry<String, Hospital> entry : hospitalsMap.entrySet()) {
            Hospital hospital = hospitalsMap.get(entry.getKey());//得到全科医生
            WlyyQuotaResult wlyyQuotaResult = new WlyyQuotaResult();
            wlyyQuotaResult.setDel("1");
            wlyyQuotaResult.setOrgCode(hospital.getCode());
            wlyyQuotaResult.setOrgName(hospital.getName());
            wlyyQuotaResult.setCity(hospital.getCity());
            wlyyQuotaResult.setCityName(hospital.getCityName());
            wlyyQuotaResult.setTown(hospital.getTown());
            wlyyQuotaResult.setTownName(hospital.getTownName());
            wlyyQuotaResult.setQuatoCode(wlyyQuota.getId());
            wlyyQuotaResult.setQuatoName(wlyyQuota.getName());
            wlyyQuotaResult.setQuotaDate(getYesterday());
            wlyyQuotaResult.setCreateTime(new Date());
            wlyyQuotaResult.setLevel1Type("2");
            //判断全科医生是否有待签约量
            if (tjOrgMap.containsKey(hospital.getCode())) {
                wlyyQuotaResult.setResult(tjOrgMap.get(hospital.getCode()) + "");
            } else {
                wlyyQuotaResult.setResult("0");
            }
            wlyyQuotaResultDao.save(wlyyQuotaResult);
            String city=Constant.city;
            String cityName=Constant.cityName;
            String town=hospital.getTown();
            String townName=hospital.getTownName();
            String org=hospital.getCode();
            String orgName=hospital.getName();
            String doctorCode="";
            String doctorName="";
            String doctorJob="";
            String level="2";
            String key=hospital.getCode();
            save(tjOrgMap, key, city, cityName, town, townName, org, orgName, doctorCode, doctorName, doctorJob, level);
        }
        //保存区级的待签约统计
        for (Map.Entry<String, Town> entry : townsMap.entrySet()) {
            Town town = townsMap.get(entry.getKey());//得到全科医生
            WlyyQuotaResult wlyyQuotaResult = new WlyyQuotaResult();
            wlyyQuotaResult.setDel("1");
            wlyyQuotaResult.setCity(town.getCity());
            wlyyQuotaResult.setCityName(Constant.cityName);
            wlyyQuotaResult.setTown(town.getCode());
            wlyyQuotaResult.setTownName(town.getName());
            wlyyQuotaResult.setQuatoCode(wlyyQuota.getId());
            wlyyQuotaResult.setQuatoName(wlyyQuota.getName());
            wlyyQuotaResult.setQuotaDate(getYesterday());
            wlyyQuotaResult.setCreateTime(new Date());
            wlyyQuotaResult.setLevel1Type("3");
            //判断全科医生是否有待签约量
            if (tjTownMap.containsKey(town.getCode())) {
                wlyyQuotaResult.setResult(tjTownMap.get(town.getCode()) + "");
            } else {
                wlyyQuotaResult.setResult("0");
            }
            wlyyQuotaResultDao.save(wlyyQuotaResult);
            Town townObj = townsMap.get(entry.getKey());//得到全科医生
            String city=Constant.city;
            String cityName=Constant.cityName;
            String town=townObj.getCode();
            String townName=townObj.getName();
            String org="";
            String orgName="";
            String doctorCode="";
            String doctorName="";
            String doctorJob="";
            String level="3";
            String key=townObj.getCode();
            save(tjTownMap, key, city, cityName, town, townName, org, orgName, doctorCode, doctorName, doctorJob, level);
        }
        //保存市级的统计
        {
@ -245,6 +204,38 @@ public class WaitSignJob implements Job {
        quartzJobLogDao.save(quartzJobLog);
    }
    private void compute(Map<String, Long> tjQkdoctorMap, String doctorCode) {
        if (tjQkdoctorMap.containsKey(doctorCode)) {
            tjQkdoctorMap.put(doctorCode, tjQkdoctorMap.get(doctorCode) + 1);
        } else {
            tjQkdoctorMap.put(doctorCode, 1L);
        }
    }
    private void save(Map<String, Long> countMap, String key, String city, String cityName, String town, String townName, String org, String orgName, String doctorCode, String doctorName, String doctorJob, String level) {
        WlyyQuotaResult wlyyQuotaResult = new WlyyQuotaResult();
        wlyyQuotaResult.setDel("1");
        wlyyQuotaResult.setOrgCode(org);
        wlyyQuotaResult.setOrgName(orgName);
        wlyyQuotaResult.setCity(city);
        wlyyQuotaResult.setCityName(cityName);
        wlyyQuotaResult.setQuatoCode(wlyyQuota.getId());
        wlyyQuotaResult.setQuatoName(wlyyQuota.getName());
        wlyyQuotaResult.setQuotaDate(getYesterday());
        wlyyQuotaResult.setCreateTime(new Date());
        wlyyQuotaResult.setQkdoctorJobName(doctorJob);
        wlyyQuotaResult.setQkdoctorName(doctorName);
        wlyyQuotaResult.setQkdoctorCode(doctorCode);
        wlyyQuotaResult.setTown(town);
        wlyyQuotaResult.setTownName(townName);
        wlyyQuotaResult.setLevel1Type(level);
        //判断全科医生是否有待签约量
        if (countMap.containsKey(key)) {
            wlyyQuotaResult.setResult(countMap.get(key) + "");
        } else {
            wlyyQuotaResult.setResult("0");
        }
        wlyyQuotaResultDao.save(wlyyQuotaResult);
    }
    public String getYesterday() {
        return yesterday;
    }

+ 5 - 4
src/main/java/com/yihu/wlyy/repository/consult/ConsultTeamDao.java

@ -132,13 +132,14 @@ public interface ConsultTeamDao extends PagingAndSortingRepository<ConsultTeam,
	@Query("SELECT SUM(a.doctorRead) FROM ConsultTeam a, ConsultTeamDoctor b WHERE a.consult = b.consult AND b.to = ?1 AND a.del = '1' AND a.status = 0")
	int amountAllDoctorUnread(String doctor);
	// 查询带未读数量的所有咨询列表
	@Query("SELECT a FROM ConsultTeam a, ConsultTeamDoctor b WHERE a.consult = b.consult AND b.to = ?1 AND a.status = 0")
	// 查询带未读数量的所有健康咨询列表
	@Query("SELECT a FROM ConsultTeam a, ConsultTeamDoctor b WHERE a.consult = b.consult AND b.to = ?1 AND a.status = 0 and a.type< 3")
	Page<ConsultTeam> findListByUnreadDoctor(String doctor, Pageable pageRequest);
	// 查询带未读数量的所有咨询列表
	@Query("SELECT a FROM ConsultTeam a, ConsultTeamDoctor b WHERE a.consult = b.consult AND b.to = ?1 and a.id < ?2 AND a.status = 0")
	// 查询带未读数量的所有健康咨询列表
	@Query("SELECT a FROM ConsultTeam a, ConsultTeamDoctor b WHERE a.consult = b.consult AND b.to = ?1 and a.id < ?2 AND a.status = 0 and a.type<3")
	Page<ConsultTeam> findListByUnreadDoctor(String doctor, long id, Pageable pageRequest);
	//找出当日的咨询量
	@Query("SELECT a FROM ConsultTeam a WHERE a.type=2 and unix_timestamp(a.czrq)>=unix_timestamp(?1) and unix_timestamp(a.czrq)<unix_timestamp(?2) ")
	List<ConsultTeam> findByCzrqyYesterday(String yesterday,String now);

+ 6 - 5
src/main/java/com/yihu/wlyy/repository/doctor/DoctorDao.java

@ -75,13 +75,13 @@ public interface DoctorDao extends PagingAndSortingRepository<Doctor, Long>, Jpa
    @Query("select p from DoctorPatientGroupInfo p where p.patient=?1 and p.doctor = ?2")
    DoctorPatientGroupInfo findGroup(String user, String doctor);
    @Query("from Doctor p where p.hospital=?1 and p.level = ?2 and p.isCertified=1 and status=1 ")
    @Query("from Doctor p where p.hospital=?1 and p.level = ?2 and p.iscertified=1 and status=1 ")
    List<Doctor> getDoctorCombobxByHospital(String hospital, int type);
    @Query("from Doctor p where p.level = 1 and p.isCertified=1 and p.status=1 ")
    @Query("from Doctor p where p.level = 1 and p.iscertified=1 and p.status=1 ")
    Page<Doctor> findDoctor1ByParient(Pageable pageRequest);
    @Query("from Doctor p where p.level = 1 and p.isCertified=1 and p.status=1 and p.code != ?1")
    @Query("from Doctor p where p.level = 1 and p.iscertified=1 and p.status=1 and p.code != ?1")
    Page<Doctor> findDoctor1ByParient(String code, Pageable pageRequest);
    @Query("select d from Doctor d, DoctorTeamMember dtm where d.code=dtm.memberCode and dtm.signType='1' and dtm.team=?1  and dtm.del='1'")
@ -105,10 +105,10 @@ public interface DoctorDao extends PagingAndSortingRepository<Doctor, Long>, Jpa
    List<Doctor> findAllJKDoctot();
    @Query("select d from Doctor d where d.del = 1 and d.isCertified=1")
    @Query("select d from Doctor d where d.del = 1 ")
    List<Doctor> findAllCertifiedDoctors();
    @Query("select p from Doctor p where p.level in (2,3) and p.del=1 and p.isCertified=1")
    @Query("select p from Doctor p where p.level in (2,3) and p.del=1 and p.iscertified=1")
    List<Doctor> findAllQKDoctotAndJKDoctor();
    @Query(" select p from Doctor p where p.hospital =?1 and p.level =?2 and p.del=1  ")
@ -117,4 +117,5 @@ public interface DoctorDao extends PagingAndSortingRepository<Doctor, Long>, Jpa
    @Modifying
    @Query("update Doctor set idcard = ?2 where code = ?1")
    int updateIdcard(String doctor, String idcard);
}

+ 7 - 1
src/main/java/com/yihu/wlyy/repository/organization/HospitalDeptDao.java

@ -5,14 +5,20 @@
 *******************************************************************************/
package com.yihu.wlyy.repository.organization;
import com.yihu.wlyy.entity.address.Hospital;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.domain.Specification;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
import com.yihu.wlyy.entity.organization.HospitalDept;
import com.yihu.wlyy.entity.address.Province;
public interface HospitalDeptDao extends PagingAndSortingRepository<Province, Long> {
public interface HospitalDeptDao  extends PagingAndSortingRepository<HospitalDept, Long>,JpaSpecificationExecutor<HospitalDept> {
	// 根據CODE查詢科室名称
	@Query("select p from HospitalDept p where p.code = ?1")
	HospitalDept findByCode(String code);
}

+ 44 - 0
src/main/java/com/yihu/wlyy/service/app/account/DoctorInfoService.java

@ -576,4 +576,48 @@ public class DoctorInfoService extends BaseService {
        }
        doctor.setIsFamous(status);
    }
    public Page<Doctor> findDoctorByDept(String dept, String key, int page, int pageSize) {
        if (pageSize <= 0) {
            pageSize = 10;
        }
        if (page <= 0) {
            page = 1;
        }
        // 排序
        Sort sort = new Sort(Sort.Direction.DESC, "name");
        // 分页信息
        PageRequest pageRequest = new PageRequest(page - 1, pageSize, sort);
        // 查询全部
        Map<String, SearchFilter> filters = new HashMap<String, SearchFilter>();
        if (StringUtils.isNotEmpty(key)) {
            filters.put("name", new SearchFilter("name", SearchFilter.Operator.LIKE, key));
        }
        filters.put("dept", new SearchFilter("dept", SearchFilter.Operator.EQ, dept));
        Specification<Doctor> spec = DynamicSpecifications.bySearchFilter(filters.values(), Doctor.class);
        return doctorDao.findAll(spec, pageRequest);
    }
    public Page<Doctor> findFamousDoctor(String key, int page, int pageSize) {
        if (pageSize <= 0) {
            pageSize = 10;
        }
        if (page <= 0) {
            page = 1;
        }
        // 排序
        Sort sort = new Sort(Sort.Direction.DESC, "name");
        // 分页信息
        PageRequest pageRequest = new PageRequest(page - 1, pageSize, sort);
        // 查询全部
        Map<String, SearchFilter> filters = new HashMap<String, SearchFilter>();
        if (StringUtils.isNotEmpty(key)) {
            filters.put("name", new SearchFilter("name", SearchFilter.Operator.LIKE, key));
        }
        filters.put("isFamous", new SearchFilter("isFamous", SearchFilter.Operator.EQ, 1));
        Specification<Doctor> spec = DynamicSpecifications.bySearchFilter(filters.values(), Doctor.class);
        return doctorDao.findAll(spec, pageRequest);
    }
}

+ 54 - 0
src/main/java/com/yihu/wlyy/service/app/hospital/HospitalDeptService.java

@ -0,0 +1,54 @@
package com.yihu.wlyy.service.app.hospital;
import com.yihu.wlyy.entity.address.Hospital;
import com.yihu.wlyy.entity.organization.HospitalDept;
import com.yihu.wlyy.repository.organization.HospitalDeptDao;
import com.yihu.wlyy.service.BaseService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
import org.springframework.data.jpa.domain.Specification;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import org.springside.modules.persistence.DynamicSpecifications;
import org.springside.modules.persistence.SearchFilter;
import java.util.HashMap;
import java.util.Map;
/**
 * Created by Administrator on 2016.09.20.
 */
@Component
@Transactional(rollbackFor = Exception.class)
public class HospitalDeptService extends BaseService {
    @Autowired
    private HospitalDeptDao hospitalDeptDao;
    public Page<HospitalDept> findDeptByHsoptail(String hospital, String key, long id, int pageSize) {
        if (pageSize <= 0) {
            pageSize = 10;
        }
        // 排序
        Sort sort = new Sort(Sort.Direction.DESC, "id");
        // 分页信息
        Pageable pageRequest = new PageRequest(0, pageSize, sort);
        // 查询全部
        Map<String, SearchFilter> filters = new HashMap<String, SearchFilter>();
        if (StringUtils.isNotEmpty(key)) {
            filters.put("name", new SearchFilter("name", SearchFilter.Operator.LIKE, key));
        }
        filters.put("hospital", new SearchFilter("hospital", SearchFilter.Operator.EQ,hospital));
        if (id > 0) {
            filters.put("id", new SearchFilter("id", SearchFilter.Operator.LT, id));
        }
        // 未作废
        filters.put("del", new SearchFilter("del", SearchFilter.Operator.EQ, "1"));
        Specification<HospitalDept> spec = DynamicSpecifications.bySearchFilter(filters.values(), HospitalDept.class);
        return hospitalDeptDao.findAll(spec,pageRequest);
    }
}

+ 2 - 0
src/main/java/com/yihu/wlyy/service/app/message/MessageService.java

@ -76,11 +76,13 @@ public class MessageService extends BaseService {
		Sort sort = new Sort(Direction.DESC, "id");
		// 分页信息
		PageRequest pageRequest = new PageRequest(0, pagesize, sort);
			//健康咨询
		if (id > 0) {
			return consultTeamDao.findListByUnreadDoctor(doctor, id, pageRequest);
		} else {
			return consultTeamDao.findListByUnreadDoctor(doctor, pageRequest);
		}
	}
	/**

+ 1 - 1
src/main/java/com/yihu/wlyy/service/app/scheduling/DoctorWorkTimeService.java

@ -1,7 +1,7 @@
package com.yihu.wlyy.service.app.scheduling;
import com.yihu.wlyy.entity.doctor.schedule.DoctorFamousConsultTimesRemain;
import com.yihu.wlyy.entity.doctor.profile.Doctor;
import com.yihu.wlyy.entity.doctor.schedule.DoctorFamousConsultTimesRemain;
import com.yihu.wlyy.entity.doctor.schedule.WlyyDoctorWorkTime;
import com.yihu.wlyy.entity.doctor.schedule.WlyyDoctorWorkWeek;
import com.yihu.wlyy.repository.doctor.DoctorDao;

+ 10 - 23
src/main/java/com/yihu/wlyy/service/common/account/DoctorService.java

@ -10,6 +10,7 @@ import org.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
import org.springframework.data.jpa.domain.Specification;
import org.springframework.stereotype.Component;
@ -23,6 +24,7 @@ import com.yihu.wlyy.entity.security.Token;
import com.yihu.wlyy.repository.doctor.DoctorDao;
import com.yihu.wlyy.util.EncodesUtil;
import java.util.Calendar;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@ -77,31 +79,16 @@ public class DoctorService extends TokenService {
	}
	public Page<Doctor> famousDoctorList(String name, long id, int pagesize) {
		if (pagesize <= 0) {
			pagesize = 10;
		}
		// 排序
		Sort sort = new Sort(Sort.Direction.ASC, "id");
	public Page<Doctor> famousDoctorList(String name, int page, int pagesize) {
		// 分页信息
		PageRequest pageRequest = new PageRequest(0, pagesize, sort);
		// 设置查询条件
		Map<String, SearchFilter> filters = new HashMap<String, SearchFilter>();
		if (StringUtils.isNoneEmpty(name)) {
			filters.put("name", new SearchFilter("name", SearchFilter.Operator.LIKE, "%"+name+"%"));
		}
		if (id > 0) {
			filters.put("id", new SearchFilter("id", SearchFilter.Operator.GT, id));
		}
		//设置过滤条件是名医
		//filters.put("level", new SearchFilter("level", SearchFilter.Operator.EQ, level));
		Pageable pageRequest = new PageRequest(page-1, pagesize);
		//设置过滤条件是次数大于零
		//filters.put("level", new SearchFilter("level", SearchFilter.Operator.EQ, level));
		Calendar calendar = Calendar.getInstance();
		int week = calendar.get(Calendar.DAY_OF_WEEK) - 1;
		// 未作废
		filters.put("status", new SearchFilter("status", SearchFilter.Operator.EQ, 1));
		Specification<Doctor> spec = DynamicSpecifications.bySearchFilter(filters.values(), Doctor.class);
		return doctorDao.findAll(spec, pageRequest);
		if (week == 0) {
			week = 7;
		}
		return null;
	}
}

+ 148 - 2
src/main/java/com/yihu/wlyy/web/doctor/account/DoctorController.java

@ -6,12 +6,14 @@ import java.util.Map;
import com.yihu.wlyy.entity.address.Hospital;
import com.yihu.wlyy.entity.doctor.profile.Doctor;
import com.yihu.wlyy.entity.doctor.profile.DoctorComment;
import com.yihu.wlyy.entity.organization.HospitalDept;
import com.yihu.wlyy.entity.patient.Patient;
import com.yihu.wlyy.entity.patient.SignFamily;
import com.yihu.wlyy.repository.patient.PatientDao;
import com.yihu.wlyy.repository.demographic.TblBasicDao;
import com.yihu.wlyy.service.app.account.PatientInfoService;
import com.yihu.wlyy.service.app.consult.ConsultTeamService;
import com.yihu.wlyy.service.app.hospital.HospitalDeptService;
import com.yihu.wlyy.service.common.account.PatientService;
import com.yihu.wlyy.util.*;
import org.apache.commons.lang3.StringUtils;
@ -68,6 +70,8 @@ public class DoctorController extends BaseController {
    private PatientDao patientDao;
    @Autowired
    private TblBasicDao tblBasicDao;
    @Autowired
    private HospitalDeptService hospitalDeptService;
    /**
     * 社区医院下医生列表查询接口 没分页
@ -225,7 +229,145 @@ public class DoctorController extends BaseController {
        }
    }
    /**
     * 根据机构查找科室
     * @param hospital 机构code
     * @param key 科室名称
     * @param id 主键
     * @param pagesize 每页显示条数
     * @return
     */
    @RequestMapping(value = "findDeptByHsoptail")
    @ResponseBody
    public String findDeptByHsoptail(
            String hospital,
            @RequestParam(required = false) String key,
            long id,
            int pagesize) {
        try {
            JSONArray array = new JSONArray();
            Page<HospitalDept> list = hospitalDeptService.findDeptByHsoptail(hospital, key, id, pagesize);
            if (list != null) {
                for (HospitalDept dept : list) {
                    if (hospital == null) {
                        continue;
                    }
                    JSONObject json = new JSONObject();
                    json.put("id", dept.getId());
                    // 科室标识
                    json.put("code", dept.getCode());
                    // 科室名称
                    json.put("name", dept.getName());
                    array.put(json);
                }
            }
            return write(200, "获取科室列表成功!", "list", array);
        } catch (Exception e) {
            error(e);
            return error(-1, "获取科室列表失败!");
        }
    }
    /**
     * 根据科室查找医生
     * @param dept 科室code
     * @param key 医生名称
     * @param page 当前页
     * @param pagesize 每页显示条数
     * @return
     */
    @RequestMapping(value = "findDoctorByDept")
    @ResponseBody
    public String findDoctorByDept(
            String dept,
            @RequestParam(required = false) String key,
            int page,
            int pagesize) {
        try {
            JSONArray array = new JSONArray();
            Page<Doctor> list = doctorInfoService.findDoctorByDept(dept, key, page, pagesize);
            if (list != null) {
                for (Doctor doctor : list) {
                    JSONObject json = new JSONObject();
                    json.put("id", doctor.getId());
                    json.put("code", doctor.getCode());
                    json.put("name", doctor.getName());
                    json.put("photo", doctor.getPhoto());
                    json.put("sex", doctor.getSex());
                    String sexName = "";
                    switch (doctor.getSex()) {
                        case 1:
                            sexName = "男";
                            break;
                        case 2:
                            sexName = "女";
                            break;
                    }
                    json.put("sexName", sexName);
                    json.put("job", doctor.getJob());
                    json.put("jobName", doctor.getJobName());
                    json.put("hospital", doctor.getHospital());
                    json.put("hospitalName", doctor.getHosptialName());
                    json.put("dept", doctor.getDept());
                    json.put("deptName", doctor.getDeptName());
                    array.put(json);
                }
            }
            return write(200, "获取科室列表成功!", "list", array);
        } catch (Exception e) {
            error(e);
            return error(-1, "获取科室列表失败!");
        }
    }
    /**
     * 名医列表
     * @param key 医生名称
     * @param page 当前页
     * @param pagesize 每页显示条数
     * @return
     */
    @RequestMapping(value = "findFamousDoctor")
    @ResponseBody
    public String findFamousDoctor(
            @RequestParam(required = false) String key,
            int page,
            int pagesize) {
        try {
            JSONArray array = new JSONArray();
            Page<Doctor> list = doctorInfoService.findFamousDoctor(key, page, pagesize);
            if (list != null) {
                for (Doctor doctor : list) {
                    JSONObject json = new JSONObject();
                    json.put("id", doctor.getId());
                    json.put("code", doctor.getCode());
                    json.put("name", doctor.getName());
                    json.put("photo", doctor.getPhoto());
                    json.put("sex", doctor.getSex());
                    String sexName = "";
                    switch (doctor.getSex()) {
                        case 1:
                            sexName = "男";
                            break;
                        case 2:
                            sexName = "女";
                            break;
                    }
                    json.put("sexName", sexName);
                    json.put("job", doctor.getJob());
                    json.put("jobName", doctor.getJobName());
                    json.put("hospital", doctor.getHospital());
                    json.put("hospitalName", doctor.getHosptialName());
                    json.put("dept", doctor.getDept());
                    json.put("deptName", doctor.getDeptName());
                    array.put(json);
                }
            }
            return write(200, "获取科室列表成功!", "list", array);
        } catch (Exception e) {
            error(e);
            return error(-1, "获取科室列表失败!");
        }
    }
    /**
     * 修改密码
     *
@ -281,9 +423,13 @@ public class DoctorController extends BaseController {
     */
    @RequestMapping(value = "baseinfo")
    @ResponseBody
    public String baseinfo() {
    public String baseinfo(
            @RequestParam(required = false) String code) {
        try {
            Doctor temp = doctorInfoService.findDoctorByCode(getUID());
            if (StringUtils.isEmpty(code)){
                code=getUID();
            }
            Doctor temp = doctorInfoService.findDoctorByCode(code);
            if (temp != null) {
                JSONObject json = new JSONObject();
                // 设置医生手机号码

+ 5 - 56
src/main/java/com/yihu/wlyy/web/patient/consult/ConsultController.java

@ -260,12 +260,8 @@ public class ConsultController extends WeixinBaseController {
				DoctorStatisticsTask.getInstance(doctorStatisticsService).put(consult.getDoctor(), 1, 1, 0);
			}
			// 推送消息给医生
			if(type==6){
				// 推送消息给医生
				PushMsgTask.getInstance().put(consult.getDoctor(), MessageType.MESSAGE_TYPE_DOCTOR_NEW_FAMOUS_CONSULT_TEAM.D_CT_01.name(), MessageType.MESSAGE_TYPE_DOCTOR_NEW_FAMOUS_CONSULT_TEAM.名医咨询.name(), MessageType.MESSAGE_TYPE_DOCTOR_NEW_FAMOUS_CONSULT_TEAM.您有新的名医咨询.name(), consult.getConsult());
			}else{
				PushMsgTask.getInstance().put(consult.getDoctor(), MessageType.MESSAGE_TYPE_DOCTOR_NEW_CONSULT_TEAM.D_CT_01.name(), MessageType.MESSAGE_TYPE_DOCTOR_NEW_CONSULT_TEAM.指定咨询.name(), MessageType.MESSAGE_TYPE_DOCTOR_NEW_CONSULT_TEAM.您有新的指定咨询.name(), consult.getConsult());
			}
			PushMsgTask.getInstance().put(consult.getDoctor(), MessageType.MESSAGE_TYPE_DOCTOR_NEW_CONSULT_TEAM.D_CT_01.name(), MessageType.MESSAGE_TYPE_DOCTOR_NEW_CONSULT_TEAM.指定咨询.name(), MessageType.MESSAGE_TYPE_DOCTOR_NEW_CONSULT_TEAM.您有新的指定咨询.name(), consult.getConsult());
			return success("提交成功");
		} catch (Exception ex) {
			error(ex);
@ -285,7 +281,7 @@ public class ConsultController extends WeixinBaseController {
	@RequestMapping(value = "famousAdd")
	@ResponseBody
	public String famousAdd(
					  String when,
					  @RequestParam(required = false)String when,
					  String symptoms,
					  @RequestParam(required = false) String doctorCode,
					  @RequestParam(required = false) String images,
@ -351,11 +347,11 @@ public class ConsultController extends WeixinBaseController {
	@ResponseBody
	public String famousDoctorList(
									@RequestParam(required = false) String name,
									long id,
									int page,
									int pagesize) {
		try {
			JSONArray array = new JSONArray();
			Page<Doctor>list = doctorService.famousDoctorList(name, id, pagesize);
			Page<Doctor>list = doctorService.famousDoctorList(name, page, pagesize);
			if (list != null) {
				for (Doctor doctor : list) {
					if (doctor == null) {
@ -395,53 +391,6 @@ public class ConsultController extends WeixinBaseController {
		}
	}
	/**
	 * 名医主页
	 * @return
	 */
	@RequestMapping(value = "famousDoctorPage")
	@ResponseBody
	public String famousDoctorPage(
			 String doctorCode) {
		try {
			Doctor temp = doctorService.findDoctorByCode(doctorCode);
			if (temp != null) {
				JSONObject json = new JSONObject();
				// 设置医生手机号码
				json.put("mobile", temp.getMobile());
				// 设置医生标识
				json.put("code", temp.getCode());
				// 设置医生姓名
				json.put("name", temp.getName());
				// 设置医生头像
				json.put("photo", CommonUtil.getPhoneUrl(temp.getPhoto()));
				// 设置医生性别
				json.put("sex", temp.getSex());
				// 设置省名称
				json.put("provinceName", temp.getProvinceName());
				// 设置城市名称
				json.put("cityName", temp.getCityName());
				// 设置医院名称
				json.put("hospitalName", temp.getHosptialName());
				// 设置部门名称
				json.put("deptName", StringUtils.isNotEmpty(temp.getDeptName()) ? temp.getDeptName() : "");
				// 设置职称
				json.put("jobName", StringUtils.isNotEmpty(temp.getJobName()) ? temp.getJobName() : "");
				// 设置医生专长
				json.put("expertise", StringUtils.isNotEmpty(temp.getExpertise()) ? temp.getExpertise() : "");
				// 设置医生简介
				json.put("introduce", StringUtils.isNotEmpty(temp.getIntroduce()) ? temp.getIntroduce() : "");
				//doctorWorkTimeService.findDoctorWeekWorkTime()
				return write(200, "医生信息查询成功!", "data", json);
			} else {
				return error(-1, "医生信息查询失败!");
			}
		} catch (Exception e) {
			error(e);
			return invalidUserException(e, -1, "医生信息查询失败!");
		}
	}
	@RequestMapping(value = "status")
	@ResponseBody
	public String status(String consult) {