public with sharing class RepairToPDFBatch implements Database.Batchable, Database.Stateful { public List ids; //add by rentongxiao 2020-09-27 start public String iflog_Id; public BatchIF_Log__c rowDataSFDC; public List repairIds; public String statu; //add by rentongxiao 2020-09-27 end //add by rentx 2020-10-27 通过月份同步R3数据 public Integer monthNum; public RepairToPDFBatch(Integer tempmonth) { ids = new List(); monthNum = tempmonth; } //add by rentx 2020-10-27 通过月份同步R3数据 public RepairToPDFBatch(List argsIds) { ids = new List(); ids = argsIds; //add by rentx 2020-10-27 start repairIds = argsIds; //add by rentx 2020-10-27 end } //add by rentongxiao 2020-09-27 start public RepairToPDFBatch(String iflog_Id,BatchIF_Log__c rowDataSFDC, List repairIds,String statu) { ids = repairIds; this.iflog_Id = iflog_Id; this.rowDataSFDC = rowDataSFDC; this.repairIds = repairIds; this.statu = statu; } //add by rentongxiao 2020-09-27 end public RepairToPDFBatch(){ ids = new List(); monthNum = null; statu = ''; } public Database.QueryLocator start(Database.BatchableContext BC) { String staSql = 'select id,name,GeneratedPDFField__c,ProblemDescription__c,ASReportedCodeAC__c,AE_DetermineResult__c,PAE_Determine__c,PAE_DetermineAC__c from Repair__c where GeneratedPDFField__c = null'; System.debug('ids.size()'+ids.size()); if (ids.size() > 0) { staSql += ' and id in :ids'; }else{ // staSql += ' where AsyncData__c = false and Complaint_Number__c = null '; staSql += ' and AsyncData__c = false and Complaint_Number__c = null '; staSql += ' and Repair_Shipped_Date__c != null and AE_DetermineResult__c != null and PAE_Determine__c != null and PAE_DetermineAC__c != null '; } if ((ids.size() == 0 || ids == null) && monthNum != null) { Date startDay = Date.newInstance(2020,monthNum,1); Date tempDay = Date.newInstance(2020,monthNum+1, 1); Date endDay = tempDay.addDays(-1); staSql += ' and SAP_Transfer_day__c >= :startDay and SAP_Transfer_day__c <= :endDay'; } // if (ids.size() > 0) { // staSql += ' and id in :ids'; // } System.debug('staSQL'+staSql); return Database.getQueryLocator(staSql); } public void execute(Database.BatchableContext BC, List repList) { System.debug('temp ---repList.size()='+repList.size()); // 上线后课题 33 从IISE过来,直接同步到EtQ的时候,出现报错。需要修改逻辑。 start List reList = new List(); // 上线后课题 33 从IISE过来,直接同步到EtQ的时候,出现报错。需要修改逻辑。 end // R1的情况需要考虑 // R3 FUC是空或者包含UseRSA 不发送ETQ 20201203 for (Repair__c re : repList) { if (!((re.AE_DetermineResult__c == 'nonAE' && re.PAE_Determine__c == 'nonPAE' && re.PAE_DetermineAC__c == 'nonPAE') && (re.ASReportedCodeAC__c == null || re.ASReportedCodeAC__c.indexof('UseRSA') >= 0))) { reList.add(re); } } RepairAndQISToPDFController.generateAttachment(reList); } public void finish(Database.BatchableContext BC) { System.debug('finish'); // Database.executeBatch(new QISToPDFBatch(),50); // Database.executeBatch(new RepairSendToETQBatch(iflog_Id, rowDataSFDC,repairIds,statu),50); Database.executeBatch(new RepairSendToETQBatch(iflog_Id, rowDataSFDC,repairIds,statu,monthNum),1); // Database.executeBatch(new RepairSendToETQBatch(),50); } }