提交 8861bafb authored 作者: 杨凯's avatar 杨凯

feat:家庭医生初始化

上级 fb6c7193
...@@ -2,7 +2,7 @@ package com.ebaiyihui.family.doctor.client; ...@@ -2,7 +2,7 @@ package com.ebaiyihui.family.doctor.client;
import com.ebaiyihui.family.doctor.common.bo.MobileBenefitRes; import com.ebaiyihui.family.doctor.common.bo.MobileBenefitRes;
import com.ebaiyihui.family.doctor.common.bo.Result; import com.ebaiyihui.family.doctor.common.bo.Result;
import com.ebaiyihui.family.doctor.common.vo.MobileBenefitPackageDTO; import com.ebaiyihui.family.doctor.common.dto.MobileBenefitPackageDTO;
import com.ebaiyihui.family.doctor.common.vo.RegisterPatientVo; import com.ebaiyihui.family.doctor.common.vo.RegisterPatientVo;
import com.ebaiyihui.framework.response.BaseResponse; import com.ebaiyihui.framework.response.BaseResponse;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
......
...@@ -16,4 +16,5 @@ public class Components { ...@@ -16,4 +16,5 @@ public class Components {
private Integer sort; private Integer sort;
private String content; private String content;
} }
package com.ebaiyihui.family.doctor.common.bo; package com.ebaiyihui.family.doctor.common.bo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import java.util.List; import java.util.List;
...@@ -42,7 +43,11 @@ public class PatientSignInfo { ...@@ -42,7 +43,11 @@ public class PatientSignInfo {
* 患者名字 * 患者名字
*/ */
private String patientName; private String patientName;
/**
* 患者手机号码
*/
private String patientPhone;
/** /**
* 团队当前处理人doctorId(个人这个值为null) * 团队当前处理人doctorId(个人这个值为null)
......
package com.ebaiyihui.family.doctor.common.vo; package com.ebaiyihui.family.doctor.common.dto;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
......
...@@ -26,4 +26,6 @@ public class SendImMsgDTO { ...@@ -26,4 +26,6 @@ public class SendImMsgDTO {
@ApiModelProperty(value = "签约编号") @ApiModelProperty(value = "签约编号")
private String admId; private String admId;
private String abnormalId;
} }
...@@ -30,4 +30,6 @@ public class RegisterPatientVo { ...@@ -30,4 +30,6 @@ public class RegisterPatientVo {
@ApiModelProperty("签约id") @ApiModelProperty("签约id")
private String signSeqId; private String signSeqId;
private String abnormalId;
} }
...@@ -2,7 +2,7 @@ package com.ebaiyihui.family.doctor.server.controller; ...@@ -2,7 +2,7 @@ package com.ebaiyihui.family.doctor.server.controller;
import com.ebaiyihui.family.doctor.common.bo.MobileBenefitRes; import com.ebaiyihui.family.doctor.common.bo.MobileBenefitRes;
import com.ebaiyihui.family.doctor.common.bo.Result; import com.ebaiyihui.family.doctor.common.bo.Result;
import com.ebaiyihui.family.doctor.common.vo.MobileBenefitPackageDTO; import com.ebaiyihui.family.doctor.common.dto.MobileBenefitPackageDTO;
import com.ebaiyihui.family.doctor.common.vo.RegisterPatientVo; import com.ebaiyihui.family.doctor.common.vo.RegisterPatientVo;
import com.ebaiyihui.family.doctor.server.service.MobileBenefitPackageService; import com.ebaiyihui.family.doctor.server.service.MobileBenefitPackageService;
import com.ebaiyihui.framework.response.BaseResponse; import com.ebaiyihui.framework.response.BaseResponse;
......
package com.ebaiyihui.family.doctor.server.service; package com.ebaiyihui.family.doctor.server.service;
import com.ebaiyihui.family.doctor.common.bo.Components; import com.ebaiyihui.family.doctor.common.bo.Components;
import com.ebaiyihui.family.doctor.common.dto.SendImMsgDTO;
import com.ebaiyihui.family.doctor.server.entity.PatientSignEntity; import com.ebaiyihui.family.doctor.server.entity.PatientSignEntity;
import com.ebaiyihui.framework.response.BaseResponse; import com.ebaiyihui.framework.response.BaseResponse;
import com.ebaiyihui.imforward.client.vo.IMQueryTargetSdkAccountRspVO; import com.ebaiyihui.imforward.client.vo.IMQueryTargetSdkAccountRspVO;
...@@ -29,5 +30,5 @@ public interface ImChatTemplate { ...@@ -29,5 +30,5 @@ public interface ImChatTemplate {
void doctorPrompted(String admId); void doctorPrompted(String admId);
Boolean sendMsg(List<Components> componentsList, String oldAdmId, String admId); Boolean sendMsg(List<Components> componentsList, SendImMsgDTO sendImMsgDTO);
} }
...@@ -2,7 +2,7 @@ package com.ebaiyihui.family.doctor.server.service; ...@@ -2,7 +2,7 @@ package com.ebaiyihui.family.doctor.server.service;
import com.ebaiyihui.family.doctor.common.bo.MobileBenefitRes; import com.ebaiyihui.family.doctor.common.bo.MobileBenefitRes;
import com.ebaiyihui.family.doctor.common.bo.Result; import com.ebaiyihui.family.doctor.common.bo.Result;
import com.ebaiyihui.family.doctor.common.vo.MobileBenefitPackageDTO; import com.ebaiyihui.family.doctor.common.dto.MobileBenefitPackageDTO;
import com.ebaiyihui.family.doctor.common.vo.RegisterPatientVo; import com.ebaiyihui.family.doctor.common.vo.RegisterPatientVo;
import com.ebaiyihui.framework.response.BaseResponse; import com.ebaiyihui.framework.response.BaseResponse;
......
...@@ -8,10 +8,13 @@ import com.doctoruser.api.pojo.base.vo.doctor.PersonnelInfo; ...@@ -8,10 +8,13 @@ import com.doctoruser.api.pojo.base.vo.doctor.PersonnelInfo;
import com.doctoruser.api.pojo.vo.UserInfoByDoctorIdRespVO; import com.doctoruser.api.pojo.vo.UserInfoByDoctorIdRespVO;
import com.doctoruser.api.pojo.vo.UserInfoByUserIdRespVO; import com.doctoruser.api.pojo.vo.UserInfoByUserIdRespVO;
import com.ebaiyihui.family.doctor.common.bo.*; import com.ebaiyihui.family.doctor.common.bo.*;
import com.ebaiyihui.family.doctor.common.dto.AbnormalDataDTO;
import com.ebaiyihui.family.doctor.common.dto.DoctorIdDTO; import com.ebaiyihui.family.doctor.common.dto.DoctorIdDTO;
import com.ebaiyihui.family.doctor.common.dto.SendImMsgDTO;
import com.ebaiyihui.family.doctor.server.common.constants.CommonConstants; import com.ebaiyihui.family.doctor.server.common.constants.CommonConstants;
import com.ebaiyihui.family.doctor.server.common.constants.IMInformConstants; import com.ebaiyihui.family.doctor.server.common.constants.IMInformConstants;
import com.ebaiyihui.family.doctor.server.common.constants.ImConstants; import com.ebaiyihui.family.doctor.server.common.constants.ImConstants;
import com.ebaiyihui.family.doctor.server.common.enums.MsgTempTypeEnum;
import com.ebaiyihui.family.doctor.server.common.enums.SenderEnum; import com.ebaiyihui.family.doctor.server.common.enums.SenderEnum;
import com.ebaiyihui.family.doctor.server.entity.PatientSignEntity; import com.ebaiyihui.family.doctor.server.entity.PatientSignEntity;
import com.ebaiyihui.family.doctor.server.exception.BusinessException; import com.ebaiyihui.family.doctor.server.exception.BusinessException;
...@@ -22,6 +25,7 @@ import com.ebaiyihui.family.doctor.server.feign.UserApiFeignClient; ...@@ -22,6 +25,7 @@ import com.ebaiyihui.family.doctor.server.feign.UserApiFeignClient;
import com.ebaiyihui.family.doctor.server.mapper.PatientSignMapper; import com.ebaiyihui.family.doctor.server.mapper.PatientSignMapper;
import com.ebaiyihui.family.doctor.server.service.ImChatTemplate; import com.ebaiyihui.family.doctor.server.service.ImChatTemplate;
import com.ebaiyihui.family.doctor.server.util.JsonUtil; import com.ebaiyihui.family.doctor.server.util.JsonUtil;
import com.ebaiyihui.family.doctor.server.util.ThirdOrderPushUtil;
import com.ebaiyihui.framework.response.BaseResponse; import com.ebaiyihui.framework.response.BaseResponse;
import com.ebaiyihui.imforward.client.vo.*; import com.ebaiyihui.imforward.client.vo.*;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
...@@ -60,6 +64,9 @@ public class ImChatTemplateImpl implements ImChatTemplate { ...@@ -60,6 +64,9 @@ public class ImChatTemplateImpl implements ImChatTemplate {
@Autowired @Autowired
private PatientSignMapper patientSignMapper; private PatientSignMapper patientSignMapper;
@Autowired
private ThirdOrderPushUtil thirdOrderPushUtil;
@Override @Override
public BaseResponse createImSession(PatientSignEntity patientSignEntity) { public BaseResponse createImSession(PatientSignEntity patientSignEntity) {
...@@ -142,20 +149,35 @@ public class ImChatTemplateImpl implements ImChatTemplate { ...@@ -142,20 +149,35 @@ public class ImChatTemplateImpl implements ImChatTemplate {
} }
@Override @Override
public Boolean sendMsg(List<Components> componentsList, String oldAdmId, String admId) { public Boolean sendMsg(List<Components> componentsList, SendImMsgDTO sendImMsgDTO) {
Boolean flag = false; Boolean flag = false;
if (!componentsList.isEmpty()) { if (!componentsList.isEmpty()) {
log.info("componentsList={}", componentsList); log.info("componentsList={}", componentsList);
for (int i = 0; i < componentsList.size(); i++) { for (int i = 0; i < componentsList.size(); i++) {
String content = componentsList.get(i).getContent(); String content = componentsList.get(i).getContent();
List<MessageInfo> messageInfos = new ArrayList<>(); List<MessageInfo> messageInfos = new ArrayList<>();
PatientSignInfo patientSignInfo = getPatientSignInfo(admId); PatientSignInfo patientSignInfo = getPatientSignInfo(sendImMsgDTO.getAdmId());
MessageInfo messageInfo = new MessageInfo(); MessageInfo messageInfo = new MessageInfo();
content = MessageFormat.format(content, patientSignInfo.getDoctorName()); content = MessageFormat.format(content, patientSignInfo.getDoctorName());
if (!StringUtils.isEmpty(oldAdmId)) { if (!StringUtils.isEmpty(sendImMsgDTO.getOldAdmId())) {
PatientSignInfo oldPatientSignInfo = getPatientSignInfo(oldAdmId); PatientSignInfo oldPatientSignInfo = getPatientSignInfo(sendImMsgDTO.getOldAdmId());
content = MessageFormat.format(content, oldPatientSignInfo.getDoctorName(), patientSignInfo.getDoctorName()); content = MessageFormat.format(content, oldPatientSignInfo.getDoctorName(), patientSignInfo.getDoctorName());
} }
// 报告异常特殊处理
if (MsgTempTypeEnum.REP_ANO.getValue().equals(sendImMsgDTO.getType())) {
AbnormalDataDTO abnormalDataDTO = new AbnormalDataDTO();
abnormalDataDTO.setPhone(patientSignInfo.getPatientPhone());
abnormalDataDTO.setAbnormalId(sendImMsgDTO.getAbnormalId());
String result = thirdOrderPushUtil.getAbnormalData(abnormalDataDTO);
if (!StringUtils.isEmpty(result)){
Result<String> abResult = JSON.parseObject(result, Result.class);
if (abResult.isSuccess()){
content = MessageFormat.format(content, patientSignInfo.getDoctorName(), abResult.getData());
}
}
}
if (SenderEnum.DOCTOR.getDesc().equals(componentsList.get(i).getSender())) { if (SenderEnum.DOCTOR.getDesc().equals(componentsList.get(i).getSender())) {
messageInfo = getDoctorInformRefreshPatientParam(patientSignInfo, IMInformConstants.REFRESH); messageInfo = getDoctorInformRefreshPatientParam(patientSignInfo, IMInformConstants.REFRESH);
} else { } else {
...@@ -164,12 +186,12 @@ public class ImChatTemplateImpl implements ImChatTemplate { ...@@ -164,12 +186,12 @@ public class ImChatTemplateImpl implements ImChatTemplate {
messageInfos.add(messageInfo); messageInfos.add(messageInfo);
PersonImInformReq parameter = new PersonImInformReq(); PersonImInformReq parameter = new PersonImInformReq();
parameter.setMessageInfos(messageInfos); parameter.setMessageInfos(messageInfos);
parameter.setAdmissionId(admId); parameter.setAdmissionId(sendImMsgDTO.getAdmId());
parameter.setBusiCode(IMInformConstants.IM_SYSTEM_BUSINESS_CODE); parameter.setBusiCode(IMInformConstants.IM_SYSTEM_BUSINESS_CODE);
log.info("推送家庭医生提示语推送:{}" + JSON.toJSONString(parameter.getMessageInfos())); log.info("推送家庭医生提示语推送:{}" + JSON.toJSONString(parameter.getMessageInfos()));
Long syncFlag = i * 100L; Long syncFlag = i * 100L;
if (personUserImInform(parameter, content, syncFlag)) { if (personUserImInform(parameter, content, syncFlag)) {
log.info("推送家庭医生提示语推送成功,admissionId:{}", admId); log.info("推送家庭医生提示语推送成功,admissionId:{}", sendImMsgDTO.getAdmId());
flag = true; flag = true;
} }
} }
......
...@@ -36,19 +36,19 @@ public class ImMsgTemplateServiceImpl implements ImMsgTemplateService { ...@@ -36,19 +36,19 @@ public class ImMsgTemplateServiceImpl implements ImMsgTemplateService {
@Async @Async
@Override @Override
public BaseResponse<String> sendImMsg(SendImMsgDTO reqVo) { public BaseResponse<String> sendImMsg(SendImMsgDTO sendImMsgDTO) {
QueryWrapper<ImMsgTemplateEntity> wrapper = new QueryWrapper<>(); QueryWrapper<ImMsgTemplateEntity> wrapper = new QueryWrapper<>();
ImMsgTemplateEntity imMsgTemplate = new ImMsgTemplateEntity(); ImMsgTemplateEntity imMsgTemplate = new ImMsgTemplateEntity();
imMsgTemplate.setAppCode(reqVo.getAppCode()); imMsgTemplate.setAppCode(sendImMsgDTO.getAppCode());
imMsgTemplate.setOrganId(reqVo.getOrganId()); imMsgTemplate.setOrganId(sendImMsgDTO.getOrganId());
imMsgTemplate.setType(reqVo.getType()); imMsgTemplate.setType(sendImMsgDTO.getType());
wrapper.setEntity(imMsgTemplate); wrapper.setEntity(imMsgTemplate);
ImMsgTemplateEntity imMsgTemplateEntity = imMsgTemplateMapper.selectOne(wrapper); ImMsgTemplateEntity imMsgTemplateEntity = imMsgTemplateMapper.selectOne(wrapper);
String components = imMsgTemplateEntity.getContent(); String components = imMsgTemplateEntity.getContent();
MsgContent msgContent = JSON.parseObject(components, MsgContent.class); MsgContent msgContent = JSON.parseObject(components, MsgContent.class);
List<Components> componentsList = msgContent.getComponents().stream().sorted(Comparator.comparing(Components::getSort)).collect(Collectors.toList()); List<Components> componentsList = msgContent.getComponents().stream().sorted(Comparator.comparing(Components::getSort)).collect(Collectors.toList());
Boolean flag = imChatTemplate.sendMsg(componentsList, reqVo.getOldAdmId(), reqVo.getAdmId()); Boolean flag = imChatTemplate.sendMsg(componentsList, sendImMsgDTO);
if (!flag) { if (!flag) {
throw new BusinessException("消息推送失败"); throw new BusinessException("消息推送失败");
} }
......
...@@ -8,7 +8,7 @@ import com.ebaiyihui.card.common.vo.CardDetailsInfoRespVO; ...@@ -8,7 +8,7 @@ import com.ebaiyihui.card.common.vo.CardDetailsInfoRespVO;
import com.ebaiyihui.card.common.vo.RegisterCardReqVO; import com.ebaiyihui.card.common.vo.RegisterCardReqVO;
import com.ebaiyihui.family.doctor.common.bo.MobileBenefitRes; import com.ebaiyihui.family.doctor.common.bo.MobileBenefitRes;
import com.ebaiyihui.family.doctor.common.bo.Result; import com.ebaiyihui.family.doctor.common.bo.Result;
import com.ebaiyihui.family.doctor.common.vo.MobileBenefitPackageDTO; import com.ebaiyihui.family.doctor.common.dto.MobileBenefitPackageDTO;
import com.ebaiyihui.family.doctor.common.vo.RegisterPatientVo; import com.ebaiyihui.family.doctor.common.vo.RegisterPatientVo;
import com.ebaiyihui.family.doctor.server.common.constants.CommonConstants; import com.ebaiyihui.family.doctor.server.common.constants.CommonConstants;
import com.ebaiyihui.family.doctor.server.entity.MobileBenefitPackageEntity; import com.ebaiyihui.family.doctor.server.entity.MobileBenefitPackageEntity;
...@@ -109,6 +109,10 @@ public class MobileBenefitPackageServiceImpl implements MobileBenefitPackageServ ...@@ -109,6 +109,10 @@ public class MobileBenefitPackageServiceImpl implements MobileBenefitPackageServ
registerPatientVo.setMsgPushType(Integer.valueOf(map.get("msgPushType"))); registerPatientVo.setMsgPushType(Integer.valueOf(map.get("msgPushType")));
} }
if (Objects.nonNull(map.get("abnormalId"))) {
registerPatientVo.setAbnormalId(map.get("abnormalId"));
}
if (Objects.nonNull(map.get("signSeqId"))) { if (Objects.nonNull(map.get("signSeqId"))) {
registerPatientVo.setSignSeqId(map.get("signSeqId")); registerPatientVo.setSignSeqId(map.get("signSeqId"));
PatientSignEntity patientSignEntity = patientSignMapper.selectById(Long.valueOf(map.get("signSeqId"))); PatientSignEntity patientSignEntity = patientSignMapper.selectById(Long.valueOf(map.get("signSeqId")));
......
...@@ -146,16 +146,17 @@ public class ThirdOrderPushUtil { ...@@ -146,16 +146,17 @@ public class ThirdOrderPushUtil {
* *
* @param abnormalDataDTO * @param abnormalDataDTO
*/ */
public void getAbnormalData(AbnormalDataDTO abnormalDataDTO) { public String getAbnormalData(AbnormalDataDTO abnormalDataDTO) {
String result = "";
try { try {
String param = JSONObject.toJSONString(abnormalDataDTO); String param = JSONObject.toJSONString(abnormalDataDTO);
log.info("getAbnormalData请求入参{}", param); log.info("getAbnormalData请求入参{}", param);
String result = HttpKit.jsonPost(projProperties.getFamilyDoctorThirdUrl() + UrlConstants.ABNORMAL_DATA_URL, param, getThirdHead(abnormalDataDTO)); result = HttpKit.jsonPost(projProperties.getFamilyDoctorThirdUrl() + UrlConstants.ABNORMAL_DATA_URL, param, getThirdHead(abnormalDataDTO));
log.info("getAbnormalData请求返参{}", param); log.info("getAbnormalData请求返参{}", param);
} catch (Exception e) { } catch (Exception e) {
log.error("getAbnormalData请求失败:{}", e); log.error("getAbnormalData请求失败:{}", e);
} }
return result;
} }
/** /**
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论