From 84b24801b8e0e071589ea57b29e64f73e13b1c0c Mon Sep 17 00:00:00 2001
From: 付煜 <fuyu3103346691@163.com>
Date: 星期一, 21 三月 2022 14:54:15 +0800
Subject: [PATCH] SWAG-CCEB67【委托】【重要】保有设备所属变更审批报错

---
 force-app/main/default/classes/AssetModifyBelongsChangeHandler.cls |   58 +++++++++++++++++++++++++++++++++++++++-------------------
 1 files changed, 39 insertions(+), 19 deletions(-)

diff --git a/force-app/main/default/classes/AssetModifyBelongsChangeHandler.cls b/force-app/main/default/classes/AssetModifyBelongsChangeHandler.cls
index a0f1e46..fce9c4a 100644
--- a/force-app/main/default/classes/AssetModifyBelongsChangeHandler.cls
+++ b/force-app/main/default/classes/AssetModifyBelongsChangeHandler.cls
@@ -41,11 +41,12 @@
         // 鍚堝悓璇环缂栫爜   缁翠慨鍚堝悓/淇濇湁璁惧闆嗗悎
         Map<String,List<Maintenance_Contract_Asset__c>> OppAssMap = new Map<String,List<Maintenance_Contract_Asset__c>>();
         // 鐩爣瀹㈡埛  鍚堝悓璇环缂栫爜set
-        Map <string, Set<Maintenance_Contract_Asset__c>> vMOppMap = new  map <string, Set<Maintenance_Contract_Asset__c>>();
+        Map <string, Set<Maintenance_Contract__c>> vMOppMap = new  map <string, Set<Maintenance_Contract__c>>();
+        // Map <string, Set<Maintenance_Contract_Asset__c>> vMOppMap = new  map <string, Set<Maintenance_Contract_Asset__c>>();
 
         //add by rentx LJPH-C493WW  
         //LJPH-C493WW  fy	銆愬鎵樸�� 銆愬骞翠繚鍚堝悓銆戝骞翠繚璁惧杞Щ閫犳垚鐨勫悎鍚岄棶棰�  start
-    	List<Maintenance_Contract__c> MainCList=new List<Maintenance_Contract__c>();
+    	Map<String,Maintenance_Contract__c> MainCMap=new Map<String,Maintenance_Contract__c>();
         //LJPH-C493WW  fy	銆愬鎵樸�� 銆愬骞翠繚鍚堝悓銆戝骞翠繚璁惧杞Щ閫犳垚鐨勫悎鍚岄棶棰�  end
         if(idList != null && idList.size() > 0){
     		
@@ -152,11 +153,18 @@
                         //update by rentx LJPH-C493WW  start
                         //LJPH-C493WW  fy	銆愬鎵樸�� 銆愬骞翠繚鍚堝悓銆戝骞翠繚璁惧杞Щ閫犳垚鐨勫悎鍚岄棶棰�  start
                         if (!vMOppMap.containsKey(accountIdStr)) {
-                            vMOppMap.put(accountIdStr, new Set<Maintenance_Contract_Asset__c>());
+                            vMOppMap.put(accountIdStr, new Set<Maintenance_Contract__c>());
+                            // vMOppMap.put(accountIdStr, new Set<Maintenance_Contract_Asset__c>());
                         }
-                        vMOppMap.get(accountIdStr).add(maAssetMap.get(asset.Id));
+                        Maintenance_Contract__c maintenancecontc=new Maintenance_Contract__c();
+                        maintenancecontc.Id = maAssetMap.get(asset.Id).Maintenance_Contract__c;
+                        maintenancecontc.Add_Number__c = maAssetMap.get(asset.Id).Maintenance_Contract__r.Add_Number__c;
+                        maintenancecontc.Management_Code__c = maAssetMap.get(asset.Id).Maintenance_Contract__r.Management_Code__c;
+                        vMOppMap.get(accountIdStr).add(maintenancecontc);
+                        // vMOppMap.get(accountIdStr).add(maAssetMap.get(asset.Id));
                         //LJPH-C493WW  fy	銆愬鎵樸�� 銆愬骞翠繚鍚堝悓銆戝骞翠繚璁惧杞Щ閫犳垚鐨勫悎鍚岄棶棰�  end
                         //update by rentx LJPH-C493WW  end
+                        System.debug('maAssetMap.get(asset.Id)=====锛�'+maAssetMap.get(asset.Id));
                     }
                 }
                 System.debug('154::: vMOppMap '+vMOppMap);
@@ -169,16 +177,20 @@
                 if (vMOppMap.size() > 0) {
                     for (String str : vMOppMap.keySet()) {
                         //update by rentx LJPH-C493WW  start
-                        Set<Maintenance_Contract_Asset__c> vset = vMOppMap.get(str);
+                        Set<Maintenance_Contract__c> vset = vMOppMap.get(str);
+                        //Set<Maintenance_Contract_Asset__c> vset = vMOppMap.get(str);
                         //LJPH-C493WW  fy	銆愬鎵樸�� 銆愬骞翠繚鍚堝悓銆戝骞翠繚璁惧杞Щ閫犳垚鐨勫悎鍚岄棶棰�  start
-                        for (Maintenance_Contract_Asset__c mcodes : vset) {
+                        for (Maintenance_Contract__c mcodes : vset) {
+                        //for (Maintenance_Contract_Asset__c mcodes : vset) {
                             Maintenance_Contract__c vmc = new Maintenance_Contract__c();
                             vmc.Name = accMap.get(str).Parent.Parent.Name + '澶氬勾淇濅慨';
                             vmc.Status__c = '濂戠磩';
                             system.debug('mcodes==='+mcodes);
                             // List<String> mcodestrList= mcodes.split('@');
-                            String mcode =mcodes.Maintenance_Contract__r.Management_Code__c;
-                            String mcid=(String)mcodes.Maintenance_Contract__c;
+                            // String mcode =mcodes.Maintenance_Contract__r.Management_Code__c;
+                            // String mcid=(String)mcodes.Maintenance_Contract__c;
+                            String mcode =mcodes.Management_Code__c;
+                            String mcid=(String)mcodes.Id;
                             // String addNumber =mcodestrList[1];
                             Map<String,Decimal> addnumMap = new Map<String,Decimal>();
                             if (String.isNotBlank(mcode) && mcode.substring(mcode.length()-3,mcode.length()-2) == '-' ) {
@@ -186,17 +198,24 @@
                                 Integer count = Integer.valueOf(mcode.substring(mcode.length()-2,mcode.length()));
                                 
                                 vmc.Management_CodeVM__c = startstr + String.valueOf(count +1).leftPad(2,'0');
-                                mcodes.Maintenance_Contract__r.Add_Number__c=count +1;
-                                addnumMap.put(mcid,mcodes.Maintenance_Contract__r.Add_Number__c);
+                                // mcodes.Maintenance_Contract__r.Add_Number__c=count +1;
+                                // addnumMap.put(mcid,mcodes.Maintenance_Contract__r.Add_Number__c);
+                                mcodes.Add_Number__c=count +1;
+                                addnumMap.put(mcid,mcodes.Add_Number__c);
                             }else{
-                                    system.debug('mcodes.Maintenance_Contract__r.Add_Number__c'+mcodes.Maintenance_Contract__r.Add_Number__c);
-                                    if(mcodes.Maintenance_Contract__r.Add_Number__c==null||mcodes.Maintenance_Contract__r.Add_Number__c==0){
+                                    system.debug('mcodes.Maintenance_Contract__r.Add_Number__c'+mcodes.Add_Number__c);
+                                    if(mcodes.Add_Number__c==null||mcodes.Add_Number__c==0){
+                                    // if(mcodes.Maintenance_Contract__r.Add_Number__c==null||mcodes.Maintenance_Contract__r.Add_Number__c==0){
                                         vmc.Management_CodeVM__c = mcode + '-01';
-                                        mcodes.Maintenance_Contract__r.Add_Number__c=1;
-                                        addnumMap.put(mcid,mcodes.Maintenance_Contract__r.Add_Number__c);
+                                        // mcodes.Maintenance_Contract__r.Add_Number__c=1;
+                                        // addnumMap.put(mcid,mcodes.Maintenance_Contract__r.Add_Number__c);
+                                        mcodes.Add_Number__c=1;
+                                        addnumMap.put(mcid,mcodes.Add_Number__c);
                                     }else{
-                                        Decimal addnum = mcodes.Maintenance_Contract__r.Add_Number__c+1;
-                                        if(mcodes.Maintenance_Contract__r.Add_Number__c<=9){
+                                        // Decimal addnum = mcodes.Maintenance_Contract__r.Add_Number__c+1;
+                                        // if(mcodes.Maintenance_Contract__r.Add_Number__c<=9){
+                                        Decimal addnum = mcodes.Add_Number__c+1;
+                                        if(mcodes.Add_Number__c<=9){
                                             vmc.Management_CodeVM__c = mcode + '-0'+addnum;
                                         }else{
                                             vmc.Management_CodeVM__c = mcode + '-'+addnum;
@@ -231,7 +250,7 @@
                                 //LJPH-C493WW  fy	銆愬鎵樸�� 銆愬骞翠繚鍚堝悓銆戝骞翠繚璁惧杞Щ閫犳垚鐨勫悎鍚岄棶棰�  start
                                 mctrobject.Id=mac.Maintenance_Contract__c;
                                 mctrobject.Add_Number__c=addnumMap.get(mac.Maintenance_Contract__c);
-                                MainCList.add(mctrobject);
+                                MainCMap.put(mctrobject.Id,mctrobject);
                                 system.debug('mctrobject.Id===='+mctrobject.Id);
                                 system.debug('mctrobject.Add_Number__c======='+mctrobject.Add_Number__c);
                                 //LJPH-C493WW  fy	銆愬鎵樸�� 銆愬骞翠繚鍚堝悓銆戝骞翠繚璁惧杞Щ閫犳垚鐨勫悎鍚岄棶棰�  end
@@ -316,8 +335,9 @@
         	update assetList;
         }
         //LJPH-C493WW  fy	銆愬鎵樸�� 銆愬骞翠繚鍚堝悓銆戝骞翠繚璁惧杞Щ閫犳垚鐨勫悎鍚岄棶棰�  start
-        if(MainCList != null && MainCList.size() > 0){
-            update MainCList;
+        if(MainCMap != null && MainCMap.size() > 0){
+            List<Maintenance_Contract__c> mainList=MainCMap.values();
+            update mainList;
         }
         //LJPH-C493WW  fy	銆愬鎵樸�� 銆愬骞翠繚鍚堝悓銆戝骞翠繚璁惧杞Щ閫犳垚鐨勫悎鍚岄棶棰�  end
     }

--
Gitblit v1.9.1