diff --git a/talkonlineweb/src/main/java/com/lyms/talkonlineweb/controller/ChatGroupController.java b/talkonlineweb/src/main/java/com/lyms/talkonlineweb/controller/ChatGroupController.java index d9baf93..bec7c93 100644 --- a/talkonlineweb/src/main/java/com/lyms/talkonlineweb/controller/ChatGroupController.java +++ b/talkonlineweb/src/main/java/com/lyms/talkonlineweb/controller/ChatGroupController.java @@ -22,6 +22,7 @@ import org.apache.commons.io.IOUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; @@ -34,6 +35,8 @@ import java.util.*; @RequestMapping("chat") @Log4j2 public class ChatGroupController { + @Value("${hx.hxuser}") + private String hxuser; @Autowired private LymsChatgroupService lymsChatgroupService; @@ -81,7 +84,7 @@ public class ChatGroupController { String retDlogin=group.getRetDlogin(); List gLst = lymsChatgroupService.list(Wrappers.query(group).orderByDesc("id")); if (group.getOwnerk() == null) { - group.setOwnerk("test"); + group.setOwnerk(hxuser); } LymsPatient patient= lymsPatientService.getOne(new QueryWrapper() .lambda().eq(LymsPatient::getIdno, group.getFromp())); diff --git a/talkonlineweb/src/main/java/com/lyms/talkonlineweb/controller/TkRecordController.java b/talkonlineweb/src/main/java/com/lyms/talkonlineweb/controller/TkRecordController.java index 959de8e..a87913e 100644 --- a/talkonlineweb/src/main/java/com/lyms/talkonlineweb/controller/TkRecordController.java +++ b/talkonlineweb/src/main/java/com/lyms/talkonlineweb/controller/TkRecordController.java @@ -14,6 +14,7 @@ import com.lyms.talkonlineweb.util.StringUtil; import lombok.extern.log4j.Log4j2; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -25,7 +26,8 @@ import java.util.List; @RequestMapping("tk") @Log4j2 public class TkRecordController { - + @Value("${hx.hxuser}") + private String hxuser; @Autowired private LymsTkrecordService lymsTkrecordService; @Autowired @@ -90,7 +92,7 @@ public class TkRecordController { .lambda().eq(LymsChatgroup::getPcid, tkrecord.getPcid())); //之前有这个病例的问诊就不用新创建组 if (0==gLst.size()) { - group.setOwnerk("test"); + group.setOwnerk(hxuser); List adminDlogins=new ArrayList<>(); adminDlogins.add(patient.getIdno()); List groupnames=new ArrayList<>(); diff --git a/talkonlineweb/src/main/java/com/lyms/talkonlineweb/task/PushChatInfoTask.java b/talkonlineweb/src/main/java/com/lyms/talkonlineweb/task/PushChatInfoTask.java index ef149d9..bb3e1a3 100644 --- a/talkonlineweb/src/main/java/com/lyms/talkonlineweb/task/PushChatInfoTask.java +++ b/talkonlineweb/src/main/java/com/lyms/talkonlineweb/task/PushChatInfoTask.java @@ -63,11 +63,16 @@ public class PushChatInfoTask { private LymsTkrecordService lymsTkrecordService; /** - * 每天19点执行回访信息系统回复 + * 每天19点执行自动回访功能 + * 第二天:就诊医生 + * 第五天:值班护士 + * 第十天:值班医生 + * 第二十天:就诊医生 + * 第三十天:值班医生 */ @Scheduled(cron = "0 0 19 * * ?") public void pushChatInfo() { - + //用户下的病例信息。每个环信群组代表一个病例,一个病例下有多个疾病种类。 List> PcInfoList=lymsPatientService.getPcInfoList(); for (Map map : PcInfoList) { @@ -82,158 +87,189 @@ public class PushChatInfoTask { @Transactional(rollbackFor = Exception.class) public void getPcInfoList(Map map){ - LymsChatgroup chatgroup = lymsChatgroupService.getOne(new QueryWrapper() - .lambda().eq(LymsChatgroup::getPcid, (Integer)map.get("pcid"))); + //患者信息 LymsPatient patient= lymsPatientService.getOne(new QueryWrapper() .lambda().eq(LymsPatient::getIdno, map.get("idno").toString())); + //医生信息 LymsDoctor doctor= lymsDoctorService.getOne(new QueryWrapper() .lambda().eq(LymsDoctor::getDlogin, map.get("dlogin").toString())); - if(null==chatgroup){ - //创建聊天群组 - chatgroup=addChatGroup(map,patient,doctor); - } - - if (null!=chatgroup) { - final List returnVisitRecords = lymsReturnVisitRecordService.list(new QueryWrapper() - .lambda().eq(LymsReturnVisitRecord::getPcid, (Integer)map.get("pcid")) - .eq(LymsReturnVisitRecord::getType, 0)); - List doctorAminList= lymsDoctorService.list(new QueryWrapper() - .lambda().eq(LymsDoctor::getDpid, doctor.getDpid()) - .in(LymsDoctor::getAdminType, Arrays.asList(1,2)) - .orderByAsc(LymsDoctor::getAdminType)); - int day = DateUtil.daysBetween(DateUtil.parseYMD(map.get("createdtime").toString()),new Date()); - switch (returnVisitRecords.size()) { - case 0: - if (day==1) { - //就诊医生回复 - final List lymsIllnessList = lymsIllnessService.list(new QueryWrapper() - .lambda().eq(LymsIllness::getPcid, (Integer) map.get("pcid"))); + //值班医生/值班护士信息 + List doctorAminList= lymsDoctorService.list(new QueryWrapper() + .lambda().eq(LymsDoctor::getDpid, doctor.getDpid()) + .in(LymsDoctor::getAdminType, Arrays.asList(1,2)) + .orderByAsc(LymsDoctor::getAdminType)); + //回访记录 + final List returnVisitRecords = lymsReturnVisitRecordService.list(new QueryWrapper() + .lambda().eq(LymsReturnVisitRecord::getPcid, (Integer)map.get("pcid")) + .eq(LymsReturnVisitRecord::getType, 0)); + //计算(自动回复周期上传病例后- 1:第二天2:第五天3:第十天4:第二十天5:第三十天) + int day = DateUtil.daysBetween(DateUtil.parseYMD(map.get("createdtime").toString()),new Date()); + switch (returnVisitRecords.size()) { + case 0: + if (day==1) { + //环信聊天群组信息 + LymsChatgroup chatgroup = lymsChatgroupService.getOne(new QueryWrapper() + .lambda().eq(LymsChatgroup::getPcid, (Integer)map.get("pcid"))); + if(null==chatgroup){ + //创建聊天群组 + chatgroup=addChatGroup(map,patient,doctor); + } + //就诊医生回复 + final List lymsIllnessList = lymsIllnessService.list(new QueryWrapper() + .lambda().eq(LymsIllness::getPcid, (Integer) map.get("pcid"))); - for (LymsIllness lymsIllness : lymsIllnessList) { - final LymsChatInfo chatInfo = lymsChatInfoService.getOne(new QueryWrapper() - .lambda().eq(LymsChatInfo::getIllid, lymsIllness.getIid()) - .eq(LymsChatInfo::getType, 1)); - //推送回访 - if (null!=chatInfo && StringUtil.isNotEmpty(chatgroup.getHxgroupid()) && null!=doctor) { - //推送回访消息和保存发送记录 - pushOrMessage(null,chatgroup,chatInfo,doctor); - }else { - throw new RuntimeException("参数不符合"); - } + for (LymsIllness lymsIllness : lymsIllnessList) { + final LymsChatInfo chatInfo = lymsChatInfoService.getOne(new QueryWrapper() + .lambda().eq(LymsChatInfo::getIllid, lymsIllness.getIid()) + .eq(LymsChatInfo::getType, 1)); + //推送回访 + if (null!=chatInfo && StringUtil.isNotEmpty(chatgroup.getHxgroupid()) && null!=doctor) { + //推送回访消息和保存发送记录 + pushOrMessage(null,chatgroup,chatInfo,doctor); + }else { + throw new RuntimeException("参数不符合"); } - //增加回访记录,修改环信群组状态,修改问诊记录状态 - addReturnVisitRecordOrUpdate(null,chatgroup ,patient,doctor); } - break; - case 1: - if (day==4) { - //获取值班护士回复 - String dlogin=""; - for (LymsDoctor lymsDoctor : doctorAminList) { - if (lymsDoctor.getAdminType()==2) { - dlogin=lymsDoctor.getDlogin(); - return; - } + //增加回访记录,修改环信群组状态,修改问诊记录状态 + addReturnVisitRecordOrUpdate(null,chatgroup ,patient,doctor); + } + break; + case 1: + if (day==4) { + //环信群组信息 + LymsChatgroup chatgroup = lymsChatgroupService.getOne(new QueryWrapper() + .lambda().eq(LymsChatgroup::getPcid, (Integer)map.get("pcid"))); + if(null==chatgroup){ + //创建聊天群组 + chatgroup=addChatGroup(map,patient,doctor); + } + //获取值班护士回复 + String dlogin=""; + for (LymsDoctor lymsDoctor : doctorAminList) { + if (lymsDoctor.getAdminType()==2) { + dlogin=lymsDoctor.getDlogin(); + return; } - final List lymsIllnessList = lymsIllnessService.list(new QueryWrapper() - .lambda().eq(LymsIllness::getPcid, (Integer) map.get("pcid"))); - for (LymsIllness lymsIllness : lymsIllnessList) { - final LymsChatInfo chatInfo = lymsChatInfoService.getOne(new QueryWrapper() - .lambda().eq(LymsChatInfo::getIllid, lymsIllness.getIid()) - .eq(LymsChatInfo::getType, 2)); - //推送回访 - if (null!=chatInfo && StringUtil.isNotEmpty(chatgroup.getHxgroupid()) && null!=doctor) { - //推送回访消息和保存发送记录 - pushOrMessage(dlogin,chatgroup,chatInfo,doctor); - }else { - throw new RuntimeException("参数不符合"); - } + } + final List lymsIllnessList = lymsIllnessService.list(new QueryWrapper() + .lambda().eq(LymsIllness::getPcid, (Integer) map.get("pcid"))); + for (LymsIllness lymsIllness : lymsIllnessList) { + final LymsChatInfo chatInfo = lymsChatInfoService.getOne(new QueryWrapper() + .lambda().eq(LymsChatInfo::getIllid, lymsIllness.getIid()) + .eq(LymsChatInfo::getType, 2)); + //推送回访 + if (null!=chatInfo && StringUtil.isNotEmpty(chatgroup.getHxgroupid()) && null!=doctor) { + //推送回访消息和保存发送记录 + pushOrMessage(dlogin,chatgroup,chatInfo,doctor); + }else { + throw new RuntimeException("参数不符合"); } - //增加回访记录,修改环信群组状态,修改问诊记录状态 - addReturnVisitRecordOrUpdate(dlogin,chatgroup ,patient,doctor); } - break; - case 2: - if (day==9) { - //获取值班医生回复 - String dlogin=""; - for (LymsDoctor lymsDoctor : doctorAminList) { - if (lymsDoctor.getAdminType()==1) { - dlogin=lymsDoctor.getDlogin(); - return; - } + //增加回访记录,修改环信群组状态,修改问诊记录状态 + addReturnVisitRecordOrUpdate(dlogin,chatgroup ,patient,doctor); + } + break; + case 2: + if (day==9) { + //环信群组信息 + LymsChatgroup chatgroup = lymsChatgroupService.getOne(new QueryWrapper() + .lambda().eq(LymsChatgroup::getPcid, (Integer)map.get("pcid"))); + if(null==chatgroup){ + //创建聊天群组 + chatgroup=addChatGroup(map,patient,doctor); + } + //获取值班医生回复 + String dlogin=""; + for (LymsDoctor lymsDoctor : doctorAminList) { + if (lymsDoctor.getAdminType()==1) { + dlogin=lymsDoctor.getDlogin(); + return; } - final List lymsIllnessList = lymsIllnessService.list(new QueryWrapper() - .lambda().eq(LymsIllness::getPcid, (Integer) map.get("pcid"))); - int i=0; - for (LymsIllness lymsIllness : lymsIllnessList) { - final LymsChatInfo chatInfo = lymsChatInfoService.getOne(new QueryWrapper() - .lambda().eq(LymsChatInfo::getIllid, lymsIllness.getIid()) - .eq(LymsChatInfo::getType, 3)); - //推送回访 - if (null!=chatInfo && StringUtil.isNotEmpty(chatgroup.getHxgroupid()) && null!=doctor) { - //推送回访消息和保存发送记录 - pushOrMessage(dlogin,chatgroup,chatInfo,doctor); - }else { - throw new RuntimeException("参数不符合"); - } + } + final List lymsIllnessList = lymsIllnessService.list(new QueryWrapper() + .lambda().eq(LymsIllness::getPcid, (Integer) map.get("pcid"))); + int i=0; + for (LymsIllness lymsIllness : lymsIllnessList) { + final LymsChatInfo chatInfo = lymsChatInfoService.getOne(new QueryWrapper() + .lambda().eq(LymsChatInfo::getIllid, lymsIllness.getIid()) + .eq(LymsChatInfo::getType, 3)); + //推送回访 + if (null!=chatInfo && StringUtil.isNotEmpty(chatgroup.getHxgroupid()) && null!=doctor) { + //推送回访消息和保存发送记录 + pushOrMessage(dlogin,chatgroup,chatInfo,doctor); + }else { + throw new RuntimeException("参数不符合"); } - //增加回访记录,修改环信群组状态,修改问诊记录状态 - addReturnVisitRecordOrUpdate(dlogin,chatgroup ,patient,doctor); } - break; - case 3: - if (day==19) { - //就诊医生回复 - final List lymsIllnessList = lymsIllnessService.list(new QueryWrapper() - .lambda().eq(LymsIllness::getPcid, (Integer) map.get("pcid"))); - int i=0; - for (LymsIllness lymsIllness : lymsIllnessList) { - final LymsChatInfo chatInfo = lymsChatInfoService.getOne(new QueryWrapper() - .lambda().eq(LymsChatInfo::getIllid, lymsIllness.getIid()) - .eq(LymsChatInfo::getType, 4)); - //推送回访 - if (null!=chatInfo && StringUtil.isNotEmpty(chatgroup.getHxgroupid()) && null!=doctor) { - //推送回访消息和保存发送记录 - pushOrMessage(null,chatgroup,chatInfo,doctor); - }else { - throw new RuntimeException("参数不符合"); - } + //增加回访记录,修改环信群组状态,修改问诊记录状态 + addReturnVisitRecordOrUpdate(dlogin,chatgroup ,patient,doctor); + } + break; + case 3: + if (day==19) { + //环信群组信息 + LymsChatgroup chatgroup = lymsChatgroupService.getOne(new QueryWrapper() + .lambda().eq(LymsChatgroup::getPcid, (Integer)map.get("pcid"))); + if(null==chatgroup){ + //创建聊天群组 + chatgroup=addChatGroup(map,patient,doctor); + } + //就诊医生回复 + final List lymsIllnessList = lymsIllnessService.list(new QueryWrapper() + .lambda().eq(LymsIllness::getPcid, (Integer) map.get("pcid"))); + int i=0; + for (LymsIllness lymsIllness : lymsIllnessList) { + final LymsChatInfo chatInfo = lymsChatInfoService.getOne(new QueryWrapper() + .lambda().eq(LymsChatInfo::getIllid, lymsIllness.getIid()) + .eq(LymsChatInfo::getType, 4)); + //推送回访 + if (null!=chatInfo && StringUtil.isNotEmpty(chatgroup.getHxgroupid()) && null!=doctor) { + //推送回访消息和保存发送记录 + pushOrMessage(null,chatgroup,chatInfo,doctor); + }else { + throw new RuntimeException("参数不符合"); } - //增加回访记录,修改环信群组状态,修改问诊记录状态 - addReturnVisitRecordOrUpdate(null,chatgroup ,patient,doctor); } - break; - case 4: - if (day==29) { - //获取值班医生回复 - String dlogin=""; - for (LymsDoctor lymsDoctor : doctorAminList) { - if (lymsDoctor.getAdminType()==1) { - dlogin=lymsDoctor.getDlogin(); - return; - } + //增加回访记录,修改环信群组状态,修改问诊记录状态 + addReturnVisitRecordOrUpdate(null,chatgroup ,patient,doctor); + } + break; + case 4: + if (day==29) { + //环信群组信息 + LymsChatgroup chatgroup = lymsChatgroupService.getOne(new QueryWrapper() + .lambda().eq(LymsChatgroup::getPcid, (Integer)map.get("pcid"))); + if(null==chatgroup){ + //创建聊天群组 + chatgroup=addChatGroup(map,patient,doctor); + } + //获取值班医生回复 + String dlogin=""; + for (LymsDoctor lymsDoctor : doctorAminList) { + if (lymsDoctor.getAdminType()==1) { + dlogin=lymsDoctor.getDlogin(); + return; } - final List lymsIllnessList = lymsIllnessService.list(new QueryWrapper() - .lambda().eq(LymsIllness::getPcid, (Integer) map.get("pcid"))); - int i=0; - for (LymsIllness lymsIllness : lymsIllnessList) { - final LymsChatInfo chatInfo = lymsChatInfoService.getOne(new QueryWrapper() - .lambda().eq(LymsChatInfo::getIllid, lymsIllness.getIid()) - .eq(LymsChatInfo::getType, 5)); - ///推送回访 - if (null!=chatInfo && StringUtil.isNotEmpty(chatgroup.getHxgroupid()) && null!=doctor) { - //推送回访消息和保存发送记录 - pushOrMessage(dlogin,chatgroup,chatInfo,doctor); - }else { - throw new RuntimeException("参数不符合"); - } + } + final List lymsIllnessList = lymsIllnessService.list(new QueryWrapper() + .lambda().eq(LymsIllness::getPcid, (Integer) map.get("pcid"))); + int i=0; + for (LymsIllness lymsIllness : lymsIllnessList) { + final LymsChatInfo chatInfo = lymsChatInfoService.getOne(new QueryWrapper() + .lambda().eq(LymsChatInfo::getIllid, lymsIllness.getIid()) + .eq(LymsChatInfo::getType, 5)); + ///推送回访 + if (null!=chatInfo && StringUtil.isNotEmpty(chatgroup.getHxgroupid()) && null!=doctor) { + //推送回访消息和保存发送记录 + pushOrMessage(dlogin,chatgroup,chatInfo,doctor); + }else { + throw new RuntimeException("参数不符合"); } - //增加回访记录,修改环信群组状态,修改问诊记录状态 - addReturnVisitRecordOrUpdate(dlogin,chatgroup ,patient,doctor); } - break; - } + //增加回访记录,修改环信群组状态,修改问诊记录状态 + addReturnVisitRecordOrUpdate(dlogin,chatgroup ,patient,doctor); + } + break; } }