From 25c9ca5313fbed298f1faf3893b7b0c780b6e1b2 Mon Sep 17 00:00:00 2001
From: 陈昶聿 <chychen@nbjetron.com>
Date: 星期四, 03 九月 2026 16:33:02 +0800
Subject: [PATCH] 【丽水】手术撤销
---
smartor/src/main/java/com/smartor/service/impl/ServiceExternalServiceImpl.java | 166 +++++++++++++++++++++++++++++++++++++++++++++++-------
1 files changed, 143 insertions(+), 23 deletions(-)
diff --git a/smartor/src/main/java/com/smartor/service/impl/ServiceExternalServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/ServiceExternalServiceImpl.java
index 382ef76..e7c2dc4 100644
--- a/smartor/src/main/java/com/smartor/service/impl/ServiceExternalServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/ServiceExternalServiceImpl.java
@@ -1,8 +1,6 @@
package com.smartor.service.impl;
import cn.hutool.core.bean.BeanUtil;
-import cn.hutool.json.JSON;
-import cn.hutool.json.JSONUtil;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import com.ruoyi.common.core.domain.entity.SysDept;
@@ -10,8 +8,6 @@
import com.ruoyi.common.core.domain.entity.SysUserDept;
import com.ruoyi.common.core.redis.RedisCache;
import com.ruoyi.common.exception.base.BaseException;
-import com.ruoyi.common.utils.AesUtils;
-import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.DtoConversionUtils;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.http.HttpUtils;
@@ -21,8 +17,8 @@
import com.smartor.service.IPatMedOuthospService;
import com.smartor.service.IServiceExternalService;
import lombok.extern.slf4j.Slf4j;
-import netscape.javascript.JSObject;
import org.apache.commons.collections4.CollectionUtils;
+import org.apache.commons.collections4.MapUtils;
import org.apache.commons.lang3.ObjectUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
@@ -30,8 +26,6 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
-import java.io.UnsupportedEncodingException;
-import java.net.URLEncoder;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
@@ -441,12 +435,6 @@
ExternalInHospPatientInfo externalInHospPatientInfo = BeanUtil.mapToBean(BingRenXX, ExternalInHospPatientInfo.class, true);
ExternalInDeptPatientInfo externalInDeptPatientInfo = BeanUtil.mapToBean(RuKeXX, ExternalInDeptPatientInfo.class, true);
-
- ExternalInDeptPatientInfo externalJZInfo = BeanUtil.mapToBean(JiuZhenXX, ExternalInDeptPatientInfo.class, true);
- if(ObjectUtils.isNotEmpty(externalJZInfo)){
- externalInHospPatientInfo.setJingGuanYSID(externalJZInfo.getJingGuanYSID());
- externalInHospPatientInfo.setJingGuanYSXM(externalJZInfo.getJingGuanYSXM());
- }
externalInHospPatientInfo.setZeRenHSID(externalInDeptPatientInfo.getZeRenHSID());
externalInHospPatientInfo.setZeRenHSXM(externalInDeptPatientInfo.getZeRenHSXM());
externalInHospPatientInfo.setZhuZhiYSID(externalInDeptPatientInfo.getZhuZhiYSID());
@@ -828,10 +816,16 @@
patMedInhosp1.setDiagname(StringUtils.isNotEmpty(patMedInhosp1.getLeavediagname()) ? patMedInhosp1.getLeavediagname() : hospPatientDiagnoseInfos2.get(0).getZhenDuanMC());
}
- patMedInhosp1.setInhospstate("1");
+ String orgid = ObjectUtils.isNotEmpty(BingRenXX) && ObjectUtils.isNotEmpty(BingRenXX.get("ZuZhiJGID")) ? BingRenXX.get("ZuZhiJGID").toString() : null;
+ if(StringUtils.isNotEmpty(orgid) && orgid.equals("47246103233112211A1001")){
+ //缂欎簯浜岄櫌 浣忛櫌璁板綍涓嶆洿鏂扮姸鎬�
+ }else {
+ patMedInhosp1.setInhospstate("1");
+ }
+
if (CollectionUtils.isNotEmpty(patMedInhospList)) {
patMedInhosp1.setUpdateTime(new Date());
- patMedInhosp1.setOrgid(ObjectUtils.isNotEmpty(BingRenXX) && ObjectUtils.isNotEmpty(BingRenXX.get("ZuZhiJGID")) ? BingRenXX.get("ZuZhiJGID").toString() : null);
+ patMedInhosp1.setOrgid(orgid);
if (CollectionUtils.isNotEmpty(noLongTask) && noLongTask.contains(patMedInhosp1.getOrgid())) {
//涓嶉渶瑕侀暱鏈熶换鍔¢殢璁�
patMedInhosp1.setFuflag("0");
@@ -844,7 +838,7 @@
patMedInhosp1.setHospitalcode(ObjectUtils.isNotEmpty(BingRenXX.get("ZuZhiJGID")) ? BingRenXX.get("ZuZhiJGID").toString() : null);
patMedInhosp1.setLeavehospitaldistrictname(ObjectUtils.isNotEmpty(BingRenXX.get("DangQianBQMC")) ? BingRenXX.get("DangQianBQMC").toString() : null);
patMedInhosp1.setLeavehospitaldistrictcode(ObjectUtils.isNotEmpty(BingRenXX.get("DangQianBQID")) ? BingRenXX.get("DangQianBQID").toString() : null);
- patMedInhosp1.setOrgid(ObjectUtils.isNotEmpty(BingRenXX.get("ZuZhiJGID")) ? BingRenXX.get("ZuZhiJGID").toString() : null);
+ patMedInhosp1.setOrgid(orgid);
//涓芥按鏃犻櫌鍖猴紝榛樿鍊兼槸 1
patMedInhosp1.setCampusid("1");
patMedInhosp1.setPatno(ObjectUtils.isNotEmpty(BingRenXX.get("BingRenID")) ? BingRenXX.get("BingRenID").toString() : null);
@@ -1177,7 +1171,7 @@
List<PatMedOuthosp> patMedOuthosps = patMedOuthospMapper.callSpQueryOuthosp(patMedOuthospreq);
for (PatMedOuthosp patMedOuthosp1 : patMedOuthosps) {
PatArchive pa = patArchiveMapper.selectPatArchiveByPatid(patMedOuthosp1.getPatid());
- if (patArchive.getBirthdate() != null) {
+ if (ObjectUtils.isNotEmpty(patArchive) && patArchive.getBirthdate() != null) {
Map<String, String> map = calculateAge(pa.getBirthdate().toInstant().atZone(ZoneId.systemDefault()).toLocalDate(), LocalDate.now());
pa.setAge(ObjectUtils.isNotEmpty(map.get("age")) ? Long.valueOf(map.get("age")) : null);
pa.setAgeUnit(map.get("ageUnit"));
@@ -1217,12 +1211,23 @@
patMedOuthosp.setFuflag("1");
}
}
+ Integer visitTimeNum = null;
+ String visitTimeUnit = "澶�";
for (ExternalWZInfo externalWZInfo : ExternalWZInfoList) {
if (externalWZInfo.getWenZhenLXMC().equals("鐜扮梾鍙�")) {
patMedOuthosp.setHpi(externalWZInfo.getNeiRong());
}
if (externalWZInfo.getWenZhenLXMC().equals("涓昏瘔")) {
patMedOuthosp.setMainsuit(externalWZInfo.getNeiRong());
+ }
+ if (externalWZInfo.getWenZhenLXMC().equals("闅忚澶╂暟")) {
+ String visitTimeNumStr = externalWZInfo.getNeiRong();
+ if(StringUtils.isNotEmpty(visitTimeNumStr) && visitTimeNumStr.matches("^-?\\d+$")){
+ visitTimeNum = Integer.parseInt(visitTimeNumStr);
+ }
+ }
+ if (externalWZInfo.getWenZhenLXMC().equals("闅忚澶╂暟鍗曚綅")) {
+ visitTimeUnit = externalWZInfo.getNeiRong();
}
}
int i = 0;
@@ -1243,6 +1248,23 @@
}
i = patMedOuthospService.insertPatMedOuthosp(patMedOuthosp);
+ }
+ Date adminDate = patMedOuthosp.getAdmitdate();
+ //瀹屾垚鎺ヨ瘖 宸茬粡瀹屾垚浠诲姟鍐嶆闅忚
+ if(ObjectUtils.isNotEmpty(visitTimeNum)
+ && ObjectUtils.isNotEmpty(adminDate)
+ && StringUtils.isNotEmpty(patMedOuthosp.getFuflag())
+ && patMedOuthosp.getFuflag().equals("1")){
+ if(visitTimeUnit.equals("澶�")){
+ visitTimeNum = visitTimeNum;
+ }else if(visitTimeUnit.equals("鍛�")){
+ visitTimeNum = visitTimeNum * 7;
+ }else if(visitTimeUnit.equals("鏈�")){
+ visitTimeNum = visitTimeNum * 30;
+ }else if(visitTimeUnit.equals("骞�")){
+ visitTimeNum = visitTimeNum * 365;
+ }
+ patMedOuthospService.dealPatMedOuthosp(patMedOuthosp, visitTimeNum);
}
if (i > 0) {
@@ -1332,9 +1354,7 @@
Map yeWuXX = (Map) dataMap.get("YeWuXX");
Map<String, Object> BingRenXX = ObjectUtils.isNotEmpty(yeWuXX) ? (Map<String, Object>) yeWuXX.get("BingRenXX") : null;
ExternalInHospPatientInfo externalInHospPatientInfo = BeanUtil.mapToBean(BingRenXX, ExternalInHospPatientInfo.class, true);
-
PatArchive patArchive = addPatArchive(externalInHospPatientInfo, null, null);
-
//鎵嬫湳淇℃伅鏂板
Map<String, Object> ssxx = ObjectUtils.isNotEmpty(yeWuXX) ? (Map<String, Object>) yeWuXX.get("ShouShuSQ") : null;
@@ -1351,8 +1371,6 @@
externalOperationInfo = BeanUtil.mapToBean(sscx, ExternalOperationInfo.class, true);
PatMedOperation patMedOperation = new PatMedOperation();
patMedOperation.setPatid(patArchive.getId());
- patMedOperation.setPatcode(externalInHospPatientInfo.getBingRenID());
- patMedOperation.setPaname(externalInHospPatientInfo.getXingMing());
patMedOperation.setOpreqcode(externalOperationInfo.getShenQingDID());
//鏌ヨ涓�涓嬶紝璇ユ偅鑰呮槸鍚﹀凡缁忔湁杩欎簺鏁版嵁
List<PatMedOperation> patMedOperations = patMedOperationMapper.selectPatMedOperationList(patMedOperation);
@@ -1403,9 +1421,17 @@
//涓芥按鏃犻櫌鍖猴紝榛樿鍊兼槸 1
patMedOperation.setCampusid("1");
patMedOperation.setSerialnum(externalInHospPatientInfo.getJiuZhenYWID());
+ patMedOperation.setInhospstate(externalInHospPatientInfo.getBingRenLXDM());
patMedOperation.setInhospno(externalInHospPatientInfo.getBingAnHao());
patMedOperation.setHospitalname(externalInHospPatientInfo.getZuZhiJGMC());
patMedOperation.setHospitalcode(externalInHospPatientInfo.getZuZhiJGID());
+
+ patMedOperation.setPatcode(externalInHospPatientInfo.getBingRenID());
+ patMedOperation.setPaname(externalInHospPatientInfo.getXingMing());
+ patMedOperation.setLeaveldeptcode(externalInHospPatientInfo.getDangQianKSID());
+ patMedOperation.setLeaveldeptname(externalInHospPatientInfo.getDangQianKSMC());
+ patMedOperation.setLeavehospitaldistrictcode(externalInHospPatientInfo.getDangQianBQID());
+ patMedOperation.setLeavehospitaldistrictname(externalInHospPatientInfo.getDangQianBQMC());
}
patMedOperation.setHospitaldistrictcode(null);
patMedOperation.setHospitaldistrictname(null);
@@ -1450,11 +1476,17 @@
return info;
}).collect(Collectors.toList()) : null;
+ if(ObjectUtils.isNotEmpty(patMedOperation.getId())){
+ patMedOperationItemMapper.deleteHardPatMedOperationItemByOpId(patMedOperation.getId().toString());
+ }
+
//addMianTableFalg鏄惁闇�瑕佸皢涓绘墜鏈殑淇℃伅鏀惧埌PatMedOperation琛ㄤ腑锛堝彧鏈夌涓�涓富鎵嬫湳淇℃伅闇�瑕佹斁锛屽悗闈㈢殑閮戒笉闇�瑕佹斁浜嗭紝涔熷氨鏄锛岀涓�涓斁瀹屽悗锛屽氨瑕佹妸杩欎釜flag鏀规垚false锛�
Boolean addMianTableFalg = true;
for (ExternalOperationDetail externalOperationDetail : externalOperationDetails) {
PatMedOperationItem patMedOperationItem = new PatMedOperationItem();
- patMedOperationItem.setOpid(patMedOperation.getOpid());
+ if(ObjectUtils.isNotEmpty(patMedOperation.getId())){
+ patMedOperationItem.setOpid(patMedOperation.getId().toString());
+ }
patMedOperationItem.setOpcode(externalOperationDetail.getShouShuMCID());
patMedOperationItem.setOpdesc(externalOperationDetail.getShouShuMC());
patMedOperationItem.setMainFlag(externalOperationDetail.getZhuShouSBZ());
@@ -1465,18 +1497,99 @@
patMedOperationItem.setOpposition(externalOperationDetail.getShouShuBW());
patMedOperationItem.setDelFlag("0");
patMedOperationItem.setOrgid(patMedOperation.getOrgid());
+ patMedOperationItem.setInhospstate(patMedOperation.getInhospstate());
+ patMedOperationItem.setSerialnum(patMedOperation.getSerialnum());
//涓芥按鏃犻櫌鍖猴紝榛樿鍊兼槸 1
patMedOperationItem.setCampusid("1");
if (externalOperationDetail.getZhuShouSBZ().equals("1") && addMianTableFalg == true) {
patMedOperation.setOpcode(externalOperationDetail.getShouShuMCID());
patMedOperation.setOpdesc(externalOperationDetail.getShouShuMC());
-// patMedOperation.setOpid(externalOperationDetail.getShouShuJBDM());
+ if(ObjectUtils.isNotEmpty(patMedOperation.getId())){
+ patMedOperation.setOpid(patMedOperation.getId().toString());
+ }
+
patMedOperation.setUpdateTime(new Date());
patMedOperationMapper.updatePatMedOperation(patMedOperation);
addMianTableFalg = false;
}
patMedOperationItem.setCreateTime(new Date());
+ patMedOperationItem.setUpdateTime(new Date());
patMedOperationItemMapper.insertPatMedOperationItem(patMedOperationItem);
+ }
+ }
+ return true;
+ }
+
+ @Override
+ public Boolean cancelOperationInfo(Map dataMap) {
+ log.info("ServiceExternalServiceImpl---cancelOperationInfo鐨勬挙閿�鐨勫�间负锛歿}", dataMap);
+
+ Map yeWuXX = (Map) dataMap.get("YeWuXX");
+ Map<String, Object> BingRenXX = ObjectUtils.isNotEmpty(yeWuXX) ? (Map<String, Object>) yeWuXX.get("BingRenXX") : null;
+ ExternalInHospPatientInfo externalInHospPatientInfo = BeanUtil.mapToBean(BingRenXX, ExternalInHospPatientInfo.class, true);
+ PatArchive patArchive = addPatArchive(externalInHospPatientInfo, null, null);
+ //鎵嬫湳鎾ら攢
+ Map<String, Object> sscx = ObjectUtils.isNotEmpty(yeWuXX) ? (Map<String, Object>) yeWuXX.get("ShouShuCX") : null;
+ ExternalOperationInfo externalOperationInfo = null;
+ if (ObjectUtils.isNotEmpty(sscx))
+ externalOperationInfo = BeanUtil.mapToBean(sscx, ExternalOperationInfo.class, true);
+ PatMedOperation patMedOperation = new PatMedOperation();
+ patMedOperation.setPatid(patArchive.getId());
+ patMedOperation.setOrgid(patArchive.getOrgid());
+ patMedOperation.setOpreqcode(externalOperationInfo.getShenQingDID());
+ //鏌ヨ涓�涓嬶紝璇ユ偅鑰呮槸鍚﹀凡缁忔湁杩欎簺鏁版嵁
+ List<PatMedOperation> patMedOperations = patMedOperationMapper.selectPatMedOperationList(patMedOperation);
+ if (CollectionUtils.isNotEmpty(patMedOperations)) {
+ for(PatMedOperation operation : patMedOperations){
+ Long id = operation.getId();
+ //濡傛灉鎵嬫湳鎾ら攢锛岀洿鎺ュ垹闄よ鏉℃墜鏈俊鎭�
+ if (ObjectUtils.isNotEmpty(sscx)) {
+ operation.setId(id);
+ operation.setCheckFlag("1");
+ operation.setDelFlag("1");
+ //鍚屾椂鍘绘煡璇紝鏄惁鍦╯ubtask涓敓鎴愪换鍔★紝濡傛灉鐢熸垚鍑哄緱绔嬮┈鍒犻櫎
+ // 鎵嬫湳闅忚
+ PatMedOperationItem pmoi = new PatMedOperationItem();
+ //鑾峰彇闇�瑕佸嚭闄㈡墜鏈殢璁匡紝鏈鐞嗙殑鏁版嵁
+ pmoi.setOpid(operation.getId().toString());
+ List<PatMedOperationItem> patMedOperationItems
+ = patMedOperationItemMapper.selectOperationItemList(pmoi);
+ List<Long> operationItemIds = patMedOperationItems.stream()
+ .map(PatMedOperationItem::getId)
+ .filter(Objects::nonNull)
+ .distinct()
+ .collect(Collectors.toList());
+
+
+ //涓嶉渶瑕佹湇鍔′簡锛岄渶瑕侀�氳繃patid鍜宻endstate=1,2,3,5,7鍘绘煡璇竴涓嬶紝service_subtask閲屾槸鍚︽湁姝e湪鎵ц鐨勪换鍔★紝
+ //鏈夌殑璇濓紝绔嬪嵆鍋滀簡
+ List<Long> sendstates = Arrays.asList(1L, 2L, 3L, 5L, 7L);
+ List<ServiceSubtask> serviceSubtaskList = new ArrayList<>();
+ ServiceSubtaskEntity serviceSubtaskVO = new ServiceSubtaskEntity();
+ serviceSubtaskVO.setOrgid(patArchive.getOrgid());
+ serviceSubtaskVO.setPatid(patArchive.getId());
+ serviceSubtaskVO.setSendstates(sendstates);
+ serviceSubtaskVO.setOperationItemIds(operationItemIds);
+ serviceSubtaskList = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskVO);
+ //鍘籸edis涓紝鏌ヨ鏄惁鏈塻ubid锛屾湁鐨勮瘽绉婚櫎cache-exist
+ if (CollectionUtils.isNotEmpty(serviceSubtaskList)) {
+ for (ServiceSubtask serviceSubtask : serviceSubtaskList) {
+ log.info("闇�瑕佺Щ闄ょ殑subId涓猴細{}", serviceSubtask.getId().toString());
+ serviceSubtask.setSendstate(4L);
+ serviceSubtask.setRemark("鎵嬫湳鎾ら攢");
+ serviceSubtaskMapper.updateServiceSubtask(serviceSubtask);
+ redisCache.removeElementFromList("cache-exist", serviceSubtask.getId().toString());
+ redisCache.removeElementFromList("cache-0", serviceSubtask.getId().toString());
+ redisCache.removeElementFromList("cache-1", serviceSubtask.getId().toString());
+ redisCache.removeElementFromList("cache-2", serviceSubtask.getId().toString());
+ redisCache.removeElementFromList("cache-3", serviceSubtask.getId().toString());
+ redisCache.removeElementFromList("cache-4", serviceSubtask.getId().toString());
+ }
+ }
+ operation.setUpdateTime(new Date());
+ patMedOperationMapper.updatePatMedOperation(operation);
+ patMedOperationItemMapper.deleteSoftPatMedOperationItemByOpId(operation.getOpid());
+ }
}
}
return true;
@@ -1970,6 +2083,13 @@
log.info("鎵嬫湳鐢宠鍏ュ弬绫诲瀷涓猴細{}", type);
addOperationInfo(dataMap);
return true;
+ case "SM_SQ_ShouShuAP":
+ log.info("鎵嬫湳瀹夋帓鍏ュ弬绫诲瀷涓猴細{}", type);
+ return true;
+ case "SM_SQ_CheXiao":
+ log.info("鎵嬫湳鎾ら攢鍏ュ弬绫诲瀷涓猴細{}", type);
+ cancelOperationInfo(dataMap);
+ return true;
case "TJ_YW_BaoGaoXX":
log.info("浣撴鎶ュ憡鍏ュ弬绫诲瀷涓猴細{}", type);
return true;
--
Gitblit v1.9.3