From b4b8a2df1f478030bb321b6ac558f13fbbffbb07 Mon Sep 17 00:00:00 2001
From: 张宇恒 <bxyun0@163.com>
Date: 星期五, 23 十二月 2022 11:22:36 +0800
Subject: [PATCH] 修理接口新增触发条件

---
 force-app/main/default/classes/RepairHandler.cls |   26 ++++++++++++
 force-app/main/default/triggers/Repair.trigger   |   54 ++++++++++++++++++++++++++-
 2 files changed, 77 insertions(+), 3 deletions(-)

diff --git a/force-app/main/default/classes/RepairHandler.cls b/force-app/main/default/classes/RepairHandler.cls
index 083d2ac..fbdcb1e 100644
--- a/force-app/main/default/classes/RepairHandler.cls
+++ b/force-app/main/default/classes/RepairHandler.cls
@@ -104,12 +104,20 @@
                     (nObj.Returns_Product_waySAP__c == oldrpr.Returns_Product_waySAP__c) && // 閫佷慨鏂瑰紡鍙戠敓鏀瑰彉涓斿瘎閫佹棩鏈夊�硷紝鍗虫椂鍙戦�丄WS
                     (nObj.FSE_ApplyForRepair_time__c == oldrpr.FSE_ApplyForRepair_time__c) &&                   // FSE鐢宠淇悊鏃ュ彂鐢熸敼鍙橈紝鍗虫椂鍙戦�丄WS
                     (nObj.Repair_Ordered_DateTime__c == oldrpr.Repair_Ordered_DateTime__c) &&                   // 4.淇悊鍝丷C鍙楃悊鏃ワ紙灏忕▼搴忥級鍙戠敓鏀瑰彉锛屽嵆鏃跺彂閫丄WS
-                    (nObj.Repair_Firstestimated_Date__c == oldrpr.Repair_Firstestimated_Date__c) &&             // 鍒濇鎶ヤ环鏃ワ紙涓嶇敤锛夊彂鐢熸敼鍙橈紝鍗虫椂鍙戦�丄WS
+                    // (nObj.Repair_Firstestimated_Date__c == oldrpr.Repair_Firstestimated_Date__c) &&             // 鍒濇鎶ヤ环鏃ワ紙涓嶇敤锛夊彂鐢熸敼鍙橈紝鍗虫椂鍙戦�丄WS     2022-05-20   zyh    娉ㄩ噴
+                    (nObj.Repair_Estimated_Date__c == oldrpr.Repair_Estimated_Date__c) &&             // 鎶ヤ环鏃ワ紙涓嶇敤锛�--鐢ㄤ簬鍒濇鎶ヤ环鏃ュ彂鐢熸敼鍙橈紝鍗虫椂鍙戦�丄WS   2022-05-20   zyh   add
                     (nObj.Repair_Shipped_DateTime__c == oldrpr.Repair_Shipped_DateTime__c) &&                   // 11.RC淇悊鍝佽繑閫佹棩锛堝皬绋嬪簭锛夊彂鐢熸敼鍙橈紝鍗虫椂鍙戦�丄WS
                     (nObj.Repair_Final_Inspection_DateTime__c == oldrpr.Repair_Final_Inspection_DateTime__c) && // 10.鏈�缁堟娴嬫棩锛堝皬绋嬪簭锛夊彂鐢熸敼鍙橈紝鍗虫椂鍙戦�丄WS
                     (nObj.Agreed_DateTime__c == oldrpr.Agreed_DateTime__c) &&                                   //7.鐢ㄦ埛鍚屾剰鏃ワ紙灏忕▼搴忥級鍙戠敓鏀瑰彉锛屽嵆鏃跺彂閫丄WS
                     (nObj.Agreed_Date__c == oldrpr.Agreed_Date__c) &&                                           // 7.鐢ㄦ埛鍚屾剰鏃ュ彂鐢熸敼鍙橈紝鍗虫椂鍙戦�丄WS
+                    (nObj.Repair_Quotation_Id__c == oldrpr.Repair_Quotation_Id__c) &&                           // 鍚屾湡涓殑淇悊鎶ヤ环鍙戠敓鏀瑰彉锛屽嵆鏃跺彂閫丄WS   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>();
+        //鍏堣幏鍙栧瓙鍗昻obj 鐨刬d 鏀惧湪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 = '宸茶浆淇悊';
diff --git a/force-app/main/default/triggers/Repair.trigger b/force-app/main/default/triggers/Repair.trigger
index af40fcd..f96912e 100644
--- a/force-app/main/default/triggers/Repair.trigger
+++ b/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锛屽苟涓斿凡缁忓ぇ淇鏁� 澶т簬鎴栫瓑浜� 鏈�澶уぇ淇鏁帮紝閭d箞涓嶄粎涓嶈祴鍊肩淮淇悎鍚屼俊鎭紝鑰屼笖娓呯┖褰撳墠淇℃伅
                                 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');
+            //銆愬鎵樸�戙�怮A閮ㄩ棬銆慖ISE澶氭鍚屾璇鹃 WLIG-CJJDAV  start
+            RepairTrigger.sendEmailByInspectionFailureCause(Trigger.new, Trigger.newMap, Trigger.old, Trigger.oldMap);
+            //銆愬鎵樸�戙�怮A閮ㄩ棬銆慖ISE澶氭鍚屾璇鹃 WLIG-CJJDAV  end
+
             Map<String, Date> repairDateMap = new Map<String, Date>();
             List<String> targetRepairList = new List<String>();
             for (Repair__c repair : Trigger.New) {
@@ -355,7 +368,44 @@
         // ----------------------------------------------------------------------
         // 銇撱亾銇俱仹銆佸鍝佸�熷嚭鐢宠銇�屼慨鐞嗘渶缁堟娴嬫棩銆嶃倰鏇存柊銇欍倠銉偢銉冦偗
         // ----------------------------------------------------------------------
+        
 
+        // 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);
+                // 淇悊鏈夋姤淇瓙鍗曞彿锛屽苟涓� 寰呭彂閫丄WS涓篺alse 鍙戦�佺粰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(){

--
Gitblit v1.9.1