From f2cc333b963cb0de81aebc5ae3a8c247e99243d8 Mon Sep 17 00:00:00 2001
From: 陈昶聿 <chychen@nbjetron.com>
Date: 星期二, 02 六月 2026 18:21:27 +0800
Subject: [PATCH] 【市一】同步手术视图

---
 ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/impl/CollectHISServiceImpl.java |   94 ++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 89 insertions(+), 5 deletions(-)

diff --git a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/impl/CollectHISServiceImpl.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/impl/CollectHISServiceImpl.java
index 3901ff4..5569719 100644
--- a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/impl/CollectHISServiceImpl.java
+++ b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/impl/CollectHISServiceImpl.java
@@ -9,6 +9,7 @@
 import com.ruoyi.quartz.service.ICollectHISService;
 import com.smartor.domain.*;
 import com.smartor.mapper.*;
+import com.smartor.service.IPatMedOuthospService;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.collections4.CollectionUtils;
 import org.apache.commons.lang3.ArrayUtils;
@@ -35,7 +36,7 @@
     private SysUser2Mapper sysUser2Mapper;
 
     @Autowired
-    private SysUserRole2Mapper sysUserRoleMapper;
+    private IPatMedOuthospService patMedOuthospService;
 
     @Autowired
     private SysDept2Mapper sysDept2Mapper;
@@ -73,7 +74,11 @@
 
     @Value("${spring.profiles.active}")
     private String active;
+    @Autowired
+    private PatMedOperationMapper patMedOperationMapper;
 
+    @Autowired
+    private PatMedOperationItemMapper patMedOperationItemMapper;
 
     @Override
     public List<PatArchive> selectPatArchiveList(PatArchive patArchive) {
@@ -114,6 +119,7 @@
             //鍚屾浣忛櫌鐥呬汉淇℃伅
             List<Map<String, Object>> syncTemp = syncList.stream().filter(row -> row.get("syncName").equals("pat_med_inhosp")).collect(Collectors.toList());
             if (syncTemp.size() > 0) {
+                log.info("startTime:" + syncTemp.get(0).get("startTime") + ", endTime: ", endTime);
                 count += syncMedInhosp(syncTemp.get(0).get("startTime") + "", endTime);
                 utilsMapper.updateSql("update sys_sync_time set startTime='" + endTime + "' where syncName='pat_med_inhosp' ");
             }
@@ -125,6 +131,12 @@
                 utilsMapper.updateSql("update sys_sync_time set startTime='" + endTime + "' where syncName='pat_med_outhosp' ");
             }
 
+            //鍚屾鎵嬫湳淇℃伅
+            syncTemp = syncList.stream().filter(row -> row.get("syncName").equals("pat_med_operation")).collect(Collectors.toList());
+            if (syncTemp.size() > 0) {
+                count += syncOper(syncTemp.get(0).get("startTime") + "", endTime);
+                utilsMapper.updateSql("update sys_sync_time set startTime='" + endTime + "' where syncName='pat_med_operation' ");
+            }
 
         } else {
             log.info("鍚屾浠诲姟鏃堕棿sys_sync_time琛ㄤ腑娌℃湁闇�瑕佸悓姝ョ殑浠诲姟");
@@ -173,7 +185,8 @@
      * @param
      * @return
      */
-    private Integer syncMedInhosp(String startTime, String endTime) {
+    @Override
+    public Integer syncMedInhosp(String startTime, String endTime) {
         Integer count = 0;
         PatMedInhosp patMedInhosp = new PatMedInhosp();
         patMedInhosp.setLastStartTime(startTime);
@@ -291,7 +304,7 @@
                         patMedOuthosp1.setCampusid(patMedOuthosp1.getOrgid());
                         patMedOuthosp1.setOrgid("1");
                     }
-                    count += patMedOuthospMapper.updatePatMedOuthosp(patMedOuthosp1);
+                    count += patMedOuthospService.updatePatMedOuthosp(patMedOuthosp1);
                 } else {
                     patMedOuthosp1.setCreateTime(new Date());
                     //甯備竴 闄㈠尯id瀵瑰簲orgid锛屾満鏋刬d涓洪粯璁ょ殑1
@@ -299,7 +312,7 @@
                         patMedOuthosp1.setCampusid(patMedOuthosp1.getOrgid());
                         patMedOuthosp1.setOrgid("1");
                     }
-                    count += patMedOuthospMapper.insertPatMedOuthosp(patMedOuthosp1);
+                    count += patMedOuthospService.insertPatMedOuthosp(patMedOuthosp1);
                 }
             } catch (Exception ex) {
                 log.info("鍚屾鍑哄叆闄�:" + ex.getMessage());
@@ -308,6 +321,77 @@
         return count;
     }
 
+    /**
+     * 鍚屾鎵嬫湳淇℃伅
+     *
+     * @param
+     * @return
+     */
+    @Override
+    public Integer syncOper(String startTime, String endTime) {
+        Integer count = 0;
+        PatMedOperation patMedOperation = new PatMedOperation();
+        patMedOperation.setLastStartTime(startTime);
+        patMedOperation.setLastEndTime(endTime);
+        List<PatMedOperation> patMedOperations = chMapper.selectOperList(patMedOperation);
+        log.info("鍚屾鎵嬫湳淇℃伅鏁伴噺" + patMedOperations.size());
+        for (PatMedOperation operation : patMedOperations) {
+            try {
+                PatMedOperation oper = new PatMedOperation();
+                oper.setOpid(operation.getOpid());
+                List<PatMedOperation> patMedOperations1 = patMedOperationMapper.selectPatMedOperationList(oper);
+                if (CollectionUtils.isNotEmpty(patMedOperations1)) {
+                    operation.setId(patMedOperations1.get(0).getId());
+                    operation.setUpdateTime(new Date());
+                    count += patMedOperationMapper.updatePatMedOperation(patMedOperations1.get(0));
+                    syncOperItem(operation);
+                } else {
+                    operation.setCreateTime(new Date());
+                    count += patMedOperationMapper.insertPatMedOperation(operation);
+                    syncOperItem(operation);
+                }
+            } catch (Exception ex) {
+                log.info("鍚屾鎵嬫湳淇℃伅:" + ex.getMessage());
+            }
+        }
+        return count;
+    }
+
+    /**
+     * 鍚屾鎵嬫湳淇℃伅
+     *
+     * @param
+     * @return
+     */
+    private Integer syncOperItem(PatMedOperation operation) {
+        Integer count = 0;
+        PatMedOperationItem patMedOperationItem = new PatMedOperationItem();
+        patMedOperationItem.setOrgid(operation.getOrgid());
+        if(StringUtils.isNotEmpty(operation.getOpid())){
+            patMedOperationItem.setOpid(Long.valueOf(operation.getOpid()));
+            List<PatMedOperationItem> patMedOperationItems = chMapper.selectOperItemList(patMedOperationItem);
+            log.info("鍚屾鎵嬫湳璇︽儏淇℃伅鏁伴噺" + patMedOperationItems.size());
+            for (PatMedOperationItem operationItem : patMedOperationItems) {
+                try {
+                    PatMedOperationItem operItem = new PatMedOperationItem();
+                    operItem.setOpid(operationItem.getOpid());
+                    operItem.setOperationid(operationItem.getOperationid());
+                    List<PatMedOperationItem> patMedOperationItems1 = patMedOperationItemMapper.selectPatMedOperationItemList(operItem);
+                    if (CollectionUtils.isNotEmpty(patMedOperationItems1)) {
+                        operationItem.setId(patMedOperationItems1.get(0).getId());
+                        operationItem.setUpdateTime(new Date());
+                        count += patMedOperationItemMapper.updatePatMedOperationItem(operationItem);
+                    } else {
+                        operation.setCreateTime(new Date());
+                        count += patMedOperationItemMapper.insertPatMedOperationItem(operationItem);
+                    }
+                } catch (Exception ex) {
+                    log.info("鍚屾鎵嬫湳璇︽儏淇℃伅:" + ex.getMessage());
+                }
+            }
+        }
+        return count;
+    }
     @Override
     public Integer selectPatMedInhospList(PatMedInhosp patMedInhosp) {
         List<PatMedInhosp> patMedInhospList = chMapper.selectPatMedInhospList(patMedInhosp);
@@ -413,7 +497,7 @@
                 patArchiveMapper.insertPatArchiveSingle(patArchives.get(0));
                 patMedOuthosp1.setPatid(patArchives.get(0).getId());
             }
-            i = patMedOuthospMapper.insertPatMedOuthosp(patMedOuthosp1);
+            i = patMedOuthospService.insertPatMedOuthosp(patMedOuthosp1);
         }
 
         return i;

--
Gitblit v1.9.3