From 6821cd03cbff7fc846c93d8d6edc7579dc29b151 Mon Sep 17 00:00:00 2001 From: xueqingkun Date: Mon, 18 Dec 2023 16:07:39 +0800 Subject: [PATCH] =?UTF-8?q?model=EF=BC=9A=E9=87=8D=E6=9E=84TreatmentPlanRe?= =?UTF-8?q?cordService.queryByProcessId=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../model/TreatmentPlanRecord.java | 2 + .../service/TreatmentPlanRecordService.java | 5 ++ .../impl/TreatmentPlanRecordServiceImpl.java | 51 +++++++++++++++++++ .../impl/AskDiagnosisResultServiceImpl.java | 12 ++--- 4 files changed, 62 insertions(+), 8 deletions(-) diff --git a/virtual-patient-model/src/main/java/com/supervision/model/TreatmentPlanRecord.java b/virtual-patient-model/src/main/java/com/supervision/model/TreatmentPlanRecord.java index a93fb2e1..9a620c56 100644 --- a/virtual-patient-model/src/main/java/com/supervision/model/TreatmentPlanRecord.java +++ b/virtual-patient-model/src/main/java/com/supervision/model/TreatmentPlanRecord.java @@ -43,6 +43,7 @@ public class TreatmentPlanRecord implements Serializable { /** * 一级措施 */ + @TableField(exist = false) private String firstMeasures; /** @@ -53,6 +54,7 @@ public class TreatmentPlanRecord implements Serializable { /** * 药品名 */ + @TableField(exist = false) private String drugName; /** diff --git a/virtual-patient-model/src/main/java/com/supervision/service/TreatmentPlanRecordService.java b/virtual-patient-model/src/main/java/com/supervision/service/TreatmentPlanRecordService.java index 05749488..f145d0d2 100644 --- a/virtual-patient-model/src/main/java/com/supervision/service/TreatmentPlanRecordService.java +++ b/virtual-patient-model/src/main/java/com/supervision/service/TreatmentPlanRecordService.java @@ -3,6 +3,8 @@ package com.supervision.service; import com.supervision.model.TreatmentPlanRecord; import com.baomidou.mybatisplus.extension.service.IService; +import java.util.List; + /** * @author Administrator * @description 针对表【vp_treatment_plan_record(处置计划记录表)】的数据库操作Service @@ -10,4 +12,7 @@ import com.baomidou.mybatisplus.extension.service.IService; */ public interface TreatmentPlanRecordService extends IService { + List queryByProcessId(String processId); + + } diff --git a/virtual-patient-model/src/main/java/com/supervision/service/impl/TreatmentPlanRecordServiceImpl.java b/virtual-patient-model/src/main/java/com/supervision/service/impl/TreatmentPlanRecordServiceImpl.java index fdcc1730..f52df6fa 100644 --- a/virtual-patient-model/src/main/java/com/supervision/service/impl/TreatmentPlanRecordServiceImpl.java +++ b/virtual-patient-model/src/main/java/com/supervision/service/impl/TreatmentPlanRecordServiceImpl.java @@ -1,20 +1,71 @@ package com.supervision.service.impl; +import cn.hutool.core.collection.CollUtil; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.supervision.model.ConfigDrug; +import com.supervision.model.ConfigTreatmentPlan; import com.supervision.model.TreatmentPlanRecord; +import com.supervision.service.ConfigDrugService; +import com.supervision.service.ConfigTreatmentPlanService; import com.supervision.service.TreatmentPlanRecordService; import com.supervision.mapper.TreatmentPlanRecordMapper; +import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; +import java.util.*; +import java.util.stream.Collectors; + /** * @author Administrator * @description 针对表【vp_treatment_plan_record(处置计划记录表)】的数据库操作Service实现 * @createDate 2023-12-06 16:43:24 */ @Service +@RequiredArgsConstructor public class TreatmentPlanRecordServiceImpl extends ServiceImpl implements TreatmentPlanRecordService{ + private final ConfigTreatmentPlanService configTreatmentPlanService; + + private final ConfigDrugService configDrugService; + @Override + public List queryByProcessId(String processId) { + + // 1. 查询处置计划记录 + List treatmentPlanRecordList = super.lambdaQuery().eq(TreatmentPlanRecord::getProcessId, processId).list(); + if (CollUtil.isEmpty(treatmentPlanRecordList)){ + return treatmentPlanRecordList; + } + + // 2. 填充处置计划属性名字段(处置计划名、一级措施) + List treatmentPlanIds = treatmentPlanRecordList.stream().map(TreatmentPlanRecord::getTreatmentPlanId).filter(Objects::nonNull).distinct().collect(Collectors.toList()); + List configTreatmentPlans = new ArrayList<>(); + if (CollUtil.isNotEmpty(treatmentPlanIds)){ + configTreatmentPlans = configTreatmentPlanService.listByIds(treatmentPlanIds); + } + Map configTreatmentPlanMap = configTreatmentPlans.stream().collect(Collectors.toMap(ConfigTreatmentPlan::getId, v -> v)); + // 3.填充药物名 + List recordDrugIds = treatmentPlanRecordList.stream().map(TreatmentPlanRecord::getDrugId).filter(Objects::nonNull).distinct().collect(Collectors.toList()); + List configDrugs =new ArrayList<>(); + if (CollUtil.isNotEmpty(recordDrugIds)){ + configDrugs = configDrugService.listByIds(recordDrugIds); + } + Map configDrugMap = configDrugs.stream().collect(Collectors.toMap(ConfigDrug::getId, v -> v)); + + for (TreatmentPlanRecord treatmentPlan : treatmentPlanRecordList) { + ConfigTreatmentPlan configTreatmentPlan = configTreatmentPlanMap.get(treatmentPlan.getTreatmentPlanId()); + if (null != configTreatmentPlan){ + treatmentPlan.setDisposalPlan(configTreatmentPlan.getDisposalPlan()); + treatmentPlan.setFirstMeasures(configTreatmentPlan.getFirstMeasures()); + } + ConfigDrug configDrug = configDrugMap.get(treatmentPlan.getDrugId()); + if (null != configDrug){ + treatmentPlan.setDisposalPlan("药物"); + treatmentPlan.setDrugName(configDrug.getDrugName()); + } + } + return treatmentPlanRecordList; + } } diff --git a/virtual-patient-web/src/main/java/com/supervision/service/impl/AskDiagnosisResultServiceImpl.java b/virtual-patient-web/src/main/java/com/supervision/service/impl/AskDiagnosisResultServiceImpl.java index fc84f78d..07fe36f4 100644 --- a/virtual-patient-web/src/main/java/com/supervision/service/impl/AskDiagnosisResultServiceImpl.java +++ b/virtual-patient-web/src/main/java/com/supervision/service/impl/AskDiagnosisResultServiceImpl.java @@ -4,8 +4,7 @@ package com.supervision.service.impl; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollectionUtil; -import com.supervision.constant.TreatmentPlanIdConstant; -import com.supervision.exception.BusinessException; +import cn.hutool.core.util.StrUtil; import com.supervision.model.*; import com.supervision.model.Process; import com.supervision.pojo.vo.*; @@ -15,9 +14,7 @@ import com.supervision.vo.result.AncillaryRecordByResultDAO; import com.supervision.vo.result.PhysicalRecordByResultDAO; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; -import java.time.LocalDateTime; import java.util.*; import java.util.concurrent.ConcurrentHashMap; import java.util.function.Function; @@ -81,7 +78,7 @@ public class AskDiagnosisResultServiceImpl implements AskDiagnosisResultService DealPlanResVO dealPlanResVO = new DealPlanResVO(); // 1. 查询处置计划记录 - List treatmentPlanRecordList = treatmentPlanRecordService.lambdaQuery().eq(TreatmentPlanRecord::getProcessId, processId).list(); + List treatmentPlanRecordList = treatmentPlanRecordService.queryByProcessId(processId); if (CollectionUtil.isEmpty(treatmentPlanRecordList)) { return dealPlanResVO; } @@ -99,10 +96,9 @@ public class AskDiagnosisResultServiceImpl implements AskDiagnosisResultService ArrayList otherTreatmentPlanResults = new ArrayList<>(); for (TreatmentPlanRecord treatmentPlanRecord : treatmentPlanRecordList) { DealPlanResVO.TreatmentPlanResult bean = BeanUtil.toBean(treatmentPlanRecord, DealPlanResVO.TreatmentPlanResult.class); - //药物id 8055ef3412a69f95 - boolean flag = bean.getDisposalPlan().equals(TreatmentPlanIdConstant.DRUG_ID) ? drugIds.contains(bean.getDrugId()) : planIds.contains(bean.getTreatmentPlanId()); + boolean flag = StrUtil.isNotEmpty(bean.getDrugId()) ? drugIds.contains(bean.getDrugId()) : planIds.contains(bean.getTreatmentPlanId()); bean.setFlag(flag ? 1 : 0); - if (bean.getDisposalPlan().equals(TreatmentPlanIdConstant.DRUG_ID)) { + if (StrUtil.isNotEmpty(bean.getDrugId())) { drugTreatmentPlanResults.add(bean); } else { otherTreatmentPlanResults.add(bean);