|
@ -2,9 +2,8 @@ package com.yihu.jw.dailyReport.service;
|
|
|
|
|
|
import com.alibaba.fastjson.JSONArray;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
import com.yihu.jw.dailyReport.dao.BaseDailyReportDetailDao;
|
|
|
import com.yihu.jw.dailyReport.dao.BaseDailyReportLogDao;
|
|
|
import com.yihu.jw.dailyReport.dao.BaseDailyReportUploadDao;
|
|
|
import com.sun.org.apache.bcel.internal.generic.IF_ACMPEQ;
|
|
|
import com.yihu.jw.dailyReport.dao.*;
|
|
|
import com.yihu.jw.doctor.dao.BaseDoctorDao;
|
|
|
import com.yihu.jw.doctor.dao.BaseDoctorHospitalDao;
|
|
|
import com.yihu.jw.doctor.dao.BaseDoctorRoleDao;
|
|
@ -14,9 +13,7 @@ import com.yihu.jw.entity.base.doctor.BaseDoctorRoleDO;
|
|
|
import com.yihu.jw.entity.base.wx.WxAccessTokenDO;
|
|
|
import com.yihu.jw.entity.base.wx.WxPushLogDO;
|
|
|
import com.yihu.jw.entity.base.wx.WxTemplateConfigDO;
|
|
|
import com.yihu.jw.entity.dailyReport.BaseDailyReportDetailDO;
|
|
|
import com.yihu.jw.entity.dailyReport.BaseDailyReportLogDO;
|
|
|
import com.yihu.jw.entity.dailyReport.BaseDailyReportUploadDO;
|
|
|
import com.yihu.jw.entity.dailyReport.*;
|
|
|
import com.yihu.jw.entity.healthUpload.BaseDoctorMemberDO;
|
|
|
import com.yihu.jw.entity.hospital.consult.WlyyHospitalSysDictDO;
|
|
|
import com.yihu.jw.entity.hospital.enterprise.WxEnterpriseUserDO;
|
|
@ -41,6 +38,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
|
import org.springframework.data.domain.Page;
|
|
|
import org.springframework.data.domain.PageRequest;
|
|
|
import org.springframework.jdbc.core.BeanPropertyRowMapper;
|
|
|
import org.springframework.jdbc.core.JdbcTemplate;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
@ -86,6 +84,10 @@ public class DailyReportUploadService {
|
|
|
private String wechatId;
|
|
|
@Autowired
|
|
|
private EnterpriseService enterpriseService;
|
|
|
@Autowired
|
|
|
private BaseDailyReportItemDao reportItemDao;
|
|
|
@Autowired
|
|
|
private BaseDailyReportItemMembersDao reportItemMembersDao;
|
|
|
|
|
|
private static Logger logger = LoggerFactory.getLogger(DailyReportUploadService.class);
|
|
|
|
|
@ -321,7 +323,7 @@ public class DailyReportUploadService {
|
|
|
* @throws Exception
|
|
|
*/
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public BaseDailyReportUploadDO createDailyReport(String doctorId,String report_date,Integer leaveState,String leaveHour,String week_name,String totalHour, List<BaseDailyReportDetailDO> detailDOList) throws Exception {
|
|
|
public BaseDailyReportUploadDO createDailyReport(String doctorId,String report_date,Integer leaveState,String leaveHour,String week_name,String totalHour, List<BaseDailyReportDetailDO> detailDOList,String reportItemId) throws Exception {
|
|
|
BaseDoctorDO doctorDO = baseDoctorDao.findById(doctorId);
|
|
|
List<BaseDoctorHospitalDO> doctorHospitalDOS = baseDoctorHospitalDao.findByDoctorCode(doctorId);
|
|
|
if (null==doctorDO){
|
|
@ -329,7 +331,7 @@ public class DailyReportUploadService {
|
|
|
}
|
|
|
if (1==leaveState){
|
|
|
if (StringUtils.isNotBlank(leaveHour)){
|
|
|
if (Integer.parseInt(leaveHour)<8&&detailDOList.size()==0){
|
|
|
if (Double.parseDouble(leaveHour)<8&&detailDOList.size()==0){
|
|
|
throw new Exception("上传失败,请假未满8小时需要提交完成内容");
|
|
|
}
|
|
|
}
|
|
@ -346,6 +348,14 @@ public class DailyReportUploadService {
|
|
|
}else{
|
|
|
reportDetailDao.deleteByReportIdAndState(dailyReportUploadDO.getId(),0);
|
|
|
}
|
|
|
if (StringUtils.isNoneBlank(reportItemId)){
|
|
|
BaseDailyReportItemDO itemDO = reportItemDao.findOne(reportItemId);
|
|
|
if (null==itemDO){
|
|
|
throw new Exception("上传失败,关联日报项目不存在");
|
|
|
}
|
|
|
dailyReportUploadDO.setReportItemId(reportItemId);
|
|
|
dailyReportUploadDO.setReportItemName(itemDO.getTitle());
|
|
|
}
|
|
|
dailyReportUploadDO.setDoctorId(doctorId);
|
|
|
dailyReportUploadDO.setDoctorName(doctorDO.getName());
|
|
|
dailyReportUploadDO.setReportDate(report_date);
|
|
@ -1585,4 +1595,263 @@ public class DailyReportUploadService {
|
|
|
return object;
|
|
|
}
|
|
|
|
|
|
/*************************************日报项目相关******************************************/
|
|
|
|
|
|
/**
|
|
|
* 新增日报项目
|
|
|
*/
|
|
|
@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 {
|
|
|
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("您无权限操作");
|
|
|
}
|
|
|
BaseDoctorDO doctorDO = baseDoctorDao.findById(user);
|
|
|
if (null==doctorDO){
|
|
|
throw new Exception("用户不存在无权操作");
|
|
|
}
|
|
|
BaseDailyReportItemDO reportItemDO = new BaseDailyReportItemDO();
|
|
|
reportItemDO.setState(0);
|
|
|
reportItemDO.setDel(1);
|
|
|
reportItemDO.setTitle(title);
|
|
|
reportItemDO.setContent(content);
|
|
|
reportItemDO.setBeginTime(begin_time);
|
|
|
reportItemDO.setEndTime(end_time);
|
|
|
reportItemDO.setCreateTime(new Date());
|
|
|
reportItemDO.setCreateUser(user);
|
|
|
reportItemDO.setCreateUserName(doctorDO.getName());
|
|
|
reportItemDO = reportItemDao.save(reportItemDO);
|
|
|
List<BaseDailyReportItemMembersDO> membersDOS = new ArrayList<>();
|
|
|
if (1==member_type){//指定成员
|
|
|
List<String> membersList = Arrays.asList(members.split(","));
|
|
|
for (String tmp:membersList){
|
|
|
BaseDailyReportItemMembersDO membersDOTmp = new BaseDailyReportItemMembersDO();
|
|
|
membersDOTmp.setReportItemId(reportItemDO.getId());
|
|
|
membersDOTmp.setUserId(tmp);
|
|
|
membersDOTmp.setDel(1);
|
|
|
membersDOS.add(membersDOTmp);
|
|
|
}
|
|
|
}else if (2==member_type){
|
|
|
List<String> depts = Arrays.asList(members.split(","));
|
|
|
for (String dept:depts){
|
|
|
sql = " select distinct doc.id from base_doctor doc inner join base_doctor_hospital dh " +
|
|
|
"on doc.id = dh.doctor_code and doc.del=1 and dh.del=1 " +
|
|
|
"where dh.dept_code='"+dept+"' ";
|
|
|
List<String> membersList = jdbcTemplate.queryForList(sql,String.class);
|
|
|
for (String tmp:membersList){
|
|
|
BaseDailyReportItemMembersDO membersDOTmp = new BaseDailyReportItemMembersDO();
|
|
|
membersDOTmp.setReportItemId(reportItemDO.getId());
|
|
|
membersDOTmp.setUserId(tmp);
|
|
|
membersDOTmp.setDel(1);
|
|
|
membersDOS.add(membersDOTmp);
|
|
|
}
|
|
|
}
|
|
|
}else {
|
|
|
throw new Exception("系统异常,请稍后重试");
|
|
|
}
|
|
|
if (membersDOS.size()>0){
|
|
|
reportItemMembersDao.save(membersDOS);
|
|
|
}
|
|
|
reportItemDO.setItemMembersDOList(membersDOS);
|
|
|
return reportItemDO;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 编辑日报项目
|
|
|
*/
|
|
|
@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 {
|
|
|
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("您无权限操作");
|
|
|
}
|
|
|
BaseDoctorDO doctorDO = baseDoctorDao.findById(user);
|
|
|
if (null==doctorDO){
|
|
|
throw new Exception("用户不存在无权操作");
|
|
|
}
|
|
|
BaseDailyReportItemDO reportItemDO = reportItemDao.findOne(item_id);
|
|
|
if (null==reportItemDO){
|
|
|
throw new Exception("日报项目不存在");
|
|
|
}
|
|
|
if (1==reportItemDO.getState()){
|
|
|
throw new Exception("日报项目已完成无法修改");
|
|
|
}
|
|
|
reportItemDO.setState(state);
|
|
|
reportItemDO.setDel(1);
|
|
|
reportItemDO.setTitle(title);
|
|
|
reportItemDO.setContent(content);
|
|
|
reportItemDO.setBeginTime(begin_time);
|
|
|
reportItemDO.setEndTime(end_time);
|
|
|
reportItemDO.setUpdateTime(new Date());
|
|
|
reportItemDO.setUpdateUser(user);
|
|
|
reportItemDO.setUpdateUserName(doctorDO.getName());
|
|
|
reportItemDao.save(reportItemDO);
|
|
|
List<BaseDailyReportItemMembersDO> membersDOS = new ArrayList<>();
|
|
|
reportItemMembersDao.deleteAllByReportItemId(reportItemDO.getId());
|
|
|
List<String> membersList = Arrays.asList(members.split(","));
|
|
|
for (String tmp:membersList){
|
|
|
BaseDailyReportItemMembersDO membersDOTmp = new BaseDailyReportItemMembersDO();
|
|
|
membersDOTmp.setReportItemId(reportItemDO.getId());
|
|
|
membersDOTmp.setUserId(tmp);
|
|
|
membersDOTmp.setDel(1);
|
|
|
membersDOS.add(membersDOTmp);
|
|
|
}
|
|
|
if (membersDOS.size()>0){
|
|
|
reportItemMembersDao.save(membersDOS);
|
|
|
}
|
|
|
reportItemDO.setItemMembersDOList(membersDOS);
|
|
|
return reportItemDO;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
*管理员完成日报项目
|
|
|
* @throws Exception
|
|
|
*/
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public BaseDailyReportItemDO completeReportItem(String user,String item_id,String completionUser,String completionHour,String completionTime) 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("您无权限操作");
|
|
|
}
|
|
|
BaseDoctorDO doctorDO = baseDoctorDao.findById(user);
|
|
|
if (null==doctorDO){
|
|
|
throw new Exception("用户不存在无权操作");
|
|
|
}
|
|
|
BaseDailyReportItemDO reportItemDO = reportItemDao.findOne(item_id);
|
|
|
if (null==reportItemDO){
|
|
|
throw new Exception("日报项目不存在");
|
|
|
}
|
|
|
reportItemDO.setState(1);
|
|
|
if (StringUtils.isNoneBlank(completionUser)){
|
|
|
reportItemDO.setCompletionUser(completionUser);
|
|
|
}
|
|
|
if (StringUtils.isNoneBlank(completionHour)){
|
|
|
reportItemDO.setCompletionHour(completionHour);
|
|
|
}
|
|
|
if (StringUtils.isNoneBlank(completionTime)){
|
|
|
reportItemDO.setCompletionTime(DateUtil.strToDate(completionTime));
|
|
|
}
|
|
|
reportItemDO.setUpdateUser(user);
|
|
|
reportItemDO.setUpdateUserName(doctorDO.getName());
|
|
|
reportItemDO.setUpdateTime(new Date());
|
|
|
reportItemDao.save(reportItemDO);
|
|
|
List<BaseDailyReportItemMembersDO> membersDOS = reportItemMembersDao.findMembersByItemId(reportItemDO.getId());
|
|
|
reportItemDO.setItemMembersDOList(membersDOS);
|
|
|
return reportItemDO;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 管理员删除日报项目
|
|
|
* @throws Exception
|
|
|
*/
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public boolean delReportItem(String user,String item_id) 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("您无权限操作");
|
|
|
}
|
|
|
BaseDoctorDO doctorDO = baseDoctorDao.findById(user);
|
|
|
if (null==doctorDO){
|
|
|
throw new Exception("用户不存在无权操作");
|
|
|
}
|
|
|
BaseDailyReportItemDO reportItemDO = reportItemDao.findOne(item_id);
|
|
|
if (null==reportItemDO){
|
|
|
throw new Exception("日报项目不存在");
|
|
|
}
|
|
|
reportItemDO.setDel(0);
|
|
|
reportItemDO.setUpdateUser(user);
|
|
|
reportItemDO.setUpdateUserName(doctorDO.getName());
|
|
|
reportItemDO.setUpdateTime(new Date());
|
|
|
reportItemDao.save(reportItemDO);
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 查询日报项目详情
|
|
|
*/
|
|
|
public BaseDailyReportItemDO findReportItemById(String item_id) throws Exception {
|
|
|
BaseDailyReportItemDO reportItemDO = reportItemDao.findOne(item_id);
|
|
|
if (null==reportItemDO){
|
|
|
throw new Exception("日报项目不存在");
|
|
|
}
|
|
|
List<BaseDailyReportItemMembersDO> membersDOS = reportItemMembersDao.findMembersByItemId(reportItemDO.getId());
|
|
|
reportItemDO.setItemMembersDOList(membersDOS);
|
|
|
return reportItemDO;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 管理员获取所有日报项目
|
|
|
*/
|
|
|
public List<BaseDailyReportItemDO> findReportItemListAdmin(String user,String title,String content,Integer state,String begin_time,String end_time,String createUser) 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("您无权限操作");
|
|
|
}
|
|
|
List<BaseDailyReportItemDO> itemDOS = new ArrayList<>();
|
|
|
sql = " select i.* from base_daily_report_item i where 1=1 ";
|
|
|
if (StringUtils.isNotBlank(title)){
|
|
|
sql +=" and i.title like '%"+title+"%' ";
|
|
|
}
|
|
|
if (StringUtils.isNotBlank(content)){
|
|
|
sql +=" and i.content like '%"+content+"%' ";
|
|
|
}
|
|
|
if (null!=state){
|
|
|
sql += " and i.state='"+state+"' ";
|
|
|
}
|
|
|
if (StringUtils.isNotBlank(begin_time)){
|
|
|
sql += " and i.begin_time>='"+begin_time+"' ";
|
|
|
}
|
|
|
if (StringUtils.isNotBlank(end_time)){
|
|
|
sql += " and i.end_time<='"+end_time+"' ";
|
|
|
}
|
|
|
if (StringUtils.isNotBlank(createUser)){
|
|
|
sql += " and i.create_user='"+createUser+"' ";
|
|
|
}
|
|
|
itemDOS = jdbcTemplate.query(sql,new BeanPropertyRowMapper<>(BaseDailyReportItemDO.class));
|
|
|
for (BaseDailyReportItemDO tmp:itemDOS){
|
|
|
List<BaseDailyReportItemMembersDO> membersDOS = reportItemMembersDao.findMembersByItemId(tmp.getId());
|
|
|
tmp.setItemMembersDOList(membersDOS);
|
|
|
}
|
|
|
return itemDOS;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 员工获取所有日报项目
|
|
|
*/
|
|
|
public List<BaseDailyReportItemDO> findReportItemList(String user,String title,String content,Integer state,String begin_time,String end_time,String createUser) throws Exception {
|
|
|
String sql = "select i.* from base_daily_report_item i INNER JOIN base_daily_report_item_members mem on i.id = mem.report_item_id " +
|
|
|
"where i.del=1 and mem.del=1 and mem.user_id='"+user+"' " ;
|
|
|
|
|
|
if (StringUtils.isNotBlank(title)){
|
|
|
sql +=" and i.title like '%"+title+"%' ";
|
|
|
}
|
|
|
if (StringUtils.isNotBlank(content)){
|
|
|
sql +=" and i.content like '%"+content+"%' ";
|
|
|
}
|
|
|
if (null!=state){
|
|
|
sql += " and i.state='"+state+"' ";
|
|
|
}
|
|
|
if (StringUtils.isNotBlank(begin_time)){
|
|
|
sql += " and i.begin_time>='"+begin_time+"' ";
|
|
|
}
|
|
|
if (StringUtils.isNotBlank(end_time)){
|
|
|
sql += " and i.end_time<='"+end_time+"' ";
|
|
|
}
|
|
|
if (StringUtils.isNotBlank(createUser)){
|
|
|
sql += " and i.create_user='"+createUser+"' ";
|
|
|
}
|
|
|
sql += " GROUP BY i.id ";
|
|
|
List<BaseDailyReportItemDO> itemDOS = jdbcTemplate.query(sql,new BeanPropertyRowMapper<>(BaseDailyReportItemDO.class));
|
|
|
for (BaseDailyReportItemDO tmp:itemDOS){
|
|
|
List<BaseDailyReportItemMembersDO> membersDOS = reportItemMembersDao.findMembersByItemId(tmp.getId());
|
|
|
tmp.setItemMembersDOList(membersDOS);
|
|
|
}
|
|
|
return itemDOS;
|
|
|
}
|
|
|
|
|
|
}
|