| | |
| | | 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管理省信息 |
| | |
| | | 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; |
| | | 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); |
| | | } |
| | | } |
| | | } |
| | | // 签收单更新 |
| | | if (updList.size() > 0) { |
| | | Database.SaveResult[] lsr = Database.update(updList, false); |