黄千龙
2023-02-02 cd730d0b1a775abacfba06003bb58327d5d1fb3c
force-app/main/default/triggers/Repair.trigger
@@ -1,7 +1,9 @@
trigger Repair on Repair__c (before insert, after insert, before update, after update, after delete, before delete) {
    if(Test.isRunningTest()||UserInfo.getUserId()!=System.Label.ByPassTrigger){
    RepairHandler handler = new RepairHandler();
    handler.run();
    System.debug( '-----: trigger start');
        test();
    if ( Trigger.isBefore && Trigger.isUpdate) {
        RepairTrigger.CheckUpdate(Trigger.old, Trigger.newMap);
    }
@@ -18,14 +20,23 @@
    //wangweipeng  20210727   end
    if ((Trigger.isAfter && Trigger.isInsert) || (Trigger.isAfter && Trigger.isUpdate) || (Trigger.isAfter && Trigger.isDelete)) {
            // if(!(System.isFuture()||System.isBatch())){// Add By Lijun 20220303 to avoid mutiple execute
        NFM103Controller.NFM103Trigger(Trigger.new, Trigger.newMap, Trigger.old, Trigger.oldMap);
        NFM603Controller.NFM603Trigger(Trigger.new, Trigger.newMap, Trigger.old, Trigger.oldMap);
        RepairTrigger.UpdateAssert(Trigger.new, Trigger.newMap, Trigger.old, Trigger.oldMap);
            // }
        }
        if( Trigger.isBefore && Trigger.isUpdate){
    }
    // ----------------------------------------------------------------------
    // ここより、修理のサービスコントラクト項目を自動的に更新するロジック
    // ----------------------------------------------------------------------
    if ( Trigger.isBefore && (Trigger.isInsert || Trigger.isUpdate)) {
            //先款后修-修理增加先款标识 thh 20220322 start
            RepairTrigger.AdvancePaymentFlagUpsert(Trigger.new, Trigger.newMap, Trigger.old, Trigger.oldMap);
            //先款后修-修理增加先款标识 thh 20220322 end
        // 納入機器IDを一意に格納する Setです。
        Set<ID> assetIds = new Set<Id>();
@@ -144,11 +155,31 @@
                            //如果最大大修次数大于0,并且已经大修次数 大于或等于 最大大修次数,那么不仅不赋值维修合同信息,而且清空当前信息
                            if (middleTable.Series_MaxRepairCount_F__c > 0 && middleTable.Series_RepairCount_F__c >= middleTable.Series_MaxRepairCount_F__c) {
                                //不赋值维修合同信息,而且清空当前信息
                                repair.Maintenance_Contract__c = null;
                                repair.MaintenanceContractType__c = null;
                                    //URF限次合同2期 LY 20220926 start
                                    // repair.Maintenance_Contract__c = null;
                                    // repair.MaintenanceContractType__c = null;
                                    repair.Maintenance_Contract__c = middleTable.Maintenance_Contract__c;
                                    repair.MaintenanceContractType__c = middleTable.Maintenance_Contract__r.RecordType.Name;
                                    //URF限次合同2期 LY 20220926 end
                            }
                        }
                        //限次合同产品信息维护相关 FXK 2021/03/05 END
                            //上限合同 LY 20230117 start
                            //如果记录类型是服务任务并且是上限合同,那么判断超过上限和到达上限标志
                            if (middleTable.Maintenance_Contract__r.RecordType.DeveloperName == 'NewMaintenance_Contract'
                                    && middleTable.Maintenance_Contract__r.Limit_Price__c == true) {
                                //新建修理即无修理报价 维修合同上的修理剩余金额如果小于等于0 那么【超过合同上限】为true
                                if (middleTable.Maintenance_Contract__r.Remaining_Amount__c <= 0 && (repair.Repair_Quotation_Id__c==null || repair.Repair_Quotation_Id__c=='')) {
                                    repair.ZFLAG_CGSX__c = true;
                                }
                                //维修合同上的修理剩余金额如果大于0,且【剩余金额】减去修理报价的计入【合同消费率的修理金额】小于等于0,那么【到达上限】为true
                                if (middleTable.Maintenance_Contract__r.Remaining_Amount__c >0 && (repair.Repair_Quotation_Id__c!=null || repair.Repair_Quotation_Id__c!='')
                                    && (middleTable.Maintenance_Contract__r.Remaining_Amount__c -repair.Repair_Quotation_Id__r.Usage_Ratio_Price__c)<=0
                                    ) {
                                    repair.ZFLAG_SX__c = true;
                                }
                            }
                            //上限合同 LY 20230117 end
                        needsetnull = false;
                        System.debug( '-----:自动带出维修合同22222');//把保有设备上的维修合同存到修理上
                        break;
@@ -277,7 +308,6 @@
    // ----------------------------------------------------------------------
    // ----------------------------------------------------------------------
    // これより、On-Callの「On-Call跟进结果」を更新するロジック
    // ----------------------------------------------------------------------
@@ -322,6 +352,12 @@
    // これより、备品借出申请の「修理最终检测日」を更新するロジック(更新后触发WorkFlow)
    // ----------------------------------------------------------------------
    if (Trigger.isAfter && Trigger.isUpdate) {
            System.debug( '-----: sendEmailByInspectionFailureCause start');
            //【委托】【QA部门】IISE多次同步课题 WLIG-CJJDAV  start
            RepairTrigger.sendEmailByInspectionFailureCause(Trigger.new, Trigger.newMap, Trigger.old, Trigger.oldMap);
            //【委托】【QA部门】IISE多次同步课题 WLIG-CJJDAV  end
        Map<String, Date> repairDateMap = new Map<String, Date>();
        List<String> targetRepairList = new List<String>();
        for (Repair__c repair : Trigger.New) {
@@ -349,5 +385,691 @@
    // ここまで、备品借出申请の「修理最终检测日」を更新するロジック
    // ----------------------------------------------------------------------
        // 2022-12-22   zyh   add   Start
        if (Trigger.isAfter && Trigger.isUpdate) {
            List < String > rprIds = new List < String > ();
            Map < Id, Id > rprIdMap = new Map < Id, Id > ();
            for (Repair__c rpr: Trigger.new) {
                Repair__c oldrpr = Trigger.oldMap.get(rpr.Id);
                // 修理有报修子单号,并且 待发送AWS为false 发送给AWS
                if (String.isNotBlank(rpr.RepairSubOrder__c) && !rpr.AwaitToSendAWS__c) {
                    if ((rpr.DescriptionName__c != oldrpr.DescriptionName__c)
                        || (rpr.InspectionResultFlag__c != oldrpr.InspectionResultFlag__c)
                        || (rpr.RepairReasonTrigger__c != oldrpr.RepairReasonTrigger__c)) {
                        if (NFM603Controller.NFM603_Ids.contains(rpr.Id) == false) {
                            NFM603Controller.NFM603_Ids.add(rpr.Id);
                            rprIdMap.put(rpr.Id, rpr.Id);
                            System.debug('111111111111111111112222222222');
                        }
                    }
                }
            }
            rprIds = rprIdMap.values();
            if (rprIds.size() > 0) {
                BatchIF_Log__c iflog = new BatchIF_Log__c();
                iflog.Type__c = 'NFM603';
                iflog.Log__c = 'callout start\n';
                insert iflog;
                // 2022-04-29     zyh      update     start
                if(UserInfo.getUserId().equals(System.Label.interfaceUserID)){
                    NFM603Controller.executefuture(iflog, rprIds);
                }else{
                    NFM603Controller.callout(iflog.Id, rprIds);
                }
                // 2022-04-29     zyh      update     end
            }
        }
        // 2022-12-22   zyh   add   END
    System.debug( '-----: trigger end');
}
    public 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++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
    }
}