|
@ -64,6 +64,7 @@ public class StatisticsESService {
|
|
|
SimpleDateFormat dateFormat2 = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssXX");
|
|
|
SimpleDateFormat dateFormat3 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
DecimalFormat decimalFormat = new DecimalFormat("0.00");
|
|
|
|
|
|
/**
|
|
|
* 获取上次统计时间
|
|
|
*
|
|
@ -91,7 +92,6 @@ public class StatisticsESService {
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// /**
|
|
|
// * 查询某一天父level下的子level 例如 查询市下面的团队,或者区下面的团队
|
|
|
// *
|
|
@ -167,22 +167,23 @@ public class StatisticsESService {
|
|
|
* @return
|
|
|
*/
|
|
|
public JSONArray getDateIncrementDetail(String startDate, String endDate, String interval, String area, int level, String index, String level2_type) throws Exception {
|
|
|
List<SaveModel> list = null;
|
|
|
if(StringUtils.isNotEmpty(level2_type)) {
|
|
|
list = elasticsearchUtil.findLineChartDateQuotaLevel1(startDate,endDate,area,level,index,"1",interval,level2_type);
|
|
|
}else{
|
|
|
list = elasticsearchUtil.findLineChartDateQuotaLevel0(startDate,endDate,area,level,index,"1",interval);
|
|
|
List<SaveModel> list = null;
|
|
|
if (StringUtils.isNotEmpty(level2_type)) {
|
|
|
list = elasticsearchUtil.findLineChartDateQuotaLevel1(startDate, endDate, area, level, index, "1", interval, level2_type);
|
|
|
} else {
|
|
|
list = elasticsearchUtil.findLineChartDateQuotaLevel0(startDate, endDate, area, level, index, "1", interval);
|
|
|
}
|
|
|
List<JSONObject> result = new ArrayList<>();
|
|
|
for (SaveModel saveModel:list){
|
|
|
for (SaveModel saveModel : list) {
|
|
|
JSONObject range = new JSONObject();
|
|
|
range.put("range", DateUtil.dateToStr(saveModel.getQuotaDate(),"yyyy-MM-dd"));
|
|
|
range.put("range", DateUtil.dateToStr(saveModel.getQuotaDate(), "yyyy-MM-dd"));
|
|
|
range.put("amount", saveModel.getResult2());
|
|
|
result.add(range);
|
|
|
}
|
|
|
|
|
|
return new JSONArray(result);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 获取某个指标在某个期间的增长量
|
|
|
*
|
|
@ -194,7 +195,7 @@ public class StatisticsESService {
|
|
|
*/
|
|
|
public long getIntervalIncrement(String startDate, String endDate, String area, int level, String index) throws Exception {
|
|
|
|
|
|
SaveModel saveModel = elasticsearchUtil.findOneDateQuotaLevel0(startDate,endDate,area,level,index,"1");
|
|
|
SaveModel saveModel = elasticsearchUtil.findOneDateQuotaLevel0(startDate, endDate, area, level, index, "1");
|
|
|
return saveModel.getResult2().longValue();
|
|
|
}
|
|
|
|
|
@ -257,8 +258,6 @@ public class StatisticsESService {
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 查询截止某个日期累计量
|
|
|
*
|
|
@ -268,13 +267,13 @@ public class StatisticsESService {
|
|
|
* @param level2_type level2_type的类型
|
|
|
* @return
|
|
|
*/
|
|
|
public long getTotalAmount(String startDate, String endDate, String area, int level, String index, String level2_type) throws Exception {
|
|
|
public long getTotalAmount(String startDate, String endDate, String area, int level, String index, String level2_type) throws Exception {
|
|
|
|
|
|
SaveModel saveModel = null;
|
|
|
if(StringUtils.isNotEmpty(level2_type)){
|
|
|
saveModel = elasticsearchUtil.findOneDateQuotaLevel1(startDate,endDate,area,level,index,"1",level2_type);
|
|
|
}else{
|
|
|
saveModel = elasticsearchUtil.findOneDateQuotaLevel0(startDate,endDate,area,level,index,"1");
|
|
|
if (StringUtils.isNotEmpty(level2_type)) {
|
|
|
saveModel = elasticsearchUtil.findOneDateQuotaLevel1(startDate, endDate, area, level, index, "1", level2_type);
|
|
|
} else {
|
|
|
saveModel = elasticsearchUtil.findOneDateQuotaLevel0(startDate, endDate, area, level, index, "1");
|
|
|
}
|
|
|
return saveModel.getResult2().longValue();
|
|
|
}
|
|
@ -299,45 +298,45 @@ public class StatisticsESService {
|
|
|
// if(StringUtils.isNotEmpty(lowLevel)){
|
|
|
// levelTemp = lowLevel;
|
|
|
// }
|
|
|
List<SaveModel> list = null;
|
|
|
if(StringUtils.isNotEmpty(level2_type)){
|
|
|
List<SaveModel> list = null;
|
|
|
if (StringUtils.isNotEmpty(level2_type)) {
|
|
|
|
|
|
list = elasticsearchUtil.findListDateQuotaLevel1(startDate,endDate,area,level,index,"1",lowLevel,level2_type);
|
|
|
}else{
|
|
|
list = elasticsearchUtil.findListDateQuotaLevel0(startDate,endDate,area,level,index,"1",lowLevel);
|
|
|
list = elasticsearchUtil.findListDateQuotaLevel1(startDate, endDate, area, level, index, "1", lowLevel, level2_type);
|
|
|
} else {
|
|
|
list = elasticsearchUtil.findListDateQuotaLevel0(startDate, endDate, area, level, index, "1", lowLevel);
|
|
|
}
|
|
|
if (org.springframework.util.StringUtils.isEmpty(year)) {
|
|
|
year = Constant.getNowYear();
|
|
|
}
|
|
|
List<Map<String, Object>> resultList = new ArrayList<>();
|
|
|
DecimalFormat df = new DecimalFormat("0.0000");
|
|
|
for (SaveModel saveModel:list) {
|
|
|
for (SaveModel saveModel : list) {
|
|
|
Map<String, Object> map = new HashMap<>();
|
|
|
if (SaveModel.OrgLevel.equals(lowLevel)) {
|
|
|
map.put("code",saveModel.getHospital());
|
|
|
map.put("name",saveModel.getHospitalName());
|
|
|
map.put("code", saveModel.getHospital());
|
|
|
map.put("name", saveModel.getHospitalName());
|
|
|
} else if (SaveModel.townLevel.equals(lowLevel)) {
|
|
|
map.put("code",saveModel.getTown());
|
|
|
map.put("name",saveModel.getTownName());
|
|
|
map.put("code", saveModel.getTown());
|
|
|
map.put("name", saveModel.getTownName());
|
|
|
} else if (SaveModel.cityLevel.equals(lowLevel)) {
|
|
|
map.put("code",saveModel.getCity());
|
|
|
map.put("name",saveModel.getCityName());
|
|
|
map.put("code", saveModel.getCity());
|
|
|
map.put("name", saveModel.getCityName());
|
|
|
} else if (SaveModel.teamLevel.equals(lowLevel)) {
|
|
|
map.put("code",saveModel.getTeam());
|
|
|
map.put("name",saveModel.getCityName());
|
|
|
map.put("code", saveModel.getTeam());
|
|
|
map.put("name", saveModel.getCityName());
|
|
|
}
|
|
|
if (!SaveModel.teamLevel.equals(lowLevel)) {
|
|
|
if (org.springframework.util.StringUtils.isEmpty(year)) {
|
|
|
year = Constant.getNowYear();
|
|
|
}
|
|
|
PopulationBase peopleNum = getPopulationBase(area,year);
|
|
|
PopulationBase peopleNum = getPopulationBase(area, year);
|
|
|
if (peopleNum != null) {
|
|
|
map.put("rate",df.format((saveModel.getResult2() * 1.0000) / peopleNum.getNum() * 100));
|
|
|
map.put("rateString",saveModel.getResult2().longValue()+"/"+peopleNum.getNum());
|
|
|
map.put("rate", df.format((saveModel.getResult2() * 1.0000) / peopleNum.getNum() * 100));
|
|
|
map.put("rateString", saveModel.getResult2().longValue() + "/" + peopleNum.getNum());
|
|
|
}
|
|
|
}
|
|
|
|
|
|
map.put("amount",saveModel.getResult2().longValue());
|
|
|
map.put("amount", saveModel.getResult2().longValue());
|
|
|
|
|
|
resultList.add(map);
|
|
|
}
|
|
@ -360,9 +359,9 @@ public class StatisticsESService {
|
|
|
}
|
|
|
} else if (SaveModel.OrgLevel.equals(lowLevel)) {
|
|
|
List<Town> towns = new ArrayList<>();
|
|
|
if (SaveModel.cityLevel.equals(level+"")) {
|
|
|
if (SaveModel.cityLevel.equals(level + "")) {
|
|
|
towns = townDao.findByCityCode(area);
|
|
|
} else if (SaveModel.townLevel.equals(level+"")) {
|
|
|
} else if (SaveModel.townLevel.equals(level + "")) {
|
|
|
Town town = townDao.findByCode(area);
|
|
|
towns.add(town);
|
|
|
}
|
|
@ -382,9 +381,9 @@ public class StatisticsESService {
|
|
|
}
|
|
|
} else if (SaveModel.teamLevel.equals(lowLevel)) {
|
|
|
List<Hospital> hospitals = new ArrayList<>();
|
|
|
if (SaveModel.cityLevel.equals(level+"")) {
|
|
|
if (SaveModel.cityLevel.equals(level + "")) {
|
|
|
hospitals = hospitalDao.findByCity(area);
|
|
|
} else if (SaveModel.townLevel.equals(level+"")) {
|
|
|
} else if (SaveModel.townLevel.equals(level + "")) {
|
|
|
hospitals = hospitalDao.findByTownCode(area);
|
|
|
} else {
|
|
|
Hospital hos = hospitalDao.findByCode(area);
|
|
@ -408,7 +407,7 @@ public class StatisticsESService {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
if (SaveModel.OrgLevel.equals(level+"")) {
|
|
|
if (SaveModel.OrgLevel.equals(level + "")) {
|
|
|
statisticsAllService.translateTeamLeaderName(resultList);
|
|
|
}
|
|
|
Collections.sort(resultList, new Comparator<Map<String, Object>>() {
|
|
@ -430,21 +429,20 @@ public class StatisticsESService {
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public JSONArray getIndexLevelTwototal(String endDate, String area, int level, String index) throws Exception{
|
|
|
public JSONArray getIndexLevelTwototal(String endDate, String area, int level, String index) throws Exception {
|
|
|
|
|
|
// if (endDate.compareTo(dateFormat.format(new Date())) >= 0) {
|
|
|
// endDate = elasticsearchUtil.getQuotaTime();
|
|
|
// }
|
|
|
List<SaveModel> list = elasticsearchUtil.findOneDateQuotaLevel1(endDate,area,level,index,"2");
|
|
|
List<SaveModel> list = elasticsearchUtil.findOneDateQuotaLevel1(endDate, area, level, index, "2");
|
|
|
List<Map<String, Object>> resultList = new ArrayList<>();
|
|
|
DecimalFormat df = new DecimalFormat("0.0000");
|
|
|
long total = 0;
|
|
|
for (SaveModel saveModel:list) {
|
|
|
for (SaveModel saveModel : list) {
|
|
|
Map<String, Object> map = new HashMap<>();
|
|
|
map.put("code",saveModel.getSlaveKey1());
|
|
|
map.put("name",saveModel.getSlaveKey1Name());
|
|
|
map.put("amount",saveModel.getResult2().longValue());
|
|
|
map.put("code", saveModel.getSlaveKey1());
|
|
|
map.put("name", saveModel.getSlaveKey1Name());
|
|
|
map.put("amount", saveModel.getResult2().longValue());
|
|
|
if (index.equals("7")) {
|
|
|
// 分组指标总数算法
|
|
|
String code = saveModel.getSlaveKey1();
|
|
@ -467,15 +465,15 @@ public class StatisticsESService {
|
|
|
//获取最新的统计时间
|
|
|
// String updateTime = elasticsearchUtil.getQuotaTime();
|
|
|
//如果是查询36的指标 那么除数是签约总数
|
|
|
SaveModel saveModel = elasticsearchUtil.findOneDateQuotaLevel0(endDate,area,level,"1","2");
|
|
|
SaveModel saveModel = elasticsearchUtil.findOneDateQuotaLevel0(endDate, area, level, "1", "2");
|
|
|
Long num = saveModel.getResult2().longValue();
|
|
|
for (Map<String, Object> map:resultList) {
|
|
|
for (Map<String, Object> map : resultList) {
|
|
|
double rateG = (total > 0 ? ((long) map.get("amount")) * 1.0000 / num * 100 : 0);
|
|
|
map.put("rate", df.format(rateG));
|
|
|
map.put("rateString", ((long) map.get("amount")) + "/" + num);
|
|
|
}
|
|
|
}else{
|
|
|
for (Map<String, Object> map:resultList) {
|
|
|
} else {
|
|
|
for (Map<String, Object> map : resultList) {
|
|
|
double rateG = (total > 0 ? ((long) map.get("amount")) * 1.0000 / total * 100 : 0);
|
|
|
map.put("rate", df.format(rateG));
|
|
|
map.put("rateString", ((long) map.get("amount")) + "/" + total);
|
|
@ -520,10 +518,10 @@ public class StatisticsESService {
|
|
|
* @param level 级别
|
|
|
* @return
|
|
|
*/
|
|
|
public long getIndexTotal(String endDate, String area, int level, String index,String timeLevel) throws Exception{
|
|
|
public long getIndexTotal(String endDate, String area, int level, String index, String timeLevel) throws Exception {
|
|
|
|
|
|
endDate = elasticsearchUtil.changeTime(endDate);
|
|
|
SaveModel saveModel = elasticsearchUtil.findOneDateQuotaLevel0(endDate,area,level,index,timeLevel);
|
|
|
SaveModel saveModel = elasticsearchUtil.findOneDateQuotaLevel0(endDate, area, level, index, timeLevel);
|
|
|
return saveModel.getResult2().longValue();
|
|
|
}
|
|
|
|
|
@ -535,9 +533,9 @@ public class StatisticsESService {
|
|
|
* @param level 级别
|
|
|
* @return
|
|
|
*/
|
|
|
public long getWeiJiaoFei(String endDate, String area, int level) throws Exception{
|
|
|
public long getWeiJiaoFei(String endDate, String area, int level) throws Exception {
|
|
|
|
|
|
SaveModel saveModel = elasticsearchUtil.findOneDateQuotaLevel1(endDate,area,level,"16","2","0");
|
|
|
SaveModel saveModel = elasticsearchUtil.findOneDateQuotaLevel1(endDate, area, level, "16", "2", "0");
|
|
|
return saveModel.getResult2().longValue();
|
|
|
}
|
|
|
|
|
@ -559,12 +557,12 @@ public class StatisticsESService {
|
|
|
renewIndex = "29";
|
|
|
}
|
|
|
String timeKey = elasticsearchUtil.getQuotaTime();
|
|
|
SaveModel saveModel = elasticsearchUtil.findOneDateQuotaLevel0(timeKey,area,Integer.parseInt(level),renewIndex,"2");
|
|
|
SaveModel saveModel = elasticsearchUtil.findOneDateQuotaLevel0(timeKey, area, Integer.parseInt(level), renewIndex, "2");
|
|
|
int renewNum = saveModel.getResult2().intValue();
|
|
|
//根据年度获取去年的签约数 签约指标是1
|
|
|
String date = year + "-06-30";
|
|
|
String index = "1";
|
|
|
SaveModel saveModel2 = elasticsearchUtil.findOneDateQuotaLevel0(date,area,Integer.parseInt(level),index,"2");
|
|
|
SaveModel saveModel2 = elasticsearchUtil.findOneDateQuotaLevel0(date, area, Integer.parseInt(level), index, "2");
|
|
|
int signNum = saveModel2.getResult2().intValue();
|
|
|
JSONObject jo = new JSONObject();
|
|
|
jo.put("yesterYearSign", signNum);//去年的签约量
|
|
@ -583,7 +581,7 @@ public class StatisticsESService {
|
|
|
*/
|
|
|
public JSONObject getSignRate(String endDate, String area, int level, String year) throws Exception {
|
|
|
|
|
|
SaveModel saveModel = elasticsearchUtil.findOneDateQuotaLevel0(endDate,area,level,"1","2");
|
|
|
SaveModel saveModel = elasticsearchUtil.findOneDateQuotaLevel0(endDate, area, level, "1", "2");
|
|
|
long signAmount = saveModel.getResult2().longValue();
|
|
|
PopulationBase peopleNum = getPopulationBase(area, year);
|
|
|
JSONObject json = new JSONObject();
|
|
@ -614,7 +612,7 @@ public class StatisticsESService {
|
|
|
if (endDate.compareTo(dateFormat.format(new Date())) >= 0) {
|
|
|
endDate = elasticsearchUtil.getQuotaTime();
|
|
|
}
|
|
|
SaveModel saveModel = elasticsearchUtil.findOneDateQuotaLevel0(endDate,area,level,"1","2");
|
|
|
SaveModel saveModel = elasticsearchUtil.findOneDateQuotaLevel0(endDate, area, level, "1", "2");
|
|
|
long signAmount = saveModel.getResult2().longValue();
|
|
|
PopulationBase peopleNum = getPopulationBase(area, year);
|
|
|
DecimalFormat df = new DecimalFormat("0.0000");
|
|
@ -643,9 +641,9 @@ public class StatisticsESService {
|
|
|
* @return
|
|
|
*/
|
|
|
public JSONObject getGroupInfo(String endDate, String lowCode, String area, int level, String year) throws Exception {
|
|
|
List<SaveModel> list = elasticsearchUtil.findDateQuotaLevel1(endDate,endDate,area,level,"17","2",lowCode,null,null);
|
|
|
List<SaveModel> list = elasticsearchUtil.findDateQuotaLevel1(endDate, endDate, area, level, "17", "2", lowCode, null, null);
|
|
|
long total = 0;
|
|
|
if(list.size()>0){
|
|
|
if (list.size() > 0) {
|
|
|
total = list.get(0).getResult2().longValue();
|
|
|
}
|
|
|
int num = 0;
|
|
@ -710,16 +708,16 @@ public class StatisticsESService {
|
|
|
* @param level
|
|
|
* @return
|
|
|
*/
|
|
|
public JSONArray getSixFiveStatistics(String endDate, String area, int level) throws Exception{
|
|
|
public JSONArray getSixFiveStatistics(String endDate, String area, int level) throws Exception {
|
|
|
|
|
|
List<SaveModel> list = elasticsearchUtil.findOneDateQuotaLevel2(endDate,area,level,"12","2","6");
|
|
|
List<SaveModel> list = elasticsearchUtil.findOneDateQuotaLevel2(endDate, area, level, "12", "2", "6");
|
|
|
List<Map<String, Object>> resultList = new ArrayList<>();
|
|
|
for (int i = 0; i < list.size(); i++) {
|
|
|
Map<String, Object> data = new HashMap<>();
|
|
|
|
|
|
data.put("code", list.get(i).getSlaveKey2());
|
|
|
data.put("name", list.get(i).getSlaveKey2Name());
|
|
|
data.put("amount",list.get(i).getResult2());
|
|
|
data.put("amount", list.get(i).getResult2());
|
|
|
|
|
|
resultList.add(data);
|
|
|
}
|
|
@ -752,12 +750,12 @@ public class StatisticsESService {
|
|
|
* @param level
|
|
|
* @return
|
|
|
*/
|
|
|
public long getSixFiveTotal(String endDate, String area, int level) throws Exception{
|
|
|
public long getSixFiveTotal(String endDate, String area, int level) throws Exception {
|
|
|
// 截止日期包含当天,则获取最新的更新时间
|
|
|
if (endDate.compareTo(dateFormat.format(new Date())) >= 0) {
|
|
|
endDate = elasticsearchUtil.getQuotaTime();
|
|
|
}
|
|
|
SaveModel saveModel = elasticsearchUtil.findOneDateQuotaLevel1(endDate,area,level,"8","2","6");
|
|
|
SaveModel saveModel = elasticsearchUtil.findOneDateQuotaLevel1(endDate, area, level, "8", "2", "6");
|
|
|
return saveModel.getResult2().longValue();
|
|
|
}
|
|
|
|
|
@ -799,15 +797,15 @@ public class StatisticsESService {
|
|
|
|
|
|
json.put("taskNum", taskNum);
|
|
|
List<SaveModel> list = null;
|
|
|
if(StringUtils.isNotEmpty(lowCode)){
|
|
|
if (StringUtils.isNotEmpty(lowCode)) {
|
|
|
//一级维度
|
|
|
list = elasticsearchUtil.findLineChartDateQuotaLevel1(startDate,endDate,area,level,index,"2",lowCode,interval+"");
|
|
|
}else{
|
|
|
list = elasticsearchUtil.findLineChartDateQuotaLevel0(startDate,endDate,area,level,index,"2",interval+"");
|
|
|
list = elasticsearchUtil.findLineChartDateQuotaLevel1(startDate, endDate, area, level, index, "2", lowCode, interval + "");
|
|
|
} else {
|
|
|
list = elasticsearchUtil.findLineChartDateQuotaLevel0(startDate, endDate, area, level, index, "2", interval + "");
|
|
|
}
|
|
|
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
List<JSONObject> result = new ArrayList<>();
|
|
|
for (SaveModel saveModel:list) {
|
|
|
for (SaveModel saveModel : list) {
|
|
|
JSONObject range = new JSONObject();
|
|
|
range.put("range", df.format(saveModel.getQuotaDate()));
|
|
|
range.put("amount", saveModel.getResult2().longValue());
|
|
@ -841,9 +839,9 @@ public class StatisticsESService {
|
|
|
}
|
|
|
} else if (lowLevel.equals("4")) {
|
|
|
List<Town> towns = new ArrayList<>();
|
|
|
if (SaveModel.cityLevel.equals(level+"")) {
|
|
|
if (SaveModel.cityLevel.equals(level + "")) {
|
|
|
towns = townDao.findByCityCode(area);
|
|
|
} else if (SaveModel.townLevel.equals(level+"")) {
|
|
|
} else if (SaveModel.townLevel.equals(level + "")) {
|
|
|
Town town = townDao.findByCode(area);
|
|
|
if (town != null) {
|
|
|
towns.add(town);
|
|
@ -870,7 +868,7 @@ public class StatisticsESService {
|
|
|
List<Hospital> hospitals = new ArrayList<>();
|
|
|
if (level == 2) {
|
|
|
hospitals = hospitalDao.findByCity(area);
|
|
|
} else if (SaveModel.townLevel.equals(level+"")) {
|
|
|
} else if (SaveModel.townLevel.equals(level + "")) {
|
|
|
hospitals = hospitalDao.findByTownCode(area);
|
|
|
} else {
|
|
|
Hospital hos = hospitalDao.findByCode(area);
|
|
@ -1021,12 +1019,12 @@ public class StatisticsESService {
|
|
|
return rs;
|
|
|
}
|
|
|
|
|
|
public JSONArray translateTeamLeaderName(JSONArray rs) {
|
|
|
public List translateTeamLeaderNameList(List<JSONObject> rs) {
|
|
|
Map<Integer, Map<String, Object>> leaders = getAllTeamLeaders();
|
|
|
if (rs != null) {
|
|
|
for (int i = 0; i < rs.length(); i++) {
|
|
|
JSONObject r = rs.getJSONObject(i);
|
|
|
Integer id = (Integer) r.get("id");
|
|
|
for (int i = 0; i < rs.size(); i++) {
|
|
|
JSONObject r = rs.get(i);
|
|
|
Integer id = Integer.valueOf(r.get("code").toString());
|
|
|
String name = getTeamLeaderNameByTeamCode(leaders, id);
|
|
|
if (org.apache.commons.lang3.StringUtils.isNotBlank(name)) {
|
|
|
r.put("name", name);
|
|
@ -1278,6 +1276,7 @@ public class StatisticsESService {
|
|
|
String filesize = df.format(size);
|
|
|
return Double.valueOf(filesize);
|
|
|
}
|
|
|
|
|
|
public double getRangeDouuble(Double first, int second, int i) {
|
|
|
if (second == 0 && first > 0) {
|
|
|
//如果分母为0 分子不为0 返回100%
|
|
@ -1286,11 +1285,12 @@ public class StatisticsESService {
|
|
|
//如果分母为0 分子为0 返回0%
|
|
|
return 0;
|
|
|
}
|
|
|
Double size = (first * 100) / second;
|
|
|
Double size = first / second;
|
|
|
DecimalFormat df = new DecimalFormat("0.00");//格式化小数,不足的补0
|
|
|
String filesize = df.format(size);
|
|
|
return Double.valueOf(filesize);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 获取某个指标某一天某一level的值 到达量
|
|
|
*
|
|
@ -1314,7 +1314,7 @@ public class StatisticsESService {
|
|
|
} else if (lowLevel.equals("4")) {
|
|
|
returnMap.put(one.getHospital(), one.getResult1().intValue());
|
|
|
} else if (lowLevel.equals("5")) {
|
|
|
returnMap.put(one.getTeam(),one.getResult1().intValue());
|
|
|
returnMap.put(one.getTeam(), one.getResult1().intValue());
|
|
|
}
|
|
|
});
|
|
|
}
|
|
@ -1323,7 +1323,6 @@ public class StatisticsESService {
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
*
|
|
|
* @param level level1_type等级 5:团队 4社区机构 3区级 2市级
|
|
|
* @param area
|
|
|
* @param lowLevel
|
|
@ -1332,7 +1331,7 @@ public class StatisticsESService {
|
|
|
*/
|
|
|
public String getAvgAllInfo(int level, String area, String lowLevel) throws Exception {
|
|
|
JSONObject returnJo = new JSONObject();
|
|
|
JSONArray ja = new JSONArray();
|
|
|
List<JSONObject> ja = new ArrayList<>();
|
|
|
//市级
|
|
|
if (level == 2) {
|
|
|
if ("3".equals(lowLevel)) {
|
|
@ -1342,40 +1341,55 @@ public class StatisticsESService {
|
|
|
jo.put("name", one.getTownName());
|
|
|
jo.put("code", one.getTown());
|
|
|
jo.put("avgCount", getRangeDouuble(one.getResult1(), one.getResult2().intValue(), 2));
|
|
|
ja.put(jo);
|
|
|
ja.add(jo);
|
|
|
});
|
|
|
} else if("4".equals(lowLevel)) {
|
|
|
} else if ("4".equals(lowLevel)) {
|
|
|
List<SaveModel> esModelList = (List<SaveModel>) elasticsearchUtil.findListDateQuotaLevel0(DateUtil.dateToStrShort(new Date()), area, level, "28", SaveModel.timeLevel_DDL, "4");
|
|
|
esModelList.forEach(one -> {
|
|
|
JSONObject jo = new JSONObject();
|
|
|
jo.put("name", one.getHospitalName());
|
|
|
jo.put("code", one.getHospital());
|
|
|
jo.put("avgCount", getRangeDouuble(one.getResult1(), one.getResult2().intValue(), 2));
|
|
|
ja.put(jo);
|
|
|
ja.add(jo);
|
|
|
});
|
|
|
}
|
|
|
} else if (level == 3) {
|
|
|
List<SaveModel> esModelList = (List<SaveModel>) elasticsearchUtil.findListDateQuotaLevel0(DateUtil.dateToStrShort(new Date()), area, level, "28", SaveModel.timeLevel_DDL, "3");
|
|
|
List<SaveModel> esModelList = (List<SaveModel>) elasticsearchUtil.findListDateQuotaLevel0(DateUtil.dateToStrShort(new Date()), area, level, "28", SaveModel.timeLevel_DDL, "4");
|
|
|
esModelList.forEach(one -> {
|
|
|
JSONObject jo = new JSONObject();
|
|
|
jo.put("name", one.getHospitalName());
|
|
|
jo.put("code", one.getHospital());
|
|
|
jo.put("avgCount", getRangeDouuble(one.getResult1(), one.getResult2().intValue(), 2));
|
|
|
ja.put(jo);
|
|
|
ja.add(jo);
|
|
|
});
|
|
|
} else if (level == 4) {
|
|
|
|
|
|
List<SaveModel> esModelList = (List<SaveModel>) elasticsearchUtil.findListDateQuotaLevel0(DateUtil.dateToStrShort(new Date()), area, level, "28", SaveModel.timeLevel_DDL, "5");
|
|
|
esModelList.forEach(one -> {
|
|
|
JSONObject jo = new JSONObject();
|
|
|
jo.put("name", one.getTeam());
|
|
|
jo.put("code", one.getTeamName());
|
|
|
jo.put("name", one.getTeamName());
|
|
|
jo.put("code", one.getTeam());
|
|
|
jo.put("avgCount", getRangeDouuble(one.getResult1(), one.getResult2().intValue(), 2));
|
|
|
ja.put(jo);
|
|
|
ja.add(jo);
|
|
|
});
|
|
|
translateTeamLeaderName(ja);
|
|
|
translateTeamLeaderNameList(ja);
|
|
|
}
|
|
|
|
|
|
ja.sort(new Comparator<JSONObject>() {
|
|
|
@Override
|
|
|
public int compare(JSONObject o1, JSONObject o2) {
|
|
|
if (o1.getDouble("avgCount") < (o2.getDouble("avgCount"))) {
|
|
|
return 1;
|
|
|
} else if (o1.getDouble("avgCount") > (o2.getDouble("avgCount"))) {
|
|
|
return -1;
|
|
|
} else {
|
|
|
return 0;
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
returnJo.put("data", ja);
|
|
|
|
|
|
|
|
|
return returnJo.toString();
|
|
|
}
|
|
|
|
|
@ -1403,13 +1417,13 @@ public class StatisticsESService {
|
|
|
for (SaveModel one : esModelList) {
|
|
|
Map<String, Object> maps = new HashMap<String, Object>();
|
|
|
maps.put("amount", one.getResult2().intValue());
|
|
|
if (low_level.equals("3") && one.getTown()!=null) {
|
|
|
if (low_level.equals("3") && one.getTown() != null) {
|
|
|
maps.put("code", one.getTown());
|
|
|
maps.put("name", one.getTownName());
|
|
|
} else if (low_level.equals("4") && one.getHospital()!=null) {
|
|
|
} else if (low_level.equals("4") && one.getHospital() != null) {
|
|
|
maps.put("code", one.getHospital());
|
|
|
maps.put("name", one.getHospitalName());
|
|
|
} else if (low_level.equals("5") && one.getTeam()!=null) {
|
|
|
} else if (low_level.equals("5") && one.getTeam() != null) {
|
|
|
maps.put("code", one.getTeam());
|
|
|
maps.put("name", one.getTeamName());
|
|
|
}
|
|
@ -1573,7 +1587,7 @@ public class StatisticsESService {
|
|
|
*/
|
|
|
public JSONArray getLowLevelIncrementDetail(String startDate, String endDate, String area, int level, String index, int sort, String low_level) throws Exception {
|
|
|
List<Map<String, Object>> resultList = new ArrayList<>();
|
|
|
List<SaveModel> esModelList = (List<SaveModel>) elasticsearchUtil.findListDateQuotaLevel0(startDate, endDate,area, level, index, SaveModel.timeLevel_ZL, low_level);
|
|
|
List<SaveModel> esModelList = (List<SaveModel>) elasticsearchUtil.findListDateQuotaLevel0(startDate, endDate, area, level, index, SaveModel.timeLevel_ZL, low_level);
|
|
|
|
|
|
if (esModelList != null && esModelList.size() > 0) {
|
|
|
for (SaveModel one : esModelList) {
|
|
@ -1689,30 +1703,30 @@ public class StatisticsESService {
|
|
|
* @return
|
|
|
* @throws Exception
|
|
|
*/
|
|
|
public JSONObject getConsultingStatisticsList(int level, String area, String lowLevel,String year) throws Exception {
|
|
|
public JSONObject getConsultingStatisticsList(int level, String area, String lowLevel, String year) throws Exception {
|
|
|
JSONObject result = new JSONObject();
|
|
|
//最新更新时间
|
|
|
String timeKey = elasticsearchUtil.getQuotaTime();
|
|
|
if(StringUtils.isNotEmpty(year)){
|
|
|
if (StringUtils.isNotEmpty(year)) {
|
|
|
if (Constant.getNowYear().equals(year)) {
|
|
|
timeKey = elasticsearchUtil.getQuotaTime();
|
|
|
}else{
|
|
|
} else {
|
|
|
|
|
|
Integer coutYear = Integer.parseInt(year);
|
|
|
timeKey = coutYear+"-06-30";
|
|
|
timeKey = coutYear + "-06-30";
|
|
|
}
|
|
|
}
|
|
|
// timeKey= "2017-11-01 00:00:00";
|
|
|
//及时回复数
|
|
|
List<SaveModel> relyVal = elasticsearchUtil.findListDateQuotaLevel0( null,timeKey,area,level,"23","1",lowLevel);
|
|
|
List<SaveModel> relyVal = elasticsearchUtil.findListDateQuotaLevel0(null, timeKey, area, level, "23", "1", lowLevel);
|
|
|
//咨询总数
|
|
|
List<SaveModel> relyTotal = elasticsearchUtil.findListDateQuotaLevel0(null,timeKey,area,level,"25","1",lowLevel);
|
|
|
List<SaveModel> relyTotal = elasticsearchUtil.findListDateQuotaLevel0(null, timeKey, area, level, "25", "1", lowLevel);
|
|
|
//未回复数
|
|
|
List<SaveModel> noRelyTotal = elasticsearchUtil.findListDateQuotaLevel0(null,timeKey,area,level,"22","1",lowLevel);
|
|
|
List<SaveModel> noRelyTotal = elasticsearchUtil.findListDateQuotaLevel0(null, timeKey, area, level, "22", "1", lowLevel);
|
|
|
// JSONArray rely = new JSONArray(relyVal);
|
|
|
// JSONArray total = new JSONArray(relyTotal);
|
|
|
// JSONArray noRely = new JSONArray(noRelyTotal);
|
|
|
result.put("resultList", getCoutList(level,relyVal, relyTotal, noRelyTotal));
|
|
|
result.put("resultList", getCoutList(level, relyVal, relyTotal, noRelyTotal));
|
|
|
return result;
|
|
|
}
|
|
|
|
|
@ -1725,49 +1739,52 @@ public class StatisticsESService {
|
|
|
* @param onRely
|
|
|
* @return
|
|
|
*/
|
|
|
public List<Map<String, Object>> getCoutList(Integer level,List<SaveModel> rely, List<SaveModel> total, List<SaveModel> onRely) {
|
|
|
public List<Map<String, Object>> getCoutList(Integer level, List<SaveModel> rely, List<SaveModel> total, List<SaveModel> onRely) {
|
|
|
Map<String, Object> relyMap = new HashMap<>();
|
|
|
Map<String, Object> totalMap = new HashMap<>();
|
|
|
Map<String, Object> onRelyMap = new HashMap<>();
|
|
|
JSONObject result = new JSONObject();
|
|
|
//转换回复数
|
|
|
for(SaveModel saveModel:rely){
|
|
|
if(level==4){
|
|
|
for (SaveModel saveModel : rely) {
|
|
|
if (level == 4) {
|
|
|
relyMap.put(saveModel.getTeam(), saveModel);
|
|
|
}else if(level==3){
|
|
|
} else if (level == 3) {
|
|
|
relyMap.put(saveModel.getHospital(), saveModel);
|
|
|
}else if(level==2){
|
|
|
} else if (level == 2) {
|
|
|
relyMap.put(saveModel.getTown(), saveModel);
|
|
|
}
|
|
|
};
|
|
|
}
|
|
|
;
|
|
|
|
|
|
//转换总咨询数
|
|
|
for(SaveModel saveModel:total){
|
|
|
if(level==4){
|
|
|
for (SaveModel saveModel : total) {
|
|
|
if (level == 4) {
|
|
|
totalMap.put(saveModel.getTeam(), saveModel);
|
|
|
}else if(level==3){
|
|
|
} else if (level == 3) {
|
|
|
totalMap.put(saveModel.getHospital(), saveModel);
|
|
|
}else if(level==2){
|
|
|
} else if (level == 2) {
|
|
|
totalMap.put(saveModel.getTown(), saveModel);
|
|
|
}
|
|
|
};
|
|
|
}
|
|
|
;
|
|
|
//转换总咨询数
|
|
|
for(SaveModel saveModel:onRely){
|
|
|
if(level==4){
|
|
|
for (SaveModel saveModel : onRely) {
|
|
|
if (level == 4) {
|
|
|
onRelyMap.put(saveModel.getTeam(), saveModel);
|
|
|
}else if(level==3){
|
|
|
} else if (level == 3) {
|
|
|
onRelyMap.put(saveModel.getHospital(), saveModel);
|
|
|
}else if(level==2){
|
|
|
} else if (level == 2) {
|
|
|
onRelyMap.put(saveModel.getTown(), saveModel);
|
|
|
}
|
|
|
};
|
|
|
}
|
|
|
;
|
|
|
List<Map<String, Object>> resultMaps = new ArrayList<>();
|
|
|
for (String key : totalMap.keySet()) {
|
|
|
Map<String, Object> rs = new HashMap<>();
|
|
|
SaveModel relyRs = (SaveModel) relyMap.get(key);
|
|
|
SaveModel totalRs = (SaveModel) totalMap.get(key);
|
|
|
SaveModel onRelyRs = (SaveModel) onRelyMap.get(key);
|
|
|
if(relyRs==null||totalRs==null||onRelyRs==null){
|
|
|
if (relyRs == null || totalRs == null || onRelyRs == null) {
|
|
|
continue;
|
|
|
}
|
|
|
//合并结果集
|
|
@ -1775,11 +1792,11 @@ public class StatisticsESService {
|
|
|
Integer relyNm = relyRs.getResult2().intValue();
|
|
|
Integer noRelyNm = onRelyRs.getResult2().intValue();
|
|
|
// rs.put("name", relyRs.get(area+"Name"));
|
|
|
if(level==4){
|
|
|
if (level == 4) {
|
|
|
rs.put("name", relyRs.getTeamName());
|
|
|
}else if(level==3){
|
|
|
} else if (level == 3) {
|
|
|
rs.put("name", relyRs.getHospitalName());
|
|
|
}else if(level==2){
|
|
|
} else if (level == 2) {
|
|
|
rs.put("name", relyRs.getTownName());
|
|
|
}
|
|
|
rs.put("noRelyCount", noRelyNm);
|
|
@ -1814,7 +1831,7 @@ public class StatisticsESService {
|
|
|
}
|
|
|
resultMaps.add(rs);
|
|
|
}
|
|
|
if(level==4){
|
|
|
if (level == 4) {
|
|
|
Map<Integer, Map<String, Object>> leaders = getAllTeamLeaders();
|
|
|
if (resultMaps != null && resultMaps.size() > 0) {
|
|
|
for (Map<String, Object> r : resultMaps) {
|
|
@ -1843,21 +1860,21 @@ public class StatisticsESService {
|
|
|
* @param area
|
|
|
* @return
|
|
|
*/
|
|
|
public JSONObject getCoutListByTime(String level, String area,String year) throws Exception {
|
|
|
public JSONObject getCoutListByTime(String level, String area, String year) throws Exception {
|
|
|
JSONObject result = new JSONObject();
|
|
|
String quotaTime = elasticsearchUtil.getQuotaTime();
|
|
|
if(StringUtils.isNotEmpty(year)){
|
|
|
if (StringUtils.isNotEmpty(year)) {
|
|
|
if (Constant.getNowYear().equals(year)) {
|
|
|
quotaTime = elasticsearchUtil.getQuotaTime();
|
|
|
}else{
|
|
|
} else {
|
|
|
|
|
|
quotaTime = year+"-6-30 00:00:00";
|
|
|
quotaTime = year + "-6-30 00:00:00";
|
|
|
}
|
|
|
}
|
|
|
// quotaTime = "2017-10-19 00:00:00";
|
|
|
List<SaveModel> list = elasticsearchUtil.findOneDateQuotaLevel1(null,quotaTime,area,Integer.parseInt(level),"24","1");
|
|
|
List<SaveModel> list = elasticsearchUtil.findOneDateQuotaLevel1(null, quotaTime, area, Integer.parseInt(level), "24", "1");
|
|
|
JSONArray array = new JSONArray();
|
|
|
for(SaveModel saveModel : list){
|
|
|
for (SaveModel saveModel : list) {
|
|
|
JSONObject jsonObject = new JSONObject();
|
|
|
// if(SaveModel.cityLevel.equals(level)){
|
|
|
//
|
|
@ -1868,10 +1885,10 @@ public class StatisticsESService {
|
|
|
// jsonObject.put("name",saveModel.getTownName());
|
|
|
// }else if(SaveModel.OrgLevel.equals(level)){
|
|
|
// }
|
|
|
jsonObject.put("code",saveModel.getSlaveKey1());
|
|
|
jsonObject.put("name",saveModel.getSlaveKey1Name());
|
|
|
jsonObject.put("date",quotaTime);
|
|
|
jsonObject.put("num",saveModel.getResult2());
|
|
|
jsonObject.put("code", saveModel.getSlaveKey1());
|
|
|
jsonObject.put("name", saveModel.getSlaveKey1Name());
|
|
|
jsonObject.put("date", quotaTime);
|
|
|
jsonObject.put("num", saveModel.getResult2());
|
|
|
array.put(jsonObject);
|
|
|
}
|
|
|
result.put("resultList", array);
|
|
@ -1885,19 +1902,19 @@ public class StatisticsESService {
|
|
|
* @param area
|
|
|
* @return
|
|
|
*/
|
|
|
public JSONObject getConsultingTitle(int level, String area,String year) throws Exception{
|
|
|
public JSONObject getConsultingTitle(int level, String area, String year) throws Exception {
|
|
|
JSONObject result = new JSONObject();
|
|
|
String quotaDate = elasticsearchUtil.getQuotaTime();
|
|
|
if(StringUtils.isNotEmpty(year)){
|
|
|
quotaDate = year+"-06-30";
|
|
|
if (StringUtils.isNotEmpty(year)) {
|
|
|
quotaDate = year + "-06-30";
|
|
|
}
|
|
|
// List<SaveModel> relyVal = elasticsearchUtil.findOneDateQuotaLevel1(quotaDate,area,level,"23","2");
|
|
|
// List<SaveModel> relyTotal = elasticsearchUtil.findOneDateQuotaLevel1(quotaDate,area,level,"25","2");
|
|
|
// List<SaveModel> onRelyTotal = elasticsearchUtil.findOneDateQuotaLevel1(quotaDate,area,level,"22","2");
|
|
|
|
|
|
SaveModel relyVal = elasticsearchUtil.findOneDateQuotaLevel0(null,quotaDate,area,level,"23","1");
|
|
|
SaveModel relyTotal = elasticsearchUtil.findOneDateQuotaLevel0(null,quotaDate,area,level,"25","1");
|
|
|
SaveModel onRelyTotal = elasticsearchUtil.findOneDateQuotaLevel0(null,quotaDate,area,level,"22","1");
|
|
|
SaveModel relyVal = elasticsearchUtil.findOneDateQuotaLevel0(null, quotaDate, area, level, "23", "1");
|
|
|
SaveModel relyTotal = elasticsearchUtil.findOneDateQuotaLevel0(null, quotaDate, area, level, "25", "1");
|
|
|
SaveModel onRelyTotal = elasticsearchUtil.findOneDateQuotaLevel0(null, quotaDate, area, level, "22", "1");
|
|
|
|
|
|
// JSONObject relyObject = new JSONObject(relyVal);
|
|
|
// JSONObject totalObject = new JSONObject(relyTotal);
|
|
@ -1908,10 +1925,11 @@ public class StatisticsESService {
|
|
|
// total.put(totalObject);
|
|
|
// JSONArray onRely = new JSONArray();
|
|
|
// onRely.put(onRelyObject);
|
|
|
result.put("result", getCoutListTitle(level,relyVal, relyTotal, onRelyTotal));
|
|
|
result.put("result", getCoutListTitle(level, relyVal, relyTotal, onRelyTotal));
|
|
|
return result;
|
|
|
}
|
|
|
public List<Map<String, Object>> getCoutListTitle(Integer level,SaveModel rely, SaveModel total, SaveModel onRely) {
|
|
|
|
|
|
public List<Map<String, Object>> getCoutListTitle(Integer level, SaveModel rely, SaveModel total, SaveModel onRely) {
|
|
|
|
|
|
Map<String, Object> relyMap = new HashMap<>();
|
|
|
Map<String, Object> totalMap = new HashMap<>();
|
|
@ -1970,13 +1988,13 @@ public class StatisticsESService {
|
|
|
Integer relyNm = rely.getResult2().intValue();
|
|
|
Integer noRelyNm = onRely.getResult2().intValue();
|
|
|
// rs.put("name", rely.get(area + "Name"));
|
|
|
if (SaveModel.cityLevel.equals(level+"")) {
|
|
|
if (SaveModel.cityLevel.equals(level + "")) {
|
|
|
rs.put("code", rely.getCity());
|
|
|
rs.put("name", rely.getCityName());
|
|
|
} else if (SaveModel.townLevel.equals(level+"")) {
|
|
|
} else if (SaveModel.townLevel.equals(level + "")) {
|
|
|
rs.put("code", rely.getTown());
|
|
|
rs.put("name", rely.getTownName());
|
|
|
} else if (SaveModel.OrgLevel.equals(level+"")) {
|
|
|
} else if (SaveModel.OrgLevel.equals(level + "")) {
|
|
|
rs.put("code", rely.getHospital());
|
|
|
rs.put("name", rely.getHospitalName());
|
|
|
}
|
|
@ -2017,32 +2035,32 @@ public class StatisticsESService {
|
|
|
public JSONObject getRenewPercentAndChangePercent(String index, Integer level, String area, String year, String lowCode) {
|
|
|
JSONObject jo = new JSONObject();
|
|
|
String switchIndex = "";//转签index
|
|
|
String signIndex ="1";//签约index
|
|
|
String renewIndex =index;//续签index.
|
|
|
String signIndex = "1";//签约index
|
|
|
String renewIndex = index;//续签index.
|
|
|
String date = year + "-06-30";
|
|
|
try{
|
|
|
try {
|
|
|
if (level == 4) {
|
|
|
//团队的转签
|
|
|
if(StringUtils.isNoneBlank(lowCode)){
|
|
|
if (StringUtils.isNoneBlank(lowCode)) {
|
|
|
//服务类型维度
|
|
|
switchIndex = "55";
|
|
|
}else{
|
|
|
} else {
|
|
|
switchIndex = "35";
|
|
|
}
|
|
|
} else if (level == 3) {
|
|
|
//社区的转签
|
|
|
if(StringUtils.isNoneBlank(lowCode)){
|
|
|
if (StringUtils.isNoneBlank(lowCode)) {
|
|
|
//服务类型维度
|
|
|
switchIndex = "56";
|
|
|
}else{
|
|
|
} else {
|
|
|
switchIndex = "35";
|
|
|
}
|
|
|
} else {
|
|
|
//区和市的转签
|
|
|
if(StringUtils.isNoneBlank(lowCode)){
|
|
|
if (StringUtils.isNoneBlank(lowCode)) {
|
|
|
//服务类型维度
|
|
|
switchIndex = "57";
|
|
|
}else{
|
|
|
} else {
|
|
|
switchIndex = "35";
|
|
|
}
|
|
|
}
|
|
@ -2050,36 +2068,36 @@ public class StatisticsESService {
|
|
|
SaveModel renewSaveModel = new SaveModel();
|
|
|
SaveModel switchSaveModel = new SaveModel();
|
|
|
SaveModel signSaveModel = new SaveModel();
|
|
|
if (StringUtils.isNotBlank(lowCode)){
|
|
|
if (StringUtils.isNotBlank(lowCode)) {
|
|
|
//续签量
|
|
|
renewSaveModel = elasticsearchUtil.findOneDateQuotaLevel1(timeKey,area,level,renewIndex,"2",lowCode);
|
|
|
renewSaveModel = elasticsearchUtil.findOneDateQuotaLevel1(timeKey, area, level, renewIndex, "2", lowCode);
|
|
|
//转签量
|
|
|
switchSaveModel = elasticsearchUtil.findOneDateQuotaLevel1(timeKey,area,level,switchIndex,"2",lowCode);
|
|
|
}else{
|
|
|
switchSaveModel = elasticsearchUtil.findOneDateQuotaLevel1(timeKey, area, level, switchIndex, "2", lowCode);
|
|
|
} else {
|
|
|
//续签量
|
|
|
renewSaveModel=elasticsearchUtil.findOneDateQuotaLevel0(timeKey,area,level,renewIndex,"2");
|
|
|
renewSaveModel = elasticsearchUtil.findOneDateQuotaLevel0(timeKey, area, level, renewIndex, "2");
|
|
|
//转签量
|
|
|
switchSaveModel=elasticsearchUtil.findOneDateQuotaLevel0(timeKey,area,level,switchIndex,"2");
|
|
|
switchSaveModel = elasticsearchUtil.findOneDateQuotaLevel0(timeKey, area, level, switchIndex, "2");
|
|
|
}
|
|
|
int renewNum = renewSaveModel.getResult2().intValue();
|
|
|
int switchNum = switchSaveModel.getResult2().intValue();
|
|
|
|
|
|
//根据年度获取去年的签约数 签约指标是1
|
|
|
if(StringUtils.isNoneBlank(lowCode)){
|
|
|
if("3".equals(lowCode)){
|
|
|
if (StringUtils.isNoneBlank(lowCode)) {
|
|
|
if ("3".equals(lowCode)) {
|
|
|
//老年人
|
|
|
lowCode = "3";
|
|
|
}else if("4".equals(lowCode)){
|
|
|
} else if ("4".equals(lowCode)) {
|
|
|
//高血压
|
|
|
lowCode = "1";
|
|
|
}else if("5".equals(lowCode)){
|
|
|
} else if ("5".equals(lowCode)) {
|
|
|
//糖尿病
|
|
|
lowCode = "2";
|
|
|
}
|
|
|
signIndex = "17";
|
|
|
signSaveModel=elasticsearchUtil.findOneDateQuotaLevel1(date,area,level,signIndex,"2",lowCode);
|
|
|
}else{
|
|
|
signSaveModel=elasticsearchUtil.findOneDateQuotaLevel0(date,area,level,signIndex,"2");
|
|
|
signSaveModel = elasticsearchUtil.findOneDateQuotaLevel1(date, area, level, signIndex, "2", lowCode);
|
|
|
} else {
|
|
|
signSaveModel = elasticsearchUtil.findOneDateQuotaLevel0(date, area, level, signIndex, "2");
|
|
|
}
|
|
|
//签约量
|
|
|
int signNum = signSaveModel.getResult2().intValue();
|
|
@ -2088,15 +2106,16 @@ public class StatisticsESService {
|
|
|
jo.put("thisYearSwithch", switchNum);//今年的转签量
|
|
|
jo.put("renewRange", getRange(renewNum, signNum, 2));//续签率 50.00%
|
|
|
jo.put("switchRange", getRange(switchNum, renewNum, 2));//转签率
|
|
|
}catch (Exception e){
|
|
|
} catch (Exception e) {
|
|
|
e.getMessage();
|
|
|
jo.put("status","0");
|
|
|
jo.put("error","查询失败"+e.getMessage());
|
|
|
jo.put("status", "0");
|
|
|
jo.put("error", "查询失败" + e.getMessage());
|
|
|
return jo;
|
|
|
}
|
|
|
return jo;
|
|
|
}
|
|
|
public JSONObject getRenewAnalysis(String switchIndex, String switchIndexReson, String signIn, String signOut, String level, String code) throws Exception{
|
|
|
|
|
|
public JSONObject getRenewAnalysis(String switchIndex, String switchIndexReson, String signIn, String signOut, String level, String code) throws Exception {
|
|
|
|
|
|
JSONObject jo = new JSONObject();
|
|
|
//获取统计的最新事件
|
|
@ -2135,6 +2154,7 @@ public class StatisticsESService {
|
|
|
jo.put("switchTown", changeTownNum + "%");//今年的转签量
|
|
|
return jo;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 通用的方法 获取一级维度的数据
|
|
|
*
|
|
@ -2144,11 +2164,12 @@ public class StatisticsESService {
|
|
|
* @param timeKey
|
|
|
* @return
|
|
|
*/
|
|
|
private int getLevel1NumForRedis(String index, String level, String code, String timeKey) throws Exception{
|
|
|
private int getLevel1NumForRedis(String index, String level, String code, String timeKey) throws Exception {
|
|
|
|
|
|
SaveModel saveModel = elasticsearchUtil.findOneDateQuotaLevel0(timeKey,code,Integer.parseInt(level),index,"2");
|
|
|
SaveModel saveModel = elasticsearchUtil.findOneDateQuotaLevel0(timeKey, code, Integer.parseInt(level), index, "2");
|
|
|
return saveModel.getResult2().intValue();
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 通用的方法 获取二级维度的数据列表
|
|
|
*
|
|
@ -2158,20 +2179,21 @@ public class StatisticsESService {
|
|
|
* @param timeKey
|
|
|
* @return
|
|
|
*/
|
|
|
private JSONArray getLevel2JsonObjectForRedis(String index, String level, String code, String timeKey) throws Exception{
|
|
|
List<SaveModel> list = elasticsearchUtil.findOneDateQuotaLevel1(timeKey,code,Integer.parseInt(level),index,"2");
|
|
|
private JSONArray getLevel2JsonObjectForRedis(String index, String level, String code, String timeKey) throws Exception {
|
|
|
List<SaveModel> list = elasticsearchUtil.findOneDateQuotaLevel1(timeKey, code, Integer.parseInt(level), index, "2");
|
|
|
// JSONObject jo = new JSONObject();
|
|
|
JSONArray switchJo = new JSONArray();
|
|
|
list.stream().forEach(one->{
|
|
|
Map<String,Object> map = new HashMap<>();
|
|
|
map.put("date",timeKey);
|
|
|
map.put("code",one.getSlaveKey1());
|
|
|
map.put("name",one.getSlaveKey1Name());
|
|
|
map.put("num",one.getResult2());
|
|
|
list.stream().forEach(one -> {
|
|
|
Map<String, Object> map = new HashMap<>();
|
|
|
map.put("date", timeKey);
|
|
|
map.put("code", one.getSlaveKey1());
|
|
|
map.put("name", one.getSlaveKey1Name());
|
|
|
map.put("num", one.getResult2());
|
|
|
switchJo.put(map);
|
|
|
});
|
|
|
return switchJo;
|
|
|
}
|
|
|
|
|
|
public String getRangeNoLast(int first, int second, int i) {
|
|
|
if (second == 0 && first > 0) {
|
|
|
return "100";
|
|
@ -2197,13 +2219,13 @@ public class StatisticsESService {
|
|
|
// SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
//获取微信关注的未交费
|
|
|
// Map<String, Object> expenseStatus0 = getByIndexSingle(date, area, level, "49",dateFormat);
|
|
|
SaveModel expenseStatus0 = elasticsearchUtil.findOneDateQuotaLevel0(date,area,level,"49","2");
|
|
|
SaveModel expenseStatus0 = elasticsearchUtil.findOneDateQuotaLevel0(date, area, level, "49", "2");
|
|
|
//获取微信关注的已交费
|
|
|
// Map<String, Object> expenseStatus1 = getByIndexSingle(date, area, level, "50",dateFormat);
|
|
|
SaveModel expenseStatus1 = elasticsearchUtil.findOneDateQuotaLevel0(date,area,level,"50","2");
|
|
|
SaveModel expenseStatus1 = elasticsearchUtil.findOneDateQuotaLevel0(date, area, level, "50", "2");
|
|
|
//获取已缴费的签约数
|
|
|
// Map<String, Object> expenseStatus1Sigjn = getByIndexSingle(date, area, level, "1",dateFormat);
|
|
|
SaveModel expenseStatus1Sigjn = elasticsearchUtil.findOneDateQuotaLevel0(date,area,level,"1","2");
|
|
|
SaveModel expenseStatus1Sigjn = elasticsearchUtil.findOneDateQuotaLevel0(date, area, level, "1", "2");
|
|
|
JSONObject jsonObject = new JSONObject();
|
|
|
if (SaveModel.teamLevel.equals(level)) {
|
|
|
jsonObject.put("name", expenseStatus1Sigjn.getTeamName());
|
|
@ -2215,14 +2237,15 @@ public class StatisticsESService {
|
|
|
jsonObject.put("name", expenseStatus1Sigjn.getCityName());
|
|
|
}
|
|
|
jsonObject.put("code", area);
|
|
|
Long weChatAmount0 = expenseStatus0.getResult2().longValue();
|
|
|
Long weChatAmount1 = expenseStatus1.getResult2().longValue();
|
|
|
Long signAccount = expenseStatus1Sigjn.getResult2().longValue();
|
|
|
Long weChatAmount0 = expenseStatus0.getResult2().longValue();
|
|
|
Long weChatAmount1 = expenseStatus1.getResult2().longValue();
|
|
|
Long signAccount = expenseStatus1Sigjn.getResult2().longValue();
|
|
|
jsonObject.put("weChatAmount0", weChatAmount0);//微信关注未交费数
|
|
|
jsonObject.put("weChatAmount1", weChatAmount1);//微信关注已交费数
|
|
|
jsonObject.put("bindRate", getRangeDouuble(weChatAmount1.intValue(), signAccount.intValue(), 2));//微信关注率
|
|
|
return jsonObject;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 获取某个指标某一天某一level的值 到达量(单条记录)
|
|
|
*
|
|
@ -2234,8 +2257,8 @@ public class StatisticsESService {
|
|
|
* @return
|
|
|
* @throws Exception
|
|
|
*/
|
|
|
private Map<String,Object> getByIndexSingle(String date, String area, int level, String index, SimpleDateFormat dateFormat) throws Exception {
|
|
|
Map<String,Object> map =null;
|
|
|
private Map<String, Object> getByIndexSingle(String date, String area, int level, String index, SimpleDateFormat dateFormat) throws Exception {
|
|
|
Map<String, Object> map = null;
|
|
|
if (date.compareTo(dateFormat.format(new Date())) >= 0) {
|
|
|
map = getTodayLowLevelTotalSingle(date, area, level, index);
|
|
|
}
|
|
@ -2262,7 +2285,7 @@ public class StatisticsESService {
|
|
|
JSONObject json = new JSONObject(redisData);
|
|
|
data.put("code", String.valueOf(json.get("code")));
|
|
|
data.put("name", String.valueOf(json.get("name")));
|
|
|
data.put("amount",String.valueOf(json.get("num")));
|
|
|
data.put("amount", String.valueOf(json.get("num")));
|
|
|
} else {
|
|
|
Calendar today = Calendar.getInstance();
|
|
|
today.add(Calendar.DATE, -1);
|
|
@ -2274,8 +2297,9 @@ public class StatisticsESService {
|
|
|
|
|
|
/**
|
|
|
* 去年的签约量,续签量和续签率 列表
|
|
|
*
|
|
|
* @param area
|
|
|
* @param level 等级 1(5):团队 2(4)社区机构 (3)3区级 4(2)市级
|
|
|
* @param level 等级 1(5):团队 2(4)社区机构 (3)3区级 4(2)市级
|
|
|
* @param index
|
|
|
* @param sort
|
|
|
* @param lowLevel
|
|
@ -2297,19 +2321,19 @@ public class StatisticsESService {
|
|
|
|
|
|
if (StringUtils.isEmpty(lowCode)) {
|
|
|
//续签量
|
|
|
renewSaveModels = elasticsearchUtil.findDateQuotaLevel0(timeKey,timeKey, area, level, index, "2", "",lowLevel);
|
|
|
renewSaveModels = elasticsearchUtil.findDateQuotaLevel0(timeKey, timeKey, area, level, index, "2", "", lowLevel);
|
|
|
} else {
|
|
|
//续签量
|
|
|
renewSaveModels = elasticsearchUtil.findDateQuotaLevel1(timeKey,timeKey, area, level, index,"2",lowCode,"",low_level);
|
|
|
renewSaveModels = elasticsearchUtil.findDateQuotaLevel1(timeKey, timeKey, area, level, index, "2", lowCode, "", low_level);
|
|
|
}
|
|
|
|
|
|
if (renewSaveModels != null && renewSaveModels.size() > 0) {
|
|
|
for (SaveModel saveModel : renewSaveModels) {
|
|
|
if ("3".equals(low_level) && saveModel.getTown()!=null) {
|
|
|
if ("3".equals(low_level) && saveModel.getTown() != null) {
|
|
|
renewMap.put(saveModel.getTown(), saveModel.getResult2().intValue());
|
|
|
} else if ("4".equals(low_level) && saveModel.getHospital()!=null) {
|
|
|
} else if ("4".equals(low_level) && saveModel.getHospital() != null) {
|
|
|
renewMap.put(saveModel.getHospital(), saveModel.getResult2().intValue());
|
|
|
} else if ("5".equals(low_level) && saveModel.getTeam()!=null) {
|
|
|
} else if ("5".equals(low_level) && saveModel.getTeam() != null) {
|
|
|
renewMap.put(saveModel.getTeam(), saveModel.getResult2().intValue());
|
|
|
} else {
|
|
|
continue;
|
|
@ -2320,22 +2344,22 @@ public class StatisticsESService {
|
|
|
//自建结果集
|
|
|
resultList = getLowLevelMapKey(level, low_level, area);
|
|
|
|
|
|
if (resultList != null && resultList.size()>0) {
|
|
|
if (resultList != null && resultList.size() > 0) {
|
|
|
DecimalFormat df = new DecimalFormat("0.0000");
|
|
|
//查询去年的签约转map
|
|
|
List<SaveModel> yearsList = new ArrayList();
|
|
|
if (StringUtils.isBlank(lowCode)) {
|
|
|
yearsList = elasticsearchUtil.findListDateQuotaLevel0(lastDate,"",Integer.valueOf(low_level),"1","2","");
|
|
|
yearsList = elasticsearchUtil.findListDateQuotaLevel0(lastDate, "", Integer.valueOf(low_level), "1", "2", "");
|
|
|
} else {
|
|
|
if ("3".equals(lowCode)) {
|
|
|
//老年人
|
|
|
yearsList = elasticsearchUtil.findListDateQuotaLevel1(lastDate,"",Integer.valueOf(low_level),"17","2","","3");
|
|
|
yearsList = elasticsearchUtil.findListDateQuotaLevel1(lastDate, "", Integer.valueOf(low_level), "17", "2", "", "3");
|
|
|
} else if ("4".equals(lowCode)) {
|
|
|
//高血压
|
|
|
yearsList = elasticsearchUtil.findListDateQuotaLevel1(lastDate,"",Integer.valueOf(low_level),"17","2","","1");
|
|
|
yearsList = elasticsearchUtil.findListDateQuotaLevel1(lastDate, "", Integer.valueOf(low_level), "17", "2", "", "1");
|
|
|
} else if ("5".equals(lowCode)) {
|
|
|
//糖尿病
|
|
|
yearsList = elasticsearchUtil.findListDateQuotaLevel1(lastDate,"",Integer.valueOf(low_level),"17","2","","2");
|
|
|
yearsList = elasticsearchUtil.findListDateQuotaLevel1(lastDate, "", Integer.valueOf(low_level), "17", "2", "", "2");
|
|
|
} else {
|
|
|
}
|
|
|
}
|
|
@ -2356,16 +2380,16 @@ public class StatisticsESService {
|
|
|
int signNum = 0;
|
|
|
int renewNum = 0;
|
|
|
//获取去年签约的人数 默认是上个年度的最后一天
|
|
|
if(resultMap!=null && resultMap.size()>0){
|
|
|
if (resultMap != null && resultMap.size() > 0) {
|
|
|
SaveModel one = resultMap.get(reMap.get("code").toString());
|
|
|
if (one != null) {
|
|
|
signNum = one.getResult2().intValue();
|
|
|
}
|
|
|
}else{
|
|
|
} else {
|
|
|
}
|
|
|
if (renewMap!=null && renewMap.size()>0){
|
|
|
renewNum = renewMap.get(reMap.get("code").toString());
|
|
|
}else{
|
|
|
if (renewMap != null && renewMap.size() > 0) {
|
|
|
renewNum = renewMap.get(reMap.get("code").toString());
|
|
|
} else {
|
|
|
}
|
|
|
reMap.put("renewNum", renewNum);
|
|
|
reMap.put("signNum", signNum);
|
|
@ -2403,14 +2427,14 @@ public class StatisticsESService {
|
|
|
*
|
|
|
* @return
|
|
|
*/
|
|
|
public JSONObject getBindingRate() throws Exception{
|
|
|
public JSONObject getBindingRate() throws Exception {
|
|
|
JSONObject result = new JSONObject();
|
|
|
// Long bindCout = jdbcTemplate.queryForObject(getBindingCountSQL(), Long.class);
|
|
|
// Long signCout = jdbcTemplate.queryForObject(getSignCountSQL(), Long.class);
|
|
|
String quotaTime = elasticsearchUtil.getQuotaTime();
|
|
|
// quotaTime = "2017-10-19";
|
|
|
SaveModel saveModel1 = elasticsearchUtil.findOneDateQuotaLevel0(quotaTime,"350200",Integer.parseInt(SaveModel.cityLevel),"50","2");
|
|
|
SaveModel saveModel2 = elasticsearchUtil.findOneDateQuotaLevel0(quotaTime,"350200",Integer.parseInt(SaveModel.cityLevel),"1","2");
|
|
|
SaveModel saveModel1 = elasticsearchUtil.findOneDateQuotaLevel0(quotaTime, "350200", Integer.parseInt(SaveModel.cityLevel), "50", "2");
|
|
|
SaveModel saveModel2 = elasticsearchUtil.findOneDateQuotaLevel0(quotaTime, "350200", Integer.parseInt(SaveModel.cityLevel), "1", "2");
|
|
|
Integer bindCout = saveModel1.getResult2().intValue();
|
|
|
Integer signCout = saveModel2.getResult2().intValue();
|
|
|
|
|
@ -2427,7 +2451,7 @@ public class StatisticsESService {
|
|
|
public JSONArray getAVGSocreByMonth(String level, String area, String startDate, String endDate) throws Exception {
|
|
|
|
|
|
//每个月的评分数
|
|
|
List<SaveModel> list = elasticsearchUtil.findLineChartDateQuotaLevel0(startDate,endDate,area,Integer.parseInt(level),"28","2","3");
|
|
|
List<SaveModel> list = elasticsearchUtil.findLineChartDateQuotaLevel0(startDate, endDate, area, Integer.parseInt(level), "28", "2", "3");
|
|
|
//
|
|
|
String sql = "SELECT count(1) as num FROM wlyy_doctor d WHERE d.czrq<= ? ";
|
|
|
if (SaveModel.cityLevel.equals(level)) {
|
|
@ -2442,11 +2466,11 @@ public class StatisticsESService {
|
|
|
Map<String, Object> rs = null;
|
|
|
JSONArray jsRs = new JSONArray();
|
|
|
DecimalFormat df = new DecimalFormat("0.00");
|
|
|
for(SaveModel saveModel : list){
|
|
|
for (SaveModel saveModel : list) {
|
|
|
JSONObject json = new JSONObject();
|
|
|
rs = jdbcTemplate.queryForMap(sql, saveModel.getQuotaDate(), area);
|
|
|
json.put("month", dateFormat.format(saveModel.getQuotaDate()));
|
|
|
double rr = (double) saveModel.getResult1() / (Double.parseDouble(rs.get("num")+""));
|
|
|
double rr = (double) saveModel.getResult1() / (Double.parseDouble(rs.get("num") + ""));
|
|
|
json.put("socre", df.format(rr));
|
|
|
jsRs.put(json);
|
|
|
}
|
|
@ -2465,7 +2489,7 @@ public class StatisticsESService {
|
|
|
throw new RuntimeException("未找到团队信息");
|
|
|
}
|
|
|
//1.计算签约总数
|
|
|
SaveModel saveModel = elasticsearchUtil.findOneDateQuotaLevel0(startDate,endDate,admin.getId()+"",Integer.parseInt(SaveModel.teamLevel),"1","2");
|
|
|
SaveModel saveModel = elasticsearchUtil.findOneDateQuotaLevel0(startDate, endDate, admin.getId() + "", Integer.parseInt(SaveModel.teamLevel), "1", "2");
|
|
|
Long sc = saveModel.getResult2().longValue();
|
|
|
JSONObject signTotal = new JSONObject();
|
|
|
signTotal.put("signTotal", sc);
|
|
@ -2473,43 +2497,43 @@ public class StatisticsESService {
|
|
|
|
|
|
|
|
|
//3.平均满意度
|
|
|
SaveModel saveModel2 = elasticsearchUtil.findOneDateQuotaLevel0(startDate,endDate,admin.getId()+"",Integer.parseInt(SaveModel.teamLevel),"28","2");
|
|
|
SaveModel saveModel2 = elasticsearchUtil.findOneDateQuotaLevel0(startDate, endDate, admin.getId() + "", Integer.parseInt(SaveModel.teamLevel), "28", "2");
|
|
|
// String sql = "SELECT count(1) as num FROM wlyy_consult_team d WHERE d.czrq>= ? and d.czrq<=? and d.admin_team_code =? ";
|
|
|
// Map<String, Object> map = jdbcTemplate.queryForMap(sql, startDate, endDate,admin.getId());
|
|
|
SaveModel saveModel21 = elasticsearchUtil.findOneDateQuotaLevel0(startDate,endDate,admin.getId()+"",Integer.parseInt(SaveModel.teamLevel),"3","2");
|
|
|
Double avgCout = saveModel2.getResult1()/saveModel21.getResult2();
|
|
|
Map<String,Object> avgScore = new HashMap<>();
|
|
|
avgScore.put("avgScore",avgCout);
|
|
|
SaveModel saveModel21 = elasticsearchUtil.findOneDateQuotaLevel0(startDate, endDate, admin.getId() + "", Integer.parseInt(SaveModel.teamLevel), "3", "2");
|
|
|
Double avgCout = saveModel2.getResult1() / saveModel21.getResult2();
|
|
|
Map<String, Object> avgScore = new HashMap<>();
|
|
|
avgScore.put("avgScore", avgCout);
|
|
|
rs.put(avgScore);
|
|
|
|
|
|
//4.获取咨詢數
|
|
|
SaveModel saveModel3 = elasticsearchUtil.findOneDateQuotaLevel0(startDate,endDate,admin.getId()+"",Integer.parseInt(SaveModel.teamLevel),"3","2");
|
|
|
Map<String,Object> consultCout = new HashMap<>();
|
|
|
consultCout.put("consultCount",saveModel3.getResult2().longValue());
|
|
|
SaveModel saveModel3 = elasticsearchUtil.findOneDateQuotaLevel0(startDate, endDate, admin.getId() + "", Integer.parseInt(SaveModel.teamLevel), "3", "2");
|
|
|
Map<String, Object> consultCout = new HashMap<>();
|
|
|
consultCout.put("consultCount", saveModel3.getResult2().longValue());
|
|
|
rs.put(consultCout);
|
|
|
|
|
|
//5.获取待预约
|
|
|
SaveModel saveModel4 = elasticsearchUtil.findOneDateQuotaLevel0(startDate,endDate,admin.getId()+"",Integer.parseInt(SaveModel.teamLevel),"27","2");
|
|
|
Map<String,Object> reservationCout = new HashMap<>();
|
|
|
reservationCout.put("reservationCount",saveModel4.getResult2().longValue());
|
|
|
SaveModel saveModel4 = elasticsearchUtil.findOneDateQuotaLevel0(startDate, endDate, admin.getId() + "", Integer.parseInt(SaveModel.teamLevel), "27", "2");
|
|
|
Map<String, Object> reservationCout = new HashMap<>();
|
|
|
reservationCout.put("reservationCount", saveModel4.getResult2().longValue());
|
|
|
rs.put(reservationCout);
|
|
|
|
|
|
//6.获取健康教育
|
|
|
SaveModel saveModel5 = elasticsearchUtil.findOneDateQuotaLevel0(startDate,endDate,admin.getId()+"",Integer.parseInt(SaveModel.teamLevel),"59","2");
|
|
|
Map<String,Object> articleCout = new HashMap<>();
|
|
|
articleCout.put("articleCount",saveModel5.getResult2().longValue());
|
|
|
SaveModel saveModel5 = elasticsearchUtil.findOneDateQuotaLevel0(startDate, endDate, admin.getId() + "", Integer.parseInt(SaveModel.teamLevel), "59", "2");
|
|
|
Map<String, Object> articleCout = new HashMap<>();
|
|
|
articleCout.put("articleCount", saveModel5.getResult2().longValue());
|
|
|
rs.put(articleCout);
|
|
|
|
|
|
//7.获取健康指导
|
|
|
SaveModel saveModel6 = elasticsearchUtil.findOneDateQuotaLevel0(startDate,endDate,admin.getId()+"",Integer.parseInt(SaveModel.teamLevel),"5","2");
|
|
|
Map<String,Object> guidanceCout = new HashMap<>();
|
|
|
guidanceCout.put("guidanceCount",saveModel6.getResult2().longValue());
|
|
|
SaveModel saveModel6 = elasticsearchUtil.findOneDateQuotaLevel0(startDate, endDate, admin.getId() + "", Integer.parseInt(SaveModel.teamLevel), "5", "2");
|
|
|
Map<String, Object> guidanceCout = new HashMap<>();
|
|
|
guidanceCout.put("guidanceCount", saveModel6.getResult2().longValue());
|
|
|
rs.put(guidanceCout);
|
|
|
|
|
|
//8.随访数目
|
|
|
SaveModel saveModel7 = elasticsearchUtil.findOneDateQuotaLevel0(startDate,endDate,admin.getId()+"",Integer.parseInt(SaveModel.teamLevel),"4","2");
|
|
|
Map<String,Object> followupCout = new HashMap<>();
|
|
|
followupCout.put("followupCount",saveModel7.getResult2().longValue());
|
|
|
SaveModel saveModel7 = elasticsearchUtil.findOneDateQuotaLevel0(startDate, endDate, admin.getId() + "", Integer.parseInt(SaveModel.teamLevel), "4", "2");
|
|
|
Map<String, Object> followupCout = new HashMap<>();
|
|
|
followupCout.put("followupCount", saveModel7.getResult2().longValue());
|
|
|
rs.put(followupCout);
|
|
|
|
|
|
return rs;
|
|
@ -2530,12 +2554,12 @@ public class StatisticsESService {
|
|
|
throw new RuntimeException("未找到团队信息");
|
|
|
}
|
|
|
Long id = admin.getId();
|
|
|
List<SaveModel> list = elasticsearchUtil.findLineChartDateQuotaLevel0(startDate,endDate,id+"",Integer.parseInt(SaveModel.teamLevel),"1","2",String.valueOf(Integer.parseInt(type)+1));
|
|
|
List<SaveModel> list = elasticsearchUtil.findLineChartDateQuotaLevel0(startDate, endDate, id + "", Integer.parseInt(SaveModel.teamLevel), "1", "2", String.valueOf(Integer.parseInt(type) + 1));
|
|
|
List<Map<String, Object>> rs = new ArrayList<>();
|
|
|
for (SaveModel saveModel:list) {
|
|
|
for (SaveModel saveModel : list) {
|
|
|
Map<String, Object> map = new HashMap<>();
|
|
|
map.put("applyDate",dateFormat3.format(saveModel.getQuotaDate()));
|
|
|
map.put("signCount",saveModel.getResult2().longValue());
|
|
|
map.put("applyDate", dateFormat3.format(saveModel.getQuotaDate()));
|
|
|
map.put("signCount", saveModel.getResult2().longValue());
|
|
|
rs.add(map);
|
|
|
}
|
|
|
JSONArray rsJs = new JSONArray(rs);
|
|
@ -2557,12 +2581,12 @@ public class StatisticsESService {
|
|
|
throw new RuntimeException("未找到团队信息");
|
|
|
}
|
|
|
Long id = admin.getId();
|
|
|
List<SaveModel> list = elasticsearchUtil.findLineChartDateQuotaLevel0(startDate,endDate,id+"",Integer.parseInt(SaveModel.teamLevel),"42","2",String.valueOf(Integer.parseInt(type)+1));
|
|
|
List<SaveModel> list = elasticsearchUtil.findLineChartDateQuotaLevel0(startDate, endDate, id + "", Integer.parseInt(SaveModel.teamLevel), "42", "2", String.valueOf(Integer.parseInt(type) + 1));
|
|
|
List<Map<String, Object>> rs = new ArrayList<>();
|
|
|
for (SaveModel saveModel:list) {
|
|
|
for (SaveModel saveModel : list) {
|
|
|
Map<String, Object> map = new HashMap<>();
|
|
|
map.put("applyDate",dateFormat3.format(saveModel.getQuotaDate()));
|
|
|
map.put("signCount",saveModel.getResult2().longValue());
|
|
|
map.put("applyDate", dateFormat3.format(saveModel.getQuotaDate()));
|
|
|
map.put("signCount", saveModel.getResult2().longValue());
|
|
|
rs.add(map);
|
|
|
}
|
|
|
JSONArray rsJs = new JSONArray(rs);
|
|
@ -2571,13 +2595,14 @@ public class StatisticsESService {
|
|
|
|
|
|
/**
|
|
|
* 获取咨询数和未回复数
|
|
|
*
|
|
|
* @param doctor
|
|
|
* @param startDate
|
|
|
* @param endDate
|
|
|
* @param isNow
|
|
|
* @return
|
|
|
*/
|
|
|
public JSONObject getReyStatbyTeamNow(String doctor, String startDate, String endDate, String isNow) throws Exception{
|
|
|
public JSONObject getReyStatbyTeamNow(String doctor, String startDate, String endDate, String isNow) throws Exception {
|
|
|
|
|
|
AdminTeam admin = adminTeamDao.findByLeaderCode(doctor);
|
|
|
if (admin == null) {
|
|
@ -2585,11 +2610,11 @@ public class StatisticsESService {
|
|
|
}
|
|
|
Long id = admin.getId();
|
|
|
//家庭医生、健康咨询到达量
|
|
|
SaveModel saveModel = elasticsearchUtil.findOneDateQuotaLevel0(startDate,endDate,id+"",Integer.parseInt(SaveModel.teamLevel),"3","2");
|
|
|
SaveModel saveModel = elasticsearchUtil.findOneDateQuotaLevel0(startDate, endDate, id + "", Integer.parseInt(SaveModel.teamLevel), "3", "2");
|
|
|
Long totalCount = saveModel.getResult2().longValue();
|
|
|
|
|
|
//健康咨询量 未回复到达量
|
|
|
SaveModel saveModel2 = elasticsearchUtil.findOneDateQuotaLevel0(startDate,endDate,id+"",Integer.parseInt(SaveModel.teamLevel),"22","2");
|
|
|
SaveModel saveModel2 = elasticsearchUtil.findOneDateQuotaLevel0(startDate, endDate, id + "", Integer.parseInt(SaveModel.teamLevel), "22", "2");
|
|
|
Long noReyCount = saveModel.getResult2().longValue();
|
|
|
JSONObject rs = new JSONObject();
|
|
|
rs.put("onReyCount", noReyCount);
|
|
@ -2606,7 +2631,7 @@ public class StatisticsESService {
|
|
|
* @param type 0 周,1月
|
|
|
* @return
|
|
|
*/
|
|
|
public JSONArray getAvgLine(String doctor, String startDate, String endDate, String type) throws Exception{
|
|
|
public JSONArray getAvgLine(String doctor, String startDate, String endDate, String type) throws Exception {
|
|
|
|
|
|
AdminTeam admin = adminTeamDao.findByLeaderCode(doctor);
|
|
|
if (admin == null) {
|
|
@ -2614,26 +2639,26 @@ public class StatisticsESService {
|
|
|
}
|
|
|
Long id = admin.getId();
|
|
|
//统计评分
|
|
|
Integer interval = Integer.parseInt(type)+2;
|
|
|
List<SaveModel> list = elasticsearchUtil.findLineChartDateQuotaLevel0(startDate,endDate,id+"",Integer.parseInt(SaveModel.teamLevel),"28","2",interval+"");
|
|
|
Integer interval = Integer.parseInt(type) + 2;
|
|
|
List<SaveModel> list = elasticsearchUtil.findLineChartDateQuotaLevel0(startDate, endDate, id + "", Integer.parseInt(SaveModel.teamLevel), "28", "2", interval + "");
|
|
|
SaveModel saveModel = null;
|
|
|
Map<String, Object> map = null;
|
|
|
List<Map<String, Object>> rs = null;
|
|
|
Double avgCount = 0.0;
|
|
|
for(SaveModel one:list){
|
|
|
Double avgCount = 0.0;
|
|
|
for (SaveModel one : list) {
|
|
|
String quotaDate = dateFormat.format(one.getQuotaDate());
|
|
|
saveModel = elasticsearchUtil.findOneDateQuotaLevel0(quotaDate,id+"",Integer.parseInt(SaveModel.teamLevel),"59","2");
|
|
|
avgCount = one.getResult1()/saveModel.getResult2();
|
|
|
if(avgCount==0.0){
|
|
|
saveModel = elasticsearchUtil.findOneDateQuotaLevel0(quotaDate, id + "", Integer.parseInt(SaveModel.teamLevel), "59", "2");
|
|
|
avgCount = one.getResult1() / saveModel.getResult2();
|
|
|
if (avgCount == 0.0) {
|
|
|
avgCount = 80.0;
|
|
|
}
|
|
|
map = new HashMap<>();
|
|
|
if("0".equals(type)){
|
|
|
map.put("dateNo",dateFormat.format(one.getQuotaDate()));
|
|
|
}else{
|
|
|
map.put("weekNo",dateFormat.format(one.getQuotaDate()));
|
|
|
if ("0".equals(type)) {
|
|
|
map.put("dateNo", dateFormat.format(one.getQuotaDate()));
|
|
|
} else {
|
|
|
map.put("weekNo", dateFormat.format(one.getQuotaDate()));
|
|
|
}
|
|
|
map.put("avgCount",avgCount);
|
|
|
map.put("avgCount", avgCount);
|
|
|
rs.add(map);
|
|
|
}
|
|
|
return new JSONArray(rs);
|
|
@ -2648,35 +2673,35 @@ public class StatisticsESService {
|
|
|
* @param type 0周,1月
|
|
|
* @return
|
|
|
*/
|
|
|
public JSONObject getTeamConsultCount(String teamCode, String startDate, String endDate, String type) throws Exception{
|
|
|
public JSONObject getTeamConsultCount(String teamCode, String startDate, String endDate, String type) throws Exception {
|
|
|
|
|
|
//咨询未回复
|
|
|
Integer interval = Integer.parseInt(type)+2;
|
|
|
List<SaveModel> list = elasticsearchUtil.findLineChartDateQuotaLevel0(startDate,endDate,teamCode,Integer.parseInt(SaveModel.teamLevel),"22","2",interval+"");
|
|
|
Integer interval = Integer.parseInt(type) + 2;
|
|
|
List<SaveModel> list = elasticsearchUtil.findLineChartDateQuotaLevel0(startDate, endDate, teamCode, Integer.parseInt(SaveModel.teamLevel), "22", "2", interval + "");
|
|
|
//咨询总数
|
|
|
List<SaveModel> list2 = elasticsearchUtil.findLineChartDateQuotaLevel0(startDate,endDate,teamCode,Integer.parseInt(SaveModel.teamLevel),"3","2",interval+"");
|
|
|
List<SaveModel> list2 = elasticsearchUtil.findLineChartDateQuotaLevel0(startDate, endDate, teamCode, Integer.parseInt(SaveModel.teamLevel), "3", "2", interval + "");
|
|
|
Map<String, Object> map = null;
|
|
|
List<Map<String, Object>> noReyList = new ArrayList<>();
|
|
|
for (SaveModel one:list) {
|
|
|
for (SaveModel one : list) {
|
|
|
map = new HashMap<>();
|
|
|
if ("0".equals(type)) {
|
|
|
map.put("weekOfMonth",DateUtil.getWeekOfMonth(dateFormat.format(one.getQuotaDate())));
|
|
|
}else{
|
|
|
map.put("dateNo",dateFormat.format(one.getQuotaDate()));
|
|
|
map.put("weekOfMonth", DateUtil.getWeekOfMonth(dateFormat.format(one.getQuotaDate())));
|
|
|
} else {
|
|
|
map.put("dateNo", dateFormat.format(one.getQuotaDate()));
|
|
|
}
|
|
|
map.put("noRely",one.getResult2().longValue());
|
|
|
map.put("noRely", one.getResult2().longValue());
|
|
|
noReyList.add(map);
|
|
|
}
|
|
|
|
|
|
List<Map<String, Object>> totalList = new ArrayList<>();
|
|
|
for (SaveModel one:list) {
|
|
|
for (SaveModel one : list) {
|
|
|
map = new HashMap<>();
|
|
|
if ("0".equals(type)) {
|
|
|
map.put("weekOfMonth",DateUtil.getWeekOfMonth(dateFormat.format(one.getQuotaDate())));
|
|
|
}else{
|
|
|
map.put("dateNo",dateFormat.format(one.getQuotaDate()));
|
|
|
map.put("weekOfMonth", DateUtil.getWeekOfMonth(dateFormat.format(one.getQuotaDate())));
|
|
|
} else {
|
|
|
map.put("dateNo", dateFormat.format(one.getQuotaDate()));
|
|
|
}
|
|
|
map.put("noRely",one.getResult2().longValue());
|
|
|
map.put("noRely", one.getResult2().longValue());
|
|
|
totalList.add(map);
|
|
|
}
|
|
|
JSONObject result = new JSONObject();
|
|
@ -2694,20 +2719,20 @@ public class StatisticsESService {
|
|
|
* @param endDate
|
|
|
* @return
|
|
|
*/
|
|
|
public JSONObject getTeamFollowupLine(String teamCode, String startDate, String endDate, String type) throws Exception{
|
|
|
public JSONObject getTeamFollowupLine(String teamCode, String startDate, String endDate, String type) throws Exception {
|
|
|
|
|
|
Integer interval = Integer.parseInt(type)+2;
|
|
|
List<SaveModel> list = elasticsearchUtil.findLineChartDateQuotaLevel0(startDate,endDate,teamCode,Integer.parseInt(SaveModel.teamLevel),"4","2",interval+"");
|
|
|
Integer interval = Integer.parseInt(type) + 2;
|
|
|
List<SaveModel> list = elasticsearchUtil.findLineChartDateQuotaLevel0(startDate, endDate, teamCode, Integer.parseInt(SaveModel.teamLevel), "4", "2", interval + "");
|
|
|
Map<String, Object> map = null;
|
|
|
List<Map<String, Object>> totalList = new ArrayList<>();
|
|
|
for(SaveModel one:list){
|
|
|
for (SaveModel one : list) {
|
|
|
map = new HashMap<>();
|
|
|
if ("0".equals(type)) {
|
|
|
map.put("dateNo",dateFormat.format(one.getQuotaDate()));
|
|
|
}else{
|
|
|
map.put("weekOfMonth",DateUtil.getWeekOfMonth(dateFormat.format(one.getQuotaDate())));
|
|
|
map.put("dateNo", dateFormat.format(one.getQuotaDate()));
|
|
|
} else {
|
|
|
map.put("weekOfMonth", DateUtil.getWeekOfMonth(dateFormat.format(one.getQuotaDate())));
|
|
|
}
|
|
|
map.put("followupCount",one.getResult2().longValue());
|
|
|
map.put("followupCount", one.getResult2().longValue());
|
|
|
totalList.add(map);
|
|
|
}
|
|
|
|
|
@ -2716,28 +2741,29 @@ public class StatisticsESService {
|
|
|
|
|
|
/**
|
|
|
* 获取待预约量团队统计折线图
|
|
|
*
|
|
|
* @param teamCode
|
|
|
* @param startDate
|
|
|
* @param endDate
|
|
|
* @param type
|
|
|
* @return
|
|
|
*/
|
|
|
public JSONArray getTeamResLine(String teamCode, String startDate, String endDate, String type) throws Exception{
|
|
|
public JSONArray getTeamResLine(String teamCode, String startDate, String endDate, String type) throws Exception {
|
|
|
|
|
|
startDate = elasticsearchUtil.changeTime(startDate + " 00:00:00");
|
|
|
endDate = elasticsearchUtil.changeTime(endDate + " 23:59:59");
|
|
|
Integer interval = Integer.parseInt(type)+2;
|
|
|
List<SaveModel> list = elasticsearchUtil.findLineChartDateQuotaLevel0(startDate,endDate,teamCode,Integer.parseInt(SaveModel.teamLevel),"27","2",interval+"");
|
|
|
Integer interval = Integer.parseInt(type) + 2;
|
|
|
List<SaveModel> list = elasticsearchUtil.findLineChartDateQuotaLevel0(startDate, endDate, teamCode, Integer.parseInt(SaveModel.teamLevel), "27", "2", interval + "");
|
|
|
Map<String, Object> map = null;
|
|
|
List<Map<String, Object>> totalList = new ArrayList<>();
|
|
|
for(SaveModel one:list){
|
|
|
for (SaveModel one : list) {
|
|
|
map = new HashMap<>();
|
|
|
if ("0".equals(type)) {
|
|
|
map.put("dateNo",dateFormat.format(one.getQuotaDate()));
|
|
|
}else{
|
|
|
map.put("weekOfMonth",DateUtil.getWeekOfMonth(dateFormat.format(one.getQuotaDate())));
|
|
|
map.put("dateNo", dateFormat.format(one.getQuotaDate()));
|
|
|
} else {
|
|
|
map.put("weekOfMonth", DateUtil.getWeekOfMonth(dateFormat.format(one.getQuotaDate())));
|
|
|
}
|
|
|
map.put("reservationCount",one.getResult2().longValue());
|
|
|
map.put("reservationCount", one.getResult2().longValue());
|
|
|
totalList.add(map);
|
|
|
}
|
|
|
return new JSONArray(totalList);
|
|
@ -2745,74 +2771,75 @@ public class StatisticsESService {
|
|
|
|
|
|
/**
|
|
|
* 团队报告--长处方
|
|
|
*
|
|
|
* @param startDate
|
|
|
* @param endDate
|
|
|
* @param adminTeamId
|
|
|
* @return
|
|
|
* @throws Exception
|
|
|
*/
|
|
|
public Map<String,Object> getPrescriptionTotalCount(String startDate, String endDate, Integer adminTeamId)throws Exception{
|
|
|
public Map<String, Object> getPrescriptionTotalCount(String startDate, String endDate, Integer adminTeamId) throws Exception {
|
|
|
//格式化时间
|
|
|
startDate = startDate +" 00:00:00";
|
|
|
endDate = endDate +" 23:59:59";
|
|
|
String index ="58";
|
|
|
Map<String,Object> rs = new HashedMap();
|
|
|
startDate = startDate + " 00:00:00";
|
|
|
endDate = endDate + " 23:59:59";
|
|
|
String index = "58";
|
|
|
Map<String, Object> rs = new HashedMap();
|
|
|
//总数
|
|
|
List<SaveModel> totalList = elasticsearchUtil.findListDateQuotaLevel0(startDate,endDate,String.valueOf(adminTeamId),Integer.valueOf(SaveModel.teamLevel),index,"2",null);
|
|
|
List<SaveModel> totalList = elasticsearchUtil.findListDateQuotaLevel0(startDate, endDate, String.valueOf(adminTeamId), Integer.valueOf(SaveModel.teamLevel), index, "2", null);
|
|
|
//进行中
|
|
|
List<SaveModel> processingList = elasticsearchUtil.findListDateQuotaLevel0(startDate,endDate,String.valueOf(adminTeamId),Integer.valueOf(SaveModel.teamLevel),index,"2","1");
|
|
|
List<SaveModel> processingList = elasticsearchUtil.findListDateQuotaLevel0(startDate, endDate, String.valueOf(adminTeamId), Integer.valueOf(SaveModel.teamLevel), index, "2", "1");
|
|
|
//已完成
|
|
|
List<SaveModel> finishedList = elasticsearchUtil.findListDateQuotaLevel0(startDate,endDate,String.valueOf(adminTeamId),Integer.valueOf(SaveModel.teamLevel),index,"2","2");
|
|
|
List<SaveModel> finishedList = elasticsearchUtil.findListDateQuotaLevel0(startDate, endDate, String.valueOf(adminTeamId), Integer.valueOf(SaveModel.teamLevel), index, "2", "2");
|
|
|
//已经取消
|
|
|
List<SaveModel> canceledList = elasticsearchUtil.findListDateQuotaLevel0(startDate,endDate,String.valueOf(adminTeamId),Integer.valueOf(SaveModel.teamLevel),index,"2","3");
|
|
|
List<SaveModel> canceledList = elasticsearchUtil.findListDateQuotaLevel0(startDate, endDate, String.valueOf(adminTeamId), Integer.valueOf(SaveModel.teamLevel), index, "2", "3");
|
|
|
//审核不通过
|
|
|
List<SaveModel> unPassList = elasticsearchUtil.findListDateQuotaLevel0(startDate,endDate,String.valueOf(adminTeamId),Integer.valueOf(SaveModel.teamLevel),index,"2","4");
|
|
|
List<SaveModel> unPassList = elasticsearchUtil.findListDateQuotaLevel0(startDate, endDate, String.valueOf(adminTeamId), Integer.valueOf(SaveModel.teamLevel), index, "2", "4");
|
|
|
//其他原因取消
|
|
|
List<SaveModel> otherList = elasticsearchUtil.findListDateQuotaLevel0(startDate,endDate,String.valueOf(adminTeamId),Integer.valueOf(SaveModel.teamLevel),index,"2","5");
|
|
|
List<SaveModel> otherList = elasticsearchUtil.findListDateQuotaLevel0(startDate, endDate, String.valueOf(adminTeamId), Integer.valueOf(SaveModel.teamLevel), index, "2", "5");
|
|
|
|
|
|
//总数
|
|
|
if(totalList!=null && totalList.size()>0){
|
|
|
rs.put("total",totalList.get(0).getResult2());
|
|
|
}else{
|
|
|
rs.put("total",0);
|
|
|
if (totalList != null && totalList.size() > 0) {
|
|
|
rs.put("total", totalList.get(0).getResult2());
|
|
|
} else {
|
|
|
rs.put("total", 0);
|
|
|
}
|
|
|
|
|
|
//进行中
|
|
|
if(processingList!=null && processingList.size()>0){
|
|
|
rs.put("processingCount",processingList.get(0).getResult2());
|
|
|
}else {
|
|
|
if (processingList != null && processingList.size() > 0) {
|
|
|
rs.put("processingCount", processingList.get(0).getResult2());
|
|
|
} else {
|
|
|
rs.put("processingCount", 0);
|
|
|
}
|
|
|
//已完成
|
|
|
if(finishedList!=null && finishedList.size()>0){
|
|
|
rs.put("finishCount",finishedList.get(0).getResult2());
|
|
|
}else {
|
|
|
if (finishedList != null && finishedList.size() > 0) {
|
|
|
rs.put("finishCount", finishedList.get(0).getResult2());
|
|
|
} else {
|
|
|
rs.put("finishCount", 0);
|
|
|
}
|
|
|
//已取消
|
|
|
if(canceledList!=null && canceledList.size()>0){
|
|
|
rs.put("patientCancelCount",canceledList.get(0).getResult2());
|
|
|
}else {
|
|
|
if (canceledList != null && canceledList.size() > 0) {
|
|
|
rs.put("patientCancelCount", canceledList.get(0).getResult2());
|
|
|
} else {
|
|
|
rs.put("patientCancelCount", 0);
|
|
|
}
|
|
|
//审核不通过
|
|
|
if(unPassList!=null && unPassList.size()>0){
|
|
|
rs.put("noReviewedCount",unPassList.get(0).getResult2());
|
|
|
}else {
|
|
|
if (unPassList != null && unPassList.size() > 0) {
|
|
|
rs.put("noReviewedCount", unPassList.get(0).getResult2());
|
|
|
} else {
|
|
|
rs.put("noReviewedCount", 0);
|
|
|
}
|
|
|
//其他原因取消
|
|
|
if(otherList!=null && otherList.size()>0){
|
|
|
rs.put("payOuttimeCount",otherList.get(0).getResult2());
|
|
|
}else {
|
|
|
if (otherList != null && otherList.size() > 0) {
|
|
|
rs.put("payOuttimeCount", otherList.get(0).getResult2());
|
|
|
} else {
|
|
|
rs.put("payOuttimeCount", 0);
|
|
|
}
|
|
|
return rs;
|
|
|
}
|
|
|
|
|
|
public Map<String,Object> getPrescriptionCount(int level,String area,String disease) throws Exception{
|
|
|
String index ="58";
|
|
|
Map<String,Object> rs = new HashedMap();
|
|
|
public Map<String, Object> getPrescriptionCount(int level, String area, String disease) throws Exception {
|
|
|
String index = "58";
|
|
|
Map<String, Object> rs = new HashedMap();
|
|
|
List<SaveModel> totalList = null;
|
|
|
List<SaveModel> processingList = null;
|
|
|
List<SaveModel> finishedList = null;
|
|
@ -2820,98 +2847,98 @@ public class StatisticsESService {
|
|
|
List<SaveModel> unPassList = null;
|
|
|
List<SaveModel> otherList = null;
|
|
|
//总数
|
|
|
if(StringUtils.isNotBlank(disease)){
|
|
|
totalList = elasticsearchUtil.findListDateQuotaLevel1(null,area,level,index,"2",null,disease);
|
|
|
}else{
|
|
|
totalList = elasticsearchUtil.findListDateQuotaLevel0(null,area,level,index,"2",null);
|
|
|
if (StringUtils.isNotBlank(disease)) {
|
|
|
totalList = elasticsearchUtil.findListDateQuotaLevel1(null, area, level, index, "2", null, disease);
|
|
|
} else {
|
|
|
totalList = elasticsearchUtil.findListDateQuotaLevel0(null, area, level, index, "2", null);
|
|
|
}
|
|
|
//进行中
|
|
|
if(StringUtils.isNotBlank(disease)){
|
|
|
processingList = elasticsearchUtil.findListDateQuotaLevel2(null,area,level,index,"2",null,disease,"1");
|
|
|
}else{
|
|
|
processingList = elasticsearchUtil.findListDateQuotaLevel1(null,area,level,index,"2",null,"1");
|
|
|
if (StringUtils.isNotBlank(disease)) {
|
|
|
processingList = elasticsearchUtil.findListDateQuotaLevel2(null, area, level, index, "2", null, disease, "1");
|
|
|
} else {
|
|
|
processingList = elasticsearchUtil.findListDateQuotaLevel1(null, area, level, index, "2", null, "1");
|
|
|
}
|
|
|
//已完成
|
|
|
if(StringUtils.isNotBlank(disease)){
|
|
|
finishedList = elasticsearchUtil.findListDateQuotaLevel2(null,area,level,index,"2",null,disease,"2");
|
|
|
}else{
|
|
|
finishedList = elasticsearchUtil.findListDateQuotaLevel1(null,area,level,index,"2",null,"2");
|
|
|
if (StringUtils.isNotBlank(disease)) {
|
|
|
finishedList = elasticsearchUtil.findListDateQuotaLevel2(null, area, level, index, "2", null, disease, "2");
|
|
|
} else {
|
|
|
finishedList = elasticsearchUtil.findListDateQuotaLevel1(null, area, level, index, "2", null, "2");
|
|
|
}
|
|
|
//已经取消
|
|
|
if(StringUtils.isNotBlank(disease)){
|
|
|
canceledList = elasticsearchUtil.findListDateQuotaLevel2(null,area,level,index,"2",null,disease,"3");
|
|
|
}else{
|
|
|
canceledList = elasticsearchUtil.findListDateQuotaLevel1(null,area,level,index,"2",null,"3");
|
|
|
if (StringUtils.isNotBlank(disease)) {
|
|
|
canceledList = elasticsearchUtil.findListDateQuotaLevel2(null, area, level, index, "2", null, disease, "3");
|
|
|
} else {
|
|
|
canceledList = elasticsearchUtil.findListDateQuotaLevel1(null, area, level, index, "2", null, "3");
|
|
|
}
|
|
|
//审核不通过
|
|
|
if(StringUtils.isNotBlank(disease)){
|
|
|
unPassList = elasticsearchUtil.findListDateQuotaLevel2(null,area,level,index,"2",null,disease,"4");
|
|
|
}else{
|
|
|
unPassList = elasticsearchUtil.findListDateQuotaLevel1(null,area,level,index,"2",null,"4");
|
|
|
if (StringUtils.isNotBlank(disease)) {
|
|
|
unPassList = elasticsearchUtil.findListDateQuotaLevel2(null, area, level, index, "2", null, disease, "4");
|
|
|
} else {
|
|
|
unPassList = elasticsearchUtil.findListDateQuotaLevel1(null, area, level, index, "2", null, "4");
|
|
|
}
|
|
|
//其他原因取消
|
|
|
if(StringUtils.isNotBlank(disease)){
|
|
|
otherList = elasticsearchUtil.findListDateQuotaLevel2(null,area,level,index,"2",null,disease,"5");
|
|
|
}else{
|
|
|
otherList = elasticsearchUtil.findListDateQuotaLevel1(null,area,level,index,"2",null,"5");
|
|
|
if (StringUtils.isNotBlank(disease)) {
|
|
|
otherList = elasticsearchUtil.findListDateQuotaLevel2(null, area, level, index, "2", null, disease, "5");
|
|
|
} else {
|
|
|
otherList = elasticsearchUtil.findListDateQuotaLevel1(null, area, level, index, "2", null, "5");
|
|
|
}
|
|
|
|
|
|
//总数
|
|
|
if(totalList!=null && totalList.size()>0){
|
|
|
rs.put("total",totalList.get(0).getResult2());
|
|
|
}else{
|
|
|
rs.put("total",0);
|
|
|
if (totalList != null && totalList.size() > 0) {
|
|
|
rs.put("total", totalList.get(0).getResult2());
|
|
|
} else {
|
|
|
rs.put("total", 0);
|
|
|
}
|
|
|
|
|
|
//进行中
|
|
|
if(processingList!=null && processingList.size()>0){
|
|
|
rs.put("processingCount",processingList.get(0).getResult2());
|
|
|
}else {
|
|
|
if (processingList != null && processingList.size() > 0) {
|
|
|
rs.put("processingCount", processingList.get(0).getResult2());
|
|
|
} else {
|
|
|
rs.put("processingCount", 0);
|
|
|
}
|
|
|
//已完成
|
|
|
if(finishedList!=null && finishedList.size()>0){
|
|
|
rs.put("finishCount",finishedList.get(0).getResult2());
|
|
|
}else {
|
|
|
if (finishedList != null && finishedList.size() > 0) {
|
|
|
rs.put("finishCount", finishedList.get(0).getResult2());
|
|
|
} else {
|
|
|
rs.put("finishCount", 0);
|
|
|
}
|
|
|
//已取消
|
|
|
if(canceledList!=null && canceledList.size()>0){
|
|
|
rs.put("patientCancelCount",canceledList.get(0).getResult2());
|
|
|
}else {
|
|
|
if (canceledList != null && canceledList.size() > 0) {
|
|
|
rs.put("patientCancelCount", canceledList.get(0).getResult2());
|
|
|
} else {
|
|
|
rs.put("patientCancelCount", 0);
|
|
|
}
|
|
|
//审核不通过
|
|
|
if(unPassList!=null && unPassList.size()>0){
|
|
|
rs.put("noReviewedCount",unPassList.get(0).getResult2());
|
|
|
}else {
|
|
|
if (unPassList != null && unPassList.size() > 0) {
|
|
|
rs.put("noReviewedCount", unPassList.get(0).getResult2());
|
|
|
} else {
|
|
|
rs.put("noReviewedCount", 0);
|
|
|
}
|
|
|
//其他原因取消
|
|
|
if(otherList!=null && otherList.size()>0){
|
|
|
rs.put("payOuttimeCount",otherList.get(0).getResult2());
|
|
|
}else {
|
|
|
if (otherList != null && otherList.size() > 0) {
|
|
|
rs.put("payOuttimeCount", otherList.get(0).getResult2());
|
|
|
} else {
|
|
|
rs.put("payOuttimeCount", 0);
|
|
|
}
|
|
|
return rs;
|
|
|
}
|
|
|
|
|
|
public JSONArray getTeamGuidLine(String teamCode, String startDate, String endDate, String type) throws Exception{
|
|
|
public JSONArray getTeamGuidLine(String teamCode, String startDate, String endDate, String type) throws Exception {
|
|
|
|
|
|
startDate = elasticsearchUtil.changeTime(startDate + " 00:00:00");
|
|
|
endDate = elasticsearchUtil.changeTime(endDate + " 23:59:59");
|
|
|
Integer interval = Integer.parseInt(type)+2;
|
|
|
List<SaveModel> list = elasticsearchUtil.findLineChartDateQuotaLevel0(startDate,endDate,teamCode,Integer.parseInt(SaveModel.teamLevel),"5","2",interval+"");
|
|
|
Integer interval = Integer.parseInt(type) + 2;
|
|
|
List<SaveModel> list = elasticsearchUtil.findLineChartDateQuotaLevel0(startDate, endDate, teamCode, Integer.parseInt(SaveModel.teamLevel), "5", "2", interval + "");
|
|
|
Map<String, Object> map = null;
|
|
|
List<Map<String, Object>> totalList = new ArrayList<>();
|
|
|
for(SaveModel one:list){
|
|
|
for (SaveModel one : list) {
|
|
|
map = new HashMap<>();
|
|
|
if ("0".equals(type)) {
|
|
|
map.put("dateNo",dateFormat.format(one.getQuotaDate()));
|
|
|
}else{
|
|
|
map.put("weekOfMonth",DateUtil.getWeekOfMonth(dateFormat.format(one.getQuotaDate())));
|
|
|
map.put("dateNo", dateFormat.format(one.getQuotaDate()));
|
|
|
} else {
|
|
|
map.put("weekOfMonth", DateUtil.getWeekOfMonth(dateFormat.format(one.getQuotaDate())));
|
|
|
}
|
|
|
map.put("guidanceCount",one.getResult2().longValue());
|
|
|
map.put("guidanceCount", one.getResult2().longValue());
|
|
|
totalList.add(map);
|
|
|
}
|
|
|
return new JSONArray(totalList);
|
|
@ -2919,44 +2946,45 @@ public class StatisticsESService {
|
|
|
|
|
|
/**
|
|
|
* 续签 签入、签出统计
|
|
|
*
|
|
|
* @param teamCode
|
|
|
* @param startDate
|
|
|
* @param endDate
|
|
|
* @param type
|
|
|
* @return
|
|
|
*/
|
|
|
public JSONObject getTeamRenewChangeLine(String teamCode, String startDate, String endDate, String type) throws Exception{
|
|
|
public JSONObject getTeamRenewChangeLine(String teamCode, String startDate, String endDate, String type) throws Exception {
|
|
|
|
|
|
startDate = elasticsearchUtil.changeTime(startDate + " 00:00:00");
|
|
|
endDate = elasticsearchUtil.changeTime(endDate + " 23:59:59");
|
|
|
Integer interval = Integer.parseInt(type)+2;
|
|
|
Integer interval = Integer.parseInt(type) + 2;
|
|
|
|
|
|
//签入统计
|
|
|
List<SaveModel> inData = elasticsearchUtil.findLineChartDateQuotaLevel0(startDate,endDate,teamCode,Integer.parseInt(SaveModel.teamLevel),"34","2",interval+"");
|
|
|
List<SaveModel> inData = elasticsearchUtil.findLineChartDateQuotaLevel0(startDate, endDate, teamCode, Integer.parseInt(SaveModel.teamLevel), "34", "2", interval + "");
|
|
|
Map<String, Object> map = null;
|
|
|
List<Map<String, Object>> inList = new ArrayList<>();
|
|
|
for(SaveModel one:inData){
|
|
|
for (SaveModel one : inData) {
|
|
|
map = new HashMap<>();
|
|
|
if ("0".equals(type)) {
|
|
|
map.put("dateNo",dateFormat.format(one.getQuotaDate()));
|
|
|
}else{
|
|
|
map.put("weekOfMonth",DateUtil.getWeekOfMonth(dateFormat.format(one.getQuotaDate())));
|
|
|
map.put("dateNo", dateFormat.format(one.getQuotaDate()));
|
|
|
} else {
|
|
|
map.put("weekOfMonth", DateUtil.getWeekOfMonth(dateFormat.format(one.getQuotaDate())));
|
|
|
}
|
|
|
map.put("inCount",one.getResult2().longValue());
|
|
|
map.put("inCount", one.getResult2().longValue());
|
|
|
inList.add(map);
|
|
|
}
|
|
|
|
|
|
//签出统计
|
|
|
List<SaveModel> outData = elasticsearchUtil.findLineChartDateQuotaLevel0(startDate,endDate,teamCode,Integer.parseInt(SaveModel.teamLevel),"35","2",interval+"");
|
|
|
List<SaveModel> outData = elasticsearchUtil.findLineChartDateQuotaLevel0(startDate, endDate, teamCode, Integer.parseInt(SaveModel.teamLevel), "35", "2", interval + "");
|
|
|
List<Map<String, Object>> outList = new ArrayList<>();
|
|
|
for(SaveModel one:outData){
|
|
|
for (SaveModel one : outData) {
|
|
|
map = new HashMap<>();
|
|
|
if ("0".equals(type)) {
|
|
|
map.put("dateNo",dateFormat.format(one.getQuotaDate()));
|
|
|
}else{
|
|
|
map.put("weekOfMonth",DateUtil.getWeekOfMonth(dateFormat.format(one.getQuotaDate())));
|
|
|
map.put("dateNo", dateFormat.format(one.getQuotaDate()));
|
|
|
} else {
|
|
|
map.put("weekOfMonth", DateUtil.getWeekOfMonth(dateFormat.format(one.getQuotaDate())));
|
|
|
}
|
|
|
map.put("outCount",one.getResult2().longValue());
|
|
|
map.put("outCount", one.getResult2().longValue());
|
|
|
outList.add(map);
|
|
|
}
|
|
|
JSONObject rs = new JSONObject();
|
|
@ -2965,64 +2993,64 @@ public class StatisticsESService {
|
|
|
return rs;
|
|
|
}
|
|
|
|
|
|
public List<Map<String,Object>> getPrescriptionAgeLowLevel(String level,String lowlevel,String area,String disease) throws Exception{
|
|
|
public List<Map<String, Object>> getPrescriptionAgeLowLevel(String level, String lowlevel, String area, String disease) throws Exception {
|
|
|
|
|
|
String quotaDate = elasticsearchUtil.getQuotaTime();
|
|
|
List<SaveModel> list = elasticsearchUtil.findListDateQuotaLevel1(quotaDate,area,Integer.parseInt(level),"58","2",lowlevel,disease);
|
|
|
List<SaveModel> list = elasticsearchUtil.findListDateQuotaLevel1(quotaDate, area, Integer.parseInt(level), "58", "2", lowlevel, disease);
|
|
|
Map<String, Object> map = null;
|
|
|
List<Map<String, Object>> rs = new ArrayList<>();
|
|
|
if(list.size()>0){
|
|
|
for(SaveModel one:list){
|
|
|
if (list.size() > 0) {
|
|
|
for (SaveModel one : list) {
|
|
|
map = new HashMap<>();
|
|
|
if(Integer.parseInt(lowlevel)>=Integer.parseInt(level)){
|
|
|
lowlevel = String.valueOf(Integer.parseInt(level)+1);
|
|
|
if (Integer.parseInt(lowlevel) >= Integer.parseInt(level)) {
|
|
|
lowlevel = String.valueOf(Integer.parseInt(level) + 1);
|
|
|
}
|
|
|
if(SaveModel.townLevel.equals(lowlevel)){
|
|
|
map.put("code",one.getTown());
|
|
|
map.put("name",one.getTownName());
|
|
|
}else if(SaveModel.OrgLevel.equals(lowlevel)){
|
|
|
map.put("code",one.getHospital());
|
|
|
map.put("name",one.getHospitalName());
|
|
|
}else if(SaveModel.teamLevel.equals(lowlevel)){
|
|
|
map.put("code",one.getTeam());
|
|
|
map.put("name",one.getTeamName());
|
|
|
if (SaveModel.townLevel.equals(lowlevel)) {
|
|
|
map.put("code", one.getTown());
|
|
|
map.put("name", one.getTownName());
|
|
|
} else if (SaveModel.OrgLevel.equals(lowlevel)) {
|
|
|
map.put("code", one.getHospital());
|
|
|
map.put("name", one.getHospitalName());
|
|
|
} else if (SaveModel.teamLevel.equals(lowlevel)) {
|
|
|
map.put("code", one.getTeam());
|
|
|
map.put("name", one.getTeamName());
|
|
|
}
|
|
|
map.put("val",one.getResult2().longValue());
|
|
|
map.put("val", one.getResult2().longValue());
|
|
|
}
|
|
|
}else{
|
|
|
} else {
|
|
|
|
|
|
//统计数据为空时,自建结果集
|
|
|
List<Town> townList = null;
|
|
|
List<Hospital> hospitalList = null;
|
|
|
List<AdminTeam> adminTeams = null;
|
|
|
if(SaveModel.cityLevel.equals(level)){
|
|
|
if (SaveModel.cityLevel.equals(level)) {
|
|
|
townList = townDao.findByCityCode(area);
|
|
|
hospitalList = hospitalDao.findByCity(area);
|
|
|
adminTeams = findAllTeam();
|
|
|
}else if(SaveModel.townLevel.equals(level)){
|
|
|
} else if (SaveModel.townLevel.equals(level)) {
|
|
|
hospitalList = hospitalDao.findByTownCode(area);
|
|
|
// adminTeams = adminTeamDao.findByTownCode(area);
|
|
|
adminTeams = findAllTeam();
|
|
|
}else if(SaveModel.OrgLevel.equals(level)){
|
|
|
} else if (SaveModel.OrgLevel.equals(level)) {
|
|
|
adminTeams = adminTeamDao.findByOrgCode(area);
|
|
|
}
|
|
|
if(SaveModel.townLevel.equals(lowlevel)){
|
|
|
for(Town one : townList){
|
|
|
map.put("code",one.getCode());
|
|
|
map.put("name",one.getName());
|
|
|
map.put("val",0);
|
|
|
if (SaveModel.townLevel.equals(lowlevel)) {
|
|
|
for (Town one : townList) {
|
|
|
map.put("code", one.getCode());
|
|
|
map.put("name", one.getName());
|
|
|
map.put("val", 0);
|
|
|
}
|
|
|
}else if(SaveModel.OrgLevel.equals(lowlevel)){
|
|
|
for(Hospital one : hospitalList){
|
|
|
map.put("code",one.getCode());
|
|
|
map.put("name",one.getName());
|
|
|
map.put("val",0);
|
|
|
} else if (SaveModel.OrgLevel.equals(lowlevel)) {
|
|
|
for (Hospital one : hospitalList) {
|
|
|
map.put("code", one.getCode());
|
|
|
map.put("name", one.getName());
|
|
|
map.put("val", 0);
|
|
|
}
|
|
|
}else if(SaveModel.teamLevel.equals(lowlevel)){
|
|
|
for(AdminTeam one : adminTeams){
|
|
|
map.put("code",one.getLeaderCode());
|
|
|
map.put("name",one.getName());
|
|
|
map.put("val",0);
|
|
|
} else if (SaveModel.teamLevel.equals(lowlevel)) {
|
|
|
for (AdminTeam one : adminTeams) {
|
|
|
map.put("code", one.getLeaderCode());
|
|
|
map.put("name", one.getName());
|
|
|
map.put("val", 0);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@ -3053,90 +3081,89 @@ public class StatisticsESService {
|
|
|
return adminTeams;
|
|
|
}
|
|
|
|
|
|
public Map<String,Object> getPrescriptionAgeHistogram(String level,String area,String disease) throws Exception{
|
|
|
public Map<String, Object> getPrescriptionAgeHistogram(String level, String area, String disease) throws Exception {
|
|
|
|
|
|
String quotaDate = elasticsearchUtil.getQuotaTime();
|
|
|
//统计年龄分布
|
|
|
List<SaveModel> list = elasticsearchUtil.findOneDateQuotaLevel2(quotaDate,area,Integer.parseInt(level),"60","2",disease);
|
|
|
List<SaveModel> list = elasticsearchUtil.findOneDateQuotaLevel2(quotaDate, area, Integer.parseInt(level), "60", "2", disease);
|
|
|
//获取总人数
|
|
|
String sql = " SELECT COUNT(1) AS num FROM ( SELECT DISTINCT p.patient FROM wlyy_prescription p ) a ";
|
|
|
Map<String, Object> count = jdbcTemplate.queryForMap(sql);
|
|
|
Long num = (Long)count.get("num");
|
|
|
Map<String,Object> map = new HashMap<>();
|
|
|
DecimalFormat decimalFormat=new DecimalFormat("0.00");//构造方法的字符格式这里如果小数不足2位,会以0补足.
|
|
|
Double ageRate = list.get(0).getResult2()/num;
|
|
|
map.put("0ageRate",decimalFormat.format(ageRate));
|
|
|
ageRate = list.get(1).getResult2()/num;
|
|
|
map.put("7ageRate",decimalFormat.format(ageRate));
|
|
|
ageRate = list.get(2).getResult2()/num;
|
|
|
map.put("19ageRate",decimalFormat.format(ageRate));
|
|
|
ageRate = list.get(3).getResult2()/num;
|
|
|
map.put("31ageRate",decimalFormat.format(ageRate));
|
|
|
ageRate = list.get(4).getResult2()/num;
|
|
|
map.put("51ageRate",decimalFormat.format(ageRate));
|
|
|
ageRate = list.get(5).getResult2()/num;
|
|
|
map.put("65ageRate",decimalFormat.format(ageRate));
|
|
|
Long num = (Long) count.get("num");
|
|
|
Map<String, Object> map = new HashMap<>();
|
|
|
DecimalFormat decimalFormat = new DecimalFormat("0.00");//构造方法的字符格式这里如果小数不足2位,会以0补足.
|
|
|
Double ageRate = list.get(0).getResult2() / num;
|
|
|
map.put("0ageRate", decimalFormat.format(ageRate));
|
|
|
ageRate = list.get(1).getResult2() / num;
|
|
|
map.put("7ageRate", decimalFormat.format(ageRate));
|
|
|
ageRate = list.get(2).getResult2() / num;
|
|
|
map.put("19ageRate", decimalFormat.format(ageRate));
|
|
|
ageRate = list.get(3).getResult2() / num;
|
|
|
map.put("31ageRate", decimalFormat.format(ageRate));
|
|
|
ageRate = list.get(4).getResult2() / num;
|
|
|
map.put("51ageRate", decimalFormat.format(ageRate));
|
|
|
ageRate = list.get(5).getResult2() / num;
|
|
|
map.put("65ageRate", decimalFormat.format(ageRate));
|
|
|
return map;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
*
|
|
|
* @param level 等级
|
|
|
* @param area 等级编码
|
|
|
* @param level 等级
|
|
|
* @param area 等级编码
|
|
|
* @param disease 疾病编码
|
|
|
* @param type 类型0.总量,1.进行中,2.已完成,3.居民取消,4.审核不通过,5.其他原因取消
|
|
|
* @param type 类型0.总量,1.进行中,2.已完成,3.居民取消,4.审核不通过,5.其他原因取消
|
|
|
* @return
|
|
|
*/
|
|
|
public List<Map<String,Object>> getPrescriptionTotalHistogram(int level,String area,String disease,String type) throws Exception{
|
|
|
String index ="58";
|
|
|
List<Map<String,Object>> rs =new ArrayList<>();
|
|
|
public List<Map<String, Object>> getPrescriptionTotalHistogram(int level, String area, String disease, String type) throws Exception {
|
|
|
String index = "58";
|
|
|
List<Map<String, Object>> rs = new ArrayList<>();
|
|
|
|
|
|
Calendar dd = Calendar.getInstance();//定义日期实例
|
|
|
Date endDate = new Date();
|
|
|
dd.setTime(endDate);
|
|
|
|
|
|
for(int i=1;i<7;i++){
|
|
|
Map<String,Object> mc = new HashedMap();
|
|
|
for (int i = 1; i < 7; i++) {
|
|
|
Map<String, Object> mc = new HashedMap();
|
|
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
|
|
|
String date = sdf.format(dd.getTime());
|
|
|
mc.put("month",date);
|
|
|
mc.put("count",0);
|
|
|
dd.add(Calendar.MONTH,-1);
|
|
|
mc.put("month", date);
|
|
|
mc.put("count", 0);
|
|
|
dd.add(Calendar.MONTH, -1);
|
|
|
rs.add(mc);
|
|
|
}
|
|
|
String startTime = DateUtil.dateToStr(dd.getTime(),"YYYY-MM-dd HH:mm:ss");
|
|
|
String endTime = DateUtil.dateToStr(new Date(),"YYYY-MM-dd HH:mm:ss");
|
|
|
String startTime = DateUtil.dateToStr(dd.getTime(), "YYYY-MM-dd HH:mm:ss");
|
|
|
String endTime = DateUtil.dateToStr(new Date(), "YYYY-MM-dd HH:mm:ss");
|
|
|
List<SaveModel> resultList = new ArrayList<>();
|
|
|
if (StringUtils.isNotBlank(disease)){
|
|
|
if (StringUtils.isNotBlank(disease)) {
|
|
|
//类型0.总量,1.进行中,2.已完成,3.居民取消,4.审核不通过,5.其他原因取消
|
|
|
if("0".equals(type)){
|
|
|
if ("0".equals(type)) {
|
|
|
//总数
|
|
|
resultList = elasticsearchUtil.findLineChartDateQuotaLevel1(startTime,endTime,area,level,index,"2","3",disease);
|
|
|
}else{
|
|
|
resultList = elasticsearchUtil.findLineChartDateQuotaLevel2(startTime,endTime,area,level,index,"2","3",disease,type);
|
|
|
resultList = elasticsearchUtil.findLineChartDateQuotaLevel1(startTime, endTime, area, level, index, "2", "3", disease);
|
|
|
} else {
|
|
|
resultList = elasticsearchUtil.findLineChartDateQuotaLevel2(startTime, endTime, area, level, index, "2", "3", disease, type);
|
|
|
}
|
|
|
}else{
|
|
|
if("0".equals(type)){
|
|
|
} else {
|
|
|
if ("0".equals(type)) {
|
|
|
//总数
|
|
|
resultList = elasticsearchUtil.findLineChartDateQuotaLevel0(startTime,endTime,area,level,index,"2","3");
|
|
|
}else{
|
|
|
resultList = elasticsearchUtil.findLineChartDateQuotaLevel1(startTime,endTime,area,level,index,"2","3",type);
|
|
|
resultList = elasticsearchUtil.findLineChartDateQuotaLevel0(startTime, endTime, area, level, index, "2", "3");
|
|
|
} else {
|
|
|
resultList = elasticsearchUtil.findLineChartDateQuotaLevel1(startTime, endTime, area, level, index, "2", "3", type);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
for(Map<String,Object> m:rs){
|
|
|
for (Map<String, Object> m : rs) {
|
|
|
Iterator iterator = resultList.iterator();
|
|
|
while (iterator.hasNext()){
|
|
|
SaveModel saveModel = (SaveModel)iterator.next();
|
|
|
String monthKey = (String)m.get("month");
|
|
|
String monthKeyEs="";
|
|
|
if(saveModel.getQuotaDate()!=null){
|
|
|
monthKeyEs = DateUtil.changeQuotaDate(saveModel.getQuotaDate());
|
|
|
}
|
|
|
if(StringUtils.isNotBlank(monthKeyEs) && monthKey.equals(monthKeyEs)){
|
|
|
m.put("count",saveModel.getResult2());
|
|
|
}else{
|
|
|
m.put("count",0);
|
|
|
while (iterator.hasNext()) {
|
|
|
SaveModel saveModel = (SaveModel) iterator.next();
|
|
|
String monthKey = (String) m.get("month");
|
|
|
String monthKeyEs = "";
|
|
|
if (saveModel.getQuotaDate() != null) {
|
|
|
monthKeyEs = DateUtil.changeQuotaDate(saveModel.getQuotaDate());
|
|
|
}
|
|
|
if (StringUtils.isNotBlank(monthKeyEs) && monthKey.equals(monthKeyEs)) {
|
|
|
m.put("count", saveModel.getResult2());
|
|
|
} else {
|
|
|
m.put("count", 0);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@ -3144,67 +3171,66 @@ public class StatisticsESService {
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
*
|
|
|
* @param level 等级 1 省 2 市 3 区县 4 机构 5团队
|
|
|
* @param level 等级 1 省 2 市 3 区县 4 机构 5团队
|
|
|
* @param lowlevel 等级 1 省 2 市 3 区县 4 机构 5团队
|
|
|
* @param area
|
|
|
* @param disease
|
|
|
* @param type 1.总量,2.已完成,3.居民取消,4.审核不通过,5.进行中,6.其他原因取消
|
|
|
* 0.总量,1.进行中,2.已完成,3.居民取消,4.审核不通过,5.其他原因取消
|
|
|
* @param type 1.总量,2.已完成,3.居民取消,4.审核不通过,5.进行中,6.其他原因取消
|
|
|
* 0.总量,1.进行中,2.已完成,3.居民取消,4.审核不通过,5.其他原因取消
|
|
|
* @return
|
|
|
*/
|
|
|
public List<Map<String,Object>> getPrescriptionTotalLowLevel(int level,String lowlevel,String area,String disease,String type)throws Exception{
|
|
|
public List<Map<String, Object>> getPrescriptionTotalLowLevel(int level, String lowlevel, String area, String disease, String type) throws Exception {
|
|
|
String quotaDate = elasticsearchUtil.getQuotaTime();
|
|
|
String index = "58";
|
|
|
List<SaveModel> saveModels = new ArrayList<>();
|
|
|
List<Map<String, Object>> rs = new ArrayList<>();
|
|
|
//一级维度
|
|
|
if (StringUtils.isEmpty(disease)){
|
|
|
if (StringUtils.isEmpty(disease)) {
|
|
|
//类型 1.总量,2.已完成,3.居民取消,4.审核不通过,5.进行中,6.其他原因取消
|
|
|
if("1".equals(type)){
|
|
|
saveModels = elasticsearchUtil.findListDateQuotaLevel0(quotaDate,area,level,index,"2",lowlevel);
|
|
|
}else if("2".equals(type) || "3".equals(type) || "4".equals(type)){
|
|
|
saveModels = elasticsearchUtil.findListDateQuotaLevel1(quotaDate,area,level,index,"2",lowlevel,type);
|
|
|
}else if("5".equals(type)){
|
|
|
saveModels = elasticsearchUtil.findListDateQuotaLevel1(quotaDate,area,level,index,"2",lowlevel,"1");
|
|
|
}else if("6".equals(type)) {
|
|
|
if ("1".equals(type)) {
|
|
|
saveModels = elasticsearchUtil.findListDateQuotaLevel0(quotaDate, area, level, index, "2", lowlevel);
|
|
|
} else if ("2".equals(type) || "3".equals(type) || "4".equals(type)) {
|
|
|
saveModels = elasticsearchUtil.findListDateQuotaLevel1(quotaDate, area, level, index, "2", lowlevel, type);
|
|
|
} else if ("5".equals(type)) {
|
|
|
saveModels = elasticsearchUtil.findListDateQuotaLevel1(quotaDate, area, level, index, "2", lowlevel, "1");
|
|
|
} else if ("6".equals(type)) {
|
|
|
saveModels = elasticsearchUtil.findListDateQuotaLevel1(quotaDate, area, level, index, "2", lowlevel, "5");
|
|
|
}
|
|
|
}else{
|
|
|
} else {
|
|
|
//类型 1.总量,2.已完成,3.居民取消,4.审核不通过,5.进行中,6.其他原因取消
|
|
|
if("1".equals(type)){
|
|
|
saveModels = elasticsearchUtil.findListDateQuotaLevel1(quotaDate,area,level,index,"2",lowlevel,disease);
|
|
|
}else if("2".equals(type) || "3".equals(type) || "4".equals(type)){
|
|
|
saveModels = elasticsearchUtil.findListDateQuotaLevel2(quotaDate,area,level,index,"2",lowlevel,disease,type);
|
|
|
}else if ("5".equals(type)){
|
|
|
saveModels = elasticsearchUtil.findListDateQuotaLevel2(quotaDate,area,level,index,"2",lowlevel,disease,"1");
|
|
|
}else if ("6".equals(type)){
|
|
|
saveModels = elasticsearchUtil.findListDateQuotaLevel2(quotaDate,area,level,index,"2",lowlevel,disease,"5");
|
|
|
if ("1".equals(type)) {
|
|
|
saveModels = elasticsearchUtil.findListDateQuotaLevel1(quotaDate, area, level, index, "2", lowlevel, disease);
|
|
|
} else if ("2".equals(type) || "3".equals(type) || "4".equals(type)) {
|
|
|
saveModels = elasticsearchUtil.findListDateQuotaLevel2(quotaDate, area, level, index, "2", lowlevel, disease, type);
|
|
|
} else if ("5".equals(type)) {
|
|
|
saveModels = elasticsearchUtil.findListDateQuotaLevel2(quotaDate, area, level, index, "2", lowlevel, disease, "1");
|
|
|
} else if ("6".equals(type)) {
|
|
|
saveModels = elasticsearchUtil.findListDateQuotaLevel2(quotaDate, area, level, index, "2", lowlevel, disease, "5");
|
|
|
}
|
|
|
}
|
|
|
if ("5".equals(lowlevel)){
|
|
|
if ("5".equals(lowlevel)) {
|
|
|
translateTeamLeaderName2(saveModels);
|
|
|
}
|
|
|
Map<String, Object> map = null;
|
|
|
if(saveModels.size()>0){
|
|
|
for(SaveModel one:saveModels){
|
|
|
if (saveModels.size() > 0) {
|
|
|
for (SaveModel one : saveModels) {
|
|
|
map = new HashMap<>();
|
|
|
if(Integer.parseInt(lowlevel)>=level){
|
|
|
lowlevel = String.valueOf(level+1);
|
|
|
if (Integer.parseInt(lowlevel) >= level) {
|
|
|
lowlevel = String.valueOf(level + 1);
|
|
|
}
|
|
|
if(SaveModel.townLevel.equals(lowlevel)){
|
|
|
map.put("code",one.getTown());
|
|
|
map.put("name",one.getTownName());
|
|
|
}else if(SaveModel.OrgLevel.equals(lowlevel)){
|
|
|
map.put("code",one.getHospital());
|
|
|
map.put("name",one.getHospitalName());
|
|
|
}else if(SaveModel.teamLevel.equals(lowlevel)){
|
|
|
map.put("code",one.getTeam());
|
|
|
map.put("name",one.getTeamName());
|
|
|
if (SaveModel.townLevel.equals(lowlevel)) {
|
|
|
map.put("code", one.getTown());
|
|
|
map.put("name", one.getTownName());
|
|
|
} else if (SaveModel.OrgLevel.equals(lowlevel)) {
|
|
|
map.put("code", one.getHospital());
|
|
|
map.put("name", one.getHospitalName());
|
|
|
} else if (SaveModel.teamLevel.equals(lowlevel)) {
|
|
|
map.put("code", one.getTeam());
|
|
|
map.put("name", one.getTeamName());
|
|
|
}
|
|
|
map.put("val",one.getResult2().longValue());
|
|
|
map.put("val", one.getResult2().longValue());
|
|
|
}
|
|
|
}else{
|
|
|
} else {
|
|
|
|
|
|
//统计数据为空时,自建结果集
|
|
|
// List<Map<String, Object>> resultList = new ArrayList<>();
|
|
@ -3212,33 +3238,33 @@ public class StatisticsESService {
|
|
|
List<Town> townList = null;
|
|
|
List<Hospital> hospitalList = null;
|
|
|
List<AdminTeam> adminTeams = null;
|
|
|
if(SaveModel.cityLevel.equals(level)){
|
|
|
if (SaveModel.cityLevel.equals(level)) {
|
|
|
townList = townDao.findByCityCode(area);
|
|
|
hospitalList = hospitalDao.findByCity(area);
|
|
|
adminTeams = findAllTeam();
|
|
|
}else if(SaveModel.townLevel.equals(level)){
|
|
|
} else if (SaveModel.townLevel.equals(level)) {
|
|
|
hospitalList = hospitalDao.findByTownCode(area);
|
|
|
//adminTeams = adminTeamDao.findByTownCode(area);
|
|
|
}else if(SaveModel.OrgLevel.equals(level)){
|
|
|
} else if (SaveModel.OrgLevel.equals(level)) {
|
|
|
adminTeams = adminTeamDao.findByOrgCode(area);
|
|
|
}
|
|
|
if(SaveModel.townLevel.equals(lowlevel)){
|
|
|
for(Town one : townList){
|
|
|
map.put("code",one.getCode());
|
|
|
map.put("name",one.getName());
|
|
|
map.put("val",0);
|
|
|
if (SaveModel.townLevel.equals(lowlevel)) {
|
|
|
for (Town one : townList) {
|
|
|
map.put("code", one.getCode());
|
|
|
map.put("name", one.getName());
|
|
|
map.put("val", 0);
|
|
|
}
|
|
|
}else if(SaveModel.OrgLevel.equals(lowlevel)){
|
|
|
for(Hospital one : hospitalList){
|
|
|
map.put("code",one.getCode());
|
|
|
map.put("name",one.getName());
|
|
|
map.put("val",0);
|
|
|
} else if (SaveModel.OrgLevel.equals(lowlevel)) {
|
|
|
for (Hospital one : hospitalList) {
|
|
|
map.put("code", one.getCode());
|
|
|
map.put("name", one.getName());
|
|
|
map.put("val", 0);
|
|
|
}
|
|
|
}else if(SaveModel.teamLevel.equals(lowlevel)){
|
|
|
for(AdminTeam one : adminTeams){
|
|
|
map.put("code",one.getLeaderCode());
|
|
|
map.put("name",one.getName());
|
|
|
map.put("val",0);
|
|
|
} else if (SaveModel.teamLevel.equals(lowlevel)) {
|
|
|
for (AdminTeam one : adminTeams) {
|
|
|
map.put("code", one.getLeaderCode());
|
|
|
map.put("name", one.getName());
|
|
|
map.put("val", 0);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@ -3250,7 +3276,7 @@ public class StatisticsESService {
|
|
|
Map<Integer, Map<String, Object>> leaders = getAllTeamLeaders();
|
|
|
if (rs != null && rs.size() > 0) {
|
|
|
for (SaveModel saveModel : rs) {
|
|
|
if (saveModel.getTeam()!=null){
|
|
|
if (saveModel.getTeam() != null) {
|
|
|
Integer id = Integer.valueOf(saveModel.getTeam());
|
|
|
String name = getTeamLeaderNameByTeamCode(leaders, id);
|
|
|
if (org.apache.commons.lang3.StringUtils.isNotBlank(name)) {
|
|
@ -3263,89 +3289,90 @@ public class StatisticsESService {
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
*各个年龄段的总数
|
|
|
* 各个年龄段的总数
|
|
|
*
|
|
|
* @param level
|
|
|
* @param area
|
|
|
* @param disease
|
|
|
* @return
|
|
|
*/
|
|
|
public Map<String,Object> getPrescriptionAgeTotal(String level,String area,String disease) throws Exception{
|
|
|
public Map<String, Object> getPrescriptionAgeTotal(String level, String area, String disease) throws Exception {
|
|
|
|
|
|
String quotaDate = elasticsearchUtil.getQuotaTime();
|
|
|
//统计年龄分布
|
|
|
List<SaveModel> list = elasticsearchUtil.findOneDateQuotaLevel2(quotaDate,area,Integer.parseInt(level),"60","2",disease);
|
|
|
List<SaveModel> list = elasticsearchUtil.findOneDateQuotaLevel2(quotaDate, area, Integer.parseInt(level), "60", "2", disease);
|
|
|
|
|
|
//总数量
|
|
|
SaveModel saveModel = elasticsearchUtil.findOneDateQuotaLevel0(quotaDate,area,Integer.parseInt(level),"60","2");
|
|
|
SaveModel saveModel = elasticsearchUtil.findOneDateQuotaLevel0(quotaDate, area, Integer.parseInt(level), "60", "2");
|
|
|
|
|
|
Double num = saveModel.getResult2();
|
|
|
Map<String,Object> map = new HashMap<>();
|
|
|
DecimalFormat decimalFormat=new DecimalFormat("0.00");//构造方法的字符格式这里如果小数不足2位,会以0补足.
|
|
|
Double ageRate = list.get(0).getResult2()/num;
|
|
|
map.put("0ageRate",decimalFormat.format(ageRate));
|
|
|
ageRate = list.get(1).getResult2()/num;
|
|
|
map.put("7ageRate",decimalFormat.format(ageRate));
|
|
|
ageRate = list.get(2).getResult2()/num;
|
|
|
map.put("19ageRate",decimalFormat.format(ageRate));
|
|
|
ageRate = list.get(3).getResult2()/num;
|
|
|
map.put("31ageRate",decimalFormat.format(ageRate));
|
|
|
ageRate = list.get(4).getResult2()/num;
|
|
|
map.put("51ageRate",decimalFormat.format(ageRate));
|
|
|
ageRate = list.get(5).getResult2()/num;
|
|
|
map.put("65ageRate",decimalFormat.format(ageRate));
|
|
|
|
|
|
map.put("0age",list.get(0).getResult2().longValue());
|
|
|
map.put("7age",list.get(1).getResult2().longValue());
|
|
|
map.put("19age",list.get(2).getResult2().longValue());
|
|
|
map.put("31age",list.get(3).getResult2().longValue());
|
|
|
map.put("51age",list.get(4).getResult2().longValue());
|
|
|
map.put("65age",list.get(5).getResult2().longValue());
|
|
|
map.put("total",saveModel.getResult2().longValue());
|
|
|
Map<String, Object> map = new HashMap<>();
|
|
|
DecimalFormat decimalFormat = new DecimalFormat("0.00");//构造方法的字符格式这里如果小数不足2位,会以0补足.
|
|
|
Double ageRate = list.get(0).getResult2() / num;
|
|
|
map.put("0ageRate", decimalFormat.format(ageRate));
|
|
|
ageRate = list.get(1).getResult2() / num;
|
|
|
map.put("7ageRate", decimalFormat.format(ageRate));
|
|
|
ageRate = list.get(2).getResult2() / num;
|
|
|
map.put("19ageRate", decimalFormat.format(ageRate));
|
|
|
ageRate = list.get(3).getResult2() / num;
|
|
|
map.put("31ageRate", decimalFormat.format(ageRate));
|
|
|
ageRate = list.get(4).getResult2() / num;
|
|
|
map.put("51ageRate", decimalFormat.format(ageRate));
|
|
|
ageRate = list.get(5).getResult2() / num;
|
|
|
map.put("65ageRate", decimalFormat.format(ageRate));
|
|
|
|
|
|
map.put("0age", list.get(0).getResult2().longValue());
|
|
|
map.put("7age", list.get(1).getResult2().longValue());
|
|
|
map.put("19age", list.get(2).getResult2().longValue());
|
|
|
map.put("31age", list.get(3).getResult2().longValue());
|
|
|
map.put("51age", list.get(4).getResult2().longValue());
|
|
|
map.put("65age", list.get(5).getResult2().longValue());
|
|
|
map.put("total", saveModel.getResult2().longValue());
|
|
|
|
|
|
return map;
|
|
|
}
|
|
|
|
|
|
public Map<String,Object> getPrescriptionDispatchingTotal(int level,String area,String disease)throws Exception{
|
|
|
public Map<String, Object> getPrescriptionDispatchingTotal(int level, String area, String disease) throws Exception {
|
|
|
List<SaveModel> seltList = null;//自取集合
|
|
|
List<SaveModel> deliveryList = null;//物流配送集合
|
|
|
List<SaveModel> healthDoctorList = null;//健管师配送集合
|
|
|
String quotaTime = elasticsearchUtil.getQuotaTime();
|
|
|
if(StringUtils.isNotBlank(disease)){
|
|
|
if (StringUtils.isNotBlank(disease)) {
|
|
|
//自取
|
|
|
seltList = elasticsearchUtil.findListDateQuotaLevel2(quotaTime,area,level,"62","2","","1",disease);
|
|
|
seltList = elasticsearchUtil.findListDateQuotaLevel2(quotaTime, area, level, "62", "2", "", "1", disease);
|
|
|
//物流配送
|
|
|
deliveryList = elasticsearchUtil.findListDateQuotaLevel2(quotaTime,area,level,"62","2","","2",disease);
|
|
|
deliveryList = elasticsearchUtil.findListDateQuotaLevel2(quotaTime, area, level, "62", "2", "", "2", disease);
|
|
|
//健管师配送
|
|
|
healthDoctorList = elasticsearchUtil.findListDateQuotaLevel2(quotaTime,area,level,"62","2","","2",disease);
|
|
|
}else{
|
|
|
healthDoctorList = elasticsearchUtil.findListDateQuotaLevel2(quotaTime, area, level, "62", "2", "", "2", disease);
|
|
|
} else {
|
|
|
//自取
|
|
|
seltList = elasticsearchUtil.findListDateQuotaLevel1(quotaTime,area,level,"62","2","","1");
|
|
|
seltList = elasticsearchUtil.findListDateQuotaLevel1(quotaTime, area, level, "62", "2", "", "1");
|
|
|
//物流配送
|
|
|
deliveryList = elasticsearchUtil.findListDateQuotaLevel1(quotaTime,area,level,"62","2","","2");
|
|
|
deliveryList = elasticsearchUtil.findListDateQuotaLevel1(quotaTime, area, level, "62", "2", "", "2");
|
|
|
//健管师配送
|
|
|
healthDoctorList = elasticsearchUtil.findListDateQuotaLevel1(quotaTime,area,level,"62","2","","2");
|
|
|
healthDoctorList = elasticsearchUtil.findListDateQuotaLevel1(quotaTime, area, level, "62", "2", "", "2");
|
|
|
}
|
|
|
|
|
|
Map<String,Object> rs = new HashedMap();
|
|
|
Map<String, Object> rs = new HashedMap();
|
|
|
//自取数目
|
|
|
if(seltList!=null && seltList.size()>0){
|
|
|
rs.put("seltTotal",seltList.get(0).getResult2());
|
|
|
}else{
|
|
|
rs.put("seltTotal",0);
|
|
|
if (seltList != null && seltList.size() > 0) {
|
|
|
rs.put("seltTotal", seltList.get(0).getResult2());
|
|
|
} else {
|
|
|
rs.put("seltTotal", 0);
|
|
|
}
|
|
|
|
|
|
//快递配送
|
|
|
if(deliveryList!=null && deliveryList.size()>0){
|
|
|
rs.put("deliveryTotal",deliveryList.get(0).getResult2());
|
|
|
}else{
|
|
|
rs.put("deliveryTotal",0);
|
|
|
if (deliveryList != null && deliveryList.size() > 0) {
|
|
|
rs.put("deliveryTotal", deliveryList.get(0).getResult2());
|
|
|
} else {
|
|
|
rs.put("deliveryTotal", 0);
|
|
|
}
|
|
|
|
|
|
//健管师配送
|
|
|
if(healthDoctorList!=null && healthDoctorList.size()>0){
|
|
|
rs.put("doctorTotal",healthDoctorList.get(0).getResult2());
|
|
|
}else{
|
|
|
rs.put("doctorTotal",0);
|
|
|
if (healthDoctorList != null && healthDoctorList.size() > 0) {
|
|
|
rs.put("doctorTotal", healthDoctorList.get(0).getResult2());
|
|
|
} else {
|
|
|
rs.put("doctorTotal", 0);
|
|
|
}
|
|
|
return rs;
|
|
|
}
|
|
@ -3354,45 +3381,45 @@ public class StatisticsESService {
|
|
|
* @param level
|
|
|
* @param area
|
|
|
* @param disease
|
|
|
* @param type 1.自取,2.快递配送,3.健管师配送
|
|
|
* @param type 1.自取,2.快递配送,3.健管师配送
|
|
|
* @return
|
|
|
*/
|
|
|
public List<Map<String,Object>> getPrescriptionDispatchingHistogram(int level,String area,String disease,String type)throws Exception{
|
|
|
public List<Map<String, Object>> getPrescriptionDispatchingHistogram(int level, String area, String disease, String type) throws Exception {
|
|
|
|
|
|
List<Map<String,Object>> rs =new ArrayList<>();
|
|
|
List<Map<String, Object>> rs = new ArrayList<>();
|
|
|
Calendar dd = Calendar.getInstance();//定义日期实例
|
|
|
Date endDate = new Date();
|
|
|
dd.setTime(endDate);
|
|
|
|
|
|
for(int i=1;i<7;i++){
|
|
|
Map<String,Object> mc = new HashedMap();
|
|
|
for (int i = 1; i < 7; i++) {
|
|
|
Map<String, Object> mc = new HashedMap();
|
|
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
|
|
|
String date = sdf.format(dd.getTime());
|
|
|
mc.put("month",date);
|
|
|
mc.put("count",0);
|
|
|
dd.add(Calendar.MONTH,-1);
|
|
|
mc.put("month", date);
|
|
|
mc.put("count", 0);
|
|
|
dd.add(Calendar.MONTH, -1);
|
|
|
rs.add(mc);
|
|
|
}
|
|
|
|
|
|
String startTime = DateUtil.dateToStr(dd.getTime(),"YYYY-MM-dd HH:mm:ss");
|
|
|
String endTime = DateUtil.dateToStr(new Date(),"YYYY-MM-dd HH:mm:ss");
|
|
|
String startTime = DateUtil.dateToStr(dd.getTime(), "YYYY-MM-dd HH:mm:ss");
|
|
|
String endTime = DateUtil.dateToStr(new Date(), "YYYY-MM-dd HH:mm:ss");
|
|
|
|
|
|
List<SaveModel> resultList = new ArrayList<>();
|
|
|
if (StringUtils.isNotBlank(disease)){
|
|
|
resultList = elasticsearchUtil.findLineChartDateQuotaLevel2(startTime,endTime,area,level,"62","2","3",type,disease);
|
|
|
}else{
|
|
|
resultList = elasticsearchUtil.findLineChartDateQuotaLevel1(startTime,endTime,area,level,"62","2","3",type);
|
|
|
if (StringUtils.isNotBlank(disease)) {
|
|
|
resultList = elasticsearchUtil.findLineChartDateQuotaLevel2(startTime, endTime, area, level, "62", "2", "3", type, disease);
|
|
|
} else {
|
|
|
resultList = elasticsearchUtil.findLineChartDateQuotaLevel1(startTime, endTime, area, level, "62", "2", "3", type);
|
|
|
}
|
|
|
|
|
|
for(Map<String,Object> m:rs){
|
|
|
for (Map<String, Object> m : rs) {
|
|
|
Iterator iterator = resultList.iterator();
|
|
|
while (iterator.hasNext()){
|
|
|
SaveModel saveModel = (SaveModel)iterator.next();
|
|
|
if(saveModel.getQuotaDate()!=null){
|
|
|
String monthKey = (String)m.get("month");
|
|
|
while (iterator.hasNext()) {
|
|
|
SaveModel saveModel = (SaveModel) iterator.next();
|
|
|
if (saveModel.getQuotaDate() != null) {
|
|
|
String monthKey = (String) m.get("month");
|
|
|
String monthKeyEs = DateUtil.changeQuotaDate(saveModel.getQuotaDate());
|
|
|
if(monthKey.equals(monthKeyEs)){
|
|
|
m.put("count",saveModel.getResult2());
|
|
|
if (monthKey.equals(monthKeyEs)) {
|
|
|
m.put("count", saveModel.getResult2());
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@ -3401,49 +3428,48 @@ public class StatisticsESService {
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
*
|
|
|
* @param level
|
|
|
* @param lowlevel
|
|
|
* @param area
|
|
|
* @param disease
|
|
|
* @param type 1.自取,2.快递配送,3.健管师配送..
|
|
|
* @param type 1.自取,2.快递配送,3.健管师配送..
|
|
|
* @return
|
|
|
*/
|
|
|
public List<Map<String,Object>> getPrescriptionDispatchingLowLevel(int level,String lowlevel,String area,String disease,String type)throws Exception{
|
|
|
public List<Map<String, Object>> getPrescriptionDispatchingLowLevel(int level, String lowlevel, String area, String disease, String type) throws Exception {
|
|
|
|
|
|
String index = "62";
|
|
|
String quotaDate = elasticsearchUtil.getQuotaTime();
|
|
|
List<SaveModel> saveModels = new ArrayList<>();
|
|
|
List<Map<String, Object>> rs = new ArrayList<>();
|
|
|
if (StringUtils.isNotBlank(disease)){
|
|
|
if (StringUtils.isNotBlank(disease)) {
|
|
|
//类型 1.自取,2.快递配送,3.健管师配送
|
|
|
saveModels = elasticsearchUtil.findListDateQuotaLevel2(quotaDate,area,level,index,"2",lowlevel,type,disease);
|
|
|
}else{
|
|
|
saveModels = elasticsearchUtil.findListDateQuotaLevel1(quotaDate,area,level,index,"2",lowlevel,type);
|
|
|
saveModels = elasticsearchUtil.findListDateQuotaLevel2(quotaDate, area, level, index, "2", lowlevel, type, disease);
|
|
|
} else {
|
|
|
saveModels = elasticsearchUtil.findListDateQuotaLevel1(quotaDate, area, level, index, "2", lowlevel, type);
|
|
|
}
|
|
|
if ("5".equals(lowlevel)){
|
|
|
if ("5".equals(lowlevel)) {
|
|
|
translateTeamLeaderName2(saveModels);
|
|
|
}
|
|
|
Map<String, Object> map = null;
|
|
|
if(saveModels.size()>0){
|
|
|
for(SaveModel one:saveModels){
|
|
|
if (saveModels.size() > 0) {
|
|
|
for (SaveModel one : saveModels) {
|
|
|
map = new HashMap<>();
|
|
|
if(Integer.parseInt(lowlevel)>=level){
|
|
|
lowlevel = String.valueOf(level+1);
|
|
|
if (Integer.parseInt(lowlevel) >= level) {
|
|
|
lowlevel = String.valueOf(level + 1);
|
|
|
}
|
|
|
if(SaveModel.townLevel.equals(lowlevel)){
|
|
|
map.put("code",one.getTown());
|
|
|
map.put("name",one.getTownName());
|
|
|
}else if(SaveModel.OrgLevel.equals(lowlevel)){
|
|
|
map.put("code",one.getHospital());
|
|
|
map.put("name",one.getHospitalName());
|
|
|
}else if(SaveModel.teamLevel.equals(lowlevel)){
|
|
|
map.put("code",one.getTeam());
|
|
|
map.put("name",one.getTeamName());
|
|
|
if (SaveModel.townLevel.equals(lowlevel)) {
|
|
|
map.put("code", one.getTown());
|
|
|
map.put("name", one.getTownName());
|
|
|
} else if (SaveModel.OrgLevel.equals(lowlevel)) {
|
|
|
map.put("code", one.getHospital());
|
|
|
map.put("name", one.getHospitalName());
|
|
|
} else if (SaveModel.teamLevel.equals(lowlevel)) {
|
|
|
map.put("code", one.getTeam());
|
|
|
map.put("name", one.getTeamName());
|
|
|
}
|
|
|
map.put("val",one.getResult2().longValue());
|
|
|
map.put("val", one.getResult2().longValue());
|
|
|
}
|
|
|
}else{
|
|
|
} else {
|
|
|
|
|
|
//统计数据为空时,自建结果集
|
|
|
// List<Map<String, Object>> resultList = new ArrayList<>();
|
|
@ -3451,33 +3477,33 @@ public class StatisticsESService {
|
|
|
List<Town> townList = null;
|
|
|
List<Hospital> hospitalList = null;
|
|
|
List<AdminTeam> adminTeams = null;
|
|
|
if(SaveModel.cityLevel.equals(level)){
|
|
|
if (SaveModel.cityLevel.equals(level)) {
|
|
|
townList = townDao.findByCityCode(area);
|
|
|
hospitalList = hospitalDao.findByCity(area);
|
|
|
adminTeams = findAllTeam();
|
|
|
}else if(SaveModel.townLevel.equals(level)){
|
|
|
} else if (SaveModel.townLevel.equals(level)) {
|
|
|
hospitalList = hospitalDao.findByTownCode(area);
|
|
|
//adminTeams = adminTeamDao.findByTownCode(area);
|
|
|
}else if(SaveModel.OrgLevel.equals(level)){
|
|
|
} else if (SaveModel.OrgLevel.equals(level)) {
|
|
|
adminTeams = adminTeamDao.findByOrgCode(area);
|
|
|
}
|
|
|
if(SaveModel.townLevel.equals(lowlevel)){
|
|
|
for(Town one : townList){
|
|
|
map.put("code",one.getCode());
|
|
|
map.put("name",one.getName());
|
|
|
map.put("val",0);
|
|
|
if (SaveModel.townLevel.equals(lowlevel)) {
|
|
|
for (Town one : townList) {
|
|
|
map.put("code", one.getCode());
|
|
|
map.put("name", one.getName());
|
|
|
map.put("val", 0);
|
|
|
}
|
|
|
}else if(SaveModel.OrgLevel.equals(lowlevel)){
|
|
|
for(Hospital one : hospitalList){
|
|
|
map.put("code",one.getCode());
|
|
|
map.put("name",one.getName());
|
|
|
map.put("val",0);
|
|
|
} else if (SaveModel.OrgLevel.equals(lowlevel)) {
|
|
|
for (Hospital one : hospitalList) {
|
|
|
map.put("code", one.getCode());
|
|
|
map.put("name", one.getName());
|
|
|
map.put("val", 0);
|
|
|
}
|
|
|
}else if(SaveModel.teamLevel.equals(lowlevel)){
|
|
|
for(AdminTeam one : adminTeams){
|
|
|
map.put("code",one.getLeaderCode());
|
|
|
map.put("name",one.getName());
|
|
|
map.put("val",0);
|
|
|
} else if (SaveModel.teamLevel.equals(lowlevel)) {
|
|
|
for (AdminTeam one : adminTeams) {
|
|
|
map.put("code", one.getLeaderCode());
|
|
|
map.put("name", one.getName());
|
|
|
map.put("val", 0);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@ -3488,58 +3514,59 @@ public class StatisticsESService {
|
|
|
|
|
|
/**
|
|
|
* 获取下部部费用平均值或总数
|
|
|
*
|
|
|
* @param level
|
|
|
* @param lowlevel
|
|
|
* @param area
|
|
|
* @param disease
|
|
|
* @param type 1.总量,2.平均值
|
|
|
* @param type 1.总量,2.平均值
|
|
|
* @return
|
|
|
*/
|
|
|
public List<Map<String,Object>> getPrescriptionCostLowLevel(String level,String lowlevel,String area,String disease,String type) throws Exception{
|
|
|
public List<Map<String, Object>> getPrescriptionCostLowLevel(String level, String lowlevel, String area, String disease, String type) throws Exception {
|
|
|
|
|
|
String quotaDate = elasticsearchUtil.getQuotaTime();
|
|
|
//1.总量
|
|
|
List<SaveModel> list = elasticsearchUtil.findListDateQuotaLevel1(quotaDate,area,Integer.parseInt(level),"61","2",lowlevel,disease);
|
|
|
Map<String,Object> map = null;
|
|
|
List<Map<String,Object>> countList = new ArrayList<>();
|
|
|
if("1".equals(type)){
|
|
|
for(SaveModel one:list){
|
|
|
List<SaveModel> list = elasticsearchUtil.findListDateQuotaLevel1(quotaDate, area, Integer.parseInt(level), "61", "2", lowlevel, disease);
|
|
|
Map<String, Object> map = null;
|
|
|
List<Map<String, Object>> countList = new ArrayList<>();
|
|
|
if ("1".equals(type)) {
|
|
|
for (SaveModel one : list) {
|
|
|
map = new HashMap<>();
|
|
|
if(SaveModel.townLevel.equals(lowlevel)){
|
|
|
map.put("code",one.getTown());
|
|
|
map.put("name",one.getTownName());
|
|
|
}else if(SaveModel.OrgLevel.equals(lowlevel)){
|
|
|
map.put("code",one.getHospital());
|
|
|
map.put("name",one.getHospitalName());
|
|
|
}else if(SaveModel.teamLevel.equals(lowlevel)){
|
|
|
map.put("code",one.getTeam());
|
|
|
map.put("name",one.getTeamName());
|
|
|
}
|
|
|
map.put("val",decimalFormat.format(one.getResult1()/100));
|
|
|
if (SaveModel.townLevel.equals(lowlevel)) {
|
|
|
map.put("code", one.getTown());
|
|
|
map.put("name", one.getTownName());
|
|
|
} else if (SaveModel.OrgLevel.equals(lowlevel)) {
|
|
|
map.put("code", one.getHospital());
|
|
|
map.put("name", one.getHospitalName());
|
|
|
} else if (SaveModel.teamLevel.equals(lowlevel)) {
|
|
|
map.put("code", one.getTeam());
|
|
|
map.put("name", one.getTeamName());
|
|
|
}
|
|
|
map.put("val", decimalFormat.format(one.getResult1() / 100));
|
|
|
countList.add(map);
|
|
|
}
|
|
|
}else{
|
|
|
} else {
|
|
|
//2.平均值
|
|
|
//去重获取总人数,计算人均费用
|
|
|
String sql = "";
|
|
|
for(SaveModel one:list){
|
|
|
for (SaveModel one : list) {
|
|
|
sql = " select count(DISTINCT(s.patient)) as num from wlyy_prescription_pay p left join wlyy_prescription s on p.prescription_code = s. CODE ";
|
|
|
sql +=" and p.trace_time <= "+one.getQuotaDate();
|
|
|
sql += " and p.trace_time <= " + one.getQuotaDate();
|
|
|
Map<String, Object> count = jdbcTemplate.queryForMap(sql);
|
|
|
map = new HashMap<>();
|
|
|
if(SaveModel.townLevel.equals(lowlevel)){
|
|
|
map.put("code",one.getTown());
|
|
|
map.put("name",one.getTownName());
|
|
|
}else if(SaveModel.OrgLevel.equals(lowlevel)){
|
|
|
map.put("code",one.getHospital());
|
|
|
map.put("name",one.getHospitalName());
|
|
|
}else if(SaveModel.teamLevel.equals(lowlevel)){
|
|
|
map.put("code",one.getTeam());
|
|
|
map.put("name",one.getTeamName());
|
|
|
}
|
|
|
Long num = (Long)count.get("num");
|
|
|
String avg = decimalFormat.format(one.getResult1()/num);
|
|
|
map.put("val",avg);
|
|
|
if (SaveModel.townLevel.equals(lowlevel)) {
|
|
|
map.put("code", one.getTown());
|
|
|
map.put("name", one.getTownName());
|
|
|
} else if (SaveModel.OrgLevel.equals(lowlevel)) {
|
|
|
map.put("code", one.getHospital());
|
|
|
map.put("name", one.getHospitalName());
|
|
|
} else if (SaveModel.teamLevel.equals(lowlevel)) {
|
|
|
map.put("code", one.getTeam());
|
|
|
map.put("name", one.getTeamName());
|
|
|
}
|
|
|
Long num = (Long) count.get("num");
|
|
|
String avg = decimalFormat.format(one.getResult1() / num);
|
|
|
map.put("val", avg);
|
|
|
countList.add(map);
|
|
|
}
|
|
|
}
|
|
@ -3548,66 +3575,67 @@ public class StatisticsESService {
|
|
|
|
|
|
/**
|
|
|
* 获取中部费用平均值
|
|
|
*
|
|
|
* @param level
|
|
|
* @param area
|
|
|
* @param disease
|
|
|
* @param startDate
|
|
|
* @param endDate
|
|
|
* @param type 1.按日,2.按周,3.按月
|
|
|
* @param type 1.按日,2.按周,3.按月
|
|
|
*/
|
|
|
public List<Map<String,Object>> getPrescriptionCostAvgLine(String level,String area,String disease,String startDate,String endDate,String type) throws Exception{
|
|
|
public List<Map<String, Object>> getPrescriptionCostAvgLine(String level, String area, String disease, String startDate, String endDate, String type) throws Exception {
|
|
|
|
|
|
startDate = elasticsearchUtil.changeTime(startDate += " 00:00:00");
|
|
|
endDate = elasticsearchUtil.changeTime(endDate += " 23:59:59");
|
|
|
List<SaveModel> list = elasticsearchUtil.findLineChartDateQuotaLevel1(startDate,endDate,area,Integer.parseInt(level),"61","2",type,disease);
|
|
|
List<SaveModel> list = elasticsearchUtil.findLineChartDateQuotaLevel1(startDate, endDate, area, Integer.parseInt(level), "61", "2", type, disease);
|
|
|
String sql = "";
|
|
|
Map<String,Object> map = null;
|
|
|
List<Map<String,Object>> countList = new ArrayList<>();
|
|
|
for(SaveModel one:list){
|
|
|
Map<String, Object> map = null;
|
|
|
List<Map<String, Object>> countList = new ArrayList<>();
|
|
|
for (SaveModel one : list) {
|
|
|
sql = " select count(DISTINCT(s.patient)) as num from wlyy_prescription_pay p left join wlyy_prescription s on p.prescription_code = s. CODE ";
|
|
|
sql += " and p.trace_time <= "+one.getQuotaDate();
|
|
|
if(SaveModel.townLevel.equals(level)||SaveModel.cityLevel.equals(level)){
|
|
|
sql += " and LEFT(s.hospital,6) ='" + area+ "' ";
|
|
|
}else if(SaveModel.OrgLevel.equals(level)){
|
|
|
sql += " and s.hospital ='" + area+ "' ";
|
|
|
}else if(SaveModel.teamLevel.equals(level)){
|
|
|
sql += " and s.admin_team_id ='" + area+ "' ";
|
|
|
sql += " and p.trace_time <= " + one.getQuotaDate();
|
|
|
if (SaveModel.townLevel.equals(level) || SaveModel.cityLevel.equals(level)) {
|
|
|
sql += " and LEFT(s.hospital,6) ='" + area + "' ";
|
|
|
} else if (SaveModel.OrgLevel.equals(level)) {
|
|
|
sql += " and s.hospital ='" + area + "' ";
|
|
|
} else if (SaveModel.teamLevel.equals(level)) {
|
|
|
sql += " and s.admin_team_id ='" + area + "' ";
|
|
|
}
|
|
|
Map<String, Object> count = jdbcTemplate.queryForMap(sql);
|
|
|
Long num = (Long)count.get("num");
|
|
|
String avg = decimalFormat.format(one.getResult1()/num);
|
|
|
Long num = (Long) count.get("num");
|
|
|
String avg = decimalFormat.format(one.getResult1() / num);
|
|
|
map = new HashMap<>();
|
|
|
map.put("avg",avg);
|
|
|
map.put("date",dateFormat.format(one.getQuotaDate()));
|
|
|
map.put("avg", avg);
|
|
|
map.put("date", dateFormat.format(one.getQuotaDate()));
|
|
|
countList.add(map);
|
|
|
}
|
|
|
return countList;
|
|
|
}
|
|
|
|
|
|
public Map<String,Object> getPrescriptionCost(String level,String area,String disease) throws Exception{
|
|
|
public Map<String, Object> getPrescriptionCost(String level, String area, String disease) throws Exception {
|
|
|
SaveModel saveModel = null;
|
|
|
String quotaDate = elasticsearchUtil.getQuotaTime();
|
|
|
if(StringUtils.isNotEmpty(disease)){
|
|
|
saveModel = elasticsearchUtil.findOneDateQuotaLevel1(quotaDate,area,Integer.parseInt(level),"61","2",disease);
|
|
|
}else{
|
|
|
saveModel = elasticsearchUtil.findOneDateQuotaLevel0(quotaDate,area,Integer.parseInt(level),"61","2");
|
|
|
if (StringUtils.isNotEmpty(disease)) {
|
|
|
saveModel = elasticsearchUtil.findOneDateQuotaLevel1(quotaDate, area, Integer.parseInt(level), "61", "2", disease);
|
|
|
} else {
|
|
|
saveModel = elasticsearchUtil.findOneDateQuotaLevel0(quotaDate, area, Integer.parseInt(level), "61", "2");
|
|
|
}
|
|
|
String sql = " select count(DISTINCT(s.patient)) as num from wlyy_prescription_pay p left join wlyy_prescription s on p.prescription_code = s. CODE ";
|
|
|
sql += " and p.trace_time <= "+dateFormat3.parse(quotaDate);
|
|
|
if(SaveModel.townLevel.equals(level)||SaveModel.cityLevel.equals(level)){
|
|
|
sql += " and LEFT(s.hospital,6) ='" + area+ "' ";
|
|
|
}else if(SaveModel.OrgLevel.equals(level)){
|
|
|
sql += " and s.hospital ='" + area+ "' ";
|
|
|
}else if(SaveModel.teamLevel.equals(level)){
|
|
|
sql += " and s.admin_team_id ='" + area+ "' ";
|
|
|
sql += " and p.trace_time <= " + dateFormat3.parse(quotaDate);
|
|
|
if (SaveModel.townLevel.equals(level) || SaveModel.cityLevel.equals(level)) {
|
|
|
sql += " and LEFT(s.hospital,6) ='" + area + "' ";
|
|
|
} else if (SaveModel.OrgLevel.equals(level)) {
|
|
|
sql += " and s.hospital ='" + area + "' ";
|
|
|
} else if (SaveModel.teamLevel.equals(level)) {
|
|
|
sql += " and s.admin_team_id ='" + area + "' ";
|
|
|
}
|
|
|
Map<String, Object> count = jdbcTemplate.queryForMap(sql);
|
|
|
Long num = (Long)count.get("num");
|
|
|
Map<String,Object> rs = new HashedMap();
|
|
|
Long num = (Long) count.get("num");
|
|
|
Map<String, Object> rs = new HashedMap();
|
|
|
BigDecimal s = BigDecimal.valueOf(num);
|
|
|
BigDecimal a = BigDecimal.valueOf(saveModel.getResult2()/num);
|
|
|
rs.put("sum",s.divide(new BigDecimal(100)).setScale(2,BigDecimal.ROUND_HALF_UP));
|
|
|
rs.put("avg",a.divide((new BigDecimal(100))).setScale(2,BigDecimal.ROUND_HALF_UP));
|
|
|
BigDecimal a = BigDecimal.valueOf(saveModel.getResult2() / num);
|
|
|
rs.put("sum", s.divide(new BigDecimal(100)).setScale(2, BigDecimal.ROUND_HALF_UP));
|
|
|
rs.put("avg", a.divide((new BigDecimal(100))).setScale(2, BigDecimal.ROUND_HALF_UP));
|
|
|
return rs;
|
|
|
}
|
|
|
}
|