增加暂存接口

dev_2.0.0
liu 1 year ago
parent 167181c66c
commit 3a2217e3d9

@ -83,7 +83,8 @@ public class AskPrimaryController {
@ApiOperation("确认诊断页面,保存初步诊断以及鉴别依据")
@PostMapping("confirmPrimaryByAskEnd")
public void confirmPrimaryByAskEnd(@RequestBody @Valid List<PrimaryConfirmReqVO> reqVOList) {
askPrimaryService.confirmPrimaryByAskEnd(reqVOList);
public void confirmPrimaryByAskEnd(@RequestBody @Valid PrimaryConfirmReqVO reqVO) {
askPrimaryService.confirmPrimaryByAskEnd(reqVO);
}
}

@ -0,0 +1,21 @@
package com.supervision.pojo.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.util.List;
@Data
public class PrimaryConfirmNodeReqVO {
@ApiModelProperty("初步诊断ID")
@NotBlank(message = "初步诊断ID不能为空")
private String primaryId;
@ApiModelProperty("是否排除(0排除1确诊)")
private Integer excludeFlag;
@ApiModelProperty("诊断依据列表")
private List<DiagnosticBasisForPrimaryReqVO> diagnosticBasisList;
}

@ -9,17 +9,12 @@ import java.util.List;
@Data
public class PrimaryConfirmReqVO {
@ApiModelProperty("初步诊断ID")
@NotBlank(message = "初步诊断ID不能为空")
private String primaryId;
@NotBlank(message = "流程ID不能为空")
private String processId;
@ApiModelProperty("是否暂存,1是,0否(否就是直接诊毕)")
private Integer tempSaveFlag;
@ApiModelProperty("是否排除(0排除1确诊)")
private Integer excludeFlag;
@ApiModelProperty("诊断依据列表")
private List<DiagnosticBasisForPrimaryReqVO> diagnosticBasisList;
@ApiModelProperty("确认结果")
private List<PrimaryConfirmNodeReqVO> primaryConfirmList;
}

@ -27,7 +27,7 @@ public interface AskPrimaryService {
RecordForPrimaryChooseVO queryRecordForPrimaryChoose(String processId);
void confirmPrimaryByAskEnd(List<PrimaryConfirmReqVO> reqVOList);
void confirmPrimaryByAskEnd(PrimaryConfirmReqVO reqVO);
void deletePrimary(String id);

@ -197,29 +197,41 @@ public class AskPrimaryServiceImpl implements AskPrimaryService {
@Override
@Transactional(rollbackFor = Exception.class)
public void confirmPrimaryByAskEnd(List<PrimaryConfirmReqVO> reqVOList) {
Optional<PrimaryConfirmReqVO> any = reqVOList.stream().findAny();
public void confirmPrimaryByAskEnd(PrimaryConfirmReqVO reqVO) {
List<PrimaryConfirmNodeReqVO> reqVOList = reqVO.getPrimaryConfirmList();
Optional<PrimaryConfirmNodeReqVO> any = reqVOList.stream().findAny();
if (!any.isPresent()) {
throw new BusinessException("初步诊断不能为空");
}
String processId = any.get().getProcessId();
// 校验,如果没有填写病历,那么就不允许诊毕
Integer count = processMedicalService.lambdaQuery().eq(ProcessMedical::getProcessId, processId).count();
if (count < 1) {
throw new BusinessException("电子病历未填写,请填写电子病例后诊毕");
// 如果 != 1 ,不是暂存,那么就校验电子病历是否填写
if (ObjectUtil.isEmpty(reqVO.getTempSaveFlag()) || 1 != reqVO.getTempSaveFlag()){
// 校验,如果没有填写病历,那么就不允许诊毕
Integer count = processMedicalService.lambdaQuery().eq(ProcessMedical::getProcessId, reqVO.getProcessId()).count();
if (count < 1) {
throw new BusinessException("电子病历未填写,请填写电子病例后诊毕");
}
}
for (PrimaryConfirmReqVO reqVO : reqVOList) {
if (ObjectUtil.isEmpty(reqVO.getExcludeFlag()) && 0 != reqVO.getExcludeFlag() && 1 != reqVO.getExcludeFlag()) {
throw new BusinessException("是否排除不能为空或诊断不正确");
for (PrimaryConfirmNodeReqVO node : reqVOList) {
// 如果 != 1 ,不是暂存,那么就校验初步诊断是否填写
if (ObjectUtil.isEmpty(reqVO.getTempSaveFlag()) || 1 != reqVO.getTempSaveFlag()){
if (ObjectUtil.isEmpty(node.getExcludeFlag()) && 0 != node.getExcludeFlag() && 1 != node.getExcludeFlag()) {
throw new BusinessException("是否排除不能为空或诊断不正确");
}
}
// 修改初步诊断是否被排除
diagnosisPrimaryService.lambdaUpdate().set(DiagnosisPrimary::getExcludeFlag, reqVO.getExcludeFlag())
.eq(DiagnosisPrimary::getId, reqVO.getPrimaryId()).update();
diagnosisPrimaryService.lambdaUpdate().set(DiagnosisPrimary::getExcludeFlag, node.getExcludeFlag())
.eq(DiagnosisPrimary::getId, node.getPrimaryId()).update();
// 保存证实诊断依据
saveDiagnosticBasis(reqVO.getDiagnosticBasisList());
saveDiagnosticBasis(node.getDiagnosticBasisList());
}
// 如果 != 1 ,说明是诊毕,这时就诊毕
if (ObjectUtil.isEmpty(reqVO.getTempSaveFlag()) || 1 != reqVO.getTempSaveFlag()) {
// 然后将process的状态改为诊毕
processService.lambdaUpdate().set(Process::getStatus, 1).eq(Process::getId, reqVO.getProcessId()).update();
}
// 然后将process的状态改为诊毕
processService.lambdaUpdate().set(Process::getStatus, 1).eq(Process::getId, processId).update();
}
private void saveDiagnosticBasis(List<DiagnosticBasisForPrimaryReqVO> diagnosticBasisList) {

Loading…
Cancel
Save