|
@ -68,6 +68,8 @@ public class StatisticsAllService extends BaseService {
|
|
|
public long getIndexTotal(String endDate, String area, int level, String index) {
|
|
|
long total = 0;
|
|
|
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
boolean preFlag = false;
|
|
|
String preDate = endDate;
|
|
|
|
|
|
if (endDate.compareTo(dateFormat.format(new Date())) >= 0) {
|
|
|
String val = redisTemplate.opsForValue().get("quota:" + index + ":" + level + ":" + area + ":" + getQuotaTimeStamp());
|
|
@ -76,8 +78,16 @@ public class StatisticsAllService extends BaseService {
|
|
|
if (valJson.has("num")) {
|
|
|
total = valJson.getInt("num");
|
|
|
}
|
|
|
} else {
|
|
|
preFlag = true;
|
|
|
Calendar today = Calendar.getInstance();
|
|
|
today.add(Calendar.DATE, -1);
|
|
|
preDate = dateFormat.format(today.getTime());
|
|
|
}
|
|
|
} else {
|
|
|
preFlag = true;
|
|
|
}
|
|
|
if (preFlag) {
|
|
|
// 查询语句
|
|
|
String sql = " select " +
|
|
|
" ifnull(result,'0') amount" +
|
|
@ -101,7 +111,7 @@ public class StatisticsAllService extends BaseService {
|
|
|
sql += " and qkdoctor_code = ?";
|
|
|
}
|
|
|
|
|
|
List<Map<String, Object>> result = jdbcTemplate.queryForList(sql, new Object[]{index, level, endDate, area});
|
|
|
List<Map<String, Object>> result = jdbcTemplate.queryForList(sql, new Object[]{index, level, preDate, area});
|
|
|
|
|
|
if (result != null && result.size() > 0) {
|
|
|
total = (result.get(0).get("amount") != null ? Long.valueOf(result.get(0).get("amount").toString()) : 0L);
|
|
@ -122,16 +132,26 @@ public class StatisticsAllService extends BaseService {
|
|
|
public long getWeiJiaoFei(String endDate, String area, int level) {
|
|
|
long total = 0;
|
|
|
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
boolean preFlag = false;
|
|
|
String preDate = endDate;
|
|
|
|
|
|
if (endDate.compareTo(dateFormat.format(new Date())) >= 0) {
|
|
|
String val = redisTemplate.opsForValue().get("quota:16:" + level + ":"+ area + ":0:" + getQuotaTimeStamp());
|
|
|
String val = redisTemplate.opsForValue().get("quota:16:" + level + ":" + area + ":0:" + getQuotaTimeStamp());
|
|
|
if (!StringUtils.isEmpty(val)) {
|
|
|
JSONObject valJson = new JSONObject(val);
|
|
|
if (valJson.has("num")) {
|
|
|
total = valJson.getInt("num");
|
|
|
}
|
|
|
} else {
|
|
|
preFlag = true;
|
|
|
Calendar today = Calendar.getInstance();
|
|
|
today.add(Calendar.DATE, -1);
|
|
|
preDate = dateFormat.format(today.getTime());
|
|
|
}
|
|
|
} else {
|
|
|
preFlag = true;
|
|
|
}
|
|
|
if (preFlag) {
|
|
|
// 查询语句
|
|
|
String sql = " select " +
|
|
|
" ifnull(result,'0') amount" +
|
|
@ -156,7 +176,7 @@ public class StatisticsAllService extends BaseService {
|
|
|
sql += " and qkdoctor_code = ?";
|
|
|
}
|
|
|
|
|
|
List<Map<String, Object>> result = jdbcTemplate.queryForList(sql, new Object[]{level, endDate, area});
|
|
|
List<Map<String, Object>> result = jdbcTemplate.queryForList(sql, new Object[]{level, preDate, area});
|
|
|
|
|
|
if (result != null && result.size() > 0) {
|
|
|
total = (result.get(0).get("amount") != null ? Long.valueOf(result.get(0).get("amount").toString()) : 0L);
|
|
@ -239,13 +259,11 @@ public class StatisticsAllService extends BaseService {
|
|
|
List<Map<String, Object>> resultList = new ArrayList<>();
|
|
|
|
|
|
if (date.compareTo(dateFormat.format(new Date())) >= 0) {
|
|
|
resultList = getTodayLowLevelTotal(date, area, level, index, lowLevel);
|
|
|
|
|
|
resultList = getTodayLowLevelTotal(area, level, index, sort, lowLevel);
|
|
|
} else {
|
|
|
resultList = getTodayBeforeLowLevelTotal(date, area, level, index, sort, lowLevel);
|
|
|
}
|
|
|
|
|
|
|
|
|
// 结果为空时,自建结果集
|
|
|
if (resultList == null || resultList.size() < 1) {
|
|
|
resultList = getLowLevelMapKey(level, low_level, area);
|
|
@ -373,14 +391,13 @@ public class StatisticsAllService extends BaseService {
|
|
|
/**
|
|
|
* 获取今天某个区域一级指标的下级统计
|
|
|
*
|
|
|
* @param date
|
|
|
* @param area
|
|
|
* @param level
|
|
|
* @param index
|
|
|
* @param lowLevel
|
|
|
* @return
|
|
|
*/
|
|
|
public List<Map<String, Object>> getTodayLowLevelTotal(String date, String area, int level, String index, String lowLevel) {
|
|
|
public List<Map<String, Object>> getTodayLowLevelTotal(String area, int level, String index, int sort, String lowLevel) throws Exception {
|
|
|
List<Map<String, Object>> resultList = new ArrayList<>();
|
|
|
String low_level = String.valueOf(StringUtils.isEmpty(lowLevel) ? (level - 1) : lowLevel);
|
|
|
String redisData = redisTemplate.opsForValue().get("quota:" + index + ":" + level + ":" + area + ":" + low_level + ":" + getQuotaTimeStamp());
|
|
@ -398,6 +415,11 @@ public class StatisticsAllService extends BaseService {
|
|
|
|
|
|
resultList.add(data);
|
|
|
}
|
|
|
} else {
|
|
|
Calendar today = Calendar.getInstance();
|
|
|
today.add(Calendar.DATE, -1);
|
|
|
String preDate = new SimpleDateFormat("yyyy-MM-dd").format(today.getTime());
|
|
|
resultList = getTodayBeforeLowLevelTotal(preDate, area, level, index, sort, lowLevel);
|
|
|
}
|
|
|
|
|
|
if (resultList.size() < 1) {
|
|
@ -649,6 +671,11 @@ public class StatisticsAllService extends BaseService {
|
|
|
|
|
|
resultList.add(data);
|
|
|
}
|
|
|
} else {
|
|
|
Calendar today = Calendar.getInstance();
|
|
|
today.add(Calendar.DATE, -1);
|
|
|
String preDate = new SimpleDateFormat("yyyy-MM-dd").format(today.getTime());
|
|
|
resultList = getTodyBeforeLevelTwototal(preDate, area, level, index);
|
|
|
}
|
|
|
|
|
|
if (resultList.size() < 1) {
|
|
@ -834,6 +861,8 @@ public class StatisticsAllService extends BaseService {
|
|
|
String areaField = "";
|
|
|
SimpleDateFormat datef = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
List<Map<String, Object>> resultList = new ArrayList<>();
|
|
|
boolean preFlag = false;
|
|
|
String preDate = endDate;
|
|
|
|
|
|
if (endDate.compareTo(datef.format(new Date())) >= 0) {
|
|
|
String redisData = redisTemplate.opsForValue().get("quota:12:" + level + ":" + area + ":6:" + getQuotaTimeStamp());
|
|
@ -851,8 +880,17 @@ public class StatisticsAllService extends BaseService {
|
|
|
|
|
|
resultList.add(data);
|
|
|
}
|
|
|
} else {
|
|
|
preFlag = true;
|
|
|
Calendar today = Calendar.getInstance();
|
|
|
today.add(Calendar.DATE, -1);
|
|
|
preDate = datef.format(today.getTime());
|
|
|
}
|
|
|
} else {
|
|
|
preFlag = true;
|
|
|
}
|
|
|
|
|
|
if (preFlag) {
|
|
|
if (level == 4) {
|
|
|
// 市级别
|
|
|
areaField = "city";
|
|
@ -884,7 +922,7 @@ public class StatisticsAllService extends BaseService {
|
|
|
" and " + areaField + " = ? " +
|
|
|
" group by level3_type,level3_type_name";
|
|
|
|
|
|
resultList = jdbcTemplate.queryForList(sql, new Object[]{level, endDate, area});
|
|
|
resultList = jdbcTemplate.queryForList(sql, new Object[]{level, preDate, area});
|
|
|
}
|
|
|
|
|
|
if (resultList == null || resultList.size() < 1) {
|
|
@ -947,6 +985,8 @@ public class StatisticsAllService extends BaseService {
|
|
|
String areaField = "";
|
|
|
long total = 0;
|
|
|
SimpleDateFormat datef = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
boolean preFlag = false;
|
|
|
String preDate = endDate;
|
|
|
|
|
|
if (endDate.compareTo(datef.format(new Date())) >= 0) {
|
|
|
String code = "6";
|
|
@ -956,8 +996,17 @@ public class StatisticsAllService extends BaseService {
|
|
|
if (valJson.has("num")) {
|
|
|
total = valJson.getInt("num");
|
|
|
}
|
|
|
} else {
|
|
|
preFlag = true;
|
|
|
Calendar today = Calendar.getInstance();
|
|
|
today.add(Calendar.DATE, -1);
|
|
|
preDate = datef.format(today.getTime());
|
|
|
}
|
|
|
} else {
|
|
|
preFlag = true;
|
|
|
}
|
|
|
|
|
|
if (preFlag) {
|
|
|
if (level == 4) {
|
|
|
// 市级别
|
|
|
areaField = "city";
|
|
@ -988,7 +1037,7 @@ public class StatisticsAllService extends BaseService {
|
|
|
|
|
|
List<Map<String, Object>> result = null;
|
|
|
|
|
|
result = jdbcTemplate.queryForList(sql, new Object[]{level, endDate, area});
|
|
|
result = jdbcTemplate.queryForList(sql, new Object[]{level, preDate, area});
|
|
|
|
|
|
if (result != null && result.size() > 0) {
|
|
|
total = (result.get(0).get("amount") == null ? 0 : Math.round(Double.valueOf(result.get(0).get("amount").toString())));
|