更新版本20201030,超期提前提醒

master
zengwh 5 years ago
parent 439f184d3c
commit c21c042b90

@ -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);

@ -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);
}
}

@ -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;
}
}

@ -3,6 +3,7 @@
<mapper namespace="com.emr.dao.ArchiveRemindDeptUserInfoMapper" >
<resultMap id="BaseResultMap" type="com.emr.entity.ArchiveRemindDeptUserInfo" >
<id column="id" property="id" jdbcType="INTEGER" />
<result column="mess_id" property="messId" jdbcType="VARCHAR" />
<result column="user_name" property="userName" jdbcType="NVARCHAR" />
<result column="user_tel" property="userTel" jdbcType="VARCHAR" />
<result column="name" property="name" jdbcType="NVARCHAR" />
@ -20,8 +21,8 @@
<result column="str2" property="str2" jdbcType="NVARCHAR" />
</resultMap>
<sql id="Base_Column_List" >
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
</sql>
<select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer" >
select
@ -34,18 +35,18 @@
where id = #{id,jdbcType=INTEGER}
</delete>
<insert id="insert" parameterType="com.emr.entity.ArchiveRemindDeptUserInfo" >
insert into archive_remind_dept_user_info (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)
values (#{id,jdbcType=INTEGER}, #{userName,jdbcType=NVARCHAR}, #{userTel,jdbcType=VARCHAR},
#{name,jdbcType=NVARCHAR}, #{roleId,jdbcType=INTEGER}, #{deptCode,jdbcType=VARCHAR},
#{createTime,jdbcType=TIMESTAMP}, #{sendSuccess,jdbcType=TINYINT}, #{sendContext,jdbcType=NVARCHAR},
#{roleName,jdbcType=NVARCHAR}, #{deptName,jdbcType=NVARCHAR}, #{userWechat,jdbcType=NVARCHAR},
#{int1,jdbcType=INTEGER}, #{str1,jdbcType=NVARCHAR}, #{int2,jdbcType=INTEGER},
#{str2,jdbcType=NVARCHAR})
insert into archive_remind_dept_user_info (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)
values (#{id,jdbcType=INTEGER}, #{messId,jdbcType=VARCHAR}, #{userName,jdbcType=NVARCHAR},
#{userTel,jdbcType=VARCHAR}, #{name,jdbcType=NVARCHAR}, #{roleId,jdbcType=INTEGER},
#{deptCode,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP}, #{sendSuccess,jdbcType=TINYINT},
#{sendContext,jdbcType=NVARCHAR}, #{roleName,jdbcType=NVARCHAR}, #{deptName,jdbcType=NVARCHAR},
#{userWechat,jdbcType=NVARCHAR}, #{int1,jdbcType=INTEGER}, #{str1,jdbcType=NVARCHAR},
#{int2,jdbcType=INTEGER}, #{str2,jdbcType=NVARCHAR})
</insert>
<insert id="insertSelective" parameterType="com.emr.entity.ArchiveRemindDeptUserInfo" >
insert into archive_remind_dept_user_info
@ -53,6 +54,9 @@
<if test="id != null" >
id,
</if>
<if test="messId != null" >
mess_id,
</if>
<if test="userName != null" >
user_name,
</if>
@ -103,6 +107,9 @@
<if test="id != null" >
#{id,jdbcType=INTEGER},
</if>
<if test="messId != null" >
#{messId,jdbcType=VARCHAR},
</if>
<if test="userName != null" >
#{userName,jdbcType=NVARCHAR},
</if>
@ -153,6 +160,9 @@
<update id="updateByPrimaryKeySelective" parameterType="com.emr.entity.ArchiveRemindDeptUserInfo" >
update archive_remind_dept_user_info
<set >
<if test="messId != null" >
mess_id = #{messId,jdbcType=VARCHAR},
</if>
<if test="userName != null" >
user_name = #{userName,jdbcType=NVARCHAR},
</if>
@ -203,7 +213,8 @@
</update>
<update id="updateByPrimaryKey" parameterType="com.emr.entity.ArchiveRemindDeptUserInfo" >
update archive_remind_dept_user_info
set user_name = #{userName,jdbcType=NVARCHAR},
set mess_id = #{messId,jdbcType=VARCHAR},
user_name = #{userName,jdbcType=NVARCHAR},
user_tel = #{userTel,jdbcType=VARCHAR},
name = #{name,jdbcType=NVARCHAR},
role_id = #{roleId,jdbcType=INTEGER},
@ -221,7 +232,7 @@
where id = #{id,jdbcType=INTEGER}
</update>
<insert id="insertBatch">
insert into archive_remind_dept_user_info(user_name, user_tel,
insert into archive_remind_dept_user_info(mess_id,user_name, user_tel,
name, role_id, dept_code,
create_time, send_success, send_context,
role_name, dept_name, user_wechat,
@ -229,7 +240,7 @@
str2)
values
<foreach collection="list" item="item" separator=",">
(#{item.userName,jdbcType=NVARCHAR}, #{item.userTel,jdbcType=VARCHAR},
(#{item.messId,jdbcType=VARCHAR},#{item.userName,jdbcType=NVARCHAR}, #{item.userTel,jdbcType=VARCHAR},
#{item.name,jdbcType=NVARCHAR}, #{item.roleId,jdbcType=INTEGER}, #{item.deptCode,jdbcType=VARCHAR},
#{item.createTime,jdbcType=TIMESTAMP}, #{item.sendSuccess,jdbcType=TINYINT}, #{item.sendContext,jdbcType=NVARCHAR},
#{item.roleName,jdbcType=NVARCHAR}, #{item.deptName,jdbcType=NVARCHAR}, #{item.userWechat,jdbcType=NVARCHAR},

@ -354,7 +354,7 @@
</div>
<footer class="main-footer">
<div class="pull-right">
<b>Version</b> 20201029
<b>Version</b> 20201030
</div>
<strong>Copyright &copy; 2019-2090 厦门嘉时软件.</strong> All rights
reserved.

Loading…
Cancel
Save