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