高章伟
2023-03-03 d8dc84a3d56df839895f1c417a4d9cbee763d262
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
/**
 * Ver1.0 2022-05-17 ssm
 * 
 * OBSAP项目-报价委托功能修改
 * 
 * after update:
 *     报价委托已完成时,查询标准任务里关联的未完成任务,并更新状态
 */
public without sharing class QuoteIraiHandler extends Oly_TriggerHandler  {
 
    private Map<Id, QuoteIrai__c> newMap;
    private Map<Id, QuoteIrai__c> oldMap;
    private List<QuoteIrai__c> newList;
    private List<QuoteIrai__c> oldList;
 
    public QuoteIraiHandler() {
        this.newMap = (Map<Id, QuoteIrai__c>) Trigger.newMap;
        this.oldMap = (Map<Id, QuoteIrai__c>) Trigger.oldMap;
        this.newList = (List<QuoteIrai__c>) Trigger.new;
        this.oldList = (List<QuoteIrai__c>) Trigger.old;
    }
 
    protected override void afterUpdate() {
        task_changeto_finish();
    }
 
    // 报价委托已完成时,查询标准任务里关联的未完成任务,并更新状态
    private void task_changeto_finish() {
        List<String> ids = new List<String>();
        // 循环获得已完成的报价委托
        for (QuoteIrai__c irai : this.newList) {
            QuoteIrai__c irai_old = this.oldMap.get(irai.Id);
            if (irai_old != null && irai.QuoteIrai_Status__c != irai_old.QuoteIrai_Status__c && irai.QuoteIrai_Status__c == '更新完毕') {
                ids.add(irai.Id);
            }
        }
        if (ids.size() > 0) {
            List<Task> tasks = [select Id, Status, QuoteIraiId__c from Task where Status != '完了' and QuoteIraiId__c in :ids];
            if (tasks != null && tasks.size() > 0) {
                for (Task task : tasks) {
                    task.Status = '完了';
                }
 
                update tasks;
            }
        }
    }
}