liusheng
2024-04-24 01c9667cfb06970564e837dc343d5cee0eb3aed7
smartor/src/main/java/com/smartor/service/impl/HeTaskServiceImpl.java
@@ -1,14 +1,16 @@
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;
@@ -17,8 +19,6 @@
import java.util.ArrayList;
import java.util.List;
import java.util.Timer;
import java.util.TimerTask;
/**
 * 宣教任务Service业务层处理
@@ -26,6 +26,7 @@
 * @author ruoyi
 * @date 2024-01-07
 */
@Slf4j
@Service
public class HeTaskServiceImpl implements IHeTaskService {
    @Autowired
@@ -41,7 +42,7 @@
    private HeLibraryServiceImpl heLibraryService;
    @Autowired
    private PatHetaskRelevanceMapper patHetaskRelevanceMapper;
    private PatTaskRelevanceMapper PatTaskRelevanceMapper;
    @Autowired
    private SendService sendService;
@@ -82,20 +83,112 @@
    /**
     * 查询宣教任务列表
     *
     * @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;
//    }
    /**
     * 新增宣教任务
@@ -105,89 +198,60 @@
     */
    @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;
    }
    /**
     * 修改宣教任务
@@ -234,8 +298,8 @@
     * @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) {
@@ -258,14 +322,14 @@
            }
        }
        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;
    }
}