|
@ -981,16 +981,12 @@ public class DailyReportUploadService {
|
|
|
if (deptMap.get("doctorTotal")!=null){
|
|
|
doctorTotal = Integer.parseInt(deptMap.get("doctorTotal").toString());
|
|
|
//总人次
|
|
|
if (!day.equalsIgnoreCase("0")) {
|
|
|
total = doctorTotal * (Integer.parseInt(day)+1);
|
|
|
} else {
|
|
|
total = doctorTotal;
|
|
|
}
|
|
|
total = doctorTotal * (Integer.parseInt(day));
|
|
|
}
|
|
|
if (deptMap.get("yishangbaoTotal")!=null) {
|
|
|
yishangbaoTotal = Integer.parseInt(deptMap.get("yishangbaoTotal").toString());
|
|
|
}
|
|
|
weishangbaoTotal = total-yishangbaoTotal;
|
|
|
weishangbaoTotal = total-yishangbaoTotal>0?total-yishangbaoTotal:0;
|
|
|
if (deptMap.get("notVerified")!=null) {
|
|
|
notVerified = Integer.parseInt(deptMap.get("notVerified").toString());
|
|
|
}
|
|
@ -1582,11 +1578,7 @@ public class DailyReportUploadService {
|
|
|
}
|
|
|
if (StringUtils.isNoneBlank(doctorTotal)) {
|
|
|
//总人次
|
|
|
if (!day.equalsIgnoreCase("0")) {
|
|
|
total = Integer.parseInt(doctorTotal) * (Integer.parseInt(day)+1);
|
|
|
} else {
|
|
|
total = Integer.parseInt(doctorTotal);
|
|
|
}
|
|
|
total = Integer.parseInt(doctorTotal) * (Integer.parseInt(day));
|
|
|
}
|
|
|
Integer yishangbaoTotal = 0;
|
|
|
Integer weishangbaoTotal = 0;
|
|
@ -1602,7 +1594,7 @@ public class DailyReportUploadService {
|
|
|
}
|
|
|
}
|
|
|
//未上报
|
|
|
weishangbaoTotal = total - yishangbaoTotal;
|
|
|
weishangbaoTotal = total - yishangbaoTotal>0?total - yishangbaoTotal:0;
|
|
|
|
|
|
//上传总次数
|
|
|
Integer shangchuanTotal = 0;
|
|
@ -1746,11 +1738,7 @@ public class DailyReportUploadService {
|
|
|
|
|
|
Integer doctorTotal = jdbcTemplate.queryForObject(doctorSql,Integer.class);
|
|
|
|
|
|
if (!day.equalsIgnoreCase("0")) {
|
|
|
total = doctorTotal * (Integer.parseInt(day)+1);
|
|
|
} else {//当天
|
|
|
total = doctorTotal;
|
|
|
}
|
|
|
total = doctorTotal * (Integer.parseInt(day));
|
|
|
|
|
|
Integer yishangbaoTotal=0;//上传人数
|
|
|
Integer weishangbaoTotal=0;//未上报
|
|
@ -1778,7 +1766,7 @@ public class DailyReportUploadService {
|
|
|
|
|
|
yishangbaoTotal = jdbcTemplate.queryForObject(sql,Integer.class);
|
|
|
//未上报
|
|
|
weishangbaoTotal = total - yishangbaoTotal;
|
|
|
weishangbaoTotal = total - yishangbaoTotal>0?total - yishangbaoTotal:0;
|
|
|
|
|
|
|
|
|
String shangchuanTotalSql = "select COUNT(1) as \"total\" from base_doctor_daily_report_upload d where 1=1 ";
|
|
@ -2245,10 +2233,14 @@ public class DailyReportUploadService {
|
|
|
if (StringUtils.isNotBlank(endDate)){
|
|
|
updateTimeSql += " and up.report_date<='"+endDate+"' ";
|
|
|
}
|
|
|
String sqlList = " select i.id,CONCAT(i.title,'(',i.dept_name,')') title,i.content,i.state,i.begin_time beginTime,i.end_time endTime,i.create_user_name createUserName," +
|
|
|
" CAST((sum(IFNULL(de.actual_completion_hour,IFNULL(de.completion_hour,'0')))) as char ) as completionHour,count(distinct up.doctor_id) as doctorTotal " +
|
|
|
" from base_daily_report_item i LEFT JOIN base_daily_report_detail de on i.id = de.report_item_id " +
|
|
|
" LEFT JOIN base_doctor_daily_report_upload up on up.id = de.report_id "+updateTimeSql+" where i.del=1 ";
|
|
|
String sqlList = " select i.id,CONCAT(i.title,'(',i.dept_name,')') title,i.content,i.state,i.begin_time beginTime,i.end_time endTime, " +
|
|
|
" i.create_user_name createUserName,IFNULL(A.completionHour,'0') completionHour ,IFNULL(A.doctorTotal,0) doctorTotal " +
|
|
|
" from base_daily_report_item i LEFT JOIN( " +
|
|
|
" select de.report_item_id,CAST((sum(IFNULL(de.actual_completion_hour,IFNULL(de.completion_hour,'0')))) as char ) as completionHour, " +
|
|
|
" count(distinct up.doctor_id) as doctorTotal " +
|
|
|
" from base_daily_report_detail de Inner JOIN base_doctor_daily_report_upload up on up.id = de.report_id " +updateTimeSql+
|
|
|
" group by de.report_item_id " +
|
|
|
" )A on i.id = A.report_item_id where i.del=1 ";
|
|
|
String sqlCount = " select count(distinct i.id) from base_daily_report_item i where i.del=1 ";
|
|
|
if (StringUtils.isNotBlank(title)){
|
|
|
sqlCondition +=" and i.title like '%"+title+"%' ";
|
|
@ -2275,31 +2267,39 @@ public class DailyReportUploadService {
|
|
|
return PageEnvelop.getSuccessListWithPage("查询成功",itemDOS,page,size,count);
|
|
|
}
|
|
|
|
|
|
public List<Map<String,Object>> statisticReportItemById(String user,String item_id,Integer type) throws Exception {
|
|
|
public List<Map<String,Object>> statisticReportItemById(String user,String item_id,Integer type,String startDate,String endDate) throws Exception {
|
|
|
String sql = " select * from base_doctor_role where doctor_code='"+user+"' ";
|
|
|
List<Map<String,Object>> userRoles = jdbcTemplate.queryForList(sql);
|
|
|
if (userRoles.size()==0){
|
|
|
throw new Exception("您无权限操作");
|
|
|
}
|
|
|
String updateTimeSql = " ";
|
|
|
if (StringUtils.isNotBlank(startDate)){
|
|
|
updateTimeSql += " and up.report_date>='"+startDate+"' ";
|
|
|
}
|
|
|
if (StringUtils.isNotBlank(endDate)){
|
|
|
updateTimeSql += " and up.report_date<='"+endDate+"' ";
|
|
|
}
|
|
|
|
|
|
if(1==type){//天
|
|
|
sql = " select i.id,CONCAT(i.title,'(',i.dept_name,')') title,i.content,i.state,i.begin_time beginTime,i.end_time endTime,i.create_user_name createUserName, " +
|
|
|
" CAST((sum(IFNULL(de.actual_completion_hour,IFNULL(de.completion_hour,'0')))) as char ) as completionHour,DATE_FORMAT(de.create_time,'%Y-%m-%d') as 'time', " +
|
|
|
" count(distinct up.doctor_id) as doctorTotal from base_daily_report_item i LEFT JOIN base_daily_report_detail de " +
|
|
|
"on i.id = de.report_item_id INNER JOIN base_doctor_daily_report_upload up on up.id = de.report_id " +
|
|
|
"on i.id = de.report_item_id INNER JOIN base_doctor_daily_report_upload up on up.id = de.report_id " +updateTimeSql+
|
|
|
"where 1=1 and i.id='"+item_id+"' " +
|
|
|
"group by i.id,DATE_FORMAT(de.create_time,'%Y-%m-%d') order by time asc ";
|
|
|
}else if (2==type){//按周
|
|
|
sql = " select i.id,CONCAT(i.title,'(',i.dept_name,')') title,i.content,i.state,i.begin_time beginTime,i.end_time endTime,i.create_user_name createUserName, " +
|
|
|
" CAST((sum(IFNULL(de.actual_completion_hour,IFNULL(de.completion_hour,'0')))) as char ) as completionHour,DATE_FORMAT(de.create_time,'%Y-%m-%d') as 'time', " +
|
|
|
" count(distinct up.doctor_id) as doctorTotal from base_daily_report_item i LEFT JOIN base_daily_report_detail de " +
|
|
|
"on i.id = de.report_item_id INNER JOIN base_doctor_daily_report_upload up on up.id = de.report_id " +
|
|
|
"on i.id = de.report_item_id INNER JOIN base_doctor_daily_report_upload up on up.id = de.report_id " +updateTimeSql+
|
|
|
"where 1=1 and i.id='"+item_id+"' " +
|
|
|
"group by i.id,DATE_FORMAT(de.create_time,'%Y%v') order by time asc ";
|
|
|
}else if (3==type){//月
|
|
|
sql = " select i.id,CONCAT(i.title,'(',i.dept_name,')') title,i.content,i.state,i.begin_time beginTime,i.end_time endTime,i.create_user_name createUserName, " +
|
|
|
" CAST((sum(IFNULL(de.actual_completion_hour,IFNULL(de.completion_hour,'0')))) as char ) as completionHour,DATE_FORMAT(de.create_time,'%Y-%m') as 'time', " +
|
|
|
" count(distinct up.doctor_id) as doctorTotal from base_daily_report_item i LEFT JOIN base_daily_report_detail de " +
|
|
|
"on i.id = de.report_item_id INNER JOIN base_doctor_daily_report_upload up on up.id = de.report_id " +
|
|
|
"on i.id = de.report_item_id INNER JOIN base_doctor_daily_report_upload up on up.id = de.report_id " +updateTimeSql+
|
|
|
"where 1=1 and i.id='"+item_id+"' " +
|
|
|
"group by i.id,DATE_FORMAT(de.create_time,'%Y-%m') order by time asc ";
|
|
|
}else {
|
|
@ -2325,7 +2325,7 @@ public class DailyReportUploadService {
|
|
|
return list;
|
|
|
}
|
|
|
|
|
|
public List<Map<String,Object>> statisticReportItemMembersById(String user,String item_id,Integer type,String member) throws Exception {
|
|
|
public List<Map<String,Object>> statisticReportItemMembersById(String user,String item_id,Integer type,String member,String startDate,String endDate ) throws Exception {
|
|
|
String sql = " select * from base_doctor_role where doctor_code='"+user+"' ";
|
|
|
List<Map<String,Object>> userRoles = jdbcTemplate.queryForList(sql);
|
|
|
if (userRoles.size()==0){
|
|
@ -2335,6 +2335,14 @@ public class DailyReportUploadService {
|
|
|
if (StringUtils.isNotBlank(member)){
|
|
|
memberSql = " and up.doctor_id='"+member+"' ";
|
|
|
}
|
|
|
String updateTimeSql = " ";
|
|
|
if (StringUtils.isNotBlank(startDate)){
|
|
|
updateTimeSql += " and up.report_date>='"+startDate+"' ";
|
|
|
}
|
|
|
if (StringUtils.isNotBlank(endDate)){
|
|
|
updateTimeSql += " and up.report_date<='"+endDate+"' ";
|
|
|
}
|
|
|
|
|
|
String searchTimeFormat = "";
|
|
|
String uploadTimeFormat = "";
|
|
|
if(0==type){
|
|
@ -2342,7 +2350,7 @@ public class DailyReportUploadService {
|
|
|
" CAST((sum(IFNULL(de.actual_completion_hour,IFNULL(de.completion_hour,'0')))) as char ) as completionHour,DATE_FORMAT(de.create_time,'%Y-%m-%d') as 'time'," +
|
|
|
" DATE_FORMAT(de.create_time,'%Y-%m-%d') as 'searchTime' " +
|
|
|
"from base_daily_report_item i LEFT JOIN base_daily_report_detail de " +
|
|
|
"on i.id = de.report_item_id INNER JOIN base_doctor_daily_report_upload up on de.report_id = up.id " +
|
|
|
"on i.id = de.report_item_id INNER JOIN base_doctor_daily_report_upload up on de.report_id = up.id " +updateTimeSql+
|
|
|
"where 1=1 and i.id='"+item_id+"' " +memberSql+
|
|
|
"group by i.id,up.doctor_id order by completionHour desc ";
|
|
|
searchTimeFormat=" DATE_FORMAT(de.create_time,'%Y-%m-%d') ";
|
|
@ -2353,7 +2361,7 @@ public class DailyReportUploadService {
|
|
|
" CAST((sum(IFNULL(de.actual_completion_hour,IFNULL(de.completion_hour,'0')))) as char ) as completionHour,DATE_FORMAT(de.create_time,'%Y-%m-%d') as 'time', " +
|
|
|
"DATE_FORMAT(de.create_time,'%Y-%m-%d') as 'searchTime' " +
|
|
|
"from base_daily_report_item i LEFT JOIN base_daily_report_detail de " +
|
|
|
"on i.id = de.report_item_id INNER JOIN base_doctor_daily_report_upload up on de.report_id = up.id " +
|
|
|
"on i.id = de.report_item_id INNER JOIN base_doctor_daily_report_upload up on de.report_id = up.id " +updateTimeSql+
|
|
|
"where 1=1 and i.id='"+item_id+"' " +
|
|
|
"group by i.id,up.doctor_id order by time asc ";
|
|
|
searchTimeFormat=" DATE_FORMAT(de.create_time,'%Y-%m-%d') ";
|
|
@ -2363,7 +2371,7 @@ public class DailyReportUploadService {
|
|
|
" CAST((sum(IFNULL(de.actual_completion_hour,IFNULL(de.completion_hour,'0')))) as char ) as completionHour,DATE_FORMAT(de.create_time,'%Y-%m-%d') as 'time', " +
|
|
|
"DATE_FORMAT(de.create_time,'%Y%v') as 'searchTime' " +
|
|
|
"from base_daily_report_item i LEFT JOIN base_daily_report_detail de " +
|
|
|
"on i.id = de.report_item_id INNER JOIN base_doctor_daily_report_upload up on de.report_id = up.id " +
|
|
|
"on i.id = de.report_item_id INNER JOIN base_doctor_daily_report_upload up on de.report_id = up.id " +updateTimeSql+
|
|
|
"where 1=1 and i.id='"+item_id+"' " +memberSql+
|
|
|
"group by i.id,up.doctor_id order by time asc ";
|
|
|
searchTimeFormat=" DATE_FORMAT(de.create_time,'%Y%v') ";
|
|
@ -2373,7 +2381,7 @@ public class DailyReportUploadService {
|
|
|
" CAST((sum(IFNULL(de.actual_completion_hour,IFNULL(de.completion_hour,'0')))) as char ) as completionHour,DATE_FORMAT(de.create_time,'%Y-%m') as 'time', " +
|
|
|
"DATE_FORMAT(de.create_time,'%Y-%m') as 'searchTime' " +
|
|
|
"from base_daily_report_item i LEFT JOIN base_daily_report_detail de " +
|
|
|
"on i.id = de.report_item_id INNER JOIN base_doctor_daily_report_upload up on de.report_id = up.id " +
|
|
|
"on i.id = de.report_item_id INNER JOIN base_doctor_daily_report_upload up on de.report_id = up.id " +updateTimeSql+
|
|
|
"where 1=1 and i.id='"+item_id+"' " +memberSql+
|
|
|
"group by i.id,up.doctor_id order by time asc ";
|
|
|
searchTimeFormat=" DATE_FORMAT(de.create_time,'%Y-%m') ";
|
|
@ -2393,7 +2401,7 @@ public class DailyReportUploadService {
|
|
|
tmp.put("timeRange",getRangeDouble(completionHour,totalHour));
|
|
|
String doctorId = tmp.get("doctor_id").toString();
|
|
|
sql = " select up.doctor_name,"+uploadTimeFormat+" as report_date ,CAST((sum(IFNULL(de.actual_completion_hour,IFNULL(de.completion_hour,'0')))) as char ) as completionHour " +
|
|
|
" from base_daily_report_detail de INNER JOIN base_doctor_daily_report_upload up on de.report_id = up.id " +
|
|
|
" from base_daily_report_detail de INNER JOIN base_doctor_daily_report_upload up on de.report_id = up.id " +updateTimeSql+
|
|
|
"where de.report_item_id='"+item_id+"' and up.doctor_id='"+doctorId+"' " +
|
|
|
"GROUP BY "+searchTimeFormat+" ORDER BY report_date asc ";
|
|
|
List<Map<String,Object>> timeUseList = jdbcTemplate.queryForList(sql);
|