From 823b027c0decb82043c6e39f2d6ef1bb020220b1 Mon Sep 17 00:00:00 2001
From: 高章伟 <gaozhangwei@prec-tech.com>
Date: 星期四, 10 三月 2022 16:47:31 +0800
Subject: [PATCH] 最近一个月修改内容

---
 force-app/main/default/classes/OrderPdfController.cls                 |   48 
 force-app/main/default/classes/OrderTriggerHandler.cls                |  285 +++-------
 force-app/main/default/classes/CopyOpportunityController.cls          |  234 ++++++++
 force-app/main/default/classes/ProRegisterHandlerTest.cls             |  208 +++++-
 force-app/main/default/triggers/OrderTrigger.trigger                  |   10 
 force-app/main/default/classes/OrderPdf2Controller.cls                |   10 
 force-app/main/default/classes/Product2TriggerHandler.cls             |  180 ++++-
 force-app/main/default/classes/Product2TriggerHandlerTest.cls         |  228 +++++++
 force-app/main/default/classes/NEWCreateSWOQuoteController.cls        |   11 
 force-app/main/default/pages/OrderPdf2.page                           |   16 
 force-app/main/default/classes/CopyOpportunityController.cls-meta.xml |    5 
 force-app/main/default/classes/ProRegisterHandler.cls                 |  191 +++++-
 force-app/main/default/classes/SBG001TriggerHandler.cls               |    8 
 force-app/main/default/pages/NEWCreateSWOQuote.page                   |   14 
 force-app/main/default/pages/OrderContract2.page                      |    2 
 force-app/main/default/classes/OrderTriggerTest.cls                   |   15 
 force-app/main/default/classes/OpportunityTriggerHandler.cls          |    3 
 force-app/main/default/pages/OrderPDF.page                            |    2 
 force-app/main/default/pages/OrderPdf3.page                           |   20 
 force-app/main/default/pages/CopyOpportunity.page                     |   50 +
 force-app/main/default/pages/CopyOpportunity.page-meta.xml            |    7 
 force-app/main/default/staticresources/SWOJS.js                       |   11 
 force-app/main/default/classes/RadiationUtil.cls                      |    5 
 force-app/main/default/classes/StaticParameter.cls                    |    5 
 24 files changed, 1,109 insertions(+), 459 deletions(-)

diff --git a/force-app/main/default/classes/CopyOpportunityController.cls b/force-app/main/default/classes/CopyOpportunityController.cls
new file mode 100644
index 0000000..448ba2b
--- /dev/null
+++ b/force-app/main/default/classes/CopyOpportunityController.cls
@@ -0,0 +1,234 @@
+/**
+ * 璺ㄥ尯閿�鍞垏鎹㈠悎浣滀唬鐞嗗晢鍜屽師浠g悊鍟�
+ */
+public without sharing class CopyOpportunityController {
+
+    // 閾炬帴鍦板潃
+    public String baseUrl { get; set; }
+    public String rtUrl { get; set; }
+
+    public String OppId {get; set;}      // 璇环id
+    public String QuoteId {get; set;}   // 鎶ヤ环id
+
+    public Opportunity opportunity {get; set;} //鍘熻浠�
+    public Quote quote {get; set;}      //鍘熸姤浠�
+
+    /**
+     * 鏃犲弬鏋勯�犳柟娉�
+     * @author Dai Y
+     * @date   2022-02-28
+     * @return null
+     */
+    public CopyOpportunityController() {
+        baseUrl = URL.getSalesforceBaseUrl().toExternalForm();
+        String path = URL.getCurrentRequestUrl().getPath();
+        if (path.indexOf('/apex') > 0) {
+            baseUrl += path.substring(0,path.indexOf('/apex'));
+        } else if (path.indexOf('production/') > 0) {
+            baseUrl += '/production';
+        }
+        // 杩斿洖鍦板潃url
+        rtUrl = System.currentPageReference().getParameters().get('retURL');
+        if (rtUrl == null || rtUrl == 'null') {
+            rtUrl = '';
+        }
+        OppId = System.currentPageReference().getParameters().get('OppId');
+        QuoteId = System.currentPageReference().getParameters().get('QuotesId');
+    }
+
+    /**
+     * 鍒濆鍖栨柟娉�
+     * @author Dai Y
+     * @date   2022-02-28
+     * @return null
+     */
+    public void  init(){        
+        opportunity = [select id,ProductSegment__c,Dealer__c,DealerSelectOwner__c,HeadOfCooperationArea__c,CrossCooperativeDealer__c from Opportunity where id =:OppId];
+        Opportunity.Dealer__c = null;
+        Opportunity.DealerSelectOwner__c = null;
+        Opportunity.HeadOfCooperationArea__c = null;
+        Opportunity.CrossCooperativeDealer__c = null;
+
+    }
+
+    /**
+     * 淇濆瓨鏂规硶
+     * @author Dai Y
+     * @date   2022-02-28
+     */
+    public PageReference Save(){
+
+        Opportunity opp = null;
+        List<OpportunityLineItem> oliList = null;
+        List<OpportunityContactRole> ocrList = null;
+        List<OpportunityTeamMember> otmList = null;
+        //Schema.DescribeSobjectResult d_opp = Opportunity.sObjectType.getDescribe();
+        schema.describeSObjectresult d = schema.Opportunity.sObjectType.getDescribe();
+        Map<String, Schema.SObjectField> d_opp_map = d.fields.getMap();
+        String soql_opp = 'select ';
+        String fields_opp = '';
+        for (String field : d_opp_map.keySet()) {
+            if (fields_opp.length() > 0) {
+                fields_opp += ', ';
+            }
+            fields_opp += field;
+        }
+        soql_opp += fields_opp;
+        soql_opp += ' from Opportunity where Id = \'' + OppId + '\'';
+        //List<Opportunity> oppList = [select Id, SyncedQuoteId from Opportunity where Id = :odr.OpportunityId];
+        List<Opportunity> oppList = Database.query(soql_opp);
+        if (oppList.size() > 0) {
+            opp = oppList[0];
+            oliList = [select Id, PricebookEntryId, Product_Search__c, Product_Search__r.Id, Product_Search__r.Product__c from OpportunityLineItem where OpportunityId = :OppId];
+            ocrList = [select Id, OpportunityId, ContactId, Role, IsPrimary from OpportunityContactRole where OpportunityId = :OppId];
+            otmList = [select id, userId,teamMemberRole,opportunityId,OpportunityAccessLevel from OpportunityTeamMember where OpportunityId = :OppId];
+        }
+        Map<String, Product_Search__c> psMap = new Map<String, Product_Search__c>();
+        if (oliList.size() > 0) {
+            for (OpportunityLineItem oli : oliList) {
+                psMap.put(oli.PricebookEntryId, oli.Product_Search__r);
+            }
+        }
+
+        
+        
+        // 鍙栧緱鍘熸姤浠枫�佹姤浠蜂骇鍝�
+        Quote quo = null;
+        List<QuoteLineItem> qliList = null;
+        Map<String, QuoteLineItem> qliMap = new Map<String, QuoteLineItem>();
+        Schema.DescribeSobjectResult d_quo = schema.Quote.sObjectType.getDescribe();
+        Map<String, Schema.SObjectField> d_quo_map = d_quo.fields.getMap();
+        String soql_quo = 'select ';
+        String fields_quo = '';
+        for (String field : d_quo_map.keySet()) {
+            if (fields_quo.length() > 0) {
+                fields_quo += ', ';
+            }
+            fields_quo += field;
+        }
+        soql_quo += fields_quo;
+        soql_quo += ' from Quote where Id = \'' + QuoteId + '\'';
+        //List<Quote> quoList = [select Id from Quote where Id = :odr.QuoteId];
+        List<Quote> quoList = Database.query(soql_quo);
+        if (quoList.size() > 0) {
+            quo = quoList[0];
+            qliList = [select Id, Set__c, Description, Quantity, Discount, ListPrice, PricebookEntryId, QuoteId, UnitPrice, Custom_Price__c,SetName__c from QuoteLineItem where QuoteId = :QuoteId];
+            for (QuoteLineItem qli : qliList) {
+                qliMap.put(qli.Id, qli);
+            }
+        }
+
+
+        System.debug(opp);
+        System.debug(oliList);
+        System.debug(ocrList);
+        System.debug(quo);
+        System.debug(qliList);
+
+
+        // 璺宠繃璇环鐘舵�佸啓鍏ラ檺鍒�
+        StaticParameter.StageProgressBarUpdate = true;
+
+        Savepoint sp = Database.setSavepoint();
+        try {
+
+            Opportunity ins_opp = opp.clone();
+            opp.Is_Decided__c = false;
+            update opp;
+
+            System.debug('=====update opp');
+            ins_opp.Id = null;
+            ins_opp.SyncedQuoteId = null;
+            ins_opp.Is_Decided__c = false;
+            ins_opp.DealerSelectOwner__c = opportunity.DealerSelectOwner__c;
+            ins_opp.HeadOfCooperationArea__c = opportunity.HeadOfCooperationArea__c;
+            ins_opp.Dealer__c = opportunity.Dealer__c;
+            ins_opp.CrossCooperativeDealer__c = opportunity.CrossCooperativeDealer__c;
+            ins_opp.the_Upload_of_quotation_number__c = null;
+            //ins_opp.org_opportunity__c = opp.Id;
+            insert ins_opp;
+
+            // 澶嶅埗璇环鑱旂郴浜�
+            List<OpportunityContactRole> ins_ocrList = new List<OpportunityContactRole>();
+            for (OpportunityContactRole ocr : ocrList) {
+                OpportunityContactRole ins_ocr = ocr.clone();
+                ins_ocr.Id = null;
+                ins_ocr.OpportunityId = ins_opp.Id;
+
+                ins_ocrList.add(ins_ocr);
+            }
+            if (ins_ocrList.size() > 0) insert ins_ocrList;
+
+            List<OpportunityTeamMember> ins_otmList = new List<OpportunityTeamMember>();
+            for (OpportunityTeamMember otm : otmList ) {
+                OpportunityTeamMember ins_otm = otm.clone();
+                ins_otm.OpportunityId = ins_opp.Id;
+                ins_otm.Id = null;
+            }
+
+            if (ins_otmList.size() >0 ) {
+                insert ins_otmList;
+            }
+
+            // 澶嶅埗鎶ヤ环
+            Quote ins_quo = null;
+            if (quo != null) {
+                ins_quo = quo.clone();
+                ins_quo.Id = null;
+                ins_quo.OpportunityId = ins_opp.Id;
+                ins_quo.Is_Decided__c = false;
+                for (Integer i = 1; i < = 30; i++) {
+                    Decimal qty = (Decimal) ins_quo.get('SetQty' + i + '__c');
+                    if (qty > 1) {
+                        ins_quo.put('SetQty' + i + '__c', 1);
+                    }
+                }
+            }
+            if (ins_quo != null) insert ins_quo;
+
+            List<QuoteLineItem> ins_qliList = new List<QuoteLineItem>();
+            if (ins_quo != null) {
+                for (QuoteLineItem qli : qliList) {
+                    QuoteLineItem ins_qli = qli.clone();
+                    ins_qli.Id = null;
+                    ins_qli.QuoteId = ins_quo.Id;
+
+                    ins_qliList.add(ins_qli);
+                }
+            }
+
+            if (ins_qliList.size() > 0) insert ins_qliList;
+
+            String url = baseUrl;
+            url += '\\' + ins_opp.Id;
+            return new Pagereference(url);
+
+        }catch (Exception ex) {
+            Database.rollback(sp);
+            System.debug('=====Exception:' + ex.getMessage() + ' | Line:' + ex.getLineNumber());
+            ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, ex.getMessage() + ' | Line:' + ex.getLineNumber()));
+            return null;
+        }
+        return null;
+
+    }
+
+
+    public PageReference BackBtn() {
+        return null;
+    }
+    /**
+     * 鏁版嵁妫�鏌ユ柟娉�   
+     * @author Dai Y
+     * @date   2022-03-01
+     * @return 鏁版嵁鍚堟牸杩斿洖 true
+     */
+    private boolean DateCheck (){
+        Boolean flag = true ; //鍚堟牸鏍囪锛屽垵濮嬩负true
+
+        
+
+        return flag;
+    }
+
+}
\ No newline at end of file
diff --git a/force-app/main/default/classes/CopyOpportunityController.cls-meta.xml b/force-app/main/default/classes/CopyOpportunityController.cls-meta.xml
new file mode 100644
index 0000000..f3bac1f
--- /dev/null
+++ b/force-app/main/default/classes/CopyOpportunityController.cls-meta.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ApexClass xmlns="http://soap.sforce.com/2006/04/metadata">
+    <apiVersion>41.0</apiVersion>
+    <status>Active</status>
+</ApexClass>
diff --git a/force-app/main/default/classes/NEWCreateSWOQuoteController.cls b/force-app/main/default/classes/NEWCreateSWOQuoteController.cls
index 68b31b0..8375826 100644
--- a/force-app/main/default/classes/NEWCreateSWOQuoteController.cls
+++ b/force-app/main/default/classes/NEWCreateSWOQuoteController.cls
@@ -362,7 +362,7 @@
         if ('缁翠慨鎶ヤ环鍗�'.equals(QuotesPage.QuotesType__c)) {
             QuotesPage.CUSTOMER_MESSAGE__c = '';
             //鏃ユ湡2121骞�11鏈�15鍙蜂箣鍚庣殑,鐢ㄦ柊鐨勫厤璐g敵鏄庛��
-           if (aftORbef == true) {
+           if (aftORbef == true || aftORbef1 == true) {
                 QuotesPage.CUSTOMER_MESSAGE__c += '-缁翠慨璐ㄤ繚鍙兜鐩栦簬鏈缁翠慨鐨勯厤浠讹紝缁翠慨璐ㄤ繚鏈熶负浠櫒鍙戣揣鍚庝笁涓湀鍔犲叓澶┿�俓n';
                 Messages01 = '-缁翠慨璐ㄤ繚鍙兜鐩栦簬鏈缁翠慨鐨勯厤浠讹紝缁翠慨璐ㄤ繚鏈熶负浠櫒鍙戣揣鍚庝笁涓湀鍔犲叓澶┿��';
             }else{
@@ -380,8 +380,13 @@
             Messages05 = '鏃ユ湡锛�';
         } else if ('闆朵欢鎶ヤ环鍗�'.equals(QuotesPage.QuotesType__c)) {
             QuotesPage.CUSTOMER_MESSAGE__c = '';
-            QuotesPage.CUSTOMER_MESSAGE__c += '-濂ユ灄宸存柉鏈嶅姟閮ㄥ敭鍑虹殑缁翠慨閰嶄欢纭繚涓鸿川閲忕鍚堝ゥ鏋楀反鏂弬鏁版寚鏍囩殑鏂板搧锛屽ゥ鏋楀反鏂鍞嚭鐨勭淮淇厤浠朵笉鎻愪緵淇濅慨鏈嶅姟锛屽悓鏃朵篃涓嶆彁渚涢��銆佹崲璐ф湇鍔°�傛暚璇锋偍璋ㄦ厧璐拱銆俓n';
-            Messages01 = '-濂ユ灄宸存柉鏈嶅姟閮ㄥ敭鍑虹殑缁翠慨閰嶄欢纭繚涓鸿川閲忕鍚堝ゥ鏋楀反鏂弬鏁版寚鏍囩殑鏂板搧锛屽ゥ鏋楀反鏂鍞嚭鐨勭淮淇厤浠朵笉鎻愪緵淇濅慨鏈嶅姟锛屽悓鏃朵篃涓嶆彁渚涢��銆佹崲璐ф湇鍔°�傛暚璇锋偍璋ㄦ厧璐拱銆�';
+            if ('NDT'.equals(QuotesPage.PRODUCT_SEGMENT__c)) {
+                QuotesPage.CUSTOMER_MESSAGE__c += '-浠櫙閫氬厜瀛︾鎶�(涓婃捣)鏈夐檺鍏徃鍖椾含鍒嗗叕鍙稿敭鍑虹殑缁翠慨閰嶄欢涓哄ゥ鏋楀反鏂師鍘傞厤浠讹紝浠櫙閫氬叕鍙稿鍞嚭鐨勭淮淇厤浠朵笉鎻愪緵淇濅慨鏈嶅姟锛屼篃涓嶆彁渚涢��銆佹崲璐ф湇鍔★紝鏁鎮ㄨ皑鎱庤喘涔般�俓n';
+                Messages01 = '-浠櫙閫氬厜瀛︾鎶�(涓婃捣)鏈夐檺鍏徃鍖椾含鍒嗗叕鍙稿敭鍑虹殑缁翠慨閰嶄欢涓哄ゥ鏋楀反鏂師鍘傞厤浠讹紝浠櫙閫氬叕鍙稿鍞嚭鐨勭淮淇厤浠朵笉鎻愪緵淇濅慨鏈嶅姟锛屼篃涓嶆彁渚涢��銆佹崲璐ф湇鍔★紝鏁鎮ㄨ皑鎱庤喘涔般��';
+            }else {
+                QuotesPage.CUSTOMER_MESSAGE__c += '-濂ユ灄宸存柉鏈嶅姟閮ㄥ敭鍑虹殑缁翠慨閰嶄欢纭繚涓鸿川閲忕鍚堝ゥ鏋楀反鏂弬鏁版寚鏍囩殑鏂板搧锛屽ゥ鏋楀反鏂鍞嚭鐨勭淮淇厤浠朵笉鎻愪緵淇濅慨鏈嶅姟锛屽悓鏃朵篃涓嶆彁渚涢��銆佹崲璐ф湇鍔°�傛暚璇锋偍璋ㄦ厧璐拱銆俓n';
+                Messages01 = '-濂ユ灄宸存柉鏈嶅姟閮ㄥ敭鍑虹殑缁翠慨閰嶄欢纭繚涓鸿川閲忕鍚堝ゥ鏋楀反鏂弬鏁版寚鏍囩殑鏂板搧锛屽ゥ鏋楀反鏂鍞嚭鐨勭淮淇厤浠朵笉鎻愪緵淇濅慨鏈嶅姟锛屽悓鏃朵篃涓嶆彁渚涢��銆佹崲璐ф湇鍔°�傛暚璇锋偍璋ㄦ厧璐拱銆�';
+            }
             QuotesPage.CUSTOMER_MESSAGE__c += '-鐢ㄦ埛鍦ㄦ纭姝ゆ鎶ヤ环锛屽喅瀹氳喘涔帮細\n';
             Messages02 = '-鐢ㄦ埛鍦ㄦ纭姝ゆ鎶ヤ环锛屽喅瀹氳喘涔帮細';
             QuotesPage.CUSTOMER_MESSAGE__c += '瀹㈡埛绛惧瓧鎴栫洊绔狅細\n';
diff --git a/force-app/main/default/classes/OpportunityTriggerHandler.cls b/force-app/main/default/classes/OpportunityTriggerHandler.cls
index e00eca2..be66aac 100644
--- a/force-app/main/default/classes/OpportunityTriggerHandler.cls
+++ b/force-app/main/default/classes/OpportunityTriggerHandler.cls
@@ -800,7 +800,7 @@
             opportunityToOwner.put(opp.Id, opp.DealerSelectOwner__c);
         }
 
-        Map<Id, User> copyUserMap = new Map<Id, User>([SELECT Id, Name,BS_AsistGenManger__c,AsistGenManger__c, BusinessDepOwner_Tax__c,BusinessDepOwner_WithoutTax__c,SalesWindow__c,Department__c,SalesManager__c FROM User 
+        Map<Id, User> copyUserMap = new Map<Id, User>([SELECT Id, Name,BS_AsistGenManger__c, BusinessDepOwner_Tax__c,BusinessDepOwner_WithoutTax__c,SalesWindow__c,Department__c,SalesManager__c FROM User 
             WHERE Id IN :ownerIdList ]);
 
            for (Opportunity opp: newList)
@@ -815,7 +815,6 @@
                     opp.IESalesManage__c = u.SalesManager__c != null ? u.SalesManager__c : u.Id;
                     opp.IESalesManageWindow__c  = u.SalesWindow__c != null ? u.SalesWindow__c : u.Id;
                     opp.DepartmentPrincipal__c = u.Department__c != null ? u.Department__c : u.Id;
-                    opp.AsistGenMangerIE__c = u.AsistGenManger__c != null ? u.AsistGenManger__c : u.Id;
                 }
                 //缁撴潫
                 //璺ㄥ尯閿�鍞坊鍔犲壇閮ㄩ暱
diff --git a/force-app/main/default/classes/OrderPdf2Controller.cls b/force-app/main/default/classes/OrderPdf2Controller.cls
index c090912..6bea583 100644
--- a/force-app/main/default/classes/OrderPdf2Controller.cls
+++ b/force-app/main/default/classes/OrderPdf2Controller.cls
@@ -30,12 +30,12 @@
     private Integer eachCnt = 48;
     private Integer lastMaxCnt = 35;
 
-    private Integer iRfirstCnt = 6;
+    private Integer iRfirstCnt = 9;
     private Integer iRfirstMaxCnt = 23;
     private Integer iReachCnt = 48;
     private Integer iRlastMaxCnt = 30;
 
-    private Integer nAfirstCnt = 6;
+    private Integer nAfirstCnt = 9;
     private Integer nAfirstMaxCnt = 23;
     private Integer nAeachCnt = 48;
     private Integer nAlastMaxCnt = 30;
@@ -579,11 +579,11 @@
         seller_province1 = '鍖椾含';
         seller_phone1 = '010-58199000';
 
-        seller_name2 = '濂ユ灄宸存柉锛堝寳浜級閿�鍞湇鍔℃湁闄愬叕鍙镐笂娴峰垎鍏徃';
-        seller_address2 = '涓婃捣甯傚緪姹囧尯娣捣涓矾1010鍙�1001-1006銆�1101銆�1102銆�1104-1106銆�1601瀹�';
+        seller_name2 = '浠櫙閫氬厜瀛︾鎶�锛堜笂娴凤級鏈夐檺鍏徃';
+        seller_address2 = '涓浗锛堜笂娴凤級鑷敱璐告槗璇曢獙鍖烘棩妯卞寳璺�199-9鍙�102鍙�302閮ㄤ綅';
         seller_city2 = '涓婃捣';
         seller_province2 = '涓婃捣';
-        seller_phone2 = '021-51582084';
+        seller_phone2 = '021-58881300';
 
         header = new HeaderInfo();
         inputDetails = new List<DetailInfo>();
diff --git a/force-app/main/default/classes/OrderPdfController.cls b/force-app/main/default/classes/OrderPdfController.cls
index 1609f66..e63df9c 100644
--- a/force-app/main/default/classes/OrderPdfController.cls
+++ b/force-app/main/default/classes/OrderPdfController.cls
@@ -192,31 +192,31 @@
                     od.PDF_Co_SContra_E__c = 'one';
                 }
                 if ((Opp.ProductSegment__c == 'IE'  || Opp.ProductSegment__c == 'RVI' || Opp.ProductSegment__c == 'BS') && Opp.TradeType__c == 'Tax Exemption') {
-                    od.PDF_SELLER__c = '濂ユ灄宸存柉棣欐腐涓浗鏈夐檺鍏徃';
-                    od.PDF_THE_SELLER__c = 'Olympus Hong Kong and China Limited';
-                    od.PDF_S_Adds__c = '棣欐腐鏂扮晫钁垫秾钁垫槍璺�51铏熶節榫嶈部鏄撲腑蹇�1搴�26妯�';
-                    od.PDF_S_Address__c = 'L26, Tower 1, Kowloon Commerce Centre, 51 Kwai Cheong Road, Kwai Chung, New Territories, Hong Kong.';
-                    od.PDF_S_TEL__c = '锛�852锛�2170 5678';
-                    od.PDF_S_FAX__c = '锛�852锛�2170 5679';
-                    od.PDF_S_Bank_Name__c = 'MUFG Bank锛孡td';
-                    od.PDF_S_Branch__c = 'Kowloon Branch';
-                    od.PDF_S_Bank_Address__c = '15/F, Peninsula Office Tower 18 Middle Road, Kowloon, Hong Kong';
-                    od.PDF_S_Account_No__c = '047-821-85800023837锛圲SD Saving Account锛�';
-                    od.PDF_S_Swift_Code__c = 'BOTKHKHH';
-                    od.PDF_S_Account_Name__c = 'Evident Corporation';
+                    od.PDF_SELLER__c = '浠櫙閫氬厜瀛︾鎶�锛堜笂娴凤級鏈夐檺鍏徃';
+                    od.PDF_THE_SELLER__c = 'Evident (Shanghai) Co., Ltd';
+                    od.PDF_S_Adds__c = '涓浗锛堜笂娴凤級鑷敱璐告槗璇曢獙鍖烘棩妯卞寳璺�199-9鍙�102鍙�302閮ㄤ綅';
+                    od.PDF_S_Address__c = 'PART 302&102,NO.199-9,NORTH RIYING ROAD,CHINA (SHANGHAI) PILOT FREE TRADE ZONE';
+                    od.PDF_S_TEL__c = '021-58881300';
+                    od.PDF_S_FAX__c = '';
+                    od.PDF_S_Bank_Name__c = 'SUMITOMO MITSUI BANKING CORPORATION锛圕HINA锛塋IMITED';
+                    od.PDF_S_Branch__c = '';
+                    od.PDF_S_Bank_Address__c = '11F, SHANGHAI WORLD FINANCIAL CENTER, 100 CENTURY AVENUE, PUDONG NEW AREA ,SHANGHAI 200120, PEOPLE\'S REPUBLIC OF CHINA';
+                    od.PDF_S_Account_No__c = '40453301';
+                    od.PDF_S_Swift_Code__c = 'SMBCCNSH';
+                    od.PDF_S_Account_Name__c = 'Evident(Shanghai)CO.,LTD';
                 } else if (( Opp.ProductSegment__c == 'NDT' || Opp.ProductSegment__c == 'ANI') && Opp.TradeType__c == 'Tax Exemption') {
-                    od.PDF_SELLER__c = '濂ユ灄宸存柉棣欐腐涓浗鏈夐檺鍏徃';
-                    od.PDF_THE_SELLER__c = 'Olympus Hong Kong and China Limited';
-                    od.PDF_S_Adds__c = '棣欐腐鏂扮晫钁垫秾钁垫槍璺�51铏熶節榫嶈部鏄撲腑蹇�1搴�26妯�';
-                    od.PDF_S_Address__c = 'L26, Tower 1, Kowloon Commerce Centre, 51 Kwai Cheong Road, Kwai Chung, New Territories, Hong Kong';
-                    od.PDF_S_TEL__c = '锛�852锛�2170 5678';
-                    od.PDF_S_FAX__c = '锛�852锛�2170 5679';
-                    od.PDF_S_Bank_Name__c = 'The Bank Of Tokyo-Mitsubishi UFJ锛孡td.';
-                    od.PDF_S_Branch__c = 'Kowloon Branch ';
-                    od.PDF_S_Bank_Address__c = '15/F., Peninsula Office Tower, 18 Middle Road, Kowloon';
-                    od.PDF_S_Account_No__c = '047-821-85800023837锛圲SD Saving Account锛�';
-                    od.PDF_S_Swift_Code__c = 'BOTKHKHH';
-                    od.PDF_S_Account_Name__c = 'Olympus Hong Kong and China Limited';
+                    od.PDF_SELLER__c = '浠櫙閫氬厜瀛︾鎶�锛堜笂娴凤級鏈夐檺鍏徃';
+                    od.PDF_THE_SELLER__c = 'Evident (Shanghai) Co., Ltd';
+                    od.PDF_S_Adds__c = '涓浗锛堜笂娴凤級鑷敱璐告槗璇曢獙鍖烘棩妯卞寳璺�199-9鍙�102鍙�302閮ㄤ綅';
+                    od.PDF_S_Address__c = 'PART 302&102,NO.199-9,NORTH RIYING ROAD,CHINA (SHANGHAI) PILOT FREE TRADE ZONE';
+                    od.PDF_S_TEL__c = '021-58881300';
+                    od.PDF_S_FAX__c = '';
+                    od.PDF_S_Bank_Name__c = 'SUMITOMO MITSUI BANKING CORPORATION锛圕HINA锛塋IMITED';
+                    od.PDF_S_Branch__c = '';
+                    od.PDF_S_Bank_Address__c = '11F, SHANGHAI WORLD FINANCIAL CENTER, 100 CENTURY AVENUE, PUDONG NEW AREA ,SHANGHAI 200120, PEOPLE\'S REPUBLIC OF CHINA';
+                    od.PDF_S_Account_No__c = '40453301';
+                    od.PDF_S_Swift_Code__c = 'SMBCCNSH';
+                    od.PDF_S_Account_Name__c = 'Evident(Shanghai)CO.,LTD';
                     od.DeliveryTimeTextEn__c = 'Please refer to order confirmation';
                     od.DeliveryTimeText__c = '璇峰弬鑰冭鍗曠‘璁�';
                     od.PDF_Bi_AllBill__c = '涓嶉殢璐�';
diff --git a/force-app/main/default/classes/OrderTriggerHandler.cls b/force-app/main/default/classes/OrderTriggerHandler.cls
index a6a92a0..dabed1b 100644
--- a/force-app/main/default/classes/OrderTriggerHandler.cls
+++ b/force-app/main/default/classes/OrderTriggerHandler.cls
@@ -107,7 +107,7 @@
                     
                     system.debug('2222222'+getModelQuantityMap);
                     String accountDealerErrorMessage = RadiationUtil.updateCertificationDetails(oliList[0].Opportunity.DealerId__c, null, getModelQuantityMap, false);
-                    String olympusDealerErrorMessage = RadiationUtil.updateCertificationDetails(olympusAccountId, null, getModelQuantityMap, false) == '' ? '' : '浠櫙閫氬彲閿�鍞暟閲忎笉瓒�';
+                    String olympusDealerErrorMessage = RadiationUtil.updateCertificationDetails(olympusAccountId, null, getModelQuantityMap, false) == '' ? '' : '濂ユ灄宸存柉鍙攢鍞暟閲忎笉瓒�';
                     //result = accountDealerErrorMessage + (olympusDealerErrorMessage == '' ? '' : '濂ユ灄宸存柉鍙攢鍞暟閲忎笉瓒�') ;
                     Boolean temp = accountDealerErrorMessage.startsWith('浣犱笉鑳�');
                     String strOly = LicenseCheckUtil.LicenseCheckOly();
@@ -170,8 +170,6 @@
             }*/
         }
 
-
-
         List<AggregateResult> orderCnt = [select Count(Id) ocnt, OpportunityId from Order where OpportunityId = :oppIdList and Status__c = 'Active' group by OpportunityId];
         Map<String, Integer> orderCntMap = new Map<String, Integer>();
         for (AggregateResult temp : orderCnt) {
@@ -191,12 +189,14 @@
         }
         //鐜嬮箯浼� 鏂板缓鍜屽悓鏃�,鍜岃浠峰姣斿鎴枫�佹渶缁堢敤鎴�
         //鎴村畤锛屾坊鍔犲悎鍚屽叧鑱旈�昏緫
-        List<Opportunity> oppList = [select id,Association_Opportunity__c,CrossCooperativeProject__c,HeadOfCooperationArea__c,CrossCooperativeDealer__r.ManagementCode_F__c,CrossCooperativeDealer__r.Name,SyncedQuoteId, SyncedQuote.PaymentTerms__c, TradeType__c, Quote_PaymentTerms__c,AccountId,customerType__c,useing__c,compo_opp__c,RecordTypeId from Opportunity where id = :oppidList];
+        List<Opportunity> oppList = [select id,Association_Opportunity__c,CrossCooperativeProject__c,HeadOfCooperationArea__c,CrossCooperativeDealer__r.ManagementCode_F__c,CrossCooperativeDealer__r.Name,SyncedQuoteId, SyncedQuote.PaymentTerms__c, TradeType__c, Quote_PaymentTerms__c,AccountId,customerType__c,useing__c,compo_opp__c from Opportunity where id = :oppidList];
         Map<String, String> syncedQuoteIdMap = new Map<String, String>();
         Map<String, String> paymentTermsMap = new Map<String, String>();
         Map<String, String> tradeTypeMap = new Map<String, String>();
         Map<String,String> oppAccountMap = new Map<String,String>();
         Map<String,Opportunity> oppMap = new Map<String,Opportunity>();
+
+       
 
         for (Opportunity opp : oppList) {
             syncedQuoteIdMap.put(opp.id, opp.SyncedQuoteId);
@@ -212,9 +212,6 @@
             if(newOrd.ProductSegment__c == 'IE' && newOrd.IE_SP8_D__c != oppMap.get(newOrd.OpportunityId).compo_opp__c){
                 newOrd.addError('涓嶈兘淇敼鐗规畩鏉′欢COMPO');
             }
-
-
-
             /*if(newOrd.ProductSegment__c == 'BS'){
                 String temp = oppMap.get(newOrd.OpportunityId).useing__c;
                 if(newOrd.SP_61D__c != (temp == ''?false:true)){
@@ -244,7 +241,7 @@
             newOrd.CrossCooperativeDealerCode__c = oppMap.get(newOrd.OpportunityId) == null ? '' :oppMap.get(newOrd.OpportunityId).CrossCooperativeDealer__r.ManagementCode_F__c;
             newOrd.HeadOfCooperationArea__c = oppMap.get(newOrd.OpportunityId) == null ? null :oppMap.get(newOrd.OpportunityId).HeadOfCooperationArea__c;
             newOrd.CrossCooperativeDealerText__c = oppMap.get(newOrd.OpportunityId) == null ? null :oppMap.get(newOrd.OpportunityId).CrossCooperativeDealer__r.Name;
-            newOrd.is_Direct__c = oppMap.get(newOrd.OpportunityId) == null ? false : (oppMap.get(newOrd.OpportunityId).RecordTypeId == '0120T0000003Ser' ? true : false);
+            
 
             //鐜嬮箯浼熸柊鍔狅紝鍚堝悓涓甫鍏� 璇环 璐告槗绠$悊瀹㈡埛鍒嗙被  寮�濮�
             newOrd.TradeMagCategory__c = oppMap.get(newOrd.OpportunityId) == null ? '' :oppMap.get(newOrd.OpportunityId).customerType__c;
@@ -269,7 +266,7 @@
                                      newOrd.RecordTypeId == System.Label.RT_Contract_IndividualCase_NDT ||
                                      newOrd.RecordTypeId == System.Label.RT_Contract_IndividualCase_RVI;
 
-            if (UserInfo.getUserType() == 'PowerPartner' || newOrd.RecordTypeId == System.Label.RT_ServiceContract || newOrd.RecordTypeId == '0120T0000003nka'
+            if (UserInfo.getUserType() == 'PowerPartner' || newOrd.RecordTypeId == System.Label.RT_ServiceContract
                     || newOrd.RecordTypeId == System.Label.RT_ServiceContractIE || newOrd.RecordTypeId == System.Label.RT_ServiceContractRVI || individualCase) {
                 // 澶栬锤閫佽揪鏂归粯璁や负澶栬锤鍏徃
                 if (tradeTypeMap.get(newOrd.OpportunityId) == System.Label.Trade_Type) {
@@ -428,6 +425,7 @@
     }
 
     public static void setPriceBook(List<Order> newList, Map<Id, Order> newMap, List<Order> oldList, Map<Id, Order> oldMap) {
+        
         List<String> oppidList = new List<String>();
         for (Order o : newList) {
             oppidList.add(o.OpportunityId);
@@ -444,18 +442,11 @@
 
     public static void addItem(List<Order> newList, Map<Id, Order> newMap, List<Order> oldList, Map<Id, Order> oldMap) {
         List<String> oppidList = new List<String>();
+//        Map<String, String> order2oppMap = new Map<String, String>();
         Boolean  hasBS = false;
-        List<OrderShare> salesOwnershareList = new List<OrderShare>();
         for (Order o : newList) {
             oppidList.add(o.OpportunityId);
-            // 璺ㄧ渷浠藉悎浣滈」鐩� 涓虹湡 骞朵笖 鍚堝悓瀹℃壒浜轰笉鏄┖锛屽皢鍚堝悓鍏变韩缁欏鎵逛汉 Start
-            if (o.CrossCooperativeProject__c && String.isNotBlank(o.SalesOwner_BS__c)) {
-                salesOwnershareList.add(DataAssembly(o.Id,o.SalesOwner_BS__c));
-            }
-            // 璺ㄧ渷浠藉悎浣滈」鐩� 涓虹湡 骞朵笖 鍚堝悓瀹℃壒浜轰笉鏄┖锛屽皢鍚堝悓鍏变韩缁欏鎵逛汉 End
-        }
-        if (salesOwnershareList.size() > 0) {
-            insert salesOwnershareList;
+//            order2oppMap.put(o.Id, o.OpportunityId);
         }
         // XHL20210830
         List<OpportunityTeamMember> oppTM = new List<OpportunityTeamMember>();
@@ -696,12 +687,8 @@
         //鏂扮殑鑾峰彇绠�妗D  calendarUtil.getMemberProfileID  杩欓噷鐢ㄥ埌鐨勪汉鍛業D 鍜岃幏鍙栧埌鐨勭畝妗D閮芥槸15浣嶇殑
         //String new_profileId = calendarUtil.getMemberProfileID(UserInfo.getUserId().subString(0,15));
         String new_profileId = calendarUtil.getMemberProfileID(UserInfo.getUserId().subString(0,15));
-       
         for (Order newOrd : newList) {
             Order oldOrd = oldMap.get(newOrd.Id);
-            if(newOrd.CrossCooperativeProject__c && CherkCrossComperativeChanged(newOrd,oldOrd)){
-                newOrd.addError('鍒涘缓鍚堝悓鍚庝笉鑳戒慨鏀笰浠g悊鍟嗗拰B浠g悊鍟�');
-            }
            /* if(newOrd.SubDealer__c == '鏃�'){
                 newOrd.SubDealer__c = '';
             }*/
@@ -1484,12 +1471,12 @@
      */
     public static void setOrderShare (List<Order> newList, Map<Id, Order> newMap, List<Order> oldList, Map<Id, Order> oldMap) {
         List<OrderShare> insertOrderShareList = new List<OrderShare>();
-        BatchIF_Log__c iflog = new BatchIF_Log__c();
+        /*BatchIF_Log__c iflog = new BatchIF_Log__c();
         iflog.Type__c = 'OrderShare';
         String datetimeStr = String.valueOf(Datetime.now()).replace('-','').replace(' ','').replace(':','');
         iflog.MessageGroupNumber__c = datetimeStr;
         iflog.Log__c = '';
-        Boolean errrorFlag = false;
+        Boolean errrorFlag = false;*/
 
         for (Order newOrd : newList) {
             Order oldOrd = oldMap == null ? new Order() : oldMap.get(newOrd.Id);
@@ -1504,7 +1491,7 @@
             if (newOrd.SharedFlag__c != oldOrd.SharedFlag__c && newOrd.SharedFlag__c && newOrd.OwnerId != oldOrd.OwnerId) {
                 String userId = oldOrd.OwnerId;
                 insertOrderShareList.add(DataAssembly(newOrd.Id,userId));
-            } else {
+            } /*else {
 
                 if (newOrd.SharedFlag__c != oldOrd.SharedFlag__c && newOrd.SharedFlag__c) {
                     iflog.Log__c += 'Order Id --->'+ newOrd.Id + '\n';
@@ -1512,7 +1499,7 @@
                     iflog.Log__c +=  'oldOrd.OwnerId--->'+oldOrd.OwnerId + '\n';
                     errrorFlag = true;  
                 }
-            }
+            }*/
 
         }
         if (insertOrderShareList.size() > 0) {
@@ -1520,9 +1507,9 @@
             insert insertOrderShareList;
         }
 
-        if (errrorFlag) {
+        /*if (errrorFlag) {
             insert iflog;
-        }
+        }*/
 
 
     }
@@ -1537,18 +1524,8 @@
             // }
             // XHL20210830
             if (newOrd.SharedFlag__c != oldOrd.SharedFlag__c && newOrd.SharedFlag__c && newOrd.OwnerId != newOrd.OpportunityOwnerId__c && newOrd.OpportunityOwnerId__c <> null && newOrd.OpportunityOwnerId__c <> '') {
-                newOrd.OwnerId = newOrd.OpportunityOwnerId__c;   
+                newOrd.OwnerId = newOrd.OpportunityOwnerId__c;
             }
-
-            if (newOrd.SharedFlag__c != oldOrd.SharedFlag__c && newOrd.SharedFlag__c){
-                // 璺ㄧ渷浠藉悎浣滈」鐩� 涓虹湡 骞朵笖 鍚堝悓瀹℃壒浜轰笉鏄┖锛屽皢瀹℃壒浜鸿祴鍊肩粰鎵�鏈変汉 Start
-                if (newOrd.CrossCooperativeProject__c && String.isNotBlank(newOrd.SalesOwner_BS__c)) {
-                    newOrd.OwnerId = newOrd.SalesOwner_BS__c;
-                }
-                // 璺ㄧ渷浠藉悎浣滈」鐩� 涓虹湡 骞朵笖 鍚堝悓瀹℃壒浜轰笉鏄┖锛屽皢瀹℃壒浜鸿祴鍊肩粰鎵�鏈変汉 End    
-            }
-            
-            // 
             if (newOrd.ApproveStatus__c != oldOrd.ApproveStatus__c) {
                 if (newOrd.ApproveStatus__c == 'Pass' && newOrd.IsCopy__c == false) {
                     newOrd.IsSpPassed__c = true;    
@@ -1874,12 +1851,7 @@
 
             if (oldOrder.ApproveStatus__c != newOrder.ApproveStatus__c && (newOrder.ApproveStatus__c == 'Completed' || newOrder.ApproveStatus__c == 'Completed2' || newOrder.ApproveStatus__c == 'CompletedC' || newOrder.ApproveStatus__c == 'CompletedS' )) {
                 ownerIdList.add(newOrder.OpportunityOwnerId__c);
-                ownerIdList.add(newOrder.SalesOwner_BS__c);
-                if(newOrder.CrossCooperativeProject__c){
-                    orderToOwner.put(newOrder.Id, newOrder.SalesOwner_BS__c);
-                }else{
-                    orderToOwner.put(newOrder.Id, newOrder.OpportunityOwnerId__c);
-                }
+                orderToOwner.put(newOrder.Id, newOrder.OpportunityOwnerId__c);
             }
 
             if (newOrder.Description != null && newOrder.Description.length() > 0) {
@@ -2019,12 +1991,14 @@
         }
 
         //鏄惧井闀滈檷绾�
-        levelMap = levelCheck(ordIdList);
+        if(OrderDivisionController.OrderDivision == false){
+            levelMap = levelCheck(ordIdList);
+        }
         //for()
 
         Map<Id, User> copyUserMap = new Map<Id, User>([
                     SELECT Id, Name, SalesAsistManager__c, BusinessDepOwner_Tax__c, BusinessDepOwner_WithoutTax__c, SalesManager__c, AsistGenManger__c, CRM_Owner__c,
-                    BS_AsistGenManger__c,BS_AsistBGenManger__c,Department__c,BS_BDepartment__c,BS_GeneralManager__c,BS_INDepartment__c,BS_Department__c,BS_Manager__c
+                    BS_AsistGenManger__c,BS_AsistBGenManger__c,BS_BDepartment__c,BS_GeneralManager__c,BS_INDepartment__c,BS_Department__c,BS_Manager__c
                     FROM User WHERE Id IN :ownerIdList
                 ]);
         
@@ -2054,11 +2028,8 @@
 
 
                 User u = copyUserMap.get(orderToOwner.get(newOrder.Id));
-                if (u != null && (u.SalesAsistManager__c != null || u.Department__c != null || u.BusinessDepOwner_Tax__c != null || u.BusinessDepOwner_WithoutTax__c != null || u.SalesManager__c != null || u.AsistGenManger__c != null)) {
-                    if(newOrder.CrossCooperativeProject__c == false){
-                        newOrder.SalesOwner_BS__c = newOrder.OpportunityOwnerId__c;
-                    }
-                    
+                if (u != null && (u.SalesAsistManager__c != null || u.BusinessDepOwner_Tax__c != null || u.BusinessDepOwner_WithoutTax__c != null || u.SalesManager__c != null || u.AsistGenManger__c != null)) {
+                    newOrder.SalesOwner_BS__c = newOrder.OpportunityOwnerId__c;
                     newOrder.SalesAsistManager_BS__c = u.SalesAsistManager__c == null ? u.Id : u.SalesAsistManager__c;
                     // 褰撻粍骞虫睙鐨処E瀹岀◣鍚堝悓锛屼互涓嬬渷浠戒笟鍔¢儴瀹℃壒浜轰负閮戣蕉鐩� 2018/11/30
                     if (newOrder.ProductSegment__c == 'IE' && u.Id == '00528000000YVFs' && (newOrder.Province__c == '娌冲崡' || newOrder.Province__c == '灞变笢'
@@ -2112,12 +2083,13 @@
                 newOrder.OrderUpdateUser__c = UserInfo.getUserId();
             }
             //if (newOrder.RecordTypeId == '01228000000NJt8') {
-            //gwy 2022-02-18 绛夌骇绫诲埆瀛楁娣诲姞鎺у埗,鏅�氬悎鍚屽拰鍙樻洿鐨勫悎鍚屻��
             if ((newOrder.ProductSegment__c == 'BS' && newOrder.Is_TAX__c == true && newOrder.AccoutMatketD__c == 'Clinical') && 
                 (newOrder.confirm__c == false || (newOrder.confirm__c && String.isNotBlank(newOrder.original_order__c) && !'OrderPass'.equals(newOrder.ApproveStatus__c)))) {
                 //鏄惧井闀滈檷绾�
-                newOrder.Level_Category__c = levelMap.get(newOrder.id);
-            }   
+                if(OrderDivisionController.OrderDivision == false){
+                    newOrder.Level_Category__c = levelMap.get(newOrder.id);
+                }
+            }    
             //}
         }
     }
@@ -2395,7 +2367,7 @@
                 hasBS = true;
             }
         }
-        if (updateOrderAccount) {
+        if (updateOrderAccount && OrderDivisionController.OrderDivision == false) {
             // WLIG-C3M68P XHL 20210607 Start
             // 鏂板缓涓庡彉鏇村悎鍚屽鎴枫�佹渶缁堢敤鎴锋椂,鍜岃浠峰姣斿鎴枫�佹渶缁堢敤鎴凤紝鑻ヤ笉鐩稿悓鐩存帴鎶ラ敊鎻愰啋
             CustomerConsistency(oppidList,oppAccountMap,newList);
@@ -2538,15 +2510,10 @@
                     (odr.RecordTypeId == System.Label.RT_Contract_BS_Tax ||
                      odr.RecordTypeId == System.Label.RT_Contract_BS_Tax_Approval ||
                      odr.RecordTypeId == System.Label.RT_Contract_BS_WithoutTax ||
-                     odr.RecordTypeId == System.Label.RT_Contract_BS_WithoutTax_Approval ||
-                     odr.RecordTypeId == System.Label.RT_Contract_BS_Tax_kua ||
-                     odr.RecordTypeId == System.Label.RT_Contract_BS_Tax_Approval_kua ||
-                     odr.RecordTypeId == System.Label.RT_Contract_BS_WithoutTax_kua ||
-                     odr.RecordTypeId == System.Label.RT_Contract_BS_WithoutTax_Approval_kua )) {
+                     odr.RecordTypeId == System.Label.RT_Contract_BS_WithoutTax_Approval)) {
                 odrIds.add(odr.Id);
             }
         }
-        system.debug('111111+' + odrIds.size());
         if (odrIds.size() == 0) return;
 
         Map<String, boolean> hiddenFlagMap = new Map<String, boolean>();
@@ -2568,9 +2535,6 @@
         system.debug('hiddenFlagMap'+hiddenFlagMap);
         for (Order odr : newList) {
             Order oldOrd = oldMap == null ? new Order() : oldMap.get(odr.Id);
-            system.debug(odr.RecordTypeId + '@@@' + oldOrd.RecordTypeId);
-            system.debug(odr.CrossCooperativeProject__c + '!!!!!' + hiddenFlagMap.get(odr.Id));
-            //濡傛灉鍚堝悓鐨勮褰曠被鍨嬫槸LS鐩稿叧鐨勮褰曠被鍨嬶紝闇�瑕佹牴鎹殣钘忔爣璁扮‘璁ゆ槸鍚︿慨鏀逛负瀵瑰簲鐨勮褰曠被鍨�
             if (odr.RecordTypeId != oldOrd.RecordTypeId &&
                     (odr.RecordTypeId == System.Label.RT_Contract_BS_Tax ||
                      odr.RecordTypeId == System.Label.RT_Contract_BS_Tax_Approval ||
@@ -2578,77 +2542,23 @@
                      odr.RecordTypeId == System.Label.RT_Contract_BS_WithoutTax_Approval)) {
                 if (hiddenFlagMap.get(odr.Id) == true) {
                     if (odr.RecordTypeId == System.Label.RT_Contract_BS_Tax) {
-                        if(odr.CrossCooperativeProject__c == true){
-                            odr.RecordTypeId = System.Label.RT_Contract_BS_Tax_hidden_kua;
-                        }else{
-                            odr.RecordTypeId = System.Label.RT_Contract_BS_Tax_hidden;
-                        }
+                        odr.RecordTypeId = System.Label.RT_Contract_BS_Tax_hidden;
                     } else if (odr.RecordTypeId == System.Label.RT_Contract_BS_Tax_Approval) {
-                         if(odr.CrossCooperativeProject__c == true){
-                            odr.RecordTypeId = System.Label.RT_Contract_BS_Tax_Approval_hidden_kua;
-                        }else{
-                            odr.RecordTypeId = System.Label.RT_Contract_BS_Tax_Approval_hidden;
-                        }
-                       
+                        odr.RecordTypeId = System.Label.RT_Contract_BS_Tax_Approval_hidden;
                     } else if (odr.RecordTypeId == System.Label.RT_Contract_BS_WithoutTax) {
-                         if(odr.CrossCooperativeProject__c == true){
-                            odr.RecordTypeId = System.Label.RT_Contract_BS_WithoutTax_hidden_kua;
-                        }else{
-                            odr.RecordTypeId = System.Label.RT_Contract_BS_WithoutTax_hidden;
-                        }
-                        
+                        odr.RecordTypeId = System.Label.RT_Contract_BS_WithoutTax_hidden;
                     } else if (odr.RecordTypeId == System.Label.RT_Contract_BS_WithoutTax_Approval) {
-                         if(odr.CrossCooperativeProject__c == true){
-                            odr.RecordTypeId = System.Label.RT_Contract_BS_WithoutTax_hidden_Approval_kua;
-                        }else{
-                            odr.RecordTypeId = System.Label.RT_Contract_BS_WithoutTax_hidden_Approval;
-                        }
-                        
+                        odr.RecordTypeId = System.Label.RT_Contract_BS_WithoutTax_hidden_Approval;
                     }
                 } else if (hiddenFlagMap.get(odr.Id) == false) {
                     if (odr.RecordTypeId == System.Label.RT_Contract_BS_Tax_hidden) {
-                         if(odr.CrossCooperativeProject__c == true){
-                            odr.RecordTypeId = System.Label.RT_Contract_BS_Tax_kua;
-                        }else{
-                            odr.RecordTypeId = System.Label.RT_Contract_BS_Tax;
-                        }
-                        
+                        odr.RecordTypeId = System.Label.RT_Contract_BS_Tax;
                     } else if (odr.RecordTypeId == System.Label.RT_Contract_BS_Tax_Approval_hidden) {
-                         if(odr.CrossCooperativeProject__c == true){
-                            odr.RecordTypeId = System.Label.RT_Contract_BS_Tax_Approval_kua;
-                        }else{
-                            odr.RecordTypeId = System.Label.RT_Contract_BS_Tax_Approval;
-                        }
-                        
+                        odr.RecordTypeId = System.Label.RT_Contract_BS_Tax_Approval;
                     } else if (odr.RecordTypeId == System.Label.RT_Contract_BS_WithoutTax_hidden) {
-                         if(odr.CrossCooperativeProject__c == true){
-                            odr.RecordTypeId = System.Label.RT_Contract_BS_WithoutTax_kua;
-                        }else{
-                            odr.RecordTypeId = System.Label.RT_Contract_BS_WithoutTax;
-                        }
-                        
+                        odr.RecordTypeId = System.Label.RT_Contract_BS_WithoutTax;
                     } else if (odr.RecordTypeId == System.Label.RT_Contract_BS_WithoutTax_hidden_Approval) {
-                        if(odr.CrossCooperativeProject__c == true){
-                            odr.RecordTypeId = System.Label.RT_Contract_BS_WithoutTax_Approval_kua;
-                        }else{
-                            odr.RecordTypeId = System.Label.RT_Contract_BS_WithoutTax_hidden;
-                        }   
-                    } else if (odr.RecordTypeId == System.Label.RT_Contract_BS_Tax) {
-                        if(odr.CrossCooperativeProject__c == true){
-                            odr.RecordTypeId = System.Label.RT_Contract_BS_Tax_kua;
-                        }
-                    } else if (odr.RecordTypeId == System.Label.RT_Contract_BS_Tax_Approval) {
-                         if(odr.CrossCooperativeProject__c == true){
-                            odr.RecordTypeId = System.Label.RT_Contract_BS_Tax_Approval_kua;
-                        }
-                    } else if (odr.RecordTypeId == System.Label.RT_Contract_BS_WithoutTax) {
-                         if(odr.CrossCooperativeProject__c == true){
-                            odr.RecordTypeId = System.Label.RT_Contract_BS_WithoutTax_kua;
-                        }
-                    } else if (odr.RecordTypeId == System.Label.RT_Contract_BS_WithoutTax_Approval) {
-                         if(odr.CrossCooperativeProject__c == true){
-                            odr.RecordTypeId = System.Label.RT_Contract_BS_WithoutTax_Approval_kua;
-                        }
+                        odr.RecordTypeId = System.Label.RT_Contract_BS_WithoutTax_hidden;
                     }
                 }
             }
@@ -2718,6 +2628,13 @@
 
                         // 鍚堝悓-鍙樻洿鐢宠-鍘熷悎鍚屾棤鏁堟垨鑰呮墜鍔ㄤ慨鏀瑰鑷村悎鍚屾棤鏁�
                         if (!approveStatus && status) {
+                            if(newOrd.oldOrder__c){
+                                RadiationUtil.oldOrder = true;
+                                if (updateFlag) {
+                                    newOrd.oldOrder__c = false;
+                                }
+                                
+                            }
                             RadiationUtil.updateRadiationTypeQuantity(newOrd.Id,orderFounder , newOrd.DealerId__c, true,'鏃犳晥鎴栧彉鏇存棤鏁�',newOrd.LastModifiedById );
                         }
 
@@ -2734,6 +2651,12 @@
 
                             if (RadiationUtil.EscapeOrderTriggerHandler) {
                                 RadiationUtil.EscapeOrderTriggerHandler = false;
+                                if(newOrd.oldOrder__c){
+                                    RadiationUtil.oldOrder = true;
+                                    if (updateFlag) {
+                                        newOrd.oldOrder__c = false;
+                                    }
+                                }
                                 RadiationUtil.updateRadiationTypeQuantity(newOrd.Id,orderFounder , newOrd.DealerId__c, true,'鍚堝悓鍙樻洿鑽夋涓�',newOrd.LastModifiedById );
 
                             }
@@ -2747,20 +2670,43 @@
                         Boolean status = newOrd.Status__c != oldOrd.Status__c && newOrd.Status__c == 'Inactive';
                         // 鍚堝悓鎻愪氦鐘舵�佸彉鎴愭棤鏁�
                         if ( status ) {
+                            if(newOrd.oldOrder__c){
+                                RadiationUtil.oldOrder = true;
+                                if (updateFlag) {
+                                    newOrd.oldOrder__c = false;
+                                }
+                            }
                             RadiationUtil.updateRadiationTypeQuantity(newOrd.Id,orderFounder , newOrd.DealerId__c, true,'鍚堝悓鎻愪氦鍙樻棤鏁�',newOrd.LastModifiedById );
                         }
                     } else if (newOrd.ApproveStatus__c == 'CancelPass' && newOrd.Status__c == 'Active') {
                         // 鍚堝悓-鍚堝悓鎵瑰噯鈫掆啋鈫掑悎鍚屽彇娑�
                         if ( approveStatus && newOrd.BeforeSubmitStatus__c == 'OrderPass') {
-
+                            if(newOrd.oldOrder__c){
+                                RadiationUtil.oldOrder = true;
+                                if (updateFlag) {
+                                    newOrd.oldOrder__c = false;
+                                }
+                            }
                             RadiationUtil.updateRadiationTypeQuantity(newOrd.Id,orderFounder , newOrd.DealerId__c, true,'鍚堝悓鍙栨秷',newOrd.LastModifiedById );
                         }
 
                     } else if (oldOrd.ApproveStatus__c == 'OrderSubmit' && newOrd.ApproveStatus__c == 'OrderReject' && newOrd.Status__c == 'Active') {
                         // 鍚堝悓鎻愪氦鈫掆啋鈫掑悎鍚岄┏鍥�
+                        if(newOrd.oldOrder__c){
+                            RadiationUtil.oldOrder = true;
+                            if (updateFlag) {
+                                newOrd.oldOrder__c = false;
+                            }
+                        }
                         RadiationUtil.updateRadiationTypeQuantity(newOrd.Id,orderFounder , newOrd.DealerId__c, true,'鍚堝悓椹冲洖',newOrd.LastModifiedById );
                     } else if (oldOrd.ApproveStatus__c == 'OrderSubmit' && newOrd.ApproveStatus__c == 'OrderDraft' && newOrd.Status__c == 'Active') {
                         // 鍚堝悓鎻愪氦鈫掆啋鈫掑悎鍚岃皟鍥�
+                        if(newOrd.oldOrder__c){
+                            RadiationUtil.oldOrder = true;
+                            if (updateFlag) {
+                                newOrd.oldOrder__c = false;
+                            }
+                        }
                         RadiationUtil.updateRadiationTypeQuantity(newOrd.Id,orderFounder , newOrd.DealerId__c, true,'鍚堝悓璋冨洖',newOrd.LastModifiedById );
                     }
                    
@@ -2883,6 +2829,10 @@
         String errMessage = '瀹㈡埛鍚嶆垨鏈�缁堢敤鎴蜂笌璇环涓嶄竴鑷达紒';
         for(Order orOne:newList){
             if (oppAccountMap.containsKey(orOne.OpportunityId)) {
+                System.debug(oppAccountMap.get(orOne.OpportunityId) != orOne.AccountId);
+                System.debug( !roleMap.containsKey(orOne.OpportunityId));
+                System.debug(orOne.EndUserD__c + '++'+ roleMap.get(orOne.OpportunityId));
+
                 if(oppAccountMap.get(orOne.OpportunityId) != orOne.AccountId || !roleMap.containsKey(orOne.OpportunityId) || orOne.EndUserD__c != roleMap.get(orOne.OpportunityId)){
                     // 鑾峰彇鐢ㄦ埛Id
                     String userId = UserInfo.getUserId().subString(0,15);
@@ -2892,23 +2842,22 @@
                                 throw new ControllerUtil.myException('鍚堝悓Id:'+orOne.Id+'_'+errMessage);    
                             } else {
                                 //璁㈠崟ID娌℃湁鍙栧埌
-                                orOne.addError(errMessage);
+                                orOne.addError(errMessage+'1'+orOne.Id);
                             }
                         } else {
                             //鑷畾涔夋爣绛鹃噷闈㈡病鏈夊綋鍓嶇敤鎴风殑ID
-                            orOne.addError(errMessage);
+                            orOne.addError(errMessage + '2');
                         }
 
                     } else {
                         //鑷畾涔夋爣绛炬病鏈夊唴瀹�
-                        orOne.addError(errMessage);
+                        orOne.addError(errMessage + '3');
                     }
                     
                     
                 }
             }
         }
-
     }
 
     //妫�鏌ュ悎鍚屼笂鐨勭瓑绾х被鍒槸浜岀被锛屼竴绫伙紝闈炵洃绠�(绛夌骇鐢遍珮鍒板簳)锛屽崟鐙竴鏉¤褰曢噷闈㈢殑鎵�鏈変骇鍝侊紝鏀惧埌涓�涓猯ist閲岄潰銆�
@@ -2937,7 +2886,7 @@
             }
         }
 
-        //寮�濮嬮�昏緫鍒ゆ柇锛岃鍗曚骇鍝佸搴旂殑浜у搧鐨勭瓑绾х被鍒彧瑕佹湁涓�绫伙紝璁㈠崟涓婄殑绛夌骇绫诲埆璧嬪�间竴绫�(涓�绫�>浜岀被>闈炵洃绠★紝渚濇绫绘帹)
+        //寮�濮嬮�昏緫鍒ゆ柇锛岃鍗曚骇鍝佸搴旂殑浜у搧鐨勭瓑绾х被鍒彧瑕佹湁浜岀被锛岃鍗曚笂鐨勭瓑绾х被鍒祴鍊间簩绫�(浜岀被>涓�绫�>闈炵洃绠★紝渚濇绫绘帹)
         for (String oe : newList) {
             if (orditemMap.containsKey(oe)) {
                 if (orditemMap.get(oe).contains('浜岀被')) {
@@ -3002,80 +2951,12 @@
         return returnMap;
     }
     */
-   
-
-    
-    /**
-     * 妫�鏌ュ悎鍚屽鎵逛汉鏄惁濉啓瀹屾暣   
-     * @author Dai Y
-     * @date   2022-01-12
-     * @param  ordList    寰呮鏌ュ悎鍚孡ist
-     * @return            濉啓瀹屾暣杩斿洖true锛屼笉瀹屾暣杩斿洖false
-     */
-    private static Boolean CheckSalesOwner(List<Order> ordList){
-        Boolean flag = true;
-        for (Order order : ordList) {
-            //鍒ゆ柇鍚堝悓瀹℃壒浜烘槸鍚︿负绌猴紝
-            if(String.isBlank(order.SalesOwner_BS__c)){
-                //order.SalesOwner_BS__c.addError('璇峰~鍐欏鎵逛汉');
-                flag = false;
-            }
-        }
-        return flag;
-    }
-    /**
-     * 妫�鏌ヨ法鍖洪攢鍞浉鍏虫暟鎹槸鍚﹀~鍐欏畬鏁�
-     * @author Dai Y
-     * @date   2022-01-12
-     * @param  ordList    寰呮鏌ュ悎鍚孡ist
-     * @return            濉啓瀹屾暣杩斿洖true锛屼笉瀹屾暣杩斿洖false
-     */
-    
-    private static Boolean CheckCrossComperativeData(List<Order> ordList){
-        Boolean flag = true;
-        for (Order order : ordList) {
-            //鍒ゆ柇鍚堜綔鍖哄煙浠g悊鍟嗭紝涓讳唬鐞嗗晢鍜屽悎浣滃尯鍩熻礋璐d汉
-            if(String.isBlank(order.CrossCooperativeDealerText__c) || String.isBlank(order.HeadOfCooperationArea__c)  || false){
-                flag = false;
-            }
-        }
-        return flag;
-    }
-    /**
-     * 鍒ゆ柇AB浠g悊鍟嗘槸鍚︿慨鏀�
-     * @author Dai Y
-     * @date   2022-01-20
-     * @param  newOrd    淇敼鍚庡悎鍚�
-     * @param  oldOrd     淇敼鍓嶅悎鍚�
-     * @return            濡傛灉杩涜淇敼杩斿洖true锛屾病淇繃楗悗false
-     */
-    public static Boolean CherkCrossComperativeChanged(Order newOrd ,Order oldOrd){
-        Boolean flag = false;
-        if(newOrd.Dealer_A__c != oldOrd.Dealer_A__c || newOrd.Dealer_B__c != oldOrd.Dealer_B__c ){
-            flag = true;
-        }
-        return flag;
-    }
-
-    /**
-     * 蹇呭~閫夐」妫�鏌�
-     * @author Dai Y
-     * @date   2022-01-13
-     * @param  ordList    寰呮鏌ュ悎鍚孡ist
-     * @return            妫�鏌ラ�氳繃杩斿洖true锛屼笉閫氳繃杩斿洖false
-     */
-    private static Boolean Check(List<Order> ordList){
-        Boolean flag = true;
-
-
-        return flag;
-    }
 
     public static void asd() {
         Integer i = 1;
         i++;
         i++;
-        i++;    
+        i++;
         i++;
         i++;
         i++;
diff --git a/force-app/main/default/classes/OrderTriggerTest.cls b/force-app/main/default/classes/OrderTriggerTest.cls
index 13c821d..7ea53f7 100644
--- a/force-app/main/default/classes/OrderTriggerTest.cls
+++ b/force-app/main/default/classes/OrderTriggerTest.cls
@@ -101,7 +101,8 @@
             SpecialDeliveryAccount__c = accIE.Id,
             SpecialDeliveryAccount_D__c = accIE.Id,
             SpecialDeliveryContact2_D__c = con.Id,
-            EndUser__c = con.Id
+            EndUser__c = con.Id,
+            EndUserD__c = con.Id
         );
         insert odr;
 
@@ -226,7 +227,8 @@
             IE_SP8__c = true,
             SpecialDeliveryAccount_D__c = accIE.Id,
             SpecialDeliveryContact2_D__c = con.Id,
-            EndUser__c = con.Id
+            EndUser__c = con.Id,
+            EndUserD__c = con.Id
         );
         insert odr;
         List<Order> orderList = [select id, ApproveStatus__c,ProductSegment__c,Status__c,IE_SP5_D__c,IE_SP6_D__c,IE_SP7_D__c,IE_SP8_D__c from Order where Id = :odr.Id];
@@ -338,7 +340,8 @@
             EffectiveDate = Date.today(),
             SpecialDeliveryAccount_D__c = accIE.Id,
             SpecialDeliveryContact2_D__c = con.Id,
-            EndUser__c = con.Id
+            EndUser__c = con.Id,
+            EndUserD__c = con.Id
         );
         insert odr;
 
@@ -612,7 +615,8 @@
             SP_61D__c = true,
             SpecialDeliveryAccount_D__c = accBS.Id,
             SpecialDeliveryContact2_D__c = con.Id,
-            EndUser__c = con.Id
+            EndUser__c = con.Id,
+            EndUserD__c = con.Id
         );
         insert odr;
 
@@ -800,7 +804,8 @@
             EffectiveDate = Date.today(),
             Status = 'Draft',
             Pricebook2Id = pricebook.Id,
-            EndUser__c = contact.Id
+            EndUser__c = contact.Id,
+            EndUserD__c = contact.Id
         );
         insert order;
     }
diff --git a/force-app/main/default/classes/ProRegisterHandler.cls b/force-app/main/default/classes/ProRegisterHandler.cls
index 2875d82..9092f80 100644
--- a/force-app/main/default/classes/ProRegisterHandler.cls
+++ b/force-app/main/default/classes/ProRegisterHandler.cls
@@ -113,92 +113,185 @@
 		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 
+		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];
+        //鏌ヨ鍑轰骇鍝両D
+        List<Id> pro2IdList = new  List<Id>();
+        for (Product_Register_Link__c prl1: prlList) {
+        	pro2IdList.add(prl1.Product2__r.id);
+        }
+
+        List<Product_Register_Link__c> prl1List = new List<Product_Register_Link__c>();
+        prl1List = [select Product2__r.id,Product2__r.demoteer_Sap__c,Product2__r.Diedatvanink__c,Product_Register__r.Stelsedag__c,Product_Register__r.MedPrdClass__c,Product_Register__r.ValidTo__c,Product_Register__r.ValidFrom__c 
+        from Product_Register_Link__c 
+        where Product2__r.Id in : pro2IdList];
 
         //鏍规嵁Id瀛樻斁浜у搧鎵�灞炵殑鎵�鏈夋敞鍐岃瘉涓嬬殑鍣ㄦ鍒嗙被銆�
         Map<Id,List<String>> pro2Map = new Map<Id,List<String>>();
         //瀛樻斁娉ㄥ唽璇佷笂鏈�鍓嶇殑缁存姢鏃�
         Map<Id,Date> prSteMap = new Map<Id,Date>();
-        if (prlList.size()>0) {
-            for (Product_Register_Link__c prl: prlList) {
+        if (prl1List.size()>0) {
+            for (Product_Register_Link__c prl: prl1List) {
                 if (pro2Map.containsKey(prl.Product2__r.Id)) {
                     pro2Map.get(prl.Product2__r.Id).add(prl.Product_Register__r.MedPrdClass__c);
                 }else {
                     pro2Map.put(prl.Product2__r.Id, new List<String>());
                     pro2Map.get(prl.Product2__r.Id).add(prl.Product_Register__r.MedPrdClass__c);
                 }
-                if (prSteMap.containsKey(prl.Product2__r.Id)) {
-                    if (prSteMap.get(prl.Product2__r.Id) > prl.Product_Register__r.Stelsedag__c) {
-                        prSteMap.remove(prl.Product2__r.Id);
+
+                if (prl.Product_Register__r.MedPrdClass__c == '1') {
+                    if (prSteMap.containsKey(prl.Product2__r.Id)) {
+                        if (prSteMap.get(prl.Product2__r.Id) > prl.Product_Register__r.Stelsedag__c) {
+                            prSteMap.put(prl.Product2__r.Id,prl.Product_Register__r.Stelsedag__c);
+                        }
+                    }else {
                         prSteMap.put(prl.Product2__r.Id,prl.Product_Register__r.Stelsedag__c);
                     }
-                }else {
-                    prSteMap.put(prl.Product2__r.Id,prl.Product_Register__r.Stelsedag__c);
                 }
+            }
+
+            for (Product_Register_Link__c prl: prl1List) {
+                if (prSteMap.get(prl.Product2__r.Id) == null) {
+                    if (prSteMap.containsKey(prl.Product2__r.Id) && (prl.Product_Register__r.MedPrdClass__c == '2' || prl.Product_Register__r.MedPrdClass__c == '3')) {
+                        if (prSteMap.containsKey(prl.Product2__r.Id)) {
+                            if (prSteMap.get(prl.Product2__r.Id) > prl.Product_Register__r.Stelsedag__c) {
+                                prSteMap.put(prl.Product2__r.Id,prl.Product_Register__r.Stelsedag__c);
+                            }
+                        }else {
+                            prSteMap.put(prl.Product2__r.Id,prl.Product_Register__r.Stelsedag__c);
+                        }
+                    }
+                } 
             }
         }
         System.debug('pro2Map='+pro2Map);
         System.debug('prSteMap='+prSteMap);
         //浜у搧Id涓庣瓑绾х被鍒�
         Map<Id,String> prlMap = new Map<Id,String>();
-        List<ID> pr2Idlsit = new List<ID>();
-        if (pro2Map.size()>0 && prSteMap.size()>0) {
-            for (Product_Register_Link__c pr: prlList) {
+        Map<Id,String> prl1Map = new Map<Id,String>();
+        Map<Id,String> prl2Map = new Map<Id,String>();
+        List<ID> pidList = new List<ID>();
+        if (pro2Map.size()>0) {
+            for (Product_Register_Link__c pr: prl1List) {
                 if (pro2Map.containsKey(pr.Product2__r.Id) && prSteMap.containsKey(pr.Product2__r.Id)) {
-                	pr2Idlsit.add(pr.Product2__r.Id);
-                    //鐢熶骇鏃ュぇ浜庣淮鎶ゆ棩,鍏ュ簱鏃ュぇ浜庣淮鎶ゆ棩
-                    if (pr.Product2__r.demoteer_Sap__c <= prSteMap.get(pr.Product2__r.Id) && 
-                        pr.Product2__r.Diedatvanink__c <= prSteMap.get(pr.Product2__r.Id)) {
-                        if (pro2Map.get(pr.Product2__r.Id).contains('1') || 
-                            pro2Map.get(pr.Product2__r.Id).contains('2') || 
-                            pro2Map.get(pr.Product2__r.Id).contains('3')) {
-                            prlMap.put(pr.Product2__r.Id, '浜岀被');
-                        }else {
-                            prlMap.put(pr.Product2__r.Id, '闈炵洃绠�');
-                        }
-                    }else {
-                        //鍏ュ簱鏃ュぇ浜庣淮鎶ゆ棩
-                        if (pr.Product2__r.Diedatvanink__c > prSteMap.get(pr.Product2__r.Id)) {
-                            //鐢熶骇鏃ュぇ浜庣淮鎶ゆ棩
-                            if (pr.Product2__r.demoteer_Sap__c > prSteMap.get(pr.Product2__r.Id)) {
-                                prlMap.put(pr.Product2__r.Id, '涓�绫�');
-                            }else {
-                                //鐢熶骇鏃ュ皬浜庣淮鎶ゆ棩
-                                if (pro2Map.get(pr.Product2__r.Id).contains('1')) {
-                                    prlMap.put(pr.Product2__r.Id, '涓�绫�');
-                                }else if (!pro2Map.get(pr.Product2__r.Id).contains('1') && 
-                                          (pro2Map.get(pr.Product2__r.Id).contains('2') || 
-                                           pro2Map.get(pr.Product2__r.Id).contains('3'))) {
-                                    prlMap.put(pr.Product2__r.Id, '浜岀被');
-                                }else {
-                                    prlMap.put(pr.Product2__r.Id, '闈炵洃绠�');
-                                }
-                            }
-                        }
+                	pidList.add(pr.Product2__r.Id);
+                    if (pr.Product2__r.demoteer_Sap__c <> null && pr.Product2__r.Diedatvanink__c <> null) {
+                    	if (pr.Product_Register__r.Stelsedag__c <> null) {
+                    	    if (pr.Product2__r.Diedatvanink__c <= pr.Product_Register__r.Stelsedag__c) {
+	                           if (pr.Product2__r.demoteer_Sap__c <= pr.Product_Register__r.ValidTo__c && pr.Product2__r.demoteer_Sap__c >= pr.Product_Register__r.ValidFrom__c
+	                                && pr.Product_Register__r.MedPrdClass__c == '2' || pr.Product_Register__r.MedPrdClass__c == '3') {
+	                                if (prlMap.get(pr.Product2__r.Id) == null) {
+	                                    prlMap.put(pr.Product2__r.Id, '浜岀被');
+	                                }else {
+	                                    String Lins = prlMap.get(pr.Product2__r.Id);
+	                                    Lins += '浜岀被';
+	                                    prlMap.put(pr.Product2__r.Id, Lins);
+	                                }
+	                            }
+	                            else if (pr.Product2__r.demoteer_Sap__c <= pr.Product_Register__r.ValidTo__c && pr.Product2__r.demoteer_Sap__c >= pr.Product_Register__r.ValidFrom__c
+	                                && (pr.Product_Register__r.MedPrdClass__c == '1')) {
+	                                    if (prlMap.get(pr.Product2__r.Id) == null) {
+	                                        prlMap.put(pr.Product2__r.Id, '涓�绫�');
+	                                    }else {
+	                                        String Lins = prlMap.get(pr.Product2__r.Id);
+	                                    Lins += '涓�绫�';
+	                                    prlMap.put(pr.Product2__r.Id, Lins);
+	                                    }
+	                            }else {
+	                                if (prlMap.get(pr.Product2__r.Id) == null) {
+	                                    prlMap.put(pr.Product2__r.Id, '闈炵洃绠�');
+	                                }else {
+	                                    String Lins = prlMap.get(pr.Product2__r.Id);
+	                                    Lins += '闈炵洃绠�';
+	                                    prlMap.put(pr.Product2__r.Id, Lins);
+	                                }
+	                            }
+	                        }else if (pr.Product2__r.Diedatvanink__c > pr.Product_Register__r.Stelsedag__c) {
+	                            if (pr.Product2__r.demoteer_Sap__c <= pr.Product_Register__r.ValidTo__c && pr.Product2__r.demoteer_Sap__c >= pr.Product_Register__r.ValidFrom__c
+	                                && pr.Product_Register__r.MedPrdClass__c == '1') {
+	                                if (prl1Map.get(pr.Product2__r.Id) == null) {
+	                                    prl1Map.put(pr.Product2__r.Id, '涓�绫�');
+	                                }else {
+	                                    String Lins = prl1Map.get(pr.Product2__r.Id);
+	                                    Lins += '涓�绫�';
+	                                    prl1Map.put(pr.Product2__r.Id, Lins);
+	                                }
+	                            }else if (pr.Product2__r.demoteer_Sap__c <= pr.Product_Register__r.ValidTo__c && pr.Product2__r.demoteer_Sap__c >= pr.Product_Register__r.ValidFrom__c
+	                                && pr.Product_Register__r.MedPrdClass__c == '2' || pr.Product_Register__r.MedPrdClass__c == '3') {
+	                                if (prl1Map.get(pr.Product2__r.Id) == null) {
+	                                    prl1Map.put(pr.Product2__r.Id, '浜岀被');
+	                                }else {
+	                                    String Lins = prl1Map.get(pr.Product2__r.Id);
+	                                    Lins += '浜岀被';
+	                                    prl1Map.put(pr.Product2__r.Id, Lins);
+	                                }
+	                            }else {
+	                                if (prlMap.get(pr.Product2__r.Id) == null) {
+	                                    prlMap.put(pr.Product2__r.Id, '闈炵洃绠�');
+	                                }else {
+	                                    String Lins = prlMap.get(pr.Product2__r.Id);
+	                                    Lins += '闈炵洃绠�';
+	                                    prlMap.put(pr.Product2__r.Id, Lins);
+	                                }
+	                            }
+	                        }
+                    	}else {
+                    		prl2Map.put(pr.Product2__r.Id, '绌�');
+                    	}
                     }
                 }
             }
         }
         System.debug('prlMap='+prlMap);
+        System.debug('prl1Map='+prl1Map);
+        System.debug('prl2Map='+prl2Map);
 
         List<Product2> por2Lsit = new List<Product2>();
 	    //鏌ュ嚭浜у搧鐨刬d鍜岀瓑绾х被鍒殑瀛楁 
-	    por2Lsit = [select Id,Level_Category__c from Product2 where Id in : pr2Idlsit];
+	    por2Lsit = [select Id,Level_Category__c,demoteer_Sap__c,Diedatvanink__c from Product2 where Id in : pidList];
 	    if (por2Lsit.size() > 0) {
 	        for (Product2 pr2: por2Lsit) {
 	        	if (prlMap.containsKey(pr2.Id)) {
-	        		pr2.Level_Category__c = prlMap.get(pr2.Id);
-	    			prt2Map.put(pr2.Id,pr2);
-	        	}else {
-	        		pr2.Level_Category__c = null;
-	        		prt2Map.put(pr2.Id,pr2);
-	        	}
+                	if ((prlMap.get(pr2.Id).contains('浜岀被') && prlMap.get(pr2.Id).contains('涓�绫�')) || 
+	                    (!prlMap.get(pr2.Id).contains('涓�绫�') && prlMap.get(pr2.Id).contains('浜岀被'))){
+                		pr2.Level_Category__c = '浜岀被';
+	                    prt2Map.put(pr2.Id, pr2);
+	                }else if (prlMap.get(pr2.Id).contains('涓�绫�') && !prlMap.get(pr2.Id).contains('浜岀被')) {
+	                	pr2.Level_Category__c = '涓�绫�';
+	                    prt2Map.put(pr2.Id, pr2);
+	                }else if (prlMap.get(pr2.Id).contains('闈炵洃绠�') && !prl2Map.containsKey(pr2.Id)) {
+	                    pr2.Level_Category__c = '闈炵洃绠�';
+	                    prt2Map.put(pr2.Id, pr2);
+	                }else {
+	                	pr2.Level_Category__c = null;
+	                    prt2Map.put(pr2.Id, pr2);
+	                }
+	            }
+	            if (prl1Map.containsKey(pr2.Id)) {
+	                if (prl1Map.get(pr2.Id).contains('涓�绫�')) {
+	                    pr2.Level_Category__c = '涓�绫�';
+	                    prt2Map.put(pr2.Id, pr2);
+	                }else if (prl1Map.get(pr2.Id).contains('浜岀被') && !prl1Map.get(pr2.Id).contains('涓�绫�')) {
+	                    pr2.Level_Category__c = '浜岀被';
+	                    prt2Map.put(pr2.Id, pr2);
+	                }else if (prl1Map.get(pr2.Id).contains('闈炵洃绠�') && !prl2Map.containsKey(pr2.Id)) {
+	                    pr2.Level_Category__c = '闈炵洃绠�';
+	                    prt2Map.put(pr2.Id, pr2);
+	                }else {
+	                	pr2.Level_Category__c = null;
+	                    prt2Map.put(pr2.Id, pr2);
+	                }
+	            }
+	            if (pr2.demoteer_Sap__c == null || pr2.Diedatvanink__c == null) {
+                	pr2.Level_Category__c = null;
+                	prt2Map.put(pr2.Id, pr2);
+            	}
 	    	}
 	    }
 	    
-        if (prlMap.size() > 0) {
+	    System.debug('prt2Map='+prt2Map);
+        if (prt2Map.size() > 0) {
            update prt2Map.values(); 
         } 
 	}
diff --git a/force-app/main/default/classes/ProRegisterHandlerTest.cls b/force-app/main/default/classes/ProRegisterHandlerTest.cls
index 7e5af72..ca658cc 100644
--- a/force-app/main/default/classes/ProRegisterHandlerTest.cls
+++ b/force-app/main/default/classes/ProRegisterHandlerTest.cls
@@ -103,24 +103,37 @@
         PRC.MedPrdClass__c         = '1';
         PRC.RegisterNoClass_New__c = '';
         PRC.RegisterNoClass_Old__c = '6822';
-        PRC.PrdCompanyAddr__c = '鍚嶇О:濂ユ灄宸存柉鍖荤枟鏍紡浼氱ぞ;浣忔墍:鏃ユ湰鍥戒笢浜兘娑╄胺鍖哄埂涔嬭胺浜屼竵鐩�43鐣湴2鍙�;鑱旂郴鏂瑰紡:0081-426-42-2667';
+        PRC.PrdCompanyAddr__c      = '鍚嶇О:濂ユ灄宸存柉鍖荤枟鏍紡浼氱ぞ;浣忔墍:鏃ユ湰鍥戒笢浜兘娑╄胺鍖哄埂涔嬭胺浜屼竵鐩�43鐣湴2鍙�;鑱旂郴鏂瑰紡:0081-426-42-2667';
         PRC.ClinicalProductCode__c = 'YYYY';
-        PRC.ValidTo__c = Date.today().addDays(22);
-        PRC.ValidFrom__c = Date.today().addDays(-22);
+        PRC.ValidTo__c             = Date.today().addDays(22);
+        PRC.ValidFrom__c           = Date.today().addDays(-22);
         PRC.Stelsedag__c           = Date.today();
         insert PRC;
+
+        Product_Register__c PRC1 = new Product_Register__c();
+        PRC1.Name                   = '鍥芥娉ㄨ繘20183222249';
+        PRC1.MedPrdClass__c         = '2';
+        PRC1.RegisterNoClass_New__c = '';
+        PRC1.RegisterNoClass_Old__c = '6822';
+        PRC1.PrdCompanyAddr__c      = '鍚嶇О:濂ユ灄宸存柉鍖荤枟鏍紡浼氱ぞ;浣忔墍:鏃ユ湰鍥戒笢浜兘娑╄胺鍖哄埂涔嬭胺浜屼竵鐩�43鐣湴2鍙�;鑱旂郴鏂瑰紡:0081-426-42-2667';
+        PRC1.ClinicalProductCode__c = 'YYYY';
+        PRC1.ValidTo__c             = Date.today().addDays(22);
+        PRC1.ValidFrom__c           = Date.today().addDays(-22);
+        PRC1.Stelsedag__c           = Date.today().addDays(1);
+        insert PRC1;                 
 
         Product_Register_Link__c prl = new Product_Register_Link__c();
         prl.Product2__c = prd.ID;
         prl.Product_Register__c = PRC.ID;
         insert prl;
 
-        PRC.ValidTo__c = Date.today().addDays(21);
-        PRC.ValidFrom__c = Date.today().addDays(-21);
-        update PRC;
+        Product_Register_Link__c prl1 = new Product_Register_Link__c();
+        prl1.Product2__c = prd.ID;
+        prl1.Product_Register__c = PRC1.ID;
+        insert prl1;
 
-        prd.Name                   = 'hehe';
-        update prd;
+        PRC1.name = 'v鍥芥娉ㄨ繘20183222249';
+        update PRC1;
     }
 
     @isTest static void test_checkProduct2Level1() {
@@ -136,27 +149,40 @@
 
         Product_Register__c PRC = new Product_Register__c();
         PRC.Name                   = '鍥芥娉ㄨ繘20183222249';
-        PRC.MedPrdClass__c         = '';
+        PRC.MedPrdClass__c         = '2';
         PRC.RegisterNoClass_New__c = '';
         PRC.RegisterNoClass_Old__c = '6822';
-        PRC.PrdCompanyAddr__c      = '鍚嶇О:濂ユ灄宸存柉鍖荤枟鏍紡浼氱ぞ;浣忔墍:鏃ユ湰鍥戒笢浜兘娑╄胺鍖哄埂涔嬭胺浜屼竵鐩�43鐣湴2鍙�;鑱旂郴鏂瑰紡:0081-426-42-2667';
+        PRC.PrdCompanyAddr__c = '鍚嶇О:濂ユ灄宸存柉鍖荤枟鏍紡浼氱ぞ;浣忔墍:鏃ユ湰鍥戒笢浜兘娑╄胺鍖哄埂涔嬭胺浜屼竵鐩�43鐣湴2鍙�;鑱旂郴鏂瑰紡:0081-426-42-2667';
         PRC.ClinicalProductCode__c = 'YYYY';
         PRC.ValidTo__c             = Date.today().addDays(22);
         PRC.ValidFrom__c           = Date.today().addDays(-22);
-        PRC.Stelsedag__c           = Date.today();
+        PRC.Stelsedag__c           = Date.today().addDays(1);
         insert PRC;
+
+        Product_Register__c PRC1 = new Product_Register__c();
+        PRC1.Name                   = '鍥芥娉ㄨ繘20183222249';
+        PRC1.MedPrdClass__c         = '1';
+        PRC1.RegisterNoClass_New__c = '';
+        PRC1.RegisterNoClass_Old__c = '6822';
+        PRC1.PrdCompanyAddr__c = '鍚嶇О:濂ユ灄宸存柉鍖荤枟鏍紡浼氱ぞ;浣忔墍:鏃ユ湰鍥戒笢浜兘娑╄胺鍖哄埂涔嬭胺浜屼竵鐩�43鐣湴2鍙�;鑱旂郴鏂瑰紡:0081-426-42-2667';
+        PRC1.ClinicalProductCode__c = 'YYYY';
+        PRC1.ValidTo__c             = Date.today().addDays(22);
+        PRC1.ValidFrom__c           = Date.today().addDays(-22);
+        PRC1.Stelsedag__c           = Date.today();
+        insert PRC1;
 
         Product_Register_Link__c prl = new Product_Register_Link__c();
         prl.Product2__c              = prd.ID;
         prl.Product_Register__c      = PRC.ID;
         insert prl;
 
-        PRC.ValidTo__c   = Date.today().addDays(21);
-        PRC.ValidFrom__c = Date.today().addDays(-21);
-        update PRC;
+        Product_Register_Link__c prl1 = new Product_Register_Link__c();
+        prl1.Product2__c              = prd.ID;
+        prl1.Product_Register__c      = PRC1.ID;
+        insert prl1;
 
-        prd.Name                   = 'hehe1';
-        update prd;
+        PRC1.name = 'v鍥芥娉ㄨ繘20183222249';
+        update PRC1;
     }
 
     @isTest static void test_checkProduct2Level2() {
@@ -166,33 +192,62 @@
         prd.Name                   = 'testSBG004';
         prd.IsActive               = true;
         prd.Level_Category__c      = '';
-        prd.demoteer_Sap__c        = Date.today().addDays(3);
-        prd.Diedatvanink__c        = Date.today().addDays(4);
+        prd.demoteer_Sap__c        = Date.today().addDays(-3);
+        prd.Diedatvanink__c        = Date.today().addDays(-4);
         insert prd;
 
         Product_Register__c PRC = new Product_Register__c();
         PRC.Name                   = '鍥芥娉ㄨ繘20183222249';
-        PRC.MedPrdClass__c         = '1';
+        PRC.MedPrdClass__c         = '';
         PRC.RegisterNoClass_New__c = '';
         PRC.RegisterNoClass_Old__c = '6822';
-        PRC.PrdCompanyAddr__c      = '鍚嶇О:濂ユ灄宸存柉鍖荤枟鏍紡浼氱ぞ;浣忔墍:鏃ユ湰鍥戒笢浜兘娑╄胺鍖哄埂涔嬭胺浜屼竵鐩�43鐣湴2鍙�;鑱旂郴鏂瑰紡:0081-426-42-2667';
+        PRC.PrdCompanyAddr__c = '鍚嶇О:濂ユ灄宸存柉鍖荤枟鏍紡浼氱ぞ;浣忔墍:鏃ユ湰鍥戒笢浜兘娑╄胺鍖哄埂涔嬭胺浜屼竵鐩�43鐣湴2鍙�;鑱旂郴鏂瑰紡:0081-426-42-2667';
         PRC.ClinicalProductCode__c = 'YYYY';
         PRC.ValidTo__c             = Date.today().addDays(22);
         PRC.ValidFrom__c           = Date.today().addDays(-22);
         PRC.Stelsedag__c           = Date.today();
         insert PRC;
 
+        Product_Register__c PRC1 = new Product_Register__c();
+        PRC1.Name                   = '鍥芥娉ㄨ繘20183222249';
+        PRC1.MedPrdClass__c         = '';
+        PRC1.RegisterNoClass_New__c = '';
+        PRC1.RegisterNoClass_Old__c = '6822';
+        PRC1.PrdCompanyAddr__c = '鍚嶇О:濂ユ灄宸存柉鍖荤枟鏍紡浼氱ぞ;浣忔墍:鏃ユ湰鍥戒笢浜兘娑╄胺鍖哄埂涔嬭胺浜屼竵鐩�43鐣湴2鍙�;鑱旂郴鏂瑰紡:0081-426-42-2667';
+        PRC1.ClinicalProductCode__c = 'YYYY';
+        PRC1.ValidTo__c             = Date.today().addDays(22);
+        PRC1.ValidFrom__c           = Date.today().addDays(-22);
+        insert PRC1;
+
+        Product_Register__c PRC2 = new Product_Register__c();
+        PRC2.Name                   = '鍥芥娉ㄨ繘20183222249';
+        PRC2.MedPrdClass__c         = '';
+        PRC2.RegisterNoClass_New__c = '';
+        PRC2.RegisterNoClass_Old__c = '6822';
+        PRC2.PrdCompanyAddr__c = '鍚嶇О:濂ユ灄宸存柉鍖荤枟鏍紡浼氱ぞ;浣忔墍:鏃ユ湰鍥戒笢浜兘娑╄胺鍖哄埂涔嬭胺浜屼竵鐩�43鐣湴2鍙�;鑱旂郴鏂瑰紡:0081-426-42-2667';
+        PRC2.ClinicalProductCode__c = 'YYYY';
+        PRC2.ValidTo__c             = Date.today().addDays(22);
+        PRC2.ValidFrom__c           = Date.today().addDays(-22);
+        PRC2.Stelsedag__c           = Date.today();
+        insert PRC2;
+
         Product_Register_Link__c prl = new Product_Register_Link__c();
         prl.Product2__c              = prd.ID;
         prl.Product_Register__c      = PRC.ID;
         insert prl;
 
-        PRC.ValidTo__c   = Date.today().addDays(21);
-        PRC.ValidFrom__c = Date.today().addDays(-21);
-        update PRC;
+        Product_Register_Link__c prl1 = new Product_Register_Link__c();
+        prl1.Product2__c              = prd.ID;
+        prl1.Product_Register__c      = PRC1.ID;
+        insert prl1;
 
-        prd.Name                   = 'hehe2';
-        update prd;
+        Product_Register_Link__c prl2 = new Product_Register_Link__c();
+        prl2.Product2__c              = prd.ID;
+        prl2.Product_Register__c      = PRC2.ID;
+        insert prl2;
+
+        PRC1.name = 'v鍥芥娉ㄨ繘20183222249';
+        update PRC1;
     }
 
     @isTest static void test_checkProduct2Level3() {
@@ -203,7 +258,7 @@
         prd.IsActive               = true;
         prd.Level_Category__c      = '';
         prd.demoteer_Sap__c        = Date.today().addDays(-3);
-        prd.Diedatvanink__c        = Date.today().addDays(4);
+        prd.Diedatvanink__c        = Date.today().addDays(5);
         insert prd;
 
         Product_Register__c PRC = new Product_Register__c();
@@ -211,24 +266,37 @@
         PRC.MedPrdClass__c         = '1';
         PRC.RegisterNoClass_New__c = '';
         PRC.RegisterNoClass_Old__c = '6822';
-        PRC.PrdCompanyAddr__c      = '鍚嶇О:濂ユ灄宸存柉鍖荤枟鏍紡浼氱ぞ;浣忔墍:鏃ユ湰鍥戒笢浜兘娑╄胺鍖哄埂涔嬭胺浜屼竵鐩�43鐣湴2鍙�;鑱旂郴鏂瑰紡:0081-426-42-2667';
+        PRC.PrdCompanyAddr__c = '鍚嶇О:濂ユ灄宸存柉鍖荤枟鏍紡浼氱ぞ;浣忔墍:鏃ユ湰鍥戒笢浜兘娑╄胺鍖哄埂涔嬭胺浜屼竵鐩�43鐣湴2鍙�;鑱旂郴鏂瑰紡:0081-426-42-2667';
         PRC.ClinicalProductCode__c = 'YYYY';
         PRC.ValidTo__c             = Date.today().addDays(22);
         PRC.ValidFrom__c           = Date.today().addDays(-22);
-        PRC.Stelsedag__c           = Date.today();
+        PRC.Stelsedag__c           = Date.today().addDays(1);
         insert PRC;
 
+        Product_Register__c PRC1 = new Product_Register__c();
+        PRC1.Name                   = '鍥芥娉ㄨ繘20183222249';
+        PRC1.MedPrdClass__c         = '2';
+        PRC1.RegisterNoClass_New__c = '';
+        PRC1.RegisterNoClass_Old__c = '6822';
+        PRC1.PrdCompanyAddr__c = '鍚嶇О:濂ユ灄宸存柉鍖荤枟鏍紡浼氱ぞ;浣忔墍:鏃ユ湰鍥戒笢浜兘娑╄胺鍖哄埂涔嬭胺浜屼竵鐩�43鐣湴2鍙�;鑱旂郴鏂瑰紡:0081-426-42-2667';
+        PRC1.ClinicalProductCode__c = 'YYYY';
+        PRC1.ValidTo__c             = Date.today().addDays(22);
+        PRC1.ValidFrom__c           = Date.today().addDays(-22);
+        PRC1.Stelsedag__c           = Date.today();
+        insert PRC1;
+        
         Product_Register_Link__c prl = new Product_Register_Link__c();
         prl.Product2__c              = prd.ID;
         prl.Product_Register__c      = PRC.ID;
         insert prl;
 
-        PRC.ValidTo__c   = Date.today().addDays(21);
-        PRC.ValidFrom__c = Date.today().addDays(-21);
-        update PRC;
+        Product_Register_Link__c prl1 = new Product_Register_Link__c();
+        prl1.Product2__c              = prd.ID;
+        prl1.Product_Register__c      = PRC1.ID;
+        insert prl1;
 
-        prd.Name                   = 'hehe2';
-        update prd;
+        PRC1.name = 'v鍥芥娉ㄨ繘20183222249';
+        update PRC1;
     }
 
     @isTest static void test_checkProduct2Level4() {
@@ -239,7 +307,7 @@
         prd.IsActive               = true;
         prd.Level_Category__c      = '';
         prd.demoteer_Sap__c        = Date.today().addDays(-3);
-        prd.Diedatvanink__c        = Date.today().addDays(4);
+        prd.Diedatvanink__c        = Date.today().addDays(5);
         insert prd;
 
         Product_Register__c PRC = new Product_Register__c();
@@ -247,24 +315,37 @@
         PRC.MedPrdClass__c         = '2';
         PRC.RegisterNoClass_New__c = '';
         PRC.RegisterNoClass_Old__c = '6822';
-        PRC.PrdCompanyAddr__c      = '鍚嶇О:濂ユ灄宸存柉鍖荤枟鏍紡浼氱ぞ;浣忔墍:鏃ユ湰鍥戒笢浜兘娑╄胺鍖哄埂涔嬭胺浜屼竵鐩�43鐣湴2鍙�;鑱旂郴鏂瑰紡:0081-426-42-2667';
+        PRC.PrdCompanyAddr__c = '鍚嶇О:濂ユ灄宸存柉鍖荤枟鏍紡浼氱ぞ;浣忔墍:鏃ユ湰鍥戒笢浜兘娑╄胺鍖哄埂涔嬭胺浜屼竵鐩�43鐣湴2鍙�;鑱旂郴鏂瑰紡:0081-426-42-2667';
         PRC.ClinicalProductCode__c = 'YYYY';
         PRC.ValidTo__c             = Date.today().addDays(22);
         PRC.ValidFrom__c           = Date.today().addDays(-22);
-        PRC.Stelsedag__c           = Date.today();
+        PRC.Stelsedag__c           = Date.today().addDays(1);
         insert PRC;
+
+        Product_Register__c PRC1 = new Product_Register__c();
+        PRC1.Name                   = '鍥芥娉ㄨ繘20183222249';
+        PRC1.MedPrdClass__c         = '1';
+        PRC1.RegisterNoClass_New__c = '';
+        PRC1.RegisterNoClass_Old__c = '6822';
+        PRC1.PrdCompanyAddr__c = '鍚嶇О:濂ユ灄宸存柉鍖荤枟鏍紡浼氱ぞ;浣忔墍:鏃ユ湰鍥戒笢浜兘娑╄胺鍖哄埂涔嬭胺浜屼竵鐩�43鐣湴2鍙�;鑱旂郴鏂瑰紡:0081-426-42-2667';
+        PRC1.ClinicalProductCode__c = 'YYYY';
+        PRC1.ValidTo__c             = Date.today().addDays(22);
+        PRC1.ValidFrom__c           = Date.today().addDays(-22);
+        PRC1.Stelsedag__c           = Date.today();
+        insert PRC1;
 
         Product_Register_Link__c prl = new Product_Register_Link__c();
         prl.Product2__c              = prd.ID;
         prl.Product_Register__c      = PRC.ID;
         insert prl;
 
-        PRC.ValidTo__c   = Date.today().addDays(21);
-        PRC.ValidFrom__c = Date.today().addDays(-21);
-        update PRC;
+        Product_Register_Link__c prl1 = new Product_Register_Link__c();
+        prl1.Product2__c              = prd.ID;
+        prl1.Product_Register__c      = PRC1.ID;
+        insert prl1;
 
-        prd.Name                   = 'hehe2';
-        update prd;
+        PRC1.name = 'v鍥芥娉ㄨ繘20183222249';
+        update PRC1;
     }
 
     @isTest static void test_checkProduct2Level5() {
@@ -275,7 +356,7 @@
         prd.IsActive               = true;
         prd.Level_Category__c      = '';
         prd.demoteer_Sap__c        = Date.today().addDays(-3);
-        prd.Diedatvanink__c        = Date.today().addDays(4);
+        prd.Diedatvanink__c        = Date.today().addDays(5);
         insert prd;
 
         Product_Register__c PRC = new Product_Register__c();
@@ -283,23 +364,52 @@
         PRC.MedPrdClass__c         = '';
         PRC.RegisterNoClass_New__c = '';
         PRC.RegisterNoClass_Old__c = '6822';
-        PRC.PrdCompanyAddr__c      = '鍚嶇О:濂ユ灄宸存柉鍖荤枟鏍紡浼氱ぞ;浣忔墍:鏃ユ湰鍥戒笢浜兘娑╄胺鍖哄埂涔嬭胺浜屼竵鐩�43鐣湴2鍙�;鑱旂郴鏂瑰紡:0081-426-42-2667';
+        PRC.PrdCompanyAddr__c = '鍚嶇О:濂ユ灄宸存柉鍖荤枟鏍紡浼氱ぞ;浣忔墍:鏃ユ湰鍥戒笢浜兘娑╄胺鍖哄埂涔嬭胺浜屼竵鐩�43鐣湴2鍙�;鑱旂郴鏂瑰紡:0081-426-42-2667';
         PRC.ClinicalProductCode__c = 'YYYY';
         PRC.ValidTo__c             = Date.today().addDays(22);
         PRC.ValidFrom__c           = Date.today().addDays(-22);
-        PRC.Stelsedag__c           = Date.today();
+        PRC.Stelsedag__c           = Date.today().addDays(1);
         insert PRC;
+
+        Product_Register__c PRC1 = new Product_Register__c();
+        PRC1.Name                   = '鍥芥娉ㄨ繘20183222249';
+        PRC1.MedPrdClass__c         = '';
+        PRC1.RegisterNoClass_New__c = '';
+        PRC1.RegisterNoClass_Old__c = '6822';
+        PRC1.PrdCompanyAddr__c = '鍚嶇О:濂ユ灄宸存柉鍖荤枟鏍紡浼氱ぞ;浣忔墍:鏃ユ湰鍥戒笢浜兘娑╄胺鍖哄埂涔嬭胺浜屼竵鐩�43鐣湴2鍙�;鑱旂郴鏂瑰紡:0081-426-42-2667';
+        PRC1.ClinicalProductCode__c = 'YYYY';
+        PRC1.ValidTo__c             = Date.today().addDays(22);
+        PRC1.ValidFrom__c           = Date.today().addDays(-22);
+        insert PRC1;
+
+        Product_Register__c PRC2 = new Product_Register__c();
+        PRC2.Name                   = '鍥芥娉ㄨ繘20183222249';
+        PRC2.MedPrdClass__c         = '';
+        PRC2.RegisterNoClass_New__c = '';
+        PRC2.RegisterNoClass_Old__c = '6822';
+        PRC2.PrdCompanyAddr__c = '鍚嶇О:濂ユ灄宸存柉鍖荤枟鏍紡浼氱ぞ;浣忔墍:鏃ユ湰鍥戒笢浜兘娑╄胺鍖哄埂涔嬭胺浜屼竵鐩�43鐣湴2鍙�;鑱旂郴鏂瑰紡:0081-426-42-2667';
+        PRC2.ClinicalProductCode__c = 'YYYY';
+        PRC2.ValidTo__c             = Date.today().addDays(22);
+        PRC2.ValidFrom__c           = Date.today().addDays(-22);
+        PRC2.Stelsedag__c           = Date.today();
+        insert PRC2;
 
         Product_Register_Link__c prl = new Product_Register_Link__c();
         prl.Product2__c              = prd.ID;
         prl.Product_Register__c      = PRC.ID;
         insert prl;
 
-        PRC.ValidTo__c   = Date.today().addDays(21);
-        PRC.ValidFrom__c = Date.today().addDays(-21);
-        update PRC;
+        Product_Register_Link__c prl1 = new Product_Register_Link__c();
+        prl1.Product2__c              = prd.ID;
+        prl1.Product_Register__c      = PRC1.ID;
+        insert prl1;
 
-        prd.Name                   = 'hehe2';
-        update prd;
+        Product_Register_Link__c prl2 = new Product_Register_Link__c();
+        prl2.Product2__c              = prd.ID;
+        prl2.Product_Register__c      = PRC2.ID;
+        insert prl2;
+
+        PRC1.name = 'v鍥芥娉ㄨ繘20183222249';
+        update PRC1;
     }
 }
\ No newline at end of file
diff --git a/force-app/main/default/classes/Product2TriggerHandler.cls b/force-app/main/default/classes/Product2TriggerHandler.cls
index b5978ee..09d6df6 100644
--- a/force-app/main/default/classes/Product2TriggerHandler.cls
+++ b/force-app/main/default/classes/Product2TriggerHandler.cls
@@ -46,26 +46,22 @@
        }
     }
 
-    //PJ1鏂版樉寰暅闄嶇被
     public static void checkProduct2Level(List<Product2> newList, Map<Id, Product2> newMap, List<Product2> oldList, Map<Id, Product2> oldMap) {
-        //鑾峰彇浜у搧
         List<String> p2ids = new List<String>();
-        for(Product2 p2 : newList){
-            p2ids.add(p2.Id);
+        for(Product2 p2 : newList)
+        {
+            p2ids.add(p2.id);
         }
 
-        //鏌ユ敞鍐岃瘉鐨勫尰鐤楀櫒姊板垎绫�,浜у搧鍏ュ簱鏃ユ湡,鐢熶骇鏃ユ湡,绯荤粺缁存姢鏃ャ��
+        //瀛樻斁鏌ユ壘鐨剆oql鏂�
         List<Product_Register_Link__c> pro2List = new List<Product_Register_Link__c>();
-        if(p2ids.size()>0){
-            pro2List = [select Id,Product2__r.demoteer_Sap__c,Product2__r.Diedatvanink__c,Product_Register__r.Stelsedag__c,Product_Register__r.MedPrdClass__c 
-            from Product_Register_Link__c 
-            where Product2__r.Id in : p2ids];
-        }
-        
-
-        //鏍规嵁Id瀛樻斁浜у搧鎵�灞炵殑鎵�鏈夋敞鍐岃瘉涓嬬殑鍣ㄦ鍒嗙被銆�
+        pro2List = [select Product2__r.id,Product2__r.demoteer_Sap__c,Product2__r.Diedatvanink__c,Product_Register__r.Stelsedag__c,Product_Register__r.MedPrdClass__c,Product_Register__r.ValidTo__c,Product_Register__r.ValidFrom__c 
+        from Product_Register_Link__c 
+        where Product2__r.Id in : p2ids];
+        System.debug('pro2List='+pro2List);
+        //瀛樻斁浜у搧鐨刬d鍜岀瓑绾х被鍒瓧娈电殑鍊肩殑闆嗗悎
         Map<Id,List<String>> pro2Map = new Map<Id,List<String>>();
-        //瀛樻斁娉ㄥ唽璇佷笂鏈�鍓嶇殑缁存姢鏃�
+        //瀛樻斁娉ㄥ唽璇佷笂鏈�鍓嶇殑缁存姢鏃�,涓�绫昏瘉浼樺厛,鍚﹀垯浜岀被璇併��
         Map<Id,Date> prSteMap = new Map<Id,Date>();
         if (pro2List.size()>0) {
             for (Product_Register_Link__c prl: pro2List) {
@@ -75,67 +71,145 @@
                     pro2Map.put(prl.Product2__r.Id, new List<String>());
                     pro2Map.get(prl.Product2__r.Id).add(prl.Product_Register__r.MedPrdClass__c);
                 }
-                if (prSteMap.containsKey(prl.Product2__r.Id)) {
-                    if (prSteMap.get(prl.Product2__r.Id) > prl.Product_Register__r.Stelsedag__c) {
-                        prSteMap.remove(prl.Product2__r.Id);
+
+                if (prl.Product_Register__r.MedPrdClass__c == '1') {
+                    if (prSteMap.containsKey(prl.Product2__r.Id)) {
+                        if (prSteMap.get(prl.Product2__r.Id) > prl.Product_Register__r.Stelsedag__c) {
+                            prSteMap.put(prl.Product2__r.Id,prl.Product_Register__r.Stelsedag__c);
+                        }
+                    }else {
                         prSteMap.put(prl.Product2__r.Id,prl.Product_Register__r.Stelsedag__c);
                     }
-                }else {
-                    prSteMap.put(prl.Product2__r.Id,prl.Product_Register__r.Stelsedag__c);
                 }
             }
+
+            for (Product_Register_Link__c prl: pro2List) {
+                if (prSteMap.get(prl.Product2__r.Id) == null) {
+                    if (prSteMap.containsKey(prl.Product2__r.Id) && (prl.Product_Register__r.MedPrdClass__c == '2' || prl.Product_Register__r.MedPrdClass__c == '3')) {
+                        if (prSteMap.containsKey(prl.Product2__r.Id) && prl.Product_Register__r.Stelsedag__c != null) {
+                            if (prSteMap.get(prl.Product2__r.Id) > prl.Product_Register__r.Stelsedag__c) {
+                                prSteMap.put(prl.Product2__r.Id,prl.Product_Register__r.Stelsedag__c);
+                            }
+                        }else {
+                            prSteMap.put(prl.Product2__r.Id,prl.Product_Register__r.Stelsedag__c);
+                        }
+                    }
+                } 
+            }
         }
+        
+        //瀛樻斁浜у搧id鍜屽瓧绗︿覆鍊�
+        Map<Id,String> prlMap = new Map<Id,String>();
+        Map<Id,String> prl1Map = new Map<Id,String>();
+        Map<Id,String> prl2Map = new Map<Id,String>();
         System.debug('pro2Map='+pro2Map);
         System.debug('prSteMap='+prSteMap);
 
-        //浜у搧Id涓庣瓑绾х被鍒�
-        Map<Id,String> prlMap = new Map<Id,String>();
-
-        if (pro2Map.size()>0 && prSteMap.size()>0) {
+        //閫氳繃涓婇潰鐨勫惊鐜紝鎶婂叧绯昏〃杩囪幏鍙栫殑鏁版嵁璇诲嚭鏉ワ紝浼犵粰map
+        if (pro2Map.size()>0) {
             for (Product_Register_Link__c pr: pro2List) {
-                //澶у湪鍚庡皬鍦ㄥ墠
                 if (pro2Map.containsKey(pr.Product2__r.Id) && prSteMap.containsKey(pr.Product2__r.Id)) {
-                    //鐢熶骇鏃ュ皬浜庣淮鎶ゆ棩,鍏ュ簱鏃ュ皬浜庣淮鎶ゆ棩
-                    if (pr.Product2__r.demoteer_Sap__c <= prSteMap.get(pr.Product2__r.Id) && 
-                        pr.Product2__r.Diedatvanink__c <= prSteMap.get(pr.Product2__r.Id)) {
-                        if (pro2Map.get(pr.Product2__r.Id).contains('1') || 
-                            pro2Map.get(pr.Product2__r.Id).contains('2') || 
-                            pro2Map.get(pr.Product2__r.Id).contains('3')) {
-                            prlMap.put(pr.Product2__r.Id, '浜岀被');
-                        }else {
-                            prlMap.put(pr.Product2__r.Id, '闈炵洃绠�');
-                        }
-                    }else {
-                        //鍏ュ簱鏃ュぇ浜庣淮鎶ゆ棩
-                        if (pr.Product2__r.Diedatvanink__c > prSteMap.get(pr.Product2__r.Id)) {
-                            //鐢熶骇鏃ュぇ浜庣淮鎶ゆ棩
-                            if (pr.Product2__r.demoteer_Sap__c > prSteMap.get(pr.Product2__r.Id)) {
-                                prlMap.put(pr.Product2__r.Id, '涓�绫�');
-                            }else if (pr.Product2__r.demoteer_Sap__c < prSteMap.get(pr.Product2__r.Id)) {
-                                //鐢熶骇鏃ュ皬浜庣淮鎶ゆ棩
-                                if (pro2Map.get(pr.Product2__r.Id).contains('1')) {
-                                    prlMap.put(pr.Product2__r.Id, '涓�绫�');
-                                }else if (!pro2Map.get(pr.Product2__r.Id).contains('1') && 
-                                          (pro2Map.get(pr.Product2__r.Id).contains('2') || 
-                                           pro2Map.get(pr.Product2__r.Id).contains('3'))) {
-                                    prlMap.put(pr.Product2__r.Id, '浜岀被');
+                    if (newMap.get(pr.Product2__r.Id).demoteer_Sap__c <> null && pr.Product2__r.Diedatvanink__c <> null) {
+                        if (pr.Product_Register__r.Stelsedag__c <> null) {
+                            if (pr.Product2__r.Diedatvanink__c <= pr.Product_Register__r.Stelsedag__c) {
+                               if (newMap.get(pr.Product2__r.Id).demoteer_Sap__c <= pr.Product_Register__r.ValidTo__c && newMap.get(pr.Product2__r.Id).demoteer_Sap__c >= pr.Product_Register__r.ValidFrom__c
+                                    && pr.Product_Register__r.MedPrdClass__c == '2' || pr.Product_Register__r.MedPrdClass__c == '3') {
+                                    System.debug('2');
+                                    if (prlMap.get(pr.Product2__r.Id) == null) {
+                                        prlMap.put(pr.Product2__r.Id, '浜岀被');
+                                    }else {
+                                        String Lins = prlMap.get(pr.Product2__r.Id);
+                                        Lins += '浜岀被';
+                                        prlMap.put(pr.Product2__r.Id, Lins);
+                                    }
+                                }else if (newMap.get(pr.Product2__r.Id).demoteer_Sap__c <= pr.Product_Register__r.ValidTo__c && newMap.get(pr.Product2__r.Id).demoteer_Sap__c >= pr.Product_Register__r.ValidFrom__c
+                                    && (pr.Product_Register__r.MedPrdClass__c == '1')) {
+                                    System.debug('1');
+                                        if (prlMap.get(pr.Product2__r.Id) == null) {
+                                            prlMap.put(pr.Product2__r.Id, '涓�绫�');
+                                        }else {
+                                            String Lins = prlMap.get(pr.Product2__r.Id);
+                                            Lins += '涓�绫�';
+                                            prlMap.put(pr.Product2__r.Id, Lins);
+                                        }
                                 }else {
-                                    prlMap.put(pr.Product2__r.Id, '闈炵洃绠�');
+                                    System.debug('闈�');
+                                    if (prlMap.get(pr.Product2__r.Id) == null) {
+                                        prlMap.put(pr.Product2__r.Id, '闈炵洃绠�');
+                                    }else {
+                                        String Lins = prlMap.get(pr.Product2__r.Id);
+                                        Lins += '闈炵洃绠�';
+                                        prlMap.put(pr.Product2__r.Id, Lins);
+                                    }
+                                }
+                            }else if (pr.Product2__r.Diedatvanink__c > pr.Product_Register__r.Stelsedag__c) {
+                                if (newMap.get(pr.Product2__r.Id).demoteer_Sap__c <= pr.Product_Register__r.ValidTo__c && newMap.get(pr.Product2__r.Id).demoteer_Sap__c >= pr.Product_Register__r.ValidFrom__c
+                                    && pr.Product_Register__r.MedPrdClass__c == '1') {
+                                    if (prl1Map.get(pr.Product2__r.Id) == null) {
+                                        prl1Map.put(pr.Product2__r.Id, '涓�绫�');
+                                    }else {
+                                        String Lins = prl1Map.get(pr.Product2__r.Id);
+                                        Lins += '涓�绫�';
+                                        prl1Map.put(pr.Product2__r.Id, Lins);
+                                    }
+                                }else if (newMap.get(pr.Product2__r.Id).demoteer_Sap__c <= pr.Product_Register__r.ValidTo__c && newMap.get(pr.Product2__r.Id).demoteer_Sap__c >= pr.Product_Register__r.ValidFrom__c
+                                    && pr.Product_Register__r.MedPrdClass__c == '2' || pr.Product_Register__r.MedPrdClass__c == '3') {
+                                    if (prl1Map.get(pr.Product2__r.Id) == null) {
+                                        prl1Map.put(pr.Product2__r.Id, '浜岀被');
+                                    }else {
+                                        String Lins = prl1Map.get(pr.Product2__r.Id);
+                                        Lins += '浜岀被';
+                                        prl1Map.put(pr.Product2__r.Id, Lins);
+                                    }
+                                }else {
+                                    if (prlMap.get(pr.Product2__r.Id) == null) {
+                                        prlMap.put(pr.Product2__r.Id, '闈炵洃绠�');
+                                    }else {
+                                        String Lins = prlMap.get(pr.Product2__r.Id);
+                                        Lins += '闈炵洃绠�';
+                                        prlMap.put(pr.Product2__r.Id, Lins);
+                                    }
                                 }
                             }
+                        }else {
+                            prl2Map.put(pr.Product2__r.Id, '绌�');
                         }
                     }
                 }
             }
         }
-        System.debug('prlMap='+prlMap);
+                System.debug('prlMap='+prlMap);
+                System.debug('prl1Map='+prl1Map);
 
+        //缁欎骇鍝佷笂鐨勭瓑绾х被鍒瓧娈佃祴鍊�
         for (Product2 pr2: newList) {
             if (prlMap.containsKey(pr2.Id)) {
-                pr2.Level_Category__c = prlMap.get(pr2.Id);
-            }else {
+                if ((prlMap.get(pr2.Id).contains('浜岀被') && prlMap.get(pr2.Id).contains('涓�绫�')) || 
+                    (!prlMap.get(pr2.Id).contains('涓�绫�') && prlMap.get(pr2.Id).contains('浜岀被'))){
+                    pr2.Level_Category__c = '浜岀被';
+                }else if (prlMap.get(pr2.Id).contains('涓�绫�') && !prlMap.get(pr2.Id).contains('浜岀被')) {
+                    pr2.Level_Category__c = '涓�绫�';
+                }else if (prlMap.get(pr2.Id).contains('闈炵洃绠�') && !prl2Map.containsKey(pr2.Id)) {
+                    pr2.Level_Category__c = '闈炵洃绠�';
+                }else {
+                    pr2.Level_Category__c = null;
+                }
+            }
+            if (prl1Map.containsKey(pr2.Id)) {
+                if (prl1Map.get(pr2.Id).contains('涓�绫�')) {
+                    pr2.Level_Category__c = '涓�绫�';
+                }else if (prl1Map.get(pr2.Id).contains('浜岀被') && !prl1Map.get(pr2.Id).contains('涓�绫�')) {
+                    pr2.Level_Category__c = '浜岀被';
+                }else if (prl1Map.get(pr2.Id).contains('闈炵洃绠�') && !prl2Map.containsKey(pr2.Id)) {
+                    pr2.Level_Category__c = '闈炵洃绠�';
+                }else {
+                    pr2.Level_Category__c = null;
+                }
+            }
+            if (pr2.demoteer_Sap__c == null || pr2.Diedatvanink__c == null) {
                 pr2.Level_Category__c = null;
             }
-        }
+            System.debug('pr2.Level_Category__c='+pr2.Level_Category__c);
+        }    
     }
 }
\ No newline at end of file
diff --git a/force-app/main/default/classes/Product2TriggerHandlerTest.cls b/force-app/main/default/classes/Product2TriggerHandlerTest.cls
index ee39650..6beb505 100644
--- a/force-app/main/default/classes/Product2TriggerHandlerTest.cls
+++ b/force-app/main/default/classes/Product2TriggerHandlerTest.cls
@@ -42,12 +42,29 @@
         PRC.ValidTo__c             = Date.today().addDays(22);
         PRC.ValidFrom__c           = Date.today().addDays(-22);
         PRC.Stelsedag__c           = Date.today();
-        insert PRC;                
+        insert PRC;
+
+        Product_Register__c PRC1 = new Product_Register__c();
+        PRC1.Name                   = '鍥芥娉ㄨ繘20183222249';
+        PRC1.MedPrdClass__c         = '2';
+        PRC1.RegisterNoClass_New__c = '';
+        PRC1.RegisterNoClass_Old__c = '6822';
+        PRC1.PrdCompanyAddr__c      = '鍚嶇О:濂ユ灄宸存柉鍖荤枟鏍紡浼氱ぞ;浣忔墍:鏃ユ湰鍥戒笢浜兘娑╄胺鍖哄埂涔嬭胺浜屼竵鐩�43鐣湴2鍙�;鑱旂郴鏂瑰紡:0081-426-42-2667';
+        PRC1.ClinicalProductCode__c = 'YYYY';
+        PRC1.ValidTo__c             = Date.today().addDays(22);
+        PRC1.ValidFrom__c           = Date.today().addDays(-22);
+        PRC1.Stelsedag__c           = Date.today().addDays(1);
+        insert PRC1;                 
 
         Product_Register_Link__c prl = new Product_Register_Link__c();
         prl.Product2__c = prd.ID;
         prl.Product_Register__c = PRC.ID;
         insert prl;
+
+        Product_Register_Link__c prl1 = new Product_Register_Link__c();
+        prl1.Product2__c = prd.ID;
+        prl1.Product_Register__c = PRC1.ID;
+        insert prl1;
     }
 
     @isTest static void test_checkProduct2Level1() {
@@ -70,13 +87,30 @@
         PRC.ClinicalProductCode__c = 'YYYY';
         PRC.ValidTo__c             = Date.today().addDays(22);
         PRC.ValidFrom__c           = Date.today().addDays(-22);
-        PRC.Stelsedag__c           = Date.today();
+        PRC.Stelsedag__c           = Date.today().addDays(1);
         insert PRC;
+
+        Product_Register__c PRC1 = new Product_Register__c();
+        PRC1.Name                   = '鍥芥娉ㄨ繘20183222249';
+        PRC1.MedPrdClass__c         = '1';
+        PRC1.RegisterNoClass_New__c = '';
+        PRC1.RegisterNoClass_Old__c = '6822';
+        PRC1.PrdCompanyAddr__c = '鍚嶇О:濂ユ灄宸存柉鍖荤枟鏍紡浼氱ぞ;浣忔墍:鏃ユ湰鍥戒笢浜兘娑╄胺鍖哄埂涔嬭胺浜屼竵鐩�43鐣湴2鍙�;鑱旂郴鏂瑰紡:0081-426-42-2667';
+        PRC1.ClinicalProductCode__c = 'YYYY';
+        PRC1.ValidTo__c             = Date.today().addDays(22);
+        PRC1.ValidFrom__c           = Date.today().addDays(-22);
+        PRC1.Stelsedag__c           = Date.today();
+        insert PRC1;
 
         Product_Register_Link__c prl = new Product_Register_Link__c();
         prl.Product2__c              = prd.ID;
         prl.Product_Register__c      = PRC.ID;
         insert prl;
+
+        Product_Register_Link__c prl1 = new Product_Register_Link__c();
+        prl1.Product2__c              = prd.ID;
+        prl1.Product_Register__c      = PRC1.ID;
+        insert prl1;
     }
 
     @isTest static void test_checkProduct2Level2() {
@@ -95,17 +129,51 @@
         PRC.MedPrdClass__c         = '';
         PRC.RegisterNoClass_New__c = '';
         PRC.RegisterNoClass_Old__c = '6822';
-        PRC.PrdCompanyAddr__c      = '鍚嶇О:濂ユ灄宸存柉鍖荤枟鏍紡浼氱ぞ;浣忔墍:鏃ユ湰鍥戒笢浜兘娑╄胺鍖哄埂涔嬭胺浜屼竵鐩�43鐣湴2鍙�;鑱旂郴鏂瑰紡:0081-426-42-2667';
+        PRC.PrdCompanyAddr__c = '鍚嶇О:濂ユ灄宸存柉鍖荤枟鏍紡浼氱ぞ;浣忔墍:鏃ユ湰鍥戒笢浜兘娑╄胺鍖哄埂涔嬭胺浜屼竵鐩�43鐣湴2鍙�;鑱旂郴鏂瑰紡:0081-426-42-2667';
         PRC.ClinicalProductCode__c = 'YYYY';
         PRC.ValidTo__c             = Date.today().addDays(22);
         PRC.ValidFrom__c           = Date.today().addDays(-22);
         PRC.Stelsedag__c           = Date.today();
         insert PRC;
 
+        Product_Register__c PRC1 = new Product_Register__c();
+        PRC1.Name                   = '鍥芥娉ㄨ繘20183222249';
+        PRC1.MedPrdClass__c         = '';
+        PRC1.RegisterNoClass_New__c = '';
+        PRC1.RegisterNoClass_Old__c = '6822';
+        PRC1.PrdCompanyAddr__c = '鍚嶇О:濂ユ灄宸存柉鍖荤枟鏍紡浼氱ぞ;浣忔墍:鏃ユ湰鍥戒笢浜兘娑╄胺鍖哄埂涔嬭胺浜屼竵鐩�43鐣湴2鍙�;鑱旂郴鏂瑰紡:0081-426-42-2667';
+        PRC1.ClinicalProductCode__c = 'YYYY';
+        PRC1.ValidTo__c             = Date.today().addDays(22);
+        PRC1.ValidFrom__c           = Date.today().addDays(-22);
+        insert PRC1;
+
+        Product_Register__c PRC2 = new Product_Register__c();
+        PRC2.Name                   = '鍥芥娉ㄨ繘20183222249';
+        PRC2.MedPrdClass__c         = '';
+        PRC2.RegisterNoClass_New__c = '';
+        PRC2.RegisterNoClass_Old__c = '6822';
+        PRC2.PrdCompanyAddr__c = '鍚嶇О:濂ユ灄宸存柉鍖荤枟鏍紡浼氱ぞ;浣忔墍:鏃ユ湰鍥戒笢浜兘娑╄胺鍖哄埂涔嬭胺浜屼竵鐩�43鐣湴2鍙�;鑱旂郴鏂瑰紡:0081-426-42-2667';
+        PRC2.ClinicalProductCode__c = 'YYYY';
+        PRC2.ValidTo__c             = Date.today().addDays(22);
+        PRC2.ValidFrom__c           = Date.today().addDays(-22);
+        PRC2.Stelsedag__c           = Date.today();
+        insert PRC2;
+
+
         Product_Register_Link__c prl = new Product_Register_Link__c();
         prl.Product2__c              = prd.ID;
         prl.Product_Register__c      = PRC.ID;
         insert prl;
+
+        Product_Register_Link__c prl1 = new Product_Register_Link__c();
+        prl1.Product2__c              = prd.ID;
+        prl1.Product_Register__c      = PRC1.ID;
+        insert prl1;
+
+        Product_Register_Link__c prl2 = new Product_Register_Link__c();
+        prl2.Product2__c              = prd.ID;
+        prl2.Product_Register__c      = PRC2.ID;
+        insert prl2;
     }
 
     @isTest static void test_checkProduct2Level3() {
@@ -115,26 +183,45 @@
         prd.Name                   = 'testSBG004';
         prd.IsActive               = true;
         prd.Level_Category__c      = '';
-        prd.demoteer_Sap__c        = Date.today().addDays(3);
-        prd.Diedatvanink__c        = Date.today().addDays(4);
+        prd.demoteer_Sap__c        = Date.today().addDays(-3);
+        prd.Diedatvanink__c        = Date.today().addDays(5);
         insert prd;
 
         Product_Register__c PRC = new Product_Register__c();
         PRC.Name                   = '鍥芥娉ㄨ繘20183222249';
-        PRC.MedPrdClass__c         = '2';
+        PRC.MedPrdClass__c         = '1';
         PRC.RegisterNoClass_New__c = '';
         PRC.RegisterNoClass_Old__c = '6822';
-        PRC.PrdCompanyAddr__c      = '鍚嶇О:濂ユ灄宸存柉鍖荤枟鏍紡浼氱ぞ;浣忔墍:鏃ユ湰鍥戒笢浜兘娑╄胺鍖哄埂涔嬭胺浜屼竵鐩�43鐣湴2鍙�;鑱旂郴鏂瑰紡:0081-426-42-2667';
+        PRC.PrdCompanyAddr__c = '鍚嶇О:濂ユ灄宸存柉鍖荤枟鏍紡浼氱ぞ;浣忔墍:鏃ユ湰鍥戒笢浜兘娑╄胺鍖哄埂涔嬭胺浜屼竵鐩�43鐣湴2鍙�;鑱旂郴鏂瑰紡:0081-426-42-2667';
         PRC.ClinicalProductCode__c = 'YYYY';
         PRC.ValidTo__c             = Date.today().addDays(22);
         PRC.ValidFrom__c           = Date.today().addDays(-22);
-        PRC.Stelsedag__c           = Date.today();
+        PRC.Stelsedag__c           = Date.today().addDays(1);
         insert PRC;
 
+        Product_Register__c PRC1 = new Product_Register__c();
+        PRC1.Name                   = '鍥芥娉ㄨ繘20183222249';
+        PRC1.MedPrdClass__c         = '2';
+        PRC1.RegisterNoClass_New__c = '';
+        PRC1.RegisterNoClass_Old__c = '6822';
+        PRC1.PrdCompanyAddr__c = '鍚嶇О:濂ユ灄宸存柉鍖荤枟鏍紡浼氱ぞ;浣忔墍:鏃ユ湰鍥戒笢浜兘娑╄胺鍖哄埂涔嬭胺浜屼竵鐩�43鐣湴2鍙�;鑱旂郴鏂瑰紡:0081-426-42-2667';
+        PRC1.ClinicalProductCode__c = 'YYYY';
+        PRC1.ValidTo__c             = Date.today().addDays(22);
+        PRC1.ValidFrom__c           = Date.today().addDays(-22);
+        PRC1.Stelsedag__c           = Date.today();
+        insert PRC1;
+
+        
         Product_Register_Link__c prl = new Product_Register_Link__c();
         prl.Product2__c              = prd.ID;
         prl.Product_Register__c      = PRC.ID;
         insert prl;
+
+        Product_Register_Link__c prl1 = new Product_Register_Link__c();
+        prl1.Product2__c              = prd.ID;
+        prl1.Product_Register__c      = PRC1.ID;
+        insert prl1;
+
     }
 
     @isTest static void test_checkProduct2Level4() {
@@ -145,25 +232,45 @@
         prd.IsActive               = true;
         prd.Level_Category__c      = '';
         prd.demoteer_Sap__c        = Date.today().addDays(-3);
-        prd.Diedatvanink__c        = Date.today().addDays(4);
+        prd.Diedatvanink__c        = Date.today().addDays(5);
         insert prd;
 
         Product_Register__c PRC = new Product_Register__c();
         PRC.Name                   = '鍥芥娉ㄨ繘20183222249';
-        PRC.MedPrdClass__c         = '1';
+        PRC.MedPrdClass__c         = '2';
         PRC.RegisterNoClass_New__c = '';
         PRC.RegisterNoClass_Old__c = '6822';
-        PRC.PrdCompanyAddr__c      = '鍚嶇О:濂ユ灄宸存柉鍖荤枟鏍紡浼氱ぞ;浣忔墍:鏃ユ湰鍥戒笢浜兘娑╄胺鍖哄埂涔嬭胺浜屼竵鐩�43鐣湴2鍙�;鑱旂郴鏂瑰紡:0081-426-42-2667';
+        PRC.PrdCompanyAddr__c = '鍚嶇О:濂ユ灄宸存柉鍖荤枟鏍紡浼氱ぞ;浣忔墍:鏃ユ湰鍥戒笢浜兘娑╄胺鍖哄埂涔嬭胺浜屼竵鐩�43鐣湴2鍙�;鑱旂郴鏂瑰紡:0081-426-42-2667';
         PRC.ClinicalProductCode__c = 'YYYY';
         PRC.ValidTo__c             = Date.today().addDays(22);
         PRC.ValidFrom__c           = Date.today().addDays(-22);
-        PRC.Stelsedag__c           = Date.today();
+        PRC.Stelsedag__c           = Date.today().addDays(1);
         insert PRC;
+
+        Product_Register__c PRC1 = new Product_Register__c();
+        PRC1.Name                   = '鍥芥娉ㄨ繘20183222249';
+        PRC1.MedPrdClass__c         = '1';
+        PRC1.RegisterNoClass_New__c = '';
+        PRC1.RegisterNoClass_Old__c = '6822';
+        PRC1.PrdCompanyAddr__c = '鍚嶇О:濂ユ灄宸存柉鍖荤枟鏍紡浼氱ぞ;浣忔墍:鏃ユ湰鍥戒笢浜兘娑╄胺鍖哄埂涔嬭胺浜屼竵鐩�43鐣湴2鍙�;鑱旂郴鏂瑰紡:0081-426-42-2667';
+        PRC1.ClinicalProductCode__c = 'YYYY';
+        PRC1.ValidTo__c             = Date.today().addDays(22);
+        PRC1.ValidFrom__c           = Date.today().addDays(-22);
+        PRC1.Stelsedag__c           = Date.today();
+        insert PRC1;
+
+        
 
         Product_Register_Link__c prl = new Product_Register_Link__c();
         prl.Product2__c              = prd.ID;
         prl.Product_Register__c      = PRC.ID;
         insert prl;
+
+        Product_Register_Link__c prl1 = new Product_Register_Link__c();
+        prl1.Product2__c              = prd.ID;
+        prl1.Product_Register__c      = PRC1.ID;
+        insert prl1;
+
     }
 
     @isTest static void test_checkProduct2Level5() {
@@ -174,25 +281,58 @@
         prd.IsActive               = true;
         prd.Level_Category__c      = '';
         prd.demoteer_Sap__c        = Date.today().addDays(-3);
-        prd.Diedatvanink__c        = Date.today().addDays(4);
+        prd.Diedatvanink__c        = Date.today().addDays(5);
         insert prd;
 
         Product_Register__c PRC = new Product_Register__c();
         PRC.Name                   = '鍥芥娉ㄨ繘20183222249';
-        PRC.MedPrdClass__c         = '2';
+        PRC.MedPrdClass__c         = '';
         PRC.RegisterNoClass_New__c = '';
         PRC.RegisterNoClass_Old__c = '6822';
-        PRC.PrdCompanyAddr__c      = '鍚嶇О:濂ユ灄宸存柉鍖荤枟鏍紡浼氱ぞ;浣忔墍:鏃ユ湰鍥戒笢浜兘娑╄胺鍖哄埂涔嬭胺浜屼竵鐩�43鐣湴2鍙�;鑱旂郴鏂瑰紡:0081-426-42-2667';
+        PRC.PrdCompanyAddr__c = '鍚嶇О:濂ユ灄宸存柉鍖荤枟鏍紡浼氱ぞ;浣忔墍:鏃ユ湰鍥戒笢浜兘娑╄胺鍖哄埂涔嬭胺浜屼竵鐩�43鐣湴2鍙�;鑱旂郴鏂瑰紡:0081-426-42-2667';
         PRC.ClinicalProductCode__c = 'YYYY';
         PRC.ValidTo__c             = Date.today().addDays(22);
         PRC.ValidFrom__c           = Date.today().addDays(-22);
-        PRC.Stelsedag__c           = Date.today();
+        PRC.Stelsedag__c           = Date.today().addDays(1);
         insert PRC;
+
+        Product_Register__c PRC1 = new Product_Register__c();
+        PRC1.Name                   = '鍥芥娉ㄨ繘20183222249';
+        PRC1.MedPrdClass__c         = '';
+        PRC1.RegisterNoClass_New__c = '';
+        PRC1.RegisterNoClass_Old__c = '6822';
+        PRC1.PrdCompanyAddr__c = '鍚嶇О:濂ユ灄宸存柉鍖荤枟鏍紡浼氱ぞ;浣忔墍:鏃ユ湰鍥戒笢浜兘娑╄胺鍖哄埂涔嬭胺浜屼竵鐩�43鐣湴2鍙�;鑱旂郴鏂瑰紡:0081-426-42-2667';
+        PRC1.ClinicalProductCode__c = 'YYYY';
+        PRC1.ValidTo__c             = Date.today().addDays(22);
+        PRC1.ValidFrom__c           = Date.today().addDays(-22);
+        insert PRC1;
+
+        Product_Register__c PRC2 = new Product_Register__c();
+        PRC2.Name                   = '鍥芥娉ㄨ繘20183222249';
+        PRC2.MedPrdClass__c         = '';
+        PRC2.RegisterNoClass_New__c = '';
+        PRC2.RegisterNoClass_Old__c = '6822';
+        PRC2.PrdCompanyAddr__c = '鍚嶇О:濂ユ灄宸存柉鍖荤枟鏍紡浼氱ぞ;浣忔墍:鏃ユ湰鍥戒笢浜兘娑╄胺鍖哄埂涔嬭胺浜屼竵鐩�43鐣湴2鍙�;鑱旂郴鏂瑰紡:0081-426-42-2667';
+        PRC2.ClinicalProductCode__c = 'YYYY';
+        PRC2.ValidTo__c             = Date.today().addDays(22);
+        PRC2.ValidFrom__c           = Date.today().addDays(-22);
+        PRC2.Stelsedag__c           = Date.today();
+        insert PRC2;
 
         Product_Register_Link__c prl = new Product_Register_Link__c();
         prl.Product2__c              = prd.ID;
         prl.Product_Register__c      = PRC.ID;
         insert prl;
+
+        Product_Register_Link__c prl1 = new Product_Register_Link__c();
+        prl1.Product2__c              = prd.ID;
+        prl1.Product_Register__c      = PRC1.ID;
+        insert prl1;
+
+        Product_Register_Link__c prl2 = new Product_Register_Link__c();
+        prl2.Product2__c              = prd.ID;
+        prl2.Product_Register__c      = PRC2.ID;
+        insert prl2;
     }
 
     @isTest static void test_checkProduct2Level6() {
@@ -203,25 +343,44 @@
         prd.IsActive               = true;
         prd.Level_Category__c      = '';
         prd.demoteer_Sap__c        = Date.today().addDays(-3);
-        prd.Diedatvanink__c        = Date.today().addDays(4);
+        prd.Diedatvanink__c        = Date.today().addDays(5);
         insert prd;
 
         Product_Register__c PRC = new Product_Register__c();
         PRC.Name                   = '鍥芥娉ㄨ繘20183222249';
-        PRC.MedPrdClass__c         = '3';
+        PRC.MedPrdClass__c         = '1';
         PRC.RegisterNoClass_New__c = '';
         PRC.RegisterNoClass_Old__c = '6822';
-        PRC.PrdCompanyAddr__c      = '鍚嶇О:濂ユ灄宸存柉鍖荤枟鏍紡浼氱ぞ;浣忔墍:鏃ユ湰鍥戒笢浜兘娑╄胺鍖哄埂涔嬭胺浜屼竵鐩�43鐣湴2鍙�;鑱旂郴鏂瑰紡:0081-426-42-2667';
+        PRC.PrdCompanyAddr__c = '鍚嶇О:濂ユ灄宸存柉鍖荤枟鏍紡浼氱ぞ;浣忔墍:鏃ユ湰鍥戒笢浜兘娑╄胺鍖哄埂涔嬭胺浜屼竵鐩�43鐣湴2鍙�;鑱旂郴鏂瑰紡:0081-426-42-2667';
         PRC.ClinicalProductCode__c = 'YYYY';
         PRC.ValidTo__c             = Date.today().addDays(22);
         PRC.ValidFrom__c           = Date.today().addDays(-22);
-        PRC.Stelsedag__c           = Date.today();
+        PRC.Stelsedag__c           = Date.today().addDays(1);
         insert PRC;
+
+        Product_Register__c PRC1 = new Product_Register__c();
+        PRC1.Name                   = '鍥芥娉ㄨ繘20183222249';
+        PRC1.MedPrdClass__c         = '1';
+        PRC1.RegisterNoClass_New__c = '';
+        PRC1.RegisterNoClass_Old__c = '6822';
+        PRC1.PrdCompanyAddr__c = '鍚嶇О:濂ユ灄宸存柉鍖荤枟鏍紡浼氱ぞ;浣忔墍:鏃ユ湰鍥戒笢浜兘娑╄胺鍖哄埂涔嬭胺浜屼竵鐩�43鐣湴2鍙�;鑱旂郴鏂瑰紡:0081-426-42-2667';
+        PRC1.ClinicalProductCode__c = 'YYYY';
+        PRC1.ValidTo__c             = Date.today().addDays(22);
+        PRC1.ValidFrom__c           = Date.today().addDays(-22);
+        insert PRC1;
+
+        
 
         Product_Register_Link__c prl = new Product_Register_Link__c();
         prl.Product2__c              = prd.ID;
         prl.Product_Register__c      = PRC.ID;
         insert prl;
+
+        Product_Register_Link__c prl1 = new Product_Register_Link__c();
+        prl1.Product2__c              = prd.ID;
+        prl1.Product_Register__c      = PRC1.ID;
+        insert prl1;
+
     }
 
     @isTest static void test_checkProduct2Level7() {
@@ -232,25 +391,44 @@
         prd.IsActive               = true;
         prd.Level_Category__c      = '';
         prd.demoteer_Sap__c        = Date.today().addDays(-3);
-        prd.Diedatvanink__c        = Date.today().addDays(4);
+        prd.Diedatvanink__c        = Date.today().addDays(5);
         insert prd;
 
         Product_Register__c PRC = new Product_Register__c();
         PRC.Name                   = '鍥芥娉ㄨ繘20183222249';
-        PRC.MedPrdClass__c         = '';
+        PRC.MedPrdClass__c         = '2';
         PRC.RegisterNoClass_New__c = '';
         PRC.RegisterNoClass_Old__c = '6822';
-        PRC.PrdCompanyAddr__c      = '鍚嶇О:濂ユ灄宸存柉鍖荤枟鏍紡浼氱ぞ;浣忔墍:鏃ユ湰鍥戒笢浜兘娑╄胺鍖哄埂涔嬭胺浜屼竵鐩�43鐣湴2鍙�;鑱旂郴鏂瑰紡:0081-426-42-2667';
+        PRC.PrdCompanyAddr__c = '鍚嶇О:濂ユ灄宸存柉鍖荤枟鏍紡浼氱ぞ;浣忔墍:鏃ユ湰鍥戒笢浜兘娑╄胺鍖哄埂涔嬭胺浜屼竵鐩�43鐣湴2鍙�;鑱旂郴鏂瑰紡:0081-426-42-2667';
         PRC.ClinicalProductCode__c = 'YYYY';
         PRC.ValidTo__c             = Date.today().addDays(22);
         PRC.ValidFrom__c           = Date.today().addDays(-22);
-        PRC.Stelsedag__c           = Date.today();
+        PRC.Stelsedag__c           = Date.today().addDays(1);
         insert PRC;
+
+        Product_Register__c PRC1 = new Product_Register__c();
+        PRC1.Name                   = '鍥芥娉ㄨ繘20183222249';
+        PRC1.MedPrdClass__c         = '2';
+        PRC1.RegisterNoClass_New__c = '';
+        PRC1.RegisterNoClass_Old__c = '6822';
+        PRC1.PrdCompanyAddr__c = '鍚嶇О:濂ユ灄宸存柉鍖荤枟鏍紡浼氱ぞ;浣忔墍:鏃ユ湰鍥戒笢浜兘娑╄胺鍖哄埂涔嬭胺浜屼竵鐩�43鐣湴2鍙�;鑱旂郴鏂瑰紡:0081-426-42-2667';
+        PRC1.ClinicalProductCode__c = 'YYYY';
+        PRC1.ValidTo__c             = Date.today().addDays(22);
+        PRC1.ValidFrom__c           = Date.today().addDays(-22);
+        PRC1.Stelsedag__c           = Date.today();
+        insert PRC1;
+
+        
 
         Product_Register_Link__c prl = new Product_Register_Link__c();
         prl.Product2__c              = prd.ID;
         prl.Product_Register__c      = PRC.ID;
         insert prl;
-    }
 
+        Product_Register_Link__c prl1 = new Product_Register_Link__c();
+        prl1.Product2__c              = prd.ID;
+        prl1.Product_Register__c      = PRC1.ID;
+        insert prl1;
+
+    }
 }
\ No newline at end of file
diff --git a/force-app/main/default/classes/RadiationUtil.cls b/force-app/main/default/classes/RadiationUtil.cls
index e39f810..cfd9051 100644
--- a/force-app/main/default/classes/RadiationUtil.cls
+++ b/force-app/main/default/classes/RadiationUtil.cls
@@ -1,5 +1,7 @@
 global class RadiationUtil {
 
+    public static Boolean oldOrder = false;
+
     public static Boolean EscapeOrderTriggerHandler = true;
     /**
      * [updateRadiationTypeQuantity description]鏇存柊浠g悊鍟嗚瘉鐓ф槑缁嗭紝鏇存柊濂ユ灄宸存柉浠g悊鍟嗙殑璇佺収鏄庣粏
@@ -10,7 +12,8 @@
      */
     public static void updateRadiationTypeQuantity (String Id, String orderFounder, String dealerId, Boolean toloseFlag, String operationType, String operator) {
 
-        String olympusAccountId = System.label.Olympus_Id;
+
+        String olympusAccountId = oldOrder ? System.label.Olympus_Id : System.label.newOlympus_Id;
 
         String orderId = Id;
         //鑾峰彇鍚堝悓鐨勮緪灏勭被鍨嬪拰鏁伴噺
diff --git a/force-app/main/default/classes/SBG001TriggerHandler.cls b/force-app/main/default/classes/SBG001TriggerHandler.cls
index 8f43ef4..65f3d37 100644
--- a/force-app/main/default/classes/SBG001TriggerHandler.cls
+++ b/force-app/main/default/classes/SBG001TriggerHandler.cls
@@ -65,6 +65,7 @@
                                 || acc.RecordTypeId == '01228000000TdFG'    // NDT
                                 || acc.RecordTypeId == '01228000000TdFL'    // ANI
                                 || acc.RecordTypeId == '01228000000TdF1'    // BS
+                                || acc.RecordTypeId == '0120T0000003Cxt'    // IE鐩撮攢
                             )
                             && acc.stautesD__c == 'Pass') || acc.RecordTypeId == SBG001TriggerHandler.Account_Agency_Id //鍔炰簨澶�
                     ) {
@@ -85,6 +86,7 @@
                                 || acc.RecordTypeId == '01228000000TdFG'    // NDT
                                 || acc.RecordTypeId == '01228000000TdFL'    // ANI
                                 || acc.RecordTypeId == '01228000000TdF1'    // BS 
+                                || acc.RecordTypeId == '0120T0000003Cxt'    // IE鐩撮攢
                             )
                             && acc.stautesD__c == 'Pass'
                             && (acc.ManagementCode_Ext__c       != old.ManagementCode_Ext__c
@@ -159,6 +161,7 @@
                                 || con.AccountRecordTypeId__c == '01228000000TdFB'      // RVI
                                 || con.AccountRecordTypeId__c == '01228000000TdFG'      // NDT
                                 || con.AccountRecordTypeId__c == '01228000000TdF1'      // BS
+                                || con.AccountRecordTypeId__c == '0120T0000003Cxt'    // IE鐩撮攢
                             )
                             && con.StatusD__c == 'Pass') || con.AccountRecordTypeId__c == SBG001TriggerHandler.Account_Agency_Id// 鍔炰簨澶�
                     ) {
@@ -184,6 +187,7 @@
                                 || con.AccountRecordTypeId__c == '01228000000TdFG'      // NDT
                                 || con.AccountRecordTypeId__c == '01228000000TdF1'      // BS
                                 || con.AccountRecordTypeId__c == SBG001TriggerHandler.Account_Agency_Id // 鍔炰簨澶�
+                                || con.AccountRecordTypeId__c == '0120T0000003Cxt'    // IE鐩撮攢
                             )
                             && con.StatusD__c == 'Pass'
                             && (con.ManagementCode_Ext__c   != old.ManagementCode_Ext__c
@@ -324,7 +328,7 @@
                 SSBDCustomerContact.CustomerDescription = acc.FacilityName__c;
                 SSBDCustomerContact.CustomerDescription2Description3
                                             = (String.isBlank(acc.DivisionName__c) ? '' : (acc.DivisionName__c=='鏃�' ? '' : acc.DivisionName__c));
-                if (acc.RecordTypeId == '01228000000TdF6' || acc.RecordTypeId == '01228000000TdFB' ||  acc.RecordTypeId == '01228000000TdFG' ||  acc.RecordTypeId == '01228000000TdFL') {      // IE or RVI
+                if (acc.RecordTypeId == '01228000000TdF6' || acc.RecordTypeId == '01228000000TdFB' ||  acc.RecordTypeId == '01228000000TdFG' ||  acc.RecordTypeId == '01228000000TdFL' || acc.RecordTypeId == '0120T0000003Cxt') {      // IE or RVI
                     SSBDCustomerContact.CustomerDescription2Description3 += ',' + (String.isBlank(acc.EnglishName__c) ? '' : acc.EnglishName__c);
                 } else {
                     SSBDCustomerContact.CustomerDescription2Description3 += ',' + (String.isBlank(acc.DepartmentName__c) ? '' : acc.Departmentname__c);
@@ -532,7 +536,7 @@
                 SSBDCustomerContact.CustomerDescription = con.Account.FacilityName__c;
                 SSBDCustomerContact.CustomerDescription2Description3
                                         = (String.isBlank(con.Account.DivisionName__c) ? '' : (con.Account.DivisionName__c=='鏃�' ? '' : con.Account.DivisionName__c));
-                if (con.AccountRecordTypeId__c == '01228000000TdF6' || con.AccountRecordTypeId__c == '01228000000TdFB' || con.AccountRecordTypeId__c == '01228000000TdFG' || con.AccountRecordTypeId__c == '01228000000TdFL') {      // IE or RVI
+                if (con.AccountRecordTypeId__c == '01228000000TdF6' || con.AccountRecordTypeId__c == '01228000000TdFB' || con.AccountRecordTypeId__c == '01228000000TdFG' || con.AccountRecordTypeId__c == '01228000000TdFL' || con.AccountRecordTypeId__c == '0120T0000003Cxt') {      // IE or RVI
                     SSBDCustomerContact.CustomerDescription2Description3 += ',' + (String.isBlank(con.Account.EnglishName__c) ? '' : con.Account.EnglishName__c);
                 } else {
                     SSBDCustomerContact.CustomerDescription2Description3 += ',' + (String.isBlank(con.Account.DepartmentName__c) ? '' : con.Account.Departmentname__c);
diff --git a/force-app/main/default/classes/StaticParameter.cls b/force-app/main/default/classes/StaticParameter.cls
index 48e0495..e75d528 100644
--- a/force-app/main/default/classes/StaticParameter.cls
+++ b/force-app/main/default/classes/StaticParameter.cls
@@ -240,8 +240,9 @@
         '0010K00002VHSaB' => '00G0K000004AW2o',
         '0010K00002UxxT1' => '00G0K000004AW38',
         '0010K00002W6zlh' => '00G0K000004AYjU',//鎴愰兘鐩涢敶绉戞妧鏈夐檺鍏徃(NDT)
-        '0010K00002ZVOwt' => '00G0K000004c0oG'//澶╂触瀹忓熀浼熶笟绉戞妧鍙戝睍鏈夐檺鍏徃(NDT)
-
+        '0010K00002ZVOwt' => '00G0K000004c0oG',//澶╂触瀹忓熀浼熶笟绉戞妧鍙戝睍鏈夐檺鍏徃(NDT)
+        '0010K00002b6v6W' => '00G0K000004c4xH',//鎴愰兘涓诲绉戞妧鏈夐檺璐d换鍏徃(NDT)
+        '0010T00000LO3ph' => '00G0T0000029vfq'//鍖椾含娣辨櫙閲忓厜绉戞妧鏈夐檺鍏徃(BS)
     };
 
     public static List<String> specialDealerList = new List<String>{
diff --git a/force-app/main/default/pages/CopyOpportunity.page b/force-app/main/default/pages/CopyOpportunity.page
new file mode 100644
index 0000000..692bd3c
--- /dev/null
+++ b/force-app/main/default/pages/CopyOpportunity.page
@@ -0,0 +1,50 @@
+<apex:page Controller="CopyOpportunityController" sidebar="false" showHeader="false" action="{!init}" id="Page">
+    <apex:stylesheet value="{!URLFOR($Resource.blockUIcss)}"/>
+    <apex:includeScript value="{!URLFOR($Resource.jquery183minjs)}"/>
+    <apex:includeScript value="{!URLFOR($Resource.PleaseWaitDialog)}"/>
+    <apex:includeScript value="{!URLFOR($Resource.connection20)}"/>
+    <apex:includeScript value="{!URLFOR($Resource.apex20)}"/>
+
+	<script type="text/javascript">
+		function saveJs() {
+		    blockme();
+		    saveBtn();
+		}
+	</script>
+
+	<apex:form id="mainForm">
+        <apex:actionFunction name="saveBtn" action="{!Save}" rerender="allBlock" onComplete="unblockUI();"></apex:actionFunction>
+
+        <apex:pageBlock id="allBlock">
+	        <apex:pageBlockButtons location="top">
+	            <apex:commandButton onclick="saveJs();" value="鍒嗗壊淇濆瓨" rerender="dummy" style="width: 70px;"/>
+	            <apex:commandButton action="{!backBtn}" value="杩斿洖" rerender="dummy" style="width: 70px;"/>
+	        </apex:pageBlockButtons>
+	    
+
+
+		    <apex:pageBlockSection title="浠g悊鍟嗗拰鍚堜綔浼欎即浠g悊鍟嗕俊鎭�" columns="2">
+	            <apex:pageBlockSectionItem >
+	                <apex:outputLabel value="瀹℃壒浜�" for="opp_DealerSelectOwner"/>
+	                <apex:inputField value="{!opportunity.DealerSelectOwner__c}" id="opp_DealerSelectOwner" required="true"/>
+	            </apex:pageBlockSectionItem>
+	            <apex:pageBlockSectionItem >
+	                <apex:outputLabel value="鍚堜綔鍖哄煙璐熻矗浜�" for="HeadOfCooperationArea"/>
+	                <apex:inputField value="{!opportunity.HeadOfCooperationArea__c}" id="HeadOfCooperationArea" required="true"/>
+	            </apex:pageBlockSectionItem>
+	            <apex:pageBlockSectionItem >
+	                <apex:outputLabel value="浠g悊鍟�" for="Dealer"/>
+	                <apex:inputField value="{!opportunity.Dealer__c}" id="Dealer" required="true"/>
+	            </apex:pageBlockSectionItem>
+	            <apex:pageBlockSectionItem >
+	                <apex:outputLabel value="鍚堜綔鍖哄煙浠g悊鍟�" for="CrossCooperativeDealer"/>
+	                <apex:inputField value="{!opportunity.CrossCooperativeDealer__c}" id="CrossCooperativeDealer" required="true"/>
+	            </apex:pageBlockSectionItem>
+	        </apex:pageBlockSection>
+
+        </apex:pageBlock>
+
+	</apex:form>
+
+
+</apex:page>
\ No newline at end of file
diff --git a/force-app/main/default/pages/CopyOpportunity.page-meta.xml b/force-app/main/default/pages/CopyOpportunity.page-meta.xml
new file mode 100644
index 0000000..51eac2d
--- /dev/null
+++ b/force-app/main/default/pages/CopyOpportunity.page-meta.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ApexPage xmlns="http://soap.sforce.com/2006/04/metadata">
+    <apiVersion>41.0</apiVersion>
+    <availableInTouch>false</availableInTouch>
+    <confirmationTokenRequired>false</confirmationTokenRequired>
+    <label>CopyOpportunity</label>
+</ApexPage>
diff --git a/force-app/main/default/pages/NEWCreateSWOQuote.page b/force-app/main/default/pages/NEWCreateSWOQuote.page
index 7835391..2d0f0d4 100644
--- a/force-app/main/default/pages/NEWCreateSWOQuote.page
+++ b/force-app/main/default/pages/NEWCreateSWOQuote.page
@@ -295,7 +295,7 @@
                                 <apex:inputText id="DisplayPROBABILITY" value="{!QuotesPage.PROBABILITY__c}" style="display: none;"/>
                             </td>
                             <td/>
-                            <td align="left" ><apex:inputField id="PRODUCT_SEGMENT" value="{!QuotesPage.PRODUCT_SEGMENT__c}" style="width: 95%"/></td>
+                            <td align="left" ><apex:inputField id="PRODUCT_SEGMENT" value="{!QuotesPage.PRODUCT_SEGMENT__c}"  onchange="QuotesTypeChangeFunction();" style="width: 95%"/></td>
                         </tr>
                         <tr>
                             <td align="left" >{!$ObjectType.Quotes__c.fields.LOCATION__c.label}<span class="textRed">*</span></td>
@@ -566,19 +566,17 @@
                         </tr>
                         
                                 <tr>
-                                    <apex:outputPanel layout="none" rendered="{!IF(aftORbef == false && aftORbef1 == false, true, false)}">
-                                        <td colspan="9">
-                                        <apex:outputText id="message01" value="{!Messages01}" style="resize:vertical;width: 100%"/>
-                                        </td>
-                                    </apex:outputPanel> 
+                                    <td colspan="9">
+                                    <apex:outputText id="message01" value="{!Messages01}" style="resize:vertical;width: 100%"/>
+                                    </td>
                                 </tr>
-                                <tr>
+                                <!-- <tr>
                                     <apex:outputPanel layout="none" rendered="{!IF(aftORbef == true || aftORbef1 == true, true, false)}">
                                         <td colspan="9">
                                         <apex:outputText value="-缁翠慨璐ㄤ繚鍙兜鐩栦簬鏈缁翠慨鐨勯厤浠讹紝缁翠慨璐ㄤ繚鏈熶负浠櫒鍙戣揣鍚庝笁涓湀鍔犲叓澶┿��" style="resize:vertical;width: 100%"/>
                                         </td>
                                     </apex:outputPanel> 
-                                </tr>
+                                </tr> -->
                                 <tr>
                                     <td colspan="9">
                                      <apex:outputText id="message02" value="{!Messages02}" style="resize:vertical;width: 100%"/>
diff --git a/force-app/main/default/pages/OrderContract2.page b/force-app/main/default/pages/OrderContract2.page
index c76a4f4..d2212f0 100644
--- a/force-app/main/default/pages/OrderContract2.page
+++ b/force-app/main/default/pages/OrderContract2.page
@@ -82,7 +82,7 @@
                         </apex:outputpanel>
                         
                         <apex:outputpanel layout="none" rendered="{!IF(productSegment == 'NDT'|| productSegment == 'ANI', true, false)}">
-                            <option value="bj">鍖椾含</option>
+                            <option value="sh">涓婃捣</option>
                         </apex:outputpanel>
                     </select>
                 </td>
diff --git a/force-app/main/default/pages/OrderPDF.page b/force-app/main/default/pages/OrderPDF.page
index fd677eb..6956537 100644
--- a/force-app/main/default/pages/OrderPDF.page
+++ b/force-app/main/default/pages/OrderPDF.page
@@ -954,7 +954,7 @@
                 </tr>
                 <tr>
                     <td style="vertical-align: top;">
-                        THE SELLER:&nbsp;&nbsp;Evident Corporation
+                        THE SELLER:&nbsp;&nbsp;Evident (Shanghai) Co., Ltd
                     </td>
                     <td style="vertical-align: top;">
                         THE BUYER:&nbsp;&nbsp;{!specialDeliveryAddress.EnglishName__c}
diff --git a/force-app/main/default/pages/OrderPdf2.page b/force-app/main/default/pages/OrderPdf2.page
index 682afbf..e23f868 100644
--- a/force-app/main/default/pages/OrderPdf2.page
+++ b/force-app/main/default/pages/OrderPdf2.page
@@ -410,7 +410,7 @@
             <td style="text-align: center;">&nbsp;</td>
         </tr>
         <tr>
-            <td style="text-align: right;">OCSM鎶樻墸鍚庡悎璁� (OCSM->浠g悊鍟�)锛�</td>
+            <td style="text-align: right;">ECN鎶樻墸鍚庡悎璁� (ECN->浠g悊鍟�)锛�</td>
             <td style="text-align: right;">{!header.order_totalprice}</td>
             <td style="text-align: center;">&nbsp;</td>
         </tr>
@@ -487,30 +487,30 @@
             <col width="10%"/>
         </colgroup>
         <tr>
-            <td style="text-align: left;">鍗曚綅鍚嶇О锛氬ゥ鏋楀反鏂紙鍖椾含锛夐攢鍞湇鍔℃湁闄愬叕鍙镐笂娴峰垎鍏徃</td>
+            <td style="text-align: left;">鍗曚綅鍚嶇О锛氫华鏅�氬厜瀛︾鎶�锛堜笂娴凤級鏈夐檺鍏徃</td>
             <td style="text-align: right;">鏃ユ湡:</td>
             <td style="text-align: left;">{!strToday}</td>
             <td style="text-align: left;">&nbsp;</td>
         </tr>
         <tr>
-            <td style="text-align: left;">寮� 鎴� 琛岋細鎷涘晢閾惰涓婃捣鍒嗚娣捣鏀</td>
+            <td style="text-align: left;">寮� 鎴� 琛岋細鎷涘晢閾惰鑲′唤鏈夐檺鍏徃涓婃捣澶栭珮妗ユ敮琛�</td>
             <td style="text-align: left;">&nbsp;</td>
             <td style="text-align: left;">&nbsp;</td>
             <td style="text-align: left;">&nbsp;</td>
         </tr>
-        <tr>
+        <!-- <tr>
             <td style="text-align: left;">閾惰璐﹀彿锛�121913911110902003锛堜粎闄愮綉閾跺鎴锋搷浣滀娇鐢級</td>
             <td style="text-align: left;">&nbsp;</td>
             <td style="text-align: left;">&nbsp;</td>
             <td style="text-align: left;">&nbsp;</td>
-        </tr>
+        </tr> -->
         <tr>
-            <td style="text-align: left;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;121913911110902  </td>
+            <td style="text-align: left;">閾惰璐﹀彿锛�121944940610202  </td>
             <td style="text-align: left;">&nbsp;</td>
             <td style="text-align: left;">&nbsp;</td>
             <td style="text-align: left;">&nbsp;</td>
         </tr>
-        <tr>
+        <!-- <tr>
             <td style="text-align: left;">锛堜粎闄愮焊璐ㄧエ鎹鎴锋搷浣滀娇鐢紝绾歌川绁ㄦ嵁鍖呮嫭鏀エ銆佽捶璁板嚟璇併��</td>
             <td style="text-align: left;">&nbsp;</td>
             <td style="text-align: center; border-top: thin solid black;">涔版柟鐩栫珷</td>
@@ -521,7 +521,7 @@
             <td style="text-align: left;">&nbsp;</td>
             <td style="text-align: left;">&nbsp;</td>
             <td style="text-align: left;">&nbsp;</td>
-        </tr>
+        </tr> -->
     </table>
 </body>
 </apex:page>
\ No newline at end of file
diff --git a/force-app/main/default/pages/OrderPdf3.page b/force-app/main/default/pages/OrderPdf3.page
index f6bff27..0c28f12 100644
--- a/force-app/main/default/pages/OrderPdf3.page
+++ b/force-app/main/default/pages/OrderPdf3.page
@@ -53,13 +53,7 @@
             <td style="text-align: right;">鍦板潃锛�</td>
             <td style="text-align: left;">{!header.buyer_address}</td>
             <td style="text-align: right;">鍦板潃锛�</td>
-            <td style="text-align: left;">涓婃捣甯傚緪姹囧尯娣捣涓矾1010鍙�1001-1006銆�</td>
-        </tr>
-        <tr>
-            <td style="text-align: right;">&nbsp;</td>
-            <td style="text-align: left;">&nbsp;</td>
-            <td style="text-align: right;">&nbsp;</td>
-            <td style="text-align: left;">1101銆�1102銆�1104-1106銆�1601瀹�</td>
+            <td style="text-align: left;">涓浗锛堜笂娴凤級鑷敱璐告槗璇曢獙鍖烘棩妯卞寳璺�199-9鍙�102鍙�302閮ㄤ綅</td>
         </tr>
         
         <tr>
@@ -260,7 +254,7 @@
             <td style="text-align: center;">&nbsp;</td>
         </tr>
         <tr>
-            <td style="text-align: right;">OCN鎶樻墸鍚庡悎璁� (OCN->浠g悊鍟�)锛�</td>
+            <td style="text-align: right;">ECN鎶樻墸鍚庡悎璁� (ECN->浠g悊鍟�)锛�</td>
             <td style="text-align: right;">{!header.order_totalprice}</td>
             <td style="text-align: center;">&nbsp;</td>
         </tr>
@@ -302,19 +296,19 @@
      <table border="0" width="100%">
         
         <tr>
-            <td style="text-align: left;">鍏徃鍚嶇О锛氬ゥ鏋楀反鏂�(鍖椾含)閿�鍞湇鍔℃湁闄愬叕鍙�</td>
+            <td style="text-align: left;">鍗曚綅鍚嶇О锛氫华鏅�氬厜瀛︾鎶�锛堜笂娴凤級鏈夐檺鍏徃</td>
             
         </tr>
-        <tr>
+        <!-- <tr>
             <td style="text-align: left;">鏁存満璐︽埛锛圢DT/ANI 鍐呰锤涓氬姟锛�</td>
             
-        </tr>
+        </tr> -->
         <tr>
-            <td style="text-align: left;">閾惰璐﹀彿锛�610809142 </td>
+            <td style="text-align: left;">寮� 鎴� 琛岋細鎷涘晢閾惰鑲′唤鏈夐檺鍏徃涓婃捣澶栭珮妗ユ敮琛� </td>
             
         </tr>
         <tr>
-            <td style="text-align: left;">寮�鎴疯锛氫腑鍥芥皯鐢熼摱琛屽寳浜笁鍏冩敮琛� </td>
+            <td style="text-align: left;">閾惰璐﹀彿锛�121944940610202 </td>
             
         </tr>
     </table>
diff --git a/force-app/main/default/staticresources/SWOJS.js b/force-app/main/default/staticresources/SWOJS.js
index 5bbb8d6..6066c4f 100644
--- a/force-app/main/default/staticresources/SWOJS.js
+++ b/force-app/main/default/staticresources/SWOJS.js
@@ -1,4 +1,4 @@
-function openPDF(){
+锘縡unction openPDF(){
             var baseUrl = j$(escapeVfId("baseUrl")).value();
             var Id = j$(escapeVfId("Id")).value();
             if (Id == '') {
@@ -127,6 +127,7 @@
 
         function QuotesTypeChangeFunction(){
             var quotesType = j$(escapeVfId('Page:allForm:allBlock:Quotes:unEditable:QuotesType')).value();
+            var quotessegment = j$(escapeVfId('Page:allForm:allBlock:Quotes:unEditable:PRODUCT_SEGMENT')).value();
             var message01 = '';
             var message02 = '';
             var message03 = '';
@@ -138,7 +139,7 @@
                 // var message01 = 'Test';
                 // var message01 = '鍦ㄧ淮淇殑杩囩▼涓紝鑻ュ彂鐜版柊鏁呴殰锛屾垜浠皢鍙﹀缁欐偍鎶ヤ环銆�';
                
-                var message01 = '-缁翠慨璐ㄤ繚鏈熶负浠櫒鍙戣揣鍚庝笁涓湀鍔犲叓澶┿��';
+                var message01 = '-缁翠慨璐ㄤ繚鍙兜鐩栦簬鏈缁翠慨鐨勯厤浠讹紝缁翠慨璐ㄤ繚鏈熶负浠櫒鍙戣揣鍚庝笁涓湀鍔犲叓澶┿��';
                 var message02 = '-濡傛偍纭姝ゆ姤浠峰苟鍚屾剰缁翠慨锛屾暚璇锋偍鍦�90澶╀箣鍐呭畬鎴愪粯娆俱�傚惁鍒欐偍鐨勪华鍣ㄨ灏嗚涓烘斁寮冪淮淇紝鎴戜滑浼氫互杩愯垂鍒颁粯鐨勬柟寮忔妸浠櫒缁欐偍瀵勫洖,骞跺悜鎮ㄦ敹鍙�1000鍏冪殑妫�娴嬭垂鐢ㄣ��';
                 var message03 = '-鐢ㄦ埛鍦ㄦ纭鍚屾剰姝ゆ缁翠慨鎶ヤ环锛�';
                 var message04 = '瀹㈡埛绛惧瓧鎴栫洊绔狅細';
@@ -147,7 +148,11 @@
                 var message07 = '';
                 
             } else if ('闆朵欢鎶ヤ环鍗�' == quotesType) {
-                var message01 = '-濂ユ灄宸存柉鏈嶅姟閮ㄥ敭鍑虹殑缁翠慨閰嶄欢纭繚涓鸿川閲忕鍚堝ゥ鏋楀反鏂弬鏁版寚鏍囩殑鏂板搧锛屽ゥ鏋楀反鏂鍞嚭鐨勭淮淇厤浠朵笉鎻愪緵淇濅慨鏈嶅姟锛屽悓鏃朵篃涓嶆彁渚涢��銆佹崲璐ф湇鍔°�傛暚璇锋偍璋ㄦ厧璐拱銆�';
+                if ('NDT' == quotessegment) {
+                    var message01 = '-浠櫙閫氬厜瀛︾鎶�(涓婃捣)鏈夐檺鍏徃鍖椾含鍒嗗叕鍙稿敭鍑虹殑缁翠慨閰嶄欢涓哄ゥ鏋楀反鏂師鍘傞厤浠讹紝浠櫙閫氬叕鍙稿鍞嚭鐨勭淮淇厤浠朵笉鎻愪緵淇濅慨鏈嶅姟锛屼篃涓嶆彁渚涢��銆佹崲璐ф湇鍔★紝鏁鎮ㄨ皑鎱庤喘涔般��';
+                }else {
+                    var message01 = '-濂ユ灄宸存柉鏈嶅姟閮ㄥ敭鍑虹殑缁翠慨閰嶄欢纭繚涓鸿川閲忕鍚堝ゥ鏋楀反鏂弬鏁版寚鏍囩殑鏂板搧锛屽ゥ鏋楀反鏂鍞嚭鐨勭淮淇厤浠朵笉鎻愪緵淇濅慨鏈嶅姟锛屽悓鏃朵篃涓嶆彁渚涢��銆佹崲璐ф湇鍔°�傛暚璇锋偍璋ㄦ厧璐拱銆�';
+                }
                 var message02 = '-鐢ㄦ埛鍦ㄦ纭姝ゆ鎶ヤ环锛屽喅瀹氳喘涔帮細';
                 var message03 = '瀹㈡埛绛惧瓧鎴栫洊绔狅細';
                 var message04 = '鏃ユ湡锛�';
diff --git a/force-app/main/default/triggers/OrderTrigger.trigger b/force-app/main/default/triggers/OrderTrigger.trigger
index e7b28ac..291c482 100644
--- a/force-app/main/default/triggers/OrderTrigger.trigger
+++ b/force-app/main/default/triggers/OrderTrigger.trigger
@@ -2,10 +2,14 @@
     
     if (Trigger.isBefore && Trigger.isInsert) {
         System.debug('@@@@@@@@@@@@@@!!!!!!!!!!!!!!!');
-        OrderTriggerHandler.setIsNew(Trigger.new, Trigger.newMap, Trigger.old, Trigger.oldMap);
-        OrderTriggerHandler.setPriceBook(Trigger.new, Trigger.newMap, Trigger.old, Trigger.oldMap);
+        if(OrderDivisionController.OrderDivision == false){
+            
+            OrderTriggerHandler.setPriceBook(Trigger.new, Trigger.newMap, Trigger.old, Trigger.oldMap);
+           
+            OrderTriggerHandler.check(Trigger.new, Trigger.newMap, Trigger.old, Trigger.oldMap);
+        }
         OrderTriggerHandler.setTransferValue(Trigger.new, Trigger.newMap, Trigger.old, Trigger.oldMap);
-        OrderTriggerHandler.check(Trigger.new, Trigger.newMap, Trigger.old, Trigger.oldMap);
+        OrderTriggerHandler.setIsNew(Trigger.new, Trigger.newMap, Trigger.old, Trigger.oldMap);
     }
     if (Trigger.isAfter && Trigger.isInsert) {
         OrderTriggerHandler.addItem(Trigger.new, Trigger.newMap, Trigger.old, Trigger.oldMap);

--
Gitblit v1.9.1