From 1312ba82d4c880bdb5357d28e0d4af5b285f610f Mon Sep 17 00:00:00 2001
From: 高章伟 <gaozhangwei@prec-tech.com>
Date: 星期四, 10 三月 2022 15:54:39 +0800
Subject: [PATCH] 最近一月修改内容

---
 force-app/main/default/classes/NFM705Rest.cls |  407 +++++++++++++++++++++++++++++++++++++--------------------
 1 files changed, 261 insertions(+), 146 deletions(-)

diff --git a/force-app/main/default/classes/NFM705Rest.cls b/force-app/main/default/classes/NFM705Rest.cls
index acafad9..ea52474 100644
--- a/force-app/main/default/classes/NFM705Rest.cls
+++ b/force-app/main/default/classes/NFM705Rest.cls
@@ -122,6 +122,7 @@
             //Map<string,GeData> meetingApprovedNoMap = new Map<string,GeData>();
             List<String> meetingApprovedNoList = new List<String>();
             List<String> NumList = new List<String>();
+            List<User> users = new List<User>();
             for(GeData ged : itemMasterList){
                 //楠岃瘉鏁版嵁瀹屾暣鎬�
                 // String dataComplete = verify(ged);
@@ -140,7 +141,8 @@
                                             Num__c, 
                                             MeetingApprovedNo__c 
                                         from Campaign 
-                                        where Num__c IN: NumList] : new List<Campaign>();
+                                        where Num__c IN: NumList 
+                                        ] : new List<Campaign>();
             // for(Campaign temp : campaignList){
             //     campaignMap.put(temp.Num__c,temp.Id);
             // }
@@ -155,6 +157,9 @@
                 oldacfcMap.put(oldafca.MeetingApprovedNo__c,oldafca);
             }
 
+            // 鎵�鏈変汉淇℃伅
+            List<String> user_nos = new List<String>();
+
             for (GeData ged : itemMasterList) {
                 //鏂板缓浼氳瑁佸喅鐢宠
                 Application_for_Conference_Adjudication__c aca = new Application_for_Conference_Adjudication__c();
@@ -165,7 +170,7 @@
                 aca.StartDate__c                    = NFMUtil.parseDateTimeStr2Date(ged.StartDate);
                 aca.EndDate__c                      = NFMUtil.parseDateTimeStr2Date(ged.EndDate);
                 aca.BudgetType__c                   = ged.BudgetType;
-                aca.OfficeCategory__c               = ged.OfficeCategory;
+                aca.OfficeCategory__c               = GetOfficeCategory(ged.OfficeCategory, transferMap, iflog);
                 //aca.MeetingType__c                  = ged.MeetingType;
                 aca.MeetingType__c                  = DividingTypes(ged.IsCoOrganizingActivities,ged.ActivityTypeName);
                 aca.StateMaster__c                  = ged.StateMaster;
@@ -188,34 +193,68 @@
                     aca.ProcessState__c == oldacfcMap.get(ged.MeetingApprovedNo).ProcessState__c)){
                     aca.Id = oldacfcMap.get(ged.MeetingApprovedNo).Id;
                     aca.Num__c = String.isBlank(aca.Num__c) ? oldacfcMap.get(ged.MeetingApprovedNo).Num__c : aca.Num__c; 
+                } 
+
+                // 纭鐢宠浜�
+                System.debug('aca.Id: ' + aca.Id);
+                if (String.isBlank(aca.Id)) {
+                    user_nos.add(ged.Applicant);
                 }
+
                 aca.IsSupplemental__c = aca.ProcessState__c != '琛ュ厖鍐宠' ? false : true;
                 aca.Applicant__c = ged.Applicant;
                 aca.Shared_Editing__c = ged.SharedEditing;
+                if (String.isNotBlank(ged.SharedEditing)) {
+                    user_nos.addAll(ged.SharedEditing.split(','));
+                }
+                System.debug(user_nos);
 
                 acaList.add(aca);
+            }
+
+            // 鏌ユ壘鎵�鏈変汉
+            if (user_nos != null && user_nos.size() > 0) {
+                users = [select Id, Employee_No__c from User where Employee_No__c in :user_nos];
+                if (users != null && users.size() > 0) {
+                    String owner = '';
+                    for (Application_for_Conference_Adjudication__c app : acaList) {
+                        System.debug('owner from 705: ' + app.Applicant__c);
+                        for (User u : users) {
+                            System.debug('user no: ' + u.Employee_No__c);
+                            if (String.isNotBlank(u.Employee_No__c) && u.Employee_No__c.equals(app.Applicant__c)) {
+                                app.OwnerId = u.Id;
+                                owner = u.Id;
+                                break;
+                            }
+                        }
+                    }
+                }
             }
             
             if (acaList.size() > 0) {
                 // 鍐欏叆鍐宠淇℃伅
                 upsert acaList;
+
+                // 鍏变韩鏉冮檺
+                SetSharing(users, acaList);
                 // 鑷姩鍒涘缓瀛︿細
-                List<Application_for_Conference_Adjudication__c> wait_to_create_cams = new List<Application_for_Conference_Adjudication__c>();
-                List<Campaign> new_campaigns = new List<Campaign>();
-                for (Application_for_Conference_Adjudication__c app : acaList) {
-                    if (String.isBlank(app.Id) && String.isBlank(app.Num__c) && app.MeetingType__c != '璧炲姪浼�' && app.ProcessState__c != '琛ュ厖鍐宠') {
-                        wait_to_create_cams.add(app);
-                    }
-                }
-                if (wait_to_create_cams != null && wait_to_create_cams.size() > 0) {
-                    for (Application_for_Conference_Adjudication__c app : wait_to_create_cams) {
-                        Campaign cam = createNewCampaignFromApplication(app);
-                        new_campaigns.add(cam);
-                    }
-                    if (new_campaigns.size() > 0) {
-                        insert new_campaigns;
-                    }
-                }
+                // 2022-02-22 浼氳纭 鏃犳硶纭璁板綍绫诲瀷锛屼笉鍋氳嚜鍔ㄥ垱寤�
+                // List<Application_for_Conference_Adjudication__c> wait_to_create_cams = new List<Application_for_Conference_Adjudication__c>();
+                // List<Campaign> new_campaigns = new List<Campaign>();
+                // for (Application_for_Conference_Adjudication__c app : acaList) {
+                //     if (String.isBlank(app.Id) && String.isBlank(app.Num__c) && app.MeetingType__c != '璧炲姪浼�' && app.ProcessState__c != '琛ュ厖鍐宠') {
+                //         wait_to_create_cams.add(app);
+                //     }
+                // }
+                // if (wait_to_create_cams != null && wait_to_create_cams.size() > 0) {
+                //     for (Application_for_Conference_Adjudication__c app : wait_to_create_cams) {
+                //         Campaign cam = createNewCampaignFromApplication(app);
+                //         new_campaigns.add(cam);
+                //     }
+                //     if (new_campaigns.size() > 0) {
+                //         insert new_campaigns;
+                //     }
+                // }
                 // 鏇存柊宸插瓨鍦ㄧ殑鍐宠淇℃伅
                 System.debug('鏌ユ壘鍒扮殑浼氳: ' + campaignList.size());
                 if (campaignList != null && campaignList.size() > 0) {
@@ -225,6 +264,31 @@
                             if (cam.Num__c == app.Num__c && !app.IsSupplemental__c) {
                                 cam.MeetingApprovedNo__c             = app.MeetingApprovedNo__c;
                                 cam.Meeting_Approved_No__c           = app.Id;
+                                if (app.MeetingType__c != '璧炲姪浼�') {
+                                    cam.StartDate                        = app.StartDate__c;
+                                    cam.EndDate                          = app.EndDate__c;
+                                    cam.Budget_Type__c                   = app.BudgetType__c;
+                                    cam.OfficeCategory__c                = app.OfficeCategory__c;
+                                    cam.Meeting_Type__c                  = app.MeetingType__c;
+    
+                                    cam.WorkshopPlace__c                 = app.WorkshopPlace__c;
+                                    cam.HostName__c                      = app.HostName__c;
+                                    cam.cooperatorCompany__c             = app.CooperatorCompany__c;
+                                    cam.Convening_Participants_Num__c    = app.ConveningParticipantsNum__c;
+    
+                                    // OBPM瀵规帴 鏂板瀛楁
+                                    cam.Expected_Olympus_Attendance__c   = app.ExpectedOlympusAttendance__c;
+                                    cam.Expected_Hcp_Attendance__c       = app.ExpectedHcpAttendance__c;
+                                    cam.SponsorshipCategory__c           = app.SponsorshipCategory__c;
+                                    cam.IsPaidToSponsor__c               = app.IsPaidToSponsor__c;
+                                    // cam.Activity_Type_Name__c            = app.ActivityTypeName__c;
+                                    cam.Activity_Type_Name__c            = app.Type_of_adjudication_meeting__c;
+                                    // 杩欓噷闇�瑕侀澶栧姞鎿嶄綔
+                                    cam.State_Master__c                  = StateCityUtil.get_state(app.StateMaster__c);                 
+                                    cam.City_Master__c                   = StateCityUtil.get_city(app.CityMaster__c);
+                                }
+                                
+
                                 updatelist.add(cam);
                                 break;
                             }
@@ -259,145 +323,145 @@
         
     }
     // 蹇呭~瀛楁楠岃瘉
-    private static String verify(GeData ged) {
-        String result = '';
+    // private static String verify(GeData ged) {
+    //     String result = '';
 
-        // Map<String , String> BudgetTypeMap = new Map<String,String>();
-        // BudgetTypeMap.put(ged.BudgetType, '鏂颁骇鍝佷笂甯�');
-        // BudgetTypeMap.put(ged.BudgetType, '浜у搧鎺ㄥ箍');
-        // BudgetTypeMap.put(ged.BudgetType, '涓婚娲诲姩锛圢BI鏃╃檶锛孍US澶ц禌绛夛級');
-        // BudgetTypeMap.put(ged.BudgetType, '浜у搧鍞悗浣跨敤鍩硅');
-        // BudgetTypeMap.put(ged.BudgetType, 'NTC绛夋晠闅滈闃叉椿鍔�');
-        // BudgetTypeMap.put(ged.BudgetType, '缁忛攢鍟嗙浉鍏充細璁�');
-        // BudgetTypeMap.put(ged.BudgetType, '鍏朵粬');
+    //     // Map<String , String> BudgetTypeMap = new Map<String,String>();
+    //     // BudgetTypeMap.put(ged.BudgetType, '鏂颁骇鍝佷笂甯�');
+    //     // BudgetTypeMap.put(ged.BudgetType, '浜у搧鎺ㄥ箍');
+    //     // BudgetTypeMap.put(ged.BudgetType, '涓婚娲诲姩锛圢BI鏃╃檶锛孍US澶ц禌绛夛級');
+    //     // BudgetTypeMap.put(ged.BudgetType, '浜у搧鍞悗浣跨敤鍩硅');
+    //     // BudgetTypeMap.put(ged.BudgetType, 'NTC绛夋晠闅滈闃叉椿鍔�');
+    //     // BudgetTypeMap.put(ged.BudgetType, '缁忛攢鍟嗙浉鍏充細璁�');
+    //     // BudgetTypeMap.put(ged.BudgetType, '鍏朵粬');
 
-        // Map<String , String> OfficeCategoryMap = new Map<String,String>();
-        // OfficeCategoryMap.put(ged.OfficeCategory, '1.娑堝寲绉�');
-        // OfficeCategoryMap.put(ged.OfficeCategory, '2.鍛煎惛绉�');
-        // OfficeCategoryMap.put(ged.OfficeCategory, '3.鏅绉�');
-        // OfficeCategoryMap.put(ged.OfficeCategory, '4.娉屽翱绉�');
-        // OfficeCategoryMap.put(ged.OfficeCategory, '5.濡囩');
-        // OfficeCategoryMap.put(ged.OfficeCategory, '6.鑰抽蓟鍠夌');
-        // OfficeCategoryMap.put(ged.OfficeCategory, '鍏朵粬');
-        // OfficeCategoryMap.put(ged.OfficeCategory, '鑲濊儐澶栫');
-        // OfficeCategoryMap.put(ged.OfficeCategory, '鑳冭偁澶栫');
+    //     // Map<String , String> OfficeCategoryMap = new Map<String,String>();
+    //     // OfficeCategoryMap.put(ged.OfficeCategory, '1.娑堝寲绉�');
+    //     // OfficeCategoryMap.put(ged.OfficeCategory, '2.鍛煎惛绉�');
+    //     // OfficeCategoryMap.put(ged.OfficeCategory, '3.鏅绉�');
+    //     // OfficeCategoryMap.put(ged.OfficeCategory, '4.娉屽翱绉�');
+    //     // OfficeCategoryMap.put(ged.OfficeCategory, '5.濡囩');
+    //     // OfficeCategoryMap.put(ged.OfficeCategory, '6.鑰抽蓟鍠夌');
+    //     // OfficeCategoryMap.put(ged.OfficeCategory, '鍏朵粬');
+    //     // OfficeCategoryMap.put(ged.OfficeCategory, '鑲濊儐澶栫');
+    //     // OfficeCategoryMap.put(ged.OfficeCategory, '鑳冭偁澶栫');
 
-        // Map<String , String> MeetingTypeMap = new Map<String,String>();
-        // MeetingTypeMap.put(ged.MeetingType, '鑷姙浼�');
-        // MeetingTypeMap.put(ged.MeetingType, '璧炲姪浼�');
-        // MeetingTypeMap.put(ged.MeetingType, '鍏卞悓涓诲姙浼�');
+    //     // Map<String , String> MeetingTypeMap = new Map<String,String>();
+    //     // MeetingTypeMap.put(ged.MeetingType, '鑷姙浼�');
+    //     // MeetingTypeMap.put(ged.MeetingType, '璧炲姪浼�');
+    //     // MeetingTypeMap.put(ged.MeetingType, '鍏卞悓涓诲姙浼�');
 
-        // if (ged.MeetingApprovedNo == null) {
-        //     result += 'DataError: 浼氳鍐宠缂栫爜 [ MeetingApprovedNo ] is null!\n';
-        // }
-        if (String.isBlank(ged.Name)) {
-            result += 'DataError: 浼氳鍚嶇О [ Name ] 涓嶈兘涓虹┖!\n';
-        }
-        if(String.isBlank(ged.MeetingApprovedNo)){
-            result += 'DataError:浼氳鍐宠缂栫爜[MeetingApprovedNo] 涓嶈兘涓虹┖!\n';
-        }
-        if(ged.ProcessState == null){
-            result += 'DataError:OBPM瀹℃壒鐘舵�乕ProcessState] 涓嶈兘涓虹┖!\n';
-        }
-        if(String.isBlank(ged.HostName)){
-            result += 'DataError:浼氳涓诲姙鏂筟HostName] 涓嶈兘涓虹┖!\n';
-        }
-        if(String.isBlank(ged.CooperatorCompany)){
-            result += 'DataError:浼氳鎵垮姙鏂筟CooperatorCompany] 涓嶈兘涓虹┖!\n';
-        }
-        /*if (!BudgetTypeMap.containsKey(ged.BudgetType)) {
-            result += 'DataError: 棰勭畻绫诲瀷 [ BudgetType ] 浼犲�兼湁璇�!\n';
-        } else if (!ged.BudgetType.equals('浜у搧鎺ㄥ箍')) {
-            result += 'DataError: 棰勭畻绫诲瀷 [ BudgetType ] 浼犲�兼湁璇�!\n';
-        } else if (!ged.BudgetType.equals('涓婚娲诲姩锛圢BI鏃╃檶锛孍US澶ц禌绛夛級')) {
-            result += 'DataError: 棰勭畻绫诲瀷 [ BudgetType ] 浼犲�兼湁璇�!\n';
-        } else if (!ged.BudgetType.equals('浜у搧鍞悗浣跨敤鍩硅')) {
-            result += 'DataError: 棰勭畻绫诲瀷 [ BudgetType ] 浼犲�兼湁璇�!\n';
-        } else if (!ged.BudgetType.equals('NTC绛夋晠闅滈闃叉椿鍔�')) {
-            result += 'DataError: 棰勭畻绫诲瀷 [ BudgetType ] 浼犲�兼湁璇�!\n';
-        } else if (!ged.BudgetType.equals('缁忛攢鍟嗙浉鍏充細璁�')) {
-            result += 'DataError: 棰勭畻绫诲瀷 [ BudgetType ] 浼犲�兼湁璇�!\n';
-        } else if (!ged.BudgetType.equals('鍏朵粬')) {
-            result += 'DataError: 棰勭畻绫诲瀷 [ BudgetType ] 浼犲�兼湁璇�!\n';
-        }
-        if (!OfficeCategoryMap.containsKey(ged.OfficeCategory)) {
-            result += 'DataError: 绉戝鍒嗙被 [ OfficeCategory ] 浼犲�兼湁璇�!\n';
-        } else if (!ged.OfficeCategory.equals('2.鍛煎惛绉�')) {
-            result += 'DataError: 绉戝鍒嗙被 [ OfficeCategory ] 浼犲�兼湁璇�!\n';
-        } else if (!ged.OfficeCategory.equals('3.鏅绉�')) {
-            result += 'DataError: 绉戝鍒嗙被 [ OfficeCategory ] 浼犲�兼湁璇�!\n';
-        } else if (!ged.OfficeCategory.equals('4.娉屽翱绉�')) {
-            result += 'DataError: 绉戝鍒嗙被 [ OfficeCategory ] 浼犲�兼湁璇�!\n';
-        } else if (!ged.OfficeCategory.equals('5.濡囩')) {
-            result += 'DataError: 绉戝鍒嗙被 [ OfficeCategory ] 浼犲�兼湁璇�!\n';
-        } else if (!ged.OfficeCategory.equals('6.鑰抽蓟鍠夌')) {
-            result += 'DataError: 绉戝鍒嗙被 [ OfficeCategory ] 浼犲�兼湁璇�!\n';
-        } else if (!ged.OfficeCategory.equals('鍏朵粬')) {
-            result += 'DataError: 绉戝鍒嗙被 [ OfficeCategory ] 浼犲�兼湁璇�!\n';
-        } else if (!ged.OfficeCategory.equals('鑲濊儐澶栫')) {
-            result += 'DataError: 绉戝鍒嗙被 [ OfficeCategory ] 浼犲�兼湁璇�!\n';
-        } else if (!ged.OfficeCategory.equals('鑳冭偁澶栫')) {
-            result += 'DataError: 绉戝鍒嗙被 [ OfficeCategory ] 浼犲�兼湁璇�!\n';
-        }
-        if (!MeetingTypeMap.containsKey(ged.MeetingType)) {
-            result += 'DataError: 浼氳绫诲瀷 [ MeetingType ] 浼犲�兼湁璇�!\n';
-        } else if (!ged.MeetingType.equals('璧炲姪浼�')) {
-            result += 'DataError: 浼氳绫诲瀷 [ MeetingType ] 浼犲�兼湁璇�!\n';
-        } else if (!ged.MeetingType.equals('鍏卞悓涓诲姙浼�')) {
-            result += 'DataError: 浼氳绫诲瀷 [ MeetingType ] 浼犲�兼湁璇�!\n';
-        } */
-        return result;
-    }
+    //     // if (ged.MeetingApprovedNo == null) {
+    //     //     result += 'DataError: 浼氳鍐宠缂栫爜 [ MeetingApprovedNo ] is null!\n';
+    //     // }
+    //     if (String.isBlank(ged.Name)) {
+    //         result += 'DataError: 浼氳鍚嶇О [ Name ] 涓嶈兘涓虹┖!\n';
+    //     }
+    //     if(String.isBlank(ged.MeetingApprovedNo)){
+    //         result += 'DataError:浼氳鍐宠缂栫爜[MeetingApprovedNo] 涓嶈兘涓虹┖!\n';
+    //     }
+    //     if(ged.ProcessState == null){
+    //         result += 'DataError:OBPM瀹℃壒鐘舵�乕ProcessState] 涓嶈兘涓虹┖!\n';
+    //     }
+    //     if(String.isBlank(ged.HostName)){
+    //         result += 'DataError:浼氳涓诲姙鏂筟HostName] 涓嶈兘涓虹┖!\n';
+    //     }
+    //     if(String.isBlank(ged.CooperatorCompany)){
+    //         result += 'DataError:浼氳鎵垮姙鏂筟CooperatorCompany] 涓嶈兘涓虹┖!\n';
+    //     }
+    //     /*if (!BudgetTypeMap.containsKey(ged.BudgetType)) {
+    //         result += 'DataError: 棰勭畻绫诲瀷 [ BudgetType ] 浼犲�兼湁璇�!\n';
+    //     } else if (!ged.BudgetType.equals('浜у搧鎺ㄥ箍')) {
+    //         result += 'DataError: 棰勭畻绫诲瀷 [ BudgetType ] 浼犲�兼湁璇�!\n';
+    //     } else if (!ged.BudgetType.equals('涓婚娲诲姩锛圢BI鏃╃檶锛孍US澶ц禌绛夛級')) {
+    //         result += 'DataError: 棰勭畻绫诲瀷 [ BudgetType ] 浼犲�兼湁璇�!\n';
+    //     } else if (!ged.BudgetType.equals('浜у搧鍞悗浣跨敤鍩硅')) {
+    //         result += 'DataError: 棰勭畻绫诲瀷 [ BudgetType ] 浼犲�兼湁璇�!\n';
+    //     } else if (!ged.BudgetType.equals('NTC绛夋晠闅滈闃叉椿鍔�')) {
+    //         result += 'DataError: 棰勭畻绫诲瀷 [ BudgetType ] 浼犲�兼湁璇�!\n';
+    //     } else if (!ged.BudgetType.equals('缁忛攢鍟嗙浉鍏充細璁�')) {
+    //         result += 'DataError: 棰勭畻绫诲瀷 [ BudgetType ] 浼犲�兼湁璇�!\n';
+    //     } else if (!ged.BudgetType.equals('鍏朵粬')) {
+    //         result += 'DataError: 棰勭畻绫诲瀷 [ BudgetType ] 浼犲�兼湁璇�!\n';
+    //     }
+    //     if (!OfficeCategoryMap.containsKey(ged.OfficeCategory)) {
+    //         result += 'DataError: 绉戝鍒嗙被 [ OfficeCategory ] 浼犲�兼湁璇�!\n';
+    //     } else if (!ged.OfficeCategory.equals('2.鍛煎惛绉�')) {
+    //         result += 'DataError: 绉戝鍒嗙被 [ OfficeCategory ] 浼犲�兼湁璇�!\n';
+    //     } else if (!ged.OfficeCategory.equals('3.鏅绉�')) {
+    //         result += 'DataError: 绉戝鍒嗙被 [ OfficeCategory ] 浼犲�兼湁璇�!\n';
+    //     } else if (!ged.OfficeCategory.equals('4.娉屽翱绉�')) {
+    //         result += 'DataError: 绉戝鍒嗙被 [ OfficeCategory ] 浼犲�兼湁璇�!\n';
+    //     } else if (!ged.OfficeCategory.equals('5.濡囩')) {
+    //         result += 'DataError: 绉戝鍒嗙被 [ OfficeCategory ] 浼犲�兼湁璇�!\n';
+    //     } else if (!ged.OfficeCategory.equals('6.鑰抽蓟鍠夌')) {
+    //         result += 'DataError: 绉戝鍒嗙被 [ OfficeCategory ] 浼犲�兼湁璇�!\n';
+    //     } else if (!ged.OfficeCategory.equals('鍏朵粬')) {
+    //         result += 'DataError: 绉戝鍒嗙被 [ OfficeCategory ] 浼犲�兼湁璇�!\n';
+    //     } else if (!ged.OfficeCategory.equals('鑲濊儐澶栫')) {
+    //         result += 'DataError: 绉戝鍒嗙被 [ OfficeCategory ] 浼犲�兼湁璇�!\n';
+    //     } else if (!ged.OfficeCategory.equals('鑳冭偁澶栫')) {
+    //         result += 'DataError: 绉戝鍒嗙被 [ OfficeCategory ] 浼犲�兼湁璇�!\n';
+    //     }
+    //     if (!MeetingTypeMap.containsKey(ged.MeetingType)) {
+    //         result += 'DataError: 浼氳绫诲瀷 [ MeetingType ] 浼犲�兼湁璇�!\n';
+    //     } else if (!ged.MeetingType.equals('璧炲姪浼�')) {
+    //         result += 'DataError: 浼氳绫诲瀷 [ MeetingType ] 浼犲�兼湁璇�!\n';
+    //     } else if (!ged.MeetingType.equals('鍏卞悓涓诲姙浼�')) {
+    //         result += 'DataError: 浼氳绫诲瀷 [ MeetingType ] 浼犲�兼湁璇�!\n';
+    //     } */
+    //     return result;
+    // }
 
     // 鍒涘缓浼氳 缁戝畾鍐宠鐩稿叧淇℃伅
-    public static Campaign createNewCampaignFromApplication(Application_for_Conference_Adjudication__c app) {
-        Campaign cam = new Campaign();
-        //瀹氫箟鍙橀噺淇濆瓨璁板綍绫诲瀷
-        Id RtId = Schema.SObjectType.Campaign.getRecordTypeInfosByDeveloperName().get('Society').getRecordTypeId();
-        //List<Id> = [select Id from RecordType where IsActive = true and SobjectType = 'CampaignMember' and Name = '绀惧鍙傚姞浜�'];
-        Id RtId2 = Schema.SObjectType.CampaignMember.getRecordTypeInfosByDeveloperName().get('WorkShop').getRecordTypeId();
-        cam.RecordTypeId                     = RtId;
-        cam.CampaignMemberRecordTypeId       = RtId2;//ID涓嶅啓姝� 绀惧浜哄憳
+    // public static Campaign createNewCampaignFromApplication(Application_for_Conference_Adjudication__c app) {
+    //     Campaign cam = new Campaign();
+    //     //瀹氫箟鍙橀噺淇濆瓨璁板綍绫诲瀷
+    //     Id RtId = Schema.SObjectType.Campaign.getRecordTypeInfosByDeveloperName().get('Society').getRecordTypeId();
+    //     //List<Id> = [select Id from RecordType where IsActive = true and SobjectType = 'CampaignMember' and Name = '绀惧鍙傚姞浜�'];
+    //     Id RtId2 = Schema.SObjectType.CampaignMember.getRecordTypeInfosByDeveloperName().get('WorkShop').getRecordTypeId();
+    //     cam.RecordTypeId                     = RtId;
+    //     cam.CampaignMemberRecordTypeId       = RtId2;//ID涓嶅啓姝� 绀惧浜哄憳
 
-        cam.Name                             = app.MeetingApprovedNo__c;
-        cam.Name2__c                         = app.MeetingApprovedNo__c;
-        cam.MeetingApprovedNo__c             = app.MeetingApprovedNo__c;
-        cam.Meeting_Approved_No__c           = app.Id;
-        cam.StartDate                        = app.StartDate__c;
-        cam.EndDate                          = app.EndDate__c;
-        cam.Budget_Type__c                   = app.BudgetType__c;
-        cam.OfficeCategory__c                = app.OfficeCategory__c;
-        cam.Meeting_Type__c                  = app.MeetingType__c;
-        cam.Activity_Type_Name__c            = app.ActivityTypeName__c;
+    //     cam.Name                             = app.MeetingApprovedNo__c;
+    //     cam.Name2__c                         = app.MeetingApprovedNo__c;
+    //     cam.MeetingApprovedNo__c             = app.MeetingApprovedNo__c;
+    //     cam.Meeting_Approved_No__c           = app.Id;
+    //     cam.StartDate                        = app.StartDate__c;
+    //     cam.EndDate                          = app.EndDate__c;
+    //     cam.Budget_Type__c                   = app.BudgetType__c;
+    //     cam.OfficeCategory__c                = app.OfficeCategory__c;
+    //     cam.Meeting_Type__c                  = app.MeetingType__c;
+    //     cam.Activity_Type_Name__c            = app.ActivityTypeName__c;
         
-        cam.WorkshopPlace__c                 = app.WorkshopPlace__c;
-        cam.HostName__c                      = app.HostName__c;
-        cam.cooperatorCompany__c             = app.CooperatorCompany__c;
-        cam.Convening_Participants_Num__c    = app.ConveningParticipantsNum__c;
-        cam.IF_Approved__c                   = true;
+    //     cam.WorkshopPlace__c                 = app.WorkshopPlace__c;
+    //     cam.HostName__c                      = app.HostName__c;
+    //     cam.cooperatorCompany__c             = app.CooperatorCompany__c;
+    //     cam.Convening_Participants_Num__c    = app.ConveningParticipantsNum__c;
+    //     cam.IF_Approved__c                   = true;
 
-        // OBPM瀵规帴 鏂板瀛楁
-        cam.Expected_Olympus_Attendance__c   = app.ExpectedOlympusAttendance__c;
-        cam.Expected_Hcp_Attendance__c       = app.ExpectedHcpAttendance__c;
-        cam.SponsorshipCategory__c           = app.SponsorshipCategory__c;
-        cam.IsPaidToSponsor__c               = app.IsPaidToSponsor__c;
-        cam.Activity_Type_Name__c            = app.ActivityTypeName__c;
+    //     // OBPM瀵规帴 鏂板瀛楁
+    //     cam.Expected_Olympus_Attendance__c   = app.ExpectedOlympusAttendance__c;
+    //     cam.Expected_Hcp_Attendance__c       = app.ExpectedHcpAttendance__c;
+    //     cam.SponsorshipCategory__c           = app.SponsorshipCategory__c;
+    //     cam.IsPaidToSponsor__c               = app.IsPaidToSponsor__c;
+    //     cam.Activity_Type_Name__c            = app.ActivityTypeName__c;
 
-        // 鏂板鎵�鏈変汉淇℃伅
-        List<String> user_nos = new List<String>();
-        user_nos.add(app.Applicant__c);
-        user_nos.addAll(app.Shared_Editing__c.split(','));
-        List<User> users = [select Id, Employee_No__c from User where Employee_No__c in :user_nos];
-        if (users != null && users.size() > 0) {
-            for (User u : users) {
-                if (u.Employee_No__c == app.Applicant__c) {
-                    cam.OwnerId = u.Id;
-                }
-            }
-        }
+    //     // 鏂板鎵�鏈変汉淇℃伅
+    //     List<String> user_nos = new List<String>();
+    //     user_nos.add(app.Applicant__c);
+    //     user_nos.addAll(app.Shared_Editing__c.split(','));
+    //     List<User> users = [select Id, Employee_No__c from User where Employee_No__c in :user_nos];
+    //     if (users != null && users.size() > 0) {
+    //         for (User u : users) {
+    //             if (u.Employee_No__c == app.Applicant__c) {
+    //                 cam.OwnerId = u.Id;
+    //             }
+    //         }
+    //     }
 
-        return cam;
-    }
+    //     return cam;
+    // }
 
     public static string DividingTypes(String IsCoOrganizingActivities,String ActivityTypeName){
         if('N'.equals(IsCoOrganizingActivities)){
@@ -408,4 +472,55 @@
         }
         return '鍏卞悓涓诲姙浼�';
     }
+
+    public static void SetSharing(List<User> users, List<Application_for_Conference_Adjudication__c> apps) {
+        if (users == null || users.size() <= 0 || apps == null || apps.size() <= 0) {
+            return;
+        }
+        // 鍒濆鍖栧弬鏁�
+        List<Application_for_Conference_Adjudication__Share> delete_list = new List<Application_for_Conference_Adjudication__Share>();
+        List<Application_for_Conference_Adjudication__Share> insert_list = new List<Application_for_Conference_Adjudication__Share>();
+        List<String> app_ids = new List<String>();
+        // 鍏变韩鐞嗙敱
+        String rowCauseShare = Schema.Application_for_Conference_Adjudication__Share.RowCause.Shared_Editor__c;
+        // 寰幆璁剧疆
+        for (Application_for_Conference_Adjudication__c app : apps) {
+            app_ids.add(app.Id);
+            System.debug('app.Shared_Editing__c: ' + app.Shared_Editing__c);
+
+            for (User u : users) {
+                if (String.isBlank(u.Employee_No__c)) {
+                    continue;
+                }
+                System.debug('u.Employee_No__c: ' + u.Employee_No__c);
+                if (app.Shared_Editing__c.contains(u.Employee_No__c)) {
+                    Application_for_Conference_Adjudication__Share aos = new Application_for_Conference_Adjudication__Share(
+                        RowCause = rowCauseShare,
+                        ParentId = app.Id,
+                        UserOrGroupId = u.Id,
+                        AccessLevel = 'Edit');
+                    insert_list.add(aos);
+                }
+            }
+        }
+        // 鍏堝垹闄�
+        delete_list = [select Id from Application_for_Conference_Adjudication__Share where ParentId in :app_ids and RowCause =: rowCauseShare];
+        if (delete_list != null && delete_list.size() > 0) {
+            delete delete_list;
+        }
+        // 鍐嶆柊澧�
+        if (insert_list != null && insert_list.size() > 0) {
+            insert insert_list;
+        }
+    }
+
+    public static String GetOfficeCategory(String OfficeCategory, Map<String, String> transferMap, BatchIF_Log__c iflog) {
+        if (String.isNotBlank(OfficeCategory)) {
+            List<String> categories = OfficeCategory.split(',');
+            if (categories != null && categories.size() > 0) {
+                return NFMUtil.getMapValue(transferMap, 'OfficeCategory__c', categories.get(0), iflog);
+            }
+        }
+        return null;
+    }
 }
\ No newline at end of file

--
Gitblit v1.9.1