From bfca7a84bec815da594f1d12558535ed06d2490b Mon Sep 17 00:00:00 2001
From: 沙世明 <shashiming@prec-tech.com>
Date: 星期二, 13 九月 2022 09:57:32 +0800
Subject: [PATCH] 本地提交备份

---
 force-app/main/default/classes/RepairAgainAnHandler.cls |  119 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 117 insertions(+), 2 deletions(-)

diff --git a/force-app/main/default/classes/RepairAgainAnHandler.cls b/force-app/main/default/classes/RepairAgainAnHandler.cls
index fb19855..dbe415b 100644
--- a/force-app/main/default/classes/RepairAgainAnHandler.cls
+++ b/force-app/main/default/classes/RepairAgainAnHandler.cls
@@ -3,7 +3,6 @@
     private Map<Id, RepairAgainAn__c> oldMap;
     private List<RepairAgainAn__c> newList;
     private List<RepairAgainAn__c> oldList;
-
     public RepairAgainAnHandler() {
 		this.newMap = (Map<Id, RepairAgainAn__c>) Trigger.newMap;
         this.oldMap = (Map<Id, RepairAgainAn__c>) Trigger.oldMap;
@@ -13,12 +12,56 @@
 
     protected override void beforeInsert() {
         setPhotoImgText();
+        setRepairAgainName();
     }
     protected override void beforeUpdate() {
         setPhotoImgText();
+        setStatusChange();
     }
-    public static Set<Id> RA_Ids = new Set<Id>();
+
+    protected override void afterUpdate(){
+        submitRepair();
+    }
     
+    public static Set<Id> RA_Ids = new Set<Id>();
+
+    //鍐嶆敞鍐屽垎鏋� 闇�姹� 鏂板瀛楁 20220811 sx start
+    public static List<Id> openRepairAgainRepairIds = new List<Id>();
+    public static List<Id> finalRepairAgainRepairIds = new List<Id>();
+    //鍐嶆敞鍐屽垎鏋� 闇�姹� 鏂板瀛楁 20220811 sx end
+    
+    
+    private void setRepairAgainName() {
+
+        Set<Id> repairSet = new Set<Id>();
+
+        for(RepairAgainAn__c ra : newList){
+            repairSet.add(ra.Repair__c);
+        }
+
+        Map<Id,Repair__c> repairMap = new Map<Id,Repair__c>([SELECT Id,Name, (select Id from reparirAgain01__r) from Repair__c where id in :repairSet]);
+
+        for(RepairAgainAn__c ra : newList){
+
+            if(repairMap.containsKey(ra.Repair__c)){
+
+                Integer repairSize = repairMap.get(ra.Repair__c).reparirAgain01__r.size();
+
+                String repairSizeString = '000' + repairMap.get(ra.Repair__c).reparirAgain01__r.size();
+
+                String cutString = repairSizeString.substring(repairSizeString.length()-3, repairSizeString.length());
+
+                if(repairSize == 0) {
+                    ra.Name = repairMap.get(ra.Repair__c).Name + '_001';
+                }else{
+                    ra.Name = repairMap.get(ra.Repair__c).Name + '_' + cutString;
+                }
+            }
+        }
+
+    }
+
+
     private void setPhotoImgText() {
         for (RepairAgainAn__c ra : newList) {
             System.debug('ra.Dectect_Picture1__c2:' + ra.Dectect_Picture1__c);
@@ -170,4 +213,76 @@
             }
         }
     }
+
+    public void setStatusChange() {
+        Map<String,id> rtmaps = new Map<String,id>();
+        List<RecordType> rtIds = [SELECT Id,Name FROM RecordType where SobjectType='RepairAgainAn__c'];
+
+        Date todayTemp = Date.today();
+        for (RecordType rt : rtIds) {
+           rtmaps.put(rt.Name, rt.Id);
+        }
+        for (RepairAgainAn__c raa : newList) {
+            RepairAgainAn__c raaOld = oldMap.get(raa.id);
+            //鐘舵�佸彉鏇翠负鑽夋涓�
+            if (String.isBlank(raa.RepairAgain_Status__c)) {
+                raa.RepairAgain_Status__c = '鑽夋涓�';
+            }
+
+            //褰揜C鐨勫唴瀹瑰~鍐欏畬姣�
+            if(raa.RepairAgain_Status__c == 'RC濉啓瀹屾瘯' && raaOld.RepairAgain_Status__c != 'RC濉啓瀹屾瘯') {
+                raa.RecordTypeId = rtmaps.get('2.OSH');
+                // 鍙戣捣鍐嶆敞鍐屽垎鏋愭椂闂�
+                raa.Start_RepairAgainAn_Day__c = todayTemp;
+                // TODO 鍜孲AP浜や簰  OPEN
+                openRepairAgainRepairIds.add(raa.Repair__c);
+            }
+
+            //褰揙SH鍙楃悊
+            if(raa.RepairAgain_Status__c == 'OSH鍙楃悊' && raaOld.RepairAgain_Status__c != 'OSH鍙楃悊') {
+                // OSH鍙楃悊鏃�
+                raa.OSH_Accept_Day__c = todayTemp;
+            }
+
+            //褰揙SH鍐呭濉啓瀹屾瘯
+            if(raa.RepairAgain_Status__c == 'OSH濉啓瀹屾瘯' && raaOld.RepairAgain_Status__c != 'OSH濉啓瀹屾瘯') {
+                raa.RecordTypeId = rtmaps.get('3.OCSM');
+                // OSH鍒ゅ畾缁撹纭鏃�
+                raa.OSH_End_Day__c = todayTemp;
+            }
+
+            //褰揙CSM璺熻繘瀹屾瘯
+            if(raa.RepairAgain_Status__c == '瀹屾瘯' && raaOld.RepairAgain_Status__c != '瀹屾瘯') {
+                raa.RecordTypeId = rtmaps.get('4.Final瀹屾瘯');
+                // OCSM鍒ゅ畾缁撹纭鏃�
+                raa.OCSM_End_Day__c = todayTemp;
+                // TODO 鍜孲AP浜や簰
+                finalRepairAgainRepairIds.add(raa.Repair__c);
+            }
+        }
+    }
+
+    public void submitRepair(){
+
+        if(openRepairAgainRepairIds.size() > 0 || finalRepairAgainRepairIds.size() > 0){
+
+            BatchIF_Log__c iflog = new BatchIF_Log__c();
+                iflog.Type__c = 'NFM103';
+                iflog.Log__c  = 'callout start\n';
+                insert iflog;
+
+            if(openRepairAgainRepairIds.size() > 0) {
+                //鍏宠仈涓�涓猳pen鐨勫啀淇悊鍒嗘瀽锛屼紶X
+                NFM103Controller.callout(iflog.Id, openRepairAgainRepairIds,'X');
+            }
+
+            if(finalRepairAgainRepairIds.size() > 0) {
+                //鍏宠仈鍐嶄慨鐞嗗垎鏋愬畬姣曪紝浼燜
+                NFM103Controller.callout(iflog.Id, finalRepairAgainRepairIds,'F');
+            }
+
+        }
+       
+
+    }
 }
\ No newline at end of file

--
Gitblit v1.9.1