|
@ -9,6 +9,7 @@ import com.yihu.wlyy.entity.statistics.PopulationBase;
|
|
|
import com.yihu.wlyy.repository.address.TownDao;
|
|
|
import com.yihu.wlyy.repository.doctor.DoctorAdminTeamDao;
|
|
|
import com.yihu.wlyy.repository.organization.HospitalDao;
|
|
|
import com.yihu.wlyy.service.system.SystemDictService;
|
|
|
import com.yihu.wlyy.util.Constant;
|
|
|
import com.yihu.wlyy.util.DateUtil;
|
|
|
import com.yihu.wlyy.util.ElasticsearchUtil;
|
|
@ -49,6 +50,8 @@ public class StatisticsESService {
|
|
|
HospitalDao hospitalDao;
|
|
|
@Autowired
|
|
|
TownDao townDao;
|
|
|
@Autowired
|
|
|
private SystemDictService systemDictService;
|
|
|
|
|
|
/**
|
|
|
* 获取上次统计时间
|
|
@ -87,8 +90,6 @@ public class StatisticsESService {
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// /**
|
|
|
// * 查询某一天父level下的子level 例如 查询市下面的团队,或者区下面的团队
|
|
|
// *
|
|
@ -164,23 +165,24 @@ 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<SaveModel> list = null;
|
|
|
if (StringUtils.isNotEmpty(level2_type)) {
|
|
|
|
|
|
list = elasticsearchUtil.findDateQuotaLevel1(startDate,endDate,area,level,index,"1",level2_type,interval,null);
|
|
|
}else{
|
|
|
list = elasticsearchUtil.findDateQuotaLevel0(startDate,endDate,area,level,index,"1",interval,null);
|
|
|
list = elasticsearchUtil.findDateQuotaLevel1(startDate, endDate, area, level, index, "1", level2_type, interval, null);
|
|
|
} else {
|
|
|
list = elasticsearchUtil.findDateQuotaLevel0(startDate, endDate, area, level, index, "1", interval, null);
|
|
|
}
|
|
|
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);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 获取某个指标在某个期间的增长量
|
|
|
*
|
|
@ -191,8 +193,8 @@ public class StatisticsESService {
|
|
|
* @return
|
|
|
*/
|
|
|
public long getIntervalIncrement(String startDate, String endDate, String area, int level, String index) throws Exception {
|
|
|
List<SaveModel> list = elasticsearchUtil.findDateQuotaLevel0(startDate,endDate,area,level,index,"1",null,null);
|
|
|
if(list.size()>0){
|
|
|
List<SaveModel> list = elasticsearchUtil.findDateQuotaLevel0(startDate, endDate, area, level, index, "1", null, null);
|
|
|
if (list.size() > 0) {
|
|
|
return list.get(0).getResult2();
|
|
|
}
|
|
|
return 0;
|
|
@ -257,8 +259,6 @@ public class StatisticsESService {
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 查询截止某个日期累计量
|
|
|
*
|
|
@ -268,17 +268,17 @@ 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 {
|
|
|
|
|
|
List<SaveModel> list = null;
|
|
|
if(StringUtils.isNotEmpty(level2_type)){
|
|
|
List<SaveModel> list = null;
|
|
|
if (StringUtils.isNotEmpty(level2_type)) {
|
|
|
|
|
|
list = elasticsearchUtil.findDateQuotaLevel1(startDate,endDate,area,level,index,"1",level2_type,null,null);
|
|
|
}else{
|
|
|
list = elasticsearchUtil.findDateQuotaLevel0(startDate,endDate,area,level,index,"1",null,null);
|
|
|
list = elasticsearchUtil.findDateQuotaLevel1(startDate, endDate, area, level, index, "1", level2_type, null, null);
|
|
|
} else {
|
|
|
list = elasticsearchUtil.findDateQuotaLevel0(startDate, endDate, area, level, index, "1", null, null);
|
|
|
}
|
|
|
// List<SaveModel> list = findDateQuotaLevel1(startDate,endDate,area,level,index,"1",level2_type,null,null);
|
|
|
if(list.size()>0){
|
|
|
if (list.size() > 0) {
|
|
|
return list.get(0).getResult2();
|
|
|
}
|
|
|
return 0L;
|
|
@ -300,43 +300,43 @@ public class StatisticsESService {
|
|
|
if (!org.springframework.util.StringUtils.isEmpty(year)) {
|
|
|
startDate = year + "-06-30' ";
|
|
|
}
|
|
|
String levelTemp = level+"";
|
|
|
if(StringUtils.isNotEmpty(lowLevel)){
|
|
|
String levelTemp = level + "";
|
|
|
if (StringUtils.isNotEmpty(lowLevel)) {
|
|
|
levelTemp = lowLevel;
|
|
|
}
|
|
|
List<SaveModel> list = null;
|
|
|
List<SaveModel> list = null;
|
|
|
// if(StringUtils.isNotEmpty(level2_type)){
|
|
|
//
|
|
|
// list = findDateQuotaLevel1(startDate,endDate,area,level,index,"1",level2_type,null,lowLevel);
|
|
|
// }else{
|
|
|
// list = findDateQuotaLevel0(startDate,endDate,area,level,index,"1",null,lowLevel);
|
|
|
// }
|
|
|
list = lowLevel(startDate,endDate,area,level, index,"1",lowLevel,level2_type);
|
|
|
list = lowLevel(startDate, endDate, area, level, index, "1", lowLevel, level2_type);
|
|
|
// List<SaveModel> list = findDateQuotaLevel1(startDate,endDate,area,level,index,"1",level2_type,null,lowLevel);
|
|
|
if (org.springframework.util.StringUtils.isEmpty(year)) {
|
|
|
year = Constant.getNowYear();
|
|
|
}
|
|
|
List<Map<String, Object>> resultList = new ArrayList<>();
|
|
|
PopulationBase populationBase = getPopulationBase(area,year);
|
|
|
PopulationBase populationBase = getPopulationBase(area, year);
|
|
|
DecimalFormat df = new DecimalFormat("0.0000");
|
|
|
for (SaveModel saveModel:list) {
|
|
|
for (SaveModel saveModel : list) {
|
|
|
Map<String, Object> map = new HashMap<>();
|
|
|
if (SaveModel.OrgLevel.equals(levelTemp)) {
|
|
|
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(levelTemp)) {
|
|
|
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(levelTemp)) {
|
|
|
map.put("code",saveModel.getCity());
|
|
|
map.put("name",saveModel.getCityName());
|
|
|
} else if (SaveModel.teamLevel.equals(level+"")) {
|
|
|
map.put("code",saveModel.getTeam());
|
|
|
map.put("name",saveModel.getCityName());
|
|
|
}
|
|
|
map.put("amount",saveModel.getResult2());
|
|
|
map.put("rate",df.format((saveModel.getResult2() * 1.0000) / populationBase.getNum() * 100));
|
|
|
map.put("rateString",saveModel.getResult2()+"/"+populationBase.getNum());
|
|
|
map.put("code", saveModel.getCity());
|
|
|
map.put("name", saveModel.getCityName());
|
|
|
} else if (SaveModel.teamLevel.equals(level + "")) {
|
|
|
map.put("code", saveModel.getTeam());
|
|
|
map.put("name", saveModel.getCityName());
|
|
|
}
|
|
|
map.put("amount", saveModel.getResult2());
|
|
|
map.put("rate", df.format((saveModel.getResult2() * 1.0000) / populationBase.getNum() * 100));
|
|
|
map.put("rateString", saveModel.getResult2() + "/" + populationBase.getNum());
|
|
|
resultList.add(map);
|
|
|
}
|
|
|
Collections.sort(resultList, new Comparator<Map<String, Object>>() {
|
|
@ -365,18 +365,18 @@ public class StatisticsESService {
|
|
|
* @param level 级别
|
|
|
* @return
|
|
|
*/
|
|
|
public List lowLevel(String startDate,String endDate, String area, int level, String index,String timeLevel,String lowLevel,String slaveKey1){
|
|
|
public List lowLevel(String startDate, String endDate, String area, int level, String index, String timeLevel, String lowLevel, String slaveKey1) {
|
|
|
StringBuffer sql = new StringBuffer();
|
|
|
StringBuffer groupBy = new StringBuffer();
|
|
|
String lowLevelField = "";
|
|
|
if(SaveModel.cityLevel.equals(level+"")){
|
|
|
lowLevelField=SaveModel.townLevel;
|
|
|
}else if(SaveModel.townLevel.equals(level+"")){
|
|
|
lowLevelField=SaveModel.OrgLevel;
|
|
|
}else if(SaveModel.OrgLevel.equals(level+"")){
|
|
|
lowLevelField=SaveModel.teamLevel;
|
|
|
}else{
|
|
|
lowLevelField=SaveModel.teamLevel;
|
|
|
if (SaveModel.cityLevel.equals(level + "")) {
|
|
|
lowLevelField = SaveModel.townLevel;
|
|
|
} else if (SaveModel.townLevel.equals(level + "")) {
|
|
|
lowLevelField = SaveModel.OrgLevel;
|
|
|
} else if (SaveModel.OrgLevel.equals(level + "")) {
|
|
|
lowLevelField = SaveModel.teamLevel;
|
|
|
} else {
|
|
|
lowLevelField = SaveModel.teamLevel;
|
|
|
}
|
|
|
if (SaveModel.teamLevel.equals(lowLevelField)) {
|
|
|
sql.append("select team,teamName,sum(result1) result1, sum(result2) result2 from wlyy_quota_test where ");
|
|
@ -391,20 +391,20 @@ public class StatisticsESService {
|
|
|
sql.append("select city,cityName,sum(result1) result1,sum(result2) result2 from wlyy_quota_test where ");
|
|
|
groupBy.append(" group by city,cityName");
|
|
|
}
|
|
|
sql.append(" quotaCode in("+index+") ");
|
|
|
sql.append(" and timeLevel='"+timeLevel+"' ");
|
|
|
sql.append(" quotaCode in(" + index + ") ");
|
|
|
sql.append(" and timeLevel='" + timeLevel + "' ");
|
|
|
sql.append(" and areaLevel='5'");
|
|
|
if(StringUtils.isNotEmpty(startDate)){
|
|
|
if (StringUtils.isNotEmpty(startDate)) {
|
|
|
sql.append(" and quotaDate>='" + startDate + "'");
|
|
|
}
|
|
|
if(StringUtils.isNotEmpty(endDate)){
|
|
|
if (StringUtils.isNotEmpty(endDate)) {
|
|
|
sql.append(" and quotaDate<='" + endDate + "'");
|
|
|
}
|
|
|
if(StringUtils.isNotEmpty(slaveKey1)){
|
|
|
sql.append(" and slaveKey1='"+slaveKey1+"' ");
|
|
|
if (StringUtils.isNotEmpty(slaveKey1)) {
|
|
|
sql.append(" and slaveKey1='" + slaveKey1 + "' ");
|
|
|
}
|
|
|
|
|
|
if(StringUtils.isNotEmpty(lowLevel)){
|
|
|
if (StringUtils.isNotEmpty(lowLevel)) {
|
|
|
|
|
|
if (SaveModel.teamLevel.equals(lowLevel)) {
|
|
|
sql.append(" and team='" + area + "'");
|
|
@ -418,18 +418,18 @@ public class StatisticsESService {
|
|
|
}
|
|
|
sql.append(groupBy);
|
|
|
|
|
|
return elasticsearchUtil.excute(sql.toString(),SaveModel.class,"","");
|
|
|
return elasticsearchUtil.excute(sql.toString(), SaveModel.class, "", "");
|
|
|
}
|
|
|
|
|
|
|
|
|
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 {
|
|
|
|
|
|
// List<SaveModel> list =findOneDateQuotaLevel2(endDate, area, level, index,"1","");
|
|
|
List<SaveModel> list = elasticsearchUtil.findDateQuotaLevel1(endDate,endDate,area,level,index,"2",null,null,null);
|
|
|
List<SaveModel> list = elasticsearchUtil.findDateQuotaLevel1(endDate, endDate, area, level, index, "2", null, null, null);
|
|
|
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<>();
|
|
|
// if (SaveModel.OrgLevel.equals(level+"")) {
|
|
|
// map.put("code",saveModel.getHospital());
|
|
@ -447,8 +447,8 @@ public class StatisticsESService {
|
|
|
// map.put("amount",saveModel.getResult2());
|
|
|
// map.put("rate",df.format((saveModel.getResult2() * 1.0000) / populationBase.getNum() * 100));
|
|
|
// map.put("rateString",saveModel.getResult2()+"/"+populationBase.getNum());
|
|
|
map.put("code",saveModel.getSlaveKey1());
|
|
|
map.put("name",saveModel.getSlaveKey1Name());
|
|
|
map.put("code", saveModel.getSlaveKey1());
|
|
|
map.put("name", saveModel.getSlaveKey1Name());
|
|
|
map.put("amount", saveModel.getResult2());
|
|
|
if (index.equals("7")) {
|
|
|
// 分组指标总数算法
|
|
@ -470,20 +470,20 @@ public class StatisticsESService {
|
|
|
if (!index.equals("8")) {
|
|
|
if (index.equals("36")) {
|
|
|
//如果是查询36的指标 那么除数是签约总数
|
|
|
List<SaveModel> list2 = elasticsearchUtil.findDateQuotaLevel1(endDate,endDate, area, level, "1","2",null,null,null);
|
|
|
Integer num=0;
|
|
|
if(list2.size()>0){
|
|
|
List<SaveModel> list2 = elasticsearchUtil.findDateQuotaLevel1(endDate, endDate, area, level, "1", "2", null, null, null);
|
|
|
Integer num = 0;
|
|
|
if (list2.size() > 0) {
|
|
|
num = list2.get(0).getResult2();
|
|
|
}else{
|
|
|
} else {
|
|
|
throw new Exception("param num error");
|
|
|
}
|
|
|
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 ? ((int) map.get("amount")) * 1.0000 / total * 100 : 0);
|
|
|
map.put("rate", df.format(rateG));
|
|
|
map.put("rateString", ((int) map.get("amount")) + "/" + total);
|
|
@ -528,12 +528,12 @@ 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 {
|
|
|
|
|
|
// List<SaveModel> list =findDateQuotaLevel1("",endDate, area, level, index,timeLevel,null,null);
|
|
|
List<SaveModel> list = elasticsearchUtil.findDateQuotaLevel0(endDate,endDate, area, level, index,timeLevel,null,null);
|
|
|
List<SaveModel> list = elasticsearchUtil.findDateQuotaLevel0(endDate, endDate, area, level, index, timeLevel, null, null);
|
|
|
// List<SaveModel> list =elasticsearchUtil.excute(sql.toString(),SaveModel.class,"","");
|
|
|
if(list.size()>0){
|
|
|
if (list.size() > 0) {
|
|
|
|
|
|
return list.get(0).getResult2();
|
|
|
}
|
|
@ -548,10 +548,10 @@ 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 {
|
|
|
|
|
|
List<SaveModel> list = elasticsearchUtil.findDateQuotaLevel1(endDate,endDate,area,level,"16","2","0",null,null);
|
|
|
if(list.size()>0){
|
|
|
List<SaveModel> list = elasticsearchUtil.findDateQuotaLevel1(endDate, endDate, area, level, "16", "2", "0", null, null);
|
|
|
if (list.size() > 0) {
|
|
|
return list.get(0).getResult2();
|
|
|
}
|
|
|
return 0;
|
|
@ -575,17 +575,17 @@ public class StatisticsESService {
|
|
|
renewIndex = "29";
|
|
|
}
|
|
|
String timeKey = elasticsearchUtil.getQuotaTime();
|
|
|
List<SaveModel> list = elasticsearchUtil.findDateQuotaLevel0(timeKey,timeKey,area,Integer.parseInt(level),renewIndex,"2",null,null);
|
|
|
List<SaveModel> list = elasticsearchUtil.findDateQuotaLevel0(timeKey, timeKey, area, Integer.parseInt(level), renewIndex, "2", null, null);
|
|
|
int renewNum = 0;
|
|
|
if(list.size()>0){
|
|
|
if (list.size() > 0) {
|
|
|
renewNum = list.get(0).getResult2();
|
|
|
}
|
|
|
//根据年度获取去年的签约数 签约指标是1
|
|
|
String date = year + "-06-30";
|
|
|
String index = "1";
|
|
|
List<SaveModel> list2 = elasticsearchUtil.findDateQuotaLevel0(date,date,area,Integer.parseInt(level),index,"2",null,null);
|
|
|
List<SaveModel> list2 = elasticsearchUtil.findDateQuotaLevel0(date, date, area, Integer.parseInt(level), index, "2", null, null);
|
|
|
int signNum = 0;
|
|
|
if (list2.size()>0) {
|
|
|
if (list2.size() > 0) {
|
|
|
signNum = list2.get(0).getResult2();
|
|
|
}
|
|
|
JSONObject jo = new JSONObject();
|
|
@ -606,8 +606,8 @@ public class StatisticsESService {
|
|
|
public JSONObject getSignRate(String endDate, String area, int level, String year) throws Exception {
|
|
|
|
|
|
long signAmount = 0;
|
|
|
List<SaveModel> list = elasticsearchUtil.findDateQuotaLevel0(endDate,endDate,area,level,"13","2",null,null);
|
|
|
if(list.size()>0){
|
|
|
List<SaveModel> list = elasticsearchUtil.findDateQuotaLevel0(endDate, endDate, area, level, "13", "2", null, null);
|
|
|
if (list.size() > 0) {
|
|
|
signAmount = list.get(0).getResult2();
|
|
|
}
|
|
|
PopulationBase peopleNum = getPopulationBase(area, year);
|
|
@ -636,9 +636,9 @@ public class StatisticsESService {
|
|
|
* @return
|
|
|
*/
|
|
|
public JSONObject getSignTaskRate(String endDate, String area, int level, String year) throws Exception {
|
|
|
List<SaveModel> list = elasticsearchUtil.findDateQuotaLevel0(endDate,endDate,area,level,"13","2",null,null);
|
|
|
List<SaveModel> list = elasticsearchUtil.findDateQuotaLevel0(endDate, endDate, area, level, "13", "2", null, null);
|
|
|
long signAmount = 0;
|
|
|
if(list.size()>0){
|
|
|
if (list.size() > 0) {
|
|
|
signAmount = list.get(0).getResult2();
|
|
|
}
|
|
|
PopulationBase peopleNum = getPopulationBase(area, year);
|
|
@ -668,9 +668,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();
|
|
|
}
|
|
|
int num = 0;
|
|
@ -735,15 +735,15 @@ public class StatisticsESService {
|
|
|
* @param level
|
|
|
* @return
|
|
|
*/
|
|
|
public JSONArray getSixFiveStatistics(String endDate, String area, int level) throws Exception{
|
|
|
List<SaveModel> list = elasticsearchUtil.findDateQuotaLevel2(endDate,endDate,area,level,"12","2","6",null,null,null);
|
|
|
public JSONArray getSixFiveStatistics(String endDate, String area, int level) throws Exception {
|
|
|
List<SaveModel> list = elasticsearchUtil.findDateQuotaLevel2(endDate, endDate, area, level, "12", "2", "6", null, null, null);
|
|
|
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);
|
|
|
}
|
|
@ -802,10 +802,10 @@ 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 {
|
|
|
|
|
|
List<SaveModel> list = elasticsearchUtil.findDateQuotaLevel1(endDate,endDate,area,level,"8","2","6",null,null);
|
|
|
if(list.size()>0){
|
|
|
List<SaveModel> list = elasticsearchUtil.findDateQuotaLevel1(endDate, endDate, area, level, "8", "2", "6", null, null);
|
|
|
if (list.size() > 0) {
|
|
|
return list.get(0).getResult2();
|
|
|
}
|
|
|
return 0;
|
|
@ -849,15 +849,15 @@ public class StatisticsESService {
|
|
|
|
|
|
json.put("taskNum", taskNum);
|
|
|
List<SaveModel> list = null;
|
|
|
if(StringUtils.isNotEmpty(lowCode)){
|
|
|
if (StringUtils.isNotEmpty(lowCode)) {
|
|
|
//一级维度
|
|
|
list = elasticsearchUtil.findDateQuotaLevel1(startDate,endDate,area,level,index,"2",lowCode,interval+"",null);
|
|
|
}else{
|
|
|
list = elasticsearchUtil.findDateQuotaLevel0(startDate,endDate,area,level,index,"2",interval+"",null);
|
|
|
list = elasticsearchUtil.findDateQuotaLevel1(startDate, endDate, area, level, index, "2", lowCode, interval + "", null);
|
|
|
} else {
|
|
|
list = elasticsearchUtil.findDateQuotaLevel0(startDate, endDate, area, level, index, "2", interval + "", null);
|
|
|
}
|
|
|
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());
|
|
@ -950,6 +950,193 @@ public class StatisticsESService {
|
|
|
return resultList;
|
|
|
}
|
|
|
|
|
|
public JSONArray getLevelTwoLowLevelTotalTeamLeader(String date, String area, int level, String index, int sort, String lowLevel, String lowCode, String year) throws Exception {
|
|
|
|
|
|
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
String low_level = String.valueOf(org.springframework.util.StringUtils.isEmpty(lowLevel) ? (level - 1) : lowLevel);
|
|
|
List<Map<String, Object>> resultList = new ArrayList<>();
|
|
|
|
|
|
List<SaveModel> esModelList = (List<SaveModel>) elasticsearchUtil.findListDateQuotaLevel1(date, area, level, index, SaveModel.timeLevel_DDL, lowLevel, lowCode);
|
|
|
|
|
|
if (esModelList != null && esModelList.size() > 0) {
|
|
|
for (SaveModel one : esModelList) {
|
|
|
Map<String, Object> maps = new HashMap<String, Object>();
|
|
|
maps.put("amount", one.getResult1());
|
|
|
if (low_level.equals("3")) {
|
|
|
maps.put("code", one.getTown());
|
|
|
maps.put("name", one.getTownName());
|
|
|
} else if (low_level.equals("2")) {
|
|
|
maps.put("code", one.getHospital());
|
|
|
maps.put("name", one.getHospitalName());
|
|
|
} else if (low_level.equals("1")) {
|
|
|
maps.put("code", one.getTeam());
|
|
|
maps.put("name", one.getTeamName());
|
|
|
}
|
|
|
resultList.add(maps);
|
|
|
}
|
|
|
}
|
|
|
// 结果为空时,自建结果集
|
|
|
if (resultList == null || resultList.size() < 1) {
|
|
|
resultList = getLowLevelMapKey(level, low_level, area);
|
|
|
}
|
|
|
|
|
|
if (resultList != null) {
|
|
|
String signTaskNum = systemDictService.getDictValueNoRedis("SIGN_TASKNUM_17", year);//目标量
|
|
|
String signRegulationNum = systemDictService.getDictValueNoRedis("SIGN_TEAM_REGULATION_NUM", year);//调控量
|
|
|
DecimalFormat df = new DecimalFormat("0.0000");
|
|
|
for (Map<String, Object> map : resultList) {
|
|
|
map.put("amount", map.get("amount") != null ? Long.valueOf(map.get("amount").toString()) : 0L);
|
|
|
map.put("signTaskNum", signTaskNum);//目标量
|
|
|
map.put("signRegulationNum", signRegulationNum);//调控量
|
|
|
if (!low_level.equals("1")) {
|
|
|
PopulationBase peopleNum = getPopulationBase(map.get("code").toString(), year);
|
|
|
if (peopleNum != null) {
|
|
|
int num = 0;
|
|
|
int taskNum = 0;
|
|
|
|
|
|
if (lowCode.equals("3")) {
|
|
|
num = peopleNum.getSixFiveNum();
|
|
|
taskNum = peopleNum.getSixFiveTaskNum();
|
|
|
} else if (lowCode.equals("1")) {
|
|
|
num = peopleNum.getGxyNum();
|
|
|
taskNum = peopleNum.getGxyTaskNum();
|
|
|
} else if (lowCode.equals("2")) {
|
|
|
num = peopleNum.getTnbNum();
|
|
|
taskNum = peopleNum.getTnbTaskNum();
|
|
|
}
|
|
|
map.put("rate", df.format(((long) map.get("amount") * 1.0000) / num * 100));
|
|
|
map.put("taskRate", df.format(((long) map.get("amount") * 1.0000) / taskNum * 100));
|
|
|
map.put("targetRate", df.format(taskNum * 1.0000 / num * 100));
|
|
|
map.put("rateString", map.get("amount") + "/" + num);
|
|
|
map.put("taskRateString", map.get("amount") + "/" + taskNum);
|
|
|
map.put("targetRateString", taskNum + "/" + num);
|
|
|
map.put("num", num);
|
|
|
map.put("task", taskNum);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
if ((level == 4 && "1".equals(lowLevel)) || (level == 2) || (level == 3 && "1".equals(lowLevel))) {
|
|
|
translateTeamLeaderName(resultList);
|
|
|
}
|
|
|
|
|
|
Collections.sort(resultList, new Comparator<Map<String, Object>>() {
|
|
|
public int compare(Map<String, Object> o1, Map<String, Object> o2) {
|
|
|
long map1value = (long) o1.get("amount");
|
|
|
long map2value = (long) o2.get("amount");
|
|
|
|
|
|
if (map1value - map2value > 0) {
|
|
|
return sort == 1 ? -1 : 1;
|
|
|
} else if (map1value - map2value < 0) {
|
|
|
return sort == 1 ? 1 : -1;
|
|
|
} else {
|
|
|
return 0;
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
|
|
|
return new JSONArray(resultList);
|
|
|
} else {
|
|
|
return new JSONArray();
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 获取团队长队长名字
|
|
|
*
|
|
|
* @param leaders
|
|
|
* @param teamCode
|
|
|
* @return
|
|
|
*/
|
|
|
public String getTeamLeaderNameByTeamCode(Map<Integer, Map<String, Object>> leaders, int teamCode) {
|
|
|
if (leaders != null && leaders.size() > 0 && teamCode != 0) {
|
|
|
Map<String, Object> leader = leaders.get(teamCode);
|
|
|
if (leader != null) {
|
|
|
return (String) leader.get("name");
|
|
|
}
|
|
|
}
|
|
|
return "";
|
|
|
}
|
|
|
|
|
|
public List<Map<String, Object>> translateTeamLeaderName(List<Map<String, Object>> rs) {
|
|
|
Map<Integer, Map<String, Object>> leaders = getAllTeamLeaders();
|
|
|
if (rs != null && rs.size() > 0) {
|
|
|
for (Map<String, Object> r : rs) {
|
|
|
String id = (String) r.get("code");
|
|
|
String name = getTeamLeaderNameByTeamCode(leaders, Integer.parseInt(id));
|
|
|
if (org.apache.commons.lang3.StringUtils.isNotBlank(name)) {
|
|
|
r.put("name", name);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
return rs;
|
|
|
}
|
|
|
|
|
|
public JSONArray translateTeamLeaderName(JSONArray 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");
|
|
|
String name = getTeamLeaderNameByTeamCode(leaders, id);
|
|
|
if (org.apache.commons.lang3.StringUtils.isNotBlank(name)) {
|
|
|
r.put("name", name);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
return rs;
|
|
|
}
|
|
|
|
|
|
public JSONArray translateTeamLeaderNameByCode(JSONArray rs) {
|
|
|
Map<Integer, Map<String, Object>> leaders = getAllTeamLeaders();
|
|
|
if (rs != null) {
|
|
|
for (int i = 0; i < rs.length(); i++) {
|
|
|
JSONObject r = rs.getJSONObject(i);
|
|
|
String id = (String) r.get("code");
|
|
|
String name = getTeamLeaderNameByTeamCode(leaders, Integer.parseInt(id));
|
|
|
if (org.apache.commons.lang3.StringUtils.isNotBlank(name)) {
|
|
|
r.put("name", name);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
return rs;
|
|
|
}
|
|
|
|
|
|
public List<AdminTeam> translateAdminTeamLeaderName(List<AdminTeam> rs) {
|
|
|
Map<Integer, Map<String, Object>> leaders = getAllTeamLeaders();
|
|
|
if (rs != null && rs.size() > 0) {
|
|
|
for (AdminTeam team : rs) {
|
|
|
Integer id = team.getId().intValue();
|
|
|
String name = getTeamLeaderNameByTeamCode(leaders, id);
|
|
|
if (org.apache.commons.lang3.StringUtils.isNotBlank(name)) {
|
|
|
team.setName(name);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
return rs;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 获取所有团队长信息
|
|
|
*
|
|
|
* @return
|
|
|
*/
|
|
|
public Map<Integer, Map<String, Object>> getAllTeamLeaders() {
|
|
|
String sql = " select t.leader_code,t.id,d.name " +
|
|
|
" from wlyy_admin_team t " +
|
|
|
" LEFT JOIN wlyy_doctor d " +
|
|
|
" on t.leader_code = d.code ";
|
|
|
List<Map<String, Object>> rs = jdbcTemplate.queryForList(sql);
|
|
|
//将结果集转换为 map减小循环层
|
|
|
Map<Integer, Map<String, Object>> rsMap = new HashMap<>();
|
|
|
if (rs != null && rs.size() > 0) {
|
|
|
for (Map<String, Object> map : rs) {
|
|
|
rsMap.put((Integer) map.get("id"), map);
|
|
|
}
|
|
|
}
|
|
|
return rsMap;
|
|
|
}
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 查询某个级别的某个指标到达量
|
|
|
*
|
|
@ -962,8 +1149,566 @@ public class StatisticsESService {
|
|
|
* @return
|
|
|
* @throws Exception
|
|
|
*/
|
|
|
// public JSONArray getLevelTwoLowLevelTotalTeamLeader(String date, String area, int level, String index, int sort, String lowLevel, String lowCode, String year) throws Exception {
|
|
|
//
|
|
|
//
|
|
|
// }
|
|
|
public JSONArray getLevelTwoLowLevelTotal(String date, String area, int level, String index, int sort, String lowLevel, String lowCode, String year) throws Exception {
|
|
|
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
String low_level = String.valueOf(org.springframework.util.StringUtils.isEmpty(lowLevel) ? (level - 1) : lowLevel);
|
|
|
List<Map<String, Object>> resultList = new ArrayList<>();
|
|
|
|
|
|
List<SaveModel> esModelList = (List<SaveModel>) elasticsearchUtil.findListDateQuotaLevel1(date, area, level, index, SaveModel.timeLevel_DDL, lowLevel, lowCode);
|
|
|
|
|
|
if (esModelList != null && esModelList.size() > 0) {
|
|
|
for (SaveModel one : esModelList) {
|
|
|
Map<String, Object> maps = new HashMap<String, Object>();
|
|
|
maps.put("amount", one.getResult1());
|
|
|
if (low_level.equals("3")) {
|
|
|
maps.put("code", one.getTown());
|
|
|
maps.put("name", one.getTownName());
|
|
|
} else if (low_level.equals("2")) {
|
|
|
maps.put("code", one.getHospital());
|
|
|
maps.put("name", one.getHospitalName());
|
|
|
} else if (low_level.equals("1")) {
|
|
|
maps.put("code", one.getTeam());
|
|
|
maps.put("name", one.getTeamName());
|
|
|
}
|
|
|
resultList.add(maps);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// 结果为空时,自建结果集
|
|
|
if (resultList == null || resultList.size() < 1) {
|
|
|
resultList = getLowLevelMapKey(level, low_level, area);
|
|
|
}
|
|
|
|
|
|
if (resultList != null) {
|
|
|
DecimalFormat df = new DecimalFormat("0.0000");
|
|
|
for (Map<String, Object> map : resultList) {
|
|
|
map.put("amount", map.get("amount") != null ? Long.valueOf(map.get("amount").toString()) : 0L);
|
|
|
|
|
|
if (!low_level.equals("1")) {
|
|
|
PopulationBase peopleNum = getPopulationBase(area, year);
|
|
|
if (peopleNum != null) {
|
|
|
int num = 0;
|
|
|
int taskNum = 0;
|
|
|
|
|
|
if (lowCode.equals("3")) {
|
|
|
num = peopleNum.getSixFiveNum();
|
|
|
taskNum = peopleNum.getSixFiveTaskNum();
|
|
|
} else if (lowCode.equals("1")) {
|
|
|
num = peopleNum.getGxyNum();
|
|
|
taskNum = peopleNum.getGxyTaskNum();
|
|
|
} else if (lowCode.equals("2")) {
|
|
|
num = peopleNum.getTnbNum();
|
|
|
taskNum = peopleNum.getTnbTaskNum();
|
|
|
}
|
|
|
map.put("rate", df.format(((long) map.get("amount") * 1.0000) / num * 100));
|
|
|
map.put("taskRate", df.format(((long) map.get("amount") * 1.0000) / taskNum * 100));
|
|
|
map.put("targetRate", df.format(taskNum * 1.0000 / num * 100));
|
|
|
map.put("rateString", map.get("amount") + "/" + num);
|
|
|
map.put("taskRateString", map.get("amount") + "/" + taskNum);
|
|
|
map.put("targetRateString", taskNum + "/" + num);
|
|
|
map.put("num", num);
|
|
|
map.put("task", taskNum);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
if ((level == 4 && "1".equals(lowLevel)) || (level == 2) || (level == 3 && "1".equals(lowLevel))) {
|
|
|
translateTeamLeaderName(resultList);
|
|
|
}
|
|
|
|
|
|
Collections.sort(resultList, new Comparator<Map<String, Object>>() {
|
|
|
public int compare(Map<String, Object> o1, Map<String, Object> o2) {
|
|
|
long map1value = (long) o1.get("amount");
|
|
|
long map2value = (long) o2.get("amount");
|
|
|
|
|
|
if (map1value - map2value > 0) {
|
|
|
return sort == 1 ? -1 : 1;
|
|
|
} else if (map1value - map2value < 0) {
|
|
|
return sort == 1 ? 1 : -1;
|
|
|
} else {
|
|
|
return 0;
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
|
|
|
return new JSONArray(resultList);
|
|
|
} else {
|
|
|
return new JSONArray();
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 查询某个级别的某个指标到达量
|
|
|
*
|
|
|
* @param date
|
|
|
* @param area
|
|
|
* @param level
|
|
|
* @param index
|
|
|
* @param sort
|
|
|
* @param lowLevel
|
|
|
* @return
|
|
|
* @throws Exception
|
|
|
*/
|
|
|
public JSONArray getLowLevelTotal2(String date, String area, int level, String index, int sort, String lowLevel) throws Exception {
|
|
|
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
String low_level = String.valueOf(org.springframework.util.StringUtils.isEmpty(lowLevel) ? (level - 1) : lowLevel);
|
|
|
List<Map<String, Object>> resultList = new ArrayList<>();
|
|
|
//获取微信关注的未交费
|
|
|
Map<String, Integer> expenseStatus0 = getByIndex(date, area, level, "49", sort, lowLevel, dateFormat);
|
|
|
//获取微信关注的已交费
|
|
|
Map<String, Integer> expenseStatus1 = getByIndex(date, area, level, "50", sort, lowLevel, dateFormat);
|
|
|
//获取已缴费的签约数
|
|
|
Map<String, Integer> expenseStatus1Sigjn = getByIndex(date, area, level, "1", sort, lowLevel, dateFormat);
|
|
|
|
|
|
|
|
|
// 结果为空时,自建结果集
|
|
|
if (resultList == null || resultList.size() < 1) {
|
|
|
resultList = getLowLevelMapKey(level, low_level, area);
|
|
|
}
|
|
|
|
|
|
if (resultList != null) {
|
|
|
DecimalFormat df = new DecimalFormat("0.0000");
|
|
|
Iterator iterator = resultList.iterator();
|
|
|
while (iterator.hasNext()) {
|
|
|
Map<String, Object> map = (Map<String, Object>) iterator.next();
|
|
|
|
|
|
Integer expenseStatus0amountNum = expenseStatus0.get(map.get("code").toString());
|
|
|
Integer expenseStatus1amountNum = expenseStatus1.get(map.get("code").toString());
|
|
|
Integer expenseStatus1SigjnNum = expenseStatus1Sigjn.get(map.get("code").toString());
|
|
|
if (expenseStatus0amountNum == null || expenseStatus1amountNum == null || expenseStatus1SigjnNum == null) {
|
|
|
iterator.remove();
|
|
|
continue;
|
|
|
}
|
|
|
if (expenseStatus0amountNum == null) {
|
|
|
expenseStatus0amountNum = 0;
|
|
|
}
|
|
|
if (expenseStatus1amountNum == null) {
|
|
|
expenseStatus1amountNum = 0;
|
|
|
}
|
|
|
map.put("amount", map.get("amount") != null ? Long.valueOf(map.get("amount").toString()) : 0L);
|
|
|
map.put("weChatAmount0", expenseStatus0amountNum);//微信关注未交费数
|
|
|
map.put("weChatAmount1", expenseStatus1amountNum);//微信关注已交费数
|
|
|
map.put("signAccount", expenseStatus1SigjnNum);//签约已缴费的数目
|
|
|
map.put("bindRate", getRangeDouuble(expenseStatus1amountNum, expenseStatus1SigjnNum, 2));//微信关注率
|
|
|
}
|
|
|
|
|
|
if ((level == 4 && "1".equals(lowLevel)) || (level == 2)) {
|
|
|
translateTeamLeaderName(resultList);
|
|
|
}
|
|
|
// 排序 按绑定率来排序
|
|
|
resultList.sort(new Comparator<Map<String, Object>>() {
|
|
|
@Override
|
|
|
public int compare(Map<String, Object> o1, Map<String, Object> o2) {
|
|
|
if ((double) o1.get("bindRate") >= (double) o2.get("bindRate")) {
|
|
|
return -1;
|
|
|
} else if ((double) o1.get("bindRate") < (double) o2.get("bindRate")) {
|
|
|
return 1;
|
|
|
} else {
|
|
|
return 0;
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
|
|
|
return new JSONArray(resultList);
|
|
|
} else {
|
|
|
return new JSONArray();
|
|
|
}
|
|
|
}
|
|
|
|
|
|
public double getRangeDouuble(int first, int second, int i) {
|
|
|
if (second == 0 && first > 0) {
|
|
|
//如果分母为0 分子不为0 返回100%
|
|
|
return 100;
|
|
|
} else if (second == 0 && first == 0) {
|
|
|
//如果分母为0 分子为0 返回0%
|
|
|
return 0;
|
|
|
}
|
|
|
float size = (float) (first * 100) / second;
|
|
|
DecimalFormat df = new DecimalFormat("0.00");//格式化小数,不足的补0
|
|
|
String filesize = df.format(size);
|
|
|
return Double.valueOf(filesize);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 获取某个指标某一天某一level的值 到达量
|
|
|
*
|
|
|
* @param date
|
|
|
* @param area
|
|
|
* @param level
|
|
|
* @param index
|
|
|
* @param sort
|
|
|
* @param lowLevel
|
|
|
* @param dateFormat
|
|
|
* @return
|
|
|
* @throws Exception
|
|
|
*/
|
|
|
private Map<String, Integer> getByIndex(String date, String area, int level, String index, int sort, String lowLevel, SimpleDateFormat dateFormat) throws Exception {
|
|
|
Map<String, Integer> returnMap = new HashMap<>();
|
|
|
List<SaveModel> esModelList = (List<SaveModel>) elasticsearchUtil.findListDateQuotaLevel0(date, area, level, index, SaveModel.timeLevel_DDL, lowLevel);
|
|
|
if (esModelList != null && esModelList.size() > 0) {
|
|
|
esModelList.stream().forEach(one -> {
|
|
|
if (lowLevel.equals("3")) {
|
|
|
returnMap.put(one.getTown(), one.getResult1());
|
|
|
} else if (lowLevel.equals("2")) {
|
|
|
returnMap.put(one.getHospital(), one.getResult1());
|
|
|
} else if (lowLevel.equals("1")) {
|
|
|
returnMap.put(one.getTeam(), one.getResult1());
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
|
|
|
return returnMap;
|
|
|
}
|
|
|
|
|
|
public String getAvgAllInfo(int level, String area, String lowLevel) throws Exception {
|
|
|
JSONObject returnJo = new JSONObject();
|
|
|
JSONArray ja = new JSONArray();
|
|
|
//市级
|
|
|
if (level == 4) {
|
|
|
if (StringUtils.isBlank(lowLevel)) {
|
|
|
List<SaveModel> esModelList = (List<SaveModel>) elasticsearchUtil.findListDateQuotaLevel0(DateUtil.dateToStrShort(new Date()), area, level, "28", SaveModel.timeLevel_DDL, "3");
|
|
|
esModelList.forEach(one -> {
|
|
|
JSONObject jo = new JSONObject();
|
|
|
jo.put("name", one.getTownName());
|
|
|
jo.put("code", one.getTown());
|
|
|
jo.put("avgCount", getRangeDouuble(one.getResult1(), one.getResult2(), 2));
|
|
|
ja.put(jo);
|
|
|
});
|
|
|
} else {
|
|
|
List<SaveModel> esModelList = (List<SaveModel>) elasticsearchUtil.findListDateQuotaLevel0(DateUtil.dateToStrShort(new Date()), area, level, "28", SaveModel.timeLevel_DDL, "2");
|
|
|
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(), 2));
|
|
|
ja.put(jo);
|
|
|
});
|
|
|
}
|
|
|
} else if (level == 3) {
|
|
|
List<SaveModel> esModelList = (List<SaveModel>) elasticsearchUtil.findListDateQuotaLevel0(DateUtil.dateToStrShort(new Date()), area, level, "28", SaveModel.timeLevel_DDL, "2");
|
|
|
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(), 2));
|
|
|
ja.put(jo);
|
|
|
});
|
|
|
} else if (level == 2) {
|
|
|
|
|
|
List<SaveModel> esModelList = (List<SaveModel>) elasticsearchUtil.findListDateQuotaLevel0(DateUtil.dateToStrShort(new Date()), area, level, "28", SaveModel.timeLevel_DDL, "1");
|
|
|
esModelList.forEach(one -> {
|
|
|
JSONObject jo = new JSONObject();
|
|
|
jo.put("name", one.getTeam());
|
|
|
jo.put("code", one.getTeamName());
|
|
|
jo.put("avgCount", getRangeDouuble(one.getResult1(), one.getResult2(), 2));
|
|
|
ja.put(jo);
|
|
|
});
|
|
|
translateTeamLeaderName(ja);
|
|
|
}
|
|
|
returnJo.put("data", ja);
|
|
|
return returnJo.toString();
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 13.17两个指标团队显示团队长
|
|
|
* 查询某个级别的某个指标到达量
|
|
|
*
|
|
|
* @param date
|
|
|
* @param area
|
|
|
* @param level
|
|
|
* @param index
|
|
|
* @param sort
|
|
|
* @param lowLevel
|
|
|
* @return
|
|
|
* @throws Exception
|
|
|
*/
|
|
|
public JSONArray getLowLevelTotalTeamLeader(String date, String area, int level, String index, int sort, String lowLevel, String year) throws Exception {
|
|
|
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
String low_level = String.valueOf(org.springframework.util.StringUtils.isEmpty(lowLevel) ? (level - 1) : lowLevel);
|
|
|
List<Map<String, Object>> resultList = new ArrayList<>();
|
|
|
|
|
|
List<SaveModel> esModelList = (List<SaveModel>) elasticsearchUtil.findListDateQuotaLevel0(date, area, level, index, SaveModel.timeLevel_DDL, lowLevel);
|
|
|
|
|
|
if (esModelList != null && esModelList.size() > 0) {
|
|
|
for (SaveModel one : esModelList) {
|
|
|
Map<String, Object> maps = new HashMap<String, Object>();
|
|
|
maps.put("amount", one.getResult1());
|
|
|
if (low_level.equals("3")) {
|
|
|
maps.put("code", one.getTown());
|
|
|
maps.put("name", one.getTownName());
|
|
|
} else if (low_level.equals("2")) {
|
|
|
maps.put("code", one.getHospital());
|
|
|
maps.put("name", one.getHospitalName());
|
|
|
} else if (low_level.equals("1")) {
|
|
|
maps.put("code", one.getTeam());
|
|
|
maps.put("name", one.getTeamName());
|
|
|
}
|
|
|
resultList.add(maps);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// 结果为空时,自建结果集
|
|
|
if (resultList == null || resultList.size() < 1) {
|
|
|
resultList = getLowLevelMapKey(level, low_level, area);
|
|
|
}
|
|
|
//获取目标量和团队的调控量
|
|
|
String signTaskNum = systemDictService.getDictValueNoRedis("SIGN_TASKNUM_13", year);//目标量
|
|
|
String signRegulationNum = systemDictService.getDictValueNoRedis("SIGN_TEAM_REGULATION_NUM", year);//调控量
|
|
|
if (resultList != null) {
|
|
|
DecimalFormat df = new DecimalFormat("0.0000");
|
|
|
for (int i = 0; i < resultList.size(); i++) {
|
|
|
Map<String, Object> map = resultList.get(i);
|
|
|
map.put("amount", map.get("amount") != null ? Long.valueOf(map.get("amount").toString()) : 0L);
|
|
|
map.put("signTaskNum", signTaskNum);//目标量
|
|
|
map.put("signRegulationNum", signRegulationNum);//调控量
|
|
|
|
|
|
if (!low_level.equals("1")) {
|
|
|
String code = map.get("code").toString();
|
|
|
PopulationBase peopleNum = getPopulationBase(code, year);
|
|
|
if (peopleNum != null) {
|
|
|
map.put("rate", df.format(((long) map.get("amount") * 1.0000) / peopleNum.getNum() * 100));
|
|
|
map.put("taskRate", df.format(((long) map.get("amount") * 1.0000) / peopleNum.getTaskNum() * 100));
|
|
|
map.put("targetRate", df.format(peopleNum.getTaskNum() * 1.0000 / peopleNum.getNum() * 100));
|
|
|
map.put("rateString", map.get("amount") + "/" + peopleNum.getNum());
|
|
|
map.put("taskRateString", map.get("amount") + "/" + peopleNum.getTaskNum());
|
|
|
map.put("targetRateString", peopleNum.getTaskNum() + "/" + peopleNum.getNum());
|
|
|
map.put("num", peopleNum.getNum());
|
|
|
map.put("task", peopleNum.getTaskNum());
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
if ((level == 4 && "1".equals(lowLevel)) || (level == 2) || (level == 3 && "1".equals(lowLevel))) {
|
|
|
translateTeamLeaderName(resultList);
|
|
|
}
|
|
|
|
|
|
Collections.sort(resultList, new Comparator<Map<String, Object>>() {
|
|
|
public int compare(Map<String, Object> o1, Map<String, Object> o2) {
|
|
|
long map1value = (long) o1.get("amount");
|
|
|
long map2value = (long) o2.get("amount");
|
|
|
|
|
|
if (map1value - map2value > 0) {
|
|
|
return sort == 1 ? -1 : 1;
|
|
|
} else if (map1value - map2value < 0) {
|
|
|
return sort == 1 ? 1 : -1;
|
|
|
} else {
|
|
|
return 0;
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
|
|
|
|
|
|
return new JSONArray(resultList);
|
|
|
} else {
|
|
|
return new JSONArray();
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 查询某个级别的某个指标到达量
|
|
|
*
|
|
|
* @param date
|
|
|
* @param area
|
|
|
* @param level
|
|
|
* @param index
|
|
|
* @param sort
|
|
|
* @param lowLevel
|
|
|
* @return
|
|
|
* @throws Exception
|
|
|
*/
|
|
|
public JSONArray getLowLevelTotal(String date, String area, int level, String index, int sort, String lowLevel, String year) throws Exception {
|
|
|
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
String low_level = String.valueOf(org.springframework.util.StringUtils.isEmpty(lowLevel) ? (level - 1) : lowLevel);
|
|
|
List<Map<String, Object>> resultList = new ArrayList<>();
|
|
|
|
|
|
List<SaveModel> esModelList = (List<SaveModel>) elasticsearchUtil.findListDateQuotaLevel0(date, area, level, index, SaveModel.timeLevel_DDL, lowLevel);
|
|
|
|
|
|
if (esModelList != null && esModelList.size() > 0) {
|
|
|
for (SaveModel one : esModelList) {
|
|
|
Map<String, Object> maps = new HashMap<String, Object>();
|
|
|
maps.put("amount", one.getResult1());
|
|
|
if (low_level.equals("3")) {
|
|
|
maps.put("code", one.getTown());
|
|
|
maps.put("name", one.getTownName());
|
|
|
} else if (low_level.equals("2")) {
|
|
|
maps.put("code", one.getHospital());
|
|
|
maps.put("name", one.getHospitalName());
|
|
|
} else if (low_level.equals("1")) {
|
|
|
maps.put("code", one.getTeam());
|
|
|
maps.put("name", one.getTeamName());
|
|
|
}
|
|
|
resultList.add(maps);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// 结果为空时,自建结果集
|
|
|
if (resultList == null || resultList.size() < 1) {
|
|
|
resultList = getLowLevelMapKey(level, low_level, area);
|
|
|
}
|
|
|
|
|
|
if (resultList != null) {
|
|
|
DecimalFormat df = new DecimalFormat("0.0000");
|
|
|
for (Map<String, Object> map : resultList) {
|
|
|
map.put("amount", map.get("amount") != null ? Long.valueOf(map.get("amount").toString()) : 0L);
|
|
|
|
|
|
if (!low_level.equals("1")) {
|
|
|
PopulationBase peopleNum = getPopulationBase(area, year);
|
|
|
if (peopleNum != null) {
|
|
|
map.put("rate", df.format(((long) map.get("amount") * 1.0000) / peopleNum.getNum() * 100));
|
|
|
map.put("taskRate", df.format(((long) map.get("amount") * 1.0000) / peopleNum.getTaskNum() * 100));
|
|
|
map.put("targetRate", df.format(peopleNum.getTaskNum() * 1.0000 / peopleNum.getNum() * 100));
|
|
|
map.put("rateString", map.get("amount") + "/" + peopleNum.getNum());
|
|
|
map.put("taskRateString", map.get("amount") + "/" + peopleNum.getTaskNum());
|
|
|
map.put("targetRateString", peopleNum.getTaskNum() + "/" + peopleNum.getNum());
|
|
|
map.put("num", peopleNum.getNum());
|
|
|
map.put("task", peopleNum.getTaskNum());
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
if ((level == 4 && "1".equals(lowLevel)) || (level == 2) || (level == 3 && "1".equals(lowLevel))) {
|
|
|
translateTeamLeaderName(resultList);
|
|
|
}
|
|
|
|
|
|
Collections.sort(resultList, new Comparator<Map<String, Object>>() {
|
|
|
public int compare(Map<String, Object> o1, Map<String, Object> o2) {
|
|
|
long map1value = (long) o1.get("amount");
|
|
|
long map2value = (long) o2.get("amount");
|
|
|
|
|
|
if (map1value - map2value > 0) {
|
|
|
return sort == 1 ? -1 : 1;
|
|
|
} else if (map1value - map2value < 0) {
|
|
|
return sort == 1 ? 1 : -1;
|
|
|
} else {
|
|
|
return 0;
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
|
|
|
return new JSONArray(resultList);
|
|
|
} else {
|
|
|
return new JSONArray();
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 查询某个日期范围内某个区域或机构各下级指标增量情况
|
|
|
*
|
|
|
* @param startDate 起始日期
|
|
|
* @param endDate 结束日期
|
|
|
* @param area 区域或机构代码
|
|
|
* @param level 级别
|
|
|
* @param index 指标
|
|
|
* @return
|
|
|
*/
|
|
|
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, area, level, index, SaveModel.timeLevel_DDL, low_level);
|
|
|
|
|
|
if (esModelList != null && esModelList.size() > 0) {
|
|
|
for (SaveModel one : esModelList) {
|
|
|
Map<String, Object> maps = new HashMap<String, Object>();
|
|
|
maps.put("amount", one.getResult1());
|
|
|
if (low_level.equals("3")) {
|
|
|
maps.put("code", one.getTown());
|
|
|
maps.put("name", one.getTownName());
|
|
|
} else if (low_level.equals("2")) {
|
|
|
maps.put("code", one.getHospital());
|
|
|
maps.put("name", one.getHospitalName());
|
|
|
} else if (low_level.equals("1")) {
|
|
|
maps.put("code", one.getTeam());
|
|
|
maps.put("name", one.getTeamName());
|
|
|
}
|
|
|
resultList.add(maps);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// 结果为空时,自建结果集
|
|
|
if (resultList == null || resultList.size() < 1) {
|
|
|
resultList = new ArrayList<>();
|
|
|
if (low_level.equals("3")) {
|
|
|
List<Town> towns = townDao.findByCityCode(area);
|
|
|
if (towns != null) {
|
|
|
for (Town town : towns) {
|
|
|
Map<String, Object> obj = new HashMap<>();
|
|
|
obj.put("code", town.getCode());
|
|
|
obj.put("name", town.getName());
|
|
|
obj.put("amount", "0");
|
|
|
obj.put("rate", Double.valueOf("0.0000"));
|
|
|
resultList.add(obj);
|
|
|
}
|
|
|
}
|
|
|
} else if (low_level.equals("2")) {
|
|
|
List<Town> towns = new ArrayList<>();
|
|
|
if (level == 4) {
|
|
|
towns = townDao.findByCityCode(area);
|
|
|
} else if (level == 3) {
|
|
|
Town town = townDao.findByCode(area);
|
|
|
towns.add(town);
|
|
|
}
|
|
|
|
|
|
if (towns != null && towns.size() > 0) {
|
|
|
for (Town town : towns) {
|
|
|
List<Hospital> hospitals = hospitalDao.findByTownCode(town.getCode());
|
|
|
|
|
|
for (Hospital hos : hospitals) {
|
|
|
Map<String, Object> obj = new HashMap<>();
|
|
|
obj.put("code", hos.getCode());
|
|
|
obj.put("name", hos.getName());
|
|
|
obj.put("amount", "0");
|
|
|
resultList.add(obj);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
} else if (low_level.equals("1")) {
|
|
|
List<Hospital> hospitals = new ArrayList<>();
|
|
|
if (level == 4) {
|
|
|
hospitals = hospitalDao.findByCity(area);
|
|
|
} else if (level == 3) {
|
|
|
hospitals = hospitalDao.findByTownCode(area);
|
|
|
} else {
|
|
|
Hospital hos = hospitalDao.findByCode(area);
|
|
|
if (hos != null) {
|
|
|
hospitals.add(hos);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
if (hospitals != null && hospitals.size() > 0) {
|
|
|
for (Hospital hos : hospitals) {
|
|
|
List<AdminTeam> teams = adminTeamDao.findByOrgCode(hos.getCode());
|
|
|
|
|
|
for (AdminTeam team : teams) {
|
|
|
Map<String, Object> obj = new HashMap<>();
|
|
|
obj.put("code", String.valueOf(team.getId()));
|
|
|
obj.put("name", team.getName());
|
|
|
obj.put("amount", "0");
|
|
|
resultList.add(obj);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
if (resultList != null) {
|
|
|
|
|
|
Collections.sort(resultList, new Comparator<Map<String, Object>>() {
|
|
|
public int compare(Map<String, Object> o1, Map<String, Object> o2) {
|
|
|
long map1value = (long) o1.get("amount");
|
|
|
long map2value = (long) o2.get("amount");
|
|
|
|
|
|
if (map1value - map2value > 0) {
|
|
|
return sort == 1 ? -1 : 1;
|
|
|
} else if (map1value - map2value < 0) {
|
|
|
return sort == 1 ? 1 : -1;
|
|
|
} else {
|
|
|
return 0;
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
|
|
|
return new JSONArray(resultList);
|
|
|
} else {
|
|
|
return new JSONArray();
|
|
|
}
|
|
|
}
|
|
|
}
|