force-app/main/default/classes/RepairHandler.cls | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
force-app/main/default/triggers/Repair.trigger | ●●●●● 补丁 | 查看 | 原始文档 | 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(){