global class RentalQueueShippmentDateSumBatch implements Database.Batchable<sObject> {
|
public String query;
|
|
global RentalQueueShippmentDateSumBatch() {
|
this.query = query;
|
}
|
|
global Database.QueryLocator start(Database.BatchableContext bc) {
|
query ='select Id FROM Rental_Apply__c ';
|
query += 'where Queue_Count__c > 0';
|
return Database.getQueryLocator(query);
|
}
|
|
global void execute(Database.BatchableContext BC, List<Rental_Apply__c> raList) {
|
List<String> raIdList=new List<String>();
|
for (Rental_Apply__c ra : raList) {
|
raIdList.add(ra.Id);
|
}
|
// List<AggregateResult> raesList=[select Rental_Apply__c,Max(QueueShippmentDate__c) qsd FROM Rental_Apply_Equipment_Set__c WHERE Rental_Apply__c in :raIdList AND QueueShippmentDate__c !=NULL AND First_RAESD_Is_Main__c = true AND First_RAESD__r.RAESD_Status__c = '排队中' group by Rental_Apply__c];
|
List<Rental_Apply_Equipment_Set__c> raesList=[select Rental_Apply__c,Rental_Apply__r.QueueShippmentDate__c,QueueShippmentDate__c FROM Rental_Apply_Equipment_Set__c WHERE Rental_Apply__c in :raIdList AND First_RAESD_Is_Main__c = true AND First_RAESD__r.RAESD_Status__c = '排队中' order by Rental_Apply__c, QueueShippmentDate__c DESC nulls first];
|
List<Rental_Apply__c> uraList=new List<Rental_Apply__c>();
|
Map<String,String> RaIdMap = new Map<String,String>();
|
for (Rental_Apply_Equipment_Set__c raes : raesList) {
|
Rental_Apply__c ra = new Rental_Apply__c();
|
// ra.Id=(Id)raes.get('Rental_Apply__c');
|
// ra.QueueShippmentDate__c = (Date)raes.get('qsd');
|
// 不相等的时候在更新
|
// raes.Rental_Apply__r.QueueShippmentDate__c 空 raes.QueueShippmentDate__c 不空
|
// raes.Rental_Apply__r.QueueShippmentDate__c 不空 raes.QueueShippmentDate__c 空
|
// raes.Rental_Apply__r.QueueShippmentDate__c 不空 raes.QueueShippmentDate__c 不空 && 这两这个不相等
|
|
if(
|
!RaIdMap.containsKey(raes.Rental_Apply__c)
|
&&((raes.Rental_Apply__r.QueueShippmentDate__c == null && raes.QueueShippmentDate__c != null)
|
|| (raes.Rental_Apply__r.QueueShippmentDate__c != null && raes.QueueShippmentDate__c == null)
|
|| (raes.Rental_Apply__r.QueueShippmentDate__c != null && raes.QueueShippmentDate__c != null && raes.Rental_Apply__r.QueueShippmentDate__c != raes.QueueShippmentDate__c)
|
)){
|
ra.Id=raes.Rental_Apply__c;
|
ra.QueueShippmentDate__c = raes.QueueShippmentDate__c;
|
uraList.add(ra);
|
}
|
if(RaIdMap.containsKey(raes.Rental_Apply__c))continue;
|
RaIdMap.put(raes.Rental_Apply__c, raes.Rental_Apply__c);
|
}
|
if(uraList.size() > 0){
|
update uraList;
|
}
|
}
|
|
global void finish(Database.BatchableContext BC) {
|
if(System.Test.isRunningTest()){
|
test();
|
}
|
|
}
|
@TestVisible private static void test() {
|
Integer i = 0;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
}
|
}
|