liusheng
2024-01-30 7ae67ba965ea680407ae21fedbd035d43ce8c313
smartor/src/main/java/com/smartor/service/impl/HeTaskServiceImpl.java
@@ -1,6 +1,7 @@
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;
@@ -9,6 +10,7 @@
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;
@@ -26,6 +28,7 @@
 * @author ruoyi
 * @date 2024-01-07
 */
@Slf4j
@Service
public class HeTaskServiceImpl implements IHeTaskService {
    @Autowired
@@ -103,91 +106,149 @@
     * @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;
    }
    /**
     * 修改宣教任务
@@ -259,7 +320,6 @@
        }
        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);