From 1b998cdf41ac4f1e4fec4d9bf076d7da700619c4 Mon Sep 17 00:00:00 2001
From: 陈昶聿 <chychen@nbjetron.com>
Date: 星期四, 07 五月 2026 17:41:18 +0800
Subject: [PATCH] 【市一】短信标题调整
---
smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java | 181 ++++++++++++++++++++++++++++++++++++++++----
1 files changed, 163 insertions(+), 18 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 d3c7238..5db97f8 100644
--- a/smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java
@@ -4,6 +4,7 @@
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.ruoyi.common.core.domain.entity.SysDept;
+import com.ruoyi.common.core.service.IConfigService;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.DtoConversionUtils;
import com.ruoyi.common.utils.SecurityUtils;
@@ -59,6 +60,8 @@
@Value("${spring.profiles.active}")
private String active;
+ @Autowired
+ private IConfigService iSysConfigService;
/**
@@ -85,6 +88,16 @@
*/
@Override
public List<PatMedInhosp> selectPatMedInhospList(PatMedInhosp patMedInhosp) {
+ if (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) {
+ patMedInhosp.setInhospstate("1");
+ }
+
List<PatMedInhosp> patMedInhospList = patMedInhospMapper.selectPatMedInhospList(patMedInhosp);
for (PatMedInhosp patMedInhosp1 : patMedInhospList) {
String tagname = patMedInhospMapper.getTagnameBypatid(patMedInhosp1.getPatid());
@@ -210,7 +223,91 @@
@Override
public int dealOutHospInfo(String config) {
+ //1.鍏ラ櫌瀹f暀
+ String helibrarySwitch = iSysConfigService.selectConfigByKey("in.helibrary.switch");
+ if (StringUtils.isNotEmpty(helibrarySwitch) && "2".equals(helibrarySwitch)) {
+ PatMedInhosp inhosp = new PatMedInhosp();
+ inhosp.setInDeptcheckFlag("0");
+ inhosp.setInhospstate("0");
+ inhosp.setFuflag("1");
+ List<PatMedInhosp> inPatMedInhosps = patMedInhospMapper.selectPatMedInhospList(inhosp);
+ //1.1 绉戝
+ for (PatMedInhosp patMedInhosp1 : inPatMedInhosps) {
+ //鑾峰彇鎮h�呬俊鎭�
+ PatArchive patArchive = patArchiveMapper.selectPatArchiveByPatid(patMedInhosp1.getPatid());
+ if (Objects.isNull(patArchive)) {
+ patMedInhosp1.setInDeptcheckFlag("2");
+ patMedInhosp1.setLongTaskReason("鎮h�呭熀鏈俊鎭负绌�");
+ patMedInhospMapper.updatePatMedInhosp(patMedInhosp1);
+ continue;
+ }
+ try {
+ //鏍规嵁鎮h�呮墍鍦ㄧ瀹わ紝鑾峰彇璇ョ瀹ょ殑鍏ラ櫌闀挎湡瀹f暀浠诲姟
+ ServiceTaskdept serviceTaskdept = new ServiceTaskdept();
+ serviceTaskdept.setLongtask(1L);
+ serviceTaskdept.setDeptCode(patMedInhosp1.getDeptcode());
+ serviceTaskdept.setDeptType("1");
+ serviceTaskdept.setServiceType("17");
+ serviceTaskdept.setOrgid(patMedInhosp1.getOrgid());
+ List<ServiceTaskdept> serviceTaskdepts = serviceTaskdeptMapper.selectServiceTaskdeptList(serviceTaskdept);
+ //濡傛灉閮ㄩ棬妯℃澘涓虹┖锛堝皢deptIsNull璁剧疆涓簍rue锛�
+ if (CollectionUtils.isEmpty(serviceTaskdepts) || serviceTaskdepts.size() == 0) {
+ PatMedInhosp patMedInhosp = patMedInhospMapper.selectPatMedInhospByInhospid(patMedInhosp1.getInhospid());
+ patMedInhosp1.setInDeptcheckFlag("2");
+ patMedInhosp1.setLongTaskReason(StringUtils.isNotEmpty(patMedInhosp.getLongTaskReason()) ? patMedInhosp.getLongTaskReason() + "璇ユ偅鑰呮墍鍦ㄧ瀹ゆ湭閰嶇疆鍏ラ櫌闀挎湡瀹f暀浠诲姟;" : "璇ユ偅鑰呮墍鍦ㄧ瀹ゆ湭閰嶇疆鍏ラ櫌闀挎湡瀹f暀浠诲姟;");
+ patMedInhospMapper.updatePatMedInhosp(patMedInhosp1);
+ } else {
+ for (ServiceTaskdept serviceTaskdept1 : serviceTaskdepts) {
+ writeInSubTask(serviceTaskdept1.getTaskId(), true, patMedInhosp1, patArchive, 4, config);
+ }
+ }
+
+ } catch (Exception e) {
+ log.error("浜哄憳鍏ラ櫌绉戝澶勭悊鍑哄紓甯镐簡锛歿}", e.getMessage());
+ patMedInhosp1.setInDeptcheckFlag("2");
+ patMedInhosp1.setLongTaskReason("浜哄憳鍏ラ櫌绉戝澶勭悊鍑哄紓甯镐簡锛�" + e.getMessage());
+ patMedInhospMapper.updatePatMedInhosp(patMedInhosp1);
+ }
+ }
+
+
+ //1.2 鐥呭尯
+ inhosp.setInDeptcheckFlag(null);
+ inhosp.setInWardcheckFlag("0");
+ List<PatMedInhosp> inPatMedInhospsWard = patMedInhospMapper.selectPatMedInhospList(inhosp);
+ for (PatMedInhosp patMedInhosp1 : inPatMedInhospsWard) {
+ //鑾峰彇鎮h�呬俊鎭�
+ PatArchive patArchive = patArchiveMapper.selectPatArchiveByPatid(patMedInhosp1.getPatid());
+ if (Objects.isNull(patArchive)) {
+ patMedInhosp1.setInDeptcheckFlag("2");
+ patMedInhosp1.setLongTaskReason("鎮h�呭熀鏈俊鎭负绌�");
+ patMedInhospMapper.updatePatMedInhosp(patMedInhosp1);
+ continue;
+ }
+ //鏍规嵁鎮h�呮墍鍦ㄧ梾鍖猴紝鑾峰彇璇ョ梾鍖虹殑鍏ラ櫌闀挎湡瀹f暀浠诲姟锛堜細鍑虹幇涓�涓棶棰橈紝绉戝鍜岀梾鍖哄彂鐨勫悓涓�涓ā鏉匡級
+ ServiceTaskdept serviceTaskWard = new ServiceTaskdept();
+ serviceTaskWard.setLongtask(1L);
+ serviceTaskWard.setDeptCode(patMedInhosp1.getHospitaldistrictcode());
+ serviceTaskWard.setDeptType("2");
+ serviceTaskWard.setServiceType("17");
+ serviceTaskWard.setOrgid(patMedInhosp1.getOrgid());
+ List<ServiceTaskdept> serviceTaskWardList = serviceTaskdeptMapper.selectServiceTaskdeptList(serviceTaskWard);
+ //濡傛灉閮ㄩ棬妯℃澘涓虹┖锛堝皢deptIsNull璁剧疆涓簍rue锛�
+ if (CollectionUtils.isEmpty(serviceTaskWardList) || serviceTaskWardList.size() == 0) {
+ PatMedInhosp patMedInhosp = patMedInhospMapper.selectPatMedInhospByInhospid(patMedInhosp1.getInhospid());
+ patMedInhosp1.setInDeptcheckFlag("2");
+ patMedInhosp1.setLongTaskReason(patMedInhosp.getLongTaskReason() + "璇ユ偅鑰呮墍鍦ㄧ梾鍖烘湭閰嶇疆鍏ラ櫌闀挎湡瀹f暀浠诲姟;");
+ patMedInhospMapper.updatePatMedInhosp(patMedInhosp1);
+ } else {
+ for (ServiceTaskdept serviceTaskdept1 : serviceTaskWardList) {
+ writeInSubTask(serviceTaskdept1.getTaskId(), true, patMedInhosp1, patArchive, 5, config);
+ }
+ }
+ }
+ }
+
+ //2.鍑洪櫌闅忚
PatMedInhosp pmks = new PatMedInhosp();
//鑾峰彇闇�瑕佸嚭闄㈤儴闂ㄩ殢璁匡紝鏈鐞嗙殑鏁版嵁
pmks.setDeptcheckFlag("0");
@@ -239,13 +336,14 @@
serviceTaskdept.setLongtask(1L);
serviceTaskdept.setDeptCode(patMedInhosp1.getLeaveldeptcode());
serviceTaskdept.setDeptType("1");
+ serviceTaskdept.setServiceType("2");
serviceTaskdept.setOrgid(patMedInhosp1.getOrgid());
List<ServiceTaskdept> serviceTaskdepts = serviceTaskdeptMapper.selectServiceTaskdeptList(serviceTaskdept);
//濡傛灉閮ㄩ棬妯℃澘涓虹┖锛堝皢deptIsNull璁剧疆涓簍rue锛�
if (CollectionUtils.isEmpty(serviceTaskdepts) || serviceTaskdepts.size() == 0) {
PatMedInhosp patMedInhosp = patMedInhospMapper.selectPatMedInhospByInhospid(patMedInhosp1.getInhospid());
patMedInhosp1.setDeptcheckFlag("2");
- patMedInhosp1.setLongTaskReason(patMedInhosp.getLongTaskReason() + "璇ユ偅鑰呮墍鍦ㄧ瀹ゆ湭閰嶇疆闀挎湡浠诲姟;");
+ patMedInhosp1.setLongTaskReason(patMedInhosp.getLongTaskReason() + "璇ユ偅鑰呮墍鍦ㄧ瀹ゆ湭閰嶇疆绂婚櫌闀挎湡浠诲姟;");
patMedInhospMapper.updatePatMedInhosp(patMedInhosp1);
} else {
for (ServiceTaskdept serviceTaskdept1 : serviceTaskdepts) {
@@ -289,17 +387,27 @@
continue;
}
try {
- ServiceTaskdept serviceTaskdept = new ServiceTaskdept();
- serviceTaskdept.setLongtask(1L);
- serviceTaskdept.setDeptCode(pmiBQ1.getLeavehospitaldistrictcode());
- serviceTaskdept.setDeptType("2");
- serviceTaskdept.setOrgid(pmiBQ1.getOrgid());
- List<ServiceTaskdept> serviceTaskdeptList = serviceTaskdeptMapper.selectServiceTaskdeptList(serviceTaskdept);
+ String errorreason = null;
+ List<ServiceTaskdept> serviceTaskdeptList = null;
+ if (!StringUtils.isEmpty(pmiBQ1.getLeavehospitaldistrictcode())) {
+ ServiceTaskdept serviceTaskdept = new ServiceTaskdept();
+ serviceTaskdept.setLongtask(1L);
+ serviceTaskdept.setDeptCode(pmiBQ1.getLeavehospitaldistrictcode());
+ serviceTaskdept.setDeptType("2");
+ serviceTaskdept.setServiceType("2");
+ serviceTaskdept.setOrgid(pmiBQ1.getOrgid());
+ serviceTaskdeptList = serviceTaskdeptMapper.selectServiceTaskdeptList(serviceTaskdept);
+ if (CollectionUtils.isEmpty(serviceTaskdeptList)) {
+ errorreason = "璇ユ偅鑰呮墍鍦ㄧ梾鍖烘湭閰嶇疆闀挎湡浠诲姟;";
+ }
+ } else {
+ errorreason = "绂婚櫌鐥呭尯涓虹┖;";
+ }
//濡傛灉閮ㄩ棬妯℃澘涓虹┖锛堝皢deptIsNull璁剧疆涓簍rue锛�
- if (CollectionUtils.isEmpty(serviceTaskdeptList) || serviceTaskdeptList.size() == 0) {
+ if (StringUtils.isNotEmpty(errorreason)) {
PatMedInhosp patMedInhosp = patMedInhospMapper.selectPatMedInhospByInhospid(pmiBQ1.getInhospid());
pmiBQ1.setWardcheckFlag("2");
- pmiBQ1.setLongTaskReason(patMedInhosp.getLongTaskReason() + "璇ユ偅鑰呮墍鍦ㄧ梾鍖烘湭閰嶇疆闀挎湡浠诲姟;");
+ pmiBQ1.setLongTaskReason(StringUtils.isNotEmpty(patMedInhosp.getLongTaskReason()) ? patMedInhosp.getLongTaskReason() + errorreason : errorreason);
patMedInhospMapper.updatePatMedInhosp(pmiBQ1);
} else {
for (ServiceTaskdept serviceTaskdept1 : serviceTaskdeptList) {
@@ -341,21 +449,40 @@
continue;
}
try {
+ String errorIcd = null;
if (StringUtils.isEmpty(pmiJB.getLeaveicd10code())) {
continue;
}
// 鏍规嵁鎮h�呯殑鐤剧梾锛岃幏鍙栬鐤剧梾鐨勯暱鏈熶换鍔�
ServiceTaskdiag serviceTaskdiag = new ServiceTaskdiag();
serviceTaskdiag.setLongtask(1L);
- serviceTaskdiag.setIcd10code(pmiJB.getLeaveicd10code());
+ serviceTaskdiag.setServiceType("2");
+ if (active.equals("nhfy")) {
+ //鍗楀崕闄勪竴鐨刬cd10code鏈夐噸澶嶏紝鎵�浠ョ敤涓昏瘖鏂悕绉板幓鏌ヨ
+ serviceTaskdiag.setIcd10name(pmiJB.getLeavediagname());
+ if (StringUtils.isEmpty(pmiJB.getLeavediagname())) {
+ errorIcd = "璇ユ偅鑰呬富璇婃柇鍚嶇О涓虹┖;";
+ }
+ } else {
+ serviceTaskdiag.setIcd10code(pmiJB.getLeaveicd10code());
+ if (StringUtils.isEmpty(pmiJB.getLeaveicd10code())) {
+ errorIcd = "璇ユ偅鑰呬富璇婃柇ICD10鐮佷负绌�;";
+ }
+ }
serviceTaskdiag.setOrgid(pmiJB.getOrgid());
-
List<ServiceTaskdiag> serviceTaskdiags = serviceTaskdiagMapper.selectServiceTaskdiagList(serviceTaskdiag);
+
//濡傛灉閮ㄩ棬妯℃澘涓虹┖锛堝皢deptIsNull璁剧疆涓簍rue锛�
- if (CollectionUtils.isEmpty(serviceTaskdiags) || serviceTaskdiags.size() == 0) {
+ if (StringUtils.isNotEmpty(errorIcd)) {
PatMedInhosp patMedInhosp = patMedInhospMapper.selectPatMedInhospByInhospid(pmiJB.getInhospid());
pmiJB.setDiagcheckFlag("2");
- pmiJB.setLongTaskReason(patMedInhosp.getLongTaskReason() + "鎵�鎮g殑鐤剧梾鏈厤缃暱鏈熶换鍔�;");
+ pmiJB.setLongTaskReason(StringUtils.isNotEmpty(patMedInhosp.getLongTaskReason()) ? patMedInhosp.getLongTaskReason() + errorIcd : errorIcd);
+ patMedInhospMapper.updatePatMedInhosp(pmiJB);
+ } else if (CollectionUtils.isEmpty(serviceTaskdiags)) {
+ errorIcd = "璇ユ偅鑰呮墍鍦ㄧ梾鍖烘湭閰嶇疆闀挎湡浠诲姟;";
+ PatMedInhosp patMedInhosp = patMedInhospMapper.selectPatMedInhospByInhospid(pmiJB.getInhospid());
+ pmiJB.setDiagcheckFlag("2");
+ pmiJB.setLongTaskReason(StringUtils.isNotEmpty(patMedInhosp.getLongTaskReason()) ? patMedInhosp.getLongTaskReason() + errorIcd : errorIcd);
patMedInhospMapper.updatePatMedInhosp(pmiJB);
} else {
for (ServiceTaskdiag serviceTaskdept1 : serviceTaskdiags) {
@@ -975,8 +1102,18 @@
if (Objects.isNull(patArchive)) {
return;
}
+ PatMedInhosp patMedInhosp = new PatMedInhosp();
+ patMedInhosp.setPatid(patMedOperation.getPatid());
+ patMedInhosp.setInhospstate("1");
+ patMedInhosp.setFuflag("1");
+ List<PatMedInhosp> patMedInhospList = patMedInhospMapper.selectPatMedInhospList(patMedInhosp);
+
+ if (CollectionUtils.isEmpty(patMedInhospList)) {
+ return;
+ }
+
//灏佽serviceSubtask
- ServiceSubtask serviceSubtask = boxedServiceSubtaskForOp(serviceTask, patMedOperation, patMedOperationItem, patArchive, config);
+ ServiceSubtask serviceSubtask = boxedServiceSubtaskForOp(serviceTask, patMedInhospList.get(0), patMedOperation, patMedOperationItem, patArchive, config);
if (ObjectUtils.isEmpty(serviceSubtask)) {
return;
}
@@ -1187,7 +1324,7 @@
}
//灏佽serviceSubtask
- private ServiceSubtask boxedServiceSubtaskForOp(ServiceTask serviceTask, PatMedOperation patMedOperation, PatMedOperationItem patMedOperationItem, PatArchive patArchive, String config) {
+ private ServiceSubtask boxedServiceSubtaskForOp(ServiceTask serviceTask, PatMedInhosp patMedInhosp1, PatMedOperation patMedOperation, PatMedOperationItem patMedOperationItem, PatArchive patArchive, String config) {
ServiceSubtask serviceSubtask = DtoConversionUtils.sourceToTarget(serviceTask, ServiceSubtask.class);
serviceSubtask.setTaskid(serviceTask.getTaskid());
if (StringUtils.isNotEmpty(serviceTask.getLibtemplateid()))
@@ -1226,11 +1363,20 @@
serviceSubtask.setOperationItemId(patMedOperationItem.getId());
serviceSubtask.setUpdateBy(serviceTask.getUpdateBy());
serviceSubtask.setUpdateTime(new Date());
+
+ //todo
//璁剧疆鍙戦�佹椂闂�
if (serviceTask.getSendDay() == null) serviceTask.setSendDay(1L);
Date newDate = null;
- //todo
- newDate = addDays(patMedOperation.getCreateTime(), serviceTask.getSendDay().intValue());
+ if (!Objects.isNull(patMedInhosp1.getEndtime())) {
+ newDate = addDays(patMedInhosp1.getEndtime(), serviceTask.getSendDay().intValue());
+ } else {
+ patMedInhosp1.setDeptcheckFlag("2");
+ patMedInhosp1.setRemark(patMedInhosp1.getRemark() + "& 璇ユ偅鑰呮墜鏈嚭闄㈡椂闂翠负绌�,鍑洪櫌璁板綍ID涓�:" + patMedInhosp1.getInhospid());
+ patMedInhospMapper.updatePatMedInhosp(patMedInhosp1);
+ //濡傛灉鍑洪櫌鏃堕棿涓虹┖锛屽垯杩斿洖涓�涓柊瀵硅薄
+ return new ServiceSubtask();
+ }
serviceSubtask.setLongSendTime(newDate);
serviceSubtask.setVisitTime(newDate);
@@ -1238,7 +1384,6 @@
if ("3".equals(serviceTask.getType())) {
serviceSubtask.setVisitTime(minusDay(newDate, StringUtils.isNotEmpty(config) ? Integer.parseInt(config) : 0));
}
-
//鎮h�呭彂閫佹椂闂�
if (StringUtils.isNotEmpty(patArchive.getNotrequiredFlag()) && patArchive.getNotrequiredFlag().equals("1")) {
String remark = patArchive.getNotrequiredreason();
--
Gitblit v1.9.3