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.domain.*;
|
import com.smartor.mapper.HeTaskMapper;
|
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;
|
import org.springframework.stereotype.Service;
|
import org.springframework.transaction.annotation.Transactional;
|
|
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 HeTaskMapper heTaskMapper;
|
|
@Autowired
|
private PatArchiveMapper patArchiveMapper;
|
|
@Autowired
|
private PatArchiveServiceImpl patArchiveService;
|
|
@Autowired
|
private HeLibraryServiceImpl heLibraryService;
|
|
@Autowired
|
private PatHetaskRelevanceMapper patHetaskRelevanceMapper;
|
|
@Autowired
|
private SendService sendService;
|
|
/**
|
* 查询宣教任务
|
*
|
* @param id 宣教任务主键
|
* @return 宣教任务
|
*/
|
@Override
|
public HeTaskVO selectHeTaskById(Long id) {
|
// HeTask heTask = heTaskMapper.selectHeTaskById(id);
|
// HeTaskVO heTaskVO = DtoConversionUtils.sourceToTarget(heTask, HeTaskVO.class);
|
//
|
// //获取患者信息
|
// if (StringUtils.isNotEmpty(heTask.getPatientid())) {
|
// List<PatArchive> patArchives = new ArrayList<>();
|
// String[] patientids = heTask.getPatientid().split(",");
|
// for (String patientid : patientids) {
|
// PatArchive patArchive = patArchiveMapper.selectPatArchiveByPatid(Long.valueOf(patientid));
|
// patArchives.add(patArchive);
|
// }
|
// heTaskVO.setPatArchives(patArchives);
|
// }
|
//
|
// //获取宣教模板信息
|
// if (heTask.getPreachcategoryid() != null) {
|
// HeLibrary heLibrary = new HeLibrary();
|
// heLibrary.setId(heTask.getPreachcategoryid());
|
// HeLibraryVO heLibraryVO = heLibraryService.selectInfoByCondition(heLibrary);
|
// heTaskVO.setHeLibraryVOs(heLibraryVO);
|
// }
|
|
return null;
|
}
|
|
/**
|
* 查询宣教任务列表
|
*
|
* @param patHetaskRelevanceVO 宣教任务
|
* @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);
|
}
|
return patHetaskRelevanceVOS;
|
}
|
|
/**
|
* 新增宣教任务
|
*
|
* @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 insertOrUpdateHeTask(HeTaskVO heTaskVO) {
|
if (ObjectUtils.isEmpty(heTaskVO)) {
|
log.info("宣教任务入参为空,请检查入参");
|
throw new BaseException("宣教任务入参为空,请检查入参");
|
}
|
Integer integer = 0;
|
if (heTaskVO.getIsoperation() != null && heTaskVO.getIsoperation() == 1) {
|
|
//将任务信息新增到宣教任务表中
|
HeTask heTask = DtoConversionUtils.sourceToTarget(heTaskVO, HeTask.class);
|
heTask.setCreateTime(DateUtils.getNowDate());
|
heTaskMapper.insertHeTask(heTask);
|
integer = heTask.getId().intValue();
|
//新增
|
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());
|
}
|
}
|
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 integer;
|
}
|
|
|
/**
|
* 修改宣教任务
|
*
|
* @param heTask 宣教任务
|
* @return 结果
|
*/
|
@Override
|
public int updateHeTask(HeTask heTask) {
|
heTask.setUpdateTime(DateUtils.getNowDate());
|
return heTaskMapper.updateHeTask(heTask);
|
}
|
|
/**
|
* 批量删除宣教任务
|
*
|
* @param ids 需要删除的宣教任务主键
|
* @return 结果
|
*/
|
@Override
|
public int deleteHeTaskByIds(Long[] ids) {
|
Integer i = null;
|
for (Long id : ids) {
|
i = heTaskMapper.deleteHeTaskById(id);
|
}
|
return i;
|
}
|
|
/**
|
* 删除宣教任务信息
|
*
|
* @param id 宣教任务主键
|
* @return 结果
|
*/
|
@Override
|
public int deleteHeTaskById(Long id) {
|
return heTaskMapper.deleteHeTaskById(id);
|
}
|
|
/**
|
* 获取患者信息
|
*
|
* @param patArchiveReq
|
* @return
|
*/
|
@Override
|
public List<PatHetaskRelevance> getPatientInfo(PatArchiveReq patArchiveReq) {
|
List<PatHetaskRelevance> patHetaskRelevances = new ArrayList<>();
|
|
List<PatArchive> patArchiveList = new ArrayList<>();
|
if (patArchiveReq.getAllhosp() != null && patArchiveReq.getAllhosp() == 1) {
|
// 查看住院 1 查看门诊 2 查看体检 3
|
List<PatArchive> patArchives1 = patArchiveMapper.selectPatArchiveInfoByInhosp(patArchiveReq);
|
if (CollectionUtils.isNotEmpty(patArchives1)) {
|
patArchiveList.addAll(patArchives1);
|
}
|
} else if (patArchiveReq.getAllhosp() != null && patArchiveReq.getAllhosp() == 2) {
|
// 查看住院 1 查看门诊 2 查看体检 3
|
List<PatArchive> patArchives2 = patArchiveMapper.selectPatArchiveInfoByOuthosp(patArchiveReq);
|
if (CollectionUtils.isNotEmpty(patArchives2)) {
|
patArchiveList.addAll(patArchives2);
|
}
|
} else if (patArchiveReq.getAllhosp() != null && patArchiveReq.getAllhosp() == 3) {
|
// 查看住院 1 查看门诊 2 查看体检 3
|
List<PatArchive> patArchives3 = patArchiveMapper.selectPatArchiveInfoByPhysical(patArchiveReq);
|
if (CollectionUtils.isNotEmpty(patArchives3)) {
|
patArchiveList.addAll(patArchives3);
|
}
|
}
|
for (PatArchive patArchive : patArchiveList) {
|
PatHetaskRelevance patHetaskRelevance = DtoConversionUtils.sourceToTarget(patArchive, PatHetaskRelevance.class);
|
patHetaskRelevance.setCreateTime(patArchive.getCreateTime());
|
patHetaskRelevance.setCreateBy(patArchive.getCreateBy());
|
patHetaskRelevances.add(patHetaskRelevance);
|
}
|
|
return patHetaskRelevances;
|
}
|
|
}
|