|
@ -2618,13 +2618,20 @@ public class StatisticsAllService extends BaseService {
|
|
|
* 获取所有团队长信息
|
|
|
* @return
|
|
|
*/
|
|
|
public List<Map<String,Object>> getAllTeamLeaders(){
|
|
|
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);
|
|
|
return rs;
|
|
|
//将结果集转换为 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;
|
|
|
}
|
|
|
|
|
|
/**
|
|
@ -2633,20 +2640,16 @@ public class StatisticsAllService extends BaseService {
|
|
|
* @param teamCode
|
|
|
* @return
|
|
|
*/
|
|
|
public String getTeamLeaderNameByTeamCode(List<Map<String,Object>> leaders ,int teamCode){
|
|
|
public String getTeamLeaderNameByTeamCode(Map<Integer,Map<String,Object>> leaders ,int teamCode){
|
|
|
if(leaders!=null&&leaders.size()>0&&teamCode!=0){
|
|
|
for(Map<String,Object> leader: leaders){
|
|
|
int id = (Integer)leader.get("id");
|
|
|
if(teamCode==id){
|
|
|
return (String)leader.get("name");
|
|
|
}
|
|
|
}
|
|
|
Map<String,Object> leader = leaders.get(teamCode);
|
|
|
return (String)leader.get("name");
|
|
|
}
|
|
|
return "";
|
|
|
}
|
|
|
|
|
|
public List<Map<String,Object>> translateTeamLeaderName(List<Map<String,Object>> rs){
|
|
|
List<Map<String,Object>> leaders = getAllTeamLeaders();
|
|
|
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");
|
|
@ -2657,4 +2660,124 @@ public class StatisticsAllService extends BaseService {
|
|
|
return rs;
|
|
|
}
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 查询某个级别的某个指标到达量
|
|
|
*
|
|
|
* @param date
|
|
|
* @param area
|
|
|
* @param level
|
|
|
* @param index
|
|
|
* @param sort
|
|
|
* @param lowLevel
|
|
|
* @return
|
|
|
* @throws Exception
|
|
|
*/
|
|
|
public JSONArray getLevelTwoLowLevelTotalTeamLeader(String date, String area, int level, String index, int sort, String lowLevel, String lowCode) throws Exception {
|
|
|
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
String low_level = String.valueOf(StringUtils.isEmpty(lowLevel) ? (level - 1) : lowLevel);
|
|
|
List<Map<String, Object>> resultList = new ArrayList<>();
|
|
|
|
|
|
if (date.compareTo(dateFormat.format(new Date())) >= 0) {
|
|
|
// 查询当天及以后的数据
|
|
|
resultList = getLevelTwoTodayLowLevelTotal(area, level, index, sort, lowLevel, lowCode);
|
|
|
} else {
|
|
|
// 查询当天以前的数据
|
|
|
resultList = getLevelTwoTodayBeforeLowLevelTotal(date, area, level, index, sort, lowLevel, lowCode);
|
|
|
}
|
|
|
|
|
|
// 结果为空时,自建结果集
|
|
|
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")) {
|
|
|
String redisNum = "";
|
|
|
try {
|
|
|
redisNum = redisTemplate.opsForValue().get("people:num:" + map.get("code").toString());
|
|
|
} catch (Exception e) {
|
|
|
redisNum = "";
|
|
|
}
|
|
|
if (StringUtils.isEmpty(redisNum)) {
|
|
|
PopulationBase peopleNum = peopleNumDao.findByCodeAndYear(map.get("code").toString(), Calendar.getInstance().get(Calendar.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);
|
|
|
}
|
|
|
} else {
|
|
|
JSONObject peopleNum = new JSONObject(redisNum);
|
|
|
if (peopleNum != null) {
|
|
|
int num = 0;
|
|
|
int taskNum = 0;
|
|
|
|
|
|
if (lowCode.equals("3")) {
|
|
|
num = peopleNum.getInt("sixFiveNum");
|
|
|
taskNum = peopleNum.getInt("sixFiveTaskNum");
|
|
|
} else if (lowCode.equals("1")) {
|
|
|
num = peopleNum.getInt("gxyNum");
|
|
|
taskNum = peopleNum.getInt("gxyTaskNum");
|
|
|
} else if (lowCode.equals("2")) {
|
|
|
num = peopleNum.getInt("tnbNum");
|
|
|
taskNum = peopleNum.getInt("tnbTaskNum");
|
|
|
}
|
|
|
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)){
|
|
|
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();
|
|
|
}
|
|
|
}
|
|
|
}
|