From 6e3d0a2097a4d841e941a84ec54780a67eb60ba1 Mon Sep 17 00:00:00 2001
From: 陈昶聿 <chychen@nbjetron.com>
Date: 星期五, 10 七月 2026 09:22:56 +0800
Subject: [PATCH] Merge branch 'master' into master-任务组
---
smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java | 127 ++++++++++++++++++++++++++++++++----------
1 files changed, 97 insertions(+), 30 deletions(-)
diff --git a/smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java
index abd8d24..e307373 100644
--- a/smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java
@@ -98,14 +98,18 @@
*/
@Override
public List<PatMedInhosp> selectPatMedInhospList(PatMedInhosp patMedInhosp) {
- if (patMedInhosp.getCry() == 0) {
+ if (patMedInhosp.getCry() != null && patMedInhosp.getCry() == 0) {
patMedInhosp.setDeptcodeList(patMedInhosp.getLeaveldeptcodes());
patMedInhosp.setHospitaldistrictcodeList(patMedInhosp.getLeavehospitaldistrictcodes());
patMedInhosp.setLeaveldeptcodes(null);
patMedInhosp.setLeavehospitaldistrictcodes(null);
patMedInhosp.setInhospstate("0");
- } else if (patMedInhosp.getCry() == 1) {
+ } else if (patMedInhosp.getCry() != null && patMedInhosp.getCry() == 1) {
patMedInhosp.setInhospstate("1");
+ } else if (patMedInhosp.getCry() != null && patMedInhosp.getCry() == 2) {
+ patMedInhosp.setInhospstate("2");
+ } else if (patMedInhosp.getCry() != null && patMedInhosp.getCry() == 3) {
+ patMedInhosp.setInhospstate("3");
}
List<PatMedInhosp> patMedInhospList = patMedInhospMapper.selectPatMedInhospList(patMedInhosp);
@@ -349,7 +353,7 @@
serviceTaskVo.setAppltype("5");
List<ServiceTask> serviceTasks = serviceTaskMapper.selectServiceTaskList(serviceTaskVo);
- if (CollectionUtils.isEmpty(serviceTasks)) {
+ if (CollectionUtils.isNotEmpty(serviceTasks)) {
for (ServiceTask serviceTask : serviceTasks) {
if(!ObjectUtils.isEmpty(serviceTask.getTaskid())){
ServiceTaskSchedule serviceTaskSchedule = new ServiceTaskSchedule();
@@ -364,10 +368,13 @@
String opLevelCodes = serviceTaskSchedule.getOplevelCodes();
List<String> icd10CodeList = new ArrayList<>();
- List<String> opLevelList = new ArrayList<>();
+ List<String> opLevelCodeList = new ArrayList<>();
List<String> deptCodeList = new ArrayList<>();
List<String> wardCodeList = new ArrayList<>();
+ /**
+ * 闅忚绫诲瀷(1-绉戝锛�2-鐥呭尯锛�3-鐤剧梾 4-鍏ラ櫌绉戝 5-鍏ラ櫌鐥呭尯 6-鎵嬫湳)
+ */
Integer type = 1;
if (StringUtils.isNotEmpty(deptCodes)) {
type = 1;
@@ -382,38 +389,98 @@
icd10CodeList = Arrays.asList(icd10Codes.split(","));
}
if (StringUtils.isNotEmpty(opLevelCodes)) {
- opLevelList = Arrays.asList(opLevelCodes.split(","));
+ type = 6;
+ opLevelCodeList = Arrays.asList(opLevelCodes.split(","));
}
- PatMedInhosp patMedInhospVo = new PatMedInhosp();
- patMedInhospVo.setDeptcodeList(deptCodeList);
- patMedInhospVo.setLeavehospitaldistrictcodes(wardCodeList);
- patMedInhospVo.setIcd10codeList(icd10CodeList);
- List<PatMedInhosp> patList = patMedInhospMapper.selectPatMedInhospList(patMedInhospVo);
- log.info("dealOutHospInfoBySchedule 浠诲姟缁勯殢璁�, taskid = {}, 鎵弿鎮h�呬汉鏁� {}", serviceTask.getTaskid(), patList.size());
+ //闈炴墜鏈鐞嗘柟寮�
+ if(type != 6){
+ PatMedInhosp patMedInhospVo = new PatMedInhosp();
+ patMedInhospVo.setScheduleCheckFlag("0");
+ patMedInhospVo.setInhospstate("1");
+ patMedInhospVo.setFuflag("1");
+// patMedInhospVo.setDeptcodeList(deptCodeList);
+ patMedInhospVo.setLeaveldeptcodes(deptCodeList);
+ patMedInhospVo.setLeavehospitaldistrictcodes(wardCodeList);
+ patMedInhospVo.setIcd10codeList(icd10CodeList);
+ List<PatMedInhosp> patList = patMedInhospMapper.selectPatMedInhospList(patMedInhospVo);
+ log.info("dealOutHospInfoBySchedule 浠诲姟缁勯殢璁�, taskid = {}, 鎵弿鎮h�呬汉鏁� {}", serviceTask.getTaskid(), patList.size());
- for(PatMedInhosp patMedInhosp : patList){
- ServiceTaskScheduleDetail scheduleDetailVo = new ServiceTaskScheduleDetail();
- scheduleDetailVo.setTaskid(serviceTask.getTaskid());
- scheduleDetailVo.setScheduleid(serviceTaskSchedule.getId());
- List<ServiceTaskScheduleDetail> serviceTaskScheduleDetails = serviceTaskScheduleDetailMapper.selectServiceTaskScheduleDetailList(scheduleDetailVo);
+ for(PatMedInhosp patMedInhosp : patList){
+ ServiceTaskScheduleDetail scheduleDetailVo = new ServiceTaskScheduleDetail();
+ scheduleDetailVo.setTaskid(serviceTask.getTaskid());
+ scheduleDetailVo.setScheduleid(serviceTaskSchedule.getId());
+ List<ServiceTaskScheduleDetail> serviceTaskScheduleDetails = serviceTaskScheduleDetailMapper.selectServiceTaskScheduleDetailList(scheduleDetailVo);
- List<ServiceSubtaskPreachform> serviceSubtaskPreachformList = new ArrayList<>();
- PatArchive patArchive = patArchiveMapper.selectPatArchiveByPatid(patMedInhosp.getPatid());
- if (Objects.isNull(patArchive)) {
- break;
+ PatArchive patArchive = patArchiveMapper.selectPatArchiveByPatid(patMedInhosp.getPatid());
+ if (Objects.isNull(patArchive)) {
+ continue;
+ }
+ //灏佽serviceSubtask
+
+ ServiceSubtask serviceSubtask = boxedServiceSubtask(serviceTask, patMedInhosp, patArchive, config, type);
+ List<Map<String, Object>> preachformList = new ArrayList<>();
+ if(StringUtils.isNotEmpty(serviceTask.getPreachformDesc())){
+ try {
+ ObjectMapper objectMapper = new ObjectMapper();
+ preachformList = objectMapper.readValue(serviceTask.getPreachformDesc(), List.class);
+ }catch (Exception e){
+ log.error("浠诲姟缁刾reachformDesc瑙f瀽澶辫触,taskid={},inhospid={}", serviceTask.getTaskid(), patMedInhosp.getInhospid());
+ }
+ }
+ scheduleSubtaskBuilder.buildSubtasksForPatient(serviceTask, serviceTaskSchedule, serviceTaskScheduleDetails, serviceSubtask, preachformList);
+ //缃杞撼鍏ユ爣璁帮紝閬垮厤涓嬫鎵弿閲嶅鐢熸垚锛堝悗缁疆娆$敱 rollTaskGroupCycle 璐熻矗锛�
+ PatMedInhosp flagUpd = new PatMedInhosp();
+ flagUpd.setInhospid(patMedInhosp.getInhospid());
+ flagUpd.setScheduleCheckFlag("1");
+ patMedInhospMapper.updatePatMedInhosp(flagUpd);
}
- //灏佽serviceSubtask
- ServiceSubtask serviceSubtask = boxedServiceSubtask(serviceTask, patMedInhosp, patArchive, config, type);
- List<Map<String, Object>> preachformList = new ArrayList<>();
- if(StringUtils.isNotEmpty(serviceTask.getPreachformDesc())){
- try {
- ObjectMapper objectMapper = new ObjectMapper();
- preachformList = objectMapper.readValue(serviceTask.getPreachformDesc(), List.class);
- }catch (Exception e){
- break;
+ }else {
+ //浠诲姟缁� - 鎵嬫湳闅忚
+ if(CollectionUtils.isNotEmpty(opLevelCodeList)){
+ PatMedOperationItem pmoi = new PatMedOperationItem();
+ //鑾峰彇闇�瑕佸嚭闄㈢柧鐥呴殢璁匡紝鏈鐞嗙殑鏁版嵁
+ pmoi.setOpercheckFlag("0");
+ pmoi.setMainFlag("1");
+ pmoi.setDeptCodes(deptCodeList);
+ pmoi.setWardCodes(wardCodeList);
+ pmoi.setOpLevelCodes(opLevelCodeList);
+ List<PatMedOperationItem> patMedOperationItems = patMedOperationItemMapper.selectOperationItemList(pmoi);
+ for(PatMedOperationItem patMedOperationItem : patMedOperationItems){
+ PatArchive patArchive = patArchiveMapper.selectPatArchiveByPatid(patMedOperationItem.getPatid());
+ if (Objects.isNull(patArchive)) {
+ continue;
+ }
+ PatMedInhosp patMedInhospVo = new PatMedInhosp();
+ patMedInhospVo.setPatid((patMedOperationItem.getPatid()));
+ patMedInhospVo.setScheduleCheckFlag("0");
+ patMedInhospVo.setInhospstate("1");
+ patMedInhospVo.setFuflag("1");
+ List<PatMedInhosp> patMedInhospList = patMedInhospMapper.selectPatMedInhospList(patMedInhospVo);
+ if(CollectionUtils.isNotEmpty(patMedInhospList)){
+ ServiceTaskScheduleDetail scheduleDetailVo = new ServiceTaskScheduleDetail();
+ scheduleDetailVo.setTaskid(serviceTask.getTaskid());
+ scheduleDetailVo.setScheduleid(serviceTaskSchedule.getId());
+ List<ServiceTaskScheduleDetail> serviceTaskScheduleDetails = serviceTaskScheduleDetailMapper.selectServiceTaskScheduleDetailList(scheduleDetailVo);
+ //灏佽serviceSubtask
+ ServiceSubtask serviceSubtask = boxedServiceSubtaskForOp(serviceTask, patMedInhospList.get(0), patMedOperationItem, patArchive, config);
+ List<Map<String, Object>> preachformList = new ArrayList<>();
+ if(StringUtils.isNotEmpty(serviceTask.getPreachformDesc())){
+ try {
+ ObjectMapper objectMapper = new ObjectMapper();
+ preachformList = objectMapper.readValue(serviceTask.getPreachformDesc(), List.class);
+ }catch (Exception e){
+ log.error("浠诲姟缁�(鎵嬫湳)preachformDesc瑙f瀽澶辫触,taskid={}", serviceTask.getTaskid());
+ }
+ }
+ scheduleSubtaskBuilder.buildSubtasksForPatient(serviceTask, serviceTaskSchedule, serviceTaskScheduleDetails, serviceSubtask, preachformList);
+ //缃杞撼鍏ユ爣璁帮紝閬垮厤閲嶅鐢熸垚
+ PatMedInhosp flagUpd = new PatMedInhosp();
+ flagUpd.setInhospid(patMedInhospList.get(0).getInhospid());
+ flagUpd.setScheduleCheckFlag("1");
+ patMedInhospMapper.updatePatMedInhosp(flagUpd);
+ }
}
}
- scheduleSubtaskBuilder.buildSubtasksForPatient(serviceTask, serviceTaskSchedule, serviceTaskScheduleDetails, serviceSubtask, preachformList);
}
}
}
--
Gitblit v1.9.3