|
@ -346,6 +346,157 @@ public class StatisticsService {
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
public List<Map<String,Object>> serviceSituationDetail2(HttpServletRequest request){
|
|
|
String sql = "SELECT DISTINCT d.idcard,d.name,h.dept_code dept,h.dept_name deptName,0 collaborateNum,0 inviteNum" +
|
|
|
",0 replyNum,0 turnUpNum,0 turnDownNum from base_doctor_hospital h,base_doctor d " +
|
|
|
"WHERE h.del='1' and d.del='1' and h.doctor_code=d.id and d.idcard is not null and h.dept_name is not null order by h.dept_name";
|
|
|
List<Map<String,Object>> list = jdbcTemplate.queryForList(sql);
|
|
|
JSONObject jsonObject = wlyyBusinessService.commonGet(request,"serviceSituationDetail");
|
|
|
JSONArray jsonArray = null;
|
|
|
int collaborateNumTotal = 0;
|
|
|
int inviteNumTotal = 0;
|
|
|
int replyNumTotal = 0;
|
|
|
int turnUpNumTotal = 0;
|
|
|
int turnDownNumTotal = 0;
|
|
|
List<Map<String,Object>> listTmp = new ArrayList<>();
|
|
|
Map<String, List<Map<String,Object>>> deptMap = new HashMap<>();
|
|
|
if(jsonObject!=null&&jsonObject.getInteger("status")==200){
|
|
|
jsonArray = jsonObject.getJSONArray("list");
|
|
|
for (Map<String,Object> map:list){
|
|
|
String idcard1 = map.get("idcard")+"";
|
|
|
for (int i=0;i<jsonArray.size();i++){
|
|
|
JSONObject json = jsonArray.getJSONObject(i);
|
|
|
String idcard = json.getString("code");
|
|
|
int collaborateNum = json.getInteger("collaborateNum");
|
|
|
int inviteNum = json.getInteger("inviteNum");
|
|
|
int replyNum = json.getInteger("replyNum");
|
|
|
int turnUpNum = json.getInteger("turnUpNum");
|
|
|
int turnDownNum = json.getInteger("turnDownNum");
|
|
|
int total = collaborateNum + inviteNum + replyNum + turnUpNum + turnDownNum;
|
|
|
if(total==0){
|
|
|
jsonArray.remove(i);
|
|
|
break;
|
|
|
}
|
|
|
collaborateNumTotal += collaborateNum;
|
|
|
inviteNumTotal += inviteNum;
|
|
|
replyNumTotal += replyNum;
|
|
|
turnUpNumTotal += turnUpNum;
|
|
|
turnDownNumTotal += turnDownNum;
|
|
|
if(idcard1.equals(idcard)){
|
|
|
map.put("collaborateNum",collaborateNum);
|
|
|
map.put("inviteNum",inviteNum);
|
|
|
map.put("replyNum",replyNum);
|
|
|
map.put("turnUpNum",turnUpNum);
|
|
|
map.put("turnDownNum",turnDownNum);
|
|
|
map.put("replyRate",getRange(replyNum, inviteNum));
|
|
|
listTmp.add(map);
|
|
|
jsonArray.remove(i);
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
Map<String,Object> totalMap = new HashMap<>();
|
|
|
totalMap.put("dept","合计");
|
|
|
totalMap.put("name","-");
|
|
|
totalMap.put("collaborateNum",collaborateNumTotal);
|
|
|
totalMap.put("inviteNum",inviteNumTotal);
|
|
|
totalMap.put("replyNum",replyNumTotal);
|
|
|
totalMap.put("turnUpNum",turnUpNumTotal);
|
|
|
totalMap.put("turnDownNum",turnDownNumTotal);
|
|
|
totalMap.put("replyRate",getRange(replyNumTotal, inviteNumTotal));
|
|
|
|
|
|
List<Map<String,Object>> result = new ArrayList<>();
|
|
|
result.add(totalMap);
|
|
|
Map<String, List<Map<String,Object>>> resList = listTmp.stream().collect(Collectors.groupingBy(e -> e.get("deptName").toString()));
|
|
|
for (Map.Entry<String, List<Map<String,Object>>> entry:resList.entrySet()){
|
|
|
String key = entry.getKey();
|
|
|
int collaborateNumDept = 0;
|
|
|
int inviteNumDept = 0;
|
|
|
int replyNumDept = 0;
|
|
|
int turnUpNumDept = 0;
|
|
|
int turnDownNumDept = 0;
|
|
|
Map<String,Object> deptTmp = new HashMap<>();
|
|
|
List<Map<String,Object>> value = entry.getValue();
|
|
|
String dept = "";
|
|
|
for (Map<String,Object> map:value){
|
|
|
map.put("dept", key);
|
|
|
dept = map.get("dept")+"";
|
|
|
int collaborateNum = Integer.parseInt(map.get("collaborateNum")+"");
|
|
|
int inviteNum = Integer.parseInt(map.get("inviteNum")+"");
|
|
|
int replyNum = Integer.parseInt(map.get("replyNum")+"");
|
|
|
int turnUpNum = Integer.parseInt(map.get("turnUpNum")+"");
|
|
|
int turnDownNum = Integer.parseInt(map.get("turnDownNum")+"");
|
|
|
|
|
|
collaborateNumDept += collaborateNum;
|
|
|
inviteNumDept += inviteNum;
|
|
|
replyNumDept += replyNum;
|
|
|
turnUpNumDept += turnUpNum;
|
|
|
turnDownNumDept += turnDownNum;
|
|
|
}
|
|
|
deptTmp.put("dept",key);
|
|
|
deptTmp.put("name","-");
|
|
|
deptTmp.put("collaborateNum",collaborateNumDept);
|
|
|
deptTmp.put("inviteNum",inviteNumDept);
|
|
|
deptTmp.put("replyNum",replyNumDept);
|
|
|
deptTmp.put("turnUpNum",turnUpNumDept);
|
|
|
deptTmp.put("turnDownNum",turnDownNumDept);
|
|
|
deptTmp.put("replyRate",getRange(replyNumDept, inviteNumDept));
|
|
|
value.sort(Comparator.comparingInt(a->Integer.parseInt(a.get("replyNum")+"")));
|
|
|
result.add(deptTmp);
|
|
|
result.addAll(value);
|
|
|
}
|
|
|
List<Map<String,Object>> other = new ArrayList<>();
|
|
|
if(jsonArray!=null&&jsonArray.size()>0){
|
|
|
int collaborateNumOther = 0;
|
|
|
int inviteNumOther = 0;
|
|
|
int replyNumOther = 0;
|
|
|
int turnUpNumOther = 0;
|
|
|
int turnDownNumOther = 0;
|
|
|
for (int i=0;i<jsonArray.size();i++){
|
|
|
Map<String,Object> map = new HashMap<>();
|
|
|
JSONObject json = jsonArray.getJSONObject(i);
|
|
|
String name = json.getString("name");
|
|
|
int collaborateNum = json.getInteger("collaborateNum");
|
|
|
int inviteNum = json.getInteger("inviteNum");
|
|
|
int replyNum = json.getInteger("replyNum");
|
|
|
int turnUpNum = json.getInteger("turnUpNum");
|
|
|
int turnDownNum = json.getInteger("turnDownNum");
|
|
|
|
|
|
map.put("dept","其他");
|
|
|
map.put("name",name);
|
|
|
map.put("collaborateNum",collaborateNum);
|
|
|
map.put("inviteNum",inviteNum);
|
|
|
map.put("replyNum",replyNum);
|
|
|
map.put("turnUpNum",turnUpNum);
|
|
|
map.put("turnDownNum",turnDownNum);
|
|
|
map.put("replyRate",getRange(replyNum, inviteNum));
|
|
|
other.add(map);
|
|
|
|
|
|
collaborateNumOther += collaborateNum;
|
|
|
inviteNumOther += inviteNum;
|
|
|
replyNumOther += replyNum;
|
|
|
turnUpNumOther += turnUpNum;
|
|
|
turnDownNumOther += turnDownNum;
|
|
|
}
|
|
|
|
|
|
Map<String,Object> otherMap = new HashMap<>();
|
|
|
otherMap.put("dept","其他");
|
|
|
otherMap.put("name","-");
|
|
|
otherMap.put("collaborateNum",collaborateNumOther);
|
|
|
otherMap.put("inviteNum",inviteNumOther);
|
|
|
otherMap.put("replyNum",replyNumOther);
|
|
|
otherMap.put("turnUpNum",turnUpNumOther);
|
|
|
otherMap.put("turnDownNum",turnDownNumOther);
|
|
|
otherMap.put("replyRate",getRange(replyNumOther, inviteNumOther));
|
|
|
other.sort(Comparator.comparingInt(a->Integer.parseInt(a.get("replyNum")+"")));
|
|
|
result.add(otherMap);
|
|
|
result.addAll(other);
|
|
|
}
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 设备上传次数趋势
|
|
|
*/
|
|
@ -659,7 +810,7 @@ public class StatisticsService {
|
|
|
int uploadTotal = 0;
|
|
|
int uploadXt = 0;//
|
|
|
int uploadXy = 0;//
|
|
|
String uploadSql = "select type,count(id) num from wlyy_patient_health_index where 1=1 "+filterUpload+" group by type";
|
|
|
String uploadSql = "select type,count(id) num from wlyy_patient_health_index where del=1 "+filterUpload+" group by type";
|
|
|
List<Map<String,Object>> uploadList = jdbcTemplate.queryForList(uploadSql);
|
|
|
for (Map<String,Object> map:uploadList){
|
|
|
String type = map.get("type")+"";
|
|
@ -752,15 +903,16 @@ public class StatisticsService {
|
|
|
|
|
|
String sql = "select * from (SELECT d.code dept,d.`name` deptName,IFNULL(t1.xtNum,0) xtNum,IFNULL(t1.xyNum,0) xyNum " +
|
|
|
",IFNULL(t2.xtUseNum,0) xtUseNum,IFNULL(t2.xyUseNum,0) xyUseNum " +
|
|
|
",IFNULL(t3.xtBindNum,0) xtBindNum,IFNULL(t3.xyBindNum,0) xyBindNum from dict_hospital_dept d " +
|
|
|
"LEFT JOIN (SELECT d.dept,d.dept_name,COUNT(if(dm.category_code=1,1,null)) xtNum,COUNT(if(dm.category_code=2,1,null)) xyNum " +
|
|
|
",IFNULL(t3.xtBindNum,0) xtBindNum,IFNULL(t3.xyBindNum,0) xyBindNum from (SELECT code,name from dict_hospital_dept " +
|
|
|
" UNION all SELECT '' code,'' name) d " +
|
|
|
"LEFT JOIN (SELECT IFNULL(d.dept,'') dept,IFNULL(d.dept_name,'') dept_name,COUNT(if(dm.category_code=1,1,null)) xtNum,COUNT(if(dm.category_code=2,1,null)) xyNum " +
|
|
|
" from wlyy_devices d,dm_device dm " +
|
|
|
"WHERE d.category_code=dm.id " + filter +
|
|
|
"GROUP BY d.dept) t1 on d.code=t1.dept " +
|
|
|
"LEFT JOIN (SELECT dept,dept_name,COUNT(if(type=1,1,null)) xtUseNum,COUNT(if(type=2,1,null)) xyUseNum from " +
|
|
|
"LEFT JOIN (SELECT IFNULL(dept,'') dept,IFNULL(dept_name,'') dept_name,COUNT(if(type=1,1,null)) xtUseNum,COUNT(if(type=2,1,null)) xyUseNum from " +
|
|
|
"wlyy_patient_health_index where del=1 " + filterUse +
|
|
|
"GROUP BY dept) t2 on d.code=t2.dept " +
|
|
|
"LEFT JOIN (SELECT dept,dept_name,COUNT(if(category_code=1,1,null)) xtBindNum,COUNT(if(category_code=2,1,null)) xyBindNum " +
|
|
|
"LEFT JOIN (SELECT IFNULL(dept,'') dept,IFNULL(dept_name,'') dept_name,COUNT(if(category_code=1,1,null)) xtBindNum,COUNT(if(category_code=2,1,null)) xyBindNum " +
|
|
|
"from wlyy_patient_device where 1=1 " + filterBind+
|
|
|
"GROUP BY dept) t3 on d.code=t3.dept ) t " +
|
|
|
"WHERE (xtNum+xyNum+xtUseNum+xyUseNum+xtBindNum+xyBindNum)>0 ORDER BY "+sort+" desc";
|