From 7a5ef401fdbe6f67dd96255a47874f7a3656253b Mon Sep 17 00:00:00 2001
From: 陈昶聿 <chychen@nbjetron.com>
Date: 星期四, 03 九月 2026 18:26:29 +0800
Subject: [PATCH] 【丽水】处理超时随访任务

---
 smartor/src/main/java/com/smartor/service/impl/ServiceExternalServiceImpl.java |  106 ++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 100 insertions(+), 6 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 7c39a28..e7c2dc4 100644
--- a/smartor/src/main/java/com/smartor/service/impl/ServiceExternalServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/ServiceExternalServiceImpl.java
@@ -816,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");
@@ -832,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);
@@ -1243,10 +1249,22 @@
             i = patMedOuthospService.insertPatMedOuthosp(patMedOuthosp);
 
         }
-        Date adminDate = externalJZInfo.getJiuZhenRQ();
+        Date adminDate = patMedOuthosp.getAdmitdate();
         //瀹屾垚鎺ヨ瘖 宸茬粡瀹屾垚浠诲姟鍐嶆闅忚
-        if(ObjectUtils.isNotEmpty(visitTimeNum) && ObjectUtils.isNotEmpty(adminDate)){
-            patMedOuthospService.followUpAgainByPatMedOuthosp(patMedOuthosp, adminDate, visitTimeNum);
+        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) {
@@ -1497,6 +1515,81 @@
                 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;
@@ -1995,6 +2088,7 @@
                 return true;
             case "SM_SQ_CheXiao":
                 log.info("鎵嬫湳鎾ら攢鍏ュ弬绫诲瀷涓猴細{}", type);
+                cancelOperationInfo(dataMap);
                 return true;
             case "TJ_YW_BaoGaoXX":
                 log.info("浣撴鎶ュ憡鍏ュ弬绫诲瀷涓猴細{}", type);

--
Gitblit v1.9.3