From f4eeecf7ee6c1e8ac49e86c5c6c22c7875a8ecea Mon Sep 17 00:00:00 2001
From: 沙世明 <shashiming@prec-tech.com>
Date: 星期二, 22 三月 2022 11:22:58 +0800
Subject: [PATCH] 新增后台用统计字段,成功上传obpm后设置成true

---
 force-app/main/default/classes/UploadOBPMController.cls |   74 +++++++++++++++++++++++++++++--------
 1 files changed, 58 insertions(+), 16 deletions(-)

diff --git a/force-app/main/default/classes/UploadOBPMController.cls b/force-app/main/default/classes/UploadOBPMController.cls
index d67f5c7..0793bb5 100644
--- a/force-app/main/default/classes/UploadOBPMController.cls
+++ b/force-app/main/default/classes/UploadOBPMController.cls
@@ -1,9 +1,10 @@
 public without sharing class UploadOBPMController {
     private String Id { get; set; }
     private String errorStr { get; set; }
-    public boolean hasError { get; set; }
+    public Boolean hasError { get; set; }
     public List<OBPMInfo> OBPMInfoList { get; set; }
     public Integer lineNo { get; set; }
+    public Boolean IF_Approved { get; set; }
 
     public UploadOBPMController() {
         Id = ApexPages.currentPage().getParameters().get('id');
@@ -13,17 +14,54 @@
         hasError = false;
         OBPMInfoList = new  List<OBPMInfo>();
         
-        List<Campaign> camList = [select id, Name, Shared_User__c from Campaign where id = :Id];
-        if (camList.size() == 0) {
+        Campaign cam = [select id, Name, Shared_User__c, IF_Approved__c, Shared_Editing__c, Carbon_Copy__c from Campaign where id = :Id];
+        if (cam == null || String.isBlank(cam.Id)) {
             ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR, '瀛︿細涓嶅瓨鍦ㄣ��'));
             hasError = true;
             return;
         }
+
+        IF_Approved = cam.IF_Approved__c;
+
+        List<String> user_nos = new List<String>();
+        if (String.isNotBlank(cam.Shared_Editing__c)) {
+            user_nos.addAll(cam.Shared_Editing__c.split(','));
+        }
+        if (String.isNotBlank(cam.Carbon_Copy__c)) {
+            user_nos.addAll(cam.Carbon_Copy__c.split(','));
+        }
+        List<User> users = new List<User>();
+        if (user_nos.size() > 0) {
+            users = [select Id, Employee_No__c from User where Employee_No__c in :user_nos];
+        }
+
         Integer line = 0;
-        for (Integer i = 0; i < 5; i++) {
-            line += 1;
-            OBPMInfo temp = new OBPMInfo(line, new Campaign());
-            OBPMInfoList.add(temp);
+        if (users != null && users.size() > 0) {
+            for(User u : users) {
+                line += 1;
+                Campaign t_cam = new Campaign();
+                t_cam.Shared_User__c = u.Id;
+                OBPMInfo temp = new OBPMInfo(line, t_cam);
+                if (String.isNotBlank(cam.Shared_Editing__c) && cam.Shared_Editing__c.contains(u.Employee_No__c)) {
+                    temp.Role = '鍏卞悓缂栬緫浜�';
+                } else if (String.isNotBlank(cam.Carbon_Copy__c) && cam.Carbon_Copy__c.contains(u.Employee_No__c)) {
+                    temp.Role = '鎶勯�佷汉';
+                } 
+                OBPMInfoList.add(temp);
+            }
+            if (users.size() < 5) {
+                Integer line_add = 5 - users.size();
+                for (Integer i = 0; i < line_add; i++) {
+                    OBPMInfo temp = new OBPMInfo(line, new Campaign());
+                    OBPMInfoList.add(temp);
+                }
+            }
+        } else {
+            for (Integer i = 0; i < 5; i++) {
+                line += 1;
+                OBPMInfo temp = new OBPMInfo(line, new Campaign());
+                OBPMInfoList.add(temp);
+            }
         }
     }
 
@@ -61,7 +99,7 @@
         return null;
     }
 
-    public PageReference uploadOBPM() {
+    public void uploadOBPM() {
         List<String> userIdList = new List<String>();
         Map<String,String> userMap = new Map<String,String>();
         List<Campaign> camList = new List<Campaign>();
@@ -72,8 +110,8 @@
             }
         }
         if(userIdList.size() > 0){
-            String SharedEditing;
-            String CarbonCopy;
+            String SharedEditing = '';
+            String CarbonCopy = '';
             List<User> userList = [select id, Employee_No__c from User where id = :userIdList];
             for(User user : userList){
                 userMap.put(user.id, user.Employee_No__c);
@@ -82,18 +120,19 @@
                 if(String.isNotBlank(ob.cam.Shared_User__c)){
                     if(userMap.containsKey(ob.cam.Shared_User__c)){
                         if(ob.Role == '鍏卞悓缂栬緫浜�'){
-                            SharedEditing += userMap.get(ob.cam.Shared_User__c) + ',';
+                            SharedEditing += String.isNotBlank(userMap.get(ob.cam.Shared_User__c))? userMap.get(ob.cam.Shared_User__c) + ',' : '';
                         } else if(ob.Role == '鎶勯�佷汉'){
-                            CarbonCopy += userMap.get(ob.cam.Shared_User__c) + ',';
+                            CarbonCopy += String.isNotBlank(userMap.get(ob.cam.Shared_User__c))? userMap.get(ob.cam.Shared_User__c) + ',' : '';
                         }
                     }
                 }
             }
             //鎴彇鎺塶ull鍜屾渶鍚庣殑閫楀彿
-            SharedEditing = SharedEditing.substring(4, SharedEditing.lastIndexOf(','));
-            CarbonCopy = CarbonCopy.substring(4, CarbonCopy.lastIndexOf(','));
+            SharedEditing = SharedEditing.length() > 0 ? SharedEditing.substring(0, SharedEditing.lastIndexOf(',')) : '';
+            CarbonCopy = CarbonCopy.length() > 0 ? CarbonCopy.substring(0, CarbonCopy.lastIndexOf(',')) : '';
             cam.Shared_Editing__c = SharedEditing;
             cam.Carbon_Copy__c = CarbonCopy;
+            cam.Is_Upload_To_OBPM_Success__c = true;
             camList.add(cam);
         }
         errorStr = '';
@@ -101,15 +140,18 @@
         try {
             if(camList.size() > 0){
                 update camList;
+
+                // 703鎺ュ彛瑙﹀彂
+                List<String> cam_ids = new List<String>();
+                cam_ids.add(cam.Id);
+                NFM703Controller.callout(null,cam_ids);
             }
         } catch (System.Exception e) {
             Database.rollback(sp);
             ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR, e.getMessage()));
             errorStr = e.getMessage();
             hasError = true;
-            return null;
         }
-        return null;
     }
 
     public class OBPMInfo {

--
Gitblit v1.9.1