|
@ -375,6 +375,8 @@ public class DailyReportUploadService {
|
|
|
BaseDailyReportItemDO reportItemDO = new BaseDailyReportItemDO();
|
|
|
reportItemDO.setState(0);
|
|
|
reportItemDO.setDel(1);
|
|
|
reportItemDO.setProjectCode(tmp.getProjectCode());
|
|
|
reportItemDO.setProjectName(tmp.getProjectName());
|
|
|
reportItemDO.setTitle(title);
|
|
|
reportItemDO.setContent(tmp.getReportContent());
|
|
|
reportItemDO.setBeginTime(null);
|
|
@ -382,6 +384,11 @@ public class DailyReportUploadService {
|
|
|
reportItemDO.setCreateTime(new Date());
|
|
|
reportItemDO.setCreateUser(doctorId);
|
|
|
reportItemDO.setCreateUserName(doctorDO.getName());
|
|
|
if (doctorHospitalDOS != null && doctorHospitalDOS.size() != 0) {
|
|
|
reportItemDO.setDept(doctorHospitalDOS.get(0).getDeptCode());
|
|
|
reportItemDO.setDeptName(doctorHospitalDOS.get(0).getDeptName());
|
|
|
}
|
|
|
|
|
|
reportItemDO = reportItemDao.save(reportItemDO);
|
|
|
|
|
|
BaseDailyReportItemMembersDO membersDOTmp = new BaseDailyReportItemMembersDO();
|
|
@ -393,6 +400,13 @@ public class DailyReportUploadService {
|
|
|
tmp.setReportItemId(reportItemDO.getId());
|
|
|
tmp.setReportItemName(title);
|
|
|
}
|
|
|
BaseDailyReportItemDO reportItemDO = reportItemDao.findOne(tmp.getReportItemId());
|
|
|
if (null!=reportItemDO){
|
|
|
if (StringUtils.isBlank(reportItemDO.getAcBeginTime())){
|
|
|
reportItemDO.setAcBeginTime(DateUtil.getStringDate());
|
|
|
reportItemDao.save(reportItemDO);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
if (detailDOList.size()>0){
|
|
|
reportDetailDao.save(detailDOList);
|
|
@ -949,7 +963,7 @@ public class DailyReportUploadService {
|
|
|
logger.info("deptSql=="+deptSql);
|
|
|
List<Map<String, Object>> mapList = jdbcTemplate.queryForList(deptSql);
|
|
|
for (Map<String,Object> deptMap:mapList){
|
|
|
String day = DateUtil.getTwoDay(endDate, startDate);
|
|
|
String day = DateUtil.getWorkDays(endDate, startDate)+"";
|
|
|
Integer doctorTotal = 0;
|
|
|
Integer total=0;
|
|
|
Integer yishangbaoTotal=0;
|
|
@ -1542,7 +1556,7 @@ public class DailyReportUploadService {
|
|
|
startDate = DateUtil.getFristDayOfMonth();
|
|
|
endDate = DateUtil.getLastDayOfMonth();
|
|
|
}
|
|
|
String day = DateUtil.getTwoDay(endDate, startDate);
|
|
|
String day = DateUtil.getWorkDays(endDate, startDate)+"";
|
|
|
String doctorSql = " select COUNT(1) as 'total' from base_doctor d where d.del=1 and d.identity=0 ";
|
|
|
Integer total = 0;//总人次
|
|
|
String sqlCondition = "";
|
|
@ -1692,7 +1706,7 @@ public class DailyReportUploadService {
|
|
|
*/
|
|
|
public JSONObject selectHeaderTotal(String dept, String idType, String status, String state, String startDate, String endDate, String name) {
|
|
|
JSONObject object = new JSONObject();
|
|
|
String day = DateUtil.getTwoDay(endDate, startDate);
|
|
|
String day = DateUtil.getWorkDays(endDate, startDate)+"";
|
|
|
|
|
|
String doctorSql = " select COUNT(1) as \"total\" from base_doctor d where d.del=1 and d.identity=0 ";
|
|
|
Integer total = 0;//总人次
|
|
@ -1839,7 +1853,7 @@ public class DailyReportUploadService {
|
|
|
* 新增日报项目
|
|
|
*/
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public BaseDailyReportItemDO newReportItem(String user,String title,String content,String begin_time,String end_time,Integer member_type,String members) throws Exception {
|
|
|
public BaseDailyReportItemDO newReportItem(String user,String projectCode,String projectName,String title,String content,String begin_time,String end_time,Integer member_type,String members) 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){
|
|
@ -1852,6 +1866,8 @@ public class DailyReportUploadService {
|
|
|
BaseDailyReportItemDO reportItemDO = new BaseDailyReportItemDO();
|
|
|
reportItemDO.setState(0);
|
|
|
reportItemDO.setDel(1);
|
|
|
reportItemDO.setProjectCode(projectCode);
|
|
|
reportItemDO.setProjectName(projectName);
|
|
|
reportItemDO.setTitle(title);
|
|
|
reportItemDO.setContent(content);
|
|
|
reportItemDO.setBeginTime(begin_time);
|
|
@ -1859,6 +1875,11 @@ public class DailyReportUploadService {
|
|
|
reportItemDO.setCreateTime(new Date());
|
|
|
reportItemDO.setCreateUser(user);
|
|
|
reportItemDO.setCreateUserName(doctorDO.getName());
|
|
|
List<BaseDoctorHospitalDO> doctorHospitalDOs = baseDoctorHospitalDao.findByDoctorCode(user);
|
|
|
if (null !=doctorHospitalDOs&&doctorHospitalDOs.size()!=0){
|
|
|
reportItemDO.setDept(doctorHospitalDOs.get(0).getDeptCode());
|
|
|
reportItemDO.setDeptName(doctorHospitalDOs.get(0).getDeptName());
|
|
|
}
|
|
|
reportItemDO = reportItemDao.save(reportItemDO);
|
|
|
List<BaseDailyReportItemMembersDO> membersDOS = new ArrayList<>();
|
|
|
if (1==member_type){//指定成员
|
|
@ -1906,7 +1927,7 @@ public class DailyReportUploadService {
|
|
|
* 编辑日报项目
|
|
|
*/
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public BaseDailyReportItemDO modifyReportItem(String user,String item_id,String title,String content,Integer state,String begin_time,String end_time,String members) throws Exception {
|
|
|
public BaseDailyReportItemDO modifyReportItem(String user,String item_id,String projectCode,String projectName,String title,String content,Integer state,String begin_time,String end_time,String members) 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){
|
|
@ -1925,6 +1946,8 @@ public class DailyReportUploadService {
|
|
|
}
|
|
|
reportItemDO.setState(state);
|
|
|
reportItemDO.setDel(1);
|
|
|
reportItemDO.setProjectCode(projectCode);
|
|
|
reportItemDO.setProjectName(projectName);
|
|
|
reportItemDO.setTitle(title);
|
|
|
reportItemDO.setContent(content);
|
|
|
reportItemDO.setBeginTime(begin_time);
|
|
@ -1932,6 +1955,12 @@ public class DailyReportUploadService {
|
|
|
reportItemDO.setUpdateTime(new Date());
|
|
|
reportItemDO.setUpdateUser(user);
|
|
|
reportItemDO.setUpdateUserName(doctorDO.getName());
|
|
|
List<BaseDoctorHospitalDO> doctorHospitalDOs = baseDoctorHospitalDao.findByDoctorCode(user);
|
|
|
if (null !=doctorHospitalDOs&&doctorHospitalDOs.size()!=0){
|
|
|
reportItemDO.setDept(doctorHospitalDOs.get(0).getDeptCode());
|
|
|
reportItemDO.setDeptName(doctorHospitalDOs.get(0).getDeptName());
|
|
|
}
|
|
|
reportItemDO = reportItemDao.save(reportItemDO);
|
|
|
reportItemDao.save(reportItemDO);
|
|
|
List<BaseDailyReportItemMembersDO> membersDOS = new ArrayList<>();
|
|
|
reportItemMembersDao.deleteAllByReportItemId(reportItemDO.getId());
|
|
@ -2134,8 +2163,43 @@ public class DailyReportUploadService {
|
|
|
/**
|
|
|
* 管理员日报项目统计
|
|
|
*/
|
|
|
public PageEnvelop statisticReportItemList(String user, String title, String content, Integer state,
|
|
|
String begin_time, String end_time, String createUser,String createUserName, Integer page, Integer size) throws Exception {
|
|
|
public List<Map<String,Object>> statisticReportProjectList(String user, String projectCode,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 sqlCondition = " ";
|
|
|
|
|
|
if (StringUtils.isNotBlank(startDate)){
|
|
|
sqlCondition += " and up.report_date>='"+startDate+"' ";
|
|
|
}
|
|
|
if (StringUtils.isNotBlank(endDate)){
|
|
|
sqlCondition += " and up.report_date<='"+endDate+"' ";
|
|
|
}
|
|
|
if (StringUtils.isNotBlank(projectCode)){
|
|
|
sqlCondition += " and i.project_code='"+projectCode+"' ";
|
|
|
}
|
|
|
String sqlList = " select dict.dict_code project_code,dict.dict_value projectName,IFNULL( A.completionHour,0) 'completionHour', " +
|
|
|
" IFNULL(A.doctorTotal,0) 'doctorTotal' from wlyy_hospital_sys_dict dict " +
|
|
|
" Left JOIN (" +
|
|
|
" select i.project_code,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 " +
|
|
|
" INNER JOIN base_doctor_daily_report_upload up on up.id = de.report_id and up.report_date>='2022-08-01' " +
|
|
|
" and up.report_date<='2022-08-13' where i.del=1 "+sqlCondition+" GROUP BY i.project_code )A " +
|
|
|
"on A.project_code = dict.dict_code where dict.dict_name='daily_report_project' ";
|
|
|
if (StringUtils.isNotBlank(projectCode)){
|
|
|
sqlList +=" and dict.dict_code='"+projectCode+"' ";
|
|
|
}
|
|
|
sqlList += " order by completionHour desc ";
|
|
|
return jdbcTemplate.queryForList(sqlList);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 管理员日报项目统计
|
|
|
*/
|
|
|
public PageEnvelop statisticReportItemList(String user, String projectCode,String title, String content, Integer state,
|
|
|
String startDate, String endDate, String createUser,String createUserName, Integer page, Integer size) throws Exception {
|
|
|
page = page>0?page-1:0;
|
|
|
String sql = " select * from base_doctor_role where doctor_code='"+user+"' ";
|
|
|
List<Map<String,Object>> userRoles = jdbcTemplate.queryForList(sql);
|
|
@ -2144,10 +2208,17 @@ public class DailyReportUploadService {
|
|
|
}
|
|
|
List<BaseDailyReportItemDO> itemDOS = new ArrayList<>();
|
|
|
String sqlCondition = " ";
|
|
|
String sqlList = " select i.id,i.title,i.content,i.state,i.begin_time beginTime,i.end_time endTime,i.create_user_name createUserName," +
|
|
|
String updateTimeSql="";
|
|
|
if (StringUtils.isNotBlank(startDate)){
|
|
|
updateTimeSql += " and up.report_date>='"+startDate+"' ";
|
|
|
}
|
|
|
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 " +
|
|
|
" INNER JOIN base_doctor_daily_report_upload up on up.id = de.report_id where i.del=1 ";
|
|
|
" INNER JOIN base_doctor_daily_report_upload up on up.id = de.report_id "+updateTimeSql+" 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+"%' ";
|
|
@ -2158,18 +2229,16 @@ public class DailyReportUploadService {
|
|
|
if (null!=state){
|
|
|
sqlCondition += " and i.state='"+state+"' ";
|
|
|
}
|
|
|
if (StringUtils.isNotBlank(begin_time)){
|
|
|
sqlCondition += " and i.begin_time>='"+begin_time+"' ";
|
|
|
}
|
|
|
if (StringUtils.isNotBlank(end_time)){
|
|
|
sqlCondition += " and i.end_time<='"+end_time+"' ";
|
|
|
}
|
|
|
if (StringUtils.isNotBlank(createUser)){
|
|
|
sqlCondition += " and i.create_user = '"+createUser+"' ";
|
|
|
}
|
|
|
if (StringUtils.isNotBlank(createUserName)){
|
|
|
sqlCondition += " and i.create_user_name like '%"+createUserName+"%' ";
|
|
|
}
|
|
|
if (StringUtils.isNotBlank(projectCode)){
|
|
|
sqlCondition += " and i.project_code='"+projectCode+"' ";
|
|
|
}
|
|
|
|
|
|
sqlList +=sqlCondition+ " group by i.id order by i.create_time,i.id desc limit "+page*size+","+size;
|
|
|
itemDOS = jdbcTemplate.query(sqlList,new BeanPropertyRowMapper<>(BaseDailyReportItemDO.class));
|
|
|
Long count = jdbcTemplate.queryForObject(sqlCount+sqlCondition,Long.class);
|
|
@ -2183,21 +2252,21 @@ public class DailyReportUploadService {
|
|
|
throw new Exception("您无权限操作");
|
|
|
}
|
|
|
if(1==type){//天
|
|
|
sql = " select i.id,i.title,i.content,i.state,i.begin_time beginTime,i.end_time endTime,i.create_user_name createUserName, " +
|
|
|
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 " +
|
|
|
"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,i.title,i.content,i.state,i.begin_time beginTime,i.end_time endTime,i.create_user_name createUserName, " +
|
|
|
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 " +
|
|
|
"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,i.title,i.content,i.state,i.begin_time beginTime,i.end_time endTime,i.create_user_name createUserName, " +
|
|
|
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 " +
|
|
@ -2233,7 +2302,7 @@ public class DailyReportUploadService {
|
|
|
}
|
|
|
String searchTimeFormat = "";
|
|
|
if(0==type){
|
|
|
sql = " select i.id,i.title,i.content,i.state,i.begin_time beginTime,i.end_time endTime,i.create_user_name createUserName,up.doctor_id,up.doctor_name doctorName, " +
|
|
|
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,up.doctor_id,up.doctor_name doctorName, " +
|
|
|
" 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 " +
|
|
@ -2243,7 +2312,7 @@ public class DailyReportUploadService {
|
|
|
searchTimeFormat=" DATE_FORMAT(de.create_time,'%Y-%m-%d') ";
|
|
|
}
|
|
|
else if(1==type){//天
|
|
|
sql = " select i.id,i.title,i.content,i.state,i.begin_time beginTime,i.end_time endTime,i.create_user_name createUserName,up.doctor_id,up.doctor_name doctorName, " +
|
|
|
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,up.doctor_id,up.doctor_name doctorName, " +
|
|
|
" 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 " +
|
|
@ -2252,7 +2321,7 @@ public class DailyReportUploadService {
|
|
|
"group by i.id,up.doctor_id,DATE_FORMAT(de.create_time,'%Y-%m-%d') order by time asc ";
|
|
|
searchTimeFormat=" DATE_FORMAT(de.create_time,'%Y-%m-%d') ";
|
|
|
}else if (2==type){//按周
|
|
|
sql = " select i.id,i.title,i.content,i.state,i.begin_time beginTime,i.end_time endTime,i.create_user_name createUserName,up.doctor_id,up.doctor_name doctorName, " +
|
|
|
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,up.doctor_id,up.doctor_name doctorName, " +
|
|
|
" 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 " +
|
|
@ -2261,7 +2330,7 @@ public class DailyReportUploadService {
|
|
|
"group by i.id,up.doctor_id,DATE_FORMAT(de.create_time,'%Y%v') order by time asc ";
|
|
|
searchTimeFormat=" DATE_FORMAT(de.create_time,'%Y%v') ";
|
|
|
}else if (3==type){//月
|
|
|
sql = " select i.id,i.title,i.content,i.state,i.begin_time beginTime,i.end_time endTime,i.create_user_name createUserName,up.doctor_id,up.doctor_name doctorName, " +
|
|
|
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,up.doctor_id,up.doctor_name doctorName, " +
|
|
|
" 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 " +
|
|
@ -2335,7 +2404,7 @@ public class DailyReportUploadService {
|
|
|
throw new Exception("导出失败,请检查传入参数");
|
|
|
}
|
|
|
//项目耗时情况
|
|
|
sql = " select it.title,it.content,sum(IFNULL(pd.actual_completion_hour,IFNULL(pd.completion_hour,0))) 'completion_hour' ," +
|
|
|
sql = " select CONCAT(it.title,'(',i.dept_name,')') title,it.content,sum(IFNULL(pd.actual_completion_hour,IFNULL(pd.completion_hour,0))) 'completion_hour' ," +
|
|
|
" CASE it.state WHEN 1 THEN '已完成' ELSE '未完成' END as 'state',DATE_FORMAT(it.create_time,'%Y-%m-%d %H:%i:%S') create_time,it.create_user_name " +
|
|
|
"from base_daily_report_item it LEFT JOIN base_daily_report_detail pd " +
|
|
|
"on it.id = pd.report_item_id " +
|