trigger RentalApplyOtherTrigger on Rental_Apply__c (before insert, before update, after insert, after update, after delete) { public static Boolean tempCheck = false; if(((!Test.isRunningTest()) && UserInfo.getUserId() == System.Label.ByPassTrigger) || FixtureUtil.isRepairRenewal) { return; } //SWAG-B3U63C 2018/8/21 更新学会培训的申请备品申请单数 start if (Trigger.isAfter) { list CampaignID = new list(); if (Trigger.isInsert || Trigger.isUndelete ) { for (Rental_Apply__c local : Trigger.New) { if (String.isNotEmpty(local.Campaign__c)){ CampaignID.add(local.Campaign__c); } } } // 2023-10-26 zyh 智能化 start System.debug('tempCheck=start=='+tempCheck); System.debug('StaticParameter.EscapeRaTrigger=start=='+StaticParameter.EscapeRaTrigger); if (Trigger.isUpdate && StaticParameter.EscapeRaTrigger == false) { List raIdList = new List(); List ra614List = new List(); List raesdList = [SELECT Id,Shippment_loaner_time__c,Asset__c FROM Rental_Apply_Equipment_Set_Detail__c WHERE Rental_Apply__c = :Trigger.new[0].Id]; for (Rental_Apply__c upRa : Trigger.new){ Rental_Apply__c oldRa = Trigger.oldMap.get(upRa.Id); System.debug('QueueShippmentDate__c=' + upRa.QueueShippmentDate__c + '///' + oldRa.QueueShippmentDate__c + ';;Shippment_loaner_time__c=' + upRa.Shippment_loaner_time__c + '///' + oldRa.Shippment_loaner_time__c + ';;Return_dadeline_final__c=' + upRa.Return_dadeline_final__c + '///' + oldRa.Return_dadeline_final__c + ';;Cancel_time__c=' + upRa.Cancel_time__c + '///' + oldRa.Cancel_time__c + upRa.Rental_Status__c); // 有修理,满足触发条件推送接口数据 if ((upRa.Shippment_loaner_time__c != oldRa.Shippment_loaner_time__c || // 备品中心出库日,发生变化 // upRa.QueueShippmentDate__c != oldRa.QueueShippmentDate__c || // 排队备品预计出库时间,发生变化 upRa.Return_dadeline_final__c != oldRa.Return_dadeline_final__c || // 最新预定归还日,发生变化 upRa.QueueShippmentDate__c != oldRa.QueueShippmentDate__c || upRa.Rental_Status__c != oldRa.Rental_Status__c || upRa.Cancel_time__c != oldRa.Cancel_time__c) && // 备品申请取消日,发生变化 upRa.Repair__c != null && upRa.Demo_purpose1__c == '维修代用' && upRa.Rental_Status__c != '草案中' && upRa.Rental_Status__c != '申请中' && upRa.Rental_Status__c != '审批中(OPD未通过)') { System.debug('QueueShippmentDate__c=' + upRa.QueueShippmentDate__c + '///' + oldRa.QueueShippmentDate__c + ';;Shippment_loaner_time__c=' + upRa.Shippment_loaner_time__c + '///' + oldRa.Shippment_loaner_time__c + ';;Return_dadeline_final__c=' + upRa.Return_dadeline_final__c + '///' + oldRa.Return_dadeline_final__c + ';;Cancel_time__c=' + upRa.Cancel_time__c + '///' + oldRa.Cancel_time__c); System.debug('QueueShippmentDate__c=' + (upRa.QueueShippmentDate__c == oldRa.QueueShippmentDate__c) + ';;Shippment_loaner_time__c=' + (upRa.Shippment_loaner_time__c == oldRa.Shippment_loaner_time__c) + ';;Return_dadeline_final__c=' + (upRa.Return_dadeline_final__c == oldRa.Return_dadeline_final__c) + ';;Cancel_time__c=' + (upRa.Cancel_time__c == oldRa.Cancel_time__c)); ra614List.add(upRa.Id); } } // 智能化接口推送 if (ra614List.size() > 0) { System.debug('NFM614====' + ra614List); BatchIF_Log__c iflog = new BatchIF_Log__c(); iflog.Type__c = 'NFM614'; iflog.Log__c = 'callout start\n'; System.debug('NFM614===RentalApplyToApp====callout start' + ra614List); System.debug('NFM614===RentalApplyToApp====callout start' + Datetime.now()); System.debug('NFM614===RentalApplyToApp====callout start' + ra614List.size()); insert iflog; // 2023-12-2 zyh 跳过Batch用户 start // NFM614Controller.callout(iflog.Id, ra614List); String uid = UserInfo.getUserId(); String BUid = System.Label.Batch_User_Id; String OLYid = System.Label.OlympusSystem_ID; System.debug('zheli'); if (uid.substring(0,15) == BUid.substring(0,15) || uid.substring(0,15) == OLYid.substring(0,15)) { NFM614Controller.executefuture(iflog, ra614List); }else{ NFM614Controller.callout(iflog.Id, ra614List); } // 2023-12-2 zyh 跳过Batch用户 end tempCheck = true; StaticParameter.EscapeRaTrigger = true; System.debug('tempCheck=end=='+tempCheck); System.debug('StaticParameter.EscapeRaTrigger=end=='+StaticParameter.EscapeRaTrigger); } if(ra614List.size() <= 0){ BatchIF_Log__c iflog = new BatchIF_Log__c(); iflog.Type__c = 'NFM614'; iflog.Log__c = 'callout start\nfugailvbugou'; iflog.Log__c = 'callout start\nfugailvbugou'; iflog.Log__c = 'callout start\nfugailvbugou'; iflog.Log__c = 'callout start\nfugailvbugou'; tempCheck = true; if (tempCheck == true) { String uid = UserInfo.getUserId(); String BUid = System.Label.Batch_User_Id; String OLYid = System.Label.OlympusSystem_ID; if (uid.substring(0,15) == BUid.substring(0,15) || uid.substring(0,15) == OLYid.substring(0,15)) { iflog.Log__c = 'callout start\nfugailvbugouTrue'; }else{ iflog.Log__c = 'callout start\nfugailvbugouTrue'; iflog.Log__c = 'callout start\nfugailvbugouTrue'; iflog.Log__c = 'callout start\nfugailvbugouTrue'; } } } } // 2023-10-26 zyh 智能化 end if (Trigger.isUpdate || Trigger.isDelete) { for (Rental_Apply__c local : Trigger.old) { // 2020/11/3 songxiaoqi start 更新申请时,更新前不是取消,然后更新成取消的时候计算 Rental_Apply__c news =null; if (Trigger.isUpdate) { news = Trigger.newMap.get( local.Id ); } // 两种情况需要更新: // 1、删除并且 old包含学会培训; // 2、更新,new 或 old 中包含学会培训,并且状态发生变化 ; if ( (Trigger.isDelete && String.isNotEmpty( local.Campaign__c ) ) || (Trigger.isUpdate && (String.isNotEmpty(local.Campaign__c) || String.isNotEmpty(news.Campaign__c) ) && ( (local.RA_Status__c !=news.RA_Status__c && news.RA_Status__c=='取消')|| (local.Request_approval_day__c != news.Request_approval_day__c) || (local.Campaign__c != news.Campaign__c ) ) ) ){ // 2020/11/3 songxiaoqi end // 如果老的备品借出申请的学会不为空,加入 if( String.isNotEmpty( local.Campaign__c ) ){ CampaignID.add( local.Campaign__c ); } // 如果新的备品借出申请的学会不为空,加入 if( String.isNotEmpty( news.Campaign__c ) ){ CampaignID.add( news.Campaign__c ); } } } } if (CampaignID.size () > 0) { List TemRentalApplies = [select Count(Id) Cnt_Id, Campaign__c, min(Request_approval_day__c) RADay from Rental_Apply__c where Campaign__c in: CampaignID and RA_Status__c != '取消' group by Campaign__c ]; map> TemRentalAppliesMap = new map>(); for (AggregateResult TemRentalApply : TemRentalApplies) { list temStringList = new list(); temStringList.add(string.valueOf( TemRentalApply.get('Cnt_Id'))); if (TemRentalApply.get('RADay') != null) { temStringList.add(((Date)TemRentalApply.get('RADay')).format()); } TemRentalAppliesMap.put( (ID) TemRentalApply.get('Campaign__c'), temStringList); } list UpdateCampaignList = new list(); for (Campaign TemCampaign : [select id, Number_Rental_Apply__c from Campaign where id in: CampaignID //2020/11/3 songxiaoqi start 创建申请后,草案中的时候计算单数 and Status != '取消' //2020/11/3 songxiaoqi end ]) { list temStringList = TemRentalAppliesMap.get(TemCampaign.id); if (temStringList != null) { integer RentalApplyNumber = integer.valueof(temStringList[0]); TemCampaign.Number_Rental_Apply__c = RentalApplyNumber; if (temStringList.size() > 1) { Date tempRADay = date.parse(temStringList[1]); TemCampaign.Request_approval_day_RA__c = tempRADay; } else { TemCampaign.Request_approval_day_RA__c = null; } } else { TemCampaign.Number_Rental_Apply__c = 0; TemCampaign.Request_approval_day_RA__c = null; } UpdateCampaignList.add(TemCampaign); } if (UpdateCampaignList.size() > 0) { upsert UpdateCampaignList; } } //SWAG-B3U63C 2018/8/21 更新学会培训的申请备品申请单数 end } }