From c21c042b90d62bbf78ac01350eb431cde529e944 Mon Sep 17 00:00:00 2001 From: zengwh <81383286@qq.com> Date: Fri, 30 Oct 2020 11:00:42 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E7=89=88=E6=9C=AC20201030?= =?UTF-8?q?=EF=BC=8C=E8=B6=85=E6=9C=9F=E6=8F=90=E5=89=8D=E6=8F=90=E9=86=92?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../emr/entity/ArchiveRemindDeptUserInfo.java | 11 ++ src/main/java/com/emr/quart/Task1.java | 114 ++++++++++++------ src/main/java/com/emr/util/OracleConnect.java | 13 ++ .../ArchiveRemindDeptUserInfoMapper.xml | 45 ++++--- src/main/webapp/WEB-INF/views/index.jsp | 2 +- 5 files changed, 132 insertions(+), 53 deletions(-) diff --git a/src/main/java/com/emr/entity/ArchiveRemindDeptUserInfo.java b/src/main/java/com/emr/entity/ArchiveRemindDeptUserInfo.java index 35aeb12..8692ddb 100644 --- a/src/main/java/com/emr/entity/ArchiveRemindDeptUserInfo.java +++ b/src/main/java/com/emr/entity/ArchiveRemindDeptUserInfo.java @@ -6,6 +6,8 @@ import java.util.Date; public class ArchiveRemindDeptUserInfo implements Serializable { private Integer id; + private String messId; + private String userName; private String userTel; @@ -46,6 +48,14 @@ public class ArchiveRemindDeptUserInfo implements Serializable { this.id = id; } + public String getMessId() { + return messId; + } + + public void setMessId(String messId) { + this.messId = messId == null ? null : messId.trim(); + } + public String getUserName() { return userName; } @@ -173,6 +183,7 @@ public class ArchiveRemindDeptUserInfo implements Serializable { sb.append(" ["); sb.append("Hash = ").append(hashCode()); sb.append(", id=").append(id); + sb.append(", messId=").append(messId); sb.append(", userName=").append(userName); sb.append(", userTel=").append(userTel); sb.append(", name=").append(name); diff --git a/src/main/java/com/emr/quart/Task1.java b/src/main/java/com/emr/quart/Task1.java index a2157a0..98ff424 100644 --- a/src/main/java/com/emr/quart/Task1.java +++ b/src/main/java/com/emr/quart/Task1.java @@ -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 list, List 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 remindList, SubmitRecord vo, List userList) throws Exception { + private void selectRemindOtherRoleInfo(List remindList, SubmitRecord vo, List 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 remindDoctorCheck(SubmitRecord vo, List userList,Integer roleId,String fieldName,Date date) throws Exception{ + private List remindDoctorCheck(SubmitRecord vo, List userList,Integer roleId,String fieldName) throws Exception{ List 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 remindDoctor(SubmitRecord vo, List userList,RecordSearch recordSearch,Date date) { + private List remindDoctor(SubmitRecord vo, List userList,RecordSearch recordSearch) throws Exception { List 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 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 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 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); } } diff --git a/src/main/java/com/emr/util/OracleConnect.java b/src/main/java/com/emr/util/OracleConnect.java index 50739c3..6e9137b 100644 --- a/src/main/java/com/emr/util/OracleConnect.java +++ b/src/main/java/com/emr/util/OracleConnect.java @@ -110,4 +110,17 @@ public class OracleConnect { OracleConnect.CloseConn(rs, pst, conn); return str; } + + public static int insert(String sql) throws Exception { + Connection conn = new OracleConnect().getConnect(); + try { + pst=conn.prepareStatement(sql); + return pst.executeUpdate(); + } catch (SQLException e) { + e.printStackTrace(); + }finally { + OracleConnect.CloseConn(null, pst, conn); + } + return 1; + } } diff --git a/src/main/resources/mapper/ArchiveRemindDeptUserInfoMapper.xml b/src/main/resources/mapper/ArchiveRemindDeptUserInfoMapper.xml index 1cc7ac5..2263128 100644 --- a/src/main/resources/mapper/ArchiveRemindDeptUserInfoMapper.xml +++ b/src/main/resources/mapper/ArchiveRemindDeptUserInfoMapper.xml @@ -3,6 +3,7 @@ + @@ -20,8 +21,8 @@ - id, user_name, user_tel, name, role_id, dept_code, create_time, send_success, send_context, - role_name, dept_name, user_wechat, int1, str1, int2, str2 + id, mess_id, user_name, user_tel, name, role_id, dept_code, create_time, send_success, + send_context, role_name, dept_name, user_wechat, int1, str1, int2, str2