From 2c3d6d192684544c38df54ebb304ddab127c2c53 Mon Sep 17 00:00:00 2001
From: buli <137736985@qq.com>
Date: 星期五, 26 五月 2023 16:41:19 +0800
Subject: [PATCH] backup signoff

---
 force-app/main/default/classes/SyncProvinceWIndowToSignForm.cls |   56 +++++++++++++++++++++++++++++++++++---------------------
 1 files changed, 35 insertions(+), 21 deletions(-)

diff --git a/force-app/main/default/classes/SyncProvinceWIndowToSignForm.cls b/force-app/main/default/classes/SyncProvinceWIndowToSignForm.cls
index 711e8c0..b2fccf3 100644
--- a/force-app/main/default/classes/SyncProvinceWIndowToSignForm.cls
+++ b/force-app/main/default/classes/SyncProvinceWIndowToSignForm.cls
@@ -1,34 +1,34 @@
 global without sharing class SyncProvinceWIndowToSignForm implements Database.Batchable<sObject>, Database.Stateful {
     private Set<String> changedWindowProvince { get; set; }
-
-    global SyncProvinceWIndowToSignForm(Set<String> changedWindowProvince) {
-        this.changedWindowProvince = changedWindowProvince;
-    }
-
-    global Database.QueryLocator start(Database.BatchableContext BC) {
-        String query = 'select Sales_assistant_name_text__c,isProcessed__c,OCM_man_province_cus__c from eSignForm__c ';
-        if (changedWindowProvince != null && changedWindowProvince.size() > 0) {
-            if (!Test.isRunningTest()) {
-                query += '  where isProcessed__c = false and Group_purchase_PCL__c = false and OCM_man_province_cus__c = :changedWindowProvince ';
-            }
-            system.debug('SOQL:' + query);
-            return Database.getQueryLocator(query);
-        }
-        return null;
-    }
+    private final string JCKStr ='闆嗛噰璇�'; 
     private static Map<String,OCM_Management_Province__c> provinceManagementMap{set;get;}
     public static Map<String,OCM_Management_Province__c> getManagementProvince(){ 
         if(provinceManagementMap !=null && provinceManagementMap.keySet().size()>0 ){
             return provinceManagementMap;
         }
         provinceManagementMap = new Map<String,OCM_Management_Province__c>();
-        List <OCM_Management_Province__c > ompList = [select id, Name, SalesManage__c,GI_assistant__c,Window1__c   from OCM_Management_Province__c];
+        List <OCM_Management_Province__c > ompList = [select id, Name, SalesManage__c,GI_assistant__c,SP_assistant__c   from OCM_Management_Province__c];
         for (OCM_Management_Province__c omp: ompList) {
             provinceManagementMap.put(omp.Name,omp);
         }
         return provinceManagementMap;
     }
 
+    global SyncProvinceWIndowToSignForm(Set<String> changedWindowProvince) {
+        this.changedWindowProvince = changedWindowProvince;
+    }
+
+    global Database.QueryLocator start(Database.BatchableContext BC) {
+        String query = 'select Sales_assistant_name_text__c,isProcessed__c,OCM_man_province_cus__c,Statu_Achievements__r.Opportunity__r.Opportunity_Category__c,Group_purchase_PCL__c from eSignForm__c ';
+        if (changedWindowProvince != null && changedWindowProvince.size() > 0) {
+            if (!Test.isRunningTest()) {
+                query += '  where isProcessed__c = false and (OCM_man_province_cus__c = :changedWindowProvince or Group_purchase_PCL__c = true)';
+            }
+            system.debug('SOQL:' + query);
+            return Database.getQueryLocator(query);
+        }
+        return null;
+    }
     global void execute(Database.BatchableContext BC, List<eSignForm__c> signFormList) {
         system.debug('sign form list size:' + signFormList.size());
         // 鍙栧緱OCM绠$悊鐪佷俊鎭�
@@ -37,10 +37,24 @@
         List<eSignForm__c> updList = new List<eSignForm__c>();
         if (signFormList != null && signFormList.size() > 0) {
             for (eSignForm__c temp : signFormList) {
-                String provinceName = Test.isRunningTest() ? '鍖椾含甯�' : temp.OCM_man_province_cus__c;
-                if (provinceName != '' && provinceMap.containsKey(provinceName) && provinceMap.get(provinceName).Window1__c != null) {
-                    temp.Sales_assistant_name_text__c = provinceMap.get(provinceName).Window1__c;
-                    updList.add(temp);
+                String oppType = String.isBlank(temp.Statu_Achievements__r.Opportunity__r.Opportunity_Category__c)?'':temp.Statu_Achievements__r.Opportunity__r.Opportunity_Category__c;
+                system.debug('Opportunity Type:'+ oppType);
+                String provinceName = Test.isRunningTest() ? '鍖椾含甯�' : (temp.Group_purchase_PCL__c?JCKStr:temp.OCM_man_province_cus__c);
+                Boolean userGIId =(oppType == 'GI' || oppType == 'BF' || oppType == 'ET')?true:false;
+                if(provinceName != ''&& provinceMap.containsKey(provinceName)){
+                    String GIId = provinceMap.get(provinceName).GI_assistant__c!=null?provinceMap.get(provinceName).GI_assistant__c:'';
+                    STring SPId = provinceMap.get(provinceName).SP_assistant__c!=null?provinceMap.get(provinceName).SP_assistant__c:'';
+                    Boolean updateGIId = (userGIId && GIId!='' && temp.Sales_assistant_name_text__c != GIId) ? true:false;
+                    Boolean updateSPId = ((!userGIId) && SPId!='' && temp.Sales_assistant_name_text__c!=SPId)? true:false;
+                    if(updateGIId) {
+                        temp.Sales_assistant_name_text__c = provinceMap.get(provinceName).GI_assistant__c;
+                    } 
+                    if(updateSPId){
+                        temp.Sales_assistant_name_text__c = provinceMap.get(provinceName).SP_assistant__c;
+                    }
+                    if(updateGIId || updateSPId){
+                        updList.add(temp);
+                    }                            
                 }
             }
             // 绛炬敹鍗曟洿鏂�

--
Gitblit v1.9.1