From a25138b23fdaa05197fb25fdbb3202f122235611 Mon Sep 17 00:00:00 2001
From: 游畅 <youchang@prec-tech.com>
Date: 星期四, 28 四月 2022 16:22:34 +0800
Subject: [PATCH] 【委托】【优先】询问单相关修改

---
 force-app/main/default/classes/InquiryFormHandler.cls |  166 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 164 insertions(+), 2 deletions(-)

diff --git a/force-app/main/default/classes/InquiryFormHandler.cls b/force-app/main/default/classes/InquiryFormHandler.cls
index d0507c0..aa44703 100644
--- a/force-app/main/default/classes/InquiryFormHandler.cls
+++ b/force-app/main/default/classes/InquiryFormHandler.cls
@@ -27,11 +27,12 @@
     }
 
     protected override void afterInsert() {
-        //shareToOSCM();
+        //FSE涓绘媴褰撳叡浜�
+        shareToFSEMain();
     }
 
      protected override void afterUpdate() {
-        //shareToOSCM();
+        shareToFSEMain();
     }
      //Before鍑︾悊
     private void beforeExecute() {
@@ -54,7 +55,9 @@
                 nnObj.HospitalName__c = null;     //鍖婚櫌鍚�
                 nnObj.Hospital__c = null;         //鍖婚櫌
             }
+           
         }
+
         if (depIDList.size()>0) {
             accList  = [Select Id,OwnerId,
                             Hospital__c,Hospital__r.Name,
@@ -75,6 +78,8 @@
                 nObj.HospitalName__c = accMap.get(nObj.Hospital_Name__c).Hospital__r.Name;        //鍖婚櫌鍚�
                 nObj.Hospital__c = accMap.get(nObj.Hospital_Name__c).Hospital__c;                 //鍖婚櫌
             }
+
+
             
         	//浜у搧淇℃伅鐨勬嫾鎺�
             if (String.isNotBlank(nObj.Product1__c) && String.isNotBlank(nObj.Product1_Manual__c)){
@@ -99,8 +104,121 @@
             }
             
             nObj.Product1_Manual__c = '';
+             //20220419 you SWAG-CBUB2W start
+            //鍏紡鑰冩枃鏈�  缁橣SE鎷呭綋璧嬪��
+            System.debug(nObj.FSE_Owner_id__c+'==123=='+nObj.FSE_Owner__c);
+            if(nObj.FSE_Owner_id__c != nObj.FSE_Owner__c){
+                nObj.FSE_Owner__c = nObj.FSE_Owner_id__c;
+            }
+            if(Trigger.isInsert && (nObj.Request1__c.indexOf('鏈嶅姟瀵瑰簲') !=-1 || nObj.ServiceCorrespond__c ==true)){
+                nObj.Service_Status__c ='01.鏈窡杩�';
+            }
+            if(Trigger.isUpdate){
+
+                if((nObj.Request1__c != oldMap.get(nObj.Id).Request1__c && nObj.Request1__c.indexOf('鏈嶅姟瀵瑰簲') !=-1) || (nObj.ServiceCorrespond__c != oldMap.get(nObj.Id).ServiceCorrespond__c &&  nObj.ServiceCorrespond__c ==true)){
+                    if(String.isBlank(nObj.Service_Status__c)){
+                       nObj.Service_Status__c ='01.鏈窡杩�';
+                    }else{
+
+                    }
+                }else if( nObj.Request1__c.indexOf('鏈嶅姟瀵瑰簲') ==-1 && nObj.ServiceCorrespond__c ==false){
+                       nObj.Service_Status__c ='';
+                }
+            }
+            
+            //20220419 you SWAG-CBUB2W end
         }
     }
+    //20220419 you SWAG-CBUB2W start
+    private void shareToFSEMain() {
+         //瀛樻斁鐢ㄤ簬鏂板鐨勫叡浜暟鎹�
+         List<Inquiry_form__Share> insertList = new List<Inquiry_form__Share>();
+         //瀛樻斁(浜у搧鍜ㄨ鍗昳d,鍏变韩瀵硅薄)
+         Map<Id,Inquiry_form__Share> insertMap = new Map<Id,Inquiry_form__Share>();
+         //瀛樻斁鏈�鍚庨渶瑕佹柊澧炵殑鍏变韩鏁版嵁
+         List<Inquiry_form__Share> lastInsertList = new List<Inquiry_form__Share>();
+         //瀛樻斁宸叉湁鐨勭浉鍚岀殑鍏变韩鍘熷洜鐨勬暟鎹�
+         List<Id> deleteTargetAOIdList = new List<Id>();
+         //瀛樻斁鐢ㄤ簬鐨刬d
+         List<Id> userIdList = new List<Id>();
+         // String rowCause = 'Manual';
+         //鏂板涓�涓叡浜師鍥�
+         String rowCause = Schema.Inquiry_form__Share.RowCause.FSE_Owner_c_User__c;
+         System.debug('rowCause:'+rowCause);
+         String ownerCause = 'Owner';
+         //Apex鍏辨湁銇悊鐢卞悕OCSM_Owner_c_User
+        for(Inquiry_form__c nObj : newList) {
+             Inquiry_form__c oObj = null; 
+             if (oldMap != null && oldMap.containsKey(nObj.Id)) {
+                     oObj = oldMap.get(nObj.Id);
+             }
+
+             if ( nObj.FSE_Owner__c != null && (oObj == null || oObj.FSE_Owner__c != nObj.FSE_Owner__c)) {
+                 Inquiry_form__Share aos = new Inquiry_form__Share(
+                         RowCause = rowCause,
+                         ParentId = nObj.Id,
+                         UserOrGroupId = nObj.FSE_Owner__c,
+                         AccessLevel = 'Edit');
+                 //瀛樻斁瑕佹柊澧炵殑鍏变韩鏁版嵁
+                 insertList.add(aos);
+                 System.debug('key:'+nObj.Id);
+                 //瀛樻斁锛堜骇鍝佸挩璇㈠崟id,鍏变韩瀵硅薄锛�;
+                 insertMap.put(nObj.Id,aos);
+                 //瀛樻斁鐢ㄦ埛id 鐢ㄤ綔妫�绱㈡潯浠�
+                 userIdList.add(nObj.FSE_Owner__c);
+             }
+             if(oObj != null && oObj.FSE_Owner__c != nObj.FSE_Owner__c){
+                deleteTargetAOIdList.add(nObj.Id);     
+             }
+        }
+         System.debug('insertList:'+insertList);
+         System.debug('insertMap1:'+insertMap);
+         System.debug('IDlIST:'+deleteTargetAOIdList);
+         // 鍏� Delete 鍚� Insert
+         if (deleteTargetAOIdList.size() > 0) {
+             List<Inquiry_form__Share> deleteList = [SELECT Id
+                 FROM Inquiry_form__Share
+                 WHERE RowCause = :rowCause
+                   AND ParentId IN :deleteTargetAOIdList
+             ];
+             delete deleteList;
+         }
+         //鍒ゆ柇闇�瑕佸叡浜殑浜�  鏄笉鏄垱寤轰汉 濡傛灉鏄垯璇存槑鏈変竴鏉¤繖涓汉鐨刼wner鏁版嵁 鍒欎笉鏂板
+         if (insertMap!= null) {
+             List<Inquiry_form__Share> ownerList = [SELECT Id,ParentId,UserOrGroupId
+                 FROM Inquiry_form__Share
+                 WHERE RowCause = :ownerCause
+                   AND ParentId IN :insertMap.keySet()
+                   AND UserOrGroupId IN :userIdList
+             ];
+             System.debug('ownerList:'+ownerList);
+             if(ownerList.size() > 0){
+                 for( Inquiry_form__Share  inq:ownerList){
+                     String id = String.valueOf(inq.ParentId);
+                     System.debug('id:'+id);
+                     if(insertMap.containsKey(id)){
+                         insertMap.remove(inq.ParentId);
+                     }
+                 }
+             }
+            
+         }
+         System.debug('insertMap2:'+insertMap);
+        
+         if(insertMap != null){
+                 for(Inquiry_form__Share inquiry : insertMap.values()){
+                     lastInsertList.add(inquiry);
+                 }
+         }
+        
+
+         System.debug('鍏变韩鍐呭:' +lastInsertList);
+         if(lastInsertList.size() > 0){
+             insert lastInsertList;
+         }
+        
+     }
+     //20220419 you SWAG-CBUB2W end
 
     //瀹㈡埛浜哄憳褰曞叆鍚�,銆愮數璇濄�戙�愰偖绠便�戣嚜鍔ㄥ綍鍏� thh 20220321 start
     // private void getContactInformation(){
@@ -222,4 +340,48 @@
     //     }
         
     // }
+
+     @TestVisible private static void test() {
+        Integer i = 0;
+        
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;//鍙互澶氬啓鐐�
+    }
 }
\ No newline at end of file

--
Gitblit v1.9.1