我的随访
This commit is contained in:
parent
582d39d16c
commit
6c1f449b16
@ -4,6 +4,7 @@ import com.xinelu.manage.domain.patientquestionsubmitresult.PatientQuestionSubmi
|
||||
import com.xinelu.manage.dto.patientquestionsubjectresult.PatientQuestionSubjectResultDTO;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@ -13,6 +14,7 @@ import java.util.List;
|
||||
* @author : youxilong
|
||||
* @date : 2024/4/7 13:48
|
||||
*/
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
public class PatientQuestionSubmitResultDTO extends PatientQuestionSubmitResult {
|
||||
|
||||
|
||||
@ -2,11 +2,10 @@ package com.xinelu.mobile.controller.homepage;
|
||||
|
||||
import com.xinelu.common.core.domain.AjaxResult;
|
||||
import com.xinelu.common.core.page.TableDataInfo;
|
||||
import com.xinelu.manage.dto.patientquestionsubmitresult.PatientQuestionSubmitResultDTO;
|
||||
import com.xinelu.mobile.service.homepage.HomePageService;
|
||||
import com.xinelu.mobile.vo.myfollowup.MyFollowUpVO;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
@ -55,4 +54,8 @@ public class HomePageController {
|
||||
return homePageService.selectQuestionSubmit(patientTaskExecuteRecordId);
|
||||
}
|
||||
|
||||
@PostMapping("/updateTaskExecuteRecord")
|
||||
public AjaxResult updatePatientTaskExecuteRecord(@RequestBody PatientQuestionSubmitResultDTO dto) {
|
||||
return homePageService.updatePatientTaskExecuteRecord(dto);
|
||||
}
|
||||
}
|
||||
|
||||
@ -3,6 +3,7 @@ package com.xinelu.mobile.service.homepage;
|
||||
import com.xinelu.common.core.domain.AjaxResult;
|
||||
import com.xinelu.common.core.page.TableDataInfo;
|
||||
import com.xinelu.manage.domain.scriptInfo.ScriptInfo;
|
||||
import com.xinelu.manage.dto.patientquestionsubmitresult.PatientQuestionSubmitResultDTO;
|
||||
import com.xinelu.mobile.vo.myfollowup.MyFollowUpVO;
|
||||
|
||||
public interface HomePageService {
|
||||
@ -38,4 +39,6 @@ public interface HomePageService {
|
||||
* @return AjaxResult
|
||||
*/
|
||||
AjaxResult selectQuestionSubmit(Long patientTaskExecuteRecordId);
|
||||
|
||||
AjaxResult updatePatientTaskExecuteRecord(PatientQuestionSubmitResultDTO dto);
|
||||
}
|
||||
@ -1,18 +1,33 @@
|
||||
package com.xinelu.mobile.service.homepage.Impl;
|
||||
|
||||
import com.xinelu.common.constant.TaskCreateTypeConstant;
|
||||
import com.xinelu.common.core.domain.AjaxResult;
|
||||
import com.xinelu.common.core.page.TableDataInfo;
|
||||
import com.xinelu.common.enums.NodeExecuteStatusEnum;
|
||||
import com.xinelu.common.enums.RouteNodeNameEnum;
|
||||
import com.xinelu.common.exception.ServiceException;
|
||||
import com.xinelu.common.utils.PageServiceUtil;
|
||||
import com.xinelu.common.utils.bean.BeanUtils;
|
||||
import com.xinelu.manage.domain.patientquestionoptionresult.PatientQuestionOptionResult;
|
||||
import com.xinelu.manage.domain.patientquestionsubjectresult.PatientQuestionSubjectResult;
|
||||
import com.xinelu.manage.domain.patientquestionsubmitresult.PatientQuestionSubmitResult;
|
||||
import com.xinelu.manage.domain.patienttaskexecuterecord.PatientTaskExecuteRecord;
|
||||
import com.xinelu.manage.domain.questioninfo.QuestionInfo;
|
||||
import com.xinelu.manage.domain.questionsubject.QuestionSubject;
|
||||
import com.xinelu.manage.domain.scriptInfo.ScriptInfo;
|
||||
import com.xinelu.manage.domain.signpatientmanageroutenode.SignPatientManageRouteNode;
|
||||
import com.xinelu.manage.dto.patientquestionoptionresult.PatientQuestionOptionResultDTO;
|
||||
import com.xinelu.manage.dto.patientquestionsubjectresult.PatientQuestionSubjectResultDTO;
|
||||
import com.xinelu.manage.dto.patientquestionsubmitresult.PatientQuestionSubmitResultDTO;
|
||||
import com.xinelu.manage.mapper.patientquestionoptionresult.PatientQuestionOptionResultMapper;
|
||||
import com.xinelu.manage.mapper.patientquestionsubjectresult.PatientQuestionSubjectResultMapper;
|
||||
import com.xinelu.manage.mapper.patientquestionsubmitresult.PatientQuestionSubmitResultMapper;
|
||||
import com.xinelu.manage.mapper.patienttaskexecuterecord.PatientTaskExecuteRecordMapper;
|
||||
import com.xinelu.manage.mapper.questioninfo.QuestionInfoMapper;
|
||||
import com.xinelu.manage.mapper.questionsubject.QuestionSubjectMapper;
|
||||
import com.xinelu.manage.mapper.questionsubjectoption.QuestionSubjectOptionMapper;
|
||||
import com.xinelu.manage.mapper.scriptInfo.ScriptInfoMapper;
|
||||
import com.xinelu.manage.mapper.signpatientmanageroutenode.SignPatientManageRouteNodeMapper;
|
||||
import com.xinelu.manage.vo.questionInfo.QuestionVO;
|
||||
import com.xinelu.manage.vo.questionsubject.QuestionSubjectVO;
|
||||
import com.xinelu.manage.vo.questionsubjectoption.QuestionSubjectOptionVO;
|
||||
@ -22,8 +37,10 @@ import com.xinelu.mobile.vo.myfollowup.MyFollowUpVO;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Comparator;
|
||||
import java.util.List;
|
||||
@ -48,6 +65,16 @@ public class HomePageServiceImpl implements HomePageService {
|
||||
private QuestionSubjectOptionMapper questionSubjectOptionMapper;
|
||||
@Resource
|
||||
private PatientQuestionSubmitResultMapper submitResultMapper;
|
||||
@Resource
|
||||
private PatientQuestionSubmitResultMapper patientQuestionSubmitResultMapper;
|
||||
@Resource
|
||||
private PatientQuestionSubjectResultMapper patientQuestionSubjectResultMapper;
|
||||
@Resource
|
||||
private PatientQuestionOptionResultMapper patientQuestionOptionResultMapper;
|
||||
@Resource
|
||||
private SignPatientManageRouteNodeMapper signPatientManageRouteNodeMapper;
|
||||
@Resource
|
||||
private PatientTaskExecuteRecordMapper patientTaskExecuteRecordMapper;
|
||||
|
||||
/**
|
||||
* 我的随访列表
|
||||
@ -59,6 +86,7 @@ public class HomePageServiceImpl implements HomePageService {
|
||||
public TableDataInfo myFollowUp(MyFollowUpVO myFollowUp) {
|
||||
myFollowUp.setRouteNodeName(RouteNodeNameEnum.AFTER_DISCHARGE.getInfo());
|
||||
List<MyFollowUpVO> myFollowUpList = homePageMapper.selectManageRouteNode(myFollowUp);
|
||||
int total = myFollowUpList.size();
|
||||
if (CollectionUtils.isEmpty(myFollowUpList)) {
|
||||
return pageServiceUtil.getDataTable(new ArrayList<>());
|
||||
}
|
||||
@ -75,7 +103,9 @@ public class HomePageServiceImpl implements HomePageService {
|
||||
Integer pageSize = myFollowUp.getSize();
|
||||
myFollowUpList = myFollowUpList.stream().skip((long) (pageNum - 1) * pageSize).limit(pageSize).collect(Collectors.toList());
|
||||
}
|
||||
return pageServiceUtil.getDataTable(myFollowUpList);
|
||||
TableDataInfo dataTable = pageServiceUtil.getDataTable(myFollowUpList);
|
||||
dataTable.setTotal(total);
|
||||
return dataTable;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -130,4 +160,108 @@ public class HomePageServiceImpl implements HomePageService {
|
||||
public AjaxResult selectQuestionSubmit(Long patientTaskExecuteRecordId) {
|
||||
return AjaxResult.success(submitResultMapper.selectResultByTaskExecuteRecordId(patientTaskExecuteRecordId, null));
|
||||
}
|
||||
|
||||
/**
|
||||
* 人工随访代办处理
|
||||
*
|
||||
* @param dto 患者问卷提交结果信息表DTO
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public AjaxResult updatePatientTaskExecuteRecord(PatientQuestionSubmitResultDTO dto) {
|
||||
String routeHandlePerson = dto.getRouteHandlePerson();
|
||||
LocalDateTime time = LocalDateTime.now();
|
||||
// 更新节点任务表
|
||||
updateSignPatientManageRouteNode(dto, routeHandlePerson, time);
|
||||
// 新增患者管理任务执行记录
|
||||
Long taskExecuteRecordId = insertPatientTaskExecuteRecord(dto, routeHandlePerson, time);
|
||||
PatientQuestionSubmitResult patientQuestionSubmitResult = new PatientQuestionSubmitResult();
|
||||
BeanUtils.copyBeanProp(patientQuestionSubmitResult, dto);
|
||||
patientQuestionSubmitResult.setCreateBy(routeHandlePerson);
|
||||
patientQuestionSubmitResult.setCreateTime(time);
|
||||
patientQuestionSubmitResult.setTaskExecuteRecordId(taskExecuteRecordId);
|
||||
// 新增患者问卷提交结果
|
||||
if (patientQuestionSubmitResultMapper.insertPatientQuestionSubmitResult(patientQuestionSubmitResult) <= 0) {
|
||||
throw new ServiceException("新增患者问卷提交结果失败");
|
||||
}
|
||||
// 获取到患者问卷题目提交结果信息DTO
|
||||
List<PatientQuestionSubjectResultDTO> subjectResultList = dto.getSubjectResultDTOList();
|
||||
// 初始化患者问卷题目提交结果信息
|
||||
List<PatientQuestionSubjectResult> patientQuestionSubjectResults = new ArrayList<>();
|
||||
// 获取到患者问卷题目选项提交结果DTO
|
||||
List<PatientQuestionOptionResultDTO> patientQuestionOptionResults = new ArrayList<>();
|
||||
for (PatientQuestionSubjectResultDTO questionSubjectResult : subjectResultList) {
|
||||
PatientQuestionSubjectResult saveQuestionSubject = new PatientQuestionSubjectResult();
|
||||
BeanUtils.copyBeanProp(saveQuestionSubject, questionSubjectResult);
|
||||
saveQuestionSubject.setQuestionSubmitResultId(patientQuestionSubmitResult.getId());
|
||||
saveQuestionSubject.setCreateBy(routeHandlePerson);
|
||||
saveQuestionSubject.setCreateTime(time);
|
||||
patientQuestionSubjectResults.add(saveQuestionSubject);
|
||||
if (CollectionUtils.isNotEmpty(questionSubjectResult.getOptionResultList())) {
|
||||
patientQuestionOptionResults.addAll(questionSubjectResult.getOptionResultList());
|
||||
}
|
||||
}
|
||||
// 新增患者问卷题目提交结果
|
||||
if (patientQuestionSubjectResultMapper.saveQuestionSubjectList(patientQuestionSubjectResults) <= 0) {
|
||||
throw new ServiceException("新增患者问卷题目提交结果失败");
|
||||
}
|
||||
if (CollectionUtils.isNotEmpty(patientQuestionOptionResults)) {
|
||||
return AjaxResult.success();
|
||||
}
|
||||
// 初始化患者问卷题目选项提交结果
|
||||
List<PatientQuestionOptionResult> saveQuestionSubjectOptions = new ArrayList<>();
|
||||
for (PatientQuestionOptionResultDTO patientQuestionOptionResult : patientQuestionOptionResults) {
|
||||
PatientQuestionOptionResult saveQuestionOption = new PatientQuestionOptionResult();
|
||||
BeanUtils.copyBeanProp(saveQuestionOption, patientQuestionOptionResult);
|
||||
// 从已保存的患者问卷题目结果列表中查找当前选项所对应的题目结果
|
||||
PatientQuestionSubjectResult patientQuestionSubjectResult = patientQuestionSubjectResults.stream().filter(Objects::nonNull).filter(item -> Objects.nonNull(item.getQuestionNumber()) && patientQuestionOptionResult.getQuestionNumber().compareTo(item.getQuestionNumber()) == 0).findFirst().orElse(new PatientQuestionSubjectResult());
|
||||
saveQuestionOption.setQuestionSubjectResultId(patientQuestionSubjectResult.getId());
|
||||
saveQuestionOption.setCreateTime(time);
|
||||
saveQuestionOption.setCreateBy(routeHandlePerson);
|
||||
saveQuestionSubjectOptions.add(saveQuestionOption);
|
||||
}
|
||||
// 新增患者问卷题目选项提交结果
|
||||
if (patientQuestionOptionResultMapper.saveQuestionOptionList(saveQuestionSubjectOptions) <= 0) {
|
||||
throw new ServiceException("新增患者问卷题目选项提交结果失败");
|
||||
}
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新节点任务表
|
||||
*/
|
||||
private void updateSignPatientManageRouteNode(PatientQuestionSubmitResultDTO dto, String routeHandlePerson, LocalDateTime time) {
|
||||
SignPatientManageRouteNode signPatientManageRouteNode = new SignPatientManageRouteNode();
|
||||
signPatientManageRouteNode.setId(dto.getManageRouteNodeId());
|
||||
signPatientManageRouteNode.setRouteHandleRemark(dto.getRouteHandleRemark());
|
||||
signPatientManageRouteNode.setNodeExecuteStatus(NodeExecuteStatusEnum.EXECUTED.toString());
|
||||
signPatientManageRouteNode.setRouteHandleId(dto.getRouteHandleId());
|
||||
signPatientManageRouteNode.setRouteHandlePerson(routeHandlePerson);
|
||||
signPatientManageRouteNode.setUpdateBy(routeHandlePerson);
|
||||
signPatientManageRouteNode.setUpdateTime(time);
|
||||
// 更新节点任务表
|
||||
if (signPatientManageRouteNodeMapper.updateSignPatientManageRouteNode(signPatientManageRouteNode) <= 0) {
|
||||
throw new ServiceException("更新节点任务表失败");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增患者管理任务执行记录
|
||||
*/
|
||||
private Long insertPatientTaskExecuteRecord(PatientQuestionSubmitResultDTO dto, String routeHandlePerson, LocalDateTime time) {
|
||||
PatientTaskExecuteRecord patientTaskExecuteRecord = new PatientTaskExecuteRecord();
|
||||
BeanUtils.copyProperties(dto, patientTaskExecuteRecord);
|
||||
patientTaskExecuteRecord.setExecuteTime(time);
|
||||
patientTaskExecuteRecord.setTaskContent(dto.getTaskType());
|
||||
patientTaskExecuteRecord.setExecutePerson(routeHandlePerson);
|
||||
patientTaskExecuteRecord.setCreateBy(routeHandlePerson);
|
||||
patientTaskExecuteRecord.setExecuteType(TaskCreateTypeConstant.MANUAL_CREATE);
|
||||
patientTaskExecuteRecord.setCreateTime(time);
|
||||
if (patientTaskExecuteRecordMapper.insertPatientTaskExecuteRecord(patientTaskExecuteRecord) > 0) {
|
||||
return patientTaskExecuteRecord.getId();
|
||||
} else {
|
||||
throw new ServiceException("新增患者管理任务记录失败");
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user