From f1c525740c6a45b875d8ed96fb0ddb68c97ef3df Mon Sep 17 00:00:00 2001
From: buli <137736985@qq.com>
Date: 星期五, 08 四月 2022 21:04:44 +0800
Subject: [PATCH] Merge branch 'PIPLFunctionCode0408'

---
 force-app/main/default/classes/ProRegisterLinkHandler.cls |  269 +++++++++++++++++++----------------------------------
 1 files changed, 97 insertions(+), 172 deletions(-)

diff --git a/force-app/main/default/classes/ProRegisterLinkHandler.cls b/force-app/main/default/classes/ProRegisterLinkHandler.cls
index 59e716b..8e0744e 100644
--- a/force-app/main/default/classes/ProRegisterLinkHandler.cls
+++ b/force-app/main/default/classes/ProRegisterLinkHandler.cls
@@ -1,182 +1,107 @@
-public with sharing class ProRegisterLinkHandler extends Oly_TriggerHandler {
-    /* 2018-08-31 鏇存柊浜у搧鍐呮渶鏂颁骇鍝佸湪娉ㄥ唽璇�
-     1.鏍规嵁浜у搧-娉ㄥ唽璇佸叧绯绘壘鍑烘墍鏈夊搴旂殑浜у搧
-     2.鏍规嵁浜у搧鎵惧嚭鍏舵墍闇�鏈�鏂颁骇鍝佹敞鍐岃瘉
-    */
-    private Map<Id, Product_Register_Link__c> newMap;
-    private Map<Id, Product_Register_Link__c> oldMap;
-    private List<Product_Register_Link__c> newList;
-    private List<Product_Register_Link__c> oldList;
+public without sharing class ProRegisterLinkHandler {
+	/* 鏇存柊浜у搧鍐呮渶鏂颁骇鍝佸湪娉ㄥ唽璇�
+	   1.鏍规嵁浜у搧-娉ㄥ唽璇佸叧绯绘壘鍑烘墍鏈夊搴旂殑浜у搧
+	   2.鏍规嵁浜у搧鎵惧嚭鍏舵墍闇�鏈�鏂颁骇鍝佹敞鍐岃瘉
+	  */
+	public static void updateProduct(List<Product_Register_Link__c> newList, Map<Id, Product_Register_Link__c> newMap, List<Product_Register_Link__c> oldList, Map<Id, Product_Register_Link__c> oldMap, string HandleType) {
+		// 浜у搧-娉ㄥ唽璇佸叧绯� 涓墍鏈� 浜у搧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>();
 
-    public ProRegisterLinkHandler() {
-        this.newMap = (Map<Id, Product_Register_Link__c>) Trigger.newMap;
-        this.oldMap = (Map<Id, Product_Register_Link__c>) Trigger.oldMap;
-        this.newList = (List<Product_Register_Link__c>) Trigger.new;
-        this.oldList = (List<Product_Register_Link__c>) Trigger.old;
-    }
+		List<Product_Register_Link__c> currentList = new List<Product_Register_Link__c>();
 
-    protected override void afterUpdate() {
-        updateProduct('1');
-    }
+		if ('1'.equals(HandleType)) {
+			currentList = newList;
+		} else {
+			currentList = oldList;
+		}
 
-    protected override void afterInsert() {
-        updateProduct('1');
-    }
+		for (Product_Register_Link__c PRL : currentList) {
+			Product2_ID_list.add(PRL.Product2__c);
+		}
 
-    protected override void afterDelete() {
-        updateProduct('2');
-    }
+		Exist_ProductMap = new map<ID, Product2>([select ID, registrationCode__c, clinical_product_code__c from Product2 where id in: Product2_ID_list]);
+		List<Product_Register_Link__c> allPRLList = new 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 = '';
+		Map<ID, Product2> Upd_ProductMap = new Map<ID, Product2>();
+		Product2 temProduct = new Product2();
+
+		for (String ProId : Product2_ID_list) {
+			temProduct = Exist_ProductMap.get(ProId);
+			Upd_ProductMap.put(ProId, temProduct);
+		}
+
+		for (Product_Register_Link__c temPRL : allPRLList) {
+			if (!tmpProductID.equals(temPRL.Product2__c)) {
+				tmpProductID = temPRL.Product2__c;
+				temProduct = Upd_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;
+							}
+						}
+						
+					}
+
+				}
+			}
 
 
-    // 鏂板缓鍜屾洿鏂颁骇鍝�-娉ㄥ唽璇佸叧绯绘椂浣跨敤
-    private void updateProduct(string HandleType) {
+			Upd_ProductMap.put(tmpProductID, temProduct);
+		}
 
-        // 浜у搧-娉ㄥ唽璇佸叧绯� 涓墍鏈� 浜у搧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>();
+		if (Upd_ProductMap.keySet().size() > 0)  {
+			update Upd_ProductMap.values();
+		}
 
-        List<Product_Register_Link__c> currentList = new List<Product_Register_Link__c>();
+	}
 
-        if ('1'.equals(HandleType)) {
-            currentList = newList;
-        } else {
-            currentList = oldList;
-        }
-
-        for (Product_Register_Link__c PRL : currentList) {
-            Product2_ID_list.add(PRL.Product2__c);
-        }
-
-        Exist_ProductMap = new map<ID, Product2>([select ID, SFDA_Status__c from Product2 where id in: Product2_ID_list]);
-        List<Product_Register_Link__c> allPRLList = new 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,
-                              Product_Register__r.BusinessScopeKey__c,
-                              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 = '';
-        Map<ID, Product2> Upd_ProductMap = new Map<ID, Product2>();
-        Product2 temProduct = new Product2();
-        String temAllProdStatus = '';
-        String temAllProdStatus2 = '';
-        String temAllProdStatusAll = '';
-        String temAllScopeKey = '';
-
-        for (String ProId : Product2_ID_list) {
-            temProduct = Exist_ProductMap.get(ProId);
-            temProduct.Register_Latest__c = null;               // 鏈�鏂版敞鍐岃瘉ID
-            temProduct.SFDA_Approbation_No__c = null;           // CFDA娉ㄥ唽鍙�
-            temProduct.SFDA_Approbated_Date__c = null;          // CFDA娉ㄥ唽鏃�
-            temProduct.SFDA_Expiration_Date__c = null;          // CFDA鏈夋晥鏈熼檺
-
-            //if (temProduct.SFDA_Status__c != '涓嶈') {
-                //temProduct.ProduceCompany__c = null;                // 鐢熶骇浼佷笟
-            //}
-            temProduct.SFDA_Approbated_Status__c = null;        // CFDA娉ㄥ唽璇佺姸鎬�
-            temProduct.RegisterNo_ALL__c  = null;
-            temProduct.RegisterNo_ALL2__c  = null;
-            // 20190401 CHAN-BAPCE6 LHJ Start
-            temProduct.RegScopeKeyAll__c  = null;
-            // 20190401 CHAN-BAPCE6 LHJ End
-
-            Upd_ProductMap.put(ProId, temProduct);
-        }
-
-        for (Product_Register_Link__c temPRL : allPRLList) {
-            if (!tmpProductID.equals(temPRL.Product2__c)) {
-                temAllProdStatus = '';
-                temAllProdStatus2 = '';
-                temAllProdStatusAll = '';
-                temAllScopeKey = '';
-                tmpProductID = temPRL.Product2__c;
-                temProduct = Upd_ProductMap.get(tmpProductID);
-                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 == '鏈夋晥') {
-                //temAllProdStatus += ';' + temPRL.Product_Register__r.name;
-                String productRegisterName = temPRL.Product_Register__r.Name;
-                if (temAllProdStatus.length() + productRegisterName.length() <= 240) {
-                    if (!temAllProdStatusAll.contains(productRegisterName)) {
-                        temAllProdStatus += ';' + productRegisterName;
-                        temAllProdStatusAll += ';' + productRegisterName;
-                    }
-                    //temAllProdStatus += ';' + 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
-
-            Upd_ProductMap.put(tmpProductID, temProduct);
-        }
-
-        if (Upd_ProductMap.keySet().size() > 0)  {
-            update Upd_ProductMap.values();
-        }
-    }
 }
\ No newline at end of file

--
Gitblit v1.9.1