|
@ -210,7 +210,7 @@ public class StatisticsEsService {
|
|
|
List<SaveModel> vedioSaveModels = elasticsearchUtil.findDateQuotaLevel1(startDate, endDate, area, level, index, SaveModel.timeLevel_ZL,"16",null,level2_type);
|
|
|
JSONArray array = new JSONArray();
|
|
|
List<String> list = new ArrayList<>();
|
|
|
DecimalFormat decimalFormat = new DecimalFormat("#.00");
|
|
|
|
|
|
for (SaveModel saveModel:syngySaveModels){
|
|
|
if (level2_type.equals(SaveModel.OrgLevel)){
|
|
|
if (StringUtils.isNoneBlank(saveModel.getHospital())){
|
|
@ -244,7 +244,7 @@ public class StatisticsEsService {
|
|
|
if (StringUtils.isNoneBlank(saveModel.getHospital())&&code.equalsIgnoreCase(saveModel.getHospital())){
|
|
|
jsonObject.put("code",code);
|
|
|
jsonObject.put("name",saveModel.getHospitalName());
|
|
|
jsonObject.put("specialist",decimalFormat.format(saveModel.getResult1()));
|
|
|
jsonObject.put("specialist",saveModel.getResult1());
|
|
|
specialist = saveModel.getResult1();
|
|
|
break;
|
|
|
}
|
|
@ -252,7 +252,7 @@ public class StatisticsEsService {
|
|
|
if (StringUtils.isNoneBlank(saveModel.getDept())&&code.equalsIgnoreCase(saveModel.getDept())){
|
|
|
jsonObject.put("code",code);
|
|
|
jsonObject.put("name",saveModel.getDeptName());
|
|
|
jsonObject.put("specialist",decimalFormat.format(saveModel.getResult1()));
|
|
|
jsonObject.put("specialist",saveModel.getResult1());
|
|
|
specialist = saveModel.getResult1();
|
|
|
break;
|
|
|
}
|
|
@ -280,7 +280,7 @@ public class StatisticsEsService {
|
|
|
jsonObject.put("doctorJob",null);
|
|
|
}
|
|
|
jsonObject.put("doctorName",saveModel.getDoctorName());
|
|
|
jsonObject.put("specialist",decimalFormat.format(saveModel.getResult1()));
|
|
|
jsonObject.put("specialist",saveModel.getResult1());
|
|
|
specialist = saveModel.getResult1();
|
|
|
break;
|
|
|
}
|
|
@ -293,7 +293,7 @@ public class StatisticsEsService {
|
|
|
if (StringUtils.isNoneBlank(saveModel.getHospital())&&code.equalsIgnoreCase(saveModel.getHospital())){
|
|
|
jsonObject.put("code",code);
|
|
|
jsonObject.put("name",saveModel.getHospitalName());
|
|
|
jsonObject.put("synegy",decimalFormat.format(saveModel.getResult1()));
|
|
|
jsonObject.put("synegy",saveModel.getResult1());
|
|
|
synegy = saveModel.getResult1();
|
|
|
break;
|
|
|
}
|
|
@ -301,7 +301,7 @@ public class StatisticsEsService {
|
|
|
if (StringUtils.isNoneBlank(saveModel.getDept())&&code.equalsIgnoreCase(saveModel.getDept())){
|
|
|
jsonObject.put("code",code);
|
|
|
jsonObject.put("name",saveModel.getDeptName());
|
|
|
jsonObject.put("synegy",decimalFormat.format(saveModel.getResult1()));
|
|
|
jsonObject.put("synegy",saveModel.getResult1());
|
|
|
synegy = saveModel.getResult1();
|
|
|
break;
|
|
|
}
|
|
@ -328,7 +328,7 @@ public class StatisticsEsService {
|
|
|
|
|
|
jsonObject.put("doctorCode",code);
|
|
|
jsonObject.put("doctorName",saveModel.getDoctorName());
|
|
|
jsonObject.put("synegy",decimalFormat.format(saveModel.getResult1()));
|
|
|
jsonObject.put("synegy",saveModel.getResult1());
|
|
|
synegy = saveModel.getResult1();
|
|
|
break;
|
|
|
}
|
|
@ -339,7 +339,7 @@ public class StatisticsEsService {
|
|
|
if (StringUtils.isNoneBlank(saveModel.getHospital())&&code.equalsIgnoreCase(saveModel.getHospital())){
|
|
|
jsonObject.put("code",code);
|
|
|
jsonObject.put("name",saveModel.getHospitalName());
|
|
|
jsonObject.put("topic",decimalFormat.format(saveModel.getResult1()));
|
|
|
jsonObject.put("topic",saveModel.getResult1());
|
|
|
topic = saveModel.getResult1();
|
|
|
break;
|
|
|
}
|
|
@ -347,7 +347,7 @@ public class StatisticsEsService {
|
|
|
if (StringUtils.isNoneBlank(saveModel.getDept())&&code.equalsIgnoreCase(saveModel.getDept())){
|
|
|
jsonObject.put("code",code);
|
|
|
jsonObject.put("name",saveModel.getDeptName());
|
|
|
jsonObject.put("topic",decimalFormat.format(saveModel.getResult1()));
|
|
|
jsonObject.put("topic",saveModel.getResult1());
|
|
|
topic = saveModel.getResult1();
|
|
|
break;
|
|
|
}
|
|
@ -373,7 +373,7 @@ public class StatisticsEsService {
|
|
|
}
|
|
|
jsonObject.put("doctorCode",code);
|
|
|
jsonObject.put("doctorName",saveModel.getDoctorName());
|
|
|
jsonObject.put("topic",decimalFormat.format(saveModel.getResult1()));
|
|
|
jsonObject.put("topic",saveModel.getResult1());
|
|
|
topic = saveModel.getResult1();
|
|
|
break;
|
|
|
}
|
|
@ -384,7 +384,7 @@ public class StatisticsEsService {
|
|
|
if (StringUtils.isNoneBlank(saveModel.getHospital())&&code.equalsIgnoreCase(saveModel.getHospital())){
|
|
|
jsonObject.put("code",code);
|
|
|
jsonObject.put("name",saveModel.getHospitalName());
|
|
|
jsonObject.put("vedio",decimalFormat.format(saveModel.getResult1()));
|
|
|
jsonObject.put("vedio",saveModel.getResult1());
|
|
|
vedio = saveModel.getResult1();
|
|
|
break;
|
|
|
}
|
|
@ -392,7 +392,7 @@ public class StatisticsEsService {
|
|
|
if (StringUtils.isNoneBlank(saveModel.getDept())&&code.equalsIgnoreCase(saveModel.getDept())){
|
|
|
jsonObject.put("code",code);
|
|
|
jsonObject.put("name",saveModel.getDeptName());
|
|
|
jsonObject.put("vedio",decimalFormat.format(saveModel.getResult1()));
|
|
|
jsonObject.put("vedio",saveModel.getResult1());
|
|
|
vedio = saveModel.getResult1();
|
|
|
break;
|
|
|
}
|
|
@ -418,7 +418,7 @@ public class StatisticsEsService {
|
|
|
jsonObject.put("doctorJob",null);
|
|
|
}
|
|
|
jsonObject.put("doctorName",saveModel.getDoctorName());
|
|
|
jsonObject.put("vedio",decimalFormat.format(saveModel.getResult1()));
|
|
|
jsonObject.put("vedio",saveModel.getResult1());
|
|
|
vedio = saveModel.getResult1();
|
|
|
break;
|
|
|
}
|
|
@ -426,8 +426,8 @@ public class StatisticsEsService {
|
|
|
}
|
|
|
Double total1 = topic+vedio ;//图文和视频总和
|
|
|
Double total = topic+vedio+synegy+specialist;//总和
|
|
|
jsonObject.put("total1",decimalFormat.format(total1));//图文和视频总和
|
|
|
jsonObject.put("total",decimalFormat.format(total));//总和
|
|
|
jsonObject.put("total1",total1);//图文和视频总和
|
|
|
jsonObject.put("total",total);//总和
|
|
|
array.add(jsonObject);
|
|
|
}
|
|
|
object.put("excelData",array);
|
|
@ -441,39 +441,40 @@ public class StatisticsEsService {
|
|
|
//问诊量
|
|
|
JSONObject object = new JSONObject();
|
|
|
if (interval==1){
|
|
|
JSONArray array = dateTotalStatistics2(startDate,endDate,area,level,index,null,SaveModel.timeLevel_ZL,null);
|
|
|
JSONArray array = dateTotalStatistics3(startDate,endDate,area,level,index,null,SaveModel.timeLevel_ZL,null);
|
|
|
object.put("data",array);
|
|
|
JSONArray array1 = dateTotalStatistics2(startDate,endDate,area,level,"3","3",SaveModel.timeLevel_ZL,null);
|
|
|
JSONArray array1 = dateTotalStatistics3(startDate,endDate,area,level,"3","3",SaveModel.timeLevel_ZL,null);
|
|
|
object.put("specialistData",array1);
|
|
|
JSONArray array2 = dateTotalStatistics2(startDate,endDate,area,level,"3","1",SaveModel.timeLevel_ZL,"1");
|
|
|
JSONArray array2 = dateTotalStatistics3(startDate,endDate,area,level,"3","1",SaveModel.timeLevel_ZL,"1");
|
|
|
object.put("topicData",array2);
|
|
|
JSONArray array3 = dateTotalStatistics2(startDate,endDate,area,level,"3","2",SaveModel.timeLevel_ZL,null);
|
|
|
JSONArray array3 = dateTotalStatistics3(startDate,endDate,area,level,"3","2",SaveModel.timeLevel_ZL,null);
|
|
|
object.put("synergyData",array3);
|
|
|
JSONArray array4 = dateTotalStatistics2(startDate,endDate,area,level,"3","1",SaveModel.timeLevel_ZL,"2");
|
|
|
JSONArray array4 = dateTotalStatistics3(startDate,endDate,area,level,"3","1",SaveModel.timeLevel_ZL,"2");
|
|
|
object.put("vedioData",array4);
|
|
|
}else if (interval==2){
|
|
|
JSONArray array = weekTotalStatistics(startDate,endDate,area,level,index,null,SaveModel.timeLevel_ZL);
|
|
|
JSONArray array = weekTotalStatisticsDf(startDate,endDate,area,level,index,null,SaveModel.timeLevel_ZL);
|
|
|
object.put("data",array);
|
|
|
JSONArray array1 = weekTotalStatistics2(startDate,endDate,area,level,"3","3",SaveModel.timeLevel_ZL,"1");
|
|
|
JSONArray array1 = weekTotalStatistics3(startDate,endDate,area,level,"3","3",SaveModel.timeLevel_ZL,"1");
|
|
|
object.put("specialistData",array1);
|
|
|
JSONArray array2 = weekTotalStatistics2(startDate,endDate,area,level,"3","1",SaveModel.timeLevel_ZL,"1");
|
|
|
JSONArray array2 = weekTotalStatistics3(startDate,endDate,area,level,"3","1",SaveModel.timeLevel_ZL,"1");
|
|
|
object.put("topicData",array2);
|
|
|
JSONArray array3 = weekTotalStatistics2(startDate,endDate,area,level,"3","2",SaveModel.timeLevel_ZL,null);
|
|
|
JSONArray array3 = weekTotalStatistics3(startDate,endDate,area,level,"3","2",SaveModel.timeLevel_ZL,null);
|
|
|
object.put("synergyData",array3);
|
|
|
JSONArray array4 = weekTotalStatistics2(startDate,endDate,area,level,"3","1",SaveModel.timeLevel_ZL,"2");
|
|
|
JSONArray array4 = weekTotalStatistics3(startDate,endDate,area,level,"3","1",SaveModel.timeLevel_ZL,"2");
|
|
|
object.put("vedioData",array4);
|
|
|
}else if (interval==3){
|
|
|
JSONArray array = monthTotalStatistics2(startDate,endDate,area,level,index,null,SaveModel.timeLevel_ZL,null);
|
|
|
JSONArray array = monthTotalStatistics3(startDate,endDate,area,level,index,null,SaveModel.timeLevel_ZL,null);
|
|
|
object.put("data",array);
|
|
|
JSONArray array1 = monthTotalStatistics2(startDate,endDate,area,level,"3","3",SaveModel.timeLevel_ZL,"1");
|
|
|
JSONArray array1 = monthTotalStatistics3(startDate,endDate,area,level,"3","3",SaveModel.timeLevel_ZL,"1");
|
|
|
object.put("specialistData",array1);
|
|
|
JSONArray array2 = monthTotalStatistics2(startDate,endDate,area,level,"3","1",SaveModel.timeLevel_ZL,"1");
|
|
|
JSONArray array2 = monthTotalStatistics3(startDate,endDate,area,level,"3","1",SaveModel.timeLevel_ZL,"1");
|
|
|
object.put("topicData",array2);
|
|
|
JSONArray array3 = monthTotalStatistics2(startDate,endDate,area,level,"3","2",SaveModel.timeLevel_ZL,null);
|
|
|
JSONArray array3 = monthTotalStatistics3(startDate,endDate,area,level,"3","2",SaveModel.timeLevel_ZL,null);
|
|
|
object.put("synergyData",array3);
|
|
|
JSONArray array4 = monthTotalStatistics2(startDate,endDate,area,level,"3","1",SaveModel.timeLevel_ZL,"2");
|
|
|
JSONArray array4 = monthTotalStatistics3(startDate,endDate,area,level,"3","1",SaveModel.timeLevel_ZL,"2");
|
|
|
object.put("vedioData",array4);
|
|
|
}
|
|
|
DecimalFormat decimalFormat = new DecimalFormat("0.00");
|
|
|
if (StringUtils.isNoneBlank(level2_type)){
|
|
|
|
|
|
//问诊量表格
|
|
@ -521,7 +522,7 @@ public class StatisticsEsService {
|
|
|
if (StringUtils.isNoneBlank(saveModel.getHospital())&&code.equalsIgnoreCase(saveModel.getHospital())){
|
|
|
jsonObject.put("code",code);
|
|
|
jsonObject.put("name",saveModel.getHospitalName());
|
|
|
jsonObject.put("specialist",saveModel.getResult1());
|
|
|
jsonObject.put("specialist",decimalFormat.format(saveModel.getResult1()));
|
|
|
specialist = saveModel.getResult1();
|
|
|
break;
|
|
|
}
|
|
@ -529,7 +530,7 @@ public class StatisticsEsService {
|
|
|
if (StringUtils.isNoneBlank(saveModel.getDept())&&code.equalsIgnoreCase(saveModel.getDept())){
|
|
|
jsonObject.put("code",code);
|
|
|
jsonObject.put("name",saveModel.getDeptName());
|
|
|
jsonObject.put("specialist",saveModel.getResult1());
|
|
|
jsonObject.put("specialist",decimalFormat.format(saveModel.getResult1()));
|
|
|
specialist = saveModel.getResult1();
|
|
|
break;
|
|
|
}
|
|
@ -557,7 +558,7 @@ public class StatisticsEsService {
|
|
|
jsonObject.put("doctorJob",null);
|
|
|
}
|
|
|
jsonObject.put("doctorName",saveModel.getDoctorName());
|
|
|
jsonObject.put("specialist",saveModel.getResult1());
|
|
|
jsonObject.put("specialist",decimalFormat.format(saveModel.getResult1()));
|
|
|
specialist = saveModel.getResult1();
|
|
|
break;
|
|
|
}
|
|
@ -570,7 +571,7 @@ public class StatisticsEsService {
|
|
|
if (StringUtils.isNoneBlank(saveModel.getHospital())&&code.equalsIgnoreCase(saveModel.getHospital())){
|
|
|
jsonObject.put("code",code);
|
|
|
jsonObject.put("name",saveModel.getHospitalName());
|
|
|
jsonObject.put("synegy",saveModel.getResult1());
|
|
|
jsonObject.put("synegy",decimalFormat.format(saveModel.getResult1()));
|
|
|
synegy = saveModel.getResult1();
|
|
|
break;
|
|
|
}
|
|
@ -578,7 +579,7 @@ public class StatisticsEsService {
|
|
|
if (StringUtils.isNoneBlank(saveModel.getDept())&&code.equalsIgnoreCase(saveModel.getDept())){
|
|
|
jsonObject.put("code",code);
|
|
|
jsonObject.put("name",saveModel.getDeptName());
|
|
|
jsonObject.put("synegy",saveModel.getResult1());
|
|
|
jsonObject.put("synegy",decimalFormat.format(saveModel.getResult1()));
|
|
|
synegy = saveModel.getResult1();
|
|
|
break;
|
|
|
}
|
|
@ -605,7 +606,7 @@ public class StatisticsEsService {
|
|
|
|
|
|
jsonObject.put("doctorCode",code);
|
|
|
jsonObject.put("doctorName",saveModel.getDoctorName());
|
|
|
jsonObject.put("synegy",saveModel.getResult1());
|
|
|
jsonObject.put("synegy",decimalFormat.format(saveModel.getResult1()));
|
|
|
synegy = saveModel.getResult1();
|
|
|
break;
|
|
|
}
|
|
@ -616,7 +617,7 @@ public class StatisticsEsService {
|
|
|
if (StringUtils.isNoneBlank(saveModel.getHospital())&&code.equalsIgnoreCase(saveModel.getHospital())){
|
|
|
jsonObject.put("code",code);
|
|
|
jsonObject.put("name",saveModel.getHospitalName());
|
|
|
jsonObject.put("topic",saveModel.getResult1());
|
|
|
jsonObject.put("topic",decimalFormat.format(saveModel.getResult1()));
|
|
|
synegy = saveModel.getResult1();
|
|
|
break;
|
|
|
}
|
|
@ -624,7 +625,7 @@ public class StatisticsEsService {
|
|
|
if (StringUtils.isNoneBlank(saveModel.getDept())&&code.equalsIgnoreCase(saveModel.getDept())){
|
|
|
jsonObject.put("code",code);
|
|
|
jsonObject.put("name",saveModel.getDeptName());
|
|
|
jsonObject.put("topic",saveModel.getResult1());
|
|
|
jsonObject.put("topic",decimalFormat.format(saveModel.getResult1()));
|
|
|
topic = saveModel.getResult1();
|
|
|
break;
|
|
|
}
|
|
@ -650,7 +651,7 @@ public class StatisticsEsService {
|
|
|
}
|
|
|
jsonObject.put("doctorCode",code);
|
|
|
jsonObject.put("doctorName",saveModel.getDoctorName());
|
|
|
jsonObject.put("topic",saveModel.getResult1());
|
|
|
jsonObject.put("topic",decimalFormat.format(saveModel.getResult1()));
|
|
|
topic = saveModel.getResult1();
|
|
|
break;
|
|
|
}
|
|
@ -661,7 +662,7 @@ public class StatisticsEsService {
|
|
|
if (StringUtils.isNoneBlank(saveModel.getHospital())&&code.equalsIgnoreCase(saveModel.getHospital())){
|
|
|
jsonObject.put("code",code);
|
|
|
jsonObject.put("name",saveModel.getHospitalName());
|
|
|
jsonObject.put("vedio",saveModel.getResult1());
|
|
|
jsonObject.put("vedio",decimalFormat.format(saveModel.getResult1()));
|
|
|
vedio = saveModel.getResult1();
|
|
|
break;
|
|
|
}
|
|
@ -669,7 +670,7 @@ public class StatisticsEsService {
|
|
|
if (StringUtils.isNoneBlank(saveModel.getDept())&&code.equalsIgnoreCase(saveModel.getDept())){
|
|
|
jsonObject.put("code",code);
|
|
|
jsonObject.put("name",saveModel.getDeptName());
|
|
|
jsonObject.put("vedio",saveModel.getResult1());
|
|
|
jsonObject.put("vedio",decimalFormat.format(saveModel.getResult1()));
|
|
|
vedio = saveModel.getResult1();
|
|
|
break;
|
|
|
}
|
|
@ -695,7 +696,7 @@ public class StatisticsEsService {
|
|
|
jsonObject.put("doctorJob",null);
|
|
|
}
|
|
|
jsonObject.put("doctorName",saveModel.getDoctorName());
|
|
|
jsonObject.put("vedio",saveModel.getResult1());
|
|
|
jsonObject.put("vedio",decimalFormat.format(saveModel.getResult1()));
|
|
|
vedio = saveModel.getResult1();
|
|
|
break;
|
|
|
}
|
|
@ -703,8 +704,8 @@ public class StatisticsEsService {
|
|
|
}
|
|
|
Double total1 = topic+vedio ;//图文和视频总和
|
|
|
Double total = topic+vedio+synegy+specialist;//总和
|
|
|
jsonObject.put("total1",total1);//图文和视频总和
|
|
|
jsonObject.put("total",total);//总和
|
|
|
jsonObject.put("total1",decimalFormat.format(total1));//图文和视频总和
|
|
|
jsonObject.put("total",decimalFormat.format(total));//总和
|
|
|
array.add(jsonObject);
|
|
|
}
|
|
|
object.put("excelData",array);
|
|
@ -729,7 +730,7 @@ public class StatisticsEsService {
|
|
|
public JSONObject getPrescriptionLine(String startDate, String endDate, String area, int level, String index,int interval, String level2_type) throws Exception {
|
|
|
JSONObject object = new JSONObject();
|
|
|
//开方量增量曲线
|
|
|
JSONArray array = dateTotalStatistics2(startDate,endDate,area,level,index,null,SaveModel.timeLevel_ZL,null);
|
|
|
JSONArray array = dateTotalStatistics3(startDate,endDate,area,level,index,null,SaveModel.timeLevel_ZL,null);
|
|
|
object.put("prescriptionLine",array);
|
|
|
return object;
|
|
|
}
|
|
@ -751,55 +752,80 @@ public class StatisticsEsService {
|
|
|
public JSONObject getOutPatientCircular(String startDate, String endDate, String area, int level, String index, String level2_type) throws Exception {
|
|
|
|
|
|
JSONObject object = new JSONObject();
|
|
|
if (index.equalsIgnoreCase("3")){
|
|
|
//协同门诊
|
|
|
SaveModel saveModel1 = null;
|
|
|
saveModel1 = elasticsearchUtil.findOneDateQuotaLevel1(endDate, endDate, area, level, index, SaveModel.timeLevel_DDL, "2");
|
|
|
//图文复诊
|
|
|
SaveModel saveModel2 = null;
|
|
|
//saveModel2 = elasticsearchUtil.findOneDateQuotaLevel2(endDate, endDate, area, level, index, SaveModel.timeLevel_DDL, "1","1");
|
|
|
saveModel2 = elasticsearchUtil.findOneDateQuotaLevel2(endDate, endDate, area, level, index, SaveModel.timeLevel_DDL, "1","1");
|
|
|
//视频复诊
|
|
|
SaveModel saveModel3 = null;
|
|
|
/*
|
|
|
saveModel3 = elasticsearchUtil.findOneDateQuotaLevel2(endDate, endDate, area, level, index, SaveModel.timeLevel_DDL, "1","2");
|
|
|
*/
|
|
|
saveModel3 = elasticsearchUtil.findOneDateQuotaLevel2(endDate, endDate, area, level, index, SaveModel.timeLevel_DDL, "1","2");
|
|
|
Double specialistCount =0.0;
|
|
|
//专科咨询
|
|
|
SaveModel saveModel4 = null;
|
|
|
saveModel4 = elasticsearchUtil.findOneDateQuotaLevel1(endDate, endDate, area, level, index, SaveModel.timeLevel_DDL, "3");
|
|
|
specialistCount = saveModel4.getResult1();//专家咨询数量
|
|
|
|
|
|
Double synergyCount = saveModel1.getResult1();//协同门诊数量
|
|
|
Double topicCount = saveModel2.getResult1();//图文复诊数量
|
|
|
Double videoCount = saveModel3.getResult1();//视频复诊数量
|
|
|
Double total = specialistCount+synergyCount+topicCount+videoCount;//总量
|
|
|
DecimalFormat decimalFormat = new DecimalFormat("0.00");
|
|
|
object.put("specialistCount",decimalFormat.format(specialistCount));//专家咨询数
|
|
|
object.put("specialistRate",getRange(specialistCount.intValue(),total.intValue(),0));
|
|
|
object.put("synergyCount",decimalFormat.format(synergyCount));//专家咨询数
|
|
|
object.put("synergyRate",getRange(synergyCount.intValue(),total.intValue(),0));
|
|
|
object.put("topicCount",decimalFormat.format(topicCount));//图文复诊数量
|
|
|
object.put("topicRate",getRange(topicCount.intValue(),total.intValue(),0));
|
|
|
object.put("videoCount",decimalFormat.format(videoCount));//视频复诊数量
|
|
|
object.put("videoRate",getRange(videoCount.intValue(),total.intValue(),0));
|
|
|
object.put("total",decimalFormat.format(total));
|
|
|
|
|
|
|
|
|
//协同门诊
|
|
|
SaveModel saveModel1 = null;
|
|
|
saveModel1 = elasticsearchUtil.findOneDateQuotaLevel1(endDate, endDate, area, level, index, SaveModel.timeLevel_DDL, "12");
|
|
|
//图文复诊
|
|
|
SaveModel saveModel2 = null;
|
|
|
//saveModel2 = elasticsearchUtil.findOneDateQuotaLevel2(endDate, endDate, area, level, index, SaveModel.timeLevel_DDL, "1","1");
|
|
|
saveModel2 = elasticsearchUtil.findOneDateQuotaLevel1(endDate, endDate, area, level, index, SaveModel.timeLevel_DDL, "9");
|
|
|
//视频复诊
|
|
|
SaveModel saveModel3 = null;
|
|
|
}else {
|
|
|
//协同门诊
|
|
|
SaveModel saveModel1 = null;
|
|
|
saveModel1 = elasticsearchUtil.findOneDateQuotaLevel1(endDate, endDate, area, level, index, SaveModel.timeLevel_DDL, "12");
|
|
|
//图文复诊
|
|
|
SaveModel saveModel2 = null;
|
|
|
//saveModel2 = elasticsearchUtil.findOneDateQuotaLevel2(endDate, endDate, area, level, index, SaveModel.timeLevel_DDL, "1","1");
|
|
|
saveModel2 = elasticsearchUtil.findOneDateQuotaLevel1(endDate, endDate, area, level, index, SaveModel.timeLevel_DDL, "9");
|
|
|
//视频复诊
|
|
|
SaveModel saveModel3 = null;
|
|
|
/*
|
|
|
saveModel3 = elasticsearchUtil.findOneDateQuotaLevel2(endDate, endDate, area, level, index, SaveModel.timeLevel_DDL, "1","2");
|
|
|
*/
|
|
|
saveModel3 = elasticsearchUtil.findOneDateQuotaLevel1(endDate, endDate, area, level, index, SaveModel.timeLevel_DDL, "16");
|
|
|
Double specialistCount =0.0;
|
|
|
//专科咨询
|
|
|
SaveModel saveModel4 = null;
|
|
|
saveModel4 = elasticsearchUtil.findOneDateQuotaLevel1(endDate, endDate, area, level, index, SaveModel.timeLevel_DDL, "1");
|
|
|
specialistCount = saveModel4.getResult1();//专家咨询数量
|
|
|
/*if(index.equalsIgnoreCase("5")){
|
|
|
//专家咨询数量
|
|
|
SaveModel saveModel = null;
|
|
|
if (StringUtils.isNotEmpty(level2_type)) {
|
|
|
saveModel = elasticsearchUtil.findOneDateQuotaLevel1(endDate, endDate, area, level, "4", SaveModel.timeLevel_DDL, level2_type);
|
|
|
} else {
|
|
|
saveModel = elasticsearchUtil.findOneDateQuotaLevel0(endDate, endDate, area, level, "4", SaveModel.timeLevel_DDL);
|
|
|
saveModel3 = elasticsearchUtil.findOneDateQuotaLevel1(endDate, endDate, area, level, index, SaveModel.timeLevel_DDL, "16");
|
|
|
Double specialistCount =0.0;
|
|
|
//专科咨询
|
|
|
SaveModel saveModel4 = null;
|
|
|
saveModel4 = elasticsearchUtil.findOneDateQuotaLevel1(endDate, endDate, area, level, index, SaveModel.timeLevel_DDL, "1");
|
|
|
specialistCount = saveModel4.getResult1();//专家咨询数量
|
|
|
|
|
|
Double synergyCount = saveModel1.getResult1();//协同门诊数量
|
|
|
Double topicCount = saveModel2.getResult1();//图文复诊数量
|
|
|
Double videoCount = saveModel3.getResult1();//视频复诊数量
|
|
|
Double total = specialistCount+synergyCount+topicCount+videoCount;//总量
|
|
|
object.put("specialistCount",specialistCount);//专家咨询数
|
|
|
object.put("specialistRate",getRange(specialistCount.intValue(),total.intValue(),0));
|
|
|
object.put("synergyCount",synergyCount);//专家咨询数
|
|
|
object.put("synergyRate",getRange(synergyCount.intValue(),total.intValue(),0));
|
|
|
object.put("topicCount",topicCount);//图文复诊数量
|
|
|
object.put("topicRate",getRange(topicCount.intValue(),total.intValue(),0));
|
|
|
object.put("videoCount",videoCount);//视频复诊数量
|
|
|
object.put("videoRate",getRange(videoCount.intValue(),total.intValue(),0));
|
|
|
object.put("total",total);
|
|
|
|
|
|
}
|
|
|
specialistCount = saveModel.getResult1();//专家咨询数量
|
|
|
|
|
|
}else if (index.equalsIgnoreCase("3")){
|
|
|
specialistCount = 0.0;
|
|
|
}*/
|
|
|
|
|
|
Double synergyCount = saveModel1.getResult1();//协同门诊数量
|
|
|
Double topicCount = saveModel2.getResult1();//图文复诊数量
|
|
|
Double videoCount = saveModel3.getResult1();//视频复诊数量
|
|
|
Double total = specialistCount+synergyCount+topicCount+videoCount;//总量
|
|
|
DecimalFormat decimalFormat = new DecimalFormat("#.00");
|
|
|
|
|
|
object.put("specialistCount",decimalFormat.format(specialistCount));//专家咨询数
|
|
|
object.put("specialistRate",getRange(specialistCount.intValue(),total.intValue(),0));
|
|
|
object.put("synergyCount",decimalFormat.format(synergyCount));//专家咨询数
|
|
|
object.put("synergyRate",getRange(synergyCount.intValue(),total.intValue(),0));
|
|
|
object.put("topicCount",decimalFormat.format(topicCount));//图文复诊数量
|
|
|
object.put("topicRate",getRange(topicCount.intValue(),total.intValue(),0));
|
|
|
object.put("videoCount",decimalFormat.format(videoCount));//视频复诊数量
|
|
|
object.put("videoRate",getRange(videoCount.intValue(),total.intValue(),0));
|
|
|
object.put("total",decimalFormat.format(total));
|
|
|
|
|
|
|
|
|
return object;
|
|
|
}
|
|
@ -1396,54 +1422,513 @@ public class StatisticsEsService {
|
|
|
json.put("num",0.0);
|
|
|
result.add(json);
|
|
|
}
|
|
|
DecimalFormat decimalFormat = new DecimalFormat("#.00");
|
|
|
// }
|
|
|
// }
|
|
|
|
|
|
if (saveModels != null) {
|
|
|
// 计算结果
|
|
|
for (SaveModel saveModel : saveModels) {
|
|
|
JSONObject json = new JSONObject();
|
|
|
String range = null;
|
|
|
if (saveModel.getQuotaDate() != null) {
|
|
|
range = df.format(saveModel.getQuotaDate());
|
|
|
}
|
|
|
double num = saveModel.getResult1();
|
|
|
long amount = saveModel.getResult2().longValue();
|
|
|
for(JSONObject obj : result){
|
|
|
if((obj.get("range")+"").equals(range)){
|
|
|
obj.put("amount", amount);
|
|
|
obj.put("num",num);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// json.put("range", range);
|
|
|
// json.put("amount", amount);
|
|
|
// result.add(json);
|
|
|
}
|
|
|
// if (saveModels != null && saveModels.size() == 1 && saveModels.get(0).getHospital() == null) {
|
|
|
// List<Map<String, Object>> resultList = DateUtil.findDates(dateFormat.parse(startDate), dateFormat.parse(DateUtil.getNextDay(endDate, 1)));
|
|
|
// result.clear();
|
|
|
// for (Map<String, Object> map : resultList) {
|
|
|
// JSONObject json = new JSONObject();
|
|
|
// json.put("range", map.get("date"));
|
|
|
// json.put("amount", 0);
|
|
|
// result.add(json);
|
|
|
// }
|
|
|
// }
|
|
|
// SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
// Date startDate1 = sf.parse(startDate);
|
|
|
// Date endDate1 = sf.parse(endDate);
|
|
|
// long days = DateUtil.getDays(startDate1,endDate1);
|
|
|
// Calendar calendar = Calendar.getInstance();
|
|
|
// calendar.setTime(startDate1);
|
|
|
// List<JSONObject> resultTemp = new ArrayList<>();
|
|
|
// for(int i=1;i<=days;i++){
|
|
|
// calendar.add(calendar.DATE,i);//把日期往后增加一天.整数往后推,负数往前移动
|
|
|
// String dateString = sf.format(calendar.getTime());
|
|
|
// Map<String, Object> map = new HashMap<>();
|
|
|
// map.put("range",sf.format(calendar.getTime()));
|
|
|
// map.put()
|
|
|
// }
|
|
|
|
|
|
// 排序
|
|
|
result.sort(new Comparator<JSONObject>() {
|
|
|
@Override
|
|
|
public int compare(JSONObject o1, JSONObject o2) {
|
|
|
if (o1.getString("range").compareTo(o2.getString("range")) > 0) {
|
|
|
return 1;
|
|
|
} else if (o1.getString("range").compareTo(o2.getString("range")) < 0) {
|
|
|
return -1;
|
|
|
} else {
|
|
|
return 0;
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
JSONArray jsonArray = new JSONArray();
|
|
|
for (JSONObject object:result){
|
|
|
jsonArray.add(object);
|
|
|
}
|
|
|
|
|
|
return jsonArray;
|
|
|
} else {
|
|
|
return new JSONArray();
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 总体分析 折线图 按日--0级维度1级维度--两位小数
|
|
|
*
|
|
|
* @param startDate
|
|
|
* @param endDate
|
|
|
* @param area
|
|
|
* @param level
|
|
|
* @param index
|
|
|
* @param lowCode
|
|
|
* @return
|
|
|
* @throws ParseException
|
|
|
*/
|
|
|
public JSONArray dateTotalStatistics3(String startDate, String endDate, String area, int level, String index, String lowCode, String timelevel,String lowCode2) throws Exception {
|
|
|
|
|
|
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
List<SaveModel> saveModels = new ArrayList<>();
|
|
|
//startDate = DateUtil.getNextDay(startDate,-1);
|
|
|
if (StringUtils.isNotBlank(lowCode)) {
|
|
|
if (StringUtils.isNoneBlank(lowCode2)){
|
|
|
saveModels = elasticsearchUtil.findLineChartDateQuotaLevel2(startDate, endDate, area, level, index, timelevel, SaveModel.interval_day, lowCode,lowCode2);
|
|
|
}else {
|
|
|
saveModels = elasticsearchUtil.findLineChartDateQuotaLevel1(startDate, endDate, area, level, index, timelevel, SaveModel.interval_day, lowCode);
|
|
|
}
|
|
|
}else if(StringUtils.isNoneBlank(lowCode2)&&!StringUtils.isNoneBlank(lowCode)){
|
|
|
saveModels = elasticsearchUtil.findLineChartDateQuotaLevel2OnlySlaveKey2(startDate, endDate, area, level, index, timelevel, SaveModel.interval_day,lowCode2);
|
|
|
}else {
|
|
|
saveModels = elasticsearchUtil.findLineChartDateQuotaLevel0(startDate, endDate, area, level, index, timelevel, SaveModel.interval_day);
|
|
|
}
|
|
|
List<JSONObject> result = new ArrayList<>();
|
|
|
|
|
|
// if (saveModels != null && saveModels.size() >0) {
|
|
|
List<Map<String, Object>> resultList = DateUtil.findDates(dateFormat.parse(startDate), dateFormat.parse(DateUtil.getNextDay(endDate, 1)));
|
|
|
// result.clear();
|
|
|
for (Map<String, Object> one : resultList) {
|
|
|
JSONObject json = new JSONObject();
|
|
|
json.put("range", one.get("date"));
|
|
|
json.put("amount", 0);
|
|
|
json.put("num",0.0);
|
|
|
result.add(json);
|
|
|
}
|
|
|
// }
|
|
|
|
|
|
DecimalFormat decimalFormat = new DecimalFormat("0.00");
|
|
|
if (saveModels != null) {
|
|
|
// 计算结果
|
|
|
for (SaveModel saveModel : saveModels) {
|
|
|
JSONObject json = new JSONObject();
|
|
|
String range = null;
|
|
|
if (saveModel.getQuotaDate() != null) {
|
|
|
range = df.format(saveModel.getQuotaDate());
|
|
|
}
|
|
|
double num = saveModel.getResult1();
|
|
|
long amount = saveModel.getResult2().longValue();
|
|
|
for(JSONObject obj : result){
|
|
|
if((obj.get("range")+"").equals(range)){
|
|
|
obj.put("amount", amount);
|
|
|
obj.put("num",decimalFormat.format(num));
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// json.put("range", range);
|
|
|
// json.put("amount", amount);
|
|
|
// result.add(json);
|
|
|
}
|
|
|
// if (saveModels != null && saveModels.size() == 1 && saveModels.get(0).getHospital() == null) {
|
|
|
// List<Map<String, Object>> resultList = DateUtil.findDates(dateFormat.parse(startDate), dateFormat.parse(DateUtil.getNextDay(endDate, 1)));
|
|
|
// result.clear();
|
|
|
// for (Map<String, Object> map : resultList) {
|
|
|
// JSONObject json = new JSONObject();
|
|
|
// json.put("range", map.get("date"));
|
|
|
// json.put("amount", 0);
|
|
|
// result.add(json);
|
|
|
// }
|
|
|
// }
|
|
|
// SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
// Date startDate1 = sf.parse(startDate);
|
|
|
// Date endDate1 = sf.parse(endDate);
|
|
|
// long days = DateUtil.getDays(startDate1,endDate1);
|
|
|
// Calendar calendar = Calendar.getInstance();
|
|
|
// calendar.setTime(startDate1);
|
|
|
// List<JSONObject> resultTemp = new ArrayList<>();
|
|
|
// for(int i=1;i<=days;i++){
|
|
|
// calendar.add(calendar.DATE,i);//把日期往后增加一天.整数往后推,负数往前移动
|
|
|
// String dateString = sf.format(calendar.getTime());
|
|
|
// Map<String, Object> map = new HashMap<>();
|
|
|
// map.put("range",sf.format(calendar.getTime()));
|
|
|
// map.put()
|
|
|
// }
|
|
|
|
|
|
// 排序
|
|
|
result.sort(new Comparator<JSONObject>() {
|
|
|
@Override
|
|
|
public int compare(JSONObject o1, JSONObject o2) {
|
|
|
if (o1.getString("range").compareTo(o2.getString("range")) > 0) {
|
|
|
return 1;
|
|
|
} else if (o1.getString("range").compareTo(o2.getString("range")) < 0) {
|
|
|
return -1;
|
|
|
} else {
|
|
|
return 0;
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
JSONArray jsonArray = new JSONArray();
|
|
|
for (JSONObject object:result){
|
|
|
jsonArray.add(object);
|
|
|
}
|
|
|
|
|
|
return jsonArray;
|
|
|
} else {
|
|
|
return new JSONArray();
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 按周统计 折线图
|
|
|
*
|
|
|
* @param startDate
|
|
|
* @param endDate
|
|
|
* @param area
|
|
|
* @param level
|
|
|
* @param index
|
|
|
* @param lowCode
|
|
|
* @return
|
|
|
* @throws Exception
|
|
|
*/
|
|
|
private JSONArray weekTotalStatistics(String startDate, String endDate, String area, int level, String index, String lowCode, String timelevel) throws Exception {
|
|
|
|
|
|
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
// 起始日期
|
|
|
Calendar start = Calendar.getInstance();
|
|
|
start.setTime(DateUtil.strToDate(startDate, DateUtil.YYYY_MM_DD));
|
|
|
// 第一个统计周期结束日期
|
|
|
String firstEnd = "";
|
|
|
// 结束日期
|
|
|
Calendar end = Calendar.getInstance();
|
|
|
//因为统计时间是统计到当前时间的前一天,所以这里的时间是提前一天
|
|
|
Calendar temp = Calendar.getInstance();
|
|
|
temp.setTime(DateUtil.strToDate(endDate, DateUtil.YYYY_MM_DD));
|
|
|
// temp.add(Calendar.DAY_OF_MONTH, -1);
|
|
|
end.setTime(temp.getTime());
|
|
|
// 起始日期为周几
|
|
|
int week = start.get(Calendar.DAY_OF_WEEK);
|
|
|
int incre = 7 - week + 1;
|
|
|
|
|
|
// 日期集合
|
|
|
List<Calendar> days = new ArrayList<>();
|
|
|
days.add(start);
|
|
|
boolean flag = true;
|
|
|
int i = 0;
|
|
|
|
|
|
if (startDate.compareTo(endDate) == 0) {
|
|
|
flag = false;
|
|
|
days.add(end);
|
|
|
firstEnd = df.format(end.getTime());
|
|
|
}
|
|
|
|
|
|
// 计算统计日期
|
|
|
while (flag) {
|
|
|
Calendar next = Calendar.getInstance();
|
|
|
next.setTime(days.get(days.size() - 1).getTime());
|
|
|
|
|
|
if (i == 0) {
|
|
|
if (incre != 7) {
|
|
|
next.add(Calendar.DATE, incre);
|
|
|
}
|
|
|
} else {
|
|
|
next.add(Calendar.DATE, 7);
|
|
|
}
|
|
|
if (next.getTime().before(DateUtil.strToDate(endDate, "yyyy-MM-dd"))) {
|
|
|
days.add(next);
|
|
|
if (i == 0) {
|
|
|
firstEnd = df.format(next.getTime());
|
|
|
}
|
|
|
} else {
|
|
|
days.add(end);
|
|
|
flag = false;
|
|
|
if (i == 0) {
|
|
|
firstEnd = df.format(end.getTime());
|
|
|
}
|
|
|
}
|
|
|
|
|
|
i++;
|
|
|
}
|
|
|
|
|
|
// 结果集
|
|
|
Map<String, JSONObject> countResult = new HashMap<>();
|
|
|
|
|
|
// Date dd = df.parse();
|
|
|
|
|
|
// 算出每个查询周期
|
|
|
for (int j = 0; j < days.size() - 1; j++) {
|
|
|
String startStr = "";
|
|
|
String endStr = df.format(days.get(j + 1).getTime());
|
|
|
|
|
|
// 起始、截止日期
|
|
|
if (j == 0) {
|
|
|
startStr = df.format(days.get(j).getTime());
|
|
|
} else {
|
|
|
Calendar cal = Calendar.getInstance();
|
|
|
cal.setTime(days.get(j).getTime());
|
|
|
cal.add(Calendar.DATE, 1);
|
|
|
startStr = df.format(cal.getTime());
|
|
|
}
|
|
|
|
|
|
JSONObject range = new JSONObject();
|
|
|
range.put("range", endStr);
|
|
|
range.put("amount", 0);
|
|
|
range.put("num",0.0);
|
|
|
countResult.put(endStr, range);
|
|
|
|
|
|
|
|
|
// if(!DateUtil.getSundayOfThisDate(new Date()).equals(df.format(new Date()))){
|
|
|
// JSONObject range2 = new JSONObject();
|
|
|
// range2.put("range", endDate);
|
|
|
// range2.put("amount", 0);
|
|
|
// countResult.put(df.format(new Date()), range2);
|
|
|
// };
|
|
|
}
|
|
|
|
|
|
if (startDate.equals(df.format(new Date()))) {
|
|
|
Calendar preDate = Calendar.getInstance();
|
|
|
preDate.setTime(df.parse(endDate));
|
|
|
preDate.add(Calendar.DATE, -1);
|
|
|
|
|
|
startDate = df.format(preDate.getTime());
|
|
|
}
|
|
|
|
|
|
|
|
|
List<SaveModel> saveModels = new ArrayList<>();
|
|
|
if (StringUtils.isNotBlank(lowCode)) {
|
|
|
saveModels = elasticsearchUtil.findLineChartDateQuotaLevel1(startDate, endDate, area, level, index, timelevel, SaveModel.interval_week, lowCode);
|
|
|
} else {
|
|
|
saveModels = elasticsearchUtil.findLineChartDateQuotaLevel0(startDate, endDate, area, level, index, timelevel, SaveModel.interval_week);
|
|
|
}
|
|
|
if (saveModels != null) {
|
|
|
// 计算结果
|
|
|
for (SaveModel saveModel : saveModels) {
|
|
|
String range = "";
|
|
|
if (saveModel.getQuotaDate() != null) {
|
|
|
Calendar quotaDate = Calendar.getInstance();
|
|
|
quotaDate.setTime(saveModel.getQuotaDate());
|
|
|
quotaDate.add(Calendar.DATE, 6);
|
|
|
range = df.format(quotaDate.getTime());
|
|
|
|
|
|
}
|
|
|
JSONObject json = countResult.get(range);
|
|
|
// //因为上述时间集提前一天 但是前端是显示当前时间,所以这里给调整回去
|
|
|
// if (range.equals(df.format(temp.getTime()))) {
|
|
|
// json.put("range", endDate);
|
|
|
// }
|
|
|
if (json != null) {
|
|
|
long amount = saveModel.getResult2().longValue();
|
|
|
double num = saveModel.getResult1();
|
|
|
json.put("amount", amount);
|
|
|
json.put("num",num);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
List<JSONObject> result = new ArrayList<>(countResult.values());
|
|
|
|
|
|
// 排序
|
|
|
result.sort(new Comparator<JSONObject>() {
|
|
|
@Override
|
|
|
public int compare(JSONObject o1, JSONObject o2) {
|
|
|
if (o1.getString("range").compareTo(o2.getString("range")) > 0) {
|
|
|
return 1;
|
|
|
} else if (o1.getString("range").compareTo(o2.getString("range")) < 0) {
|
|
|
return -1;
|
|
|
} else {
|
|
|
return 0;
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
JSONArray jsonArray = new JSONArray();
|
|
|
for (JSONObject object:result){
|
|
|
jsonArray.add(object);
|
|
|
}
|
|
|
|
|
|
return jsonArray;
|
|
|
} else {
|
|
|
return new JSONArray();
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 按周统计 折线图
|
|
|
*
|
|
|
* @param startDate
|
|
|
* @param endDate
|
|
|
* @param area
|
|
|
* @param level
|
|
|
* @param index
|
|
|
* @param lowCode
|
|
|
* @return
|
|
|
* @throws Exception
|
|
|
*/
|
|
|
private JSONArray weekTotalStatisticsDf(String startDate, String endDate, String area, int level, String index, String lowCode, String timelevel) throws Exception {
|
|
|
|
|
|
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
// 起始日期
|
|
|
Calendar start = Calendar.getInstance();
|
|
|
start.setTime(DateUtil.strToDate(startDate, DateUtil.YYYY_MM_DD));
|
|
|
// 第一个统计周期结束日期
|
|
|
String firstEnd = "";
|
|
|
// 结束日期
|
|
|
Calendar end = Calendar.getInstance();
|
|
|
//因为统计时间是统计到当前时间的前一天,所以这里的时间是提前一天
|
|
|
Calendar temp = Calendar.getInstance();
|
|
|
temp.setTime(DateUtil.strToDate(endDate, DateUtil.YYYY_MM_DD));
|
|
|
// temp.add(Calendar.DAY_OF_MONTH, -1);
|
|
|
end.setTime(temp.getTime());
|
|
|
// 起始日期为周几
|
|
|
int week = start.get(Calendar.DAY_OF_WEEK);
|
|
|
int incre = 7 - week + 1;
|
|
|
|
|
|
// 日期集合
|
|
|
List<Calendar> days = new ArrayList<>();
|
|
|
days.add(start);
|
|
|
boolean flag = true;
|
|
|
int i = 0;
|
|
|
|
|
|
if (startDate.compareTo(endDate) == 0) {
|
|
|
flag = false;
|
|
|
days.add(end);
|
|
|
firstEnd = df.format(end.getTime());
|
|
|
}
|
|
|
|
|
|
// 计算统计日期
|
|
|
while (flag) {
|
|
|
Calendar next = Calendar.getInstance();
|
|
|
next.setTime(days.get(days.size() - 1).getTime());
|
|
|
|
|
|
if (i == 0) {
|
|
|
if (incre != 7) {
|
|
|
next.add(Calendar.DATE, incre);
|
|
|
}
|
|
|
} else {
|
|
|
next.add(Calendar.DATE, 7);
|
|
|
}
|
|
|
if (next.getTime().before(DateUtil.strToDate(endDate, "yyyy-MM-dd"))) {
|
|
|
days.add(next);
|
|
|
if (i == 0) {
|
|
|
firstEnd = df.format(next.getTime());
|
|
|
}
|
|
|
} else {
|
|
|
days.add(end);
|
|
|
flag = false;
|
|
|
if (i == 0) {
|
|
|
firstEnd = df.format(end.getTime());
|
|
|
}
|
|
|
}
|
|
|
|
|
|
i++;
|
|
|
}
|
|
|
|
|
|
// 结果集
|
|
|
Map<String, JSONObject> countResult = new HashMap<>();
|
|
|
|
|
|
// Date dd = df.parse();
|
|
|
|
|
|
// 算出每个查询周期
|
|
|
for (int j = 0; j < days.size() - 1; j++) {
|
|
|
String startStr = "";
|
|
|
String endStr = df.format(days.get(j + 1).getTime());
|
|
|
|
|
|
// 起始、截止日期
|
|
|
if (j == 0) {
|
|
|
startStr = df.format(days.get(j).getTime());
|
|
|
} else {
|
|
|
Calendar cal = Calendar.getInstance();
|
|
|
cal.setTime(days.get(j).getTime());
|
|
|
cal.add(Calendar.DATE, 1);
|
|
|
startStr = df.format(cal.getTime());
|
|
|
}
|
|
|
|
|
|
JSONObject range = new JSONObject();
|
|
|
range.put("range", endStr);
|
|
|
range.put("amount", 0);
|
|
|
range.put("num",0.0);
|
|
|
countResult.put(endStr, range);
|
|
|
|
|
|
|
|
|
// if(!DateUtil.getSundayOfThisDate(new Date()).equals(df.format(new Date()))){
|
|
|
// JSONObject range2 = new JSONObject();
|
|
|
// range2.put("range", endDate);
|
|
|
// range2.put("amount", 0);
|
|
|
// countResult.put(df.format(new Date()), range2);
|
|
|
// };
|
|
|
}
|
|
|
|
|
|
if (startDate.equals(df.format(new Date()))) {
|
|
|
Calendar preDate = Calendar.getInstance();
|
|
|
preDate.setTime(df.parse(endDate));
|
|
|
preDate.add(Calendar.DATE, -1);
|
|
|
|
|
|
startDate = df.format(preDate.getTime());
|
|
|
}
|
|
|
|
|
|
|
|
|
List<SaveModel> saveModels = new ArrayList<>();
|
|
|
if (StringUtils.isNotBlank(lowCode)) {
|
|
|
saveModels = elasticsearchUtil.findLineChartDateQuotaLevel1(startDate, endDate, area, level, index, timelevel, SaveModel.interval_week, lowCode);
|
|
|
} else {
|
|
|
saveModels = elasticsearchUtil.findLineChartDateQuotaLevel0(startDate, endDate, area, level, index, timelevel, SaveModel.interval_week);
|
|
|
}
|
|
|
DecimalFormat decimalFormat = new DecimalFormat("0.00");
|
|
|
if (saveModels != null) {
|
|
|
// 计算结果
|
|
|
for (SaveModel saveModel : saveModels) {
|
|
|
JSONObject json = new JSONObject();
|
|
|
String range = null;
|
|
|
String range = "";
|
|
|
if (saveModel.getQuotaDate() != null) {
|
|
|
range = df.format(saveModel.getQuotaDate());
|
|
|
Calendar quotaDate = Calendar.getInstance();
|
|
|
quotaDate.setTime(saveModel.getQuotaDate());
|
|
|
quotaDate.add(Calendar.DATE, 6);
|
|
|
range = df.format(quotaDate.getTime());
|
|
|
|
|
|
}
|
|
|
double num = saveModel.getResult1();
|
|
|
long amount = saveModel.getResult2().longValue();
|
|
|
for(JSONObject obj : result){
|
|
|
if((obj.get("range")+"").equals(range)){
|
|
|
obj.put("amount", amount);
|
|
|
obj.put("num",decimalFormat.format(num));
|
|
|
}
|
|
|
JSONObject json = countResult.get(range);
|
|
|
// //因为上述时间集提前一天 但是前端是显示当前时间,所以这里给调整回去
|
|
|
// if (range.equals(df.format(temp.getTime()))) {
|
|
|
// json.put("range", endDate);
|
|
|
// }
|
|
|
if (json != null) {
|
|
|
long amount = saveModel.getResult2().longValue();
|
|
|
double num = saveModel.getResult1();
|
|
|
json.put("amount", amount);
|
|
|
json.put("num",decimalFormat.format(num));
|
|
|
}
|
|
|
|
|
|
// json.put("range", range);
|
|
|
// json.put("amount", amount);
|
|
|
// result.add(json);
|
|
|
}
|
|
|
// if (saveModels != null && saveModels.size() == 1 && saveModels.get(0).getHospital() == null) {
|
|
|
// List<Map<String, Object>> resultList = DateUtil.findDates(dateFormat.parse(startDate), dateFormat.parse(DateUtil.getNextDay(endDate, 1)));
|
|
|
// result.clear();
|
|
|
// for (Map<String, Object> map : resultList) {
|
|
|
// JSONObject json = new JSONObject();
|
|
|
// json.put("range", map.get("date"));
|
|
|
// json.put("amount", 0);
|
|
|
// result.add(json);
|
|
|
// }
|
|
|
// }
|
|
|
// SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
// Date startDate1 = sf.parse(startDate);
|
|
|
// Date endDate1 = sf.parse(endDate);
|
|
|
// long days = DateUtil.getDays(startDate1,endDate1);
|
|
|
// Calendar calendar = Calendar.getInstance();
|
|
|
// calendar.setTime(startDate1);
|
|
|
// List<JSONObject> resultTemp = new ArrayList<>();
|
|
|
// for(int i=1;i<=days;i++){
|
|
|
// calendar.add(calendar.DATE,i);//把日期往后增加一天.整数往后推,负数往前移动
|
|
|
// String dateString = sf.format(calendar.getTime());
|
|
|
// Map<String, Object> map = new HashMap<>();
|
|
|
// map.put("range",sf.format(calendar.getTime()));
|
|
|
// map.put()
|
|
|
// }
|
|
|
|
|
|
List<JSONObject> result = new ArrayList<>(countResult.values());
|
|
|
|
|
|
// 排序
|
|
|
result.sort(new Comparator<JSONObject>() {
|
|
@ -1469,21 +1954,7 @@ public class StatisticsEsService {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 按周统计 折线图
|
|
|
*
|
|
|
* @param startDate
|
|
|
* @param endDate
|
|
|
* @param area
|
|
|
* @param level
|
|
|
* @param index
|
|
|
* @param lowCode
|
|
|
* @return
|
|
|
* @throws Exception
|
|
|
*/
|
|
|
private JSONArray weekTotalStatistics(String startDate, String endDate, String area, int level, String index, String lowCode, String timelevel) throws Exception {
|
|
|
private JSONArray weekTotalStatistics2(String startDate, String endDate, String area, int level, String index, String lowCode, String timelevel,String lowCode2) throws Exception {
|
|
|
|
|
|
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
// 起始日期
|
|
@ -1588,11 +2059,19 @@ public class StatisticsEsService {
|
|
|
|
|
|
List<SaveModel> saveModels = new ArrayList<>();
|
|
|
if (StringUtils.isNotBlank(lowCode)) {
|
|
|
saveModels = elasticsearchUtil.findLineChartDateQuotaLevel1(startDate, endDate, area, level, index, timelevel, SaveModel.interval_week, lowCode);
|
|
|
} else {
|
|
|
if (StringUtils.isNoneBlank(lowCode2)){
|
|
|
saveModels = elasticsearchUtil.findLineChartDateQuotaLevel2(startDate, endDate, area, level, index, timelevel, SaveModel.interval_week, lowCode,lowCode2);
|
|
|
}else {
|
|
|
saveModels = elasticsearchUtil.findLineChartDateQuotaLevel1(startDate, endDate, area, level, index, timelevel, SaveModel.interval_week, lowCode);
|
|
|
}
|
|
|
|
|
|
}else if(StringUtils.isNoneBlank(lowCode2)&&StringUtils.isBlank(lowCode)){
|
|
|
saveModels = elasticsearchUtil.findLineChartDateQuotaLevel2OnlySlaveKey2(startDate, endDate, area, level, index, timelevel, SaveModel.interval_week,lowCode2);
|
|
|
}
|
|
|
else {
|
|
|
saveModels = elasticsearchUtil.findLineChartDateQuotaLevel0(startDate, endDate, area, level, index, timelevel, SaveModel.interval_week);
|
|
|
}
|
|
|
DecimalFormat decimalFormat = new DecimalFormat("#.00");
|
|
|
|
|
|
if (saveModels != null) {
|
|
|
// 计算结果
|
|
|
for (SaveModel saveModel : saveModels) {
|
|
@ -1613,7 +2092,7 @@ public class StatisticsEsService {
|
|
|
long amount = saveModel.getResult2().longValue();
|
|
|
double num = saveModel.getResult1();
|
|
|
json.put("amount", amount);
|
|
|
json.put("num",decimalFormat.format(num));
|
|
|
json.put("num",num);
|
|
|
}
|
|
|
}
|
|
|
|
|
@ -1644,7 +2123,20 @@ public class StatisticsEsService {
|
|
|
}
|
|
|
|
|
|
|
|
|
private JSONArray weekTotalStatistics2(String startDate, String endDate, String area, int level, String index, String lowCode, String timelevel,String lowCode2) throws Exception {
|
|
|
/**
|
|
|
* 两位小数
|
|
|
* @param startDate
|
|
|
* @param endDate
|
|
|
* @param area
|
|
|
* @param level
|
|
|
* @param index
|
|
|
* @param lowCode
|
|
|
* @param timelevel
|
|
|
* @param lowCode2
|
|
|
* @return
|
|
|
* @throws Exception
|
|
|
*/
|
|
|
private JSONArray weekTotalStatistics3(String startDate, String endDate, String area, int level, String index, String lowCode, String timelevel,String lowCode2) throws Exception {
|
|
|
|
|
|
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
// 起始日期
|
|
@ -1762,6 +2254,7 @@ public class StatisticsEsService {
|
|
|
saveModels = elasticsearchUtil.findLineChartDateQuotaLevel0(startDate, endDate, area, level, index, timelevel, SaveModel.interval_week);
|
|
|
}
|
|
|
|
|
|
DecimalFormat decimalFormat = new DecimalFormat("0.00");
|
|
|
if (saveModels != null) {
|
|
|
// 计算结果
|
|
|
for (SaveModel saveModel : saveModels) {
|
|
@ -1782,7 +2275,7 @@ public class StatisticsEsService {
|
|
|
long amount = saveModel.getResult2().longValue();
|
|
|
double num = saveModel.getResult1();
|
|
|
json.put("amount", amount);
|
|
|
json.put("num",num);
|
|
|
json.put("num",decimalFormat.format(num));
|
|
|
}
|
|
|
}
|
|
|
|
|
@ -1907,7 +2400,150 @@ public class StatisticsEsService {
|
|
|
} else {
|
|
|
saveModels = elasticsearchUtil.findLineChartDateQuotaLevel0(startDate, endDate, area, level, index, timelevel, SaveModel.interval_month);
|
|
|
}
|
|
|
DecimalFormat decimalFormat = new DecimalFormat("#.00");
|
|
|
|
|
|
if (saveModels != null) {
|
|
|
// 计算结果
|
|
|
for (SaveModel saveModel : saveModels) {
|
|
|
String range = "";
|
|
|
if (saveModel.getQuotaDate() != null) {
|
|
|
range = df.format(saveModel.getQuotaDate());
|
|
|
}
|
|
|
JSONObject json = countResult.get(range);
|
|
|
//因为上述时间集提前一天 但是前端是显示当前时间,所以这里给调整回去
|
|
|
/*if (range.equals(df.format(temp.getTime()))) {
|
|
|
json.put("range", endDate);
|
|
|
}*/
|
|
|
if (json != null) {
|
|
|
long amount = saveModel.getResult2().longValue();
|
|
|
double num = saveModel.getResult1();
|
|
|
json.put("amount", amount);
|
|
|
json.put("num",num);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
List<JSONObject> result = new ArrayList<>(countResult.values());
|
|
|
|
|
|
// 排序
|
|
|
result.sort(new Comparator<JSONObject>() {
|
|
|
@Override
|
|
|
public int compare(JSONObject o1, JSONObject o2) {
|
|
|
if (o1.getString("range").compareTo(o2.getString("range")) > 0) {
|
|
|
return 1;
|
|
|
} else if (o1.getString("range").compareTo(o2.getString("range")) < 0) {
|
|
|
return -1;
|
|
|
} else {
|
|
|
return 0;
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
JSONArray jsonArray = new JSONArray();
|
|
|
for (JSONObject object:result){
|
|
|
jsonArray.add(object);
|
|
|
}
|
|
|
|
|
|
return jsonArray;
|
|
|
} else {
|
|
|
return new JSONArray();
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 按月统计 折线图---两位小数
|
|
|
*
|
|
|
* @param startDate
|
|
|
* @param endDate
|
|
|
* @param area
|
|
|
* @param level
|
|
|
* @param index
|
|
|
* @param lowCode
|
|
|
* @return
|
|
|
* @throws Exception
|
|
|
*/
|
|
|
private JSONArray monthTotalStatistics3(String startDate, String endDate, String area, int level, String index, String lowCode, String timelevel,String lowCode2) throws Exception {
|
|
|
|
|
|
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
|
|
|
// 起始日期
|
|
|
Calendar start = Calendar.getInstance();
|
|
|
start.setTime(DateUtil.strToDate(startDate, DateUtil.YYYY_MM_DD));
|
|
|
// 结束日期
|
|
|
Calendar end = Calendar.getInstance();
|
|
|
//因为统计时间是统计到当前时间的前一天,所以这里的时间是提前一天
|
|
|
Calendar temp = Calendar.getInstance();
|
|
|
temp.setTime(DateUtil.strToDate(endDate, DateUtil.YYYY_MM_DD));
|
|
|
// temp.add(Calendar.DAY_OF_MONTH, -1);
|
|
|
end.setTime(temp.getTime());
|
|
|
|
|
|
// 日期集合
|
|
|
List<Calendar> days = new ArrayList<>();
|
|
|
days.add(start);
|
|
|
|
|
|
boolean flag = true;
|
|
|
int k = 0;
|
|
|
|
|
|
if (startDate.compareTo(endDate) == 0) {
|
|
|
flag = false;
|
|
|
/* days.add(end);*/
|
|
|
}
|
|
|
|
|
|
// 统计日期计算
|
|
|
while (flag) {
|
|
|
Calendar next = Calendar.getInstance();
|
|
|
next.setTime(days.get(days.size() - 1).getTime());
|
|
|
if (k == 0) {
|
|
|
next.add(Calendar.MONTH, 1);
|
|
|
} else {
|
|
|
next.add(Calendar.MONTH, 1);
|
|
|
}
|
|
|
/*next.set(Calendar.DAY_OF_MONTH, 1);
|
|
|
next.add(Calendar.DAY_OF_MONTH, -1);*/
|
|
|
|
|
|
if (next.getTime().before(DateUtil.strToDate(endDate, "yyyy-MM-dd"))) {
|
|
|
days.add(next);
|
|
|
} else {
|
|
|
/* days.add(end);*/
|
|
|
flag = false;
|
|
|
}
|
|
|
k++;
|
|
|
}
|
|
|
|
|
|
// 统计结果
|
|
|
Map<String, JSONObject> countResult = new HashMap<>();
|
|
|
|
|
|
for (int i = 0; i < days.size(); i++) {
|
|
|
String endStr = df.format(days.get(i).getTime());
|
|
|
|
|
|
JSONObject range = new JSONObject();
|
|
|
|
|
|
range.put("range", endStr);
|
|
|
range.put("amount", 0);
|
|
|
range.put("num",0.0);
|
|
|
|
|
|
countResult.put(endStr, range);
|
|
|
}
|
|
|
|
|
|
if (startDate.equals(df.format(new Date()))) {
|
|
|
Calendar preDate = Calendar.getInstance();
|
|
|
preDate.setTime(df.parse(endDate));
|
|
|
|
|
|
startDate = df.format(preDate.getTime());
|
|
|
}
|
|
|
List<SaveModel> saveModels = new ArrayList<>();
|
|
|
if (StringUtils.isNotBlank(lowCode)) {
|
|
|
if (StringUtils.isNoneBlank(lowCode2)){
|
|
|
saveModels = elasticsearchUtil.findLineChartDateQuotaLevel2(startDate, endDate, area, level, index, timelevel, SaveModel.interval_month, lowCode,lowCode2);
|
|
|
}else {
|
|
|
saveModels = elasticsearchUtil.findLineChartDateQuotaLevel1(startDate, endDate, area, level, index, timelevel, SaveModel.interval_month, lowCode);
|
|
|
}
|
|
|
} else if(StringUtils.isNoneBlank(lowCode2)&&StringUtils.isBlank(lowCode)){
|
|
|
saveModels = elasticsearchUtil.findLineChartDateQuotaLevel2OnlySlaveKey2(startDate, endDate, area, level, index, timelevel, SaveModel.interval_month,lowCode2);
|
|
|
|
|
|
} else {
|
|
|
saveModels = elasticsearchUtil.findLineChartDateQuotaLevel0(startDate, endDate, area, level, index, timelevel, SaveModel.interval_month);
|
|
|
}
|
|
|
|
|
|
DecimalFormat decimalFormat = new DecimalFormat("0.00");
|
|
|
|
|
|
if (saveModels != null) {
|
|
|
// 计算结果
|
|
@ -3043,11 +3679,11 @@ public class StatisticsEsService {
|
|
|
object.put("totalData",array);//新增量
|
|
|
JSONArray array1 = dateTotalStatistics2(startDate,endDate,area,level,index1,"0",SaveModel.timeLevel_ZL,null);//未接诊
|
|
|
object.put("noReceiveData",array1);//未接诊
|
|
|
JSONArray array2 = dateTotalStatistics2(startDate,endDate,area,level,index1,"1",SaveModel.timeLevel_ZL,null);//已接诊
|
|
|
JSONArray array2 = dateTotalStatistics2(startDate,endDate,area,level,index1,"1,2",SaveModel.timeLevel_ZL,null);//已接诊
|
|
|
object.put("haveReceiveData",array2);//已接诊
|
|
|
JSONArray array3 = dateTotalStatistics2(startDate,endDate,area,level,index,"-1",SaveModel.timeLevel_ZL,null);//患者取消
|
|
|
object.put("concleData",array3);//患者取消
|
|
|
JSONArray array4 = dateTotalStatistics2(startDate,endDate,area,level,index,"2",SaveModel.timeLevel_ZL,null);//已结束
|
|
|
JSONArray array4 = dateTotalStatistics2(startDate,endDate,area,level,index,"3",SaveModel.timeLevel_ZL,null);//已结束
|
|
|
object.put("endData",array4);//已结束
|
|
|
}
|
|
|
|
|
@ -3068,11 +3704,11 @@ public class StatisticsEsService {
|
|
|
object.put("totalData",array);//新增量
|
|
|
JSONArray array1 = weekTotalStatistics(startDate,endDate,area,level,index1,"0",SaveModel.timeLevel_ZL);//未接诊
|
|
|
object.put("noReceiveData",array1);;//未接诊
|
|
|
JSONArray array2 = weekTotalStatistics(startDate,endDate,area,level,index1,"1",SaveModel.timeLevel_ZL);//已接诊
|
|
|
JSONArray array2 = weekTotalStatistics(startDate,endDate,area,level,index1,"1,2",SaveModel.timeLevel_ZL);//已接诊
|
|
|
object.put("haveReceiveData",array2);//已接诊
|
|
|
JSONArray array3 = weekTotalStatistics(startDate,endDate,area,level,index,"-1",SaveModel.timeLevel_ZL);//患者取消
|
|
|
object.put("concleData",array3);//患者取消
|
|
|
JSONArray array4 = weekTotalStatistics(startDate,endDate,area,level,index,"2",SaveModel.timeLevel_ZL);//已结束
|
|
|
JSONArray array4 = weekTotalStatistics(startDate,endDate,area,level,index,"3",SaveModel.timeLevel_ZL);//已结束
|
|
|
object.put("endData",array3);//已结束
|
|
|
}
|
|
|
|
|
@ -3093,11 +3729,11 @@ public class StatisticsEsService {
|
|
|
object.put("totalData",array);
|
|
|
JSONArray array1 = monthTotalStatistics2(startDate,endDate,area,level,index1,"0",SaveModel.timeLevel_ZL,null);
|
|
|
object.put("noReceiveData",array1);
|
|
|
JSONArray array2 = monthTotalStatistics2(startDate,endDate,area,level,index1,"1",SaveModel.timeLevel_ZL,null);
|
|
|
JSONArray array2 = monthTotalStatistics2(startDate,endDate,area,level,index1,"1,2",SaveModel.timeLevel_ZL,null);
|
|
|
object.put("haveReceiveData",array2);
|
|
|
JSONArray array3 = monthTotalStatistics2(startDate,endDate,area,level,index,"-1",SaveModel.timeLevel_ZL,null);
|
|
|
object.put("concleData",array3);
|
|
|
JSONArray array4 = monthTotalStatistics2(startDate,endDate,area,level,index,"2",SaveModel.timeLevel_ZL,null);
|
|
|
JSONArray array4 = monthTotalStatistics2(startDate,endDate,area,level,index,"3",SaveModel.timeLevel_ZL,null);
|
|
|
object.put("endData",array4);
|
|
|
}
|
|
|
|
|
@ -3135,13 +3771,13 @@ public class StatisticsEsService {
|
|
|
result.put("resultList", getCoutListPC(level, lowLevel, endTotal, total, noRelyTotal,relyTotal,comingTotal));
|
|
|
}else {
|
|
|
//已结束
|
|
|
List<SaveModel> endTotal = elasticsearchUtil.findListDateQuotaLevel1(startTime, endTime, area, level, index, SaveModel.timeLevel_ZL, lowLevel,"2");
|
|
|
List<SaveModel> endTotal = elasticsearchUtil.findListDateQuotaLevel1(startTime, endTime, area, level, index, SaveModel.timeLevel_ZL, lowLevel,"3");
|
|
|
//居民取消
|
|
|
List<SaveModel> concleTotal = elasticsearchUtil.findListDateQuotaLevel1(startTime, endTime, area, level, index, SaveModel.timeLevel_ZL, lowLevel,"-1");
|
|
|
//咨询总数
|
|
|
List<SaveModel> total = elasticsearchUtil.findListDateQuotaLevel0(startTime, endTime, area, level, index1, SaveModel.timeLevel_ZL, lowLevel);
|
|
|
//已接诊
|
|
|
List<SaveModel> haveReceiveTotal = elasticsearchUtil.findListDateQuotaLevel1(startTime, endTime, area, level, index, SaveModel.timeLevel_ZL, lowLevel,"1");
|
|
|
List<SaveModel> haveReceiveTotal = elasticsearchUtil.findListDateQuotaLevel1(startTime, endTime, area, level, index, SaveModel.timeLevel_ZL, lowLevel,"1,2");
|
|
|
//未接诊
|
|
|
List<SaveModel> noReceiveTotal = elasticsearchUtil.findListDateQuotaLevel1(startTime, endTime, area, level, index, SaveModel.timeLevel_ZL, lowLevel,"0");
|
|
|
result.put("resultList", getCoutListPC1(level, lowLevel, endTotal, total, haveReceiveTotal,noReceiveTotal,concleTotal));
|