buli
2023-05-26 2c3d6d192684544c38df54ebb304ddab127c2c53
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);
                    }
                }
            }
            // 签收单更新