| | |
| | | package com.smartor.service.impl; |
| | | |
| | | import com.ruoyi.common.enums.SendTypeEnum; |
| | | 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.mapper.PatArchiveMapper; |
| | | import com.smartor.mapper.PatHetaskRelevanceMapper; |
| | | 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; |
| | |
| | | * @author ruoyi |
| | | * @date 2024-01-07 |
| | | */ |
| | | @Slf4j |
| | | @Service |
| | | public class HeTaskServiceImpl implements IHeTaskService { |
| | | @Autowired |
| | |
| | | * @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 (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.getPatHetaskRelevances().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.getPatHetaskRelevances())) { |
| | | // for (PatHetaskRelevance patHetaskRelevance : heTaskVO.getPatHetaskRelevances()) { |
| | | // patHetaskRelevance.setHeTaskId(heTask.getId()); |
| | | // i = patHetaskRelevanceMapper.insertPatHetaskRelevance(patHetaskRelevance); |
| | | // } |
| | | // |
| | | // } |
| | | // |
| | | // } 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); |
| | | // } |
| | | // |
| | | // } |
| | | // } |
| | | // }, heTaskVO.getSendTime()); |
| | | // |
| | | // } |
| | | // return 1; |
| | | // } |
| | | |
| | | /** |
| | | * 新增宣教任务 |
| | | * |
| | | * @param heTaskVO 宣教任务 |
| | | * @return 结果 |
| | | */ |
| | | @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()); |
| | | 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(); |
| | | //新增 |
| | | for (PatHetaskRelevance patHetaskRelevance : heTaskVO.getPatHetaskRelevances()) { |
| | | patHetaskRelevance.setHeTaskId(heTask.getId()); |
| | | patHetaskRelevanceMapper.insertPatHetaskRelevance(patHetaskRelevance); |
| | | } |
| | | |
| | | } 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 (PatHetaskRelevance patHetaskRelevance : heTaskVO.getPatHetaskRelevances()) { |
| | | if (patHetaskRelevance.getIsoperation() != null && patHetaskRelevance.getIsoperation() == 1) { |
| | | patHetaskRelevanceMapper.insertPatHetaskRelevance(patHetaskRelevance); |
| | | } else if (patHetaskRelevance.getIsoperation() != null && patHetaskRelevance.getIsoperation() == 2) { |
| | | patHetaskRelevance.setHeTaskId(heTask.getId()); |
| | | patHetaskRelevanceMapper.updatePatHetaskRelevance(patHetaskRelevance); |
| | | } else if (patHetaskRelevance.getIsoperation() != null && patHetaskRelevance.getIsoperation() == 3) { |
| | | patHetaskRelevanceMapper.deletePatHetaskRelevanceById(patHetaskRelevance.getId()); |
| | | } |
| | | }, heTaskVO.getSendTime()); |
| | | } |
| | | integer = heTask.getId().intValue(); |
| | | } else if (heTaskVO.getIsoperation() != null && heTaskVO.getIsoperation() == 3) { |
| | | heTaskMapper.deleteHeTaskById(heTaskVO.getId()); |
| | | |
| | | //删除患者信息 |
| | | for (PatHetaskRelevance patHetaskRelevance : heTaskVO.getPatHetaskRelevances()) { |
| | | if (patHetaskRelevance.getIsoperation() != null && patHetaskRelevance.getIsoperation() == 3) { |
| | | patHetaskRelevanceMapper.deletePatHetaskRelevanceById(patHetaskRelevance.getId()); |
| | | } |
| | | } |
| | | integer = heTaskVO.getId().intValue(); |
| | | } |
| | | return 1; |
| | | return integer; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 修改宣教任务 |
| | |
| | | } |
| | | 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); |