From 928399eceec50e3d37ea08669a12789a9410a9d2 Mon Sep 17 00:00:00 2001
From: 沙世明 <shashiming@prec-tech.com>
Date: 星期二, 22 十一月 2022 16:51:16 +0800
Subject: [PATCH] 111
---
force-app/main/default/classes/AssetUpdateContractBatch.cls | 78 ++++++++++++++++++++++++++++++++++++--
1 files changed, 73 insertions(+), 5 deletions(-)
diff --git a/force-app/main/default/classes/AssetUpdateContractBatch.cls b/force-app/main/default/classes/AssetUpdateContractBatch.cls
index 5c3fda2..91cbdcd 100644
--- a/force-app/main/default/classes/AssetUpdateContractBatch.cls
+++ b/force-app/main/default/classes/AssetUpdateContractBatch.cls
@@ -85,10 +85,8 @@
' previousTotalContractAmount__c , currentTotalContractAmountVM__c , currentTotalGuaranteePrice__c '+
' , RecordType_DeveloperName__c ' +
' from Maintenance_Contract__c '
- + ' where Status__c in (\'濂戠磩\',\'濂戠磩婧�浜哱') '
- //URF闄愭鍚堝悓2鏈� LY 20220811 start
- + 'and URF_Contract__c = false';
- //URF闄愭鍚堝悓2鏈� LY 20220811 end
+ + ' where Status__c in (\'濂戠磩\',\'濂戠磩婧�浜哱') ';
+
if (string.isNotBlank(TestID) ) {
query += ' and id =: TestID';
} else if (TestIDList != null && TestIDList.size() > 0) {
@@ -109,6 +107,25 @@
global void execute(Database.BatchableContext BC,
list<Maintenance_Contract__c> MCList) {
+ //URF闄愭鍚堝悓2鏈� LY 20220908 start
+ set<id> mcIDSet = new set<id>();
+ for (Maintenance_Contract__c tempMCA : MCList) {
+ mcIDSet.add(tempMCA.id);
+ }
+ //鑾峰彇闈為檺娆″悎鍚�
+ List<Maintenance_Contract__c> mcPList =[select id , previousTotalRepairAmount__c , currentTotalRepairAmount__c ,
+ previousTotalContractAmount__c , currentTotalContractAmountVM__c , currentTotalGuaranteePrice__c
+ , RecordType_DeveloperName__c
+ from Maintenance_Contract__c
+ where URF_Contract__c = false and ID in :mcIDSet];
+ //鑾峰彇闄愭鍚堝悓
+ List<Maintenance_Contract__c> urfMCList =[select id , previousTotalRepairAmount__c , currentTotalRepairAmount__c ,
+ previousTotalContractAmount__c , currentTotalContractAmountVM__c , currentTotalGuaranteePrice__c
+ , RecordType_DeveloperName__c
+ from Maintenance_Contract__c
+ where URF_Contract__c = true and ID in :mcIDSet];
+
+ //URF闄愭鍚堝悓2鏈� LY 20220908 end
map<string, asset> updateAssetMap = new map<string, asset>();
map<string, Maintenance_Contract__c> UpdateMCMap =
@@ -125,7 +142,7 @@
Set<ID> allAssetIDSet = new Set<ID>();
List<asset> allAssetList = new List<asset>();
// 鍒濆鍖栫淮淇悎鍚屾秷璐圭巼鐩稿叧閲戦瀛楁涓�0;
- for (Maintenance_Contract__c tempMC : MCList) {
+ for (Maintenance_Contract__c tempMC : mcPList) {
mcIDmap.put(tempMC.id,null);
tempMC.currentTotalRepairAmount__c = 0;
tempMC.previousTotalRepairAmount__c = 0;
@@ -264,6 +281,56 @@
}
}
+ //URF闄愭鍚堝悓2鏈� LY 20220908 start
+ Map<string,Maintenance_Contract__c> mcURFIDmap = new Map<string,Maintenance_Contract__c>();
+ for (Maintenance_Contract__c tempURFMC : urfMCList) {
+ mcURFIDmap.put(tempURFMC.Id, null);
+ }
+ //妫�绱㈡湰娆¢檺娆″悎鍚岀殑淇濇湁璁惧
+ List<Maintenance_Contract_Asset__c> mcURFList =
+ [select Id, Asset__c, Maintenance_Contract__c,
+ Estimate_Cost_formula__c,
+ startDate_sum__c,
+ endDate_sum__c,
+ No_discount__c,
+ GuaranteePrice_Amount_Text__c,
+ Maintenance_Contract__r.Status__c,
+ Maintenance_Contract__r.Name,
+ Maintenance_Contract__r.Contract_End_Date__c,
+ Maintenance_Contract__r.Contract_Start_Date__c,
+ Maintenance_Contract__r.RecordType_DeveloperName__c,
+ Maintenance_Contract__r.Estimation_Id__r.Submit_quotation_day__c,
+ Maintenance_Contract__r.RecordType.DeveloperName
+ , ifHaveleftInPrevious__c
+ from Maintenance_Contract_Asset__c
+ where Maintenance_Contract__c in: mcURFIDmap.keyset()
+ ];
+ Set<ID> allURFAssetIDSet = new Set<ID>();
+ Map<string, Maintenance_Contract_Asset__c> assetIDtoURF =new Map<string, Maintenance_Contract_Asset__c>();
+ for (Maintenance_Contract_Asset__c mcaURF : mcURFList) {
+ // 鎵惧嚭鏉ユ绱㈠嚭鏉ョ殑缁翠慨鍚堝悓淇濇湁涓殑鏈�鏂扮殑
+ if (assetIDtoURF.containsKey(mcaURF.Asset__c)) {
+ Maintenance_Contract_Asset__c tempURF =
+ assetIDtoURF.get(mcaURF.Asset__c);
+ if (tempURF.endDate_sum__c < mcaURF.endDate_sum__c) {
+ assetIDtoURF.put(mcaURF.Asset__c, mcaURF);
+ }
+ } else {
+ assetIDtoURF.put(mcaURF.Asset__c, mcaURF);
+ }
+ allURFAssetIDSet.add(mcaURF.Asset__c);
+ }
+ List<asset> allURFAssetList =[select id, URF_Maintenance_Contract__c
+ from asset
+ where id in: allURFAssetIDSet];
+ for (asset ass : allURFAssetList) {
+ Maintenance_Contract_Asset__c tempMCA =
+ assetIDtoURF.get(ass.Id);
+ ass.URF_Maintenance_Contract__c = tempMCA.Maintenance_Contract__c;
+ updateAssetMap.put(ass.id, ass);
+
+ }
+ //URF闄愭鍚堝悓2鏈� LY 20220908 end
//妫�绱㈠嚭鍘嗗眾淇濇湁璁惧
list<Maintenance_Contract_Asset__c> allMCAList =
[select Id, Asset__c, Maintenance_Contract__c,
@@ -472,6 +539,7 @@
failedCount ++;
}
}
+ system.debug('11111111111111111111111updateAssetMap'+updateAssetMap.values());
updateAsset (updateAssetMap.values());
}
global void finish(Database.BatchableContext BC) {
--
Gitblit v1.9.1