From dec96e2f8b84ea04d773c0c520c39b0822912ee3 Mon Sep 17 00:00:00 2001 From: D C <chenbangcai@prec-tech.com> Date: 星期五, 26 五月 2023 10:32:20 +0800 Subject: [PATCH] Merge branch 'master' of http://47.92.229.245:8089/r/OlyMEBG --- force-app/main/default/classes/SummaryConsumptionRateBatch.cls | 62 +++++++++++++++++++++++++++++++ 1 files changed, 62 insertions(+), 0 deletions(-) diff --git a/force-app/main/default/classes/SummaryConsumptionRateBatch.cls b/force-app/main/default/classes/SummaryConsumptionRateBatch.cls new file mode 100644 index 0000000..ec9dced --- /dev/null +++ b/force-app/main/default/classes/SummaryConsumptionRateBatch.cls @@ -0,0 +1,62 @@ +/************************************************************************************************** +@Author: Denny闄堝府鎵� +@Name: SummaryConsumptionRateBatch +@CreateDate: 2023/05/08 +@Description: 澶氬勾淇濅慨鍚堝悓 鍚堝悓娑堣垂鐜囧垎瀛愬垎姣嶈祴鍊� +@Version 1.0 +*****************************************************************************************************/ +global class SummaryConsumptionRateBatch implements Database.Batchable<sObject>,Database.Stateful { + + global SummaryConsumptionRateBatch() { + } + + global List<Maintenance_Contract__c> start(Database.BatchableContext bc) { + List<Maintenance_Contract__c> mcUpdateList = [SELECT Id,VM_Consumption_Rate_Molecular__c,VM_Consumption_Rate_Denominator__c FROM + Maintenance_Contract__c WHERE RecordType_Name__c = '澶氬勾淇濅慨鍚堝悓' AND RecordType_DeveloperName__c = 'VM_Contract' AND (Status__c = '濂戠磩' OR Status__c = '濂戠磩婧�浜�')]; + return mcUpdateList; + } + + global void execute(Database.BatchableContext BC, list<Maintenance_Contract__c> mcUpdateList) { + + List<String> mcIds = new List<String>(); + for (Maintenance_Contract__c mcObj : mcUpdateList) { + mcIds.add(mcObj.Id); + } + List<Maintenance_Contract_Asset__c> scope = [SELECT Id,Summary_FZ__c,Summary_FM_Year__c,Maintenance_Contract__c FROM Maintenance_Contract_Asset__c WHERE Maintenance_Contract__c IN :mcIds + AND Maintenance_Contract__r.RecordType_DeveloperName__c ='VM_Contract' AND Asset__r.RecordType.Name!='澶囧搧' AND + (Maintenance_Contract__r.Status__c='濂戠磩' OR Maintenance_Contract__r.Status__c='濂戠磩婧�浜�')]; + //2023/05/08 澶氬勾淇濅慨鍚堝悓 鍚堝悓娑堣垂鐜囧垎瀛愬垎姣嶈祴鍊� start + List<String> mcIdList= new List<String>(); + Map<Id,Decimal> vmMolecularMap = new Map<Id,Decimal>(); + Map<Id,Decimal> vmDenominatorMap = new Map<Id,Decimal>(); + for ( Maintenance_Contract_Asset__c mc : scope) { + Decimal vmMolecular = 0; + Decimal vmDenominator = 0; + if (vmMolecularMap.containsKey(mc.Maintenance_Contract__c)) { + vmMolecular = vmMolecularMap.get(mc.Maintenance_Contract__c); + vmDenominator = vmDenominatorMap.get(mc.Maintenance_Contract__c); + } + //Summary_FM_Year__c 鍒嗘瘝 Summary_FZ__c 鍒嗗瓙 + vmMolecular += (mc.Summary_FZ__c == null ? 0 : mc.Summary_FZ__c); + vmDenominator += (mc.Summary_FM_Year__c == null ? 0 : mc.Summary_FM_Year__c); + + mcIdList.add(mc.Maintenance_Contract__c); + + vmMolecularMap.put(mc.Maintenance_Contract__c,vmMolecular); + vmDenominatorMap.put(mc.Maintenance_Contract__c,vmDenominator); + } + + for (Maintenance_Contract__c mcObj : mcUpdateList) { + if (vmMolecularMap.containsKey(mcObj.Id)) { + mcObj.VM_Consumption_Rate_Molecular__c = vmMolecularMap.get(mcObj.Id); + mcObj.VM_Consumption_Rate_Denominator__c = vmDenominatorMap.get(mcObj.Id)*3; + } + } + update mcUpdateList; + //2023/05/08 澶氬勾淇濅慨鍚堝悓 鍚堝悓娑堣垂鐜囧垎瀛愬垎姣嶈祴鍊� end + + } + + global void finish(Database.BatchableContext BC) { + } +} \ No newline at end of file -- Gitblit v1.9.1