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