张宇恒
2022-12-23 b4b8a2df1f478030bb321b6ac558f13fbbffbb07
修理接口新增触发条件
2个文件已修改
80 ■■■■■ 已修改文件
force-app/main/default/classes/RepairHandler.cls 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/triggers/Repair.trigger 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/RepairHandler.cls
@@ -104,12 +104,20 @@
                    (nObj.Returns_Product_waySAP__c == oldrpr.Returns_Product_waySAP__c) && // 送修方式发生改变且寄送日有值,即时发送AWS
                    (nObj.FSE_ApplyForRepair_time__c == oldrpr.FSE_ApplyForRepair_time__c) &&                   // FSE申请修理日发生改变,即时发送AWS
                    (nObj.Repair_Ordered_DateTime__c == oldrpr.Repair_Ordered_DateTime__c) &&                   // 4.修理品RC受理日(小程序)发生改变,即时发送AWS
                    (nObj.Repair_Firstestimated_Date__c == oldrpr.Repair_Firstestimated_Date__c) &&             // 初次报价日(不用)发生改变,即时发送AWS
                    // (nObj.Repair_Firstestimated_Date__c == oldrpr.Repair_Firstestimated_Date__c) &&             // 初次报价日(不用)发生改变,即时发送AWS     2022-05-20   zyh    注释
                    (nObj.Repair_Estimated_Date__c == oldrpr.Repair_Estimated_Date__c) &&             // 报价日(不用)--用于初次报价日发生改变,即时发送AWS   2022-05-20   zyh   add
                    (nObj.Repair_Shipped_DateTime__c == oldrpr.Repair_Shipped_DateTime__c) &&                   // 11.RC修理品返送日(小程序)发生改变,即时发送AWS
                    (nObj.Repair_Final_Inspection_DateTime__c == oldrpr.Repair_Final_Inspection_DateTime__c) && // 10.最终检测日(小程序)发生改变,即时发送AWS
                    (nObj.Agreed_DateTime__c == oldrpr.Agreed_DateTime__c) &&                                   //7.用户同意日(小程序)发生改变,即时发送AWS
                    (nObj.Agreed_Date__c == oldrpr.Agreed_Date__c) &&                                           // 7.用户同意日发生改变,即时发送AWS
                    (nObj.Repair_Quotation_Id__c == oldrpr.Repair_Quotation_Id__c) &&                           // 同期中的修理报价发生改变,即时发送AWS   2022-05-20  zyh   add
                    (nObj.engineerSendDate__c == oldrpr.engineerSendDate__c)
                    &&(nObj.SAP_not_accept_repair_result__c == oldrpr.SAP_not_accept_repair_result__c)
                    // 2022-12-22   zyh   add   start
                    && (nObj.DescriptionName__c == oldrpr.DescriptionName__c)
                    && (nObj.InspectionResultFlag__c == oldrpr.InspectionResultFlag__c)
                    && (nObj.RepairReasonTrigger__c == oldrpr.RepairReasonTrigger__c)
                    // 2022-12-22   zyh   add   end
                    ) {
                    // 2022/04/20 zhangyuheng  update end
                    if (String.isNotBlank(nObj.RepairSubOrder__c) && nObj.RepairOrderStatusCode__c != oldrpr.RepairOrderStatusCode__c) {
@@ -170,6 +178,17 @@
        // {Asset.Id: [Repair.Id]}
        Map<Id, List<Id>> assetsMap = new Map<Id, List<Id>>();
        List<RepairSubOrder__c> updateRepairSubOrderList = new List<RepairSubOrder__c>();
        //先获取子单nobj 的id 放在list 查询
        List<Id> repairSub = new List<Id>();
        Map<Id, String> repStatus = new Map<Id,String>();
        for (Repair__c nObj :newList ) {
            repairSub.add(nObj.RepairSubOrder__c);
         }
        for (RepairSubOrder__c rep : [ SELECT Id,Status__c FROM RepairSubOrder__c
                                       WHERE Id IN:repairSub]) {
            repStatus.put(rep.Id,rep.Status__c);
        }
        for (Repair__c nObj : newList) {
            Repair__c oObj;
            if (Trigger.isUpdate) {
@@ -183,8 +202,13 @@
                assetsMap.get(nObj.Delivered_Product__c).add(nObj.Id);
            }
            //判断状态 nobj.addError
            if (Trigger.isInsert) {
                if (String.isNotBlank(nObj.RepairSubOrder__c)) {
                    if(repStatus.get(nObj.RepairSubOrder__c)!='待处理' ){
                        nObj.addError('状态不是待处理,无法申请修理');
                        return;
                    }
                    RepairSubOrder__c repairSubOrder = new RepairSubOrder__c();
                    repairSubOrder.Id = nObj.RepairSubOrder__c;
                    repairSubOrder.Status__c = '已转修理';
force-app/main/default/triggers/Repair.trigger
@@ -26,6 +26,9 @@
                RepairTrigger.UpdateAssert(Trigger.new, Trigger.newMap, Trigger.old, Trigger.oldMap);
            // }
        }
        if( Trigger.isBefore && Trigger.isUpdate){
        }
        // ----------------------------------------------------------------------
        // ここより、修理のサービスコントラクト項目を自動的に更新するロジック
        // ----------------------------------------------------------------------
@@ -152,8 +155,12 @@
                                //如果最大大修次数大于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
@@ -329,6 +336,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) {
@@ -356,6 +369,43 @@
        // ここまで、备品借出申请の「修理最终检测日」を更新するロジック
        // ----------------------------------------------------------------------
        // 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(){