|  | @ -24,10 +24,13 @@ import org.apache.commons.lang3.StringUtils;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | import org.junit.runners.parameterized.BlockJUnit4ClassRunnerWithParametersFactory;
 | 
	
		
			
				|  |  | import org.omg.CORBA.OBJ_ADAPTER;
 | 
	
		
			
				|  |  | import org.slf4j.Logger;
 | 
	
		
			
				|  |  | import org.slf4j.LoggerFactory;
 | 
	
		
			
				|  |  | import org.springframework.beans.factory.annotation.Autowired;
 | 
	
		
			
				|  |  | import org.springframework.jdbc.core.JdbcTemplate;
 | 
	
		
			
				|  |  | import org.springframework.stereotype.Service;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | import javax.transaction.Transactional;
 | 
	
		
			
				|  |  | import javax.xml.soap.SAAJMetaFactory;
 | 
	
		
			
				|  |  | import java.security.acl.LastOwnerException;
 | 
	
		
			
				|  |  | import java.text.DecimalFormat;
 | 
	
	
		
			
				|  | @ -39,8 +42,11 @@ import java.util.*;
 | 
	
		
			
				|  |  |  * Created by wangzhinan on 2019/12/3.
 | 
	
		
			
				|  |  |  */
 | 
	
		
			
				|  |  | @Service
 | 
	
		
			
				|  |  | @Transactional
 | 
	
		
			
				|  |  | public class StatisticsEsService {
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     Logger logger = LoggerFactory.getLogger(StatisticsEsService.class);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     @Autowired
 | 
	
		
			
				|  |  |     private ElasticsearchUtil elasticsearchUtil;
 | 
	
		
			
				|  |  |     @Autowired
 | 
	
	
		
			
				|  | @ -113,9 +119,11 @@ public class StatisticsEsService {
 | 
	
		
			
				|  |  |         object.put("prescriptionRate",prescriptionRate);//开方率
 | 
	
		
			
				|  |  |         String startTime = DateUtil.getStringDateShort()+" 00:00:00";
 | 
	
		
			
				|  |  |         String endTime = DateUtil.getStringDateShort() +" 23:59:59";
 | 
	
		
			
				|  |  |         String sql = "select count(*) as total from base.wlyy_outpatient o where o.status=2 and o.create_time >='"+startTime+"' and o.create_time <='"+endTime+"'";
 | 
	
		
			
				|  |  |         String sql = "select count(*) as total from base.wlyy_consult_oupatient_info o where  o.create_time >='"+startTime+"' and o.create_time <='"+endTime+"'";
 | 
	
		
			
				|  |  |         if (level==4){
 | 
	
		
			
				|  |  |             sql += " and o.doctor IN (SELECT doctor_code FROM `base_doctor_hospital` dh where dh.org_code ='"+area+"' and dh.del=1)";
 | 
	
		
			
				|  |  |         }if (level==2){
 | 
	
		
			
				|  |  |             sql += " 1=1 ";
 | 
	
		
			
				|  |  |         }else if (level==5){
 | 
	
		
			
				|  |  |             sql += " and o.doctor IN (SELECT doctor_code FROM `base_doctor_hospital` dh where dh.dept_code ='"+area+"' and dh.del=1)";
 | 
	
		
			
				|  |  |         }else if (level==6){
 | 
	
	
		
			
				|  | @ -150,6 +158,7 @@ public class StatisticsEsService {
 | 
	
		
			
				|  |  |      * @throws Exception
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public JSONObject getOutPatientLine(String startDate, String endDate, String area, int level, String index,int interval, String level2_type) throws Exception {
 | 
	
		
			
				|  |  |         logger.info("service index:"+index+" and level2_type:"+level2_type+" and level:"+level);
 | 
	
		
			
				|  |  |         //问诊量
 | 
	
		
			
				|  |  |         JSONObject object = new JSONObject();
 | 
	
		
			
				|  |  |         if (interval==1){
 | 
	
	
		
			
				|  | @ -175,15 +184,15 @@ public class StatisticsEsService {
 | 
	
		
			
				|  |  |             JSONArray array4 = weekTotalStatistics(startDate,endDate,area,level,"5","16",SaveModel.timeLevel_ZL);
 | 
	
		
			
				|  |  |             object.put("vedioData",array4);
 | 
	
		
			
				|  |  |         }else if (interval==3){
 | 
	
		
			
				|  |  |             JSONArray array = monthTotalStatistics2(startDate,endDate,area,level,index,null,SaveModel.timeLevel_ZL);
 | 
	
		
			
				|  |  |             JSONArray array = monthTotalStatistics2(startDate,endDate,area,level,index,null,SaveModel.timeLevel_ZL,null);
 | 
	
		
			
				|  |  |             object.put("data",array);
 | 
	
		
			
				|  |  |             JSONArray array1 = monthTotalStatistics2(startDate,endDate,area,level,"5","1",SaveModel.timeLevel_ZL);
 | 
	
		
			
				|  |  |             JSONArray array1 = monthTotalStatistics2(startDate,endDate,area,level,"5","1",SaveModel.timeLevel_ZL,null);
 | 
	
		
			
				|  |  |             object.put("specialistData",array1);
 | 
	
		
			
				|  |  |             JSONArray array2 = monthTotalStatistics2(startDate,endDate,area,level,"5","9",SaveModel.timeLevel_ZL);
 | 
	
		
			
				|  |  |             JSONArray array2 = monthTotalStatistics2(startDate,endDate,area,level,"5","9",SaveModel.timeLevel_ZL,null);
 | 
	
		
			
				|  |  |             object.put("topicData",array2);
 | 
	
		
			
				|  |  |             JSONArray array3 = monthTotalStatistics2(startDate,endDate,area,level,"5","12",SaveModel.timeLevel_ZL);
 | 
	
		
			
				|  |  |             JSONArray array3 = monthTotalStatistics2(startDate,endDate,area,level,"5","12",SaveModel.timeLevel_ZL,null);
 | 
	
		
			
				|  |  |             object.put("synergyData",array3);
 | 
	
		
			
				|  |  |             JSONArray array4 = monthTotalStatistics2(startDate,endDate,area,level,"5","16",SaveModel.timeLevel_ZL);
 | 
	
		
			
				|  |  |             JSONArray array4 = monthTotalStatistics2(startDate,endDate,area,level,"5","16",SaveModel.timeLevel_ZL,null);
 | 
	
		
			
				|  |  |             object.put("vedioData",array4);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         if (StringUtils.isNoneBlank(level2_type)){
 | 
	
	
		
			
				|  | @ -200,6 +209,283 @@ public class StatisticsEsService {
 | 
	
		
			
				|  |  |             JSONArray array = new JSONArray();
 | 
	
		
			
				|  |  |             List<String> list = new ArrayList<>();
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             for (SaveModel saveModel:syngySaveModels){
 | 
	
		
			
				|  |  |                 if (level2_type.equals(SaveModel.OrgLevel)){
 | 
	
		
			
				|  |  |                     if (StringUtils.isNoneBlank(saveModel.getHospital())){
 | 
	
		
			
				|  |  |                         list.add(saveModel.getHospital());
 | 
	
		
			
				|  |  |                     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                 }else if (level2_type.equals(SaveModel.deptLevel)){
 | 
	
		
			
				|  |  |                     if (StringUtils.isNoneBlank(saveModel.getDept())){
 | 
	
		
			
				|  |  |                         list.add(saveModel.getDept());
 | 
	
		
			
				|  |  |                     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                 }else if (level2_type.equals(SaveModel.doctorLevel)){
 | 
	
		
			
				|  |  |                     if (StringUtils.isNoneBlank(saveModel.getDoctor())){
 | 
	
		
			
				|  |  |                         list.add(saveModel.getDoctor());
 | 
	
		
			
				|  |  |                     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             for (int i=0;i<list.size();i++){
 | 
	
		
			
				|  |  |                 String code = list.get(i);
 | 
	
		
			
				|  |  |                 JSONObject jsonObject = new JSONObject();
 | 
	
		
			
				|  |  |                 Double specialist = 0.0;
 | 
	
		
			
				|  |  |                 Double topic = 0.0;
 | 
	
		
			
				|  |  |                 Double vedio =0.0;
 | 
	
		
			
				|  |  |                 Double synegy =0.0;
 | 
	
		
			
				|  |  |                 if (index.equalsIgnoreCase("3")){
 | 
	
		
			
				|  |  |                     specialist = 0.0;
 | 
	
		
			
				|  |  |                 }else if (index.equalsIgnoreCase("5")){
 | 
	
		
			
				|  |  |                     for (SaveModel saveModel:specialistSaveModels){
 | 
	
		
			
				|  |  |                         if (level2_type.equals(SaveModel.OrgLevel)){
 | 
	
		
			
				|  |  |                             if (StringUtils.isNoneBlank(saveModel.getHospital())&&code.equalsIgnoreCase(saveModel.getHospital())){
 | 
	
		
			
				|  |  |                                 jsonObject.put("code",code);
 | 
	
		
			
				|  |  |                                 jsonObject.put("name",saveModel.getHospitalName());
 | 
	
		
			
				|  |  |                                 jsonObject.put("specialist",saveModel.getResult1());
 | 
	
		
			
				|  |  |                                 specialist = saveModel.getResult1();
 | 
	
		
			
				|  |  |                                 break;
 | 
	
		
			
				|  |  |                             }
 | 
	
		
			
				|  |  |                         }else if (level2_type.equals(SaveModel.deptLevel)){
 | 
	
		
			
				|  |  |                             if (StringUtils.isNoneBlank(saveModel.getDept())&&code.equalsIgnoreCase(saveModel.getDept())){
 | 
	
		
			
				|  |  |                                 jsonObject.put("code",code);
 | 
	
		
			
				|  |  |                                 jsonObject.put("name",saveModel.getDeptName());
 | 
	
		
			
				|  |  |                                 jsonObject.put("specialist",saveModel.getResult1());
 | 
	
		
			
				|  |  |                                 specialist = saveModel.getResult1();
 | 
	
		
			
				|  |  |                                 break;
 | 
	
		
			
				|  |  |                             }
 | 
	
		
			
				|  |  |                         }else if (level2_type.equals(SaveModel.doctorLevel)){
 | 
	
		
			
				|  |  |                             if (StringUtils.isNoneBlank(saveModel.getDoctor())&&code.equalsIgnoreCase(saveModel.getDoctor())){
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                                 if (level==6){
 | 
	
		
			
				|  |  |                                     List<BaseDoctorHospitalDO> doctorHospitalDOS = doctorHospitalDao.findByDoctorCode(area);
 | 
	
		
			
				|  |  |                                     if (doctorHospitalDOS!=null&&doctorHospitalDOS.size()!=0){
 | 
	
		
			
				|  |  |                                         BaseDoctorHospitalDO doctorHospitalDO = doctorHospitalDOS.get(0);
 | 
	
		
			
				|  |  |                                         jsonObject.put("code",doctorHospitalDO.getDeptCode());
 | 
	
		
			
				|  |  |                                         jsonObject.put("name",doctorHospitalDO.getDeptName());
 | 
	
		
			
				|  |  |                                     }
 | 
	
		
			
				|  |  |                                 }else {
 | 
	
		
			
				|  |  |                                     DictHospitalDeptDO dictHospitalDeptDO =  hospitalDeptDao.findByCode(area);
 | 
	
		
			
				|  |  |                                     jsonObject.put("code",area);
 | 
	
		
			
				|  |  |                                     jsonObject.put("name",dictHospitalDeptDO.getName());
 | 
	
		
			
				|  |  |                                 }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                                 jsonObject.put("doctorCode",code);
 | 
	
		
			
				|  |  |                                 BaseDoctorDO doctorDO = doctorDao.findById(code);
 | 
	
		
			
				|  |  |                                 if (doctorDO!=null){
 | 
	
		
			
				|  |  |                                     jsonObject.put("doctorJob",doctorDO.getJobTitleName());
 | 
	
		
			
				|  |  |                                 }else {
 | 
	
		
			
				|  |  |                                     jsonObject.put("doctorJob",null);
 | 
	
		
			
				|  |  |                                 }
 | 
	
		
			
				|  |  |                                 jsonObject.put("doctorName",saveModel.getDoctorName());
 | 
	
		
			
				|  |  |                                 jsonObject.put("specialist",saveModel.getResult1());
 | 
	
		
			
				|  |  |                                 specialist = saveModel.getResult1();
 | 
	
		
			
				|  |  |                                 break;
 | 
	
		
			
				|  |  |                             }
 | 
	
		
			
				|  |  |                         }
 | 
	
		
			
				|  |  |                     }
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                 for (SaveModel saveModel:syngySaveModels){
 | 
	
		
			
				|  |  |                     if (level2_type.equals(SaveModel.OrgLevel)){
 | 
	
		
			
				|  |  |                         if (StringUtils.isNoneBlank(saveModel.getHospital())&&code.equalsIgnoreCase(saveModel.getHospital())){
 | 
	
		
			
				|  |  |                             jsonObject.put("code",code);
 | 
	
		
			
				|  |  |                             jsonObject.put("name",saveModel.getHospitalName());
 | 
	
		
			
				|  |  |                             jsonObject.put("synegy",saveModel.getResult1());
 | 
	
		
			
				|  |  |                             synegy = saveModel.getResult1();
 | 
	
		
			
				|  |  |                             break;
 | 
	
		
			
				|  |  |                         }
 | 
	
		
			
				|  |  |                     }else if (level2_type.equals(SaveModel.deptLevel)){
 | 
	
		
			
				|  |  |                         if (StringUtils.isNoneBlank(saveModel.getDept())&&code.equalsIgnoreCase(saveModel.getDept())){
 | 
	
		
			
				|  |  |                             jsonObject.put("code",code);
 | 
	
		
			
				|  |  |                             jsonObject.put("name",saveModel.getDeptName());
 | 
	
		
			
				|  |  |                             jsonObject.put("synegy",saveModel.getResult1());
 | 
	
		
			
				|  |  |                             synegy = saveModel.getResult1();
 | 
	
		
			
				|  |  |                             break;
 | 
	
		
			
				|  |  |                         }
 | 
	
		
			
				|  |  |                     }else if (level2_type.equals(SaveModel.doctorLevel)){
 | 
	
		
			
				|  |  |                         if (StringUtils.isNoneBlank(saveModel.getDoctor())&&code.equalsIgnoreCase(saveModel.getDoctor())){
 | 
	
		
			
				|  |  |                             if (level==6){
 | 
	
		
			
				|  |  |                                 List<BaseDoctorHospitalDO> doctorHospitalDOS = doctorHospitalDao.findByDoctorCode(area);
 | 
	
		
			
				|  |  |                                 if (doctorHospitalDOS!=null&&doctorHospitalDOS.size()!=0){
 | 
	
		
			
				|  |  |                                     BaseDoctorHospitalDO doctorHospitalDO = doctorHospitalDOS.get(0);
 | 
	
		
			
				|  |  |                                     jsonObject.put("code",doctorHospitalDO.getDeptCode());
 | 
	
		
			
				|  |  |                                     jsonObject.put("name",doctorHospitalDO.getDeptName());
 | 
	
		
			
				|  |  |                                 }
 | 
	
		
			
				|  |  |                             }else {
 | 
	
		
			
				|  |  |                                 DictHospitalDeptDO dictHospitalDeptDO =  hospitalDeptDao.findByCode(area);
 | 
	
		
			
				|  |  |                                 jsonObject.put("code",area);
 | 
	
		
			
				|  |  |                                 jsonObject.put("name",dictHospitalDeptDO.getName());
 | 
	
		
			
				|  |  |                             }
 | 
	
		
			
				|  |  |                             BaseDoctorDO doctorDO = doctorDao.findById(code);
 | 
	
		
			
				|  |  |                             if (doctorDO!=null){
 | 
	
		
			
				|  |  |                                 jsonObject.put("doctorJob",doctorDO.getJobTitleName());
 | 
	
		
			
				|  |  |                             }else {
 | 
	
		
			
				|  |  |                                 jsonObject.put("doctorJob",null);
 | 
	
		
			
				|  |  |                             }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                             jsonObject.put("doctorCode",code);
 | 
	
		
			
				|  |  |                             jsonObject.put("doctorName",saveModel.getDoctorName());
 | 
	
		
			
				|  |  |                             jsonObject.put("synegy",saveModel.getResult1());
 | 
	
		
			
				|  |  |                             synegy = saveModel.getResult1();
 | 
	
		
			
				|  |  |                             break;
 | 
	
		
			
				|  |  |                         }
 | 
	
		
			
				|  |  |                     }
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |                 for (SaveModel saveModel:topicSaveModels){
 | 
	
		
			
				|  |  |                     if (level2_type.equals(SaveModel.OrgLevel)){
 | 
	
		
			
				|  |  |                         if (StringUtils.isNoneBlank(saveModel.getHospital())&&code.equalsIgnoreCase(saveModel.getHospital())){
 | 
	
		
			
				|  |  |                             jsonObject.put("code",code);
 | 
	
		
			
				|  |  |                             jsonObject.put("name",saveModel.getHospitalName());
 | 
	
		
			
				|  |  |                             jsonObject.put("topic",saveModel.getResult1());
 | 
	
		
			
				|  |  |                             topic = saveModel.getResult1();
 | 
	
		
			
				|  |  |                             break;
 | 
	
		
			
				|  |  |                         }
 | 
	
		
			
				|  |  |                     }else if (level2_type.equals(SaveModel.deptLevel)){
 | 
	
		
			
				|  |  |                         if (StringUtils.isNoneBlank(saveModel.getDept())&&code.equalsIgnoreCase(saveModel.getDept())){
 | 
	
		
			
				|  |  |                             jsonObject.put("code",code);
 | 
	
		
			
				|  |  |                             jsonObject.put("name",saveModel.getDeptName());
 | 
	
		
			
				|  |  |                             jsonObject.put("topic",saveModel.getResult1());
 | 
	
		
			
				|  |  |                             topic = saveModel.getResult1();
 | 
	
		
			
				|  |  |                             break;
 | 
	
		
			
				|  |  |                         }
 | 
	
		
			
				|  |  |                     }else if (level2_type.equals(SaveModel.doctorLevel)){
 | 
	
		
			
				|  |  |                         if (StringUtils.isNoneBlank(saveModel.getDoctor())&&code.equalsIgnoreCase(saveModel.getDoctor())){
 | 
	
		
			
				|  |  |                             if (level==6){
 | 
	
		
			
				|  |  |                                 List<BaseDoctorHospitalDO> doctorHospitalDOS = doctorHospitalDao.findByDoctorCode(area);
 | 
	
		
			
				|  |  |                                 if (doctorHospitalDOS!=null&&doctorHospitalDOS.size()!=0){
 | 
	
		
			
				|  |  |                                     BaseDoctorHospitalDO doctorHospitalDO = doctorHospitalDOS.get(0);
 | 
	
		
			
				|  |  |                                     jsonObject.put("code",doctorHospitalDO.getDeptCode());
 | 
	
		
			
				|  |  |                                     jsonObject.put("name",doctorHospitalDO.getDeptName());
 | 
	
		
			
				|  |  |                                 }
 | 
	
		
			
				|  |  |                             }else {
 | 
	
		
			
				|  |  |                                 DictHospitalDeptDO dictHospitalDeptDO =  hospitalDeptDao.findByCode(area);
 | 
	
		
			
				|  |  |                                 jsonObject.put("code",area);
 | 
	
		
			
				|  |  |                                 jsonObject.put("name",dictHospitalDeptDO.getName());
 | 
	
		
			
				|  |  |                             }
 | 
	
		
			
				|  |  |                             BaseDoctorDO doctorDO = doctorDao.findById(code);
 | 
	
		
			
				|  |  |                             if (doctorDO!=null){
 | 
	
		
			
				|  |  |                                 jsonObject.put("doctorJob",doctorDO.getJobTitleName());
 | 
	
		
			
				|  |  |                             }else {
 | 
	
		
			
				|  |  |                                 jsonObject.put("doctorJob",null);
 | 
	
		
			
				|  |  |                             }
 | 
	
		
			
				|  |  |                             jsonObject.put("doctorCode",code);
 | 
	
		
			
				|  |  |                             jsonObject.put("doctorName",saveModel.getDoctorName());
 | 
	
		
			
				|  |  |                             jsonObject.put("topic",saveModel.getResult1());
 | 
	
		
			
				|  |  |                             topic = saveModel.getResult1();
 | 
	
		
			
				|  |  |                             break;
 | 
	
		
			
				|  |  |                         }
 | 
	
		
			
				|  |  |                     }
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |                 for (SaveModel saveModel:vedioSaveModels){
 | 
	
		
			
				|  |  |                     if (level2_type.equals(SaveModel.OrgLevel)){
 | 
	
		
			
				|  |  |                         if (StringUtils.isNoneBlank(saveModel.getHospital())&&code.equalsIgnoreCase(saveModel.getHospital())){
 | 
	
		
			
				|  |  |                             jsonObject.put("code",code);
 | 
	
		
			
				|  |  |                             jsonObject.put("name",saveModel.getHospitalName());
 | 
	
		
			
				|  |  |                             jsonObject.put("vedio",saveModel.getResult1());
 | 
	
		
			
				|  |  |                             vedio = saveModel.getResult1();
 | 
	
		
			
				|  |  |                             break;
 | 
	
		
			
				|  |  |                         }
 | 
	
		
			
				|  |  |                     }else if (level2_type.equals(SaveModel.deptLevel)){
 | 
	
		
			
				|  |  |                         if (StringUtils.isNoneBlank(saveModel.getDept())&&code.equalsIgnoreCase(saveModel.getDept())){
 | 
	
		
			
				|  |  |                             jsonObject.put("code",code);
 | 
	
		
			
				|  |  |                             jsonObject.put("name",saveModel.getDeptName());
 | 
	
		
			
				|  |  |                             jsonObject.put("vedio",saveModel.getResult1());
 | 
	
		
			
				|  |  |                             vedio = saveModel.getResult1();
 | 
	
		
			
				|  |  |                             break;
 | 
	
		
			
				|  |  |                         }
 | 
	
		
			
				|  |  |                     }else if (level2_type.equals(SaveModel.doctorLevel)){
 | 
	
		
			
				|  |  |                         if (StringUtils.isNoneBlank(saveModel.getDoctor())&&code.equalsIgnoreCase(saveModel.getDoctor())){
 | 
	
		
			
				|  |  |                             if (level==6){
 | 
	
		
			
				|  |  |                                 List<BaseDoctorHospitalDO> doctorHospitalDOS = doctorHospitalDao.findByDoctorCode(area);
 | 
	
		
			
				|  |  |                                 if (doctorHospitalDOS!=null&&doctorHospitalDOS.size()!=0){
 | 
	
		
			
				|  |  |                                     BaseDoctorHospitalDO doctorHospitalDO = doctorHospitalDOS.get(0);
 | 
	
		
			
				|  |  |                                     jsonObject.put("code",doctorHospitalDO.getDeptCode());
 | 
	
		
			
				|  |  |                                     jsonObject.put("name",doctorHospitalDO.getDeptName());
 | 
	
		
			
				|  |  |                                 }
 | 
	
		
			
				|  |  |                             }else {
 | 
	
		
			
				|  |  |                                 DictHospitalDeptDO dictHospitalDeptDO =  hospitalDeptDao.findByCode(area);
 | 
	
		
			
				|  |  |                                 jsonObject.put("code",area);
 | 
	
		
			
				|  |  |                                 jsonObject.put("name",dictHospitalDeptDO.getName());
 | 
	
		
			
				|  |  |                             }
 | 
	
		
			
				|  |  |                             jsonObject.put("doctorCode",code);
 | 
	
		
			
				|  |  |                             BaseDoctorDO doctorDO = doctorDao.findById(code);
 | 
	
		
			
				|  |  |                             if (doctorDO!=null){
 | 
	
		
			
				|  |  |                                 jsonObject.put("doctorJob",doctorDO.getJobTitleName());
 | 
	
		
			
				|  |  |                             }else {
 | 
	
		
			
				|  |  |                                 jsonObject.put("doctorJob",null);
 | 
	
		
			
				|  |  |                             }
 | 
	
		
			
				|  |  |                             jsonObject.put("doctorName",saveModel.getDoctorName());
 | 
	
		
			
				|  |  |                             jsonObject.put("vedio",saveModel.getResult1());
 | 
	
		
			
				|  |  |                             vedio = saveModel.getResult1();
 | 
	
		
			
				|  |  |                             break;
 | 
	
		
			
				|  |  |                         }
 | 
	
		
			
				|  |  |                     }
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |                 Double total1 = topic+vedio ;//图文和视频总和
 | 
	
		
			
				|  |  |                 Double total = topic+vedio+synegy+specialist;//总和
 | 
	
		
			
				|  |  |                 jsonObject.put("total1",total1);//图文和视频总和
 | 
	
		
			
				|  |  |                 jsonObject.put("total",total);//总和
 | 
	
		
			
				|  |  |                 array.add(jsonObject);
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             object.put("excelData",array);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         return object;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public JSONObject getOutPatientPriceLine(String startDate, String endDate, String area, int level, String index,int interval, String level2_type) throws Exception {
 | 
	
		
			
				|  |  |         logger.info("service index:"+index+" and level2_type:"+level2_type+" and level:"+level);
 | 
	
		
			
				|  |  |         //问诊量
 | 
	
		
			
				|  |  |         JSONObject object = new JSONObject();
 | 
	
		
			
				|  |  |         if (interval==1){
 | 
	
		
			
				|  |  |             JSONArray array = dateTotalStatistics2(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);
 | 
	
		
			
				|  |  |             object.put("specialistData",array1);
 | 
	
		
			
				|  |  |             JSONArray array2 = dateTotalStatistics2(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);
 | 
	
		
			
				|  |  |             object.put("synergyData",array3);
 | 
	
		
			
				|  |  |             JSONArray array4 = dateTotalStatistics2(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);
 | 
	
		
			
				|  |  |             object.put("data",array);
 | 
	
		
			
				|  |  |             JSONArray array1 = weekTotalStatistics2(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");
 | 
	
		
			
				|  |  |             object.put("topicData",array2);
 | 
	
		
			
				|  |  |             JSONArray array3 = weekTotalStatistics2(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");
 | 
	
		
			
				|  |  |             object.put("vedioData",array4);
 | 
	
		
			
				|  |  |         }else if (interval==3){
 | 
	
		
			
				|  |  |             JSONArray array = monthTotalStatistics2(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");
 | 
	
		
			
				|  |  |             object.put("specialistData",array1);
 | 
	
		
			
				|  |  |             JSONArray array2 = monthTotalStatistics2(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);
 | 
	
		
			
				|  |  |             object.put("synergyData",array3);
 | 
	
		
			
				|  |  |             JSONArray array4 = monthTotalStatistics2(startDate,endDate,area,level,"3","1",SaveModel.timeLevel_ZL,"2");
 | 
	
		
			
				|  |  |             object.put("vedioData",array4);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         if (StringUtils.isNoneBlank(level2_type)){
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             //问诊量表格
 | 
	
		
			
				|  |  |             //专家咨询数量
 | 
	
		
			
				|  |  |             List<SaveModel> specialistSaveModels = elasticsearchUtil.findDateQuotaLevel1(startDate, endDate, area, level, index, SaveModel.timeLevel_ZL,"3",null,level2_type);
 | 
	
		
			
				|  |  |             //协同门诊
 | 
	
		
			
				|  |  |             List<SaveModel> syngySaveModels = elasticsearchUtil.findDateQuotaLevel1(startDate, endDate, area, level, index, SaveModel.timeLevel_ZL,"2",null,level2_type);
 | 
	
		
			
				|  |  |             //图文复诊
 | 
	
		
			
				|  |  |             List<SaveModel> topicSaveModels = elasticsearchUtil.findDateQuotaLevel2(startDate, endDate, area, level, index, SaveModel.timeLevel_ZL,"1","1",null,level2_type);
 | 
	
		
			
				|  |  |             ///视频复诊
 | 
	
		
			
				|  |  |             List<SaveModel> vedioSaveModels = elasticsearchUtil.findDateQuotaLevel2(startDate, endDate, area, level, index, SaveModel.timeLevel_ZL,"1","2",null,level2_type);
 | 
	
		
			
				|  |  |             JSONArray array = new JSONArray();
 | 
	
		
			
				|  |  |             List<String> list = new ArrayList<>();
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             for (SaveModel saveModel:syngySaveModels){
 | 
	
		
			
				|  |  |                 if (level2_type.equals(SaveModel.deptLevel)){
 | 
	
		
			
				|  |  |                     if (StringUtils.isNoneBlank(saveModel.getDept())){
 | 
	
	
		
			
				|  | @ -211,6 +497,11 @@ public class StatisticsEsService {
 | 
	
		
			
				|  |  |                         list.add(saveModel.getDoctor());
 | 
	
		
			
				|  |  |                     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                 }else if (level2_type.equals(SaveModel.OrgLevel)){
 | 
	
		
			
				|  |  |                     if (StringUtils.isNoneBlank(saveModel.getHospital())){
 | 
	
		
			
				|  |  |                         list.add(saveModel.getHospital());
 | 
	
		
			
				|  |  |                     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             for (int i=0;i<list.size();i++){
 | 
	
	
		
			
				|  | @ -224,7 +515,15 @@ public class StatisticsEsService {
 | 
	
		
			
				|  |  |                     specialist = 0.0;
 | 
	
		
			
				|  |  |                 }else if (index.equalsIgnoreCase("5")){
 | 
	
		
			
				|  |  |                     for (SaveModel saveModel:specialistSaveModels){
 | 
	
		
			
				|  |  |                         if (level2_type.equals(SaveModel.deptLevel)){
 | 
	
		
			
				|  |  |                         if (level2_type.equals(SaveModel.OrgLevel)){
 | 
	
		
			
				|  |  |                             if (StringUtils.isNoneBlank(saveModel.getHospital())&&code.equalsIgnoreCase(saveModel.getHospital())){
 | 
	
		
			
				|  |  |                                 jsonObject.put("code",code);
 | 
	
		
			
				|  |  |                                 jsonObject.put("name",saveModel.getHospitalName());
 | 
	
		
			
				|  |  |                                 jsonObject.put("specialist",saveModel.getResult1());
 | 
	
		
			
				|  |  |                                 specialist = saveModel.getResult1();
 | 
	
		
			
				|  |  |                                 break;
 | 
	
		
			
				|  |  |                             }
 | 
	
		
			
				|  |  |                         }else if (level2_type.equals(SaveModel.deptLevel)){
 | 
	
		
			
				|  |  |                             if (StringUtils.isNoneBlank(saveModel.getDept())&&code.equalsIgnoreCase(saveModel.getDept())){
 | 
	
		
			
				|  |  |                                 jsonObject.put("code",code);
 | 
	
		
			
				|  |  |                                 jsonObject.put("name",saveModel.getDeptName());
 | 
	
	
		
			
				|  | @ -265,7 +564,15 @@ public class StatisticsEsService {
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                 for (SaveModel saveModel:syngySaveModels){
 | 
	
		
			
				|  |  |                     if (level2_type.equals(SaveModel.deptLevel)){
 | 
	
		
			
				|  |  |                     if (level2_type.equals(SaveModel.OrgLevel)){
 | 
	
		
			
				|  |  |                         if (StringUtils.isNoneBlank(saveModel.getHospital())&&code.equalsIgnoreCase(saveModel.getHospital())){
 | 
	
		
			
				|  |  |                             jsonObject.put("code",code);
 | 
	
		
			
				|  |  |                             jsonObject.put("name",saveModel.getHospitalName());
 | 
	
		
			
				|  |  |                             jsonObject.put("synegy",saveModel.getResult1());
 | 
	
		
			
				|  |  |                             synegy = saveModel.getResult1();
 | 
	
		
			
				|  |  |                             break;
 | 
	
		
			
				|  |  |                         }
 | 
	
		
			
				|  |  |                     }else if (level2_type.equals(SaveModel.deptLevel)){
 | 
	
		
			
				|  |  |                         if (StringUtils.isNoneBlank(saveModel.getDept())&&code.equalsIgnoreCase(saveModel.getDept())){
 | 
	
		
			
				|  |  |                             jsonObject.put("code",code);
 | 
	
		
			
				|  |  |                             jsonObject.put("name",saveModel.getDeptName());
 | 
	
	
		
			
				|  | @ -303,7 +610,15 @@ public class StatisticsEsService {
 | 
	
		
			
				|  |  |                     }
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |                 for (SaveModel saveModel:topicSaveModels){
 | 
	
		
			
				|  |  |                     if (level2_type.equals(SaveModel.deptLevel)){
 | 
	
		
			
				|  |  |                     if (level2_type.equals(SaveModel.OrgLevel)){
 | 
	
		
			
				|  |  |                         if (StringUtils.isNoneBlank(saveModel.getHospital())&&code.equalsIgnoreCase(saveModel.getHospital())){
 | 
	
		
			
				|  |  |                             jsonObject.put("code",code);
 | 
	
		
			
				|  |  |                             jsonObject.put("name",saveModel.getHospitalName());
 | 
	
		
			
				|  |  |                             jsonObject.put("topic",saveModel.getResult1());
 | 
	
		
			
				|  |  |                             synegy = saveModel.getResult1();
 | 
	
		
			
				|  |  |                             break;
 | 
	
		
			
				|  |  |                         }
 | 
	
		
			
				|  |  |                     }else if (level2_type.equals(SaveModel.deptLevel)){
 | 
	
		
			
				|  |  |                         if (StringUtils.isNoneBlank(saveModel.getDept())&&code.equalsIgnoreCase(saveModel.getDept())){
 | 
	
		
			
				|  |  |                             jsonObject.put("code",code);
 | 
	
		
			
				|  |  |                             jsonObject.put("name",saveModel.getDeptName());
 | 
	
	
		
			
				|  | @ -340,7 +655,15 @@ public class StatisticsEsService {
 | 
	
		
			
				|  |  |                     }
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |                 for (SaveModel saveModel:vedioSaveModels){
 | 
	
		
			
				|  |  |                     if (level2_type.equals(SaveModel.deptLevel)){
 | 
	
		
			
				|  |  |                     if (level2_type.equals(SaveModel.OrgLevel)){
 | 
	
		
			
				|  |  |                         if (StringUtils.isNoneBlank(saveModel.getHospital())&&code.equalsIgnoreCase(saveModel.getHospital())){
 | 
	
		
			
				|  |  |                             jsonObject.put("code",code);
 | 
	
		
			
				|  |  |                             jsonObject.put("name",saveModel.getHospitalName());
 | 
	
		
			
				|  |  |                             jsonObject.put("vedio",saveModel.getResult1());
 | 
	
		
			
				|  |  |                             vedio = saveModel.getResult1();
 | 
	
		
			
				|  |  |                             break;
 | 
	
		
			
				|  |  |                         }
 | 
	
		
			
				|  |  |                     }else  if (level2_type.equals(SaveModel.deptLevel)){
 | 
	
		
			
				|  |  |                         if (StringUtils.isNoneBlank(saveModel.getDept())&&code.equalsIgnoreCase(saveModel.getDept())){
 | 
	
		
			
				|  |  |                             jsonObject.put("code",code);
 | 
	
		
			
				|  |  |                             jsonObject.put("name",saveModel.getDeptName());
 | 
	
	
		
			
				|  | @ -1311,6 +1634,172 @@ public class StatisticsEsService {
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     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");
 | 
	
		
			
				|  |  |         // 起始日期
 | 
	
		
			
				|  |  |         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)) {
 | 
	
		
			
				|  |  |             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 {
 | 
	
		
			
				|  |  |             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();
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 按月统计 折线图
 | 
	
		
			
				|  |  |      *
 | 
	
	
		
			
				|  | @ -1323,7 +1812,7 @@ public class StatisticsEsService {
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      * @throws Exception
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     private JSONArray monthTotalStatistics2(String startDate, String endDate, String area, int level, String index, String lowCode, String timelevel) throws Exception {
 | 
	
		
			
				|  |  |     private JSONArray monthTotalStatistics2(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");
 | 
	
		
			
				|  |  | 
 | 
	
	
		
			
				|  | @ -1394,7 +1883,11 @@ public class StatisticsEsService {
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         List<SaveModel> saveModels = new ArrayList<>();
 | 
	
		
			
				|  |  |         if (StringUtils.isNotBlank(lowCode)) {
 | 
	
		
			
				|  |  |             saveModels = elasticsearchUtil.findLineChartDateQuotaLevel1(startDate, endDate, area, level, index, timelevel, SaveModel.interval_month, 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 {
 | 
	
		
			
				|  |  |             saveModels = elasticsearchUtil.findLineChartDateQuotaLevel0(startDate, endDate, area, level, index, timelevel, SaveModel.interval_month);
 | 
	
		
			
				|  |  |         }
 | 
	
	
		
			
				|  | @ -1644,7 +2137,7 @@ public class StatisticsEsService {
 | 
	
		
			
				|  |  |             JSONArray array = weekTotalStatistics(startDate,endDate,area,level,index,null,SaveModel.timeLevel_ZL);
 | 
	
		
			
				|  |  |             object.put("data",array);
 | 
	
		
			
				|  |  |         }else if (interval==3){
 | 
	
		
			
				|  |  |             JSONArray array = monthTotalStatistics2(startDate,endDate,area,level,index,null,SaveModel.timeLevel_ZL);
 | 
	
		
			
				|  |  |             JSONArray array = monthTotalStatistics2(startDate,endDate,area,level,index,null,SaveModel.timeLevel_ZL,null);
 | 
	
		
			
				|  |  |             object.put("data",array);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         return object;
 | 
	
	
		
			
				|  | @ -1932,7 +2425,7 @@ public class StatisticsEsService {
 | 
	
		
			
				|  |  |         }else if (interval==2){
 | 
	
		
			
				|  |  |             array = weekTotalStatistics(startDate,endDate,area,level,index,null,SaveModel.timeLevel_ZL);
 | 
	
		
			
				|  |  |         }else if (interval==3){
 | 
	
		
			
				|  |  |             array = monthTotalStatistics2(startDate,endDate,area,level,index,null,SaveModel.timeLevel_ZL);
 | 
	
		
			
				|  |  |             array = monthTotalStatistics2(startDate,endDate,area,level,index,null,SaveModel.timeLevel_ZL,null);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         for (int i=0;i<array.size();i++){
 | 
	
		
			
				|  |  |             JSONObject jsonObject = array.getJSONObject(i);
 | 
	
	
		
			
				|  | @ -2168,11 +2661,24 @@ public class StatisticsEsService {
 | 
	
		
			
				|  |  |             resultMaps.add(rs);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         //根据为回复数排序
 | 
	
		
			
				|  |  |         Collections.sort(resultMaps, new Comparator<Map<String, Object>>() {
 | 
	
		
			
				|  |  |        /* Collections.sort(resultMaps, new Comparator<Map<String, Object>>() {
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             public int compare(Map<String, Object> o1, Map<String, Object> o2) {
 | 
	
		
			
				|  |  |                 return (Double) o1.get("total") < (Double) o2.get("total") ? 1 : ((Double) o1.get("total") == (Double) o2.get("total") ? 0 : -1);
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         });*/
 | 
	
		
			
				|  |  |         Collections.sort(resultMaps, new Comparator<Map<String,Object>>() {
 | 
	
		
			
				|  |  |             @Override
 | 
	
		
			
				|  |  |             public int compare(Map<String,Object> o1, Map<String,Object> o2) {
 | 
	
		
			
				|  |  |                 Double total1 = (Double) o1.get("total");
 | 
	
		
			
				|  |  |                 Double total2 = (Double) o2.get("total");
 | 
	
		
			
				|  |  |                 if (total1 - total2 > 0) {
 | 
	
		
			
				|  |  |                     return -1;
 | 
	
		
			
				|  |  |                 } else if (total1 - total2 < 0) {
 | 
	
		
			
				|  |  |                     return 1;
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |                 return 0;
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         });
 | 
	
		
			
				|  |  |         result1.put("resultList", resultMaps);
 | 
	
		
			
				|  |  |         return result1;
 | 
	
	
		
			
				|  | @ -2278,7 +2784,7 @@ public class StatisticsEsService {
 | 
	
		
			
				|  |  |             JSONArray array = weekTotalStatistics(startDate,endDate,area,level,index1,null,SaveModel.timeLevel_ZL);
 | 
	
		
			
				|  |  |             object.put("data",array);
 | 
	
		
			
				|  |  |         }else if (interval==3){
 | 
	
		
			
				|  |  |             JSONArray array = monthTotalStatistics2(startDate,endDate,area,level,index1,null,SaveModel.timeLevel_ZL);
 | 
	
		
			
				|  |  |             JSONArray array = monthTotalStatistics2(startDate,endDate,area,level,index1,null,SaveModel.timeLevel_ZL,null);
 | 
	
		
			
				|  |  |             object.put("data",array);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         return object;
 | 
	
	
		
			
				|  | @ -2413,7 +2919,7 @@ public class StatisticsEsService {
 | 
	
		
			
				|  |  |             JSONArray array = weekTotalStatistics(startDate,endDate,area,level,index,null,SaveModel.timeLevel_ZL);
 | 
	
		
			
				|  |  |             object.put("data",array);
 | 
	
		
			
				|  |  |         }else if (interval==3){
 | 
	
		
			
				|  |  |             JSONArray array = monthTotalStatistics2(startDate,endDate,area,level,index,null,SaveModel.timeLevel_ZL);
 | 
	
		
			
				|  |  |             JSONArray array = monthTotalStatistics2(startDate,endDate,area,level,index,null,SaveModel.timeLevel_ZL,null);
 | 
	
		
			
				|  |  |             object.put("data",array);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         return object;
 | 
	
	
		
			
				|  | @ -2555,26 +3061,26 @@ public class StatisticsEsService {
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         }else if (interval==3){
 | 
	
		
			
				|  |  |             if (index.equalsIgnoreCase("6")){
 | 
	
		
			
				|  |  |                 JSONArray array = monthTotalStatistics2(startDate,endDate,area,level,index1,null,SaveModel.timeLevel_ZL);
 | 
	
		
			
				|  |  |                 JSONArray array = monthTotalStatistics2(startDate,endDate,area,level,index1,null,SaveModel.timeLevel_ZL,null);
 | 
	
		
			
				|  |  |                 object.put("totalData",array);
 | 
	
		
			
				|  |  |                 JSONArray array1 = monthTotalStatistics2(startDate,endDate,area,level,index,"0",SaveModel.timeLevel_ZL);
 | 
	
		
			
				|  |  |                 JSONArray array1 = monthTotalStatistics2(startDate,endDate,area,level,index,"0",SaveModel.timeLevel_ZL,null);
 | 
	
		
			
				|  |  |                 object.put("noReplyData",array1);
 | 
	
		
			
				|  |  |                 JSONArray array2 = monthTotalStatistics2(startDate,endDate,area,level,index,"1",SaveModel.timeLevel_ZL);
 | 
	
		
			
				|  |  |                 JSONArray array2 = monthTotalStatistics2(startDate,endDate,area,level,index,"1",SaveModel.timeLevel_ZL,null);
 | 
	
		
			
				|  |  |                 object.put("replyData",array2);
 | 
	
		
			
				|  |  |                 JSONArray array3 = monthTotalStatistics2(startDate,endDate,area,level,index1,"0",SaveModel.timeLevel_ZL);
 | 
	
		
			
				|  |  |                 JSONArray array3 = monthTotalStatistics2(startDate,endDate,area,level,index1,"0",SaveModel.timeLevel_ZL,null);
 | 
	
		
			
				|  |  |                 object.put("commingData",array3);
 | 
	
		
			
				|  |  |                 JSONArray array4 = monthTotalStatistics2(startDate,endDate,area,level,index1,"1",SaveModel.timeLevel_ZL);
 | 
	
		
			
				|  |  |                 JSONArray array4 = monthTotalStatistics2(startDate,endDate,area,level,index1,"1",SaveModel.timeLevel_ZL,null);
 | 
	
		
			
				|  |  |                 object.put("endData",array4);
 | 
	
		
			
				|  |  |             }else {
 | 
	
		
			
				|  |  |                 JSONArray array = monthTotalStatistics2(startDate,endDate,area,level,index1,null,SaveModel.timeLevel_ZL);
 | 
	
		
			
				|  |  |                 JSONArray array = monthTotalStatistics2(startDate,endDate,area,level,index1,null,SaveModel.timeLevel_ZL,null);
 | 
	
		
			
				|  |  |                 object.put("totalData",array);
 | 
	
		
			
				|  |  |                 JSONArray array1 = monthTotalStatistics2(startDate,endDate,area,level,index1,"0",SaveModel.timeLevel_ZL);
 | 
	
		
			
				|  |  |                 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);
 | 
	
		
			
				|  |  |                 JSONArray array2 = monthTotalStatistics2(startDate,endDate,area,level,index1,"1",SaveModel.timeLevel_ZL,null);
 | 
	
		
			
				|  |  |                 object.put("haveReceiveData",array2);
 | 
	
		
			
				|  |  |                 JSONArray array3 = monthTotalStatistics2(startDate,endDate,area,level,index,"-1",SaveModel.timeLevel_ZL);
 | 
	
		
			
				|  |  |                 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);
 | 
	
		
			
				|  |  |                 JSONArray array4 = monthTotalStatistics2(startDate,endDate,area,level,index,"2",SaveModel.timeLevel_ZL,null);
 | 
	
		
			
				|  |  |                 object.put("endData",array4);
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  | 
 |