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

feat:家庭医生初始化

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