沙世明
2023-03-22 e4185f503d973b28f95725908e3fad155cfbf088
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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
/**
     * @Author    lijinhuan
     * @DateTime  2022-12-14T17:01:14+0800
     * 测试类:FrameNumUploadControllerTest
*/
public without sharing class FrameNumManageHandler  extends Oly_TriggerHandler {
 
    private Map<Id, FrameNumManage__c > newMap;
    private Map<Id, FrameNumManage__c > oldMap;
    private List<FrameNumManage__c > newList;
    private List<FrameNumManage__c > oldList;
    public FrameNumManageHandler() {
        this.newMap = (Map<Id, FrameNumManage__c >) Trigger.newMap;
        this.oldMap = (Map<Id, FrameNumManage__c >) Trigger.oldMap;
        this.newList = (List<FrameNumManage__c >) Trigger.new;
        this.oldList = (List<FrameNumManage__c >) Trigger.old;
    }
    protected override void afterInsert() {
        // 进口单证 增加发货日设置 start
        updateAsset();
        // 进口单证 增加发货日设置 end
    }
    protected override void afterUpdate() {
        updateAsset();
    }
 
    protected override void beforeInsert() {
    }
    
    protected override void beforeUpdate() {
        IsChange();
    }
    private Void updateAsset(){
        Map<String,FrameNumManage__c> FrameNumManageMap = new Map<String,FrameNumManage__c>();
        for (FrameNumManage__c nObj : newList) {
            FrameNumManage__c oObj = oldMap != null ? oldMap.get(nObj.Id) : null;
            if( String.isNotBlank(nObj.Asset__c) 
            && ( oObj == null 
                ||  nObj.Asset__c != oObj.Asset__c 
                ||  nObj.ApplyList_Select__c != oObj.ApplyList_Select__c 
                ||  nObj.InspectionCard_Select__c != oObj.InspectionCard_Select__c
                ||  nObj.ApplyList__c != oObj.ApplyList__c
                ||  nObj.InspectionCard__c != oObj.InspectionCard__c
                ||  nObj.ScanDate__c != oObj.ScanDate__c
                ||  nObj.ScanDate_select__c  != oObj.ScanDate_select__c 
                ||  nObj.DeliveryDate__c != oObj.DeliveryDate__c 
                ||  nObj.DeliveryDate_select__c != oObj.DeliveryDate_select__c 
                ) 
            ){
                FrameNumManageMap.put(nObj.Asset__c,nObj);
            }
        }
        if(FrameNumManageMap.size() > 0 ){
            List<Asset> AssetList = [select id,ApplyList__c,InspectionCard__c from Asset where id in :FrameNumManageMap.keySet()];
            List<Asset> upAssetList = new List<Asset>();
            for(Asset ass:AssetList){
                if( (ass.ApplyList__c == null ||
                    (ass.ApplyList__c != null && ass.ApplyList__c != FrameNumManageMap.get(ass.Id).ApplyList_NoHave__c))
                || (ass.InspectionCard__c == null || 
                    (ass.InspectionCard__c != null && ass.InspectionCard__c != FrameNumManageMap.get(ass.Id).InspectionCard_NoHave__c))
                ){
                    Asset tempAsset = new Asset();
                    tempAsset.Id = ass.Id;
                    if(ass.ApplyList__c == null ||
                    (ass.ApplyList__c != null && ass.ApplyList__c != FrameNumManageMap.get(ass.Id).ApplyList_NoHave__c)){
                        tempAsset.ApplyList__c = FrameNumManageMap.get(ass.Id).ApplyList_NoHave__c;
                    }
                    if(ass.InspectionCard__c == null || 
                    (ass.InspectionCard__c != null && ass.InspectionCard__c != FrameNumManageMap.get(ass.Id).InspectionCard_NoHave__c)){
                        tempAsset.InspectionCard__c = FrameNumManageMap.get(ass.Id).InspectionCard_NoHave__c;   
                    }
 
                    upAssetList.add(tempAsset);
                }
            }
            if(upAssetList.size() > 0){
                StaticParameter.EscapeVMCTrigger = true;
                update upAssetList;
                StaticParameter.EscapeVMCTrigger = false;
            }
        }
    }
    private Void IsChange(){ 
        for (FrameNumManage__c nObj : newList) {
            FrameNumManage__c oObj = oldMap.get(nObj.Id);
            if((nObj.ApplyList__c != oObj.ApplyList__c)
            ||(nObj.InspectionCard__c != oObj.InspectionCard__c)
             ){
                nObj.IsChange__c = true;
            }
        }
    }
}