From b9055688b13a23f8e445de2bc3d5d0d2b85fec30 Mon Sep 17 00:00:00 2001
From: 李彤 <litong@prec-tech.com>
Date: 星期三, 17 五月 2023 19:27:19 +0800
Subject: [PATCH] 包含超声

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

diff --git a/force-app/main/default/classes/Product2Handler.cls b/force-app/main/default/classes/Product2Handler.cls
index 44e5cc5..89d3df3 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();
@@ -29,6 +32,7 @@
     //SFDC鍋滄棰勮  lt  20210922 add start
     protected override void afterUpdate(){
         Calculate_AverageMonthSales(this.newList, this.oldMap);
+        AssignmentUltrasonic(this.newList, this.oldMap);  //20230506 lt DB202304618804  鍖呭惈瓒呭0 add
     }
     //SFDC鍋滄棰勮  lt  20210922 add end
 
@@ -36,30 +40,159 @@
     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() {
 
@@ -334,4 +467,33 @@
         }
     }
 
+    //20230506 lt DB202304618804  鍖呭惈瓒呭0 start
+    private static void AssignmentUltrasonic(List<Product2> newList,Map<Id, Product2> oldMap){
+        List<String> proIdList = new List<String>();
+        List<PCLLostProduct__c> updateplpList = new List<PCLLostProduct__c>();
+
+        for(Product2 pro : newList){
+            if(pro.RecordTypeId == System.Label.Pro_RecordType && 
+            (pro.Lost_Product_Differ__c != oldMap.get(pro.Id).Lost_Product_Differ__c || 
+            pro.Lost_Product_Category__c != oldMap.get(pro.Id).Lost_Product_Category__c)){
+                proIdList.add(pro.Id);
+            }
+        }
+
+        List<PCLLostProduct__c> plpList = [Select Id, LostProduct__c, ProductClass__c, ProductCategory__c
+                                           From PCLLostProduct__c
+                                           Where LostProduct__c in: proIdList ];
+        if(plpList.size() > 0 ){
+            for(PCLLostProduct__c plp : plpList){
+                plp.ProductClass__c = '涓绘満';
+                plp.ProductCategory__c = '瓒呭0涓绘満';
+                updateplpList.add(plp);
+            }
+        }
+
+        update updateplpList;
+
+    }
+    //20230506 lt DB202304618804  鍖呭惈瓒呭0 end
+
 }
\ No newline at end of file

--
Gitblit v1.9.1