提交 c75a038e authored 作者: 杨凯's avatar 杨凯

feat:家庭医生初始化

上级 4edbc3cd
package com.ebaiyihui.family.doctor.server.task; package com.ebaiyihui.family.doctor.server.task;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSON;
import com.ebaiyihui.family.doctor.common.bo.Result; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ebaiyihui.family.doctor.common.dto.HealthInfoDTO; import com.ebaiyihui.family.doctor.server.common.enums.WhetherEnum;
import com.ebaiyihui.family.doctor.common.dto.SendImMsgDTO; import com.ebaiyihui.family.doctor.server.entity.ScheduleRecordEntity;
import com.ebaiyihui.family.doctor.server.common.constants.CommonConstants; import com.ebaiyihui.family.doctor.server.mapper.ScheduleRecordMapper;
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.StatusEnum;
import com.ebaiyihui.family.doctor.server.entity.MobileBenefitPackageEntity;
import com.ebaiyihui.family.doctor.server.entity.PatientSignEntity;
import com.ebaiyihui.family.doctor.server.mapper.MobileBenefitPackageMapper;
import com.ebaiyihui.family.doctor.server.service.ImMsgTemplateService;
import com.ebaiyihui.family.doctor.server.service.PatientSignService;
import com.ebaiyihui.family.doctor.server.util.DateUtils; import com.ebaiyihui.family.doctor.server.util.DateUtils;
import com.ebaiyihui.family.doctor.server.util.ThirdOrderPushUtil;
import com.ebaiyihui.framework.response.BaseResponse;
import com.ebaiyihui.imforward.client.vo.IMQueryMsgReqVO;
import com.ebaiyihui.imforward.client.vo.IMQueryUserLoginReqVO;
import com.ebaiyihui.imforward.client.vo.IMQueryUserLoginRspVO;
import com.ebaiyihui.imforward.client.vo.IMSingleMsgResultVO;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/** /**
* @ClassName: TaskSchedule * @ClassName: TaskSchedule
...@@ -38,168 +29,137 @@ import java.util.List; ...@@ -38,168 +29,137 @@ import java.util.List;
@Slf4j @Slf4j
public class ScheduleTask { public class ScheduleTask {
@Autowired private static final String MONDAY = "星期一";
private ImMsgTemplateService imMsgTemplateService;
@Autowired
private PatientSignService patientSignSevice;
@Autowired
private MobileBenefitPackageMapper mobileBenefitPackageMapper;
@Autowired @Autowired
private ThirdOrderPushUtil thirdOrderPushUtil; private ScheduleRecordMapper scheduleRecordMapper;
// @Scheduled(cron = "0 0/2 * * * ?")
@Scheduled(cron = "0 0 0 * * ?")
public void regularTimeExport() {
/*
* 某天
* 某业务
* 某医生
* 某科室 下的开通循环排班的数据
*
* 此条件下 第5周 开通排班 未停诊 的数据
*
* 对比这两个list 去掉重复 新增(不停诊 日期为第5周的当天)
*
* 定时任务时间修改
*
*/
String currentDateSimpleToString = DateUtils.getCurrentDateSimpleToString();
log.info("当前时间{}", JSON.toJSONString(currentDateSimpleToString));
String weekChinese = DateUtils.getWeekChinese(currentDateSimpleToString);
log.info("当前时间是{}", JSON.toJSONString(weekChinese));
if (!MONDAY.equals(weekChinese)) {
return;
}
// @Scheduled(cron = "0 0 10 * * ?") //周末
public void healthRecordWhetherUpdate() { String oneDayForWeekLast = DateUtils.getOneDayForWeekLast(currentDateSimpleToString);
List<PatientSignEntity> patientSignEntities = patientSignSevice.selectList(new PatientSignEntity()); Date weekDateFirst = DateUtils.strToDateNoTry(currentDateSimpleToString);
if (!patientSignEntities.isEmpty()) { Date weekDateLast = DateUtils.strToDateNoTry(oneDayForWeekLast);
for (PatientSignEntity ps : patientSignEntities) {
HealthInfoDTO healthInfoDTO = new HealthInfoDTO(); List<String> dateRange = DateUtils.getDateRange(weekDateFirst, weekDateLast);
healthInfoDTO.setPhone(ps.getPatientPhone()); log.info("一周的日期{}", JSON.toJSONString(dateRange));
// 查询用户健康档案30天内是否有更新
String result = thirdOrderPushUtil.getHealthRecordWhetherUpdate(healthInfoDTO); for (String schDate : dateRange) {
Result<Boolean> res = JSONObject.parseObject(result, Result.class); QueryWrapper<ScheduleRecordEntity> schWapper = new QueryWrapper<>();
Boolean flag = res.getData(); ScheduleRecordEntity scheduleRecordEntity = new ScheduleRecordEntity();
SendImMsgDTO sendImMsgDTO = new SendImMsgDTO(); scheduleRecordEntity.setIsCycleSchedule(WhetherEnum.ALLOW.getValue());
sendImMsgDTO.setAppCode(CommonConstants.APP_CODE); scheduleRecordEntity.setScheduleDate(DateUtils.strToDateNoTry(schDate));
sendImMsgDTO.setOrganId(CommonConstants.ORGAN_CODE); schWapper.setEntity(scheduleRecordEntity);
sendImMsgDTO.setAdmId(ps.getAdmId()); log.info("某天开通循环排班列表入参{}", JSON.toJSONString(schWapper));
if (!flag) { List<ScheduleRecordEntity> list = scheduleRecordMapper.selectList(schWapper);
sendImMsgDTO.setType(MsgTempTypeEnum.ACT_PUSH_HEAL_REC.getValue()); log.info("某天开通循环排班列表出参{}", JSON.toJSONString(list));
imMsgTemplateService.sendImMsg(sendImMsgDTO); if (CollectionUtils.isEmpty(list)) {
} continue;
// 1、签约完成定时任务第10天,主动触发 2、定时任务之后每隔15天,主动触发 }
Date curDate = new Date(); //根据业务分组
int difDay = DateUtils.daysBetween(ps.getCreateTime(), curDate); Map<Integer, List<ScheduleRecordEntity>> servTypeCollect =
int afterFifteenDay = DateUtils.daysBetween(ps.getCreateTime(), curDate); list.stream().collect(Collectors.groupingBy(ScheduleRecordEntity::getServType));
if (10 == difDay || afterFifteenDay % 15 == 0) { for (Integer servType : servTypeCollect.keySet()) {
sendImMsgDTO.setType(MsgTempTypeEnum.ACT__SIG_SUC.getValue()); List<ScheduleRecordEntity> servTypeList = servTypeCollect.get(servType);
imMsgTemplateService.sendImMsg(sendImMsgDTO); //根据医生分组
} Map<String, List<ScheduleRecordEntity>> doctorCollect =
// 1、当用户有触发过‘报告异常’问诊 2、定时任务触发20天后主动触发 servTypeList.stream().collect(Collectors.groupingBy(ScheduleRecordEntity::getDoctorId));
if (20 == difDay) { for (String docId : doctorCollect.keySet()) {
sendImMsgDTO.setType(MsgTempTypeEnum.ACT_FU_REP_ANO.getValue()); List<ScheduleRecordEntity> scheduleDeptList = doctorCollect.get(docId);
imMsgTemplateService.sendImMsg(sendImMsgDTO); //根据科室分组
} Map<String, List<ScheduleRecordEntity>> deptCollect =
// 1、当用户与医生7天未进行沟通 2、判断后主动触发 scheduleDeptList.stream().collect(Collectors.groupingBy(ScheduleRecordEntity::getDeptId));
// {"appCode":"EHOS_PATIENT","appointmentId":["9ad0b140bd1b4b86b1aa68f59c9dbf9a"],"businessCode":"jtys","msgType":"1","page":0,"pageSize":999,"sortOrder":"ASC","userId":"18170905967"}
IMQueryMsgReqVO imQueryMsgReqVO = new IMQueryMsgReqVO(); for (String deptId : deptCollect.keySet()) {
imQueryMsgReqVO.setAppCode(ImConstants.IM_PAT_ACCOUNT_NUM); //某天某医生某科室的所有排班
imQueryMsgReqVO.setBusinessCode(ImConstants.IM_QUERY_ACCOUNT_CODE); List<ScheduleRecordEntity> rangeList = deptCollect.get(deptId);
imQueryMsgReqVO.setMsgType("1");
imQueryMsgReqVO.setPageSize(10); QueryWrapper<ScheduleRecordEntity> nextWrapper = new QueryWrapper<>();
imQueryMsgReqVO.setSortOrder("DESC"); ScheduleRecordEntity nextSchedule = new ScheduleRecordEntity();
List<String> appointmentIds = new ArrayList<>(); nextSchedule.setStatus(WhetherEnum.ALLOW.getValue());
appointmentIds.add(ps.getAdmId()); nextSchedule.setDoctorId(docId);
imQueryMsgReqVO.setAppointmentId(appointmentIds); nextSchedule.setDeptId(deptId);
imQueryMsgReqVO.setUserId(ps.getPatientUserId()); nextSchedule.setServType(servType);
String sendTimeStr = "2023-12-01 00:00:00"; nextSchedule.setScheduleDate(DateUtils.getNextWeek(schDate, 3));
try { nextWrapper.setEntity(nextSchedule);
BaseResponse<List<IMSingleMsgResultVO>> msgContent = patientSignSevice.getAllMsgContent(imQueryMsgReqVO); log.info("第5周当天排班入参{}", JSON.toJSONString(schWapper));
if ("1".equals(msgContent.getCode())) { List<ScheduleRecordEntity> nextScheList = scheduleRecordMapper.selectList(nextWrapper);
List<IMSingleMsgResultVO> imSingleMsgResultVOS = msgContent.getData(); log.info("第5周当天排班出参{}", JSON.toJSONString(nextScheList));
IMQueryUserLoginReqVO imQueryUserLoginReqVO = new IMQueryUserLoginReqVO(); if (CollectionUtils.isEmpty(nextScheList)) {
imQueryUserLoginReqVO.setAppCode(ImConstants.IM_PAT_ACCOUNT_NUM); rangeList.stream().forEach(rangeVo -> {
imQueryUserLoginReqVO.setUserId(ps.getPatientUserId()); ScheduleRecordEntity schedule = new ScheduleRecordEntity();
BaseResponse<IMQueryUserLoginRspVO> sdkLogin = patientSignSevice.querySdkLogin(imQueryUserLoginReqVO); BeanUtils.copyProperties(rangeVo, schedule);
if ("1".equals(sdkLogin.getCode())) { schedule.setStatus(WhetherEnum.ALLOW.getValue());
IMQueryUserLoginRspVO imQueryUserLoginRspVO = sdkLogin.getData(); schedule.setScheduleDate(DateUtils.getNextWeek(schDate, 3));
String sdkAccount = imQueryUserLoginRspVO.getSdkAccount(); // schedule.setAvailableCount(rangeVo.getTotalCount());
for (IMSingleMsgResultVO imSingleMsgResultVO : imSingleMsgResultVOS) { log.info("排班新增入参:" + schedule.toString());
if (imSingleMsgResultVO.getSender().equals(sdkAccount)) { scheduleRecordMapper.insert(schedule);
sendTimeStr = imSingleMsgResultVO.getSendTime(); });
continue;
}
ArrayList<ScheduleRecordEntity> rangeSch = new ArrayList<>();
//如果第5周有排班 和当前对比 去除重复的时段
for (ScheduleRecordEntity rangeReq : rangeList) {
Boolean flag = false;
for (ScheduleRecordEntity rangeRes : nextScheList) {
Boolean aBoolean = DateUtils.rangeCompare(DateUtils.strToDateNoTryForMinute(rangeReq.getStartTime()),
DateUtils.strToDateNoTryForMinute(rangeReq.getEndTime()),
DateUtils.strToDateNoTryForMinute(rangeRes.getStartTime()),
DateUtils.strToDateNoTryForMinute(rangeRes.getEndTime()));
if (aBoolean) {
flag = true;
break; break;
} }
} }
if (flag) {
continue;
} else {
rangeSch.add(rangeReq);
}
} }
Date sendTime = DateUtils.parseDate(sendTimeStr, DateUtils.FULL_FORMAT);
int difSendDay = DateUtils.daysBetween(sendTime, curDate);
if (7 == difSendDay) {
sendImMsgDTO.setType(MsgTempTypeEnum.ACT_FU_UN_CON.getValue());
imMsgTemplateService.sendImMsg(sendImMsgDTO);
}
}
} catch (Exception e) {
log.error("获取发送消息异常", e);
}
}
}
} if (CollectionUtils.isEmpty(rangeSch)) {
continue;
// @Scheduled(cron = "0 0 20 * * ?") }
public void holidayPush() { log.info("rangeList{}", JSON.toJSONString(rangeSch));
List<PatientSignEntity> patientSignEntities = patientSignSevice.selectList(new PatientSignEntity()); rangeSch.stream().forEach(rangeVo -> {
try { ScheduleRecordEntity schedule = new ScheduleRecordEntity();
if (!patientSignEntities.isEmpty()) { BeanUtils.copyProperties(rangeVo, schedule);
for (PatientSignEntity ps : patientSignEntities) { schedule.setStatus(WhetherEnum.ALLOW.getValue());
schedule.setScheduleDate(DateUtils.getNextWeek(schDate, 3));
SendImMsgDTO sendImMsgDTO = new SendImMsgDTO(); // schedule.setAvailableCount(rangeVo.getTotalCount());
sendImMsgDTO.setAppCode(CommonConstants.APP_CODE); log.info("排班新增入参:" + schedule.toString());
sendImMsgDTO.setOrganId(CommonConstants.ORGAN_CODE); scheduleRecordMapper.insert(schedule);
sendImMsgDTO.setAdmId(ps.getAdmId()); });
Date curDate = new Date(); continue;
Date qmBeforeDay = DateUtils.getQingMingBeforeDay(curDate);
Date curDay = DateUtils.parseDate(DateUtils.getFormatDateString(curDate, DateUtils.SIMPLE_FORMAT), DateUtils.SIMPLE_FORMAT);
if (qmBeforeDay.equals(curDay)) {
sendImMsgDTO.setType(MsgTempTypeEnum.ACT_FU_TSD.getValue());
imMsgTemplateService.sendImMsg(sendImMsgDTO);
}
Date laborBeforeDay = DateUtils.getLaborBeforeDay(curDate);
if (laborBeforeDay.equals(curDay)) {
sendImMsgDTO.setType(MsgTempTypeEnum.ACT_FU_LD.getValue());
imMsgTemplateService.sendImMsg(sendImMsgDTO);
}
Date duanWuBeforeDay = DateUtils.getLaborBeforeDay(curDate);
if (duanWuBeforeDay.equals(curDay)) {
sendImMsgDTO.setType(MsgTempTypeEnum.ACT_FU_TDBF.getValue());
imMsgTemplateService.sendImMsg(sendImMsgDTO);
}
Date zhongQiuBeforeDay = DateUtils.getZhongQiuBeforeDay(curDate);
if (zhongQiuBeforeDay.equals(curDay)) {
sendImMsgDTO.setType(MsgTempTypeEnum.ACT_FU_MAF.getValue());
imMsgTemplateService.sendImMsg(sendImMsgDTO);
}
Date guoQingBeforeDay = DateUtils.getGuoQingBeforeDay(curDate);
if (guoQingBeforeDay.equals(curDay)) {
sendImMsgDTO.setType(MsgTempTypeEnum.ACT_FU_MAF.getValue());
imMsgTemplateService.sendImMsg(sendImMsgDTO);
} }
} }
} }
} catch (Exception e) {
log.error("节日日期转换异常", e);
} }
}
// @Scheduled(cron = "0 0 1 * * ?")
public void orderInvalidation() {
List<MobileBenefitPackageEntity> mobileBenefitPackageEntities = mobileBenefitPackageMapper.queryMaxOneList();
try {
if (!mobileBenefitPackageEntities.isEmpty()) {
for (MobileBenefitPackageEntity mbp : mobileBenefitPackageEntities) {
Date curTime = new Date();
Date endTime = DateUtils.parseDate(mbp.getBenefitsEndTime(), DateUtils.FULL_FORMAT);
PatientSignEntity patientSignEntity = patientSignSevice.getOneByPhone(mbp.getPhone());
mbp.setVersion(1);
if (endTime.after(curTime)) {
patientSignEntity.setPackageOrderId(mbp.getActivateOrderId());
patientSignEntity.setSignEndTime(endTime);
} else {
patientSignEntity.setStatus(StatusEnum.FINISH_APPLY.getValue());
}
patientSignSevice.updateById(patientSignEntity);
mobileBenefitPackageMapper.updateVersion(mbp);
}
}
} catch (Exception e) {
log.error("日期转换异常", e);
}
} }
} }
package com.ebaiyihui.family.doctor.server.task;
import com.alibaba.fastjson.JSONObject;
import com.ebaiyihui.family.doctor.common.bo.Result;
import com.ebaiyihui.family.doctor.common.dto.HealthInfoDTO;
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.ImConstants;
import com.ebaiyihui.family.doctor.server.common.enums.MsgTempTypeEnum;
import com.ebaiyihui.family.doctor.server.common.enums.StatusEnum;
import com.ebaiyihui.family.doctor.server.entity.MobileBenefitPackageEntity;
import com.ebaiyihui.family.doctor.server.entity.PatientSignEntity;
import com.ebaiyihui.family.doctor.server.mapper.MobileBenefitPackageMapper;
import com.ebaiyihui.family.doctor.server.service.ImMsgTemplateService;
import com.ebaiyihui.family.doctor.server.service.PatientSignService;
import com.ebaiyihui.family.doctor.server.util.DateUtils;
import com.ebaiyihui.family.doctor.server.util.ThirdOrderPushUtil;
import com.ebaiyihui.framework.response.BaseResponse;
import com.ebaiyihui.imforward.client.vo.IMQueryMsgReqVO;
import com.ebaiyihui.imforward.client.vo.IMQueryUserLoginReqVO;
import com.ebaiyihui.imforward.client.vo.IMQueryUserLoginRspVO;
import com.ebaiyihui.imforward.client.vo.IMSingleMsgResultVO;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
* @ClassName: SignedTask
* @Author:yanliang
* @Date:2024/3/22 10:20
* @Description
*/
@Component
@Slf4j
public class SignedTask {
@Autowired
private ImMsgTemplateService imMsgTemplateService;
@Autowired
private PatientSignService patientSignSevice;
@Autowired
private MobileBenefitPackageMapper mobileBenefitPackageMapper;
@Autowired
private ThirdOrderPushUtil thirdOrderPushUtil;
// @Scheduled(cron = "0 0 10 * * ?")
public void healthRecordWhetherUpdate() {
List<PatientSignEntity> patientSignEntities = patientSignSevice.selectList(new PatientSignEntity());
if (!patientSignEntities.isEmpty()) {
for (PatientSignEntity ps : patientSignEntities) {
HealthInfoDTO healthInfoDTO = new HealthInfoDTO();
healthInfoDTO.setPhone(ps.getPatientPhone());
// 查询用户健康档案30天内是否有更新
String result = thirdOrderPushUtil.getHealthRecordWhetherUpdate(healthInfoDTO);
Result<Boolean> res = JSONObject.parseObject(result, Result.class);
Boolean flag = res.getData();
SendImMsgDTO sendImMsgDTO = new SendImMsgDTO();
sendImMsgDTO.setAppCode(CommonConstants.APP_CODE);
sendImMsgDTO.setOrganId(CommonConstants.ORGAN_CODE);
sendImMsgDTO.setAdmId(ps.getAdmId());
if (!flag) {
sendImMsgDTO.setType(MsgTempTypeEnum.ACT_PUSH_HEAL_REC.getValue());
imMsgTemplateService.sendImMsg(sendImMsgDTO);
}
// 1、签约完成定时任务第10天,主动触发 2、定时任务之后每隔15天,主动触发
Date curDate = new Date();
int difDay = DateUtils.daysBetween(ps.getCreateTime(), curDate);
int afterFifteenDay = DateUtils.daysBetween(ps.getCreateTime(), curDate);
if (10 == difDay || afterFifteenDay % 15 == 0) {
sendImMsgDTO.setType(MsgTempTypeEnum.ACT__SIG_SUC.getValue());
imMsgTemplateService.sendImMsg(sendImMsgDTO);
}
// 1、当用户有触发过‘报告异常’问诊 2、定时任务触发20天后主动触发
if (20 == difDay) {
sendImMsgDTO.setType(MsgTempTypeEnum.ACT_FU_REP_ANO.getValue());
imMsgTemplateService.sendImMsg(sendImMsgDTO);
}
// 1、当用户与医生7天未进行沟通 2、判断后主动触发
// {"appCode":"EHOS_PATIENT","appointmentId":["9ad0b140bd1b4b86b1aa68f59c9dbf9a"],"businessCode":"jtys","msgType":"1","page":0,"pageSize":999,"sortOrder":"ASC","userId":"18170905967"}
IMQueryMsgReqVO imQueryMsgReqVO = new IMQueryMsgReqVO();
imQueryMsgReqVO.setAppCode(ImConstants.IM_PAT_ACCOUNT_NUM);
imQueryMsgReqVO.setBusinessCode(ImConstants.IM_QUERY_ACCOUNT_CODE);
imQueryMsgReqVO.setMsgType("1");
imQueryMsgReqVO.setPageSize(10);
imQueryMsgReqVO.setSortOrder("DESC");
List<String> appointmentIds = new ArrayList<>();
appointmentIds.add(ps.getAdmId());
imQueryMsgReqVO.setAppointmentId(appointmentIds);
imQueryMsgReqVO.setUserId(ps.getPatientUserId());
String sendTimeStr = "2023-12-01 00:00:00";
try {
BaseResponse<List<IMSingleMsgResultVO>> msgContent = patientSignSevice.getAllMsgContent(imQueryMsgReqVO);
if ("1".equals(msgContent.getCode())) {
List<IMSingleMsgResultVO> imSingleMsgResultVOS = msgContent.getData();
IMQueryUserLoginReqVO imQueryUserLoginReqVO = new IMQueryUserLoginReqVO();
imQueryUserLoginReqVO.setAppCode(ImConstants.IM_PAT_ACCOUNT_NUM);
imQueryUserLoginReqVO.setUserId(ps.getPatientUserId());
BaseResponse<IMQueryUserLoginRspVO> sdkLogin = patientSignSevice.querySdkLogin(imQueryUserLoginReqVO);
if ("1".equals(sdkLogin.getCode())) {
IMQueryUserLoginRspVO imQueryUserLoginRspVO = sdkLogin.getData();
String sdkAccount = imQueryUserLoginRspVO.getSdkAccount();
for (IMSingleMsgResultVO imSingleMsgResultVO : imSingleMsgResultVOS) {
if (imSingleMsgResultVO.getSender().equals(sdkAccount)) {
sendTimeStr = imSingleMsgResultVO.getSendTime();
break;
}
}
}
Date sendTime = DateUtils.parseDate(sendTimeStr, DateUtils.FULL_FORMAT);
int difSendDay = DateUtils.daysBetween(sendTime, curDate);
if (7 == difSendDay) {
sendImMsgDTO.setType(MsgTempTypeEnum.ACT_FU_UN_CON.getValue());
imMsgTemplateService.sendImMsg(sendImMsgDTO);
}
}
} catch (Exception e) {
log.error("获取发送消息异常", e);
}
}
}
}
// @Scheduled(cron = "0 0 20 * * ?")
public void holidayPush() {
List<PatientSignEntity> patientSignEntities = patientSignSevice.selectList(new PatientSignEntity());
try {
if (!patientSignEntities.isEmpty()) {
for (PatientSignEntity ps : patientSignEntities) {
SendImMsgDTO sendImMsgDTO = new SendImMsgDTO();
sendImMsgDTO.setAppCode(CommonConstants.APP_CODE);
sendImMsgDTO.setOrganId(CommonConstants.ORGAN_CODE);
sendImMsgDTO.setAdmId(ps.getAdmId());
Date curDate = new Date();
Date qmBeforeDay = DateUtils.getQingMingBeforeDay(curDate);
Date curDay = DateUtils.parseDate(DateUtils.getFormatDateString(curDate, DateUtils.SIMPLE_FORMAT), DateUtils.SIMPLE_FORMAT);
if (qmBeforeDay.equals(curDay)) {
sendImMsgDTO.setType(MsgTempTypeEnum.ACT_FU_TSD.getValue());
imMsgTemplateService.sendImMsg(sendImMsgDTO);
}
Date laborBeforeDay = DateUtils.getLaborBeforeDay(curDate);
if (laborBeforeDay.equals(curDay)) {
sendImMsgDTO.setType(MsgTempTypeEnum.ACT_FU_LD.getValue());
imMsgTemplateService.sendImMsg(sendImMsgDTO);
}
Date duanWuBeforeDay = DateUtils.getLaborBeforeDay(curDate);
if (duanWuBeforeDay.equals(curDay)) {
sendImMsgDTO.setType(MsgTempTypeEnum.ACT_FU_TDBF.getValue());
imMsgTemplateService.sendImMsg(sendImMsgDTO);
}
Date zhongQiuBeforeDay = DateUtils.getZhongQiuBeforeDay(curDate);
if (zhongQiuBeforeDay.equals(curDay)) {
sendImMsgDTO.setType(MsgTempTypeEnum.ACT_FU_MAF.getValue());
imMsgTemplateService.sendImMsg(sendImMsgDTO);
}
Date guoQingBeforeDay = DateUtils.getGuoQingBeforeDay(curDate);
if (guoQingBeforeDay.equals(curDay)) {
sendImMsgDTO.setType(MsgTempTypeEnum.ACT_FU_MAF.getValue());
imMsgTemplateService.sendImMsg(sendImMsgDTO);
}
}
}
} catch (Exception e) {
log.error("节日日期转换异常", e);
}
}
// @Scheduled(cron = "0 0 1 * * ?")
public void orderInvalidation() {
List<MobileBenefitPackageEntity> mobileBenefitPackageEntities = mobileBenefitPackageMapper.queryMaxOneList();
try {
if (!mobileBenefitPackageEntities.isEmpty()) {
for (MobileBenefitPackageEntity mbp : mobileBenefitPackageEntities) {
Date curTime = new Date();
Date endTime = DateUtils.parseDate(mbp.getBenefitsEndTime(), DateUtils.FULL_FORMAT);
PatientSignEntity patientSignEntity = patientSignSevice.getOneByPhone(mbp.getPhone());
mbp.setVersion(1);
if (endTime.after(curTime)) {
patientSignEntity.setPackageOrderId(mbp.getActivateOrderId());
patientSignEntity.setSignEndTime(endTime);
} else {
patientSignEntity.setStatus(StatusEnum.FINISH_APPLY.getValue());
}
patientSignSevice.updateById(patientSignEntity);
mobileBenefitPackageMapper.updateVersion(mbp);
}
}
} catch (Exception e) {
log.error("日期转换异常", e);
}
}
}
...@@ -8,9 +8,9 @@ ...@@ -8,9 +8,9 @@
INSERT INTO mobile_benefit_package ( INSERT INTO mobile_benefit_package (
<if test="productId != '' and productId != null">productId,</if> <if test="productId != '' and productId != null">productId,</if>
<if test="userId != '' and userId != null">userId,</if> <if test="userId != '' and userId != null">userId,</if>
<if test="activateOrderId != '' and activateOrderId != null">orderId,</if> <if test="activateOrderId != '' and activateOrderId != null">benefitOrderId,</if>
<if test="timeLimit != 0 and timeLimit != null">timeLimit,</if> <if test="timeLimit != 0 and timeLimit != null">timeLimit,</if>
<if test="orderId != '' and orderId != null">benefitOrderId,</if> <if test="orderId != '' and orderId != null">orderId,</if>
<if test="benefitsStartTime != '' and benefitsStartTime != null">benefitsStartTime,</if> <if test="benefitsStartTime != '' and benefitsStartTime != null">benefitsStartTime,</if>
<if test="benefitsEndTime != '' and benefitsEndTime != null">benefitsEndTime,</if> <if test="benefitsEndTime != '' and benefitsEndTime != null">benefitsEndTime,</if>
<if test="isRenew != '' and isRenew != null">isRenew,</if> <if test="isRenew != '' and isRenew != null">isRenew,</if>
...@@ -58,8 +58,7 @@ ...@@ -58,8 +58,7 @@
FROM FROM
mobile_benefit_package mobile_benefit_package
WHERE WHERE
phone = #{mobile} and orderId = #{activateOrderId} phone = #{mobile} and activateOrderId = #{activateOrderId}
and NOW() BETWEEN STR_TO_DATE(benefitsStartTime, '%Y-%m-%d %H:%i:%s') AND STR_TO_DATE(benefitsEndTime, '%Y-%m-%d %H:%i:%s')
ORDER BY ORDER BY
x_create_time DESC x_create_time DESC
LIMIT 0,1 LIMIT 0,1
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论