From 4488f711dbc01a8db6753907cae2ef4021dede68 Mon Sep 17 00:00:00 2001 From: FUYU <fuyu@prec-tech.com> Date: 星期三, 13 十二月 2023 16:30:27 +0800 Subject: [PATCH] 修改前备份 --- force-app/main/default/triggers/MaintenanceContractAssetTrigger.trigger | 68 +++++++++++++++++++++++++++++++-- 1 files changed, 63 insertions(+), 5 deletions(-) diff --git a/force-app/main/default/triggers/MaintenanceContractAssetTrigger.trigger b/force-app/main/default/triggers/MaintenanceContractAssetTrigger.trigger index 5233403..6bf7274 100644 --- a/force-app/main/default/triggers/MaintenanceContractAssetTrigger.trigger +++ b/force-app/main/default/triggers/MaintenanceContractAssetTrigger.trigger @@ -1,7 +1,7 @@ /** * Maintenance_Contract_Asset__c 銇� Reapire__c锛圓ccount绲岀敱锛夈伅涓诲緭闁總銆併仢銇伨銇緐pdate OK */ -trigger MaintenanceContractAssetTrigger on Maintenance_Contract_Asset__c ( after insert, after delete ) { +trigger MaintenanceContractAssetTrigger on Maintenance_Contract_Asset__c ( before insert, before update ) { System.debug( '-----+MaintenanceContractAssetTrigger start'); @@ -10,13 +10,67 @@ // ---------------------------------------------------------------------- // 鍓嶅嚘鐞� - Set<Id> assetIds = new Set<Id>(); + // Set<Id> assetIds = new Set<Id>(); // Set<Id> serviceIds = new Set<Id>(); - for ( Maintenance_Contract_Asset__c local : ( Trigger.isInsert ? Trigger.New : Trigger.old)) { - assetIds.add( local.Asset__c); -// serviceIds.add( local.Maintenance_Contract__c); + + List<String> locallastList = new List<String>(); + List<String> locallist = new List<String>(); + + for ( Maintenance_Contract_Asset__c local : Trigger.New) { + locallastList.add(local.LastMContract__c); + locallist.add(local.Maintenance_Contract__c); + } + List<Maintenance_Contract__c> llmc = [select id,contractNextYear_new__c,serviceContractNextYear_new__c + from Maintenance_Contract__c + where Id in :locallastList]; + List<Maintenance_Contract__c> lmc = [select id,RecordType.name from Maintenance_Contract__c where Id in :locallist]; + + Map<Id, Maintenance_Contract__c> map1 = new Map<Id, Maintenance_Contract__c>(); + Map<Id, Maintenance_Contract__c> map2 = new Map<Id, Maintenance_Contract__c>(); + + for (Maintenance_Contract__c mc:llmc ) { + if (!map1.containsKey(mc.id)) { + map1.put(mc.id,mc); + } + } + for (Maintenance_Contract__c mc:lmc ) { + if (!map2.containsKey(mc.id)) { + map2.put(mc.id,mc); + } + } + List<Maintenance_Contract__c> mcList = new List<Maintenance_Contract__c>(); + for ( Maintenance_Contract_Asset__c local : Trigger.New) { + // 2000/07/19 杩涚▼鐢熸垚鍣� - 鏉ュ勾鍚堝悓璁剧疆 + Maintenance_Contract__c mc1 = new Maintenance_Contract__c(); + Maintenance_Contract__c mc2 = new Maintenance_Contract__c(); + if (map1.containsKey(local.LastMContract__c)) { + mc1 = map1.get(local.LastMContract__c); + if (local.LastMContract_Gap__c <= 365 && mc1.contractNextYear_new__c == null) { + //鏇存柊涓婁竴鏈熺淮淇悎鍚岀殑鏉ュ勾缁翠慨鍚堝悓 + mc1.contractNextYear_new__c = local.Maintenance_Contract__c; + } + } + if (map2.containsKey(local.Maintenance_Contract__c)&&map1.containsKey(local.LastMContract__c)) { + mc2 = map2.get(local.Maintenance_Contract__c); + if (local.LastMContract_Gap__c <= 365 && mc1.serviceContractNextYear_new__c == null && mc2.RecordType.name == '鏈嶅姟鍚堝悓') { + //鏇存柊涓婁竴鏈熺淮淇悎鍚岀殑鏉ュ勾鏈嶅姟鍚堝悓 + mc1.serviceContractNextYear_new__c = local.Maintenance_Contract__c; + } + } + System.debug( '娣诲姞mc1='+mc1); + // System.debug( 'mc1.length='+mc1.length()); + // system.assertEquals(mc1,null); + if (mc1.id!=null && !mcList.contains(mc1)){ + + mcList.add(mc1); + } + } + System.debug( '寮�濮嬫洿鏂�'+mcList); + if (mcList!=null&&mcList.size()!=0) { + update mcList; } + // 鍑︾悊瀵捐薄銇ㄣ仾銈嬩慨鐞嗕竴瑕с倰寰椼倠 // List<Repair__c> repairList = [SELECT Id, SERVICE_CONTRACT_JUDEGE_DAY__C, Maintenance_Contract__c FROM Repair__C WHERE Delivered_Product__c IN :assetIds]; // 淇悊銈掓洿鏂般仚銈屻伆銆佷慨鐞嗐伄Trigger銇倛銇c仸銆佷慨鐞嗐伄銈点兗銉撱偣銈炽兂銉堛儵銈儓闋呯洰銇�ゃ亴銈汇儍銉堛仌銈屻倠 @@ -28,6 +82,10 @@ // ---------------------------------------------------------------------- // 銇撱亾銇俱仹銆併偟銉笺儞銈广偝銉炽儓銉┿偗銉堥爡鐩倰鑷嫊鐨勩伀鏇存柊銇欍倠銉偢銉冦偗 // ---------------------------------------------------------------------- + + + + System.debug( '-----+MaintenanceContractAssetTrigger end'); -- Gitblit v1.9.1