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 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 patTaskRelevances = new ArrayList<>(); List 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 taskSendTimeVOList = objectMapper.readValue(sendTimeSlot, List.class); heTaskSingleVO.setSendTimeslot(taskSendTimeVOList); } //文本变量参数 if (com.ruoyi.common.utils.StringUtils.isNotEmpty(heTaskSingles.get(0).getTextParam())) { Map> 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; } }