|
@ -2045,6 +2045,8 @@ public class StatisticsService extends BaseService {
|
|
|
String totalSql = "SELECT " +
|
|
|
" COUNT(1) total " +
|
|
|
" FROM " +
|
|
|
" wlyy_admin_team_member m JOIN(" +
|
|
|
" SELECT d.id,t.create_time FROM " +
|
|
|
" " + imDataBaseName + ".Topics t, " +
|
|
|
" " + imDataBaseName + ".Participants p, " +
|
|
|
" " + imDataBaseName + ".Doctors d, " +
|
|
@ -2058,7 +2060,10 @@ public class StatisticsService extends BaseService {
|
|
|
" AND p.session_id = t.session_id " +
|
|
|
" AND c.admin_team_code =" + id +
|
|
|
" AND t.create_time >= '" + startDate + "' " +
|
|
|
" AND t.create_time <= '" + endDate + "'";
|
|
|
" AND t.create_time <= '" + endDate + "'"+
|
|
|
")c ON c.id = m.doctor_code " +
|
|
|
" WHERE " +
|
|
|
" m.team_id = " + id ;
|
|
|
List<Map<String, Object>> totalList = jdbcTemplate.queryForList(totalSql);
|
|
|
Long totalCount = 0L;
|
|
|
if (totalList != null && totalList.size() > 0) {
|
|
@ -2068,6 +2073,8 @@ public class StatisticsService extends BaseService {
|
|
|
String noReySql = "SELECT " +
|
|
|
" COUNT(1) noRey " +
|
|
|
" FROM " +
|
|
|
" wlyy_admin_team_member m JOIN(" +
|
|
|
" SELECT d.id,t.create_time FROM " +
|
|
|
" " + imDataBaseName + ".Topics t, " +
|
|
|
" " + imDataBaseName + ".Participants p, " +
|
|
|
" " + imDataBaseName + ".Doctors d, " +
|
|
@ -2083,7 +2090,10 @@ public class StatisticsService extends BaseService {
|
|
|
" AND p.session_id = t.session_id " +
|
|
|
" AND c.admin_team_code =" + id +
|
|
|
" AND t.create_time >= '" + startDate + "' " +
|
|
|
" AND t.create_time <= '" + endDate + "'";
|
|
|
" AND t.create_time <= '" + endDate + "'"+
|
|
|
")c ON c.id = m.doctor_code " +
|
|
|
" WHERE " +
|
|
|
" m.team_id = " + id;
|
|
|
List<Map<String, Object>> noReyList = jdbcTemplate.queryForList(noReySql);
|
|
|
Long noReyCount = 0L;
|
|
|
if (noReyList != null && noReyList.size() > 0) {
|
|
@ -2327,12 +2337,14 @@ public class StatisticsService extends BaseService {
|
|
|
*/
|
|
|
public Map<String, Object> getConsultByteam(Long id, String startDate, String endDate) {
|
|
|
String imDataBaseName = im_dataBase_name;
|
|
|
// startDate = startDate + " 00:00:00";
|
|
|
// endDate = endDate + " 23:59:59";
|
|
|
startDate = startDate + " 00:00:00";
|
|
|
endDate = endDate + " 23:59:59";
|
|
|
//咨询量
|
|
|
String consult_sql = "SELECT " +
|
|
|
" COUNT(1) consultCount " +
|
|
|
" FROM " +
|
|
|
" wlyy_admin_team_member m JOIN(" +
|
|
|
" SELECT d.id,t.create_time FROM " +
|
|
|
" " + imDataBaseName + ".Topics t, " +
|
|
|
" " + imDataBaseName + ".Participants p, " +
|
|
|
" " + imDataBaseName + ".Doctors d, " +
|
|
@ -2346,7 +2358,10 @@ public class StatisticsService extends BaseService {
|
|
|
" AND p.session_id = t.session_id " +
|
|
|
" AND c.admin_team_code =" + id +
|
|
|
" AND t.create_time >= '" + startDate + "' " +
|
|
|
" AND t.create_time <= '" + endDate + "'";
|
|
|
" AND t.create_time <= '" + endDate + "'" +
|
|
|
")c ON c.id = m.doctor_code " +
|
|
|
" WHERE " +
|
|
|
" m.team_id = " + id;
|
|
|
//获取咨詢數
|
|
|
Map<String, Object> consultCout = jdbcTemplate.queryForMap(consult_sql);
|
|
|
if (consultCout.get("consultCount") == null) {
|
|
@ -2483,54 +2498,66 @@ public class StatisticsService extends BaseService {
|
|
|
String sql;
|
|
|
String totalSql;
|
|
|
startDate = startDate + " 00:00:00";
|
|
|
endDate = endDate + " 00:00:00";
|
|
|
endDate = endDate + " 23:59:59";
|
|
|
if ("0".equals(type)) {
|
|
|
//按周统计
|
|
|
sql = "SELECT " +
|
|
|
" left(t.create_time,10) AS dateNo, COUNT(1) AS noRely " +
|
|
|
sql = "SELECT" +
|
|
|
" left(c.create_time,10) AS dateNo, COUNT(1) AS noRely " +
|
|
|
" FROM " +
|
|
|
" wlyy_admin_team_member m JOIN(" +
|
|
|
" SELECT d.id,t.create_time FROM " +
|
|
|
" " + imDataBaseName + ".Topics t, " +
|
|
|
" " + imDataBaseName + ".Participants p, " +
|
|
|
" " + imDataBaseName + ".Doctors d, " +
|
|
|
" Wlyy_Consult_Team c, " +
|
|
|
" " + imDataBaseName + ".Patients s " +
|
|
|
" WHERE " +
|
|
|
" WHERE " +
|
|
|
" d.id = p.participant_id " +
|
|
|
" AND c.consult = t.id " +
|
|
|
" AND c.patient = s.id " +
|
|
|
" AND c.type <> 8" +
|
|
|
" AND t. STATUS <> 10 " +
|
|
|
" AND t.`reply` = 0 " +
|
|
|
" AND p.session_id = t.session_id " +
|
|
|
" AND c.admin_team_code = " + teamCode +
|
|
|
" AND t.create_time >= '" + startDate + "' " +
|
|
|
" AND t.create_time <= '" + endDate + "' " +
|
|
|
" AND c.consult = t.id " +
|
|
|
" AND c.patient = s.id " +
|
|
|
" AND p.session_id = t.session_id " +
|
|
|
" AND c.type <> 8" +
|
|
|
" AND c.admin_team_code = " + teamCode +
|
|
|
" AND t. STATUS <> 10 " +
|
|
|
" AND t.`reply` = 0 " +
|
|
|
" AND t.create_time >= '" + startDate + "' " +
|
|
|
" AND t.create_time <= '" + endDate + "' " +
|
|
|
")c ON c.id = m.doctor_code " +
|
|
|
" WHERE " +
|
|
|
" m.team_id = " + teamCode +
|
|
|
" GROUP BY dateNo";
|
|
|
|
|
|
totalSql = "SELECT " +
|
|
|
" left(t.create_time,10) AS dateNo, COUNT(1) total " +
|
|
|
totalSql = "SELECT" +
|
|
|
" left(c.create_time,10) AS dateNo, COUNT(1) total " +
|
|
|
" FROM " +
|
|
|
" wlyy_admin_team_member m JOIN(" +
|
|
|
" SELECT d.id,t.create_time FROM " +
|
|
|
" " + imDataBaseName + ".Topics t, " +
|
|
|
" " + imDataBaseName + ".Participants p, " +
|
|
|
" " + imDataBaseName + ".Doctors d, " +
|
|
|
" Wlyy_Consult_Team c, " +
|
|
|
" " + imDataBaseName + ".Patients s " +
|
|
|
" WHERE " +
|
|
|
" WHERE " +
|
|
|
" d.id = p.participant_id " +
|
|
|
" AND c.consult = t.id " +
|
|
|
" AND c.patient = s.id " +
|
|
|
" AND p.session_id = t.session_id " +
|
|
|
" AND c.type <> 8" +
|
|
|
" AND c.admin_team_code = " + teamCode +
|
|
|
" AND t.create_time >= '" + startDate + "' " +
|
|
|
" AND t.create_time <= '" + endDate + "' " +
|
|
|
" AND c.consult = t.id " +
|
|
|
" AND c.patient = s.id " +
|
|
|
" AND p.session_id = t.session_id " +
|
|
|
" AND c.type <> 8" +
|
|
|
" AND c.admin_team_code = " + teamCode +
|
|
|
" AND t.create_time >= '" + startDate + "' " +
|
|
|
" AND t.create_time <= '" + endDate + "' " +
|
|
|
")c ON c.id = m.doctor_code " +
|
|
|
" WHERE " +
|
|
|
" m.team_id = " + teamCode +
|
|
|
" GROUP BY dateNo";
|
|
|
} else {
|
|
|
//按月统计
|
|
|
sql = "SELECT " +
|
|
|
" (DATE_FORMAT(t.create_time, '%v') - DATE_FORMAT('" + startDate + "', '%v') + 1) AS weekOfMonth, " +
|
|
|
" COUNT(1) AS noRely " +
|
|
|
" FROM " +
|
|
|
sql = "SELECT" +
|
|
|
" (DATE_FORMAT(c.create_time, '%v')- DATE_FORMAT('2017-12-01 00:00:00', '%v')+ 1)AS weekOfMonth, " +
|
|
|
" COUNT(1)AS noRely " +
|
|
|
" FROM " +
|
|
|
" wlyy_admin_team_member m JOIN(" +
|
|
|
" SELECT d.id,t.create_time FROM " +
|
|
|
" " + imDataBaseName + ".Topics t, " +
|
|
|
" " + imDataBaseName + ".Participants p, " +
|
|
|
" " + imDataBaseName + ".Doctors d, " +
|
|
@ -2547,11 +2574,17 @@ public class StatisticsService extends BaseService {
|
|
|
" AND t.`reply` = 0 " +
|
|
|
" AND t.create_time >= '" + startDate + "' " +
|
|
|
" AND t.create_time <= '" + endDate + "' " +
|
|
|
" GROUP BY weekOfMonth";
|
|
|
totalSql = "SELECT " +
|
|
|
" (DATE_FORMAT(t.create_time, '%v') - DATE_FORMAT('" + startDate + "', '%v') + 1) AS weekOfMonth, " +
|
|
|
" COUNT(1) AS total " +
|
|
|
" FROM " +
|
|
|
")c ON c.id = m.doctor_code " +
|
|
|
" WHERE " +
|
|
|
" m.team_id = " + teamCode +
|
|
|
" GROUP BY weekOfMonth";
|
|
|
|
|
|
totalSql="SELECT" +
|
|
|
" (DATE_FORMAT(c.create_time, '%v')- DATE_FORMAT('2017-12-01 00:00:00', '%v')+ 1)AS weekOfMonth, " +
|
|
|
" COUNT(1)AS total " +
|
|
|
" FROM " +
|
|
|
" wlyy_admin_team_member m JOIN(" +
|
|
|
" SELECT d.id,t.create_time FROM " +
|
|
|
" " + imDataBaseName + ".Topics t, " +
|
|
|
" " + imDataBaseName + ".Participants p, " +
|
|
|
" " + imDataBaseName + ".Doctors d, " +
|
|
@ -2566,7 +2599,10 @@ public class StatisticsService extends BaseService {
|
|
|
" AND c.admin_team_code = " + teamCode +
|
|
|
" AND t.create_time >= '" + startDate + "' " +
|
|
|
" AND t.create_time <= '" + endDate + "' " +
|
|
|
" GROUP BY weekOfMonth";
|
|
|
")c ON c.id = m.doctor_code " +
|
|
|
" WHERE " +
|
|
|
" m.team_id = " + teamCode +
|
|
|
" GROUP BY weekOfMonth";
|
|
|
}
|
|
|
|
|
|
List<Map<String, Object>> noReyList = jdbcTemplate.queryForList(sql);
|
|
@ -3044,8 +3080,10 @@ public class StatisticsService extends BaseService {
|
|
|
}
|
|
|
|
|
|
public JSONObject getTeamDoctorFollowupLine(String teamCode, String startDate, String endDate, String type, String doctor) {
|
|
|
startDate = startDate + " 00:00:00";
|
|
|
endDate = endDate + " 00:00:00";
|
|
|
String startDateStr = DateUtil.getNextDay(startDate,-1)+" 17:00:00";
|
|
|
endDate = endDate + " 17:00:00";
|
|
|
List<Map<String, Object>> totalList = new ArrayList<>();
|
|
|
List<Map<String, Object>> planList = new ArrayList<>();
|
|
|
String totalSQL;
|
|
|
String planSQL;
|
|
|
if ("0".equals(type)) {
|
|
@ -3057,7 +3095,7 @@ public class StatisticsService extends BaseService {
|
|
|
" WHERE " +
|
|
|
" w.admin_team_code =" + teamCode +
|
|
|
" AND w.doctor_code ='" + doctor + "'" +
|
|
|
" AND w.create_time >= '" + startDate + "' " +
|
|
|
" AND w.create_time >= '" + startDateStr + "' " +
|
|
|
" AND w.create_time <= '" + endDate + "' " +
|
|
|
" GROUP BY dateNo";
|
|
|
|
|
@ -3068,40 +3106,41 @@ public class StatisticsService extends BaseService {
|
|
|
" WHERE " +
|
|
|
" w.admin_team_code =" + teamCode +
|
|
|
" AND w.doctor_code ='" + doctor + "'" +
|
|
|
" AND w.create_time >= '" + startDate + "' " +
|
|
|
" AND w.create_time >= '" + startDateStr + "' " +
|
|
|
" AND w.create_time <= '" + endDate + "' " +
|
|
|
" AND w.status ='2'" +
|
|
|
" GROUP BY dateNo";
|
|
|
totalList = jdbcTemplate.queryForList(totalSQL);
|
|
|
planList = jdbcTemplate.queryForList(planSQL);
|
|
|
} else {
|
|
|
//按月
|
|
|
totalSQL = "SELECT " +
|
|
|
" ( " +
|
|
|
" DATE_FORMAT(w.create_time, '%v') - DATE_FORMAT('" + DateUtil.getFristDayOfMonth() + "', '%v') + 1 " +
|
|
|
" DATE_FORMAT(w.create_time, '%v') - DATE_FORMAT('" + startDateStr + "', '%v') + 1 " +
|
|
|
" ) AS weekOfMonth,COUNT(1) AS followupCount " +
|
|
|
" FROM " +
|
|
|
" wlyy_followup w " +
|
|
|
" WHERE " +
|
|
|
" w.admin_team_code =" + teamCode +
|
|
|
" AND w.doctor_code ='" + doctor + "'" +
|
|
|
" AND w.create_time >= '" + startDate + "' " +
|
|
|
" AND w.create_time <= '" + endDate + "' " +
|
|
|
" GROUP BY weekOfMonth";
|
|
|
" AND w.create_time >= '?1' " +
|
|
|
" AND w.create_time <= '?2' ";
|
|
|
planSQL = "SELECT " +
|
|
|
" ( " +
|
|
|
" DATE_FORMAT(w.create_time, '%v') - DATE_FORMAT('" + DateUtil.getFristDayOfMonth() + "', '%v') + 1 " +
|
|
|
" DATE_FORMAT(w.create_time, '%v') - DATE_FORMAT('" + startDateStr + "', '%v') + 1 " +
|
|
|
" ) AS weekOfMonth,COUNT(1) AS planCount " +
|
|
|
" FROM " +
|
|
|
" wlyy_followup w " +
|
|
|
" WHERE " +
|
|
|
" w.admin_team_code =" + teamCode +
|
|
|
" AND w.doctor_code ='" + doctor + "'" +
|
|
|
" AND w.create_time >= '" + startDate + "' " +
|
|
|
" AND w.create_time <= '" + endDate + "' " +
|
|
|
" AND w.status ='2'" +
|
|
|
" GROUP BY weekOfMonth";
|
|
|
" AND w.create_time >= '?1' " +
|
|
|
" AND w.create_time <= '?2' " +
|
|
|
" AND w.status ='2'" ;
|
|
|
totalList = getGZBGDataMonthLineForEs(startDate,endDate,startDateStr,totalSQL);
|
|
|
planList = getGZBGDataMonthLineForEs(startDate,endDate,startDateStr,planSQL);
|
|
|
}
|
|
|
List<Map<String, Object>> totalList = jdbcTemplate.queryForList(totalSQL);
|
|
|
List<Map<String, Object>> planList = jdbcTemplate.queryForList(planSQL);
|
|
|
|
|
|
JSONObject rs = new JSONObject();
|
|
|
rs.put("totalLine", totalList);
|
|
|
rs.put("planLine", planList);
|
|
@ -3170,22 +3209,9 @@ public class StatisticsService extends BaseService {
|
|
|
}
|
|
|
|
|
|
public JSONArray getDoctorTeamFolList(String startDate, String endDate, String teamCode, String sort, String sortType) {
|
|
|
//如果是本月第一天则开始时间为上个月最后一天的下午五点
|
|
|
Calendar cal = Calendar.getInstance();
|
|
|
cal.setTime(DateUtil.strToDate(startDate,"yyyy-MM-dd"));
|
|
|
boolean flag = DateUtil.checkFristDayOfDateMonth(cal);
|
|
|
if (flag){
|
|
|
startDate = DateUtil.getNextDay(startDate,-1)+" 17:00:00";
|
|
|
}else{
|
|
|
startDate = startDate + " 00:00:00";
|
|
|
}
|
|
|
//如果开始时间是当月的最后一天,则到当天的下午五点
|
|
|
String endStr = DateUtil.getLastDayOfMonthThisDate(DateUtil.strToDate(startDate,"yyyy-MM-dd"));
|
|
|
if (endStr.equals(endDate)){
|
|
|
endDate = endDate + " 17:00:00";
|
|
|
}else{
|
|
|
endDate = endDate + " 00:00:00";
|
|
|
}
|
|
|
startDate = DateUtil.getNextDay(startDate,-1)+" 17:00:00";
|
|
|
endDate = endDate + " 17:00:00";
|
|
|
|
|
|
String totalSQL = "SELECT " +
|
|
|
" IFNULL(c.followupCount,0) AS followupCount, " +
|
|
|
" d.`code` AS doctorCode, " +
|
|
@ -3391,8 +3417,9 @@ public class StatisticsService extends BaseService {
|
|
|
}
|
|
|
|
|
|
public JSONObject getTeamDoctorFolTitle(String teamCode, String doctor, String startDate, String endDate) {
|
|
|
startDate = startDate + " 00:00:00";
|
|
|
endDate = endDate + " 00:00:00";
|
|
|
startDate = DateUtil.getNextDay(startDate,-1)+" 17:00:00";
|
|
|
endDate = endDate + " 17:00:00";
|
|
|
|
|
|
String totalSql = "SELECT " +
|
|
|
" COUNT(1) AS followupCount " +
|
|
|
" FROM " +
|
|
@ -3478,9 +3505,10 @@ public class StatisticsService extends BaseService {
|
|
|
}
|
|
|
|
|
|
public JSONArray getTeamDoctorResLine(String teamCode, String startDate, String endDate, String type, String doctor) {
|
|
|
startDate = startDate + " 00:00:00";
|
|
|
endDate = endDate + " 00:00:00";
|
|
|
String startDateStr = DateUtil.getNextDay(startDate,-1)+" 17:00:00";
|
|
|
endDate = endDate + " 17:00:00";
|
|
|
String totalSql;
|
|
|
List<Map<String, Object>> resultList = new ArrayList<>();
|
|
|
if ("0".equals(type)) {
|
|
|
//查周
|
|
|
totalSql = "SELECT " +
|
|
@ -3491,45 +3519,32 @@ public class StatisticsService extends BaseService {
|
|
|
" w.admin_team_code = " + teamCode +
|
|
|
" AND w.doctor = '" + doctor + "'" +
|
|
|
" AND w.czrq <= '" + endDate + "' " +
|
|
|
" AND w.czrq >= '" + startDate + "' " +
|
|
|
" AND w.czrq >= '" + startDateStr + "' " +
|
|
|
" GROUP BY dateNo";
|
|
|
resultList = jdbcTemplate.queryForList(totalSql);
|
|
|
} else {
|
|
|
//查月
|
|
|
//查月份
|
|
|
totalSql = "SELECT " +
|
|
|
" ( " +
|
|
|
" DATE_FORMAT(w.czrq, '%v') - DATE_FORMAT('" + startDate + "', '%v') + 1 " +
|
|
|
" ( " +
|
|
|
" DATE_FORMAT(w.czrq, '%v') - DATE_FORMAT('" + startDateStr + "', '%v') + 1 " +
|
|
|
" ) AS weekOfMonth,COUNT(1) AS reservationCount " +
|
|
|
" FROM " +
|
|
|
" wlyy_patient_reservation w " +
|
|
|
" WHERE " +
|
|
|
" w.admin_team_code = " + teamCode +
|
|
|
" AND w.doctor = '" + doctor + "'" +
|
|
|
" AND w.czrq <= '" + endDate + "' " +
|
|
|
" AND w.czrq >= '" + startDate + "' " +
|
|
|
" GROUP BY weekOfMonth";
|
|
|
" AND w.czrq >= '?1' "+
|
|
|
" AND w.czrq <= '?2' " ;
|
|
|
resultList = getGZBGDataMonthLineForEs(startDate,endDate,startDateStr,totalSql);
|
|
|
}
|
|
|
|
|
|
List<Map<String, Object>> list = jdbcTemplate.queryForList(totalSql);
|
|
|
return new JSONArray(list);
|
|
|
return new JSONArray(resultList);
|
|
|
}
|
|
|
|
|
|
public JSONArray getTeamDoctorResList(String teamCode, String startDate, String endDate, String sort, String sortType) {
|
|
|
//如果是本月第一天则开始时间为上个月最后一天的下午五点
|
|
|
Calendar cal = Calendar.getInstance();
|
|
|
cal.setTime(DateUtil.strToDate(startDate,"yyyy-MM-dd"));
|
|
|
boolean flag = DateUtil.checkFristDayOfDateMonth(cal);
|
|
|
if (flag){
|
|
|
startDate = DateUtil.getNextDay(startDate,-1)+" 17:00:00";
|
|
|
}else{
|
|
|
startDate = startDate + " 00:00:00";
|
|
|
}
|
|
|
//如果开始时间是当月的最后一天,则到当天的下午五点
|
|
|
String endStr = DateUtil.getLastDayOfMonthThisDate(DateUtil.strToDate(startDate,"yyyy-MM-dd"));
|
|
|
if (endStr.equals(endDate)){
|
|
|
endDate = endDate + " 17:00:00";
|
|
|
}else{
|
|
|
endDate = endDate + " 00:00:00";
|
|
|
}
|
|
|
startDate = DateUtil.getNextDay(startDate,-1)+" 17:00:00";
|
|
|
endDate = endDate + " 17:00:00";
|
|
|
|
|
|
String totalSql = "SELECT " +
|
|
|
" IFNULL(c.reservationCount,0) AS reservationCount, " +
|
|
|
" d.`code` AS doctorCode, " +
|
|
@ -3638,8 +3653,9 @@ public class StatisticsService extends BaseService {
|
|
|
}
|
|
|
|
|
|
public JSONObject getTeamDoctorResTitle(String teamCode, String doctor, String startDate, String endDate) {
|
|
|
startDate = startDate + " 00:00:00";
|
|
|
endDate = endDate + " 00:00:00";
|
|
|
startDate = DateUtil.getNextDay(startDate,-1)+" 17:00:00";
|
|
|
endDate = endDate + " 17:00:00";
|
|
|
|
|
|
String totalSQL = "SELECT " +
|
|
|
" COUNT(1) AS reservationCount " +
|
|
|
" FROM " +
|
|
@ -3715,9 +3731,23 @@ public class StatisticsService extends BaseService {
|
|
|
}
|
|
|
|
|
|
public JSONArray getTeamDoctorGuidLine(String teamCode, String startDate, String endDate, String type, String doctor) {
|
|
|
//如果开始时间是当月的最后一天,则到当天的下午五点
|
|
|
String endStr = DateUtil.getLastDayOfMonthThisDate(DateUtil.strToDate(startDate,"yyyy-MM-dd"));
|
|
|
if (endStr.equals(endDate)){
|
|
|
endDate = endDate + " 17:00:00";
|
|
|
}else{
|
|
|
endDate = endDate + " 23:59:59";
|
|
|
}
|
|
|
//如果是本月第一天则开始时间为上个月最后一天的下午五点
|
|
|
Calendar cal = Calendar.getInstance();
|
|
|
cal.setTime(DateUtil.strToDate(startDate,"yyyy-MM-dd"));
|
|
|
boolean flag = DateUtil.checkFristDayOfDateMonth(cal);
|
|
|
if (flag){
|
|
|
startDate = DateUtil.getNextDay(startDate,-1)+" 17:00:00";
|
|
|
}else{
|
|
|
startDate = startDate + " 00:00:00";
|
|
|
}
|
|
|
|
|
|
startDate = startDate + " 00:00:00";
|
|
|
endDate = endDate + " 00:00:00";
|
|
|
String SQL;
|
|
|
if ("0".equals(type)) {
|
|
|
//按周统计
|
|
@ -3753,6 +3783,13 @@ public class StatisticsService extends BaseService {
|
|
|
}
|
|
|
|
|
|
public JSONArray getTeamGuidList(String teamCode, String startDate, String endDate, String sort, String sortType) {
|
|
|
//如果开始时间是当月的最后一天,则到当天的下午五点
|
|
|
String endStr = DateUtil.getLastDayOfMonthThisDate(DateUtil.strToDate(startDate,"yyyy-MM-dd"));
|
|
|
if (endStr.equals(endDate)){
|
|
|
endDate = endDate + " 17:00:00";
|
|
|
}else{
|
|
|
endDate = endDate + " 23:59:59";
|
|
|
}
|
|
|
//如果是本月第一天则开始时间为上个月最后一天的下午五点
|
|
|
Calendar cal = Calendar.getInstance();
|
|
|
cal.setTime(DateUtil.strToDate(startDate,"yyyy-MM-dd"));
|
|
@ -3762,13 +3799,7 @@ public class StatisticsService extends BaseService {
|
|
|
}else{
|
|
|
startDate = startDate + " 00:00:00";
|
|
|
}
|
|
|
//如果开始时间是当月的最后一天,则到当天的下午五点
|
|
|
String endStr = DateUtil.getLastDayOfMonthThisDate(DateUtil.strToDate(startDate,"yyyy-MM-dd"));
|
|
|
if (endStr.equals(endDate)){
|
|
|
endDate = endDate + " 17:00:00";
|
|
|
}else{
|
|
|
endDate = endDate + " 00:00:00";
|
|
|
}
|
|
|
|
|
|
String totalSql = "SELECT " +
|
|
|
" IFNULL(c.guidanceCount,0) AS guidanceCount, " +
|
|
|
" d.`code` AS doctorCode, " +
|
|
@ -3877,8 +3908,23 @@ public class StatisticsService extends BaseService {
|
|
|
}
|
|
|
|
|
|
public JSONObject getTeamDoctorGuiTitle(String teamCode, String doctor, String startDate, String endDate) {
|
|
|
startDate = startDate + " 00:00:00";
|
|
|
endDate = endDate + " 00:00:00";
|
|
|
//如果开始时间是当月的最后一天,则到当天的下午五点
|
|
|
String endStr = DateUtil.getLastDayOfMonthThisDate(DateUtil.strToDate(startDate,"yyyy-MM-dd"));
|
|
|
if (endStr.equals(endDate)){
|
|
|
endDate = endDate + " 17:00:00";
|
|
|
}else{
|
|
|
endDate = endDate + " 23:59:59";
|
|
|
}
|
|
|
//如果是本月第一天则开始时间为上个月最后一天的下午五点
|
|
|
Calendar cal = Calendar.getInstance();
|
|
|
cal.setTime(DateUtil.strToDate(startDate,"yyyy-MM-dd"));
|
|
|
boolean flag = DateUtil.checkFristDayOfDateMonth(cal);
|
|
|
if (flag){
|
|
|
startDate = DateUtil.getNextDay(startDate,-1)+" 17:00:00";
|
|
|
}else{
|
|
|
startDate = startDate + " 00:00:00";
|
|
|
}
|
|
|
|
|
|
String totalSQL = "SELECT " +
|
|
|
" COUNT(1) AS guidanceCount " +
|
|
|
" FROM " +
|
|
@ -3951,8 +3997,23 @@ public class StatisticsService extends BaseService {
|
|
|
}
|
|
|
|
|
|
public JSONArray getTeamDoctorEduLine(String teamCode, String startDate, String endDate, String type, String doctor) {
|
|
|
startDate = startDate + " 00:00:00";
|
|
|
endDate = endDate + " 00:00:00";
|
|
|
//如果开始时间是当月的最后一天,则到当天的下午五点
|
|
|
String endStr = DateUtil.getLastDayOfMonthThisDate(DateUtil.strToDate(startDate,"yyyy-MM-dd"));
|
|
|
if (endStr.equals(endDate)){
|
|
|
endDate = endDate + " 17:00:00";
|
|
|
}else{
|
|
|
endDate = endDate + " 23:59:59";
|
|
|
}
|
|
|
//如果是本月第一天则开始时间为上个月最后一天的下午五点
|
|
|
Calendar cal = Calendar.getInstance();
|
|
|
cal.setTime(DateUtil.strToDate(startDate,"yyyy-MM-dd"));
|
|
|
boolean flag = DateUtil.checkFristDayOfDateMonth(cal);
|
|
|
if (flag){
|
|
|
startDate = DateUtil.getNextDay(startDate,-1)+" 17:00:00";
|
|
|
}else{
|
|
|
startDate = startDate + " 00:00:00";
|
|
|
}
|
|
|
|
|
|
String sql;
|
|
|
|
|
|
if ("0".equals(type)) {
|
|
@ -3986,6 +4047,13 @@ public class StatisticsService extends BaseService {
|
|
|
}
|
|
|
|
|
|
public JSONArray getTeamEduList(String teamCode, String startDate, String endDate, String sort, String sortType) {
|
|
|
//如果开始时间是当月的最后一天,则到当天的下午五点
|
|
|
String endStr = DateUtil.getLastDayOfMonthThisDate(DateUtil.strToDate(startDate,"yyyy-MM-dd"));
|
|
|
if (endStr.equals(endDate)){
|
|
|
endDate = endDate + " 17:00:00";
|
|
|
}else{
|
|
|
endDate = endDate + " 23:59:59";
|
|
|
}
|
|
|
//如果是本月第一天则开始时间为上个月最后一天的下午五点
|
|
|
Calendar cal = Calendar.getInstance();
|
|
|
cal.setTime(DateUtil.strToDate(startDate,"yyyy-MM-dd"));
|
|
@ -3995,13 +4063,7 @@ public class StatisticsService extends BaseService {
|
|
|
}else{
|
|
|
startDate = startDate + " 00:00:00";
|
|
|
}
|
|
|
//如果开始时间是当月的最后一天,则到当天的下午五点
|
|
|
String endStr = DateUtil.getLastDayOfMonthThisDate(DateUtil.strToDate(startDate,"yyyy-MM-dd"));
|
|
|
if (endStr.equals(endDate)){
|
|
|
endDate = endDate + " 17:00:00";
|
|
|
}else{
|
|
|
endDate = endDate + " 00:00:00";
|
|
|
}
|
|
|
|
|
|
String totalSql = "SELECT " +
|
|
|
" IFNULL(c.articleCount,0) AS articleCount, " +
|
|
|
" IFNULL(c.batchno,0) AS batchno, " +
|
|
@ -4137,8 +4199,23 @@ public class StatisticsService extends BaseService {
|
|
|
}
|
|
|
|
|
|
public JSONObject getTeamDoctorEduTitle(String teamCode, String startDate, String endDate, String doctor) {
|
|
|
startDate = startDate + " 00:00:00";
|
|
|
endDate = endDate + " 00:00:00";
|
|
|
//如果开始时间是当月的最后一天,则到当天的下午五点
|
|
|
String endStr = DateUtil.getLastDayOfMonthThisDate(DateUtil.strToDate(startDate,"yyyy-MM-dd"));
|
|
|
if (endStr.equals(endDate)){
|
|
|
endDate = endDate + " 17:00:00";
|
|
|
}else{
|
|
|
endDate = endDate + " 23:59:59";
|
|
|
}
|
|
|
//如果是本月第一天则开始时间为上个月最后一天的下午五点
|
|
|
Calendar cal = Calendar.getInstance();
|
|
|
cal.setTime(DateUtil.strToDate(startDate,"yyyy-MM-dd"));
|
|
|
boolean flag = DateUtil.checkFristDayOfDateMonth(cal);
|
|
|
if (flag){
|
|
|
startDate = DateUtil.getNextDay(startDate,-1)+" 17:00:00";
|
|
|
}else{
|
|
|
startDate = startDate + " 00:00:00";
|
|
|
}
|
|
|
|
|
|
String totalSql = "SELECT " +
|
|
|
" COUNT(1) AS articleCount, " +
|
|
|
" COUNT(DISTINCT w.batch_no) batchno " +
|
|
@ -4157,8 +4234,7 @@ public class StatisticsService extends BaseService {
|
|
|
" w.admin_team_code =" + teamCode +
|
|
|
" AND w.doctor ='" + doctor + "'" +
|
|
|
" AND w.czrq <= '" + endDate + "' " +
|
|
|
" AND w.czrq >= '" + startDate + "'"+
|
|
|
" GROUP BY w.batch_no";
|
|
|
" AND w.czrq >= '" + startDate + "'";
|
|
|
List<Map<String, Object>> totalList = jdbcTemplate.queryForList(totalSql);
|
|
|
List<Map<String, Object>> addList = jdbcTemplate.queryForList(addSql);
|
|
|
JSONObject rs = new JSONObject();
|
|
@ -5176,11 +5252,7 @@ public class StatisticsService extends BaseService {
|
|
|
if (interval==1){
|
|
|
sql = "SELECT count(1) AS count,LEFT(p.create_time,10) date FROM wlyy_prescription p ";
|
|
|
rs = DateUtil.findDates(startDate,endDate);
|
|
|
//加入当天数据
|
|
|
Map<String,Object> dateMap = new HashedMap();
|
|
|
dateMap.put("date",sdf.format(endDate));
|
|
|
dateMap.put("count", 0.0D);
|
|
|
rs.add(dateMap);
|
|
|
|
|
|
startTime = DateUtil.dateToStr(startDate, "YYYY-MM-dd HH:mm:ss");
|
|
|
endTime = DateUtil.dateToStr(endDate, "YYYY-MM-dd HH:mm:ss");
|
|
|
}
|
|
@ -6883,5 +6955,50 @@ public class StatisticsService extends BaseService {
|
|
|
List<Map<String, Object>> totalList = jdbcTemplate.queryForList(totalSql);
|
|
|
return totalList;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 工作报告医生个人详情折线图--按照月份的公用方法(为了解决与es的数据冲突).
|
|
|
* @param startDate
|
|
|
* @param endDate
|
|
|
* @param startDateStr
|
|
|
* @param sql
|
|
|
* @return
|
|
|
*/
|
|
|
public List<Map<String,Object>> getGZBGDataMonthLineForEs(String startDate,String endDate,String startDateStr,String sql){
|
|
|
List<Map<String, Object>> resultList = new ArrayList<>();
|
|
|
List<Map<String,Object>> dateList = DateUtil.findDateASWeeks(DateUtil.strToDate(startDate),DateUtil.strToDate(endDate));
|
|
|
String firstWeekMonday = DateUtil.getMondayOfThisDate(DateUtil.strToDate(startDate,"yyyy-MM-dd"));
|
|
|
if (DateUtil.strToDate(firstWeekMonday).before(DateUtil.strToDate(startDate))){
|
|
|
Map<String,Object> map = new HashedMap();
|
|
|
map.put("date",firstWeekMonday);
|
|
|
dateList.add(0,map);
|
|
|
}
|
|
|
//以每天的17:00:00为时间的边界设置每周的起始时间和结束时间查询数据库
|
|
|
if (dateList!=null && dateList.size()>0) {
|
|
|
for (Map<String, Object> map : dateList) {
|
|
|
String resultSql = sql;
|
|
|
String mondayDate = String.valueOf(map.get("date"));
|
|
|
String sundayDate = DateUtil.getSundayOfThisDate(DateUtil.strToDate(mondayDate));
|
|
|
if (DateUtil.strToDate(mondayDate).before(DateUtil.strToDate(startDate))) {
|
|
|
mondayDate = startDateStr;
|
|
|
} else {
|
|
|
mondayDate = DateUtil.getNextDay(mondayDate, -1) + " 17:00:00";
|
|
|
}
|
|
|
sundayDate += " 17:00:00";
|
|
|
resultSql = resultSql.replace("?1",mondayDate);
|
|
|
resultSql = resultSql.replace("?2",sundayDate);
|
|
|
List<Map<String, Object>> list = jdbcTemplate.queryForList(resultSql);
|
|
|
//放入结果集
|
|
|
if (list!=null && list.size()>0){
|
|
|
for(Map<String,Object> reMap : list){
|
|
|
if (reMap.get("weekOfMonth")!=null){
|
|
|
resultList.add(reMap);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
return resultList;
|
|
|
}
|
|
|
}
|
|
|
|