From 9ff8e4eaff4fed1a0f82a88c34c1425e6fdaf347 Mon Sep 17 00:00:00 2001 From: shiyang <316555390@qq.com> Date: Fri, 20 May 2022 14:22:35 +0800 Subject: [PATCH] =?UTF-8?q?=E7=A7=91=E5=AE=A4=E5=80=BC=E7=8F=AD=E5=8C=BB?= =?UTF-8?q?=E7=94=9F/=E6=8A=A4=E5=A3=AB=20=EF=BC=8C=E5=9B=9E=E8=AE=BF?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/ChatGroupController.java | 98 +++++++++++++++++++--- .../talkonlineweb/controller/DoctorController.java | 22 +++-- .../controller/TkRecordController.java | 22 +++-- .../lyms/talkonlineweb/domain/LymsChatgroup.java | 14 ++-- .../com/lyms/talkonlineweb/domain/LymsDoctor.java | 2 +- .../com/lyms/talkonlineweb/domain/LymsMessage.java | 10 ++- .../talkonlineweb/mapper/LymsChatgroupMapper.java | 5 +- .../talkonlineweb/mapper/LymsMessageMapper.java | 8 ++ .../talkonlineweb/service/LymsMessageService.java | 3 + .../service/impl/LymsMessageServiceImpl.java | 6 ++ 10 files changed, 156 insertions(+), 34 deletions(-) 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 b3f372e..58c2ac9 100644 --- a/talkonlineweb/src/main/java/com/lyms/talkonlineweb/controller/ChatGroupController.java +++ b/talkonlineweb/src/main/java/com/lyms/talkonlineweb/controller/ChatGroupController.java @@ -62,6 +62,10 @@ public class ChatGroupController { @Autowired private AppgetdoctorlistInfoService appgetdoctorlistInfoService; + @Autowired + private LymsChatInfoService lymsChatInfoService; + @Autowired + private LymsReturnVisitRecordService lymsReturnVisitRecordService; /** * 添加或删除聊天组 @@ -80,6 +84,24 @@ public class ChatGroupController { if (gLst.size() > 0) { LymsChatgroup group2 = gLst.get(0); group = group2; + //回访的状态才去执行 + if (1==group2.getType()) { + group2.setStat(0); + //修改群组状态 + lymsChatgroupService.updateById(group2); + //添加回访记录 + LymsPatient patient= lymsPatientService.getOne(new QueryWrapper() + .lambda().eq(LymsPatient::getIdno, group.getFromp())); + LymsDoctor doctor= lymsDoctorService.getOne(new QueryWrapper() + .lambda().eq(LymsDoctor::getDlogin, group.getTarget())); + LymsReturnVisitRecord returnVisitRecord=new LymsReturnVisitRecord(); + returnVisitRecord.setDlogins(doctor.getDlogin()); + returnVisitRecord.setDpid(doctor.getDpid()); + returnVisitRecord.setIdno(patient.getIdno()); + returnVisitRecord.setType(1); + returnVisitRecord.setHxgroupid(group2.getHxgroupid()); + lymsReturnVisitRecordService.save(returnVisitRecord); + } } else { LymsPatient patient= lymsPatientService.getOne(new QueryWrapper() .lambda().eq(LymsPatient::getIdno, group.getFromp())); @@ -123,14 +145,14 @@ public class ChatGroupController { if (rArr.size() > 0) { doctor.setHxid(rArr.getJSONObject(0).getString("uuid")); lymsDoctorService.updateById(doctor); - adminDlogins.add(doctor.getDlogin()); - groupnames.add(doctor.getDname()); } + adminDlogins.add(doctor.getDlogin()); + groupnames.add(doctor.getDname()); } } log.info("创建环信组:{} description:{}", group.getOwnerk(), StringUtils.join(adminDlogins.toArray(), ",")); - JSONObject rJson = hxService.addChatGroups(StringUtils.join(adminDlogins.toArray(), ","), group.getOwnerk(), (String[]) adminDlogins.toArray()); + JSONObject rJson = hxService.addChatGroups(StringUtils.join(adminDlogins.toArray(), ","), group.getOwnerk(), adminDlogins.toArray(new String[adminDlogins.size()])); log.info("rJson:" + rJson); group.setHxgroupid(rJson.getJSONObject("data").getString("groupid")); group.setDescription(StringUtils.join(adminDlogins.toArray(), ",")); @@ -355,11 +377,11 @@ public class ChatGroupController { } /** * 医生端获取自己的患者列表 - * @param doctorId + * @param doctorId 医生id * @param current 页数 * @param size 条数 * @param synthesisQuery 综合筛选条件 - * @param adminType 0:普通医生 1:科室管理员(用于问诊聊天) + * @param did 科室id 值班医生/值班护士 时需要传。doctorId 就不能传 * @return */ @GetMapping("getDoctorPatient") @@ -376,13 +398,13 @@ public class ChatGroupController { QueryWrapper queryWrapper=new QueryWrapper<>(); if(null!=did){ //科室下的患者 - queryWrapper.eq("did", did); + queryWrapper.eq("pc.did", did); }else { //医生下的患者 - queryWrapper.eq("dtid", doctorId); + queryWrapper.eq("pc.dtid", doctorId); } if (StringUtil.isNotEmpty(synthesisQuery)){ - queryWrapper.like("pname", synthesisQuery); + queryWrapper.like("p.pname", synthesisQuery); } List> list=lymsChatgroupService.getDoctorPatient(page,queryWrapper); for (Map map : list) { @@ -405,7 +427,7 @@ public class ChatGroupController { */ @GetMapping("getChatStat") @TokenRequired - public BaseResponse getChatStat(Integer groupId){ + public BaseResponse getChatStat(String groupId){ BaseResponse baseResponse =new BaseResponse(); try { final LymsChatgroup chatgroup = lymsChatgroupService.getOne(new QueryWrapper() @@ -421,5 +443,61 @@ public class ChatGroupController { } return baseResponse; } - + /** + * 添加/修改 回访聊天信息自动回复话术 + * @param request + * @return + */ + @PostMapping("addOrUpdateLymsChatInfo") + @TokenRequired + public BaseResponse addOrUpdateLymsChatInfo(@RequestBody LymsChatInfo chatInfo){ + BaseResponse baseResponse =new BaseResponse(); + try { + final boolean b = lymsChatInfoService.saveOrUpdate(chatInfo); + baseResponse.setErrorcode(b?0:1); + baseResponse.setErrormsg(b?"成功":"失败"); + } catch (Exception e) { + e.printStackTrace(); + } + return baseResponse; + } + /** + * 删除 回访聊天信息自动回复话术 + * @param request + * @return + */ + @DeleteMapping("delLymsChatInfo") + @TokenRequired + public BaseResponse delLymsChatInfo(Integer id){ + BaseResponse baseResponse =new BaseResponse(); + try { + final boolean b = lymsChatInfoService.removeById(id); + baseResponse.setErrorcode(b?0:1); + baseResponse.setErrormsg(b?"成功":"失败"); + } catch (Exception e) { + e.printStackTrace(); + } + return baseResponse; + } + /** + * 查询列表 回访聊天信息自动回复话术 + * @param request + * @return + */ + @GetMapping("getLymsChatInfo") + @TokenRequired + public BaseResponse getLymsChatInfo(LymsChatInfo chatInfo, int current, int size){ + BaseResponse baseResponse =new BaseResponse(); + try { + QueryWrapper queryWrapper = Wrappers.query(chatInfo); + Page page = new Page<>(current, size); + Page patientPagePage = lymsChatInfoService.page(page,queryWrapper); + baseResponse.setObject(patientPagePage); + baseResponse.setErrorcode(0); + baseResponse.setErrormsg("成功"); + } catch (Exception e) { + e.printStackTrace(); + } + return baseResponse; + } } diff --git a/talkonlineweb/src/main/java/com/lyms/talkonlineweb/controller/DoctorController.java b/talkonlineweb/src/main/java/com/lyms/talkonlineweb/controller/DoctorController.java index 14c7043..6f990c7 100644 --- a/talkonlineweb/src/main/java/com/lyms/talkonlineweb/controller/DoctorController.java +++ b/talkonlineweb/src/main/java/com/lyms/talkonlineweb/controller/DoctorController.java @@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.lyms.talkonlineweb.annotation.TokenRequired; @@ -328,21 +329,26 @@ public class DoctorController { */ @GetMapping("getAdminDoctor") @TokenRequired - public BaseResponse getAdminDoctor(Integer groupId){ + public BaseResponse getAdminDoctor(String groupId){ BaseResponse baseResponse=new BaseResponse(); List doctorAminList= new ArrayList<>(); try { final LymsChatgroup chatgroup = lymsChatgroupService.getOne(new QueryWrapper() .lambda().eq(LymsChatgroup::getHxgroupid, groupId)); if(null!=chatgroup) { - final LymsDoctor lymsDoctor = lymsDoctorService.getOne(new QueryWrapper() - .lambda().eq(LymsDoctor::getDlogin, chatgroup.getTarget())); - if (null!=lymsDoctor) { - doctorAminList = lymsDoctorService.list(new QueryWrapper() - .lambda().eq(LymsDoctor::getDpid, lymsDoctor.getDpid()) - .eq(LymsDoctor::getAdminType, 1)); - } + if (StringUtil.isNotEmpty(chatgroup.getDescription())) { + List list = Arrays.asList(chatgroup.getDescription().split(",")); + if(CollectionUtils.isNotEmpty(list)){ + for (int i=1;i() + .lambda().eq(LymsDoctor::getDlogin, list.get(i))); + if(null!=lymsDoctor){ + doctorAminList.add(lymsDoctor); + } + } + } + } } } catch (Exception e) { e.printStackTrace(); 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 d985cc8..db5d1e1 100644 --- a/talkonlineweb/src/main/java/com/lyms/talkonlineweb/controller/TkRecordController.java +++ b/talkonlineweb/src/main/java/com/lyms/talkonlineweb/controller/TkRecordController.java @@ -18,6 +18,7 @@ import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; @RestController @@ -41,6 +42,8 @@ public class TkRecordController { private LymsDoctorService lymsDoctorService; @Autowired private LymsPatientService lymsPatientService; + @Autowired + private LymsReturnVisitRecordService lymsReturnVisitRecordService; /** * 保存问诊记录 @@ -85,7 +88,7 @@ public class TkRecordController { LymsPatient patient=lymsPatientService.getById(tkrecord.getPid()); group.setOwnerk("test"); List adminDlogins=new ArrayList<>(); - adminDlogins.add(group.getFromp()); + adminDlogins.add(patient.getIdno()); List groupnames=new ArrayList<>(); groupnames.add(patient.getPname()); //患者注册环信 @@ -100,7 +103,7 @@ public class TkRecordController { //查询值班医生/值班护士 List doctorAminList= lymsDoctorService.list(new QueryWrapper() .lambda().eq(LymsDoctor::getDpid, doctor.getDpid()) - .in(LymsDoctor::getAdminType, new int[]{1,2})); + .in(LymsDoctor::getAdminType, Arrays.asList(1,2))); //科室值班医生注册环信 for (LymsDoctor lymsDoctor : doctorAminList) { if(StringUtil.isEmpty(lymsDoctor.getHxid())) { @@ -122,26 +125,35 @@ public class TkRecordController { if (rArr.size() > 0) { doctor.setHxid(rArr.getJSONObject(0).getString("uuid")); lymsDoctorService.updateById(doctor); - adminDlogins.add(doctor.getDlogin()); - groupnames.add(doctor.getDname()); } } + adminDlogins.add(doctor.getDlogin()); + groupnames.add(doctor.getDname()); } log.info("创建环信组:{} description:{}", group.getOwnerk(), StringUtils.join(adminDlogins.toArray(), ",")); - JSONObject rJson = hxService.addChatGroups(StringUtils.join(adminDlogins.toArray(), ","), group.getOwnerk(), (String[]) adminDlogins.toArray()); + JSONObject rJson = hxService.addChatGroups(StringUtils.join(adminDlogins.toArray(), ","), group.getOwnerk(), adminDlogins.toArray(new String[adminDlogins.size()])); log.info("rJson:" + rJson); group.setHxgroupid(rJson.getJSONObject("data").getString("groupid")); group.setDescription(StringUtils.join(adminDlogins.toArray(), ",")); //环信群组名称更改为姓名串-用于PC端问诊展示 group.setGroupname(StringUtils.join(groupnames.toArray(), ",")); + group.setFromp(patient.getIdno()); + group.setTarget(doctor.getDlogin()); if(null==tkrecord.getType()) { lymsChatgroupService.saveOrUpdate(group); lymsTkrecordService.save(tkrecord); }else { group.setType(1); lymsChatgroupService.saveOrUpdate(group); + LymsReturnVisitRecord returnVisitRecord=new LymsReturnVisitRecord(); + returnVisitRecord.setDlogins(doctor.getDlogin()); + returnVisitRecord.setDpid(doctor.getDpid()); + returnVisitRecord.setIdno(patient.getIdno()); + returnVisitRecord.setType(1); + returnVisitRecord.setHxgroupid(rJson.getJSONObject("data").getString("groupid")); + lymsReturnVisitRecordService.save(returnVisitRecord); } baseResponse.setObject(group); diff --git a/talkonlineweb/src/main/java/com/lyms/talkonlineweb/domain/LymsChatgroup.java b/talkonlineweb/src/main/java/com/lyms/talkonlineweb/domain/LymsChatgroup.java index 8266c67..405875b 100644 --- a/talkonlineweb/src/main/java/com/lyms/talkonlineweb/domain/LymsChatgroup.java +++ b/talkonlineweb/src/main/java/com/lyms/talkonlineweb/domain/LymsChatgroup.java @@ -40,7 +40,7 @@ public class LymsChatgroup implements Serializable { private String ownerk; /** - * 患者ID + * 患者身份证 */ @TableField(value = "fromp") private String fromp; @@ -52,7 +52,7 @@ public class LymsChatgroup implements Serializable { private String hxgroupid; /** - * 医生ID + * 医生登录账号 */ @TableField(value = "target") private String target; @@ -63,16 +63,14 @@ public class LymsChatgroup implements Serializable { @TableField(value = "ctime") private Date ctime; /** - * 发起聊天医生回访状态 - * 0:未回访 - * 1:已回访 + * 组类型- + * 0:问诊 1:回访 */ @TableField(value = "type") private Integer type; /** - * 发回访状态 - * 0:未结束 - * 1:已结束 + * 回访状态- + * 0:未结束 1:已结束(type是1的时候才有用) */ @TableField(value = "stat") private Integer stat; diff --git a/talkonlineweb/src/main/java/com/lyms/talkonlineweb/domain/LymsDoctor.java b/talkonlineweb/src/main/java/com/lyms/talkonlineweb/domain/LymsDoctor.java index dad9001..8cc4f33 100644 --- a/talkonlineweb/src/main/java/com/lyms/talkonlineweb/domain/LymsDoctor.java +++ b/talkonlineweb/src/main/java/com/lyms/talkonlineweb/domain/LymsDoctor.java @@ -166,7 +166,7 @@ public class LymsDoctor implements Serializable { private String specialty; /** * 问诊医生类型 - * 0:普通医生 1:值班医生(用于问诊聊天) + * 0:就诊医生 1:值班医生2:值班护士(用于问诊聊天) */ @TableField(value = "admin_type") private Integer adminType; diff --git a/talkonlineweb/src/main/java/com/lyms/talkonlineweb/domain/LymsMessage.java b/talkonlineweb/src/main/java/com/lyms/talkonlineweb/domain/LymsMessage.java index e87a7da..04aad9f 100644 --- a/talkonlineweb/src/main/java/com/lyms/talkonlineweb/domain/LymsMessage.java +++ b/talkonlineweb/src/main/java/com/lyms/talkonlineweb/domain/LymsMessage.java @@ -28,7 +28,7 @@ public class LymsMessage implements Serializable { private String fromid; /** - * 接受人员 + * 环信组id */ @TableField(value = "targetid") private String targetid; @@ -51,6 +51,14 @@ public class LymsMessage implements Serializable { @TableField(value = "sendtime") private Date sendtime; + /** + * 发送角色 + * 0: 患者 1:医生 2:客服 + */ + @TableField(value = "type") + private Integer type; + + @TableField(exist = false) private static final long serialVersionUID = 1L; diff --git a/talkonlineweb/src/main/java/com/lyms/talkonlineweb/mapper/LymsChatgroupMapper.java b/talkonlineweb/src/main/java/com/lyms/talkonlineweb/mapper/LymsChatgroupMapper.java index 49b6471..869ba54 100644 --- a/talkonlineweb/src/main/java/com/lyms/talkonlineweb/mapper/LymsChatgroupMapper.java +++ b/talkonlineweb/src/main/java/com/lyms/talkonlineweb/mapper/LymsChatgroupMapper.java @@ -37,12 +37,15 @@ public interface LymsChatgroupMapper extends BaseMapper { "pc.did," , "pc.dtid," , "pc.dtname," , + "d.dlogin," , "i.iname, " , + "i.iid, " , "i.createdtime " , "FROM " , "(`lyms_illness` i " , "left join `lyms_pcase` pc ON (pc.pcid = i.pcid) " , - "left join `lyms_patient` p ON (p.id = pc.pid)) " , + "left join `lyms_patient` p ON (p.id = pc.pid) " , + "left join `lyms_doctor` d ON (d.did = pc.dtid)) " , "${ew.customSqlSegment}", ""}) // "WHERE " + diff --git a/talkonlineweb/src/main/java/com/lyms/talkonlineweb/mapper/LymsMessageMapper.java b/talkonlineweb/src/main/java/com/lyms/talkonlineweb/mapper/LymsMessageMapper.java index cca6fce..6658e1e 100644 --- a/talkonlineweb/src/main/java/com/lyms/talkonlineweb/mapper/LymsMessageMapper.java +++ b/talkonlineweb/src/main/java/com/lyms/talkonlineweb/mapper/LymsMessageMapper.java @@ -1,11 +1,19 @@ package com.lyms.talkonlineweb.mapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Constants; import com.lyms.talkonlineweb.domain.LymsMessage; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; /** * @Entity com.lyms.talkonlineweb.domain.LymsMessage */ +@Mapper public interface LymsMessageMapper extends BaseMapper { } diff --git a/talkonlineweb/src/main/java/com/lyms/talkonlineweb/service/LymsMessageService.java b/talkonlineweb/src/main/java/com/lyms/talkonlineweb/service/LymsMessageService.java index 4669bf0..7d20ef7 100644 --- a/talkonlineweb/src/main/java/com/lyms/talkonlineweb/service/LymsMessageService.java +++ b/talkonlineweb/src/main/java/com/lyms/talkonlineweb/service/LymsMessageService.java @@ -1,8 +1,11 @@ package com.lyms.talkonlineweb.service; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.lyms.talkonlineweb.domain.LymsMessage; import com.baomidou.mybatisplus.extension.service.IService; +import java.util.List; + /** * */ diff --git a/talkonlineweb/src/main/java/com/lyms/talkonlineweb/service/impl/LymsMessageServiceImpl.java b/talkonlineweb/src/main/java/com/lyms/talkonlineweb/service/impl/LymsMessageServiceImpl.java index 3300b46..88c792c 100644 --- a/talkonlineweb/src/main/java/com/lyms/talkonlineweb/service/impl/LymsMessageServiceImpl.java +++ b/talkonlineweb/src/main/java/com/lyms/talkonlineweb/service/impl/LymsMessageServiceImpl.java @@ -1,17 +1,23 @@ package com.lyms.talkonlineweb.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.lyms.talkonlineweb.domain.LymsMessage; import com.lyms.talkonlineweb.service.LymsMessageService; import com.lyms.talkonlineweb.mapper.LymsMessageMapper; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.List; + /** * */ @Service public class LymsMessageServiceImpl extends ServiceImpl implements LymsMessageService{ + @Autowired + LymsMessageMapper lymsMessageMapper; } -- 1.8.3.1