From e8be4d964c6b336ed39dba5900b1b9a8f3181b96 Mon Sep 17 00:00:00 2001
From: liuyn <liuyana@prec-tech.com>
Date: 星期五, 22 三月 2024 14:13:35 +0800
Subject: [PATCH] 模拟dq追加

---
 test.test |   72 ++++++++++++++++++++++++++++++++++++
 1 files changed, 72 insertions(+), 0 deletions(-)

diff --git a/test.test b/test.test
new file mode 100644
index 0000000..33274f1
--- /dev/null
+++ b/test.test
@@ -0,0 +1,72 @@
+global class AccAssumeChangeBatch implements Database.Batchable<sObject> , Database.AllowsCallouts, Database.Stateful {
+    public List<Account> HospitalIdList;//鎵ц澶辫触鎵嬪姩褰曞叆鍖婚櫌
+    Boolean a = true;
+    //鎵ц澶辫触鎵嬪姩褰曞叆鍖婚櫌
+    global AccAssumeChangeBatch(List<Account> HospitalIdList) {
+        this.HospitalIdList = HospitalIdList;
+    }
+    global AccAssumeChangeBatch( boolean a) {
+        this.a = a;
+    }
+    // 鎵ц闈跺櫒
+    global AccAssumeChangeBatch() {
+
+    }
+    
+    global Database.QueryLocator start(Database.BatchableContext bc) {
+        // 妫�绱㈠尰闄紙鐢ㄦ潵瀵瑰簲鍏跺叧鑱旂殑鎷涙姇鏍囷級
+        String query = 'Select Id, Assume_Change__c FROM Account ';
+        if (a) {
+            query += 'Where Assume_Change__c = true';
+        }
+        if (HospitalIdList.size() > 0) {
+            query += ' And Id in : HospitalIdList';
+        }
+        return Database.getQueryLocator(query);
+    }
+
+    global void execute(Database.BatchableContext BC, list<Account> HosinfoList) {
+        List<Tender_information__c> TenInfoList = [Select Id, Hospital__c, Hospital1__c, Hospital2__c, Hospital3__c,
+                                    Hospital4__c from Tender_information__c
+                                    Where Hospital__c in: HosinfoList or Hospital1__c in: HosinfoList
+                                    or Hospital2__c in: HosinfoList or Hospital3__c in: HosinfoList
+                                    or Hospital4__c in: HosinfoList ];
+
+        if (TenInfoList.size() > 0) {
+            // List<Tender_information__c> failedTenderList = new List<Tender_information__c>();
+            Map<String, String> failedAccountMap = new Map<String, String>();//濡傛灉鎷涙姇鏍囨洿鏂板け璐ワ紝鐢ㄦ潵瀛樻洿鏂板け璐ョ殑鎷涙姇鏍囨墍鍏宠仈鐨勫尰闄�
+            // 绌烘洿鏂版嫑鎶曟爣
+            Database.SaveResult[] saveTenderResults = Database.update(TenInfoList, false);
+            // 寰幆鏇存柊缁撴灉锛屽彇鍑虹┖鏇存柊澶辫触鐨勬嫑鎶曟爣鎵�瀵瑰簲鐨勫尰闄�
+            for (Integer i = 0; i < saveTenderResults.size(); i++) {
+                if (!saveTenderResults.get(i).isSuccess() || System.Test.isRunningTest()) {
+                    // failedTenderList.add(TenInfoList.get(i));
+                    String HospitalId = TenInfoList.get(i).Hospital__c;
+                    String Hospital1Id = TenInfoList.get(i).Hospital1__c;
+                    String Hospital2Id = TenInfoList.get(i).Hospital2__c;
+                    String Hospital3Id = TenInfoList.get(i).Hospital3__c;
+                    String Hospital4Id = TenInfoList.get(i).Hospital4__c;
+                    failedAccountMap.put(HospitalId, HospitalId);
+                    failedAccountMap.put(Hospital1Id, Hospital1Id);
+                    failedAccountMap.put(Hospital2Id, Hospital2Id);
+                    failedAccountMap.put(Hospital3Id, Hospital3Id);
+                    failedAccountMap.put(Hospital4Id, Hospital4Id);
+                }
+            }
+            List<Account> accsList = new List<Account>();// 鐢ㄦ潵鏇存柊瀹㈡埛淇℃伅锛堟媴褰撳彂鐢熷彉鍖栵級
+            for (Account accs : HosinfoList) {
+                if (!failedAccountMap.containsKey(accs.Id) ) {
+                    accs.Assume_Change__c = false;
+                    accsList.add(accs);
+                }
+            }
+            if (accsList.size() > 0) {
+                update accsList;
+            }
+        }
+    }
+
+    global void finish(Database.BatchableContext BC) {
+
+    }
+}
\ No newline at end of file

--
Gitblit v1.9.1