From d8dc84a3d56df839895f1c417a4d9cbee763d262 Mon Sep 17 00:00:00 2001
From: 高章伟 <gaozhangwei@prec-tech.com>
Date: 星期五, 03 三月 2023 14:50:59 +0800
Subject: [PATCH] gzw 测试环境代码更新

---
 force-app/main/default/classes/Product2Handler.cls |  144 ++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 138 insertions(+), 6 deletions(-)

diff --git a/force-app/main/default/classes/Product2Handler.cls b/force-app/main/default/classes/Product2Handler.cls
index 44e5cc5..061c194 100644
--- a/force-app/main/default/classes/Product2Handler.cls
+++ b/force-app/main/default/classes/Product2Handler.cls
@@ -16,6 +16,9 @@
         // SWAG-BHE9GK LHJ 绔炰簤瀵规墜浜у搧鑷姩缂栫爜 Start
         SetCompetitorCode();
         // SWAG-BHE9GK LHJ 绔炰簤瀵规墜浜у搧鑷姩缂栫爜 End
+        // WLIG-CKKA4M xxf 銆愬鎵樸�戙�愪骇鍝佷富鏁版嵁銆戞敞鍐岃瘉鏇存柊鍚庨儴鍒嗗瓧娈典俊鎭湭鑷姩浠e叆 Start
+        AutomaticallyBringData();
+        // WLIG-CKKA4M xxf 銆愬鎵樸�戙�愪骇鍝佷富鏁版嵁銆戞敞鍐岃瘉鏇存柊鍚庨儴鍒嗗瓧娈典俊鎭湭鑷姩浠e叆 End
     }
     protected override void beforeUpdate() {
         beforeSetValue();
@@ -36,31 +39,160 @@
     private void SetCompetitorCode() {
         Boolean SelctFlg = False;
         list<AggregateResult> proList;
+        //甯﹂噺閲囪喘淇敼 start fy
+        list<AggregateResult> proListsc;
+        //甯﹂噺閲囪喘淇敼 end fy
         String strPC = '';
+        //甯﹂噺閲囪喘淇敼 start fy
+        String strPCsc = '';
+        //甯﹂噺閲囪喘淇敼 end fy
         Integer i = 1;
 
+        String ProductRecordTypes = System.Label.ProductRecordTypeID;
+        String[] RecordTypes = String.isNotBlank(ProductRecordTypes) ? ProductRecordTypes.split(',') : null;
+
         for (Product2 nObj : newList) {
-            if (nObj.Competitor_product_dummy__c) {
+            //甯﹂噺閲囪喘淇敼 start fy
+            String RecordTypeString = '';
+            if(nObj.RecordTypeId!=null){
+                RecordTypeString=String.valueof(nObj.RecordTypeId).substring(0,15);
+            }
+            // nObj.Competitor_product_dummy__c=System.Label.ProductRecordTypeID.contains(RecordTypeString);
+            // if (nObj.Competitor_product_dummy__c) {
+            if (System.Label.ProductRecordTypeID.contains(RecordTypeString)) {
                 SelctFlg = True;
             }
+            //甯﹂噺閲囪喘淇敼 end fy
         }
         if (SelctFlg) {
-            proList = [Select Max(ProductCode) PC From Product2 Where ProductCode Like 'SD%'];
+            proList = [Select Max(ProductCode) PC From Product2 Where ProductCode Like 'SD%' and ProductCode!='SD999999'];
             if (proList != null && proList.size() > 0) {
                 strPC = String.valueof(proList[0].get('PC'));
             }
+            //甯﹂噺閲囪喘 start fy
+            proListsc = [Select Max(ProductCode) PC From Product2 Where ProductCode Like 'SC%'];
+            if (proListsc != null && proListsc.size() > 0) {
+                strPCsc = String.valueof(proListsc[0].get('PC'));
+            }
+            //甯﹂噺閲囪喘 end fy
         }
         for (Product2 nObj : newList) {
-            if (nObj.Competitor_product_dummy__c && strPC.length() == 8
-                    && proList != null && proList.size() > 0 ) {
-                Integer num = Integer.valueOf(strPC.SubString(2,strPC.length())) + i;
-                nObj.ProductCode  = 'SD' + String.valueOf(num).leftpad(6,'0');
+            //甯﹂噺閲囪喘 start fy
+            String RecordTypeString = '';
+            if(nObj.RecordTypeId!=null){
+                RecordTypeString=String.valueof(nObj.RecordTypeId).substring(0,15);
+            }
+            // if (nObj.Competitor_product_dummy__c && strPC.length() == 8
+            // if (System.Label.ProductRecordTypeID.contains(RecordTypeString) && strPC.length() == 8
+            if (System.Label.ProductRecordTypeID.contains(RecordTypeString)) {
+            //甯﹂噺閲囪喘 end fy
+                    // && proList != null && proList.size() > 0 ) {
+                // Integer num = Integer.valueOf(strPC.SubString(2,strPC.length())) + i;
+                Integer num = String.isNotBlank(strPC) ? Integer.valueOf(strPC.SubString(2,strPC.length())) + i : i;
+                //甯﹂噺閲囪喘 start fy
+                Integer numsc = String.isNotBlank(strPCsc) ? Integer.valueOf(strPCsc.SubString(2,strPCsc.length())) + i : i;
+                // if(RecordTypeString=='0129D000001NacC'){
+                if(RecordTypes != null && RecordTypes.size() > 1 && RecordTypeString == RecordTypes[1]){
+                    nObj.ProductCode  = 'SC' + String.valueOf(numsc).leftpad(8,'0');
+                }else{
+                    nObj.ProductCode  = 'SD' + String.valueOf(num).leftpad(6,'0');
+                }
+                //甯﹂噺閲囪喘 end fy
+                // nObj.ProductCode  = 'SD' + String.valueOf(num).leftpad(6,'0');
                 i++;
             }
         }
     }
     // SWAG-BHE9GK LHJ 绔炰簤瀵规墜浜у搧鑷姩缂栫爜 End
 
+
+    //WLIG-CKKA4M xxf 銆愬鎵樸�戙�愪骇鍝佷富鏁版嵁銆戞敞鍐岃瘉鏇存柊鍚庨儴鍒嗗瓧娈典俊鎭湭鑷姩浠e叆 Start
+    private void AutomaticallyBringData() {
+        List<String> noNewList = new List<String>();
+        for(Product2 prd : newList){
+            if (prd.Asset_Model_No__c != null) {
+                noNewList.add(prd.Asset_Model_No__c);
+            }
+        }
+        if (!noNewList.isEmpty()) {
+            
+            List<Product2> prdList = [select Id, Name,Asset_Model_No__c,MDM_Name__c,
+                                    Maintenance_Price_Year__c,Extend_new_product_gurantee_MD__c,
+                                    Extend_Gurantee_Start_MD__c,Extend_Gurantee_End_MD__c,
+                                    Entend_gurantee_period_MD__c,Extend_new_product_gurantee__c,
+                                    Extend_Gurantee_Start__c,Extend_Gurantee_End__c,Entend_gurantee_period__c,
+                                    CanNotCancelledGurantee__c,Service_Category1__c,
+                                    Service_Category2__c,Service_Category3__c,
+                                    Service_Category4__c,Service_Category5__c,
+                                    Service_Category6__c,Service_Category7__c,
+                                    Can_Repair__c,RepairListPriceLevelA__c,
+                                    RepairListPriceLevelB__c,RepairListPriceLevelC__c,
+                                    PartSupplyFinishDate__c,EndSaleDate__c,ProductClass__c,ProductCategory__c,
+                                    Period_Filter_Classify1__c,Period_Filter_Classify2__c,Period_Filter_Classify3__c,
+                                    Intra_Trade_Service_RMB_Date1__c,Intra_Trade_Service_RMB_Date2__c,
+                                    Intra_Trade_Service_RMB_EndDate1__c,Intra_Trade_Service_RMB_EndDate2__c,
+                                    Intra_Trade_Service_RMB_1__c,Intra_Trade_Service_RMB_2__c
+                                    from Product2
+                                    where Asset_Model_No__c in :noNewList
+                                    order by CreatedDate desc];
+            if (prdList.isEmpty()) {
+                return;
+            }
+            Map<String, Product2> prdMap = new Map<String, Product2>();
+            for (Product2 pro2 : prdList) {
+                if (!prdMap.isEmpty() && prdMap.containskey(pro2.Asset_Model_No__c)) {
+                } else {
+                    prdMap.put(pro2.Asset_Model_No__c, pro2);
+                }
+            }
+        
+            for(Product2 prd : newList){
+                if (prdMap.containskey(prd.Asset_Model_No__c)){
+                    prd.Maintenance_Price_Year__c = prdMap.get(prd.Asset_Model_No__c).Maintenance_Price_Year__c;//缁翠慨鍚堝悓鎶ヤ环
+                    prd.CanNotCancelledGurantee__c = prdMap.get(prd.Asset_Model_No__c).CanNotCancelledGurantee__c;//涓嶅彲鍙栨秷澶氬勾淇濅慨
+                    prd.ProductClass__c = prdMap.get(prd.Asset_Model_No__c).ProductClass__c;//甯傚満浜у搧绫诲埆
+                    prd.ProductCategory__c = prdMap.get(prd.Asset_Model_No__c).ProductCategory__c;//甯傚満鍖哄垎
+                    prd.Extend_new_product_gurantee_MD__c = prdMap.get(prd.Asset_Model_No__c).Extend_new_product_gurantee_MD__c;//甯傚満淇濅慨瀵硅薄
+                    prd.Extend_new_product_gurantee__c = prdMap.get(prd.Asset_Model_No__c).Extend_new_product_gurantee__c;//鏈嶅姟淇濅慨瀵硅薄
+                    if (prdMap.get(prd.Asset_Model_No__c).Extend_new_product_gurantee_MD__c == true) {//甯傚満淇濅慨瀵硅薄
+                        prd.Entend_gurantee_period_MD__c = prdMap.get(prd.Asset_Model_No__c).Entend_gurantee_period_MD__c;//甯傚満淇濅慨鏈�(骞�)
+                    }
+                    if(prdMap.get(prd.Asset_Model_No__c).Extend_new_product_gurantee__c == true){//鏈嶅姟淇濅慨瀵硅薄
+                        prd.Entend_gurantee_period__c = prdMap.get(prd.Asset_Model_No__c).Entend_gurantee_period__c;//鏈嶅姟淇濅慨鏈�(骞�)
+                    }
+                    prd.Extend_Gurantee_Start_MD__c = prdMap.get(prd.Asset_Model_No__c).Extend_Gurantee_Start_MD__c;//甯傚満淇濅慨寮�濮嬫棩
+                    prd.Extend_Gurantee_End_MD__c = prdMap.get(prd.Asset_Model_No__c).Extend_Gurantee_End_MD__c;//甯傚満淇濅慨缁撴潫鏃�
+                    prd.Extend_Gurantee_Start__c = prdMap.get(prd.Asset_Model_No__c).Extend_Gurantee_Start__c;//鏈嶅姟淇濅慨寮�濮嬫棩
+                    prd.Extend_Gurantee_End__c = prdMap.get(prd.Asset_Model_No__c).Extend_Gurantee_End__c;//鏈嶅姟淇濅慨缁撴潫鏃�
+                    prd.Service_Category1__c = prdMap.get(prd.Asset_Model_No__c).Service_Category1__c;//绗�1鏈嶅姟鍒嗙被
+                    prd.Service_Category2__c = prdMap.get(prd.Asset_Model_No__c).Service_Category2__c;
+                    prd.Service_Category3__c = prdMap.get(prd.Asset_Model_No__c).Service_Category3__c;
+                    prd.Service_Category4__c = prdMap.get(prd.Asset_Model_No__c).Service_Category4__c;
+                    prd.Service_Category5__c = prdMap.get(prd.Asset_Model_No__c).Service_Category5__c;
+                    prd.Service_Category6__c = prdMap.get(prd.Asset_Model_No__c).Service_Category6__c;
+                    prd.Service_Category7__c = prdMap.get(prd.Asset_Model_No__c).Service_Category7__c;
+                    prd.Can_Repair__c = prdMap.get(prd.Asset_Model_No__c).Can_Repair__c;//鏄惁鍙淮淇�
+                    prd.RepairListPriceLevelA__c = prdMap.get(prd.Asset_Model_No__c).RepairListPriceLevelA__c;//A锛圵锛夌骇缁翠慨鍙傝�冧环鏍�
+                    prd.RepairListPriceLevelB__c = prdMap.get(prd.Asset_Model_No__c).RepairListPriceLevelB__c;
+                    prd.RepairListPriceLevelC__c = prdMap.get(prd.Asset_Model_No__c).RepairListPriceLevelC__c;
+                    prd.PartSupplyFinishDate__c = prdMap.get(prd.Asset_Model_No__c).PartSupplyFinishDate__c;//闆朵欢鍋滄渚涘簲鏃ユ湡
+                    prd.EndSaleDate__c = prdMap.get(prd.Asset_Model_No__c).EndSaleDate__c;//鍋滄閿�鍞棩鏈�
+                    prd.Period_Filter_Classify1__c = prdMap.get(prd.Asset_Model_No__c).Period_Filter_Classify1__c;//钀ヤ笟缁熻鍒嗙被1
+                    prd.Period_Filter_Classify2__c = prdMap.get(prd.Asset_Model_No__c).Period_Filter_Classify2__c;//钀ヤ笟缁熻鍒嗙被2
+                    prd.Period_Filter_Classify3__c = prdMap.get(prd.Asset_Model_No__c).Period_Filter_Classify3__c;//钀ヤ笟缁熻鍒嗙被3
+                    prd.Intra_Trade_Service_RMB_Date1__c = prdMap.get(prd.Asset_Model_No__c).Intra_Trade_Service_RMB_Date1__c;//澶氬勾淇濅环鏍兼湁鏁堝紑濮嬫棩1
+                    prd.Intra_Trade_Service_RMB_Date2__c = prdMap.get(prd.Asset_Model_No__c).Intra_Trade_Service_RMB_Date2__c;//澶氬勾淇濅环鏍兼湁鏁堝紑濮嬫棩2
+                    prd.Intra_Trade_Service_RMB_EndDate1__c = prdMap.get(prd.Asset_Model_No__c).Intra_Trade_Service_RMB_EndDate1__c;//澶氬勾淇濅环鏍兼湁鏁堢粨鏉熸棩1
+                    prd.Intra_Trade_Service_RMB_EndDate2__c = prdMap.get(prd.Asset_Model_No__c).Intra_Trade_Service_RMB_EndDate2__c;//澶氬勾淇濅环鏍兼湁鏁堢粨鏉熸棩2
+                    prd.Intra_Trade_Service_RMB_1__c = prdMap.get(prd.Asset_Model_No__c).Intra_Trade_Service_RMB_1__c;//澶氬勾淇濅环鏍�1
+                    prd.Intra_Trade_Service_RMB_2__c = prdMap.get(prd.Asset_Model_No__c).Intra_Trade_Service_RMB_2__c;//澶氬勾淇濅环鏍�2
+                }
+            }
+        }
+
+    }
+    // WLIG-CKKA4M xxf 銆愬鎵樸�戙�愪骇鍝佷富鏁版嵁銆戞敞鍐岃瘉鏇存柊鍚庨儴鍒嗗瓧娈典俊鎭湭鑷姩浠e叆 end
+
     private void beforeSetValue() {
 
         for (Product2 nObj : newList) {

--
Gitblit v1.9.1