From 8badb57ea2c82557850ad5b39281c3e8714eb119 Mon Sep 17 00:00:00 2001
From: liuyan <liuyan@prec-tech.com>
Date: 星期四, 24 十一月 2022 10:08:31 +0800
Subject: [PATCH] 科室信息漏传SPO问题

---
 force-app/main/default/classes/NFM703Controller.cls |   57 ++++++++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 52 insertions(+), 5 deletions(-)

diff --git a/force-app/main/default/classes/NFM703Controller.cls b/force-app/main/default/classes/NFM703Controller.cls
index e7a9490..4c4be18 100644
--- a/force-app/main/default/classes/NFM703Controller.cls
+++ b/force-app/main/default/classes/NFM703Controller.cls
@@ -1,3 +1,8 @@
+/**********************************************************************
+ * @msg:
+ *   1.涓婁紶OBPM鐨勬暟鎹噷闇�瑕佸寘鍚敵璇蜂汉鍜屽叾浠栧叡鏈夋潈闄愮殑浜猴紝浣嗕笉闇�瑕佸尯鍒�
+ *   2.浼犺緭鏃朵娇鐢ㄥ憳宸ョ紪鍙凤紝澶氫汉鏃剁敤閫楀彿鍒嗛殧
+*************************************************************************/
 public without sharing class NFM703Controller {
 
     private static final String LOG_TYPE = 'NFM703';
@@ -32,7 +37,7 @@
 		public String ActivityTypeName; //娲诲姩褰㈠紡
 		public String ExpectedOlympusAttendance; //棰勮鍙備細Olympus浜烘暟
 		public String ExpectedHcpAttendance; //棰勮鍙備細HCP浜烘暟
-		public String BudgetType; //棰勭畻绫诲瀷=Budget_Type__c
+		public String BudgetType; //棰勭畻绫诲瀷=Implementation_Purpose__c
 		public String OfficeCategory; //绉戝鍒嗙被=OfficeCategory__c
 		public String MeetingType; //浼氳绫诲瀷=Meeting_Type__c
 		public String StateMaster; //鐪�=State_Master__c
@@ -40,6 +45,7 @@
 		public String WorkshopPlace; //浼氬満鍦扮偣=WorkshopPlace__c
 		public String HostName; //浼氳涓诲姙鏂�=HostName__c
 		public String CooperatorCompany; //浼氳鎵垮姙鏂�=cooperatorCompany__c
+        public String SharedEditing; // 鐢宠浜�+鍏卞悓缂栬緫浜�=Shared_Editing__c
     }
     @future(callout = true)
     public static void callout(String iflog_Id, List < String > camIdList) {
@@ -65,7 +71,7 @@
 	    								Name,Num__c,
 	    								StartDate,
 	    								EndDate,
-	    								Budget_Type__c,
+	    								Implementation_Purpose__c,
 	    								OfficeCategory__c,
 	    								Meeting_Type__c,
 	    								State_Master__r.Name,
@@ -75,7 +81,10 @@
                                         Expected_Hcp_Attendance__c,
                                         Activity_Type_Name__c,
 	    								HostName__c,
-	    								cooperatorCompany__c,
+	    								cooperatorCompany__c, 
+                                        Owner.Employee_No__c, 
+                                        Shared_Editing__c, 
+                                        Carbon_Copy__c, 
 	    								IF_Approved__c from Campaign where id in: camIdList];
 	    String logstr = ' ' + 'NumberOfRecord=' + camList.size() + '\n';
 
@@ -90,6 +99,19 @@
 		mon.TransmissionDateTime = nowStr;
 		mon.Text = '';
 
+        Map<String, String> transferMap = new Map<String, String>();
+        List<BatchIF_Transfer__c> transferList = [select Table__c,
+                                  Column__c,
+                                  External_value__c,
+                                  Internal_value__c
+                                  from BatchIF_Transfer__c
+                                  where Dropped_Flag__c = false
+                                          and (Table__c = 'Application_for_Conference_Adjudication__c')
+                                          ];
+        for (BatchIF_Transfer__c t : transferList) {
+            transferMap.put(t.Column__c + t.Internal_value__c, t.External_value__c);
+        }
+
         try {
         		
         	for (Campaign cam : camList) {
@@ -99,8 +121,8 @@
                 ged.Name 			  = cam.Name;
         		ged.StartDate 		  = NFMUtil.formatDate2StrSpo(cam.StartDate);
         		ged.EndDate 		  = NFMUtil.formatDate2StrSpo(cam.EndDate);
-                ged.BudgetType        = cam.Budget_Type__c;
-				ged.OfficeCategory 	  = cam.OfficeCategory__c;
+                ged.BudgetType        = cam.Implementation_Purpose__c;
+				ged.OfficeCategory 	  = NFMUtil.getMapValue(transferMap, 'OfficeCategory__c', cam.OfficeCategory__c, iflog);
 				ged.MeetingType 	  = cam.Meeting_Type__c;
                 ged.ActivityTypeName  = cam.Activity_Type_Name__c;
 				ged.StateMaster 	  = cam.State_Master__r.Name;                 
@@ -110,6 +132,8 @@
 				ged.CooperatorCompany = cam.cooperatorCompany__c;
                 ged.ExpectedOlympusAttendance = String.valueOf(cam.Expected_Olympus_Attendance__c);
                 ged.ExpectedHcpAttendance = String.valueOf(cam.Expected_Hcp_Attendance__c);
+                // 鏆傛椂瀹氫箟涓轰富鎷呭綋锛屽悗缁坊鍔犲叾浠栧叡浜汉
+                ged.SharedEditing     = Modify_Sharing(cam.Owner.Employee_No__c, cam.Shared_Editing__c, cam.Carbon_Copy__c);
                 gds.GeData.add(ged);
 
     		}
@@ -222,4 +246,27 @@
         upsert rowDataSFDC;
 
     }
+
+    public static String Modify_Sharing(String owner, String shared_editors, String carbon_copies) {
+        if (String.isBlank(owner) && String.isBlank(shared_editors) && String.isBlank(carbon_copies)) {
+            return '';
+        }
+        String ret = '';
+        if (String.isNotBlank(owner)) {
+            ret = owner;
+        }
+        if (String.isNotBlank(shared_editors)) {
+            if (ret.length() > 0) {
+                ret = ret + ',';
+            }
+            ret = ret + shared_editors;
+        }
+        if (String.isNotBlank(carbon_copies)) {
+            if (ret.length() > 0) {
+                ret = ret + ',';
+            }
+            ret = ret + carbon_copies;
+        }
+        return ret;
+    }
 }
\ No newline at end of file

--
Gitblit v1.9.1