高章伟
2022-02-24 81b0892b8c6aa064a9e8dbca09a8f7f1eb6de40e
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
global class ProRegisterBatch implements Database.Batchable<sObject> {
    String regId;
 
    Boolean IsNeedExecute = false; // 2021-03-05  mzy  WLIG-BYHD79  SFDC环境batch合并调查  是否符合执行条件
    
    global ProRegisterBatch(String regId) {
        this.regId = regId;
    }
 
    global ProRegisterBatch() {
        
    }
 
    // 2021-03-05  mzy  WLIG-BYHD79  SFDC环境batch合并调查  start
    global ProRegisterBatch(Boolean NeedExecute) {
        this.IsNeedExecute = NeedExecute;
    }
    // 2021-03-05  mzy  WLIG-BYHD79  SFDC环境batch合并调查  end
    
    global Database.QueryLocator start(Database.BatchableContext BC) {
        
        if (String.isBlank(this.regId)) {
            return Database.getQueryLocator([select id, RegisterNoStatus__c 
                                               from Product_Register__c 
                                              where RegisterNoStatus__c = '有效'
                                                and ValidTo__c <= :Date.Today()]);
 
        } else {
            return Database.getQueryLocator([select id, RegisterNoStatus__c 
                                               from Product_Register__c 
                                              where RegisterNoStatus__c = '有效'
                                                and id = :this.regId
                                                and ValidTo__c <= :Date.Today()]);
        }
    }
 
       global void execute(Database.BatchableContext BC, List<Product_Register__c> dcList) {
        List<Product_Register__c> updList = main(dcList);
        if (updList.size() > 0) update updList;
    }
    
    public static List<Product_Register__c> main(List<Product_Register__c> dcList) {     
 
        List<Product_Register__c> updList = new List<Product_Register__c>();
 
        for (Product_Register__c reg : dcList) {
 
            reg.RegisterNoStatus__c = '失效-不再注册';
 
            updList.add(reg);
        }
        return updList;
    }
 
    global void finish(Database.BatchableContext BC) {
 
        //2021-03-10  mzy  WLIG-BYHD79  SFDC环境batch合并调查  start
        if(!Test.isRunningTest() &&IsNeedExecute==true){
              //batch里调用下一个batch时,希望跟原有的Schedule里面传的条数保持一致
            Id execBTId = Database.executebatch(new RentalApplyDailyBatch(true),100);
        }
        //2021-03-10  mzy  WLIG-BYHD79  SFDC环境batch合并调查 end
        
    }
    
}