张宇恒
2022-12-23 b4b8a2df1f478030bb321b6ac558f13fbbffbb07
force-app/main/default/classes/RepairHandler.cls
@@ -98,9 +98,35 @@
            // 包含报修子单的修理 修理单状态编号变更发送AWS Start
            if (Trigger.isUpdate) {
                Repair__c oldrpr = oldMap.get(nObj.Id);
                if (String.isNotBlank(nObj.RepairSubOrder__c) && nObj.RepairOrderStatusCode__c != oldrpr.RepairOrderStatusCode__c) {
                    nObj.AwaitToSendAWS__c = true;
                }
                // 2022/04/20 zhangyuheng  update start
                if ((nObj.OTSRepairOrder__c == oldrpr.OTSRepairOrder__c) && // OTS订单号发生改变,即时发送AWS
                    (nObj.DeliveryLogisticsNo__c == oldrpr.DeliveryLogisticsNo__c) && // 送修物流单号发生改变,即时发送AWS
                    (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     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) {
                        nObj.AwaitToSendAWS__c = true;
                    }
                    // 2022/04/20 zhangyuheng  update start
                }
                // 2022/04/20 zhangyuheng  update end
            }
            // 包含报修子单的修理 修理单状态编号变更发送AWS End
            
@@ -152,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) {
@@ -165,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 = '已转修理';