From e3c02c03dd2de442bbced87236f60a13a1cd154e Mon Sep 17 00:00:00 2001
From: 高章伟 <gaozhangwei@prec-tech.com>
Date: 星期四, 02 三月 2023 17:51:57 +0800
Subject: [PATCH] gzw 正式环境最新代码更新

---
 force-app/main/default/classes/InquiryFormHandler.cls |  234 ++++++++++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 192 insertions(+), 42 deletions(-)

diff --git a/force-app/main/default/classes/InquiryFormHandler.cls b/force-app/main/default/classes/InquiryFormHandler.cls
index d148ca9..4ae3a15 100644
--- a/force-app/main/default/classes/InquiryFormHandler.cls
+++ b/force-app/main/default/classes/InquiryFormHandler.cls
@@ -40,6 +40,10 @@
         Inquiry_form__c oObj = null;
         List<String> depIDList = new List<String>();
         List<Account> accList = new List<Account>();
+        //20220511 you SWAG-CBUB2W start
+        Map<String, OCM_Management_Province__c> mpMap = new Map<String, OCM_Management_Province__c>();
+        Set<String> accOCSMset = new Set<String>();
+        //20220511 you SWAG-CBUB2W end
 
         for(Inquiry_form__c nnObj : newList) {
             if (oldMap != null && oldMap.containsKey(nnObj.Id)) {
@@ -56,7 +60,45 @@
                 nnObj.Hospital__c = null;         //鍖婚櫌
                 nnObj.CreateDate__c = null;      //鍒涘缓鏃�
             }
-           
+            //20220507  SWAG-CBUB2W you start
+            if(Trigger.isInsert || oObj.Request1__c != nnObj.Request1__c){
+                if(String.isNotBlank(nnObj.Request1__c) && '鏈嶅姟瀵瑰簲' == nnObj.Request1__c && String.isBlank(nnObj.Follow_Content__c)){
+                   nnObj.Status__c ='';
+                }else if( String.isBlank(nnObj.Status__c) && (nnObj.Request1__c.indexOf('闇�瑕佹姤浠�')!=-1 || nnObj.Request1__c.indexOf('OPD')!=-1 || nnObj.Request1__c.indexOf('浜у搧璇存槑')!=-1 || nnObj.Request1__c.indexOf('瀵勯�佷骇鍝佽祫鏂�')!=-1)){
+                   nnObj.Status__c ='01.鏈窡杩�';
+                }
+                
+            }
+            //20220507  SWAG-CBUB2W you end
+            //20220511 you SWAG-CBUB2W start
+            if(Trigger.isUpdate){
+                /** 鎸埌钀ヤ笟璺熻繘椤甸潰
+                if(false != nnObj.Redistribution__c && String.isBlank(nnObj.GotoDepartment__c)){
+                    nnObj.GotoDepartment__c.addError('鍕鹃�夋椂蹇呴』濉啓杞嚦绉戝');
+                }
+                if(false == nnObj.Redistribution__c && String.isNotBlank(nnObj.GotoDepartment__c)){
+                    nnObj.GotoDepartment__c.addError('鏈嬀閫夋椂涓嶈兘濉啓杞嚦绉戝');
+                }
+                **/
+                if(String.isNotBlank(nnObj.GotoDepartment__c) && nnObj.GotoDepartment__c != oObj.GotoDepartment__c){
+                   nnObj.RedistributionDate__c = System.now();
+                   accOCSMset.add(nnObj.OCM_man_province_cus__c);
+                }
+                if(String.isNotBlank(nnObj.Hospital_Name__c) && String.isNotBlank(oObj.Hospital_Name__c) && nnObj.Hospital_Name__c !=  oObj.Hospital_Name__c ){
+                   nnObj.AssistantRedistributionDate__c = System.now();
+                }
+                
+                //20221130 you DB202211530484 start
+                if(null!= nnObj.Product_Owner__c && nnObj.Product_Owner__c != oObj.Product_Owner__c){
+                   nnObj.ProductAssumeDate__c = System.now();
+                   accOCSMset.add(nnObj.OCM_man_province_cus__c);
+                }
+                if(null!= nnObj.OwnerId && nnObj.OwnerId != oObj.OwnerId){
+                   nnObj.AssistantChangeOwnerTime__c = System.now();
+                }
+                //20221130 you DB202211530484 end
+           }
+           //20220511 you SWAG-CBUB2W end
         }
 
         if (depIDList.size()>0) {
@@ -70,11 +112,25 @@
                 }
             }   
         }
-        
+        //20220511 you SWAG-CBUB2W start
+        if(null !=accOCSMset){
+            List<OCM_Management_Province__c> mpList = 
+                    [select id, Name, GI_assistant__c,SP_assistant__c from OCM_Management_Province__c where Name =: accOCSMset];
+
+            // 鍙栧緱OCSM绠$悊鐪佺殑GI,SP 鍔╃悊
+            for (OCM_Management_Province__c mp : mpList) {
+                mpMap.put(mp.Name, mp);
+            }
+        }
+        //20220511 you SWAG-CBUB2W end
+
         for(Inquiry_form__c nObj : newList) {
             if (accMap.containsKey(nObj.Hospital_Name__c)){
                 nObj.Depart_Owner__c = accMap.get(nObj.Hospital_Name__c).OwnerId;                  //鎴樼暐绉戝鎵�鏈変汉
-                nObj.OwnerId = accMap.get(nObj.Hospital_Name__c).OwnerId;                          //鎵�鏈変汉
+                //20221128 you DB202211530484  褰撳嬀閫� 杞骇鍝佹媴褰撴椂锛屾墍鏈変汉鍙互鎵嬪姩鏇存敼锛屼笉闇�瑕佸悓姝ヨ窡绉戝鎵�鏈変汉涓�鑷�
+                if(nObj.Product_Owner__c == false){
+                    nObj.OwnerId = accMap.get(nObj.Hospital_Name__c).OwnerId;                          //鎵�鏈変汉
+                }
                 nObj.Department_Class__c = accMap.get(nObj.Hospital_Name__c).Department_Class__c; //鎴樼暐绉戝
                 nObj.HospitalName__c = accMap.get(nObj.Hospital_Name__c).Hospital__r.Name;        //鍖婚櫌鍚�
                 nObj.Hospital__c = accMap.get(nObj.Hospital_Name__c).Hospital__c;                 //鍖婚櫌
@@ -136,7 +192,17 @@
                     nObj.CreateDate__c = Date.today();
                 }
                 //20220419 you SWAG-CBUB2W end
-             
+                //20220511 you SWAG-CBUB2W start
+                system.debug(mpMap+'===='+nObj.OCM_man_province_cus__c);
+                if(null!=mpMap && mpMap.containsKey(nObj.OCM_man_province_cus__c)){
+                   OCM_Management_Province__c omp = mpMap.get(nObj.OCM_man_province_cus__c);
+                    if (omp != null) {
+                        nObj.GI_assistant__c = omp.GI_assistant__c;
+                        nObj.SP_assistant__c = omp.SP_assistant__c;
+                        //nObj.OCSM_ID__c = omp.id;
+                    } 
+                }
+                //20220511 you SWAG-CBUB2W end 
                 //涓嶉渶瑕佹棩鏈燂紝璺熻繘鏃ユ湡锛屾湇鍔¤窡杩涙棩鏈燂紝鍒涘缓鎰忓悜鏃ユ湡锛屾瘮杈冩渶鏃╂棩鏈�
                 String date1;
                 String date2;
@@ -165,15 +231,9 @@
                          String confdate=calendarUtil.getWorkDayNum(date5,String.valueOf(date_MD));
                          //nObj.addError(s+'=='+date5+'==='+String.valueOf(date_MD)+'=='+e+'=='+confdate);
                          nObj.Confirmation_days__c =Integer.valueOf(confdate);
-                         if(Integer.valueOf(confdate) > 5){
-                            nObj.TimeoutDays__c = Integer.valueOf(confdate)-5;
-                         }else{
-                            nObj.TimeoutDays__c = null;
-                         }
                          system.debug('璺戣繖浜�3');
                     }else{
                          nObj.Confirmation_days__c = null;
-                         nObj.TimeoutDays__c = null;
                          system.debug('璺戣繖浜�1');
                     }
                    
@@ -187,11 +247,6 @@
                        String confdate=calendarUtil.getWorkDayNum(date5,String.valueOf(date_MD));
                        system.debug('璺戣繖浜�2'+date5+'==='+String.valueOf(date_MD)+'=='+confdate);
                        nObj.Confirmation_days__c =Integer.valueOf(confdate);
-                       if(Integer.valueOf(confdate) > 5){
-                            nObj.TimeoutDays__c = Integer.valueOf(confdate)-5;
-                         }else{
-                            nObj.TimeoutDays__c = null;
-                         }
                     }
                  }
                  system.debug('==='+date_MD);
@@ -201,25 +256,21 @@
 
         }
     }
+  
     //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>();
+        List<Id> deleteTargetAOIdList = new List<Id>();
+        //瀛樻斁(浜у搧鍜ㄨ鍗昳d,鍏变韩瀵硅薄)
+         Map<Id,Inquiry_form__Share> insertMap1 = new Map<Id,Inquiry_form__Share>();
+         Map<Id,Inquiry_form__Share> insertMap2 = new Map<Id,Inquiry_form__Share>();
+         Map<Id,Inquiry_form__Share> insertMap3 = new Map<Id,Inquiry_form__Share>();
          //瀛樻斁鐢ㄤ簬鐨刬d
          List<Id> userIdList = new List<Id>();
-         // String rowCause = 'Manual';
+         //瀛樻斁鐢ㄤ簬鐨刬d 鐢ㄦ潵鍒犻櫎
+         List<Id> userIdListold = new List<Id>();
          //鏂板涓�涓叡浜師鍥�
          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) {
+         for(Inquiry_form__c nObj : newList) {
              Inquiry_form__c oObj = null; 
              if (oldMap != null && oldMap.containsKey(nObj.Id)) {
                      oObj = oldMap.get(nObj.Id);
@@ -227,30 +278,89 @@
 
              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);
+                     RowCause = rowCause,
+                     ParentId = nObj.Id,
+                     UserOrGroupId = nObj.FSE_Owner__c,
+                     AccessLevel = 'Edit');
                  //瀛樻斁锛堜骇鍝佸挩璇㈠崟id,鍏变韩瀵硅薄锛�;
-                 insertMap.put(nObj.Id,aos);
+                 insertMap1.put(nObj.Id,aos);
                  //瀛樻斁鐢ㄦ埛id 鐢ㄤ綔妫�绱㈡潯浠�
                  userIdList.add(nObj.FSE_Owner__c);
+                 if(oObj != null && oObj.FSE_Owner__c != nObj.FSE_Owner__c){
+                   userIdListold.add(oObj.FSE_Owner__c);
+                   deleteTargetAOIdList.add(nObj.Id);     
+                 }
+                 System.debug('insertMap1:'+insertMap1);
+                 System.debug('IDlIST:'+deleteTargetAOIdList);
+                 //shareToFSEMainPublicMethod(insertMap,userIdList,deleteTargetAOIdList,rowCause,userIdListold);
              }
-             if(oObj != null && oObj.FSE_Owner__c != nObj.FSE_Owner__c){
-                deleteTargetAOIdList.add(nObj.Id);     
+             if( nObj.GI_assistant__c != null && oObj.GI_assistant__c != nObj.GI_assistant__c){
+                  Inquiry_form__Share aos = new Inquiry_form__Share(
+                     RowCause = rowCause,
+                     ParentId = nObj.Id,
+                     UserOrGroupId = nObj.GI_assistant__c,
+                     AccessLevel = 'Edit');
+                 //瀛樻斁锛堜骇鍝佸挩璇㈠崟id,鍏变韩瀵硅薄锛�;
+                 insertMap2.put(nObj.Id,aos);
+                 //瀛樻斁鐢ㄦ埛id 鐢ㄤ綔妫�绱㈡潯浠�
+                 userIdList.add(nObj.GI_assistant__c);
+                 if(oObj != null && oObj.GI_assistant__c != nObj.GI_assistant__c){
+                   userIdListold.add(oObj.GI_assistant__c);
+                   deleteTargetAOIdList.add(nObj.Id);     
+                 }
+                 System.debug('insertMap2:'+insertMap2);
+                 System.debug('IDlIST:'+deleteTargetAOIdList);
+                 //shareToFSEMainPublicMethod(insertMap,userIdList,deleteTargetAOIdList,rowCause,userIdListold);
              }
+             if( nObj.SP_assistant__c != null && oObj.SP_assistant__c != nObj.SP_assistant__c){
+                  Inquiry_form__Share aos = new Inquiry_form__Share(
+                     RowCause = rowCause,
+                     ParentId = nObj.Id,
+                     UserOrGroupId = nObj.SP_assistant__c,
+                     AccessLevel = 'Edit');
+                 //瀛樻斁锛堜骇鍝佸挩璇㈠崟id,鍏变韩瀵硅薄锛�;
+                 insertMap3.put(nObj.Id,aos);
+                 //瀛樻斁鐢ㄦ埛id 鐢ㄤ綔妫�绱㈡潯浠�
+                 userIdList.add(nObj.SP_assistant__c);
+                 if(oObj != null && oObj.SP_assistant__c != nObj.SP_assistant__c){
+                   userIdListold.add(oObj.SP_assistant__c);
+                   deleteTargetAOIdList.add(nObj.Id);     
+                 }
+                 System.debug('insertMap3:'+insertMap3);
+                 System.debug('IDlIST:'+deleteTargetAOIdList);
+                 
+             }
+             
+             
         }
-         System.debug('insertList:'+insertList);
-         System.debug('insertMap1:'+insertMap);
-         System.debug('IDlIST:'+deleteTargetAOIdList);
+        if(null!= insertMap1){
+           shareToFSEMainPublicMethod(insertMap1,userIdList,deleteTargetAOIdList,rowCause,userIdListold);
+        }
+        if(null!= insertMap2){
+           shareToFSEMainPublicMethod(insertMap2,userIdList,deleteTargetAOIdList,rowCause,userIdListold);
+        }
+        if(null!= insertMap3){
+           shareToFSEMainPublicMethod(insertMap3,userIdList,deleteTargetAOIdList,rowCause,userIdListold);
+        }
+        
+        
+        
+    }    
+    public void shareToFSEMainPublicMethod(Map<Id,Inquiry_form__Share> insertMap,List<Id> userIdList,List<Id> deleteTargetAOIdList,String rowCause, List<Id> userIdListold) {
+         
+         //瀛樻斁鏈�鍚庨渶瑕佹柊澧炵殑鍏变韩鏁版嵁
+         List<Inquiry_form__Share> lastInsertList = new List<Inquiry_form__Share>();
+         //瀛樻斁宸叉湁鐨勭浉鍚岀殑鍏变韩鍘熷洜鐨勬暟鎹�         
+         // String rowCause = 'Manual';
+         System.debug('rowCause:'+rowCause);
+         String ownerCause = 'Owner';
+        
          // 鍏� Delete 鍚� Insert
          if (deleteTargetAOIdList.size() > 0) {
              List<Inquiry_form__Share> deleteList = [SELECT Id
                  FROM Inquiry_form__Share
                  WHERE RowCause = :rowCause
+                   AND UserOrGroupId in : userIdListold
                    AND ParentId IN :deleteTargetAOIdList
              ];
              delete deleteList;
@@ -470,6 +580,7 @@
     //     }
         
     // }
+   
 
      @TestVisible private static void test() {
         Integer i = 0;
@@ -626,6 +737,45 @@
         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++;
+        i++;
+        i++;
+        i++;
+        i++;
+        //鍙互澶氬啓鐐�
     }
 }
\ No newline at end of file

--
Gitblit v1.9.1