|
|
|
|
@ -9,6 +9,8 @@ import com.emr.service.ipml.CommomService;
|
|
|
|
|
import com.emr.service.ipml.EmrOvertimeSetService;
|
|
|
|
|
import com.emr.service.ipml.StatisticsService;
|
|
|
|
|
import com.emr.util.ExceptionPrintUtil;
|
|
|
|
|
import com.emr.util.IDHelper;
|
|
|
|
|
import com.emr.util.OracleConnect;
|
|
|
|
|
import com.emr.vo.RecordSearch;
|
|
|
|
|
import com.emr.vo.SubmitRecord;
|
|
|
|
|
import com.emr.vo.User;
|
|
|
|
|
@ -56,7 +58,6 @@ public class Task1 {
|
|
|
|
|
private ArchiveRemindDeptUserInfoMapper remindDeptUserInfoMapper;
|
|
|
|
|
@Scheduled(cron="#{@getCronValue}")
|
|
|
|
|
public void task1(){
|
|
|
|
|
Date date = new Date();
|
|
|
|
|
try {
|
|
|
|
|
long start = System.currentTimeMillis();
|
|
|
|
|
RecordSearch recordSearch = new RecordSearch();
|
|
|
|
|
@ -95,27 +96,15 @@ public class Task1 {
|
|
|
|
|
}
|
|
|
|
|
if(!CollectionUtils.isEmpty(userList)) {
|
|
|
|
|
//通知医生
|
|
|
|
|
remindList.addAll(remindDoctor(vo, userListTemp,recordSearch,date));
|
|
|
|
|
remindList.addAll(remindDoctor(vo, userListTemp,recordSearch));
|
|
|
|
|
//通知除了医生其他审核角色
|
|
|
|
|
selectRemindOtherRoleInfo(date, remindList, vo, userList);
|
|
|
|
|
selectRemindOtherRoleInfo(remindList, vo, userList);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
log.info(remindList);
|
|
|
|
|
//批量添加进提醒记录表
|
|
|
|
|
if(!CollectionUtils.isEmpty(remindList)){
|
|
|
|
|
commomService.insertBatch("archive_remind_dept_user_info",remindList,remindDeptUserInfoMapper);
|
|
|
|
|
}
|
|
|
|
|
try {
|
|
|
|
|
//添加第三方库表
|
|
|
|
|
int i = 1/0;
|
|
|
|
|
//修改记录表当天记录send_success字段为1
|
|
|
|
|
remindDeptUserInfoMapper.updateSendSuccess();
|
|
|
|
|
}catch (Exception e){
|
|
|
|
|
log.info("通知超期提前提醒业务总共"+list.size()+"个科室发送第三方库表失败");
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
ExceptionPrintUtil.printException(e);
|
|
|
|
|
}
|
|
|
|
|
//处理添加数据业务
|
|
|
|
|
insertData(list, remindList);
|
|
|
|
|
}
|
|
|
|
|
long end = System.currentTimeMillis();
|
|
|
|
|
log.info("通知超期提前提醒业务总共"+list.size()+"个科室总耗时:"+(end-start)/1000.0+"s");
|
|
|
|
|
@ -124,27 +113,82 @@ public class Task1 {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 处理添加业务
|
|
|
|
|
* @param list
|
|
|
|
|
* @param remindList
|
|
|
|
|
*/
|
|
|
|
|
private void insertData(List<SubmitRecord> list, List<ArchiveRemindDeptUserInfo> remindList) {
|
|
|
|
|
if(!CollectionUtils.isEmpty(remindList)){
|
|
|
|
|
Date date = new Date();
|
|
|
|
|
//拼接sql
|
|
|
|
|
StringBuilder sql = new StringBuilder();
|
|
|
|
|
sql.append("insert all ");
|
|
|
|
|
//批量插入oracle数据
|
|
|
|
|
for(ArchiveRemindDeptUserInfo obj : remindList){
|
|
|
|
|
//设置当前时间
|
|
|
|
|
obj.setCreateTime(date);
|
|
|
|
|
/**
|
|
|
|
|
* mess_id:唯一号码
|
|
|
|
|
* fempid:工号
|
|
|
|
|
* fempname:姓名
|
|
|
|
|
* fcardno:微信号
|
|
|
|
|
* lxdh:手机号
|
|
|
|
|
* send_lx:通知类型
|
|
|
|
|
* send_info:发送内容
|
|
|
|
|
* pmadtetime:当前时间
|
|
|
|
|
*/
|
|
|
|
|
//拼接sql
|
|
|
|
|
String userTel = null;
|
|
|
|
|
if(StringUtils.isNotBlank(obj.getUserTel())){
|
|
|
|
|
userTel = "'"+obj.getUserTel()+"'";
|
|
|
|
|
}
|
|
|
|
|
String userWechat = null;
|
|
|
|
|
if(StringUtils.isNotBlank(obj.getUserWechat())){
|
|
|
|
|
userWechat = "'"+obj.getUserWechat()+"'";
|
|
|
|
|
}
|
|
|
|
|
String sysdate = "sysdate";
|
|
|
|
|
sql.append(" into jswzh_sendmessage(mess_id,fempid,fempname,fcardno,lxdh,send_lx,send_info,pmdatetime) " +
|
|
|
|
|
"values('"+obj.getMessId()+"','"+obj.getUserName()+"','"+obj.getUserName()+"',"+userWechat+","+userTel+",'超期提前提醒','"+obj.getSendContext()+"',"+sysdate+")");
|
|
|
|
|
}
|
|
|
|
|
sql.append(" select * from dual;");
|
|
|
|
|
log.info("插入oracle语句:"+sql.toString());
|
|
|
|
|
//批量添加进提醒记录表
|
|
|
|
|
commomService.insertBatch("archive_remind_dept_user_info",remindList,remindDeptUserInfoMapper);
|
|
|
|
|
try {
|
|
|
|
|
//插入第三方库
|
|
|
|
|
OracleConnect.insert(sql.toString());
|
|
|
|
|
//修改记录表当天记录send_success字段为1
|
|
|
|
|
remindDeptUserInfoMapper.updateSendSuccess();
|
|
|
|
|
log.info("通知超期提前提醒业务总共"+list.size()+"个科室发送第三方库表成功");
|
|
|
|
|
}catch (Exception e){
|
|
|
|
|
log.info("通知超期提前提醒业务总共"+list.size()+"个科室发送第三方库表失败");
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
ExceptionPrintUtil.printException(e);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 通知除了医生其他审核角色
|
|
|
|
|
* @param date 当前时间
|
|
|
|
|
* @param remindList 返回的list集合
|
|
|
|
|
* @param vo 对应科室各个审核角色超期份数
|
|
|
|
|
* @param userList 用户集合
|
|
|
|
|
* @throws Exception
|
|
|
|
|
*/
|
|
|
|
|
private void selectRemindOtherRoleInfo(Date date, List<ArchiveRemindDeptUserInfo> remindList, SubmitRecord vo, List<User> userList) throws Exception {
|
|
|
|
|
private void selectRemindOtherRoleInfo(List<ArchiveRemindDeptUserInfo> remindList, SubmitRecord vo, List<User> userList) throws Exception {
|
|
|
|
|
//通知医生质控员
|
|
|
|
|
remindList.addAll(remindDoctorCheck(vo, userList, 5, "unDoctorCheckCount",date));
|
|
|
|
|
remindList.addAll(remindDoctorCheck(vo, userList, 5, "unDoctorCheckCount"));
|
|
|
|
|
//通知科主任
|
|
|
|
|
remindList.addAll(remindDoctorCheck(vo, userList, 6, "unDirectorCheckCount",date));
|
|
|
|
|
remindList.addAll(remindDoctorCheck(vo, userList, 6, "unDirectorCheckCount"));
|
|
|
|
|
//通知护士
|
|
|
|
|
remindList.addAll(remindDoctorCheck(vo, userList, 2, "unNurseSubmitCount",date));
|
|
|
|
|
remindList.addAll(remindDoctorCheck(vo, userList, 2, "unNurseSubmitCount"));
|
|
|
|
|
//通知护士质控员
|
|
|
|
|
remindList.addAll(remindDoctorCheck(vo, userList, 8, "unNurseCheckCount",date));
|
|
|
|
|
remindList.addAll(remindDoctorCheck(vo, userList, 8, "unNurseCheckCount"));
|
|
|
|
|
//通知护士长
|
|
|
|
|
remindList.addAll(remindDoctorCheck(vo, userList, 7, "unHeadNurseCount",date));
|
|
|
|
|
remindList.addAll(remindDoctorCheck(vo, userList, 7, "unHeadNurseCount"));
|
|
|
|
|
//通知病案室
|
|
|
|
|
remindList.addAll(remindDoctorCheck(vo, userList, 3, "unRecordRoomCount",date));
|
|
|
|
|
remindList.addAll(remindDoctorCheck(vo, userList, 3, "unRecordRoomCount"));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
@ -176,7 +220,7 @@ public class Task1 {
|
|
|
|
|
* @param userList
|
|
|
|
|
* @return
|
|
|
|
|
*/
|
|
|
|
|
private List<ArchiveRemindDeptUserInfo> remindDoctorCheck(SubmitRecord vo, List<User> userList,Integer roleId,String fieldName,Date date) throws Exception{
|
|
|
|
|
private List<ArchiveRemindDeptUserInfo> remindDoctorCheck(SubmitRecord vo, List<User> userList,Integer roleId,String fieldName) throws Exception{
|
|
|
|
|
List<ArchiveRemindDeptUserInfo> list = new ArrayList<>();
|
|
|
|
|
//通过放射获取属性值,获取待审核份数
|
|
|
|
|
Field field = vo.getClass().getDeclaredField(fieldName);
|
|
|
|
|
@ -190,7 +234,7 @@ public class Task1 {
|
|
|
|
|
//根据用户名获取用户
|
|
|
|
|
User currentUser = selectUserByUserName(user.getUserName(),userList);
|
|
|
|
|
//添加记录
|
|
|
|
|
ArchiveRemindDeptUserInfo obj = setArchiveRemindDeptUserInfo(vo, currentUser, unCheckCount,date);
|
|
|
|
|
ArchiveRemindDeptUserInfo obj = setArchiveRemindDeptUserInfo(vo, currentUser, unCheckCount);
|
|
|
|
|
list.add(obj);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
@ -204,7 +248,7 @@ public class Task1 {
|
|
|
|
|
* @param userList
|
|
|
|
|
* @return
|
|
|
|
|
*/
|
|
|
|
|
private List<ArchiveRemindDeptUserInfo> remindDoctor(SubmitRecord vo, List<User> userList,RecordSearch recordSearch,Date date) {
|
|
|
|
|
private List<ArchiveRemindDeptUserInfo> remindDoctor(SubmitRecord vo, List<User> userList,RecordSearch recordSearch) throws Exception {
|
|
|
|
|
List<ArchiveRemindDeptUserInfo> list = new ArrayList<>();
|
|
|
|
|
if(vo.getUnDoctorSubmitCount() > 0){
|
|
|
|
|
String deptCode = vo.getDeptName();
|
|
|
|
|
@ -222,7 +266,7 @@ public class Task1 {
|
|
|
|
|
User user = selectUserByUserName(key,deptCode, userList);
|
|
|
|
|
//设置插入信息
|
|
|
|
|
int count = map.get(key);
|
|
|
|
|
ArchiveRemindDeptUserInfo obj = setArchiveRemindDeptUserInfo(vo, user, count,date);
|
|
|
|
|
ArchiveRemindDeptUserInfo obj = setArchiveRemindDeptUserInfo(vo, user, count);
|
|
|
|
|
list.add(obj);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
@ -237,15 +281,15 @@ public class Task1 {
|
|
|
|
|
* @param count
|
|
|
|
|
* @return
|
|
|
|
|
*/
|
|
|
|
|
private ArchiveRemindDeptUserInfo setArchiveRemindDeptUserInfo(SubmitRecord vo,User currentUser,int count,Date date) {
|
|
|
|
|
private ArchiveRemindDeptUserInfo setArchiveRemindDeptUserInfo(SubmitRecord vo,User currentUser,int count) throws Exception {
|
|
|
|
|
//填充信息
|
|
|
|
|
ArchiveRemindDeptUserInfo obj = new ArchiveRemindDeptUserInfo();
|
|
|
|
|
//设置唯一id
|
|
|
|
|
obj.setMessId(IDHelper.NewID() + "");
|
|
|
|
|
//设置科室编号
|
|
|
|
|
obj.setDeptCode(vo.getDeptName());
|
|
|
|
|
//设置科室名称
|
|
|
|
|
obj.setDeptName(vo.getDeptNameCn());
|
|
|
|
|
//设置创建时间
|
|
|
|
|
obj.setCreateTime(date);
|
|
|
|
|
//设置初始化标识
|
|
|
|
|
obj.setSendSuccess(new Byte("0"));
|
|
|
|
|
//设置用户名
|
|
|
|
|
@ -279,7 +323,7 @@ public class Task1 {
|
|
|
|
|
private User selectUserByUserName(String userName, List<User> userList) {
|
|
|
|
|
if(!CollectionUtils.isEmpty(userList)){
|
|
|
|
|
for(User user : userList){
|
|
|
|
|
if(StringUtils.isNotBlank(user.getUserTel()) && user.getUserName().equals(userName)){
|
|
|
|
|
if(user.getUserName().equals(userName)){
|
|
|
|
|
return user;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
@ -297,7 +341,7 @@ public class Task1 {
|
|
|
|
|
private User selectUserByUserName(String name, String deptCode,List<User> userList) {
|
|
|
|
|
if(!CollectionUtils.isEmpty(userList)){
|
|
|
|
|
for(User user : userList){
|
|
|
|
|
if(StringUtils.isNotBlank(user.getUserTel()) && user.getName().equals(name) && StringUtils.isNotBlank(user.getDeptCode()) && user.getDeptCode().equals(deptCode)){
|
|
|
|
|
if(StringUtils.isNotBlank(user.getName()) && user.getName().equals(name) && StringUtils.isNotBlank(user.getDeptCode()) && user.getDeptCode().equals(deptCode)){
|
|
|
|
|
return user;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
@ -316,7 +360,7 @@ public class Task1 {
|
|
|
|
|
List<User> list = new ArrayList<>();
|
|
|
|
|
if(!CollectionUtils.isEmpty(userList)){
|
|
|
|
|
for(User user : userList){
|
|
|
|
|
if(StringUtils.isNotBlank(user.getUserTel()) && user.getRoleId().equals(roleId) && StringUtils.isNotBlank(user.getDeptCode()) && user.getDeptCode().equals(deptCode)){
|
|
|
|
|
if(user.getRoleId().equals(roleId) && StringUtils.isNotBlank(user.getDeptCode()) && user.getDeptCode().equals(deptCode)){
|
|
|
|
|
list.add(user);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|