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<id> CampaignID = new list<id>();
|
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<String> raIdList = new List<String>();
|
List<String> ra614List = new List<String>();
|
List<Rental_Apply_Equipment_Set_Detail__c> 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<AggregateResult> 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<id, list<string>> TemRentalAppliesMap = new map<id, list<string>>();
|
for (AggregateResult TemRentalApply : TemRentalApplies) {
|
list<string> temStringList = new list<string>();
|
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<Campaign> UpdateCampaignList = new list<Campaign>();
|
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<string> 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
|
}
|
}
|