|
@ -21,6 +21,7 @@ import io.searchbox.client.JestClient;
|
|
import io.searchbox.core.Bulk;
|
|
import io.searchbox.core.Bulk;
|
|
import io.searchbox.core.BulkResult;
|
|
import io.searchbox.core.BulkResult;
|
|
import io.searchbox.core.Index;
|
|
import io.searchbox.core.Index;
|
|
|
|
import org.apache.commons.collections.ArrayStack;
|
|
import org.apache.commons.collections.map.HashedMap;
|
|
import org.apache.commons.collections.map.HashedMap;
|
|
import org.apache.commons.lang3.StringUtils;
|
|
import org.apache.commons.lang3.StringUtils;
|
|
import org.json.JSONArray;
|
|
import org.json.JSONArray;
|
|
@ -500,42 +501,45 @@ public class StatisticsESService {
|
|
|
|
|
|
/**
|
|
/**
|
|
* 缴费和未交费的人数
|
|
* 缴费和未交费的人数
|
|
|
|
*
|
|
* @param endDate
|
|
* @param endDate
|
|
* @param area
|
|
* @param area
|
|
* @param level
|
|
* @param level
|
|
* @return
|
|
* @return
|
|
* @throws Exception
|
|
* @throws Exception
|
|
*/
|
|
*/
|
|
public JSONArray getPayPremiums(String endDate, String area, int level)throws Exception{
|
|
|
|
|
|
public JSONArray getPayPremiums(String endDate, String area, int level) throws Exception {
|
|
//已缴费
|
|
//已缴费
|
|
SaveModel paidSaveModel = elasticsearchUtil.findOneDateQuotaLevel0(endDate,endDate,area,level,"1","2");
|
|
|
|
|
|
SaveModel paidSaveModel = elasticsearchUtil.findOneDateQuotaLevel0(endDate, endDate, area, level, "1", "2");
|
|
//未交费
|
|
//未交费
|
|
SaveModel noPaySaveModel = elasticsearchUtil.findOneDateQuotaLevel0(endDate,endDate,area,level,"14","2");
|
|
|
|
|
|
SaveModel noPaySaveModel = elasticsearchUtil.findOneDateQuotaLevel0(endDate, endDate, area, level, "14", "2");
|
|
|
|
|
|
List<Map<String, Object>> resultList = new ArrayList<>();
|
|
List<Map<String, Object>> resultList = new ArrayList<>();
|
|
DecimalFormat df = new DecimalFormat("0.0000");
|
|
DecimalFormat df = new DecimalFormat("0.0000");
|
|
long paidTotal = paidSaveModel.getResult2().longValue();
|
|
long paidTotal = paidSaveModel.getResult2().longValue();
|
|
Map<String,Object> map1 = new HashedMap();
|
|
|
|
|
|
Map<String, Object> map1 = new HashedMap();
|
|
|
|
|
|
long noPayTotal = noPaySaveModel.getResult2().longValue();
|
|
long noPayTotal = noPaySaveModel.getResult2().longValue();
|
|
Map<String,Object> map2 = new HashedMap();
|
|
|
|
|
|
Map<String, Object> map2 = new HashedMap();
|
|
|
|
|
|
//求签约总数
|
|
//求签约总数
|
|
long totalNum = paidTotal+noPayTotal;
|
|
|
|
|
|
long totalNum = paidTotal + noPayTotal;
|
|
|
|
|
|
map1.put("code","1");
|
|
|
|
map1.put("amount",paidTotal);
|
|
|
|
map1.put("name","已缴费人数");
|
|
|
|
|
|
map1.put("code", "1");
|
|
|
|
map1.put("amount", paidTotal);
|
|
|
|
map1.put("name", "已缴费人数");
|
|
double rateG = (paidTotal > 0 ? paidTotal * 1.0000 / totalNum * 100 : 0);
|
|
double rateG = (paidTotal > 0 ? paidTotal * 1.0000 / totalNum * 100 : 0);
|
|
map1.put("rate", df.format(rateG));;
|
|
|
|
|
|
map1.put("rate", df.format(rateG));
|
|
|
|
;
|
|
map1.put("rateString", paidTotal + "/" + totalNum);
|
|
map1.put("rateString", paidTotal + "/" + totalNum);
|
|
resultList.add(map1);
|
|
resultList.add(map1);
|
|
|
|
|
|
map2.put("code","0");
|
|
|
|
map2.put("amount",noPayTotal);
|
|
|
|
map2.put("name","未缴费人数");
|
|
|
|
|
|
map2.put("code", "0");
|
|
|
|
map2.put("amount", noPayTotal);
|
|
|
|
map2.put("name", "未缴费人数");
|
|
double rateG2 = (noPayTotal > 0 ? noPayTotal * 1.0000 / totalNum * 100 : 0);
|
|
double rateG2 = (noPayTotal > 0 ? noPayTotal * 1.0000 / totalNum * 100 : 0);
|
|
map2.put("rate", df.format(rateG2));;
|
|
|
|
|
|
map2.put("rate", df.format(rateG2));
|
|
|
|
;
|
|
map2.put("rateString", noPayTotal + "/" + totalNum);
|
|
map2.put("rateString", noPayTotal + "/" + totalNum);
|
|
resultList.add(map2);
|
|
resultList.add(map2);
|
|
|
|
|
|
@ -685,7 +689,7 @@ public class StatisticsESService {
|
|
* @return
|
|
* @return
|
|
*/
|
|
*/
|
|
public JSONObject getGroupInfo(String endDate, String lowCode, String area, int level, String year) throws Exception {
|
|
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", 1,lowCode, null, null);
|
|
|
|
|
|
List<SaveModel> list = elasticsearchUtil.findDateQuotaLevel1(endDate, endDate, area, level, "17", "2", lowCode, null, null);
|
|
long total = 0;
|
|
long total = 0;
|
|
if (list.size() > 0) {
|
|
if (list.size() > 0) {
|
|
total = list.get(0).getResult2().longValue();
|
|
total = list.get(0).getResult2().longValue();
|
|
@ -1331,7 +1335,7 @@ public class StatisticsESService {
|
|
//如果分母为0 分子为0 返回0%
|
|
//如果分母为0 分子为0 返回0%
|
|
return 0;
|
|
return 0;
|
|
}
|
|
}
|
|
Double size = first / second;
|
|
|
|
|
|
Double size = first / second;
|
|
DecimalFormat df = new DecimalFormat("0.0");//格式化小数,不足的补0
|
|
DecimalFormat df = new DecimalFormat("0.0");//格式化小数,不足的补0
|
|
String filesize = df.format(size);
|
|
String filesize = df.format(size);
|
|
return Double.valueOf(filesize);
|
|
return Double.valueOf(filesize);
|
|
@ -1556,7 +1560,7 @@ public class StatisticsESService {
|
|
if (date.compareTo(dateFormat.format(new Date())) >= 0) {
|
|
if (date.compareTo(dateFormat.format(new Date())) >= 0) {
|
|
date = elasticsearchUtil.getQuotaTime();
|
|
date = elasticsearchUtil.getQuotaTime();
|
|
}
|
|
}
|
|
List<SaveModel> esModelList = (List<SaveModel>) elasticsearchUtil.findListDateQuotaLevel0( date, area, level, index, SaveModel.timeLevel_DDL, low_level);
|
|
|
|
|
|
List<SaveModel> esModelList = (List<SaveModel>) elasticsearchUtil.findListDateQuotaLevel0(date, area, level, index, SaveModel.timeLevel_DDL, low_level);
|
|
|
|
|
|
if (esModelList != null && esModelList.size() > 0) {
|
|
if (esModelList != null && esModelList.size() > 0) {
|
|
for (SaveModel one : esModelList) {
|
|
for (SaveModel one : esModelList) {
|
|
@ -1763,7 +1767,7 @@ public class StatisticsESService {
|
|
timeKey = elasticsearchUtil.getQuotaTime();
|
|
timeKey = elasticsearchUtil.getQuotaTime();
|
|
} else {
|
|
} else {
|
|
Integer coutYear = Integer.parseInt(year);
|
|
Integer coutYear = Integer.parseInt(year);
|
|
timeKey = coutYear+1 + "-06-30";
|
|
|
|
|
|
timeKey = coutYear + 1 + "-06-30";
|
|
}
|
|
}
|
|
}
|
|
}
|
|
// timeKey= "2017-11-01 00:00:00";
|
|
// timeKey= "2017-11-01 00:00:00";
|
|
@ -1789,12 +1793,12 @@ public class StatisticsESService {
|
|
* @param onRely
|
|
* @param onRely
|
|
* @return
|
|
* @return
|
|
*/
|
|
*/
|
|
public List<Map<String, Object>> getCoutList(Integer level, String lowLevel,List<SaveModel> rely, List<SaveModel> total, List<SaveModel> onRely) {
|
|
|
|
|
|
public List<Map<String, Object>> getCoutList(Integer level, String lowLevel, List<SaveModel> rely, List<SaveModel> total, List<SaveModel> onRely) {
|
|
Map<String, Object> relyMap = new HashMap<>();
|
|
Map<String, Object> relyMap = new HashMap<>();
|
|
Map<String, Object> totalMap = new HashMap<>();
|
|
Map<String, Object> totalMap = new HashMap<>();
|
|
Map<String, Object> onRelyMap = new HashMap<>();
|
|
Map<String, Object> onRelyMap = new HashMap<>();
|
|
JSONObject result = new JSONObject();
|
|
JSONObject result = new JSONObject();
|
|
String low_level=StringUtils.isEmpty(lowLevel)?String.valueOf(level+1):lowLevel;
|
|
|
|
|
|
String low_level = StringUtils.isEmpty(lowLevel) ? String.valueOf(level + 1) : lowLevel;
|
|
//转换回复数
|
|
//转换回复数
|
|
for (SaveModel saveModel : rely) {
|
|
for (SaveModel saveModel : rely) {
|
|
if (SaveModel.teamLevel.equals(low_level)) {
|
|
if (SaveModel.teamLevel.equals(low_level)) {
|
|
@ -1918,7 +1922,7 @@ public class StatisticsESService {
|
|
if (Constant.getNowYear().equals(year)) {
|
|
if (Constant.getNowYear().equals(year)) {
|
|
quotaTime = elasticsearchUtil.getQuotaTime();
|
|
quotaTime = elasticsearchUtil.getQuotaTime();
|
|
} else {
|
|
} else {
|
|
quotaTime = Integer.valueOf(year)+1 + "-6-30";
|
|
|
|
|
|
quotaTime = Integer.valueOf(year) + 1 + "-6-30";
|
|
}
|
|
}
|
|
}
|
|
}
|
|
// quotaTime = "2017-10-19 00:00:00";
|
|
// quotaTime = "2017-10-19 00:00:00";
|
|
@ -1946,8 +1950,8 @@ public class StatisticsESService {
|
|
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();
|
|
JSONObject result = new JSONObject();
|
|
String quotaDate = elasticsearchUtil.getQuotaTime();
|
|
String quotaDate = elasticsearchUtil.getQuotaTime();
|
|
if(!Constant.getNowYear().equals(year)){
|
|
|
|
quotaDate = Integer.valueOf(year)+1 + "-06-30";
|
|
|
|
|
|
if (!Constant.getNowYear().equals(year)) {
|
|
|
|
quotaDate = Integer.valueOf(year) + 1 + "-06-30";
|
|
}
|
|
}
|
|
|
|
|
|
SaveModel relyVal = elasticsearchUtil.findOneDateQuotaLevel0(quotaDate, quotaDate, area, level, "23", "2");
|
|
SaveModel relyVal = elasticsearchUtil.findOneDateQuotaLevel0(quotaDate, quotaDate, area, level, "23", "2");
|
|
@ -2203,13 +2207,13 @@ public class StatisticsESService {
|
|
// Map<String, Object> expenseStatus1Sigjn = getByIndexSingle(date, area, level, "1",dateFormat);
|
|
// 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();
|
|
JSONObject jsonObject = new JSONObject();
|
|
if (Integer.valueOf(SaveModel.teamLevel)==level) {
|
|
|
|
|
|
if (Integer.valueOf(SaveModel.teamLevel) == level) {
|
|
jsonObject.put("name", expenseStatus1Sigjn.getTeamName());
|
|
jsonObject.put("name", expenseStatus1Sigjn.getTeamName());
|
|
} else if (Integer.valueOf(SaveModel.OrgLevel)==level) {
|
|
|
|
|
|
} else if (Integer.valueOf(SaveModel.OrgLevel) == level) {
|
|
jsonObject.put("name", expenseStatus1Sigjn.getHospitalName());
|
|
jsonObject.put("name", expenseStatus1Sigjn.getHospitalName());
|
|
} else if (Integer.valueOf(SaveModel.townLevel)==level) {
|
|
|
|
|
|
} else if (Integer.valueOf(SaveModel.townLevel) == level) {
|
|
jsonObject.put("name", expenseStatus1Sigjn.getTownName());
|
|
jsonObject.put("name", expenseStatus1Sigjn.getTownName());
|
|
} else if (Integer.valueOf(SaveModel.cityLevel)==level) {
|
|
|
|
|
|
} else if (Integer.valueOf(SaveModel.cityLevel) == level) {
|
|
jsonObject.put("name", expenseStatus1Sigjn.getCityName());
|
|
jsonObject.put("name", expenseStatus1Sigjn.getCityName());
|
|
}
|
|
}
|
|
jsonObject.put("code", area);
|
|
jsonObject.put("code", area);
|
|
@ -2298,10 +2302,10 @@ public class StatisticsESService {
|
|
|
|
|
|
if (StringUtils.isEmpty(lowCode)) {
|
|
if (StringUtils.isEmpty(lowCode)) {
|
|
//续签量
|
|
//续签量
|
|
renewSaveModels = elasticsearchUtil.findDateQuotaLevel0(timeKey, timeKey, area, level, index, "2","", low_level);
|
|
|
|
|
|
renewSaveModels = elasticsearchUtil.findDateQuotaLevel0(timeKey, timeKey, area, level, index, "2", "", low_level);
|
|
} else {
|
|
} else {
|
|
//续签量
|
|
//续签量
|
|
renewSaveModels = elasticsearchUtil.findDateQuotaLevel1(DateUtil.getNextDay(new Date(),-1), DateUtil.getNextDay(new Date(),-1), area, level, index, "2",1,lowCode,"",low_level);
|
|
|
|
|
|
renewSaveModels = elasticsearchUtil.findDateQuotaLevel1(DateUtil.getNextDay(new Date(), -1), DateUtil.getNextDay(new Date(), -1), area, level, index, "2", lowCode, "", low_level);
|
|
//renewSaveModels = elasticsearchUtil.findDateQuotaLevel1(timeKey, timeKey, area, level, index, "2",1,lowCode,"",low_level);
|
|
//renewSaveModels = elasticsearchUtil.findDateQuotaLevel1(timeKey, timeKey, area, level, index, "2",1,lowCode,"",low_level);
|
|
|
|
|
|
}
|
|
}
|
|
@ -2328,9 +2332,9 @@ public class StatisticsESService {
|
|
//查询去年的签约转map
|
|
//查询去年的签约转map
|
|
List<SaveModel> yearsList = new ArrayList();
|
|
List<SaveModel> yearsList = new ArrayList();
|
|
if (StringUtils.isBlank(lowCode)) {
|
|
if (StringUtils.isBlank(lowCode)) {
|
|
yearsList = elasticsearchUtil.findDateQuotaLevel0(lastDate,lastDate, area, level, "1", "2", "",low_level);
|
|
|
|
|
|
yearsList = elasticsearchUtil.findDateQuotaLevel0(lastDate, lastDate, area, level, "1", "2", "", low_level);
|
|
} else {
|
|
} else {
|
|
yearsList = elasticsearchUtil.findDateQuotaLevel1(lastDate, lastDate, area, level, "17", "2", 1, lowCode,"",low_level);
|
|
|
|
|
|
yearsList = elasticsearchUtil.findDateQuotaLevel1(lastDate, lastDate, area, level, "17", "2",lowCode, "", low_level);
|
|
}
|
|
}
|
|
|
|
|
|
Map<String, SaveModel> resultMap = new HashMap<>();
|
|
Map<String, SaveModel> resultMap = new HashMap<>();
|
|
@ -2357,8 +2361,8 @@ public class StatisticsESService {
|
|
}
|
|
}
|
|
if (renewMap != null && renewMap.size() > 0) {
|
|
if (renewMap != null && renewMap.size() > 0) {
|
|
renewNum = renewMap.get(reMap.get("code").toString());
|
|
renewNum = renewMap.get(reMap.get("code").toString());
|
|
if (renewNum==null){
|
|
|
|
renewNum=0;
|
|
|
|
|
|
if (renewNum == null) {
|
|
|
|
renewNum = 0;
|
|
}
|
|
}
|
|
} else {
|
|
} else {
|
|
}
|
|
}
|
|
@ -2808,7 +2812,9 @@ public class StatisticsESService {
|
|
}
|
|
}
|
|
|
|
|
|
public Map<String, Object> getPrescriptionCount(int level, String area, String disease) throws Exception {
|
|
public Map<String, Object> getPrescriptionCount(int level, String area, String disease) throws Exception {
|
|
String index = "58";
|
|
|
|
|
|
//因为一个处方可能有多个疾病状态 所以分开2个指标
|
|
|
|
String index58 = "58";//统计长处方总数疾病和状态维度
|
|
|
|
String index64 = "64";//统计长处方总数状态维度
|
|
Map<String, Object> rs = new HashedMap();
|
|
Map<String, Object> rs = new HashedMap();
|
|
SaveModel total = null;
|
|
SaveModel total = null;
|
|
SaveModel processing = null;
|
|
SaveModel processing = null;
|
|
@ -2819,39 +2825,39 @@ public class StatisticsESService {
|
|
String quotaDate = elasticsearchUtil.getQuotaTime();
|
|
String quotaDate = elasticsearchUtil.getQuotaTime();
|
|
//总数
|
|
//总数
|
|
if (StringUtils.isNotBlank(disease)) {
|
|
if (StringUtils.isNotBlank(disease)) {
|
|
total = elasticsearchUtil.findOneDateQuotaLevel1(quotaDate, area, level, index, SaveModel.timeLevel_DDL, disease);
|
|
|
|
|
|
total = elasticsearchUtil.findOneDateQuotaLevel2NoSlaveKey1(quotaDate, area, level, index58, SaveModel.timeLevel_DDL, disease);
|
|
} else {
|
|
} else {
|
|
total = elasticsearchUtil.findOneDateQuotaLevel0(quotaDate, area, level, index, SaveModel.timeLevel_DDL);
|
|
|
|
|
|
total = elasticsearchUtil.findOneDateQuotaLevel1NoSlaveKey1(quotaDate, area, level, index64, SaveModel.timeLevel_DDL);
|
|
}
|
|
}
|
|
//进行中
|
|
//进行中
|
|
if (StringUtils.isNotBlank(disease)) {
|
|
if (StringUtils.isNotBlank(disease)) {
|
|
processing = elasticsearchUtil.findOneDateQuotaLevel2(quotaDate, area, level, index, SaveModel.timeLevel_DDL, disease, "1");
|
|
|
|
|
|
processing = elasticsearchUtil.findOneDateQuotaLevel2(quotaDate, area, level, index58, SaveModel.timeLevel_DDL, disease, "1");
|
|
} else {
|
|
} else {
|
|
processing = elasticsearchUtil.findOneDateQuotaLevel2NoSlaveKey1(quotaDate, area, level, index, SaveModel.timeLevel_DDL, "1");
|
|
|
|
|
|
processing = elasticsearchUtil.findOneDateQuotaLevel1(quotaDate, area, level, index64, SaveModel.timeLevel_DDL, "1");
|
|
}
|
|
}
|
|
//已完成
|
|
//已完成
|
|
if (StringUtils.isNotBlank(disease)) {
|
|
if (StringUtils.isNotBlank(disease)) {
|
|
finished = elasticsearchUtil.findOneDateQuotaLevel2(quotaDate, area, level, index, SaveModel.timeLevel_DDL, disease, "2");
|
|
|
|
|
|
finished = elasticsearchUtil.findOneDateQuotaLevel2(quotaDate, area, level, index58, SaveModel.timeLevel_DDL, disease, "2");
|
|
} else {
|
|
} else {
|
|
finished = elasticsearchUtil.findOneDateQuotaLevel2NoSlaveKey1(quotaDate, area, level, index, SaveModel.timeLevel_DDL, "2");
|
|
|
|
|
|
finished = elasticsearchUtil.findOneDateQuotaLevel1(quotaDate, area, level, index64, SaveModel.timeLevel_DDL, "2");
|
|
}
|
|
}
|
|
//已经取消
|
|
//已经取消
|
|
if (StringUtils.isNotBlank(disease)) {
|
|
if (StringUtils.isNotBlank(disease)) {
|
|
canceled = elasticsearchUtil.findOneDateQuotaLevel2(quotaDate, area, level, index, SaveModel.timeLevel_DDL, disease, "3");
|
|
|
|
|
|
canceled = elasticsearchUtil.findOneDateQuotaLevel2(quotaDate, area, level, index58, SaveModel.timeLevel_DDL, disease, "3");
|
|
} else {
|
|
} else {
|
|
canceled = elasticsearchUtil.findOneDateQuotaLevel2NoSlaveKey1(quotaDate, area, level, index, SaveModel.timeLevel_DDL, "3");
|
|
|
|
|
|
canceled = elasticsearchUtil.findOneDateQuotaLevel1(quotaDate, area, level, index64, SaveModel.timeLevel_DDL, "3");
|
|
}
|
|
}
|
|
//审核不通过
|
|
//审核不通过
|
|
if (StringUtils.isNotBlank(disease)) {
|
|
if (StringUtils.isNotBlank(disease)) {
|
|
unPass = elasticsearchUtil.findOneDateQuotaLevel2(quotaDate, area, level, index, SaveModel.timeLevel_DDL, disease, "4");
|
|
|
|
|
|
unPass = elasticsearchUtil.findOneDateQuotaLevel2(quotaDate, area, level, index58, SaveModel.timeLevel_DDL, disease, "4");
|
|
} else {
|
|
} else {
|
|
unPass = elasticsearchUtil.findOneDateQuotaLevel2NoSlaveKey1(quotaDate, area, level, index, SaveModel.timeLevel_DDL, "4");
|
|
|
|
|
|
unPass = elasticsearchUtil.findOneDateQuotaLevel1(quotaDate, area, level, index64, SaveModel.timeLevel_DDL, "4");
|
|
}
|
|
}
|
|
//其他原因取消
|
|
//其他原因取消
|
|
if (StringUtils.isNotBlank(disease)) {
|
|
if (StringUtils.isNotBlank(disease)) {
|
|
other = elasticsearchUtil.findOneDateQuotaLevel2(quotaDate, area, level, index, SaveModel.timeLevel_DDL, disease, "5");
|
|
|
|
|
|
other = elasticsearchUtil.findOneDateQuotaLevel2(quotaDate, area, level, index58, SaveModel.timeLevel_DDL, disease, "5");
|
|
} else {
|
|
} else {
|
|
other = elasticsearchUtil.findOneDateQuotaLevel2NoSlaveKey1(quotaDate, area, level, index, SaveModel.timeLevel_DDL, "5");
|
|
|
|
|
|
other = elasticsearchUtil.findOneDateQuotaLevel1(quotaDate, area, level, index64, SaveModel.timeLevel_DDL, "5");
|
|
}
|
|
}
|
|
|
|
|
|
//总数
|
|
//总数
|
|
@ -3063,14 +3069,14 @@ public class StatisticsESService {
|
|
Long num = (Long) count.get("num");
|
|
Long num = (Long) count.get("num");
|
|
Map<String, Object> map = new HashMap<>();
|
|
Map<String, Object> map = new HashMap<>();
|
|
DecimalFormat decimalFormat = new DecimalFormat("0.00");//构造方法的字符格式这里如果小数不足2位,会以0补足.
|
|
DecimalFormat decimalFormat = new DecimalFormat("0.00");//构造方法的字符格式这里如果小数不足2位,会以0补足.
|
|
if(num==0){
|
|
|
|
|
|
if (num == 0) {
|
|
map.put("0ageRate", 0.0);
|
|
map.put("0ageRate", 0.0);
|
|
map.put("7ageRate", 0.0);
|
|
map.put("7ageRate", 0.0);
|
|
map.put("19ageRate", 0.0);
|
|
map.put("19ageRate", 0.0);
|
|
map.put("31ageRate", 0.0);
|
|
map.put("31ageRate", 0.0);
|
|
map.put("51ageRate", 0.0);
|
|
map.put("51ageRate", 0.0);
|
|
map.put("65ageRate", 0.0);
|
|
map.put("65ageRate", 0.0);
|
|
}else{
|
|
|
|
|
|
} else {
|
|
|
|
|
|
Double ageRate = list.get(0).getResult2() / num;
|
|
Double ageRate = list.get(0).getResult2() / num;
|
|
map.put("0ageRate", decimalFormat.format(ageRate));
|
|
map.put("0ageRate", decimalFormat.format(ageRate));
|
|
@ -3096,13 +3102,15 @@ public class StatisticsESService {
|
|
* @return
|
|
* @return
|
|
*/
|
|
*/
|
|
public List<Map<String, Object>> getPrescriptionTotalHistogram(int level, String area, String disease, String type) throws Exception {
|
|
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<>();
|
|
|
|
|
|
//因为一个处方可能有多个疾病状态 所以分开2个指标
|
|
|
|
String index58 = "58";//统计长处方总数疾病和状态维度
|
|
|
|
String index64 = "64";//统计长处方总数状态维度
|
|
|
|
Map<String,Map<String, Object>> rs = new LinkedHashMap<>();
|
|
|
|
|
|
Calendar dd = Calendar.getInstance();//定义日期实例
|
|
Calendar dd = Calendar.getInstance();//定义日期实例
|
|
Date endDate = new Date();
|
|
Date endDate = new Date();
|
|
dd.setTime(endDate);
|
|
dd.setTime(endDate);
|
|
|
|
|
|
|
|
//初始化近半年的月份
|
|
for (int i = 1; i < 7; i++) {
|
|
for (int i = 1; i < 7; i++) {
|
|
Map<String, Object> mc = new HashedMap();
|
|
Map<String, Object> mc = new HashedMap();
|
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
|
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
|
|
@ -3110,7 +3118,7 @@ public class StatisticsESService {
|
|
mc.put("month", date);
|
|
mc.put("month", date);
|
|
mc.put("count", 0);
|
|
mc.put("count", 0);
|
|
dd.add(Calendar.MONTH, -1);
|
|
dd.add(Calendar.MONTH, -1);
|
|
rs.add(mc);
|
|
|
|
|
|
rs.put(date,mc);
|
|
}
|
|
}
|
|
String startTime = DateUtil.dateToStr(dd.getTime(), "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");
|
|
String endTime = DateUtil.dateToStr(new Date(), "YYYY-MM-dd HH:mm:ss");
|
|
@ -3119,37 +3127,31 @@ public class StatisticsESService {
|
|
//类型0.总量,1.进行中,2.已完成,3.居民取消,4.审核不通过,5.其他原因取消
|
|
//类型0.总量,1.进行中,2.已完成,3.居民取消,4.审核不通过,5.其他原因取消
|
|
if ("0".equals(type)) {
|
|
if ("0".equals(type)) {
|
|
//总数
|
|
//总数
|
|
resultList = elasticsearchUtil.findLineChartDateQuotaLevel2NoSlaveKey2(startTime, endTime, area, level, index, "1", "3", disease);
|
|
|
|
|
|
resultList = elasticsearchUtil.findLineChartDateQuotaLevel2NoSlaveKey2(startTime, endTime, area, level, index58, "1", "3", disease);
|
|
} else {
|
|
} else {
|
|
resultList = elasticsearchUtil.findLineChartDateQuotaLevel2(startTime, endTime, area, level, index, "1", "3", disease, type);
|
|
|
|
|
|
resultList = elasticsearchUtil.findLineChartDateQuotaLevel2(startTime, endTime, area, level, index58, "1", "3", disease, type);
|
|
}
|
|
}
|
|
} else {
|
|
} else {
|
|
if ("0".equals(type)) {
|
|
if ("0".equals(type)) {
|
|
//总数
|
|
//总数
|
|
resultList = elasticsearchUtil.findLineChartDateQuotaLevel2NoSlaveKey1NoSlaveKey2(startTime, endTime, area, level, index, "1", "3");
|
|
|
|
|
|
resultList = elasticsearchUtil.findLineChartDateQuotaLevel1NoSlaveKey1(startTime, endTime, area, level, index64, "1", "3");
|
|
} else {
|
|
} else {
|
|
resultList = elasticsearchUtil.findLineChartDateQuotaLevel2NoSlaveKey1(startTime, endTime, area, level, index, "1", "3", type);
|
|
|
|
|
|
resultList = elasticsearchUtil.findLineChartDateQuotaLevel1(startTime, endTime, area, level, index64, "1", "3", type);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
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());
|
|
|
|
m.put("month", monthKeyEs);
|
|
|
|
}
|
|
|
|
if (StringUtils.isNotBlank(monthKeyEs) && monthKey.equals(monthKeyEs)) {
|
|
|
|
m.put("count", saveModel.getResult2());
|
|
|
|
} else {
|
|
|
|
m.put("count", 0);
|
|
|
|
}
|
|
|
|
|
|
//把数据设置到初始化的Map里面去
|
|
|
|
for(SaveModel saveModel:resultList){
|
|
|
|
String monthKeyEs = "";
|
|
|
|
if (saveModel.getQuotaDate() != null) {
|
|
|
|
monthKeyEs = DateUtil.changeQuotaDate(saveModel.getQuotaDate());
|
|
|
|
}
|
|
|
|
if (StringUtils.isNotBlank(monthKeyEs) && rs.containsKey(monthKeyEs)) {
|
|
|
|
Map<String, Object> oneMc = rs.get(monthKeyEs);
|
|
|
|
oneMc.put("count",saveModel.getResult2());
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return rs;
|
|
|
|
|
|
|
|
|
|
return new ArrayList<>(rs.values());
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
@ -3163,51 +3165,33 @@ public class StatisticsESService {
|
|
*/
|
|
*/
|
|
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 quotaDate = elasticsearchUtil.getQuotaTime();
|
|
String index = "58";
|
|
|
|
|
|
//因为一个处方可能有多个疾病状态 所以分开2个指标
|
|
|
|
String index58 = "58";//统计长处方总数疾病和状态维度
|
|
|
|
String index64 = "64";//统计长处方总数状态维度
|
|
|
|
|
|
List<SaveModel> saveModels = new ArrayList<>();
|
|
List<SaveModel> saveModels = new ArrayList<>();
|
|
List<Map<String, Object>> rs = 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)) {
|
|
|
|
// saveModels = elasticsearchUtil.findListDateQuotaLevel1(quotaDate, area, level, index, "2", lowlevel, "5");
|
|
|
|
// }
|
|
|
|
if ("1".equals(type)) {
|
|
if ("1".equals(type)) {
|
|
//总数
|
|
//总数
|
|
saveModels = elasticsearchUtil.findListDateQuotaLevel0(quotaDate,area,level,index,SaveModel.timeLevel_DDL,lowlevel);
|
|
|
|
} else if("2".equals(type) || "3".equals(type) || "4".equals(type)){
|
|
|
|
saveModels = elasticsearchUtil.findListDateQuotaLevel2NoSlaveKey1(quotaDate,area,level,index,SaveModel.timeLevel_DDL,lowlevel,type);
|
|
|
|
} else if("5".equals(type)){
|
|
|
|
saveModels = elasticsearchUtil.findListDateQuotaLevel2NoSlaveKey1(quotaDate,area,level,index,SaveModel.timeLevel_DDL,lowlevel,"1");
|
|
|
|
|
|
saveModels = elasticsearchUtil.findListDateQuotaLevel1NoSlaveKey1(quotaDate, area, level, index64, SaveModel.timeLevel_DDL, lowlevel);
|
|
|
|
} else if ("2".equals(type) || "3".equals(type) || "4".equals(type)) {
|
|
|
|
saveModels = elasticsearchUtil.findListDateQuotaLevel1(quotaDate, area, level, index64, SaveModel.timeLevel_DDL, lowlevel, type);
|
|
|
|
} else if ("5".equals(type)) {
|
|
|
|
saveModels = elasticsearchUtil.findListDateQuotaLevel1(quotaDate, area, level, index64, SaveModel.timeLevel_DDL, lowlevel, "1");
|
|
} else if ("6".equals(type)) {
|
|
} else if ("6".equals(type)) {
|
|
saveModels = elasticsearchUtil.findListDateQuotaLevel2NoSlaveKey1(quotaDate,area,level,index,SaveModel.timeLevel_DDL,lowlevel,"5");
|
|
|
|
|
|
saveModels = elasticsearchUtil.findListDateQuotaLevel1(quotaDate, area, level, index64, SaveModel.timeLevel_DDL, 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)) {
|
|
if ("1".equals(type)) {
|
|
//总数String quotaDate, String area, int level, String index, String timelevel,String lowLevel, String slaveKey2
|
|
|
|
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");
|
|
|
|
|
|
saveModels = elasticsearchUtil.findListDateQuotaLevel2NoSlaveKey2(quotaDate, area, level, index58, "2", lowlevel, disease);
|
|
|
|
} else if ("2".equals(type) || "3".equals(type) || "4".equals(type)) {
|
|
|
|
saveModels = elasticsearchUtil.findListDateQuotaLevel2(quotaDate, area, level, index58, "2", lowlevel, disease, type);
|
|
|
|
} else if ("5".equals(type)) {
|
|
|
|
saveModels = elasticsearchUtil.findListDateQuotaLevel2(quotaDate, area, level, index58, "2", lowlevel, disease, "1");
|
|
|
|
} else if ("6".equals(type)) {
|
|
|
|
saveModels = elasticsearchUtil.findListDateQuotaLevel2(quotaDate, area, level, index58, "2", lowlevel, disease, "5");
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if ("5".equals(lowlevel)) {
|
|
if ("5".equals(lowlevel)) {
|
|
@ -3217,9 +3201,9 @@ public class StatisticsESService {
|
|
if (saveModels.size() > 0) {
|
|
if (saveModels.size() > 0) {
|
|
for (SaveModel one : saveModels) {
|
|
for (SaveModel one : saveModels) {
|
|
map = new HashMap<>();
|
|
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)) {
|
|
if (SaveModel.townLevel.equals(lowlevel)) {
|
|
map.put("code", one.getTown());
|
|
map.put("code", one.getTown());
|
|
map.put("name", one.getTownName());
|
|
map.put("name", one.getTownName());
|
|
@ -3231,12 +3215,11 @@ public class StatisticsESService {
|
|
map.put("name", one.getTeamName());
|
|
map.put("name", one.getTeamName());
|
|
}
|
|
}
|
|
map.put("val", one.getResult2().longValue());
|
|
map.put("val", one.getResult2().longValue());
|
|
|
|
rs.add(map);
|
|
}
|
|
}
|
|
} else {
|
|
} else {
|
|
|
|
|
|
//统计数据为空时,自建结果集
|
|
//统计数据为空时,自建结果集
|
|
// List<Map<String, Object>> resultList = new ArrayList<>();
|
|
|
|
// resultList = getLowLevelMapKey(level, lowlevel, area);
|
|
|
|
List<Town> townList = null;
|
|
List<Town> townList = null;
|
|
List<Hospital> hospitalList = null;
|
|
List<Hospital> hospitalList = null;
|
|
List<AdminTeam> adminTeams = null;
|
|
List<AdminTeam> adminTeams = null;
|
|
@ -3269,8 +3252,9 @@ public class StatisticsESService {
|
|
map.put("val", 0);
|
|
map.put("val", 0);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
rs.add(map);
|
|
}
|
|
}
|
|
rs.add(map);
|
|
|
|
return rs;
|
|
return rs;
|
|
}
|
|
}
|
|
|
|
|
|
@ -3300,7 +3284,7 @@ public class StatisticsESService {
|
|
*/
|
|
*/
|
|
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 index ="63";
|
|
|
|
|
|
String index = "63";
|
|
String quotaDate = elasticsearchUtil.getQuotaTime();
|
|
String quotaDate = elasticsearchUtil.getQuotaTime();
|
|
//统计年龄分布
|
|
//统计年龄分布
|
|
List<SaveModel> list = elasticsearchUtil.findOneDateQuotaLevel2(quotaDate, area, Integer.parseInt(level), index, "2", disease);
|
|
List<SaveModel> list = elasticsearchUtil.findOneDateQuotaLevel2(quotaDate, area, Integer.parseInt(level), index, "2", disease);
|
|
@ -3344,14 +3328,14 @@ public class StatisticsESService {
|
|
//type二级指标,disease一级指标
|
|
//type二级指标,disease一级指标
|
|
if (StringUtils.isNotBlank(disease)) {
|
|
if (StringUtils.isNotBlank(disease)) {
|
|
//自取
|
|
//自取
|
|
selt = elasticsearchUtil.findOneDateQuotaLevel2(quotaTime,area, level, index, "2", disease, "1");
|
|
|
|
|
|
selt = elasticsearchUtil.findOneDateQuotaLevel2(quotaTime, area, level, index, "2", disease, "1");
|
|
//物流配送
|
|
//物流配送
|
|
delivery = elasticsearchUtil.findOneDateQuotaLevel2(quotaTime,area, level, index, "2", disease, "2");
|
|
|
|
|
|
delivery = elasticsearchUtil.findOneDateQuotaLevel2(quotaTime, area, level, index, "2", disease, "2");
|
|
//健管师配送
|
|
//健管师配送
|
|
healthDoctor = elasticsearchUtil.findOneDateQuotaLevel2(quotaTime,area, level, index, "2", disease, "3");
|
|
|
|
|
|
healthDoctor = elasticsearchUtil.findOneDateQuotaLevel2(quotaTime, area, level, index, "2", disease, "3");
|
|
} else {
|
|
} else {
|
|
//自取
|
|
//自取
|
|
selt = elasticsearchUtil.findOneDateQuotaLevel2NoSlaveKey1(quotaTime, area, level, index,SaveModel.timeLevel_DDL, "1");
|
|
|
|
|
|
selt = elasticsearchUtil.findOneDateQuotaLevel2NoSlaveKey1(quotaTime, area, level, index, SaveModel.timeLevel_DDL, "1");
|
|
//物流配送
|
|
//物流配送
|
|
delivery = elasticsearchUtil.findOneDateQuotaLevel2NoSlaveKey1(quotaTime, area, level, index, SaveModel.timeLevel_DDL, "2");
|
|
delivery = elasticsearchUtil.findOneDateQuotaLevel2NoSlaveKey1(quotaTime, area, level, index, SaveModel.timeLevel_DDL, "2");
|
|
//健管师配送
|
|
//健管师配送
|
|
@ -3412,7 +3396,7 @@ public class StatisticsESService {
|
|
|
|
|
|
List<SaveModel> resultList = new ArrayList<>();
|
|
List<SaveModel> resultList = new ArrayList<>();
|
|
if (StringUtils.isNotBlank(disease)) {
|
|
if (StringUtils.isNotBlank(disease)) {
|
|
resultList = elasticsearchUtil.findLineChartDateQuotaLevel2(startTime, endTime, area, level, "62", "2", "3",disease , type);
|
|
|
|
|
|
resultList = elasticsearchUtil.findLineChartDateQuotaLevel2(startTime, endTime, area, level, "62", "2", "3", disease, type);
|
|
} else {
|
|
} else {
|
|
resultList = elasticsearchUtil.findLineChartDateQuotaLevel2NoSlaveKey1(startTime, endTime, area, level, "62", "2", "3", type);
|
|
resultList = elasticsearchUtil.findLineChartDateQuotaLevel2NoSlaveKey1(startTime, endTime, area, level, "62", "2", "3", type);
|
|
}
|
|
}
|
|
@ -3572,7 +3556,7 @@ public class StatisticsESService {
|
|
}
|
|
}
|
|
Long num = (Long) count.get("num");
|
|
Long num = (Long) count.get("num");
|
|
String avg = "0.0";
|
|
String avg = "0.0";
|
|
if(num!=0){
|
|
|
|
|
|
if (num != 0) {
|
|
|
|
|
|
avg = decimalFormat.format(one.getResult1() / num);
|
|
avg = decimalFormat.format(one.getResult1() / num);
|
|
}
|
|
}
|
|
@ -3603,28 +3587,30 @@ public class StatisticsESService {
|
|
List<Map<String, Object>> countList = new ArrayList<>();
|
|
List<Map<String, Object>> countList = new ArrayList<>();
|
|
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 = " 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.format(one.getQuotaDate());
|
|
|
|
if (SaveModel.townLevel.equals(level) || SaveModel.cityLevel.equals(level)) {
|
|
|
|
|
|
sql += " and p.trace_time <= '" + dateFormat3.format(one.getQuotaDate())+"'";
|
|
|
|
if ( SaveModel.cityLevel.equals(level)) {
|
|
|
|
sql += " and LEFT(s.hospital,4) ='" + area.substring(0,4) + "' ";
|
|
|
|
}else if (SaveModel.townLevel.equals(level) ) {
|
|
sql += " and LEFT(s.hospital,6) ='" + area + "' ";
|
|
sql += " and LEFT(s.hospital,6) ='" + area + "' ";
|
|
} else if (SaveModel.OrgLevel.equals(level)) {
|
|
} else if (SaveModel.OrgLevel.equals(level)) {
|
|
sql += " and s.hospital ='" + area + "' ";
|
|
sql += " and s.hospital ='" + area + "' ";
|
|
} else if (SaveModel.teamLevel.equals(level)) {
|
|
} else if (SaveModel.teamLevel.equals(level)) {
|
|
sql += " and s.admin_team_id ='" + area + "' ";
|
|
|
|
|
|
sql += " and s.admin_team_id ='" + area + "'";
|
|
}
|
|
}
|
|
Map<String, Object> count = jdbcTemplate.queryForMap(sql);
|
|
Map<String, Object> count = jdbcTemplate.queryForMap(sql);
|
|
Long num = (Long) count.get("num");
|
|
Long num = (Long) count.get("num");
|
|
String avg = "0.0";
|
|
String avg = "0.0";
|
|
if(num!=0){
|
|
|
|
|
|
if (num != 0) {
|
|
avg = decimalFormat.format(one.getResult1() / num);
|
|
avg = decimalFormat.format(one.getResult1() / num);
|
|
}
|
|
}
|
|
map = new HashMap<>();
|
|
map = new HashMap<>();
|
|
map.put("avg", avg);
|
|
map.put("avg", avg);
|
|
if("1".equals(type)){
|
|
|
|
|
|
if ("1".equals(type)) {
|
|
map.put("date", dateFormat.format(one.getQuotaDate()));
|
|
map.put("date", dateFormat.format(one.getQuotaDate()));
|
|
|
|
|
|
}else if("2".equals(type)){
|
|
|
|
|
|
} else if ("2".equals(type)) {
|
|
map.put("date", DateUtil.getWeekOfMonth(dateFormat.format(one.getQuotaDate())));
|
|
map.put("date", DateUtil.getWeekOfMonth(dateFormat.format(one.getQuotaDate())));
|
|
}else{
|
|
|
|
|
|
} else {
|
|
map.put("date", DateUtil.getMonth(dateFormat.format(one.getQuotaDate())));
|
|
map.put("date", DateUtil.getMonth(dateFormat.format(one.getQuotaDate())));
|
|
}
|
|
}
|
|
countList.add(map);
|
|
countList.add(map);
|
|
@ -3634,16 +3620,19 @@ public class StatisticsESService {
|
|
|
|
|
|
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;
|
|
SaveModel saveModel = null;
|
|
String index = "61";
|
|
|
|
|
|
String index = "61";//费用的指标code
|
|
String quotaDate = elasticsearchUtil.getQuotaTime();
|
|
String quotaDate = elasticsearchUtil.getQuotaTime();
|
|
if (StringUtils.isNotEmpty(disease)) {
|
|
if (StringUtils.isNotEmpty(disease)) {
|
|
saveModel = elasticsearchUtil.findOneDateQuotaLevel1(quotaDate, area, Integer.parseInt(level), index, "2", disease);
|
|
saveModel = elasticsearchUtil.findOneDateQuotaLevel1(quotaDate, area, Integer.parseInt(level), index, "2", disease);
|
|
} else {
|
|
} else {
|
|
saveModel = elasticsearchUtil.findOneDateQuotaLevel0(quotaDate, area, Integer.parseInt(level), index, "2");
|
|
|
|
|
|
saveModel = elasticsearchUtil.findOneDateQuotaLevel1NoSlaveKey1(quotaDate, area, Integer.parseInt(level), index, "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 ";
|
|
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.create_time <= " + quotaDate;
|
|
|
|
if (SaveModel.townLevel.equals(level) || SaveModel.cityLevel.equals(level)) {
|
|
|
|
|
|
sql += " and p.create_time <= '" + quotaDate+"'";
|
|
|
|
if ( SaveModel.cityLevel.equals(level)) {
|
|
|
|
sql += " and LEFT(s.hospital,4) ='" + area.substring(0,4) + "' ";
|
|
|
|
}else if (SaveModel.townLevel.equals(level) ) {
|
|
sql += " and LEFT(s.hospital,6) ='" + area + "' ";
|
|
sql += " and LEFT(s.hospital,6) ='" + area + "' ";
|
|
} else if (SaveModel.OrgLevel.equals(level)) {
|
|
} else if (SaveModel.OrgLevel.equals(level)) {
|
|
sql += " and s.hospital ='" + area + "' ";
|
|
sql += " and s.hospital ='" + area + "' ";
|
|
@ -3653,16 +3642,16 @@ public class StatisticsESService {
|
|
Map<String, Object> count = jdbcTemplate.queryForMap(sql);
|
|
Map<String, Object> count = jdbcTemplate.queryForMap(sql);
|
|
Long num = (Long) count.get("num");
|
|
Long num = (Long) count.get("num");
|
|
Map<String, Object> rs = new HashedMap();
|
|
Map<String, Object> rs = new HashedMap();
|
|
BigDecimal s = BigDecimal.valueOf(num);
|
|
|
|
|
|
BigDecimal s = BigDecimal.valueOf(saveModel.getResult1());
|
|
BigDecimal a = null;
|
|
BigDecimal a = null;
|
|
if(num==0){
|
|
|
|
a = BigDecimal.valueOf(0.0);
|
|
|
|
}else{
|
|
|
|
|
|
|
|
a = BigDecimal.valueOf(saveModel.getResult2().longValue() / num);
|
|
|
|
|
|
if (num == 0) {
|
|
|
|
a = BigDecimal.valueOf(0.0);
|
|
|
|
} else {
|
|
|
|
a = BigDecimal.valueOf(saveModel.getResult1().longValue() / 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));
|
|
|
|
|
|
rs.put("sum", s.divide(new BigDecimal(100)).setScale(2, BigDecimal.ROUND_HALF_UP));//费用总计 单位是0 所以除以100四舍五入
|
|
|
|
rs.put("avg", a.divide((new BigDecimal(100))).setScale(2, BigDecimal.ROUND_HALF_UP));//人均费用 单位是0 所以除以100四舍五入
|
|
return rs;
|
|
return rs;
|
|
}
|
|
}
|
|
|
|
|
|
@ -3675,7 +3664,7 @@ public class StatisticsESService {
|
|
json.put("avgCount", getRangeDouuble(saveModel.getResult1(), saveModel.getResult2().intValue(), 2));
|
|
json.put("avgCount", getRangeDouuble(saveModel.getResult1(), saveModel.getResult2().intValue(), 2));
|
|
|
|
|
|
|
|
|
|
resultJSON.put("rs",json);
|
|
|
|
|
|
resultJSON.put("rs", json);
|
|
return resultJSON;
|
|
return resultJSON;
|
|
}
|
|
}
|
|
}
|
|
}
|