From e3c02c03dd2de442bbced87236f60a13a1cd154e Mon Sep 17 00:00:00 2001
From: 高章伟 <gaozhangwei@prec-tech.com>
Date: 星期四, 02 三月 2023 17:51:57 +0800
Subject: [PATCH] gzw 正式环境最新代码更新

---
 force-app/main/default/classes/AssetUpdateContractBatch.cls |   73 ++++++++++++++++++++++++++++++++++++
 1 files changed, 72 insertions(+), 1 deletions(-)

diff --git a/force-app/main/default/classes/AssetUpdateContractBatch.cls b/force-app/main/default/classes/AssetUpdateContractBatch.cls
index b886a87..91cbdcd 100644
--- a/force-app/main/default/classes/AssetUpdateContractBatch.cls
+++ b/force-app/main/default/classes/AssetUpdateContractBatch.cls
@@ -86,6 +86,7 @@
             ' , RecordType_DeveloperName__c  ' +
             '  from Maintenance_Contract__c '
             + ' where Status__c in (\'濂戠磩\',\'濂戠磩婧�浜哱') ';
+
         if (string.isNotBlank(TestID) ) {
             query += ' and id =: TestID';
         } else if (TestIDList != null && TestIDList.size() > 0) {
@@ -106,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 =
@@ -122,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;
@@ -261,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,
@@ -469,6 +539,7 @@
                 failedCount ++;
             }
         }
+        system.debug('11111111111111111111111updateAssetMap'+updateAssetMap.values());
         updateAsset (updateAssetMap.values());
     }
     global void finish(Database.BatchableContext BC) {

--
Gitblit v1.9.1