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