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 |   42 ++++++++++++++++++++++++++++++++++--------
 1 files changed, 34 insertions(+), 8 deletions(-)

diff --git a/force-app/main/default/classes/SyncProvinceWIndowToSignForm.cls b/force-app/main/default/classes/SyncProvinceWIndowToSignForm.cls
index eda2ca5..b2fccf3 100644
--- a/force-app/main/default/classes/SyncProvinceWIndowToSignForm.cls
+++ b/force-app/main/default/classes/SyncProvinceWIndowToSignForm.cls
@@ -1,34 +1,60 @@
 global without sharing class SyncProvinceWIndowToSignForm implements Database.Batchable<sObject>, Database.Stateful {
     private Set<String> changedWindowProvince { get; set; }
+    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,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 from eSignForm__c ';
+        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 ';
+                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绠$悊鐪佷俊鎭�
-        Map<String, OCM_Management_Province__c> provinceMap = DNUpsertBatch.getManagementProvince();
+        Map<String, OCM_Management_Province__c> provinceMap = getManagementProvince();
         // 鍒ゆ柇闇�瑕佹洿鏂扮殑绛炬敹鍗�
         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