global class ASOTDeleteRealBatch implements Database.Batchable,Database.Stateful { public String query; private BatchIF_Log__c iflog; global ASOTDeleteRealBatch() { this.query = query; } global Database.QueryLocator start(Database.BatchableContext bc) { system.debug('执行start'); iflog = new BatchIF_Log__c(); iflog.Type__c = 'PushNotification'; iflog.Log__c = 'CoverageTargetHPBatch start\n'; iflog.ErrorLog__c = ''; insert iflog; query = 'select id,Renew_Finish_Else__c,Renew_Finish_Correlation_Lightsource__c,Renew_Finish_Rigid_Mirror_3__c,Renew_Finish_Rigid_Mirror_1__c,' +' Finish_Correlation_Lightsource__c,Finish_Rigid_Mirror_2__c,Finish_Rigid_Mirror_1__c ' +' from Account_Service_Of_Target__c ' +' where (Finish_Asset__c!=0 and Finish_Asset__c!=null) or (Finish_Coverage_Asset__c != 0 and Finish_Coverage_Asset__c!=null)'; return Database.getQueryLocator(query); } global void execute(Database.BatchableContext BC, list asotList) { List asotL = new List(); // 清空客户-目标的实际设备数 for (Account_Service_Of_Target__c asot : asotList) { asot.Renew_Finish_Else__c = 0; asot.Renew_Finish_Correlation_Lightsource__c = 0; asot.Renew_Finish_Rigid_Mirror_3__c = 0; asot.Renew_Finish_Rigid_Mirror_1__c = 0; asot.Finish_Correlation_Lightsource__c = 0; asot.Finish_Rigid_Mirror_2__c = 0; asot.Finish_Rigid_Mirror_1__c = 0; asotL.add(asot); } update asotL; } global void finish(Database.BatchableContext BC) { iflog.Log__c += '\nASOTDeleteRealBatch end'; String tmp = iflog.ErrorLog__c; if (tmp.length() > 65000) { tmp = tmp.substring(0, 65000); tmp += ' ...have more lines...'; iflog.ErrorLog__c = tmp; } update iflog; EquipmentRealCoverageRealBatch batch1 = new EquipmentRealCoverageRealBatch(); Database.executeBatch(batch1); EquipmentRenewMoleculeBatch batch2 = new EquipmentRenewMoleculeBatch(); Database.executeBatch(batch2); } }