package com.smartor.service.impl;
|
|
import com.fasterxml.jackson.core.JsonProcessingException;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
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.domain.*;
|
import com.smartor.mapper.HeTaskMapper;
|
import com.smartor.mapper.HeTaskSingleMapper;
|
import com.smartor.service.IHeTaskSingleService;
|
import lombok.extern.slf4j.Slf4j;
|
import org.apache.commons.collections4.CollectionUtils;
|
import org.apache.commons.lang3.ObjectUtils;
|
import org.apache.commons.lang3.StringUtils;
|
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.Map;
|
|
/**
|
* 宣教单一任务Service业务层处理
|
*
|
* @author ruoyi
|
* @date 2024-04-16
|
*/
|
@Slf4j
|
@Service
|
public class HeTaskSingleServiceImpl implements IHeTaskSingleService {
|
@Autowired
|
private HeTaskSingleMapper heTaskSingleMapper;
|
|
@Autowired
|
private HeTaskMapper heTaskMapper;
|
|
/**
|
* 查询宣教单一任务
|
*
|
* @param id 宣教单一任务主键
|
* @return 宣教单一任务
|
*/
|
@Override
|
public HeTaskSingle selectHeTaskSingleById(Long id) {
|
return heTaskSingleMapper.selectHeTaskSingleById(id);
|
}
|
|
/**
|
* 查询宣教单一任务列表
|
*
|
* @param heTaskSingle 宣教单一任务
|
* @return 宣教单一任务
|
*/
|
@Override
|
public List<HeTaskSingle> selectHeTaskSingleList(HeTaskSingle heTaskSingle) {
|
return heTaskSingleMapper.selectHeTaskSingleList(heTaskSingle);
|
}
|
|
/**
|
* 新增宣教单一任务
|
*
|
* @param heTaskSingle 宣教单一任务
|
* @return 结果
|
*/
|
@Override
|
public int insertHeTaskSingle(HeTaskSingle heTaskSingle) {
|
HeTask heTask = DtoConversionUtils.sourceToTarget(heTaskSingle, HeTask.class);
|
int heTaskId = heTaskMapper.insertHeTask(heTask);
|
heTaskSingle.setSvrtaskid(Long.valueOf(heTaskId));
|
heTaskSingle.setCreateTime(DateUtils.getNowDate());
|
return heTaskSingleMapper.insertHeTaskSingle(heTaskSingle);
|
}
|
|
/**
|
* 新增或修改宣教单一任务
|
*
|
* @param heTaskSingleVO
|
* @return
|
*/
|
@Transactional(rollbackFor = Exception.class)
|
@Override
|
public Integer addOrUpdateHeTaskSinle(HeTaskSingleVO heTaskSingleVO) {
|
if (ObjectUtils.isEmpty(heTaskSingleVO)) {
|
log.info("宣教任务入参为空,请检查入参");
|
throw new BaseException("宣教任务入参为空,请检查入参");
|
}
|
Integer integer = null;
|
HeTask heTask = DtoConversionUtils.sourceToTarget(heTaskSingleVO, HeTask.class);
|
if (heTaskSingleVO.getIsoperation() != null && heTaskSingleVO.getIsoperation() == 1) {
|
//往任务表中,新增任务
|
Integer taskId = heTaskMapper.insertHeTask(heTask);
|
heTaskSingleVO.setSvrtaskid(taskId.longValue());
|
//新增
|
if (CollectionUtils.isNotEmpty(heTaskSingleVO.getPatTaskRelevances())) {
|
for (PatTaskRelevance patTaskRelevance : heTaskSingleVO.getPatTaskRelevances()) {
|
//将任务信息新增到宣教任务表中
|
HeTaskSingle heTaskSingle = getHeTaskSingle(heTaskSingleVO, patTaskRelevance);
|
integer = heTaskSingleMapper.insertHeTaskSingle(heTaskSingle);
|
}
|
}
|
} else if (heTaskSingleVO.getIsoperation() != null && heTaskSingleVO.getIsoperation() == 2) {
|
//任务修改
|
heTaskMapper.updateHeTask(heTask);
|
|
if (CollectionUtils.isNotEmpty(heTaskSingleVO.getPatTaskRelevances())) {
|
for (PatTaskRelevance patTaskRelevance : heTaskSingleVO.getPatTaskRelevances()) {
|
HeTaskSingle heTaskSingle = getHeTaskSingle(heTaskSingleVO, patTaskRelevance);
|
heTaskSingle.setTextParam(new Gson().toJson(heTaskSingleVO.getTextParam()));
|
if (patTaskRelevance.getIsoperation() == 2) heTaskSingleMapper.updateHeTaskSingle(heTaskSingle);
|
if (patTaskRelevance.getIsoperation() == 1) heTaskSingleMapper.insertHeTaskSingle(heTaskSingle);
|
integer = heTaskSingle.getId().intValue();
|
}
|
}
|
} else if (heTaskSingleVO.getIsoperation() != null && heTaskSingleVO.getIsoperation() == 3) {
|
heTaskSingleMapper.deleteHeTaskSingleById(heTaskSingleVO.getId());
|
|
integer = heTaskSingleVO.getId().intValue();
|
}
|
return integer;
|
}
|
|
/**
|
* 修改宣教单一任务
|
*
|
* @param heTaskSingle 宣教单一任务
|
* @return 结果
|
*/
|
@Override
|
public int updateHeTaskSingle(HeTaskSingle heTaskSingle) {
|
heTaskSingle.setUpdateTime(DateUtils.getNowDate());
|
return heTaskSingleMapper.updateHeTaskSingle(heTaskSingle);
|
}
|
|
/**
|
* 批量删除宣教单一任务
|
*
|
* @param ids 需要删除的宣教单一任务主键
|
* @return 结果
|
*/
|
@Override
|
public int deleteHeTaskSingleByIds(Long[] ids) {
|
return heTaskSingleMapper.deleteHeTaskSingleByIds(ids);
|
}
|
|
/**
|
* 删除宣教单一任务信息
|
*
|
* @param id 宣教单一任务主键
|
* @return 结果
|
*/
|
@Override
|
public int deleteHeTaskSingleById(Long id) {
|
return heTaskSingleMapper.deleteHeTaskSingleById(id);
|
}
|
|
@Override
|
public HeTaskSingleVO queryHeTaskByCondition(HeTaskSingle heTaskSingle) {
|
//定义患者与单一任务关联表集合
|
List<PatTaskRelevance> patTaskRelevances = new ArrayList<>();
|
List<HeTaskSingle> heTaskSingles = selectHeTaskSingleList(heTaskSingle);
|
//将查出来的数据倒入IvrTaskcallVO中
|
HeTaskSingleVO heTaskSingleVO = DtoConversionUtils.sourceToTarget(heTaskSingles.get(0), HeTaskSingleVO.class);
|
String sendTimeSlot = heTaskSingles.get(0).getSendTimeSlot();
|
ObjectMapper objectMapper = new ObjectMapper();
|
try {
|
//获取到发送时间的集合
|
if (StringUtils.isNotEmpty(sendTimeSlot)) {
|
List<TaskSendTimeVO> taskSendTimeVOList = objectMapper.readValue(sendTimeSlot, List.class);
|
heTaskSingleVO.setSendTimeslot(taskSendTimeVOList);
|
}
|
//文本变量参数
|
if (com.ruoyi.common.utils.StringUtils.isNotEmpty(heTaskSingles.get(0).getTextParam())) {
|
Map<String, Map<String, String>> textParam = objectMapper.readValue(heTaskSingles.get(0).getTextParam(), Map.class);
|
heTaskSingleVO.setTextParam(textParam);
|
}
|
} catch (JsonProcessingException e) {
|
e.printStackTrace();
|
}
|
|
for (HeTaskSingle heTaskSingle1 : heTaskSingles) {
|
PatTaskRelevance patTaskRelevance = new PatTaskRelevance();
|
if (!heTaskSingle1.getClassification().equals("2")) {
|
//获取到患者信息,并放入到集合中
|
log.info("宣教分类为:{}", heTaskSingle1.getClassification());
|
patTaskRelevance.setName(heTaskSingle1.getSendname());
|
patTaskRelevance.setAge(heTaskSingle1.getAge());
|
patTaskRelevance.setSfzh(heTaskSingle1.getSfzh());
|
patTaskRelevance.setPhone(heTaskSingle1.getPhone());
|
patTaskRelevance.setAddr(heTaskSingle1.getAddr());
|
patTaskRelevance.setDiagname(heTaskSingle1.getDiagname());
|
patTaskRelevances.add(patTaskRelevance);
|
} else if (heTaskSingle1.getClassification().equals("2")) {
|
log.info("宣教分类为住院", heTaskSingle1.getClassification());
|
patTaskRelevance.setName(heTaskSingle1.getSendname());
|
patTaskRelevance.setAge(heTaskSingle1.getAge());
|
patTaskRelevance.setSfzh(heTaskSingle1.getSfzh());
|
patTaskRelevance.setPhone(heTaskSingle1.getPhone());
|
patTaskRelevance.setAddr(heTaskSingle1.getAddr());
|
patTaskRelevance.setDeptName(heTaskSingle1.getDeptname());
|
patTaskRelevance.setBedNo(heTaskSingle1.getBedNo());
|
patTaskRelevance.setDiagname(heTaskSingle1.getDiagname());
|
patTaskRelevances.add(patTaskRelevance);
|
}
|
}
|
|
heTaskSingleVO.setPatTaskRelevances(patTaskRelevances);
|
return heTaskSingleVO;
|
}
|
|
|
private HeTaskSingle getHeTaskSingle(HeTaskSingleVO heTaskSingleVO, PatTaskRelevance patTaskRelevance) {
|
|
HeTaskSingle heTaskSingle = DtoConversionUtils.sourceToTarget(heTaskSingleVO, HeTaskSingle.class);
|
heTaskSingle.setSendname(patTaskRelevance.getName());
|
heTaskSingle.setAge(patTaskRelevance.getAge());
|
heTaskSingle.setSfzh(patTaskRelevance.getSfzh());
|
heTaskSingle.setPhone(patTaskRelevance.getPhone());
|
heTaskSingle.setAddr(patTaskRelevance.getAddr());
|
heTaskSingle.setCreateTime(DateUtils.getNowDate());
|
if (CollectionUtils.isNotEmpty(heTaskSingleVO.getSendTimeslot())) {
|
heTaskSingle.setSendTimeSlot(heTaskSingleVO.getSendTimeslot().toString());
|
}
|
return heTaskSingle;
|
}
|
|
}
|