|
@ -3080,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)) {
|
|
@ -3093,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";
|
|
|
|
|
@ -3104,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);
|
|
@ -3206,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, " +
|
|
@ -3427,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 " +
|
|
@ -3514,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 " +
|
|
@ -3527,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, " +
|
|
@ -3674,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 " +
|
|
@ -3751,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)) {
|
|
|
//按周统计
|
|
@ -3789,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"));
|
|
@ -3798,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, " +
|
|
@ -3913,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 " +
|
|
@ -3987,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)) {
|
|
@ -4022,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"));
|
|
@ -4031,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, " +
|
|
@ -4173,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 " +
|
|
@ -4193,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();
|
|
@ -6915,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;
|
|
|
}
|
|
|
}
|
|
|
|