| | |
| | | package com.smartor.service.impl; |
| | | |
| | | import com.ruoyi.common.enums.SendTypeEnum; |
| | | import com.google.gson.Gson; |
| | | import com.ruoyi.common.exception.base.BaseException; |
| | | import com.ruoyi.common.utils.DateUtils; |
| | | import com.ruoyi.common.utils.DtoConversionUtils; |
| | | import com.smartor.common.SendService; |
| | | import com.smartor.domain.*; |
| | | import com.smartor.mapper.HeTaskMapper; |
| | | import com.smartor.mapper.PatArchiveMapper; |
| | | import com.smartor.mapper.PatHetaskRelevanceMapper; |
| | | import com.smartor.mapper.PatTaskRelevanceMapper; |
| | | import com.smartor.service.IHeTaskService; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.apache.commons.collections4.CollectionUtils; |
| | | import org.apache.commons.lang3.ObjectUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | import java.util.Timer; |
| | | import java.util.TimerTask; |
| | | |
| | | /** |
| | | * 宣教任务Service业务层处理 |
| | |
| | | * @author ruoyi |
| | | * @date 2024-01-07 |
| | | */ |
| | | @Slf4j |
| | | @Service |
| | | public class HeTaskServiceImpl implements IHeTaskService { |
| | | @Autowired |
| | |
| | | private HeLibraryServiceImpl heLibraryService; |
| | | |
| | | @Autowired |
| | | private PatHetaskRelevanceMapper patHetaskRelevanceMapper; |
| | | private PatTaskRelevanceMapper PatTaskRelevanceMapper; |
| | | |
| | | @Autowired |
| | | private SendService sendService; |
| | |
| | | /** |
| | | * 查询宣教任务列表 |
| | | * |
| | | * @param patHetaskRelevanceVO 宣教任务 |
| | | * @param patTaskRelevanceVO 宣教任务 |
| | | * @return 宣教任务 |
| | | */ |
| | | @Override |
| | | public List<PatHetaskRelevanceVO> selectHeTaskList(PatHetaskRelevanceVO patHetaskRelevanceVO) { |
| | | PatHetaskRelevance patHetaskRelevance = new PatHetaskRelevance(); |
| | | List<PatHetaskRelevance> patHetaskRelevances = patHetaskRelevanceMapper.selectPatHetaskRelevanceList(patHetaskRelevance); |
| | | List<PatHetaskRelevanceVO> patHetaskRelevanceVOS = DtoConversionUtils.sourceToTarget(patHetaskRelevances, PatHetaskRelevanceVO.class); |
| | | for (PatHetaskRelevanceVO patHetaskRelevanceVO1 : patHetaskRelevanceVOS) { |
| | | HeTask heTask1 = heTaskMapper.selectHeTaskById(patHetaskRelevanceVO1.getHeTaskId()); |
| | | patHetaskRelevanceVO1.setHeTask(heTask1); |
| | | public List<PatTaskRelevanceVO> selectHeTaskList(PatTaskRelevanceVO patTaskRelevanceVO) { |
| | | PatTaskRelevance patTaskRelevance = new PatTaskRelevance(); |
| | | List<PatTaskRelevance> patTaskRelevances = PatTaskRelevanceMapper.selectPatTaskRelevanceList(patTaskRelevance); |
| | | List<PatTaskRelevanceVO> PatTaskRelevanceVOS = DtoConversionUtils.sourceToTarget(patTaskRelevances, PatTaskRelevanceVO.class); |
| | | for (PatTaskRelevanceVO patTaskRelevanceVO1 : PatTaskRelevanceVOS) { |
| | | HeTask heTask1 = heTaskMapper.selectHeTaskById(patTaskRelevanceVO1.getTaskId()); |
| | | patTaskRelevanceVO1.setHeTask(heTask1); |
| | | } |
| | | return patHetaskRelevanceVOS; |
| | | return PatTaskRelevanceVOS; |
| | | } |
| | | |
| | | /** |
| | | * 新增宣教任务 |
| | | * |
| | | * @param heTaskVO 宣教任务 |
| | | * @return 结果 |
| | | */ |
| | | // @Transactional(rollbackFor = Exception.class) |
| | | // @Override |
| | | // public int insertHeTask(HeTaskVO heTaskVO) { |
| | | // |
| | | // Integer integer = 0; |
| | | // //判断发送状态 0 暂停发送 1 定时发送 2 立即发送 |
| | | // if (heTaskVO.getIsSend() == 2) { |
| | | // //发送方式 |
| | | // String sendtype = SendTypeEnum.getDescByCode(heTaskVO.getPreachform().intValue()); |
| | | // for (PatTaskRelevance PatTaskRelevance : heTaskVO.getPatTaskRelevances()) { |
| | | // //开始发送 |
| | | // SendMagParam sendMagParam = new SendMagParam(); |
| | | // sendMagParam.setType(sendtype); |
| | | // sendMagParam.setPhone(PatTaskRelevance.getPhone()); |
| | | // //这里的模板ID不确定,先这样写 |
| | | // sendMagParam.setTmpCode("SMS_461860582"); |
| | | // sendMagParam.setContent("Test发送数据"); |
| | | // Boolean success = sendService.sendMsg(sendMagParam); |
| | | // if (success) { |
| | | // integer = integer + 1; |
| | | // } |
| | | // |
| | | // //必须全部成功,才能修改发送状态 |
| | | // if (heTaskVO.getPatTaskRelevances().size() == integer) { |
| | | // //如果发送成功 |
| | | // heTaskVO.setSendState(1L); |
| | | // } |
| | | // } |
| | | // //将任务信息新增到宣教任务表中 |
| | | // HeTask heTask = DtoConversionUtils.sourceToTarget(heTaskVO, HeTask.class); |
| | | // heTask.setCreateTime(DateUtils.getNowDate()); |
| | | // heTaskMapper.insertHeTask(heTask); |
| | | // |
| | | // //将任务与患者关联 |
| | | // Integer i = null; |
| | | // if (ObjectUtils.isNotEmpty(heTaskVO.getPatTaskRelevances())) { |
| | | // for (PatTaskRelevance PatTaskRelevance : heTaskVO.getPatTaskRelevances()) { |
| | | // PatTaskRelevance.setHeTaskId(heTask.getId()); |
| | | // i = PatTaskRelevanceMapper.insertPatTaskRelevance(PatTaskRelevance); |
| | | // } |
| | | // |
| | | // } |
| | | // |
| | | // } else if (heTaskVO.getIsSend() == 1) { |
| | | // //定时发送(异步) |
| | | // Timer timer = new Timer(); |
| | | // timer.schedule(new TimerTask() { |
| | | // @Override |
| | | // public void run() { |
| | | // Integer integer = 0; |
| | | // for (PatTaskRelevance PatTaskRelevance : heTaskVO.getPatTaskRelevances()) { |
| | | // String sendtype = SendTypeEnum.getDescByCode(heTaskVO.getPreachform().intValue()); |
| | | // SendMagParam sendMagParam = new SendMagParam(); |
| | | // sendMagParam.setType(sendtype); |
| | | // sendMagParam.setPhone(PatTaskRelevance.getPhone()); |
| | | // //这里的模板ID不确定,先这样写 |
| | | // sendMagParam.setTmpCode("SMS_461860582"); |
| | | // sendMagParam.setContent("Test发送数据"); |
| | | // Boolean success = sendService.sendMsg(sendMagParam); |
| | | // if (success) { |
| | | // integer = integer + 1; |
| | | // } |
| | | // } |
| | | // //必须全部成功,才能修改发送状态 |
| | | // if (heTaskVO.getPatTaskRelevances().size() == integer) { |
| | | // //如果发送成功 |
| | | // heTaskVO.setSendState(1L); |
| | | // } |
| | | // HeTask heTask = DtoConversionUtils.sourceToTarget(heTaskVO, HeTask.class); |
| | | // heTask.setCreateTime(DateUtils.getNowDate()); |
| | | // heTaskMapper.insertHeTask(heTask); |
| | | // |
| | | // if (ObjectUtils.isNotEmpty(heTaskVO.getPatTaskRelevances())) { |
| | | // for (PatTaskRelevance PatTaskRelevance : heTaskVO.getPatTaskRelevances()) { |
| | | // PatTaskRelevance.setHeTaskId(heTask.getId()); |
| | | // PatTaskRelevanceMapper.insertPatTaskRelevance(PatTaskRelevance); |
| | | // } |
| | | // |
| | | // } |
| | | // } |
| | | // }, heTaskVO.getSendTime()); |
| | | // |
| | | // } |
| | | // return 1; |
| | | // } |
| | | |
| | | /** |
| | | * 新增宣教任务 |
| | |
| | | */ |
| | | @Transactional(rollbackFor = Exception.class) |
| | | @Override |
| | | public int insertHeTask(HeTaskVO heTaskVO) { |
| | | |
| | | public int insertOrUpdateHeTask(HeTaskVO heTaskVO) { |
| | | if (ObjectUtils.isEmpty(heTaskVO)) { |
| | | log.info("宣教任务入参为空,请检查入参"); |
| | | throw new BaseException("宣教任务入参为空,请检查入参"); |
| | | } |
| | | Integer integer = 0; |
| | | //判断发送状态 0 暂停发送 1 定时发送 2 立即发送 |
| | | if (heTaskVO.getIsSend() == 2) { |
| | | //发送方式 |
| | | String sendtype = SendTypeEnum.getDescByCode(heTaskVO.getPreachform().intValue()); |
| | | for (PatHetaskRelevance patHetaskRelevance : heTaskVO.getPatHetaskRelevances()) { |
| | | //开始发送 |
| | | SendMagParam sendMagParam = new SendMagParam(); |
| | | sendMagParam.setType(sendtype); |
| | | sendMagParam.setPhone(patHetaskRelevance.getPhone()); |
| | | //这里的模板ID不确定,先这样写 |
| | | sendMagParam.setTmpCode("SMS_461860582"); |
| | | sendMagParam.setContent("Test发送数据"); |
| | | Boolean success = sendService.sendMsg(sendMagParam); |
| | | if (success) { |
| | | integer = integer + 1; |
| | | } |
| | | if (heTaskVO.getIsoperation() != null && heTaskVO.getIsoperation() == 1) { |
| | | |
| | | //必须全部成功,才能修改发送状态 |
| | | if (heTaskVO.getPatHetaskRelevances().size() == integer) { |
| | | //如果发送成功 |
| | | heTaskVO.setSendState(1L); |
| | | } |
| | | } |
| | | //将任务信息新增到宣教任务表中 |
| | | HeTask heTask = DtoConversionUtils.sourceToTarget(heTaskVO, HeTask.class); |
| | | |
| | | heTask.setCreateTime(DateUtils.getNowDate()); |
| | | heTask.setPreachform(new Gson().toJson(heTaskVO.getPreachform())); |
| | | heTask.setTextParam(new Gson().toJson(heTaskVO.getTextParam())); |
| | | heTaskMapper.insertHeTask(heTask); |
| | | |
| | | //将任务与患者关联 |
| | | Integer i = null; |
| | | if (ObjectUtils.isNotEmpty(heTaskVO.getPatHetaskRelevances())) { |
| | | for (PatHetaskRelevance patHetaskRelevance : heTaskVO.getPatHetaskRelevances()) { |
| | | patHetaskRelevance.setHeTaskId(heTask.getId()); |
| | | i = patHetaskRelevanceMapper.insertPatHetaskRelevance(patHetaskRelevance); |
| | | integer = heTask.getId().intValue(); |
| | | //新增 |
| | | if (CollectionUtils.isNotEmpty(heTaskVO.getPatTaskRelevances())) { |
| | | for (PatTaskRelevance PatTaskRelevance : heTaskVO.getPatTaskRelevances()) { |
| | | PatTaskRelevance.setTaskId(heTask.getId()); |
| | | PatTaskRelevanceMapper.insertPatTaskRelevance(PatTaskRelevance); |
| | | } |
| | | |
| | | } |
| | | |
| | | } else if (heTaskVO.getIsSend() == 1) { |
| | | //定时发送(异步) |
| | | Timer timer = new Timer(); |
| | | timer.schedule(new TimerTask() { |
| | | @Override |
| | | public void run() { |
| | | Integer integer = 0; |
| | | for (PatHetaskRelevance patHetaskRelevance : heTaskVO.getPatHetaskRelevances()) { |
| | | String sendtype = SendTypeEnum.getDescByCode(heTaskVO.getPreachform().intValue()); |
| | | SendMagParam sendMagParam = new SendMagParam(); |
| | | sendMagParam.setType(sendtype); |
| | | sendMagParam.setPhone(patHetaskRelevance.getPhone()); |
| | | //这里的模板ID不确定,先这样写 |
| | | sendMagParam.setTmpCode("SMS_461860582"); |
| | | sendMagParam.setContent("Test发送数据"); |
| | | Boolean success = sendService.sendMsg(sendMagParam); |
| | | if (success) { |
| | | integer = integer + 1; |
| | | } |
| | | } |
| | | //必须全部成功,才能修改发送状态 |
| | | if (heTaskVO.getPatHetaskRelevances().size() == integer) { |
| | | //如果发送成功 |
| | | heTaskVO.setSendState(1L); |
| | | } |
| | | HeTask heTask = DtoConversionUtils.sourceToTarget(heTaskVO, HeTask.class); |
| | | heTask.setCreateTime(DateUtils.getNowDate()); |
| | | heTaskMapper.insertHeTask(heTask); |
| | | |
| | | if (ObjectUtils.isNotEmpty(heTaskVO.getPatHetaskRelevances())) { |
| | | for (PatHetaskRelevance patHetaskRelevance : heTaskVO.getPatHetaskRelevances()) { |
| | | patHetaskRelevance.setHeTaskId(heTask.getId()); |
| | | patHetaskRelevanceMapper.insertPatHetaskRelevance(patHetaskRelevance); |
| | | } |
| | | |
| | | } |
| | | } else if (heTaskVO.getIsoperation() != null && heTaskVO.getIsoperation() == 2) { |
| | | HeTask heTask = DtoConversionUtils.sourceToTarget(heTaskVO, HeTask.class); |
| | | heTask.setUpdateTime(DateUtils.getNowDate()); |
| | | heTaskMapper.updateHeTask(heTask); |
| | | //新增、删除、修改患者信息 |
| | | for (PatTaskRelevance PatTaskRelevance : heTaskVO.getPatTaskRelevances()) { |
| | | if (PatTaskRelevance.getIsoperation() != null && PatTaskRelevance.getIsoperation() == 1) { |
| | | PatTaskRelevanceMapper.insertPatTaskRelevance(PatTaskRelevance); |
| | | } else if (PatTaskRelevance.getIsoperation() != null && PatTaskRelevance.getIsoperation() == 2) { |
| | | PatTaskRelevance.setTaskId(heTask.getId()); |
| | | PatTaskRelevanceMapper.updatePatTaskRelevance(PatTaskRelevance); |
| | | } else if (PatTaskRelevance.getIsoperation() != null && PatTaskRelevance.getIsoperation() == 3) { |
| | | PatTaskRelevanceMapper.deletePatTaskRelevanceById(PatTaskRelevance.getId()); |
| | | } |
| | | }, heTaskVO.getSendTime()); |
| | | } |
| | | integer = heTask.getId().intValue(); |
| | | } else if (heTaskVO.getIsoperation() != null && heTaskVO.getIsoperation() == 3) { |
| | | heTaskMapper.deleteHeTaskById(heTaskVO.getId()); |
| | | |
| | | //删除患者信息 |
| | | for (PatTaskRelevance PatTaskRelevance : heTaskVO.getPatTaskRelevances()) { |
| | | if (PatTaskRelevance.getIsoperation() != null && PatTaskRelevance.getIsoperation() == 3) { |
| | | PatTaskRelevanceMapper.deletePatTaskRelevanceById(PatTaskRelevance.getId()); |
| | | } |
| | | } |
| | | integer = heTaskVO.getId().intValue(); |
| | | } |
| | | return 1; |
| | | return integer; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 修改宣教任务 |
| | |
| | | * @return |
| | | */ |
| | | @Override |
| | | public List<PatHetaskRelevance> getPatientInfo(PatArchiveReq patArchiveReq) { |
| | | List<PatHetaskRelevance> patHetaskRelevances = new ArrayList<>(); |
| | | public List<PatTaskRelevance> getPatientInfo(PatArchiveReq patArchiveReq) { |
| | | List<PatTaskRelevance> PatTaskRelevances = new ArrayList<>(); |
| | | |
| | | List<PatArchive> patArchiveList = new ArrayList<>(); |
| | | if (patArchiveReq.getAllhosp() != null && patArchiveReq.getAllhosp() == 1) { |
| | |
| | | } |
| | | } |
| | | for (PatArchive patArchive : patArchiveList) { |
| | | PatHetaskRelevance patHetaskRelevance = DtoConversionUtils.sourceToTarget(patArchive, PatHetaskRelevance.class); |
| | | patHetaskRelevance.setDept(patArchive.getArchiveby()); |
| | | patHetaskRelevance.setCreateTime(patArchive.getCreateTime()); |
| | | patHetaskRelevance.setCreateBy(patArchive.getCreateBy()); |
| | | patHetaskRelevances.add(patHetaskRelevance); |
| | | PatTaskRelevance patTaskRelevance = DtoConversionUtils.sourceToTarget(patArchive, PatTaskRelevance.class); |
| | | patTaskRelevance.setCreateTime(patArchive.getCreateTime()); |
| | | patTaskRelevance.setCreateBy(patArchive.getCreateBy()); |
| | | patTaskRelevance.setDeptName(patArchive.getDept()); |
| | | PatTaskRelevances.add(patTaskRelevance); |
| | | } |
| | | |
| | | return patHetaskRelevances; |
| | | return PatTaskRelevances; |
| | | } |
| | | |
| | | } |