/** * 系统每个月末最后一天运行Batch统计日报中对应这个客户以下项目 * 巡检次数、上门次数、点检次数、点检设备数、培训次数、维修委托书填写、更新日期 */ global class UpdateMonthlyContactBatch implements Database.Batchable { public string testid; public List idList; Boolean IsNeedExecute = false; // 2021-03-03 mzy WLIG-BYHD79 SFDC环境batch合并调查 是否符合执行条件 global UpdateMonthlyContactBatch() { idList = null; } global UpdateMonthlyContactBatch(List idlist) { this.idList = idlist; } global UpdateMonthlyContactBatch(string testid) { this.testid = testid; } //2021-03-03 mzy WLIG-BYHD79 SFDC环境batch合并调查 start global UpdateMonthlyContactBatch(Boolean needExecute) { idList = null; this.IsNeedExecute = needExecute; } //2021-03-03 mzy WLIG-BYHD79 SFDC环境batch合并调查 end global Database.QueryLocator start(Database.BatchableContext BC) { String sql = 'select id, Name,Campaign__c,pollingTime__c,VisitTime__c,InspectTime__c,InspectEquipmentTime__c,' + 'TeachingTime__c, ServiceBookInput__c from Contact where Campaign__c !=null '; if (idList != null ) { sql += ' and id in: idList'; } if (!string.isblank(testid)) { sql += ' and id =: testid'; } // 2021-03-03 mzy WLIG-BYHD79 SFDC环境batch合并调查 start // 每月 1日 不满足运行时间,可以使查询到的结果为空 //Date mon1stDate = Date.newInstance(today.year(), today.month(), 1); Integer executeMonth = Date.today().month(); Integer executeDay = Date.today().day(); Boolean inexecutionDateFlag = true; if (executeDay == 1){ inexecutionDateFlag = false; } if(inexecutionDateFlag && IsNeedExecute ==true){ sql = 'Select Id from Contact where Name = \'\' AND Name != \'\' '; } //2021-03-03 mzy WLIG-BYHD79 SFDC环境batch合并调查 end return Database.getQueryLocator(sql); } global void execute(Database.BatchableContext BC, List Contactlist) { List TMCList = new List(); String temp = ''; Integer m = 0; if (Date.today().day() == 1 && Date.today().month() != 1) { m = Date.today().month() - 1; } else if (Date.today().day() == 1 && Date.today().month() == 1) { m = 12; } else { m = Date.today().month(); } for (Contact clist : Contactlist) { InstructStatusMonthly__c TMC = new InstructStatusMonthly__c(); TMC.Name = clist.Name; TMC.Campaign__c = clist.Campaign__c; TMC.pollingTime__c = clist.pollingTime__c; TMC.VisitTime__c = clist.VisitTime__c; TMC.InspectTime__c = clist.InspectTime__c; TMC.InspectEquipmentTime__c = clist.InspectEquipmentTime__c; TMC.TeachingTime__c = clist.TeachingTime__c; TMC.ServiceBookInput__c = clist.ServiceBookInput__c; TMC.Contact__c = clist.id; Integer y = Date.today().month() == 1 ? Date.today().year() : Date.today().year() - 1; TMC.CreatedYear__c = String.valueOf(y); TMC.CreatedMonth__c = m + ''; TMC.CreatedDate__c = Date.today(); TMCList.add(TMC); } insert TMCList; } global void finish(Database.BatchableContext BC) { } }