From f50c0ec115e25dc7f980bafda8169ed5ddfe1a8f Mon Sep 17 00:00:00 2001
From: buli <137736985@qq.com>
Date: 星期五, 08 四月 2022 21:04:16 +0800
Subject: [PATCH] Session
---
force-app/main/default/classes/ProRegisterHandler.cls | 298 +++++++++++++++++++++++++----------------------------------
1 files changed, 125 insertions(+), 173 deletions(-)
diff --git a/force-app/main/default/classes/ProRegisterHandler.cls b/force-app/main/default/classes/ProRegisterHandler.cls
index 6631322..f290e50 100644
--- a/force-app/main/default/classes/ProRegisterHandler.cls
+++ b/force-app/main/default/classes/ProRegisterHandler.cls
@@ -1,181 +1,133 @@
-public with sharing class ProRegisterHandler extends Oly_TriggerHandler {
- /* 2018-08-31 鏇存柊浜у搧鍐呮渶鏂颁骇鍝佸湪娉ㄥ唽璇�
- 1.鏍规嵁闇�瑕佹洿鏂扮殑浜у搧娉ㄥ唽璇佹壘鍑烘墍鏈夊搴旂殑浜у搧-娉ㄥ唽璇佸叧绯�
- 2.鏍规嵁浜у搧-娉ㄥ唽璇佸叧绯绘壘鍑烘墍鏈夊搴旂殑浜у搧
- 3.鏍规嵁浜у搧鎵惧嚭鍏舵墍闇�鏈�鏂颁骇鍝佹敞鍐岃瘉
- */
- private Map<Id, Product_Register__c> newMap;
- private Map<Id, Product_Register__c> oldMap;
- private List<Product_Register__c> newList;
- private List<Product_Register__c> oldList;
+public without sharing class ProRegisterHandler {
- public ProRegisterHandler() {
- this.newMap = (Map<Id, Product_Register__c>) Trigger.newMap;
- this.oldMap = (Map<Id, Product_Register__c>) Trigger.oldMap;
- this.newList = (List<Product_Register__c>) Trigger.new;
- this.oldList = (List<Product_Register__c>) Trigger.old;
- }
+ public static void updateProduct(List<Product_Register__c> newList, Map<Id, Product_Register__c> newMap, List<Product_Register__c> oldList, Map<Id, Product_Register__c> oldMap) {
- protected override void beforeInsert() {
- updateLink();
- }
+ // 浜у搧-娉ㄥ唽璇佸叧绯� 涓墍鏈� 浜у搧ID
+ List<ID> Product2_ID_list = new list<ID>();
+ // 鐜版湁浜у搧 map
+ Map<ID, Product2> Exist_ProductMap = new map<ID, Product2>();
+ // 闇�瑕佹洿鏂颁骇鍝� list
+ List<Product2> UpdateProductlist = new list<Product2>();
+ // 鏍规嵁鍙樻洿鐨勮瘉ID鎵惧埌鍏宠仈鐨勬墍鏈夌殑浜у搧
+ list<Product_Register_Link__c> ExistPRLList = [select Product2__c,
+ Product_Register__c
+ from Product_Register_Link__c
+ where Product_Register__c in: newList
+ ];
- protected override void beforeUpdate() {
- updateLink();
- }
+ for (Product_Register_Link__c PRL : ExistPRLList) {
+ // 浜у搧ID鐨凩IST
+ Product2_ID_list.add(PRL.Product2__c);
+ }
- protected override void afterUpdate() {
- updateProduct();
- }
+ // 閫氳繃浜у搧ID鎵惧埌璇ヤ骇鍝佹渶鏂版敞鍐岃瘉ID
+ Exist_ProductMap = new Map<ID, Product2> ([select ID, Register_Latest__c, registrationCode__c, clinical_product_code__c
+ from Product2
+ where id in: Product2_ID_list
+ ]);
- //protected override void beforeDelete() {
- // updateProduct();
- //}
- private void updateLink() {
- for (Product_Register__c reg : newList) {
- system.debug('reg.Name--->'+reg.Name);
- reg.RegisterNoURL__c = EncodingUtil.urlEncode(reg.Name, 'UTF-8');
+ // 閫氳繃浜у搧ID鎵惧埌鎵�鏈夋秹鍙婄殑鏈夋晥鍏崇郴
+ List<Product_Register_Link__c> allPRLList = [select Product2__c,
+ Product_Register__c,
+ Product_Register__r.PrdCompanyAddr__c,
+ Product_Register__r.ValidFrom__c,
+ Product_Register__r.ValidTo__c,
+ Product_Register__r.Name,
+ Product_Register__r.ValidProductRegister__c,
+ Product_Register__r.ClinicalProductCode__c
+ from Product_Register_Link__c
+ where Product2__c in : Product2_ID_list
+ order by Product2__c,
+ LastModifiedDate desc
+ ];
+
+ String tmpProductID = '';
+ Product2 temProduct = new Product2();
+ Map<Id, Product2> UpdProMap = new Map<Id, Product2>();
+
+ for (Product_Register_Link__c temPRL : allPRLList) {
+
+ if (!tmpProductID.equals(temPRL.Product2__c)) {
+
+ tmpProductID = temPRL.Product2__c;
+ temProduct = Exist_ProductMap.get(tmpProductID);
+ temProduct.Register_Latest__c = temPRL.Product_Register__c; // 鏈�鏂版敞鍐岃瘉ID
+ temProduct.registrationCode__c = null;
+ temProduct.clinical_product_code__c = null;
+ }
+
+ // 濡傛灉娉ㄥ唽璇佺姸鎬佹湁鏁�,璁板綍鏈夋晥娉ㄥ唽璇佸彿
+ if (temPRL.Product_Register__r.ValidProductRegister__c ) {
+ if (String.isBlank(temProduct.registrationCode__c)) {
+ temProduct.registrationCode__c = temPRL.Product_Register__r.Name + '\n';
+ } else {
+ if (String.isNotBlank(temPRL.Product_Register__r.Name)) {
+ if (temProduct.registrationCode__c.indexOf(temPRL.Product_Register__r.Name) == -1) {
+ temProduct.registrationCode__c += temPRL.Product_Register__r.Name + '\n';
+ }
+ }
+ }
+
+ String clinicalCode = temPRL.Product_Register__r.ClinicalProductCode__c;
+ if (String.isBlank(temProduct.clinical_product_code__c)) {
+ temProduct.clinical_product_code__c = clinicalCode;//temPRL.Product_Register__r.ClinicalProductCode__c;
+ } else {
+
+ if (String.isNotBlank(clinicalCode)) {
+
+ Map<String, String> codeMap = new Map<String, String>();
+ for (String code : temProduct.clinical_product_code__c.split('/')) {
+ codeMap.put(code, code);
+ }
+ codeMap.put(clinicalCode, clinicalCode);
+ temProduct.clinical_product_code__c = '';
+ for (String code : codeMap.values()) {
+ if (String.isBlank(temProduct.clinical_product_code__c)) {
+ temProduct.clinical_product_code__c = code;
+ } else {
+ temProduct.clinical_product_code__c += '/' + code;
+ }
+ }
+
+ }
+
+ }
+ }
+ UpdProMap.put(tmpProductID, temProduct);
+ }
+ if (UpdProMap.keySet().size() > 0) update UpdProMap.values();
+ }
+
+ //鐢ㄤ簬闄嶇被,浜у搧娉ㄥ唽璇佹洿鏂颁簡,灏辨妸浜у搧娉ㄥ唽璇佷笅鐨勪骇鍝佺殑绛夌骇绫诲埆瀛楁璧嬬┖,瑙﹀彂浜у搧鐨勮Е鍙戝櫒
+ public static void checkRegistervervaldatum(List<Product_Register__c> newList, Map<Id, Product_Register__c> newMap, List<Product_Register__c> oldList, Map<Id, Product_Register__c> oldMap) {
+ List<String> prcList = new List<String>();
+ for (Product_Register__c pr : newList) {
+ Product_Register__c oldpr = oldMap.get(pr.Id);
+ prcList.add(pr.id);
+ }
+ //鏀惧埌Map閲岋紝鐢ㄤ簬娉ㄥ唽璇佹洿鏂颁骇鍝�
+ Map<Id,Product2> prt2Map = new Map<Id,Product2>();
+ //閫氳繃涔嬪墠瀛樺偍鐨処d鐢ㄤ簬鍏崇郴琛ㄧ殑鏌ヨ銆�
+ List<Product_Register_Link__c> prlList = new List<Product_Register_Link__c>();
+ prlList = [select Product2__r.id,Product2__r.demoteer_Sap__c,Product2__r.Diedatvanink__c,Product_Register__r.MedPrdClass__c,Product_Register__r.Stelsedag__c,Product_Register__r.ValidTo__c,Product_Register__r.ValidFrom__c
+ from Product_Register_Link__c
+ where Product_Register__r.Id in : prcList];
+
+ List<ID> proIdList = new List<ID>();
+ for (Product_Register_Link__c prl: prlList) {
+ proIdList.add(prl.Product2__r.id);
}
- }
- private void updateProduct() {
-
- if (System.Label.UpdRegOnly == '1') return;
-
- // 浜у搧-娉ㄥ唽璇佸叧绯� 涓墍鏈� 浜у搧ID
- List<ID> Product2_ID_list = new list<ID>();
- // 鐜版湁浜у搧 map
- Map<ID, Product2> Exist_ProductMap = new map<ID, Product2>();
- // 闇�瑕佹洿鏂颁骇鍝� list
- List<Product2> UpdateProductlist = new list<Product2>();
- // 鏍规嵁鍙樻洿鐨勮瘉ID鎵惧埌鍏宠仈鐨勬墍鏈夌殑浜у搧
- list<Product_Register_Link__c> ExistPRLList = [select Product2__c,
- Product_Register__c
- from Product_Register_Link__c
- where Product_Register__c in: newList
- ];
-
- for (Product_Register_Link__c PRL : ExistPRLList) {
- // 浜у搧ID鐨凩IST
- Product2_ID_list.add(PRL.Product2__c);
- }
-
- // 閫氳繃浜у搧ID鎵惧埌璇ヤ骇鍝佹渶鏂版敞鍐岃瘉ID
- Exist_ProductMap = new Map<ID, Product2> ([select ID, Register_Latest__c
- from Product2
- where id in: Product2_ID_list
- ]);
-
- // 閫氳繃浜у搧ID鎵惧埌鎵�鏈夋秹鍙婄殑鏈夋晥鍏崇郴
- List<Product_Register_Link__c> allPRLList = [select Product2__c,
- Product_Register__c,
- Product_Register__r.PrdCompanyAddr__c,
- Product_Register__r.PrdCompanyAddr2__c,
- Product_Register__r.PrdCompanyAddr3__c,
- Product_Register__r.ValidFrom__c,
- Product_Register__r.ValidTo__c,
- Product_Register__r.Name,
- // 20190401 CHAN-BAPCE6 LHJ Start
- Product_Register__r.BusinessScopeKey__c,
- // 20190401 CHAN-BAPCE6 LHJ End
- Product_Register__r.RegisterNoStatus__c
- from Product_Register_Link__c
- where Product2__c in : Product2_ID_list
- // and If_Delete__c = false
- order by Product2__c,
- Product_Register__r.RegisterNoStatusCode__c,
- LastModifiedDate desc
- ];
-
- String tmpProductID = '';
- String temAllProdStatus = '';
- String temAllProdStatus2 = '';
- String temAllProdStatusAll = '';
- // 20190401 CHAN-BAPCE6 LHJ Start
- String temAllScopeKey = '';
- // 20190401 CHAN-BAPCE6 LHJ End
- Product2 temProduct = new Product2();
- Map<Id, Product2> UpdProMap = new Map<Id, Product2>();
-
- for (Product_Register_Link__c temPRL : allPRLList) {
-
- if (!tmpProductID.equals(temPRL.Product2__c)) {
- tmpProductID = temPRL.Product2__c;
- temProduct = Exist_ProductMap.get(tmpProductID);
- temAllProdStatus = '';
- temAllProdStatus2 = '';
- temAllProdStatusAll = '';
- // 20190401 CHAN-BAPCE6 LHJ Start
- temAllScopeKey = '';
- // 20190401 CHAN-BAPCE6 LHJ End
- temProduct.Register_Latest__c = temPRL.Product_Register__c; // 鏈�鏂版敞鍐岃瘉ID
- temProduct.SFDA_Approbation_No__c = temPRL.Product_Register__r.Name; // CFDA娉ㄥ唽鍙�
- temProduct.SFDA_Approbated_Date__c = temPRL.Product_Register__r.ValidFrom__c; // CFDA娉ㄥ唽鏃�
- temProduct.SFDA_Expiration_Date__c = temPRL.Product_Register__r.ValidTo__c; // CFDA鏈夋晥鏈熼檺
- if(temPRL.Product_Register__r.Name != 'FYL') {
- temProduct.ProduceCompany__c = temPRL.Product_Register__r.PrdCompanyAddr__c; // 鐢熶骇浼佷笟
- //CHAN-C4X63A 銆愬鎵樸�慛FM204瀛楁鈥滅敓浜т紒涓氬湴鍧�鈥濅紭鍖� XHL 20210716 Start
- temProduct.ProduceCompany2__c = temPRL.Product_Register__r.PrdCompanyAddr2__c;
- temProduct.ProduceCompany3__c = temPRL.Product_Register__r.PrdCompanyAddr3__c;
- //CHAN-C4X63A 銆愬鎵樸�慛FM204瀛楁鈥滅敓浜т紒涓氬湴鍧�鈥濅紭鍖� XHL 20210716 End
- }
- temProduct.SFDA_Approbated_Status__c = temPRL.Product_Register__r.RegisterNoStatus__c; // CFDA娉ㄥ唽璇佺姸鎬�
- }
-
- // 濡傛灉娉ㄥ唽璇佺姸鎬佹湁鏁�,璁板綍鏈夋晥娉ㄥ唽璇佸彿
- if (temPRL.Product_Register__r.RegisterNoStatus__c == '鏈夋晥') {
- // LHJ 20190809
- String productRegisterName = temPRL.Product_Register__r.Name;
- if (temAllProdStatus.length() + productRegisterName.length() <= 240) {
- if (!temAllProdStatusAll.contains(productRegisterName)) {
- temAllProdStatus += ';' + productRegisterName;
- temAllProdStatusAll += ';' + productRegisterName;
- }
-
- } else {
- if (!temAllProdStatusAll.contains(productRegisterName)) {
- temAllProdStatus2 += ';' + productRegisterName;
- temAllProdStatusAll += ';' + productRegisterName;
- }
- //temAllProdStatus2 += ';' + productRegisterName;
- }
-
- // 20190401 CHAN-BAPCE6 LHJ Start
- //if (String.isNotBlank(temPRL.Product_Register__r.BusinessScopeKey__c) &&
- // (!temAllScopeKey.contains(temPRL.Product_Register__r.BusinessScopeKey__c))) {
- // temAllScopeKey += ';' + temPRL.Product_Register__r.BusinessScopeKey__c;
- //}
- String businessScopeKey = temPRL.Product_Register__r.BusinessScopeKey__c;
- if (String.isNotBlank(businessScopeKey)) {
- for(String scopeKey:businessScopeKey.split(';')){
- if (!temAllScopeKey.contains(scopeKey)) {
- temAllScopeKey += ';' + scopeKey;
- }
- }
-
-
- }
- // 20190401 CHAN-BAPCE6 LHJ End
- }
- if (temAllProdStatus != '') {
- temProduct.RegisterNo_ALL__c = temAllProdStatus.substring(1, temAllProdStatus.length());
- } else {
- temProduct.RegisterNo_ALL__c = '';
- }
- if (temAllProdStatus2 != '') {
- temProduct.RegisterNo_ALL2__c = temAllProdStatus2.substring(1, temAllProdStatus2.length());
- } else {
- temProduct.RegisterNo_ALL2__c = '';
- }
- // 20190401 CHAN-BAPCE6 LHJ Start
- if (temAllScopeKey != '') {
- temProduct.RegScopeKeyAll__c = temAllScopeKey.substring(1, temAllScopeKey.length());
- } else {
- temProduct.RegScopeKeyAll__c = '';
- }
- // 20190401 CHAN-BAPCE6 LHJ End
- UpdProMap.put(tmpProductID, temProduct);
- }
- if (UpdProMap.keySet().size() > 0) update UpdProMap.values();
- }
+ List<Product2> por2Lsit = new List<Product2>();
+ //鏌ュ嚭浜у搧鐨刬d鍜岀瓑绾х被鍒殑瀛楁
+ por2Lsit = [select Id,Level_Category__c from Product2 where Id in : proIdList];
+ for (Product2 pro: por2Lsit) {
+ pro.Level_Category__c = null;
+ prt2Map.put(pro.Id, pro);
+ }
+ System.debug('prt2Map='+prt2Map);
+ if (prt2Map.size() > 0) {
+ update prt2Map.values();
+ }
+ }
}
\ No newline at end of file
--
Gitblit v1.9.1