19 changed files with 777 additions and 107 deletions
@ -0,0 +1,207 @@ |
|||
//package com.acupuncture.web.task;
|
|||
//
|
|||
//import cn.hutool.core.bean.BeanUtil;
|
|||
//import cn.hutool.core.collection.CollectionUtil;
|
|||
//import cn.hutool.core.date.DateUtil;
|
|||
//import cn.hutool.core.util.IdUtil;
|
|||
//import com.acupuncture.common.annotation.Anonymous;
|
|||
//import com.acupuncture.framework.datasource.DynamicDataSourceContextHolder;
|
|||
//import com.acupuncture.system.domain.po.FmsFollowupTask;
|
|||
//import com.acupuncture.system.domain.po.FmsPatientQueueRelation;
|
|||
//import com.acupuncture.system.domain.vo.FmsFollowupVo;
|
|||
//import com.acupuncture.system.domain.vo.UmsDataSourceVo;
|
|||
//import com.acupuncture.system.persist.dao.FmsFollowupDao;
|
|||
//import com.acupuncture.system.persist.dao.UmsDataSourceDao;
|
|||
//import com.acupuncture.system.persist.mapper.FmsFollowupTaskMapper;
|
|||
//import com.acupuncture.system.persist.mapper.FmsPatientQueueRelationMapper;
|
|||
//import io.swagger.annotations.Api;
|
|||
//import io.swagger.annotations.ApiOperation;
|
|||
//import lombok.extern.slf4j.Slf4j;
|
|||
//import org.quartz.TriggerUtils;
|
|||
//import org.quartz.impl.triggers.CronTriggerImpl;
|
|||
//import org.springframework.scheduling.annotation.Scheduled;
|
|||
//import org.springframework.transaction.annotation.Propagation;
|
|||
//import org.springframework.transaction.annotation.Transactional;
|
|||
//import org.springframework.web.bind.annotation.PostMapping;
|
|||
//import org.springframework.web.bind.annotation.RequestMapping;
|
|||
//import org.springframework.web.bind.annotation.RestController;
|
|||
//
|
|||
//import javax.annotation.Resource;
|
|||
//import java.util.ArrayList;
|
|||
//import java.util.Calendar;
|
|||
//import java.util.Date;
|
|||
//import java.util.List;
|
|||
//
|
|||
///**
|
|||
// * @Author zzc
|
|||
// * @Package com.acupuncture.web.controller.web
|
|||
// * @Date 2025/2/13 8:50
|
|||
// * @description:
|
|||
// */
|
|||
//@Slf4j
|
|||
//@Api(tags = "定时任务相关")
|
|||
//@RestController
|
|||
//@RequestMapping("/task")
|
|||
//@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
|
|||
//public class TaskController1 {
|
|||
//
|
|||
// @Resource
|
|||
// private FmsFollowupDao fmsFollowupDao;
|
|||
// @Resource
|
|||
// private FmsFollowupTaskMapper fmsFollowupTaskMapper;
|
|||
// @Resource
|
|||
// private UmsDataSourceDao umsDataSourceDao;
|
|||
// @Resource
|
|||
// private FmsPatientQueueRelationMapper fmsPatientQueueRelationMapper;
|
|||
//
|
|||
// @ApiOperation("定时任务添加随访工单")
|
|||
// @PostMapping("/task")
|
|||
// @Scheduled(fixedRate = 10000)
|
|||
// @Anonymous
|
|||
// public void task() {
|
|||
// // TODO 生成工单第一次生成之后2周的,往后只生成之后一周。第一次随访时间: ( 患者的出院时间 - 7 + 轮次时间) 到 (患者的出院时间 + 7 + 轮次时间 )
|
|||
//
|
|||
// //查询租户,根据租户循环切换数据源,定时处理所有医院的随访工单
|
|||
//// UmsDataSourceVo.Result result1 = new UmsDataSourceVo.Result();
|
|||
//// result1.setDataSourceKey("MASTER");
|
|||
//// changeDataSource(result1);
|
|||
// List<UmsDataSourceVo.Result> query = umsDataSourceDao.query();
|
|||
// if (CollectionUtil.isEmpty(query)) {
|
|||
// return;
|
|||
// }
|
|||
// //查询公共队列
|
|||
// List<FmsFollowupVo.FollowupQueueVO> queueResults = fmsFollowupDao.queryCommonQueue(null);
|
|||
// //切换数据源
|
|||
// for (UmsDataSourceVo.Result result : query) {
|
|||
// if ("MASTER".equals(result.getDataSourceKey())) {
|
|||
// continue;
|
|||
// }
|
|||
// changeDataSource(result);
|
|||
// {
|
|||
// //获取随访患者列表,根据患者出院日时间和队列添加工单
|
|||
// //1. 查询队列
|
|||
// List<FmsFollowupVo.FollowupQueueVO> queueList = fmsFollowupDao.selectQueueList(null, null, null);
|
|||
//
|
|||
// if (CollectionUtil.isEmpty(queueList)) {
|
|||
// queueList = queueResults;
|
|||
// } else {
|
|||
// queueList.addAll(queueResults);
|
|||
// }
|
|||
// for (FmsFollowupVo.FollowupQueueVO followupQueueVO : queueList) {
|
|||
// //2. 查询队列随访患者列表
|
|||
// List<FmsFollowupVo.FollowupPatient> patientList = fmsFollowupDao.queryPatient(followupQueueVO.getId(), (byte) 0, null);
|
|||
// if (CollectionUtil.isEmpty(patientList)) {
|
|||
// continue;
|
|||
// }
|
|||
// //随访总月数
|
|||
// Integer followupMonth = followupQueueVO.getFollowupMonth();
|
|||
// for (FmsFollowupVo.FollowupPatient followupPatient : patientList) {
|
|||
// //获取随访到期时间 出院时间+随访总月数 = 到期时间
|
|||
// Calendar calendar = Calendar.getInstance();
|
|||
// calendar.setTime(followupPatient.getDischargeTime());
|
|||
// calendar.set(Calendar.MONTH, followupMonth);
|
|||
// Date time = calendar.getTime();
|
|||
//
|
|||
// //获取队列信息
|
|||
// String frequency = followupQueueVO.getFrequency();
|
|||
// List<Date> dateList = new ArrayList<>();
|
|||
// try {
|
|||
// CronTriggerImpl cronTrigger = new CronTriggerImpl();
|
|||
// cronTrigger.setCronExpression(frequency);
|
|||
// //TriggerUtils.computeFireTimesBetween(要计算触发时间的触发器对象, 用于计算触发时间的日历对象, 计算触发时间的起始时间点, 计算触发时间的结束时间点);
|
|||
// dateList = TriggerUtils.computeFireTimesBetween(cronTrigger, null, followupPatient.getDischargeTime(), time);
|
|||
// if (CollectionUtil.isEmpty(dateList)) {
|
|||
// continue;
|
|||
// }
|
|||
// } catch (Exception e) {
|
|||
// e.printStackTrace();
|
|||
// }
|
|||
// //3. 判断随访类型
|
|||
// if (followupQueueVO.getFollowupType() == 0) {
|
|||
// //单次
|
|||
// FmsFollowupTask fmsFollowupTask = new FmsFollowupTask();
|
|||
// BeanUtil.copyProperties(followupQueueVO, fmsFollowupTask);
|
|||
// fmsFollowupTask.setId(IdUtil.getSnowflakeNextId());
|
|||
// fmsFollowupTask.setName(followupPatient.getName());
|
|||
// fmsFollowupTask.setPinyinFull(followupPatient.getPinyinFull());
|
|||
// fmsFollowupTask.setPinyinSimple(followupPatient.getPinyinSimple());
|
|||
// fmsFollowupTask.setGender(followupPatient.getGender());
|
|||
// if (followupPatient.getBirthDate() != null) {
|
|||
// fmsFollowupTask.setAge(DateUtil.age(followupPatient.getBirthDate(), new Date()));
|
|||
// }
|
|||
// fmsFollowupTask.setEthnicity(followupPatient.getEthnicity());
|
|||
// fmsFollowupTask.setEducationYears(followupPatient.getEducationYears());
|
|||
// fmsFollowupTask.setPhone(followupPatient.getPhone());
|
|||
// fmsFollowupTask.setTenantId(followupPatient.getTenantId());
|
|||
// fmsFollowupTask.setIdCardType(followupPatient.getIdCardType());
|
|||
// fmsFollowupTask.setIdCard(followupPatient.getIdCard());
|
|||
// fmsFollowupTask.setTimes(1);
|
|||
// fmsFollowupTask.setQueueId(followupQueueVO.getId());
|
|||
// fmsFollowupTask.setPatientId(followupPatient.getId());
|
|||
// fmsFollowupTask.setEducationYears(followupPatient.getEducationYears());
|
|||
// fmsFollowupTask.setDelFlag((byte) 0);
|
|||
// fmsFollowupTask.setCreateTime(new Date());
|
|||
// fmsFollowupTask.setStatus((byte) 0);
|
|||
// fmsFollowupTask.setStartTime(dateList.get(0));
|
|||
// fmsFollowupTask.setEndTime(dateList.get(0));
|
|||
// fmsFollowupTask.setFollowuper(followupQueueVO.getPersonInCharge());
|
|||
// fmsFollowupTask.setFollowupTime(dateList.get(0));
|
|||
// changeDataSource(result);
|
|||
// fmsFollowupTaskMapper.insertSelective(fmsFollowupTask);
|
|||
//
|
|||
// } else {
|
|||
// //周期
|
|||
// //4. 根据频次和总月数添加
|
|||
// int i = 0;
|
|||
// for (Date date : dateList) {
|
|||
// i+=1;
|
|||
// //单次
|
|||
// FmsFollowupTask fmsFollowupTask = new FmsFollowupTask();
|
|||
// BeanUtil.copyProperties(followupQueueVO, fmsFollowupTask);
|
|||
// fmsFollowupTask.setId(IdUtil.getSnowflakeNextId());
|
|||
// fmsFollowupTask.setName(followupPatient.getName());
|
|||
// fmsFollowupTask.setPinyinFull(followupPatient.getPinyinFull());
|
|||
// fmsFollowupTask.setPinyinSimple(followupPatient.getPinyinSimple());
|
|||
// fmsFollowupTask.setGender(followupPatient.getGender());
|
|||
// if (followupPatient.getBirthDate() != null) {
|
|||
// fmsFollowupTask.setAge(DateUtil.age(followupPatient.getBirthDate(), new Date()));
|
|||
// }
|
|||
// fmsFollowupTask.setEthnicity(followupPatient.getEthnicity());
|
|||
// fmsFollowupTask.setEducationYears(followupPatient.getEducationYears());
|
|||
// fmsFollowupTask.setTimes(i);
|
|||
// fmsFollowupTask.setPhone(followupPatient.getPhone());
|
|||
// fmsFollowupTask.setTenantId(followupPatient.getTenantId());
|
|||
// fmsFollowupTask.setIdCardType(followupPatient.getIdCardType());
|
|||
// fmsFollowupTask.setIdCard(followupPatient.getIdCard());
|
|||
// fmsFollowupTask.setId(IdUtil.getSnowflakeNextId());
|
|||
// fmsFollowupTask.setQueueId(followupQueueVO.getId());
|
|||
// fmsFollowupTask.setDelFlag((byte) 0);
|
|||
// fmsFollowupTask.setCreateTime(new Date());
|
|||
// fmsFollowupTask.setEducationYears(followupPatient.getEducationYears());
|
|||
// fmsFollowupTask.setStatus((byte) 0);
|
|||
// fmsFollowupTask.setStartTime(date);
|
|||
// fmsFollowupTask.setEndTime(date);
|
|||
// fmsFollowupTask.setFollowuper(followupQueueVO.getPersonInCharge());
|
|||
// fmsFollowupTask.setFollowupTime(date);
|
|||
// changeDataSource(result);
|
|||
// fmsFollowupTask.setPatientId(followupPatient.getId());
|
|||
// fmsFollowupTaskMapper.insertSelective(fmsFollowupTask);
|
|||
// }
|
|||
// }
|
|||
// changeDataSource(result);
|
|||
// //将患者设置为已生成工单
|
|||
// FmsPatientQueueRelation fmsPatientQueueRelation = BeanUtil.copyProperties(followupPatient, FmsPatientQueueRelation.class);
|
|||
// fmsPatientQueueRelation.setTaskFlag((byte) 1);
|
|||
// fmsPatientQueueRelation.setPatientId(followupPatient.getId());
|
|||
// fmsPatientQueueRelationMapper.updateByPrimaryKeySelective(fmsPatientQueueRelation);
|
|||
// }
|
|||
// }
|
|||
//
|
|||
// }
|
|||
// }
|
|||
// }
|
|||
//
|
|||
// private static void changeDataSource(UmsDataSourceVo.Result result) {
|
|||
// DynamicDataSourceContextHolder.setDataSourceType(result.getDataSourceKey());
|
|||
// }
|
|||
//}
|
Loading…
Reference in new issue