From 80a3f59e2d3df07805bc67e329300b8de90a5b3a Mon Sep 17 00:00:00 2001 From: buli <137736985@qq.com> Date: 星期二, 11 七月 2023 14:13:08 +0800 Subject: [PATCH] Merge branch 'LEXCommunityLiJun' into LEXUpgrade2023-Deloitte --- force-app/main/default/classes/Product2Handler.cls | 440 +++++++++++++++++++++++++++++------------------------- 1 files changed, 239 insertions(+), 201 deletions(-) diff --git a/force-app/main/default/classes/Product2Handler.cls b/force-app/main/default/classes/Product2Handler.cls index 89d3df3..1ea9b7a 100644 --- a/force-app/main/default/classes/Product2Handler.cls +++ b/force-app/main/default/classes/Product2Handler.cls @@ -26,19 +26,18 @@ // FlgStopManufacure(this.newList, this.oldMap); //SFDC鍋滄棰勮 lt 20211015 add end FlgStopManufacure(); - } //SFDC鍋滄棰勮 lt 20210922 add start - protected override void afterUpdate(){ + protected override void afterUpdate() { Calculate_AverageMonthSales(this.newList, this.oldMap); - AssignmentUltrasonic(this.newList, this.oldMap); //20230506 lt DB202304618804 鍖呭惈瓒呭0 add + AssignmentUltrasonic(this.newList, this.oldMap); //20230506 lt DB202304618804 鍖呭惈瓒呭0 add } //SFDC鍋滄棰勮 lt 20210922 add end // SWAG-BHE9GK LHJ 绔炰簤瀵规墜浜у搧鑷姩缂栫爜 Start private void SetCompetitorCode() { - Boolean SelctFlg = False; + Boolean SelctFlg = false; list<AggregateResult> proList; //甯﹂噺閲囪喘淇敼 start fy list<AggregateResult> proListsc; @@ -55,48 +54,60 @@ for (Product2 nObj : newList) { //甯﹂噺閲囪喘淇敼 start fy String RecordTypeString = ''; - if(nObj.RecordTypeId!=null){ - RecordTypeString=String.valueof(nObj.RecordTypeId).substring(0,15); + 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; + SelctFlg = true; } //甯﹂噺閲囪喘淇敼 end fy } if (SelctFlg) { - proList = [Select Max(ProductCode) PC From Product2 Where ProductCode Like 'SD%' and ProductCode!='SD999999']; + 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')); - } + // proListsc = [Select Max(ProductCode) PC From Product2 Where ProductCode Like 'SC%']; + // if (proListsc != null && proListsc.size() > 0) { + // strPCsc = String.valueof(proListsc[0].get('PC')); + // } + List<Product2> lastPro = [ + SELECT Id, ProductCode + FROM Product2 + WHERE ProductCode LIKE 'SC%' + ORDER BY ProductCode DESC + LIMIT 1 + ]; + strPCsc = lastPro != null && lastPro.size() > 0 ? lastPro[0].ProductCode : ''; //甯﹂噺閲囪喘 end fy } for (Product2 nObj : newList) { //甯﹂噺閲囪喘 start fy String RecordTypeString = ''; - if(nObj.RecordTypeId!=null){ - RecordTypeString=String.valueof(nObj.RecordTypeId).substring(0,15); + 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 ) { + //甯﹂噺閲囪喘 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; + 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; + 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'); + 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'); @@ -106,36 +117,59 @@ } // SWAG-BHE9GK LHJ 绔炰簤瀵规墜浜у搧鑷姩缂栫爜 End - //WLIG-CKKA4M xxf 銆愬鎵樸�戙�愪骇鍝佷富鏁版嵁銆戞敞鍐岃瘉鏇存柊鍚庨儴鍒嗗瓧娈典俊鎭湭鑷姩浠e叆 Start private void AutomaticallyBringData() { List<String> noNewList = new List<String>(); - for(Product2 prd : newList){ + 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]; + 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; } @@ -146,56 +180,56 @@ 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;//甯傚満淇濅慨鏈�(骞�) + + 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;//鏈嶅姟淇濅慨鏈�(骞�) + 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.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.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 + 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) { //CHAN-B8GCBB if (nObj.WhiteSpace__c == true) { @@ -207,48 +241,50 @@ nObj.Fixture_Model_No_T__c = nObj.Fixture_Model_No_F__c; // CBPR LHJ - if (Trigger.isInsert || - (Trigger.isUpdate && nObj.SFDA_Status_New__c != oldMap.get(nObj.id).SFDA_Status_New__c)) { + if (Trigger.isInsert || (Trigger.isUpdate && nObj.SFDA_Status_New__c != oldMap.get(nObj.id).SFDA_Status_New__c)) { nObj.SFDA_Status__c = nobj.SFDA_Status_New__c; if (nobj.SFDA_Status_New__c == '鏂拌=鍝佺敵璜嬩腑' || nobj.SFDA_Status_New__c == '婧栧倷涓�') { nObj.SFDA_Status__c = '鍋滄'; } } // CBPR LHJ - + // SWAG-BHE9GK LHJ 绔炰簤瀵规墜浜у搧鑷姩缂栫爜 Start if (Trigger.isInsert) { - } // SWAG-BHE9GK LHJ 绔炰簤瀵规墜浜у搧鑷姩缂栫爜 End } } //SFDC鍋滄棰勮 lt 20210914 add start - private static void Calculate_AverageMonthSales(List<Product2> newList,Map<Id, Product2> oldMap){ - + private static void Calculate_AverageMonthSales(List<Product2> newList, Map<Id, Product2> oldMap) { //绗﹀悎鏉′欢鐨� 鏃� 浜у搧List List<Id> oproList = new List<Id>(); //绗﹀悎鏉′欢鐨� 鏂版棫 浜у搧Id List 浣滀负鏉′欢 List<Id> conList = new List<Id>(); //Map<鏃х殑锛屾柊鐨�>瀵瑰簲 - Map<String,String> matMap = new Map<String,String>(); - + Map<String, String> matMap = new Map<String, String>(); + //Map<鏃d锛岄璁″仠姝㈡棩> - Map<String,Date> adateMap = new Map<String,Date>(); + Map<String, Date> adateMap = new Map<String, Date>(); //Map<鏃d, x(骞冲潎鏈堥攢閲�)> - Map<String,Integer> xMap = new Map<String,Integer>(); + Map<String, Integer> xMap = new Map<String, Integer>(); //Map<鏃d, z(澶╂暟)> - Map<String,Integer> zMap = new Map<String,Integer>(); + Map<String, Integer> zMap = new Map<String, Integer>(); - for(Product2 term : newList){ - System.debug('鏍囪瘑'+term.CalMonthSalesFLG__c); - System.debug('鏂板簱瀛�'+term.StorageStatusNo__c); - System.debug('鏃у簱瀛�'+oldMap.get(term.Id).StorageStatusNo__c); - if(term.M_BC_Stop_manufacure__c != null && term.SFDA_Status__c != '鍋滄' && (term.StorageStatusNo__c != oldMap.get(term.Id).StorageStatusNo__c || term.CalMonthSalesFLG__c == true)){ - if(term.Correspond_Code__c != null){ - matMap.put((String)term.Id,(String)term.Correspond_Code__c); + for (Product2 term : newList) { + System.debug('鏍囪瘑' + term.CalMonthSalesFLG__c); + System.debug('鏂板簱瀛�' + term.StorageStatusNo__c); + System.debug('鏃у簱瀛�' + oldMap.get(term.Id).StorageStatusNo__c); + if ( + term.M_BC_Stop_manufacure__c != null && + term.SFDA_Status__c != '鍋滄' && + (term.StorageStatusNo__c != oldMap.get(term.Id).StorageStatusNo__c || + term.CalMonthSalesFLG__c == true) + ) { + if (term.Correspond_Code__c != null) { + matMap.put((String) term.Id, (String) term.Correspond_Code__c); conList.add(term.Correspond_Code__c); } conList.add(term.Id); @@ -259,170 +295,171 @@ } //鍋� 涓�瀵瑰 鐨� Map<String,List<鏈堥攢閲�>> - Map<String,List<ProductMonthlySales__c>> msMap = new Map<String,List<ProductMonthlySales__c>>(); + Map<String, List<ProductMonthlySales__c>> msMap = new Map<String, List<ProductMonthlySales__c>>(); - if(conList.size()>0){ - List<ProductMonthlySales__c> msList = [Select Id, MonthSales__c, CurrentMonth__c, CurrentDate__c, - CurrentYear__c, ProductM__c, Product2Model__c, - ProductM__r.StorageStatusNo__c, - ProductM__r.M_BC_Stop_manufacure__c - From ProductMonthlySales__c - Where ProductM__c in: conList - Order by CurrentDate__c DESC]; + if (conList.size() > 0) { + List<ProductMonthlySales__c> msList = [ + SELECT + Id, + MonthSales__c, + CurrentMonth__c, + CurrentDate__c, + CurrentYear__c, + ProductM__c, + Product2Model__c, + ProductM__r.StorageStatusNo__c, + ProductM__r.M_BC_Stop_manufacure__c + FROM ProductMonthlySales__c + WHERE ProductM__c IN :conList + ORDER BY CurrentDate__c DESC + ]; //鍙屽眰寰幆 浜у搧==>鏈堥攢閲� - for(Id pro : conList){ - for(ProductMonthlySales__c mms : msList){ - if(pro == mms.ProductM__c){ - if(msMap.containsKey(pro)){ + for (Id pro : conList) { + for (ProductMonthlySales__c mms : msList) { + if (pro == mms.ProductM__c) { + if (msMap.containsKey(pro)) { msMap.get(pro).add(mms); - }else{ + } else { List<ProductMonthlySales__c> pmsaleList = new List<ProductMonthlySales__c>(); pmsaleList.add(mms); msMap.put(pro, pmsaleList); } } - } } - - System.debug('鏉′欢List'+conList); - System.debug('sql鏌ュ埌鐨凩ist'+msList); - System.debug('浜у搧鏈堥攢閲弇sMap涓�'+msMap); - System.debug('鏃х殑浜у搧List'+oproList); - if(msMap.size() > 0){ - System.debug('浜у搧鏈堥攢閲弇sMap涓�'+msMap); - for(Id res : oproList){ + System.debug('鏉′欢List' + conList); + System.debug('sql鏌ュ埌鐨凩ist' + msList); + System.debug('浜у搧鏈堥攢閲弇sMap涓�' + msMap); + System.debug('鏃х殑浜у搧List' + oproList); + if (msMap.size() > 0) { + System.debug('浜у搧鏈堥攢閲弇sMap涓�' + msMap); + for (Id res : oproList) { //a鏃� 鏈堥攢閲忓拰 ; b鏂� 鏈堥攢閲忓拰 ; c鍟�(骞冲潎鏈堥攢閲�) ; x鍟嗗洓鑸嶄簲鍏� ; //y 搴撳瓨/骞冲潎鏈堥攢閲忓ぉ鏁� ; z 澶╂暟 鍥涜垗浜斿叆 Decimal c = 0, y = 0; Integer x = 0, z = 0; - if(msMap.get(res) != null){ + if (msMap.get(res) != null) { //鏈堥攢閲忓ぇ浜�12涓湀 - if(msMap.get(res).size() >= 12){ - Decimal a = 0 , b = 0; + if (msMap.get(res).size() >= 12) { + Decimal a = 0, b = 0; Integer i; - for(i = 0 ; i < 12 ; i++){ + for (i = 0; i < 12; i++) { a += msMap.get(res)[i].MonthSales__c; } - if(matMap.get(res) != null){ - if(msMap.get(matMap.get(res)) != null){ - if(msMap.get(matMap.get(res)).size() >= 12){ - for(i = 0 ; i < 12 ; i++){ + if (matMap.get(res) != null) { + if (msMap.get(matMap.get(res)) != null) { + if (msMap.get(matMap.get(res)).size() >= 12) { + for (i = 0; i < 12; i++) { b += msMap.get(matMap.get(res))[i].MonthSales__c; - System.debug('鏂扮殑澶т簬鍗佷簩'+b); + System.debug('鏂扮殑澶т簬鍗佷簩' + b); } - } - else{ - for(ProductMonthlySales__c nms : msMap.get(matMap.get(res))){ - b+=nms.MonthSales__c; - System.debug('鏂扮殑灏忎簬鍗佷簩閬嶅巻鍏ㄩ儴'+b); + } else { + for (ProductMonthlySales__c nms : msMap.get(matMap.get(res))) { + b += nms.MonthSales__c; + System.debug('鏂扮殑灏忎簬鍗佷簩閬嶅巻鍏ㄩ儴' + b); } - } } } - - //鍥涜垗浜斿叆 - c = (a + b) / 12 ; - - if(c > 1){ + + //鍥涜垗浜斿叆 + c = (a + b) / 12; + + if (c > 1) { x = Integer.valueOf(c.round(System.RoundingMode.HALF_UP)); - xMap.put(res,x); - }else if(c > 0){ + xMap.put(res, x); + } else if (c > 0) { x = 1; - xMap.put(res,x); + xMap.put(res, x); } //x = Integer.valueOf(c.round(System.RoundingMode.Up)); //x = Integer.valueOf(c.round(System.RoundingMode.HALF_UP)); - - System.debug('鏂�'+b); - System.debug('鏃�'+a); - System.debug('闄ゆ硶瓒砪'+c); - System.debug('鍥涜垗浜斿叆x'+x); - + + System.debug('鏂�' + b); + System.debug('鏃�' + a); + System.debug('闄ゆ硶瓒砪' + c); + System.debug('鍥涜垗浜斿叆x' + x); } //鏈堥攢閲忎笉瓒�12涓湀 - else{ - Decimal a = 0 , b = 0 ; - for(ProductMonthlySales__c oms : msMap.get(res)){ - a+=oms.MonthSales__c; + else { + Decimal a = 0, b = 0; + for (ProductMonthlySales__c oms : msMap.get(res)) { + a += oms.MonthSales__c; } - if(msMap.get(matMap.get(res)) != null){ - for(ProductMonthlySales__c nms : msMap.get(matMap.get(res))){ - b+=nms.MonthSales__c; + if (msMap.get(matMap.get(res)) != null) { + for (ProductMonthlySales__c nms : msMap.get(matMap.get(res))) { + b += nms.MonthSales__c; } } c = (a + b) / msMap.get(res).size(); //x = Integer.valueOf(c.round(System.RoundingMode.UP)); //x = Integer.valueOf(c.round(System.RoundingMode.HALF_UP)); - if(c > 1){ + if (c > 1) { x = Integer.valueOf(c.round(System.RoundingMode.HALF_UP)); - xMap.put(res,x); - }else if(c > 0){ + xMap.put(res, x); + } else if (c > 0) { x = 1; - xMap.put(res,x); + xMap.put(res, x); } - - System.debug('闄ゆ硶涓嶈冻12c'+c); - System.debug('鍥涜垗浜斿叆x'+x); + + System.debug('闄ゆ硶涓嶈冻12c' + c); + System.debug('鍥涜垗浜斿叆x' + x); } - if(x != 0){ - for(ProductMonthlySales__c dat : msMap.get(res)){ + if (x != 0) { + for (ProductMonthlySales__c dat : msMap.get(res)) { Decimal m = 0; - if(dat.ProductM__r.StorageStatusNo__c != null){ + if (dat.ProductM__r.StorageStatusNo__c != null) { m = dat.ProductM__r.StorageStatusNo__c; - } + } y = m / x; - y = y * 30 ; + y = y * 30; } } //z = Integer.valueOf(y.round(System.RoundingMode.UP)); z = Integer.valueOf(y.round(System.RoundingMode.HALF_UP)); - zMap.put(res,z); - System.debug('澶╂暟y'+y); - System.debug('鍥涜垗浜斿叆z'+z); - + zMap.put(res, z); + System.debug('澶╂暟y' + y); + System.debug('鍥涜垗浜斿叆z' + z); } } } List<Product2> finList = new List<Product2>(); - for(Id fin : oproList){ + for (Id fin : oproList) { Product2 fip = new Product2(); fip.Id = fin; fip.CalMonthSalesFLG__c = false; - if(xMap.get(fin) != null){ + if (xMap.get(fin) != null) { fip.Average_MonthSales__c = xMap.get(fin); } //20211020 - if(zMap.get(fin) != null){ - if(zMap.get(fin) != 0){ + if (zMap.get(fin) != null) { + if (zMap.get(fin) != 0) { fip.Estimated_ConsumptionDueDate__c = Date.today().addDays(zMap.get(fin)); - }else{ - if(adateMap != null){ + } else { + if (adateMap != null) { Date adate = adateMap.get(fin); fip.Estimated_ConsumptionDueDate__c = adate; } } - }else{ - if(adateMap != null){ + } else { + if (adateMap != null) { Date adate = adateMap.get(fin); fip.Estimated_ConsumptionDueDate__c = adate; } } //20211020 - + finList.add(fip); } update finList; - } - + } } //SFDC鍋滄棰勮 lt 20210914 add end @@ -445,46 +482,49 @@ // } // } // } - + // } //SFDC鍋滄棰勮 lt 20211015 add end - private void FlgStopManufacure(){ - for(Product2 pts : newList){ - + private void FlgStopManufacure() { + for (Product2 pts : newList) { Product2 oldPts = oldMap.get(pts.Id); - if(pts.M_BC_Stop_manufacure__c != oldPts.M_BC_Stop_manufacure__c){ + if (pts.M_BC_Stop_manufacure__c != oldPts.M_BC_Stop_manufacure__c) { pts.ProductMonthlySalesFlag__c = true; if (pts.M_BC_Stop_manufacure__c == null) { pts.ProductMonthlySalesFlag__c = false; - pts.Estimated_ConsumptionDueDate__c = null; + pts.Estimated_ConsumptionDueDate__c = null; } } - if(pts.SFDA_Status__c == '鍋滄' && oldPts.SFDA_Status__c != '鍋滄'){ + if (pts.SFDA_Status__c == '鍋滄' && oldPts.SFDA_Status__c != '鍋滄') { pts.Estimated_ConsumptionDueDate__c = null; } } } //20230506 lt DB202304618804 鍖呭惈瓒呭0 start - private static void AssignmentUltrasonic(List<Product2> newList,Map<Id, Product2> oldMap){ + 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)){ + 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){ + 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); @@ -492,8 +532,6 @@ } update updateplpList; - } //20230506 lt DB202304618804 鍖呭惈瓒呭0 end - -} \ No newline at end of file +} -- Gitblit v1.9.1