You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
virtual-patient/virtual-patient-web/src/main/java/com/supervision/service/impl/TreatmentPlanServiceImpl.java

106 lines
3.5 KiB
Java

package com.supervision.service.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.util.StrUtil;
import com.supervision.controller.TreatmentPlanController;
import com.supervision.model.ConfigDrug;
import com.supervision.model.Process;
import com.supervision.model.TreatmentPlanRecord;
import com.supervision.service.*;
import com.supervision.vo.manage.TreatmentPlanTreeNode;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import java.sql.Struct;
import java.util.Collection;
import java.util.List;
@Slf4j
@Service
@RequiredArgsConstructor
public class TreatmentPlanServiceImpl implements TreatmentPlanService {
private final TreatmentPlanRecordService treatmentPlanRecordService;
private final ProcessService processService;
private final ConfigDrugService configDrugService;
private final ConfigTreatmentPlanService configTreatmentPlanService;
@Override
public boolean saveTreatmentPlanRecord(TreatmentPlanRecord treatmentPlanRecord) {
assertSaveTreatmentPlanRecord(treatmentPlanRecord);
return treatmentPlanRecordService.save(treatmentPlanRecord);
}
@Override
public List<TreatmentPlanRecord> queryTreatmentPlanRecord(String processId, String disposalPlanType) {
Assert.notEmpty(processId,"流程id不允许为空");
return treatmentPlanRecordService.lambdaQuery().eq(TreatmentPlanRecord::getProcessId, processId)
.eq("0".equals(disposalPlanType), TreatmentPlanRecord::getDisposalPlan, "2")
.in("1".equals(disposalPlanType), TreatmentPlanRecord::getDisposalPlan,
CollUtil.newArrayList("1","3","4","5","6","7")).list();
}
@Override
public boolean updateTreatmentPlanRecord(TreatmentPlanRecord treatmentPlanRecord) {
Assert.notEmpty(treatmentPlanRecord.getId(),"主键不能为空");
assertSaveTreatmentPlanRecord(treatmentPlanRecord);
return treatmentPlanRecordService.updateById(treatmentPlanRecord);
}
@Override
public boolean deleteTreatmentPlanRecord(String id) {
Assert.notEmpty("主键id不能为空");
return treatmentPlanRecordService.removeById(id);
}
@Override
public boolean confirmTreatmentPlan(String processId, String status) {
Assert.isTrue(CollectionUtil.newArrayList("0","1","2").contains(status),"状态值有误");
Process process = processService.getById(processId);
Assert.notNull(process,"流程数据不存在");
if (Integer.valueOf(status).compareTo(process.getStatus()) <= 0){
return true;
}
process.setStatus(Integer.valueOf(status));
return processService.updateById(process);
}
@Override
public List<ConfigDrug> getDrugList() {
return configDrugService.list();
}
@Override
public List<TreatmentPlanTreeNode> queryTree(Integer disposalMethod) {
return configTreatmentPlanService.queryTree(disposalMethod);
}
private void assertSaveTreatmentPlanRecord(TreatmentPlanRecord record){
Assert.notEmpty(record.getProcessId(),"流程id不能为空");
Assert.notNull(record.getDisposalMethod(),"处置方式不能为为空");
Assert.notNull(record.getDisposalPlan(),"处置计划不能为空");
if (StrUtil.isEmpty(record.getTreatmentPlanId())){
Assert.notEmpty(record.getDrugId(),"药物id不能为空");
}
}
}