From 39644c307e98c90e45aea98292c86d70740989e3 Mon Sep 17 00:00:00 2001
From: binxie <137736985@qq.com>
Date: 星期二, 20 六月 2023 09:17:10 +0800
Subject: [PATCH] backup

---
 force-app/main/default/classes/WeeklyReportCmp.cls | 3915 +++++++++++++++++++++++++++++++++++-----------------------
 1 files changed, 2,347 insertions(+), 1,568 deletions(-)

diff --git a/force-app/main/default/classes/WeeklyReportCmp.cls b/force-app/main/default/classes/WeeklyReportCmp.cls
index e047c2a..56e62cf 100644
--- a/force-app/main/default/classes/WeeklyReportCmp.cls
+++ b/force-app/main/default/classes/WeeklyReportCmp.cls
@@ -1,125 +1,150 @@
 public with sharing class WeeklyReportCmp {
-    @AuraEnabled public List<Agency_Report__c> reports{get;set;}
-    @AuraEnabled public Map<String,List<Map<String,String>>> allselectlist{get;set;}
-    @AuraEnabled public Map<String,String> fieldsMap{get;set;}
-    @AuraEnabled public Map<String,List<Map<String,String>>> docmap{get;set;}
-    @AuraEnabled public List<Map<String,String>> doctorList{get;set;}
+  @AuraEnabled
+  public List<Agency_Report__c> reports { get; set; }
+  @AuraEnabled
+  public Map<String, List<Map<String, String>>> allselectlist { get; set; }
+  @AuraEnabled
+  public Map<String, String> fieldsMap { get; set; }
+  @AuraEnabled
+  public Map<String, List<Map<String, String>>> docmap { get; set; }
+  @AuraEnabled
+  public List<Map<String, String>> doctorList { get; set; }
+  // PIPL update Yin Mingjie 21/02/2022 start
+  @AuraEnabled
+  public Map<String, String> awsurl { get; set; }
+  @AuraEnabled
+  public Map<String, String> contactawsurl { get; set; }
+  // PIPL update Yin Mingjie 21/02/2022 end
+  public WeeklyReportCmp() {
+  }
+  // PIPL update Yin Mingjie 21/02/2022 start
+  @RemoteAction
+  @AuraEnabled
+  public static Map<String, String> getAwsurl(String sobj) {
+    PIHelper.PIIntegration piIntegration = PIHelper.getPIIntegrationInfo(sobj);
+    Map<String, String> awsmap = new Map<String, String>();
+    awsmap.put('token', piIntegration.token);
+    awsmap.put('newUrl', piIntegration.newUrl);
+    awsmap.put('searchUrl', piIntegration.searchUrl);
+    awsmap.put('transactionURL', piIntegration.transactionURL);
+    return awsmap;
+  }
+
+  // @RemoteAction
+  // @AuraEnabled
+  // public static Map<String, String> saveAgencyContact(String name, String nameEncrypt, String type, String typeEncrypt, String doctorDivision1,
+  //     String doctorDivision1Encrypt, String agencyHospitalid, String awsid) {
+  //     Agency_Contact__c agency_contact = new Agency_Contact__c();
+
+  //     agency_contact.Name = name;
+  //     agency_contact.Name_Encrypted__c = nameEncrypt;
+  //     agency_contact.Type__c = type;
+  //     agency_contact.Type_Encrypted__c = typeEncrypt;
+  //     agency_contact.Doctor_Division1__c = doctorDivision1;
+  //     agency_contact.Doctor_Division1_Encrypted__c = doctorDivision1Encrypt;
+  //     agency_contact.Agency_Hospital__c = agencyHospitalid;
+  //     agency_contact.AWS_Data_Id__c = awsid;
+
+  //     Map<String, String> acMap = new Map<String, String>();
+
+  //     acMap = LightningUtil.insertAgencyContact(agency_contact);
+  //     return acMap;
+  // }
+
+  //zhj 鏂版柟妗堟敼閫� 2022-12-21 start
+  @RemoteAction
+  @AuraEnabled
+  public static Map<String, String> saveAgencyContact(
+    String name,
+    String type,
+    String doctorDivision1,
+    String agencyHospitalid,
+    String awsid
+  ) {
+    Agency_Contact__c agency_contact = new Agency_Contact__c();
+
+    agency_contact.Name = name;
+    agency_contact.Type__c = type;
+    agency_contact.Doctor_Division1__c = doctorDivision1;
+    agency_contact.Agency_Hospital__c = agencyHospitalid;
+    agency_contact.AWS_Data_Id__c = awsid;
+
+    Map<String, String> acMap = new Map<String, String>();
+
+    acMap = LightningUtil.insertAgencyContact(agency_contact);
+    return acMap;
+  }
+  //zhj 鏂版柟妗堟敼閫� 2022-12-21 end
+  // PIPL update Yin Mingjie 21/02/2022 end
+  @RemoteAction
+  @AuraEnabled
+  public static List<Map<String, String>> getProductList(
+    String dc,
+    String opdsis
+  ) {
+    List<ProductTypes__c> ptList;
+    if (opdsis != '') {
+      ptList = [
+        SELECT Id, Name, Department_Cateogy__c, OPD_Flg__c, SIS_Flg__c
+        FROM ProductTypes__c
+        WHERE
+          DeleteFlg__c = FALSE
+          AND Department_Cateogy_Text__c LIKE :dc
+          AND OPD_SIS_Type__c = :opdsis
+      ];
+    } else {
+      ptList = [
+        SELECT Id, Name, Department_Cateogy__c, OPD_Flg__c, SIS_Flg__c
+        FROM ProductTypes__c
+        WHERE DeleteFlg__c = FALSE AND Department_Cateogy_Text__c LIKE :dc
+      ];
+    }
+    List<Map<String, String>> pts = new List<Map<String, String>>();
+    Map<String, String> blank = new Map<String, String>();
+    blank.put('label', '');
+    blank.put('value', '');
+    pts.add(blank);
+    for (ProductTypes__c pt : ptList) {
+      Map<String, String> ptMap = new Map<String, String>();
+      ptMap.put('label', pt.Name);
+      ptMap.put('value', pt.Id);
+      pts.add(ptMap);
+    }
+    return pts;
+  }
+
+  public void setalldata() {
+    /*** create allselectlist ***/
+    this.allselectlist = new Map<String, List<Map<String, String>>>();
+
+    Map<String, List<Map<String, String>>> alldata = new Map<String, List<Map<String, String>>>();
+
+    // 銉椼儷銉�銈︺兂鍒濇湡鍊ゃ伄绌虹櫧
+    List<Map<String, String>> tmp = new List<Map<String, String>>();
+    Map<String, String> space = new Map<String, String>();
+    space.put('label', '');
+    space.put('value', '');
     // PIPL update Yin Mingjie 21/02/2022 start
-    @AuraEnabled public Map<String,String> awsurl{get;set;}
-    @AuraEnabled public Map<String,String> contactawsurl{get;set;}
+    space.put('awsid', '');
     // PIPL update Yin Mingjie 21/02/2022 end
-    public WeeklyReportCmp() {
+    space.put('selected', 'true');
+    tmp.add(space);
+
+    // 浠g悊搴楁媴褰撹�� AgencyPerson__c
+    List<Contact> agency_person_data = LightningUtil.selectAgencyPerson();
+    for (Contact var : agency_person_data) {
+      Map<String, String> om = new Map<String, String>();
+      om.put('label', var.Name);
+      om.put('value', var.Id);
+      // PIPL update Yin Mingjie 21/02/2022 start
+      om.put('awsid', var.AWS_Data_Id__c);
+      // PIPL update Yin Mingjie 21/02/2022 end
+      om.put('selected', 'false');
+      tmp.add(om);
     }
-    // PIPL update Yin Mingjie 21/02/2022 start
-    @RemoteAction
-    @AuraEnabled
-    public static Map<String,String> getAwsurl(String sobj){
-        PIHelper.PIIntegration piIntegration = PIHelper.getPIIntegrationInfo(sobj);
-        Map<String,String> awsmap = new Map<String,String>();
-        awsmap.put('token', piIntegration.token);
-        awsmap.put('newUrl', piIntegration.newUrl);
-        awsmap.put('searchUrl', piIntegration.searchUrl);
-        awsmap.put('transactionURL', piIntegration.transactionURL);
-        return awsmap;
-    }
-    
-    // @RemoteAction
-    // @AuraEnabled
-    // public static Map<String, String> saveAgencyContact(String name, String nameEncrypt, String type, String typeEncrypt, String doctorDivision1, 
-    //     String doctorDivision1Encrypt, String agencyHospitalid, String awsid) {
-    //     Agency_Contact__c agency_contact = new Agency_Contact__c();
+    this.allselectlist.put('AgencyPerson__c', tmp);
 
-    //     agency_contact.Name = name;
-    //     agency_contact.Name_Encrypted__c = nameEncrypt;
-    //     agency_contact.Type__c = type;
-    //     agency_contact.Type_Encrypted__c = typeEncrypt;
-    //     agency_contact.Doctor_Division1__c = doctorDivision1;
-    //     agency_contact.Doctor_Division1_Encrypted__c = doctorDivision1Encrypt;
-    //     agency_contact.Agency_Hospital__c = agencyHospitalid;
-    //     agency_contact.AWS_Data_Id__c = awsid;
-        
-    //     Map<String, String> acMap = new Map<String, String>();
-        
-    //     acMap = LightningUtil.insertAgencyContact(agency_contact);
-    //     return acMap;
-    // }
-
-    //zhj 鏂版柟妗堟敼閫� 2022-12-21 start
-    @RemoteAction
-    @AuraEnabled
-    public static Map<String, String> saveAgencyContact(String name, String type, String doctorDivision1, 
-        String agencyHospitalid, String awsid) {
-        Agency_Contact__c agency_contact = new Agency_Contact__c();
-
-        agency_contact.Name = name;
-        agency_contact.Type__c = type;
-        agency_contact.Doctor_Division1__c = doctorDivision1;
-        agency_contact.Agency_Hospital__c = agencyHospitalid;
-        agency_contact.AWS_Data_Id__c = awsid;
-        
-        Map<String, String> acMap = new Map<String, String>();
-        
-        acMap = LightningUtil.insertAgencyContact(agency_contact);
-        return acMap;
-    }
-    //zhj 鏂版柟妗堟敼閫� 2022-12-21 end
-    // PIPL update Yin Mingjie 21/02/2022 end
-    @RemoteAction
-    @AuraEnabled
-    public static List<Map<String,String>> getProductList(String dc, String opdsis){
-        List<ProductTypes__c> ptList;
-        if (opdsis != '') {
-            ptList = [select Id, Name, Department_Cateogy__c, OPD_Flg__c, SIS_Flg__c from ProductTypes__c where DeleteFlg__c = false and Department_Cateogy_Text__c like :dc and OPD_SIS_Type__c =:opdsis];
-        } else {
-            ptList = [select Id, Name, Department_Cateogy__c, OPD_Flg__c, SIS_Flg__c from ProductTypes__c where DeleteFlg__c = false and Department_Cateogy_Text__c like :dc];
-        }
-        List<Map<String,String>> pts = new List<Map<String,String>>();
-        Map<String,String> blank = new Map<String,String>();
-        blank.put('label', '');
-        blank.put('value', '');
-        pts.add(blank);
-        for (ProductTypes__c pt : ptList) {
-            Map<String,String> ptMap = new Map<String,String>();
-            ptMap.put('label', pt.Name);
-            ptMap.put('value', pt.Id);
-            pts.add(ptMap);
-        }
-        return pts;
-    }
-    
-    public void setalldata()
-    {
-        /*** create allselectlist ***/
-        this.allselectlist = new Map<String,List<Map<String,String>>>();
-
-        Map<String,List<Map<String,String>>> alldata = new Map<String,List<Map<String,String>>>();
-
-        // 銉椼儷銉�銈︺兂鍒濇湡鍊ゃ伄绌虹櫧
-        List<Map<String,String>> tmp = new List<Map<String,String>>();
-        Map<String,String> space = new Map<String,String>();
-        space.put('label', '');
-        space.put('value', '');
-        // PIPL update Yin Mingjie 21/02/2022 start
-        space.put('awsid', '');
-        // PIPL update Yin Mingjie 21/02/2022 end
-        space.put('selected', 'true');
-        tmp.add(space);
-        
-        // 浠g悊搴楁媴褰撹�� AgencyPerson__c
-        List<Contact> agency_person_data = LightningUtil.selectAgencyPerson();
-        for(Contact var : agency_person_data) {
-            Map<String,String> om = new Map<String,String>();
-            om.put('label', var.Name);
-            om.put('value', var.Id);
-            // PIPL update Yin Mingjie 21/02/2022 start
-            om.put('awsid', var.AWS_Data_Id__c);
-            // PIPL update Yin Mingjie 21/02/2022 end
-            om.put('selected', 'false');
-            tmp.add(om);
-        }
-        this.allselectlist.put('AgencyPerson__c', tmp);
-        
-        /*
+    /*
         List<AgencyPerson__c> agency_person_data = [Select Id,Name,CurrencyIsoCode From AgencyPerson__c];
         List<Map<String,String>> tmp = new List<Map<String,String>>();
         Map<String,String> space = new Map<String,String>();
@@ -136,159 +161,217 @@
         }
         this.allselectlist.put('AgencyPerson__c', tmp);
         */
-        
-        // 绉戝鍒嗙被 Department_Cateogy__c 
-        this.allselectlist.put('Department_Cateogy__c', WeeklyReportCmp.getPicklistValues('Agency_Report__c','Department_Cateogy__c'));
 
-        // 娲诲姩鍖哄垎 Purpose_Type__c
-        this.allselectlist.put('Purpose_Type__c', WeeklyReportCmp.getPicklistValues('Agency_Report__c','Purpose_Type__c'));
+    // 绉戝鍒嗙被 Department_Cateogy__c
+    this.allselectlist.put(
+      'Department_Cateogy__c',
+      WeeklyReportCmp.getPicklistValues(
+        'Agency_Report__c',
+        'Department_Cateogy__c'
+      )
+    );
 
-        // 缁撴灉 Result__c
-        this.allselectlist.put('Result__c', WeeklyReportCmp.getPicklistValues('Agency_Report__c','Result__c'));
+    // 娲诲姩鍖哄垎 Purpose_Type__c
+    this.allselectlist.put(
+      'Purpose_Type__c',
+      WeeklyReportCmp.getPicklistValues('Agency_Report__c', 'Purpose_Type__c')
+    );
 
-        //闃舵 StageName__c
-        this.allselectlist.put('StageName__c', WeeklyReportCmp.getPicklistValues('Agency_Opportunity__c','StageName__c'));
-        //SWAG-CBX68C fy 銆愬鎵樸�慏AMS绯荤粺鍛ㄦ姤妯″潡鍐呭闇�姹傚鍔� start
-        // 鏀彺闇�姹� SupportNeeds__c
-        this.allselectlist.put('SupportNeeds__c', WeeklyReportCmp.getPicklistValues('Agency_Report__c','SupportNeeds__c'));
-        //SWAG-CBX68C fy 銆愬鎵樸�慏AMS绯荤粺鍛ㄦ姤妯″潡鍐呭闇�姹傚鍔� end
-        // 鑱屼綅
-//        this.allselectlist.put('visitor_title__c', WeeklyReportCmp.getPicklistValues('Agency_Report__c','visitor_title__c'));
+    // 缁撴灉 Result__c
+    this.allselectlist.put(
+      'Result__c',
+      WeeklyReportCmp.getPicklistValues('Agency_Report__c', 'Result__c')
+    );
 
-        // 瑁藉搧鍖哄垎
-        //List<ProductTypes__c> ProductTypes = [select id,Name from ProductTypes__c];
-        //List<Map<String,String>> tmp2 = new List<Map<String,String>>();
-        //tmp2.add(space);
-        //for(ProductTypes__c var : ProductTypes){
-        //    Map<String,String> om = new Map<String,String>();
-        //    om.put('label', var.Name);
-        //    om.put('value', var.Id);
-        //    om.put('selected', 'false');
-        //    tmp2.add(om);
-        //}
-        //this.allselectlist.put('Product_Category__c', tmp2);
-        
-        // 瑕嬪嚭銇楄ō瀹�
-        this.fieldsMap = new Map<String,String>();
-        this.fieldsMap = this.getfiledsmap();
-        
-        //System.debug('fieldsMap is ' + fieldsMap);
-        //System.debug('allselectlist is ' + this.allselectlist);
+    //闃舵 StageName__c
+    this.allselectlist.put(
+      'StageName__c',
+      WeeklyReportCmp.getPicklistValues('Agency_Opportunity__c', 'StageName__c')
+    );
+    //SWAG-CBX68C fy 銆愬鎵樸�慏AMS绯荤粺鍛ㄦ姤妯″潡鍐呭闇�姹傚鍔� start
+    // 鏀彺闇�姹� SupportNeeds__c
+    this.allselectlist.put(
+      'SupportNeeds__c',
+      WeeklyReportCmp.getPicklistValues('Agency_Report__c', 'SupportNeeds__c')
+    );
+    //SWAG-CBX68C fy 銆愬鎵樸�慏AMS绯荤粺鍛ㄦ姤妯″潡鍐呭闇�姹傚鍔� end
+    // 鑱屼綅
+    //        this.allselectlist.put('visitor_title__c', WeeklyReportCmp.getPicklistValues('Agency_Report__c','visitor_title__c'));
 
-        this.awsurl = getAwsurl('Agency_Contact__c');// 20220222 PI鏀归�� by Bright
-        this.contactawsurl = getAwsurl('Contact');// 20220222 PI鏀归�� by Bright
+    // 瑁藉搧鍖哄垎
+    //List<ProductTypes__c> ProductTypes = [select id,Name from ProductTypes__c];
+    //List<Map<String,String>> tmp2 = new List<Map<String,String>>();
+    //tmp2.add(space);
+    //for(ProductTypes__c var : ProductTypes){
+    //    Map<String,String> om = new Map<String,String>();
+    //    om.put('label', var.Name);
+    //    om.put('value', var.Id);
+    //    om.put('selected', 'false');
+    //    tmp2.add(om);
+    //}
+    //this.allselectlist.put('Product_Category__c', tmp2);
+
+    // 瑕嬪嚭銇楄ō瀹�
+    this.fieldsMap = new Map<String, String>();
+    this.fieldsMap = this.getfiledsmap();
+
+    //System.debug('fieldsMap is ' + fieldsMap);
+    //System.debug('allselectlist is ' + this.allselectlist);
+
+    this.awsurl = getAwsurl('Agency_Contact__c'); // 20220222 PI鏀归�� by Bright
+    this.contactawsurl = getAwsurl('Contact'); // 20220222 PI鏀归�� by Bright
+  }
+
+  public static List<Map<String, String>> getPicklistValues(
+    String objstr,
+    String fld
+  ) {
+    List<Map<String, String>> options = new List<Map<String, String>>();
+    Map<String, String> space = new Map<String, String>();
+    space.put('label', '');
+    space.put('value', '');
+    space.put('selected', 'true');
+    options.add(space);
+
+    Schema.sObjectType objType = Schema.getGlobalDescribe().get(objstr);
+    Schema.DescribeSObjectResult objDescribe = objType.getDescribe();
+    map<String, Schema.SObjectField> fieldMap = objDescribe.fields.getMap();
+    list<Schema.PicklistEntry> values = fieldMap.get(fld)
+      .getDescribe()
+      .getPickListValues();
+    system.debug(objstr + '=' + values);
+    for (Schema.PicklistEntry a : values) {
+      if (!a.isActive())
+        continue;
+      Map<String, String> ses = new Map<String, String>();
+      ses.put('label', a.getLabel());
+      ses.put('value', a.getValue());
+      ses.put('selected', 'false');
+      options.add(ses);
     }
-    
-    
-    public static List<Map<String,String>> getPicklistValues(String objstr, String fld){
-        List<Map<String,String>> options = new List<Map<String,String>>();
-        Map<String,String> space = new Map<String,String>();
-        space.put('label', '');
-        space.put('value', '');
-        space.put('selected', 'true');
-        options.add(space);
+    return options;
+  }
 
-        Schema.sObjectType objType = Schema.getGlobalDescribe().get(objstr);
-        Schema.DescribeSObjectResult objDescribe = objType.getDescribe();
-        map<String, Schema.SObjectField> fieldMap = objDescribe.fields.getMap();
-        list<Schema.PicklistEntry> values = fieldMap.get(fld).getDescribe().getPickListValues();
-        system.debug(objstr + '=' + values);
-        for (Schema.PicklistEntry a : values)
-        {
-            if (!a.isActive()) continue;
-            Map<String,String> ses = new Map<String,String>();
-            ses.put('label', a.getLabel());
-            ses.put('value', a.getValue());
-            ses.put('selected', 'false');
-            options.add(ses);
-        }
-        return options;
+  public Map<String, String> getfiledsmap() {
+    Map<String, Schema.SObjectType> schemaMap = Schema.getGlobalDescribe();
+    Map<String, List<String>> typemap = new Map<String, List<String>>();
+
+    Map<String, Schema.SObjectField> fieldMap = schemaMap.get(
+        'Agency_Opportunity__c'
+      )
+      .getDescribe()
+      .fields.getMap();
+    Map<String, String> mappingmap = new Map<String, String>();
+    for (Schema.SObjectField sfield : fieldMap.Values()) {
+      Schema.describefieldresult dfield = sfield.getDescribe();
+      String lab = '';
+      lab = dfield.getLabel();
+      system.debug(lab);
+      mappingmap.put(dfield.name, lab);
     }
-    
-    
-    public  Map<String,String> getfiledsmap()
-    {
-        Map<String,Schema.SObjectType> schemaMap = Schema.getGlobalDescribe();
-        Map<String,List<String>>   typemap = new Map<String,List<String>>  ();
-        
-        Map<String,Schema.SObjectField> fieldMap = schemaMap.get('Agency_Opportunity__c').getDescribe().fields.getMap();
-        Map<String,String> mappingmap = new Map<String,String>();
-        for(Schema.SObjectField sfield : fieldMap.Values())
-        {
-            Schema.describefieldresult dfield = sfield.getDescribe();
-            String lab = '';
-            lab = dfield.getLabel();
-            system.debug(lab);
-            mappingmap.put(dfield.name,lab);
-        }
-        fieldMap = schemaMap.get('Agency_Report__c').getDescribe().fields.getMap();
-        for(Schema.SObjectField sfield : fieldMap.Values())
-        {
-            Schema.describefieldresult dfield = sfield.getDescribe();
-            String lab = '';
-            lab = dfield.getLabel();
-            system.debug(lab);
-            mappingmap.put(dfield.name,lab);
-        }
-        return mappingmap;
+    fieldMap = schemaMap.get('Agency_Report__c').getDescribe().fields.getMap();
+    for (Schema.SObjectField sfield : fieldMap.Values()) {
+      Schema.describefieldresult dfield = sfield.getDescribe();
+      String lab = '';
+      lab = dfield.getLabel();
+      system.debug(lab);
+      mappingmap.put(dfield.name, lab);
     }
-    
-    @RemoteAction
-    @AuraEnabled
-    public static WeeklyReportCmp getalldata(){
-        WeeklyReportCmp li = new WeeklyReportCmp();
-        li.setalldata();
-        return li;
+    return mappingmap;
+  }
+
+  @RemoteAction
+  @AuraEnabled
+  public static WeeklyReportCmp getalldata() {
+    WeeklyReportCmp li = new WeeklyReportCmp();
+    li.setalldata();
+    return li;
+  }
+
+  @RemoteAction
+  @AuraEnabled
+  public static ProductTypes__c getProduct(String id) {
+    return [
+      SELECT Department_Cateogy__c, OPD_Flg__c, Id, SIS_Flg__c
+      FROM ProductTypes__c
+      WHERE Id = :id
+    ];
+  }
+
+  @RemoteAction
+  @AuraEnabled
+  public static String createReportHeader(
+    String name,
+    String s_date,
+    String s_agency,
+    String head_key
+  ) {
+    Agency_Report_Header__c agency_report_header = makeReportHeader(
+      name,
+      s_date,
+      s_agency,
+      head_key
+    );
+
+    agency_report_header = LightningUtil.upsertAgencyReportHeader(
+      agency_report_header
+    );
+    return agency_report_header.Id;
+  }
+  public static Agency_Report_Header__c makeReportHeader(
+    String name,
+    String s_date,
+    String s_agency,
+    String head_key
+  ) {
+    Date week = Date.valueOf(s_date);
+    Agency_Report_Header__c agency_report_header = new Agency_Report_Header__c();
+    agency_report_header.Name = name + ' (' + s_date + ')';
+    agency_report_header.HeaderInputKey__c = head_key;
+    agency_report_header.Week__c = week;
+    agency_report_header.Agency_Person2__c = s_agency;
+
+    // READ OlympusCalendar__c
+    system.debug(week);
+    OlympusCalendar__c olympus_calendar = [
+      SELECT Id, Date__c
+      FROM OlympusCalendar__c
+      WHERE Date__c = :week
+    ];
+    system.debug(olympus_calendar);
+    String olympus_calendar_id = olympus_calendar.Id;
+    if (olympus_calendar_id != '') {
+      agency_report_header.OlympusDate__c = olympus_calendar_id;
     }
 
-    @RemoteAction
-    @AuraEnabled
-    public static ProductTypes__c getProduct(String id){
-        return [select Department_Cateogy__c, OPD_Flg__c, Id, SIS_Flg__c from ProductTypes__c where Id =:id];
-    }
-    
-    @RemoteAction
-    @AuraEnabled
-    public static String createReportHeader(String name, String s_date, String s_agency, String head_key){
-        Agency_Report_Header__c agency_report_header = makeReportHeader(name, s_date, s_agency, head_key);
+    system.debug(agency_report_header);
+    return agency_report_header;
+  }
 
-        agency_report_header = LightningUtil.upsertAgencyReportHeader(agency_report_header);
-        system.debug('report Id:'+);
-        return agency_report_header.Id;
-    }
-    public static Agency_Report_Header__c makeReportHeader(String name, String s_date, String s_agency, String head_key){
-        Date week = Date.valueOf(s_date);
-        Agency_Report_Header__c agency_report_header = new Agency_Report_Header__c();
-        agency_report_header.Name = name + ' (' + s_date + ')';
-        agency_report_header.HeaderInputKey__c = head_key;
-        agency_report_header.Week__c = week;
-        agency_report_header.Agency_Person2__c = s_agency;
+  @RemoteAction
+  @AuraEnabled
+  public static List<Agency_Hospital_Link__c> getHospitalList(
+    String hospital_name
+  ) {
+    hospital_name = '%' + hospital_name.trim() + '%';
+    system.debug('hospital_name+++' + hospital_name);
+    List<Agency_Hospital_Link__c> ahllist = [
+      SELECT Hospital_Name_readonly__c, Id, Hospital__c
+      FROM Agency_Hospital_Link__c
+      WHERE
+        Hospital_Name_readonly__c LIKE :hospital_name
+        AND Agency_Campaign_Obj__c = TRUE
+    ];
+    system.debug('Agency_Campaign_Obj__c+++' + ahllist);
+    return ahllist;
+  }
 
-        // READ OlympusCalendar__c
-        system.debug(week);
-        OlympusCalendar__c olympus_calendar = [select Id,Date__c from OlympusCalendar__c where Date__c=:week];
-        system.debug(olympus_calendar);
-        String olympus_calendar_id = olympus_calendar.Id;
-        if (olympus_calendar_id != '') { agency_report_header.OlympusDate__c = olympus_calendar_id; }
-
-        system.debug(agency_report_header);
-        return agency_report_header;
-    }
-    
-    @RemoteAction
-    @AuraEnabled
-    public static List<Agency_Hospital_Link__c> getHospitalList(String hospital_name) {
-        hospital_name = '%' + hospital_name.trim() + '%'; 
-        system.debug('hospital_name+++'+hospital_name);
-        List<Agency_Hospital_Link__c> ahllist = [select Hospital_Name_readonly__c, Id, Hospital__c from Agency_Hospital_Link__c where Hospital_Name_readonly__c like :hospital_name and Agency_Campaign_Obj__c = true];
-        system.debug('Agency_Campaign_Obj__c+++'+ahllist);
-        return ahllist;
-    }
-    
-    @RemoteAction
-    @AuraEnabled
-    // PIPL update Yin Mingjie 21/02/2022 start
-    public static Map<String,Map<String,String>> getDoctorList(String hospital_id){
+  @RemoteAction
+  @AuraEnabled
+  // PIPL update Yin Mingjie 21/02/2022 start
+  public static Map<String, Map<String, String>> getDoctorList(
+    String hospital_id
+  ) {
     /*
     public static List<Map<String,String>> getDoctorList(String hospital_id){
         List<Map<String,String>> ret = new List<Map<String,String>>();
@@ -300,11 +383,15 @@
     */
     // PIPL update Yin Mingjie 21/02/2022 end
 
-        // 鎴︾暐绉戝ID銈掑彇寰椼仐銇︺�併仢銈屻倰銈傘仺銇¨瀹€倰SELECT
-        Agency_Hospital_Link__c ahl = [select Hospital__c from Agency_Hospital_Link__c where id = :hospital_id];
+    // 鎴︾暐绉戝ID銈掑彇寰椼仐銇︺�併仢銈屻倰銈傘仺銇¨瀹€倰SELECT
+    Agency_Hospital_Link__c ahl = [
+      SELECT Hospital__c
+      FROM Agency_Hospital_Link__c
+      WHERE id = :hospital_id
+    ];
 
-        // PIPL update Yin Mingjie 21/02/2022 start
-        /*
+    // PIPL update Yin Mingjie 21/02/2022 start
+    /*
         List<Agency_Contact__c> doctor_list = [select id,Name,Doctor_Division1__c,Type__c,Agency_Hospital__c 
             FROM Agency_Contact__c WHERE Hospital_ID18__c=:ahl.Hospital__c order by Name];
 
@@ -319,32 +406,43 @@
             ret.add(tmp);
         }
         */
-        List<Agency_Contact__c> doctor_list = [select id,Name,AWS_Data_Id__c,Doctor_Division1__c,Type__c,Agency_Hospital__c 
-            FROM Agency_Contact__c WHERE Hospital_ID18__c=:ahl.Hospital__c order by Name];
+    List<Agency_Contact__c> doctor_list = [
+      SELECT
+        id,
+        Name,
+        AWS_Data_Id__c,
+        Doctor_Division1__c,
+        Type__c,
+        Agency_Hospital__c
+      FROM Agency_Contact__c
+      WHERE Hospital_ID18__c = :ahl.Hospital__c
+      ORDER BY Name
+    ];
 
-        Map<String,Map<String,String>> ret_test = new Map<String,Map<String,String>>();
-        for (Agency_Contact__c row : doctor_list)
-        {
-            if(row.AWS_Data_Id__c == '' || row.AWS_Data_Id__c == null){
-                continue;
-            }
-            Map<String,String> tmp = new Map<String,String>();
-            tmp.put('label', row.Name);
-            tmp.put('value', row.Id);
-            tmp.put('awsid', row.AWS_Data_Id__c);
-            tmp.put('selected', 'false');
-            tmp.put('Doctor_Division1__c', row.Doctor_Division1__c);
-            ret_test.put(row.AWS_Data_Id__c, tmp);
-        }
-        PIHelper.PIIntegration piIntegration = PIHelper.getPIIntegrationInfo('Agency_Contact__c');
-        Map<String, String> sre = new Map<String, String>();
-        sre.put('token', piIntegration.token);
-        sre.put('searchUrl', piIntegration.searchUrl);
-        ret_test.put('sre', sre);
-        
-        return ret_test;
-        // PIPL update Yin Mingjie 21/02/2022 end
-        /*
+    Map<String, Map<String, String>> ret_test = new Map<String, Map<String, String>>();
+    for (Agency_Contact__c row : doctor_list) {
+      if (row.AWS_Data_Id__c == '' || row.AWS_Data_Id__c == null) {
+        continue;
+      }
+      Map<String, String> tmp = new Map<String, String>();
+      tmp.put('label', row.Name);
+      tmp.put('value', row.Id);
+      tmp.put('awsid', row.AWS_Data_Id__c);
+      tmp.put('selected', 'false');
+      tmp.put('Doctor_Division1__c', row.Doctor_Division1__c);
+      ret_test.put(row.AWS_Data_Id__c, tmp);
+    }
+    PIHelper.PIIntegration piIntegration = PIHelper.getPIIntegrationInfo(
+      'Agency_Contact__c'
+    );
+    Map<String, String> sre = new Map<String, String>();
+    sre.put('token', piIntegration.token);
+    sre.put('searchUrl', piIntegration.searchUrl);
+    ret_test.put('sre', sre);
+
+    return ret_test;
+    // PIPL update Yin Mingjie 21/02/2022 end
+    /*
         String record_type_id = LightningUtil.getRecordTypeId(department);
 
         List<Contact> doctor_list = LightningUtil.selectContactList(hospital_id, record_type_id);
@@ -360,14 +458,14 @@
         }
         */
 
-        // PIPL update Yin Mingjie 21/02/2022 start
-        /*
+    // PIPL update Yin Mingjie 21/02/2022 start
+    /*
         return ret;
         */
-        // PIPL update Yin Mingjie 21/02/2022 end
-    }
-    
-    /*
+    // PIPL update Yin Mingjie 21/02/2022 end
+  }
+
+  /*
     @RemoteAction
     @AuraEnabled
     public static List<Map<String,String>> getOpportunityList(String record_type, String hospital_link_id){
@@ -393,1304 +491,1985 @@
     }
     */
 
-    @RemoteAction
-    @AuraEnabled//SWAG-CBX68C fy 銆愬鎵樸�慏AMS绯荤粺鍛ㄦ姤妯″潡鍐呭闇�姹傚鍔� start SupportNeedsc ,String SupportNeedsc
-    public static String saveAgencyReport(String Department_Cateogy, String Purpose_Type,String SupportNeedsc, String Agency_Report_Header,
-            String Agency_Hospital, String Person_In_Charge2, String doctor, String Submit_date,
-            String Product_Category1, String Product_Category2, String Product_Category3,
-            String Result, String Opportunity, String StageName, String oppAmount, String oppOCMPrice, String Close_Forecasted_Date, String Report_Date)
-    {
-        Agency_Report__c agency_report = makeAgencyReport(Department_Cateogy, Purpose_Type, Agency_Report_Header,
-            Agency_Hospital, Person_In_Charge2, doctor, Submit_date,
-            Product_Category1, Product_Category2, Product_Category3,//SWAG-CBX68C fy 銆愬鎵樸�慏AMS绯荤粺鍛ㄦ姤妯″潡鍐呭闇�姹傚鍔� start SupportNeedsc   ,SupportNeedsc
-            Result, Opportunity, StageName, oppAmount, oppOCMPrice, Close_Forecasted_Date, Report_Date,SupportNeedsc);
+  @RemoteAction
+  @AuraEnabled //SWAG-CBX68C fy 銆愬鎵樸�慏AMS绯荤粺鍛ㄦ姤妯″潡鍐呭闇�姹傚鍔� start SupportNeedsc ,String SupportNeedsc
+  public static String saveAgencyReport(
+    String Department_Cateogy,
+    String Purpose_Type,
+    String SupportNeedsc,
+    String Agency_Report_Header,
+    String Agency_Hospital,
+    String Person_In_Charge2,
+    String doctor,
+    String Submit_date,
+    String Product_Category1,
+    String Product_Category2,
+    String Product_Category3,
+    String Result,
+    String Opportunity,
+    String StageName,
+    String oppAmount,
+    String oppOCMPrice,
+    String Close_Forecasted_Date,
+    String Report_Date
+  ) {
+    Agency_Report__c agency_report = makeAgencyReport(
+      Department_Cateogy,
+      Purpose_Type,
+      Agency_Report_Header,
+      Agency_Hospital,
+      Person_In_Charge2,
+      doctor,
+      Submit_date,
+      Product_Category1,
+      Product_Category2,
+      Product_Category3, //SWAG-CBX68C fy 銆愬鎵樸�慏AMS绯荤粺鍛ㄦ姤妯″潡鍐呭闇�姹傚鍔� start SupportNeedsc   ,SupportNeedsc
+      Result,
+      Opportunity,
+      StageName,
+      oppAmount,
+      oppOCMPrice,
+      Close_Forecasted_Date,
+      Report_Date,
+      SupportNeedsc
+    );
 
-        agency_report = LightningUtil.insertAgencyReport(agency_report);
-        return agency_report.Id;
+    agency_report = LightningUtil.insertAgencyReport(agency_report);
+    return agency_report.Id;
+  }
+  public static Agency_Report__c makeAgencyReport(
+    String Department_Cateogy,
+    String Purpose_Type,
+    String Agency_Report_Header,
+    String Agency_Hospital,
+    String Person_In_Charge2,
+    String doctor,
+    String Submit_date,
+    String Product_Category1,
+    String Product_Category2,
+    String Product_Category3, //SWAG-CBX68C fy 銆愬鎵樸�慏AMS绯荤粺鍛ㄦ姤妯″潡鍐呭闇�姹傚鍔� start SupportNeeds__c   ,String SupportNeedsc
+    String Result,
+    String Opportunity,
+    String StageName,
+    String oppAmount,
+    String oppOCMPrice,
+    String Close_Forecasted_Date,
+    String Report_Date,
+    String SupportNeedsc
+  ) {
+    Agency_Report__c agency_report = new Agency_Report__c();
+    Date week = Date.valueOf(Submit_date);
+    agency_report.Submit_date__c = week;
+    Date reportDate = Date.valueOf(Report_Date);
+    agency_report.Report_Date__c = reportDate;
+
+    // MaxActivityDate__c 鏇存柊
+    if (Person_In_Charge2 != '') {
+      agency_report.Person_In_Charge2__c = Person_In_Charge2;
+      //Contact contact = LightningUtil.selectContact(Person_In_Charge2)[0];
+      //LightningUtil.updateAccMaxActivityDate(contact.AccountId, reportDate);
+    } else {
+      agency_report.Person_In_Charge2__c = null;
     }
-    public static Agency_Report__c makeAgencyReport(String Department_Cateogy, String Purpose_Type, String Agency_Report_Header,
-            String Agency_Hospital, String Person_In_Charge2, String doctor, String Submit_date,
-            String Product_Category1, String Product_Category2, String Product_Category3,//SWAG-CBX68C fy 銆愬鎵樸�慏AMS绯荤粺鍛ㄦ姤妯″潡鍐呭闇�姹傚鍔� start SupportNeeds__c   ,String SupportNeedsc
-            String Result, String Opportunity, String StageName, String oppAmount, String oppOCMPrice, String Close_Forecasted_Date, String Report_Date,String SupportNeedsc)
-    {
-        Agency_Report__c agency_report = new Agency_Report__c();
-        Date week = Date.valueOf(Submit_date);
-        agency_report.Submit_date__c = week;
-        Date reportDate = Date.valueOf(Report_Date);
-        agency_report.Report_Date__c = reportDate;
 
-        // MaxActivityDate__c 鏇存柊
-        if (Person_In_Charge2 != '') {
-            agency_report.Person_In_Charge2__c = Person_In_Charge2;
-            //Contact contact = LightningUtil.selectContact(Person_In_Charge2)[0];
-            //LightningUtil.updateAccMaxActivityDate(contact.AccountId, reportDate);
-        } else {
-            agency_report.Person_In_Charge2__c = null;
-        }
+    if (Agency_Hospital != '') {
+      LightningUtil.updateAccMaxActivityDate(Agency_Hospital, week);
+    }
 
-        if (Agency_Hospital != '')  {
-            LightningUtil.updateAccMaxActivityDate(Agency_Hospital, week);
+    // READ OlympusCalendar__c
+    //OlympusCalendar__c olympus_calendar = [select Id,Date__c from OlympusCalendar__c where Date__c=:week];
+    //String olympus_calendar_id = olympus_calendar.Id;
+
+    // WRITE Agency Report__c
+    if (doctor != '') {
+      agency_report.doctor2__c = doctor;
+    } else {
+      agency_report.doctor2__c = null;
+    }
+    if (Department_Cateogy != '') {
+      agency_report.Department_Cateogy__c = Department_Cateogy;
+    }
+    if (Purpose_Type != '') {
+      agency_report.Purpose_Type__c = Purpose_Type;
+    }
+    //SWAG-CBX68C fy 銆愬鎵樸�慏AMS绯荤粺鍛ㄦ姤妯″潡鍐呭闇�姹傚鍔� start
+    if (SupportNeedsc != '') {
+      agency_report.SupportNeeds__c = SupportNeedsc;
+    }
+    //SWAG-CBX68C fy 銆愬鎵樸�慏AMS绯荤粺鍛ㄦ姤妯″潡鍐呭闇�姹傚鍔� end
+    if (Agency_Report_Header != '') {
+      agency_report.Agency_Report_Header__c = Agency_Report_Header;
+    }
+    if (Agency_Hospital != '') {
+      agency_report.Agency_Hospital__c = Agency_Hospital;
+    }
+    //if (olympus_calendar_id != '') { agency_report.Submit_date_Calendar__c = olympus_calendar_id; }
+    if (Product_Category1 != '') {
+      agency_report.Product_Category1__c = Product_Category1;
+    }
+    if (Product_Category2 != '') {
+      agency_report.Product_Category2__c = Product_Category2;
+    }
+    if (Product_Category3 != '') {
+      agency_report.Product_Category3__c = Product_Category3;
+    }
+    if (Result != '') {
+      agency_report.Result__c = Result;
+    }
+    if (Opportunity != '') {
+      agency_report.Opportunity__c = Opportunity;
+      if (
+        StageName != '' ||
+        oppAmount != '' ||
+        Close_Forecasted_Date != '' ||
+        oppOCMPrice != ''
+      ) {
+        Agency_Opportunity__c aopp = [
+          SELECT Id, StageName__c, Amount__c, Close_Forecasted_Date__c
+          FROM Agency_Opportunity__c
+          WHERE Id = :Opportunity
+        ];
+        if (StageName != '') {
+          aopp.StageName__c = StageName;
         }
-        
-        // READ OlympusCalendar__c
-        //OlympusCalendar__c olympus_calendar = [select Id,Date__c from OlympusCalendar__c where Date__c=:week];
-        //String olympus_calendar_id = olympus_calendar.Id;
-        
-        // WRITE Agency Report__c
-        if (doctor != '') { agency_report.doctor2__c = doctor; } else { agency_report.doctor2__c = null; }
-        if (Department_Cateogy != '') { agency_report.Department_Cateogy__c = Department_Cateogy; }
-        if (Purpose_Type != '') { agency_report.Purpose_Type__c = Purpose_Type; }
-        //SWAG-CBX68C fy 銆愬鎵樸�慏AMS绯荤粺鍛ㄦ姤妯″潡鍐呭闇�姹傚鍔� start
-        if (SupportNeedsc != '') { agency_report.SupportNeeds__c = SupportNeedsc; }
-        //SWAG-CBX68C fy 銆愬鎵樸�慏AMS绯荤粺鍛ㄦ姤妯″潡鍐呭闇�姹傚鍔� end
-        if (Agency_Report_Header != '') { agency_report.Agency_Report_Header__c = Agency_Report_Header; }
-        if (Agency_Hospital != '') { agency_report.Agency_Hospital__c = Agency_Hospital; }
-        //if (olympus_calendar_id != '') { agency_report.Submit_date_Calendar__c = olympus_calendar_id; }
-        if (Product_Category1 != '') { agency_report.Product_Category1__c = Product_Category1; }
-        if (Product_Category2 != '') { agency_report.Product_Category2__c = Product_Category2; }
-        if (Product_Category3 != '') { agency_report.Product_Category3__c = Product_Category3; }
-        if (Result != '') { agency_report.Result__c = Result; }
-        if (Opportunity != '') { 
-            agency_report.Opportunity__c = Opportunity; 
-            if (StageName != '' || oppAmount != '' || Close_Forecasted_Date != '' || oppOCMPrice != '') {
-                Agency_Opportunity__c aopp = [select Id, StageName__c, Amount__c, Close_Forecasted_Date__c from Agency_Opportunity__c where Id = :Opportunity];
-                if (StageName != '') {
-                    aopp.StageName__c = StageName;
-                }
-                if (String.isNotBlank(oppAmount)) {
-                    Decimal amt = Decimal.valueOf(oppAmount);
-                    aopp.Amount__c = amt;
-                }
-                if (String.isNotBlank(oppOCMPrice)) {
-                    Decimal amt = Decimal.valueOf(oppOCMPrice);
-                    aopp.OCMSale_Price__c = amt;
-                }
-                if (Close_Forecasted_Date != '') {
-                    Date closeForecastedDate = Date.valueOf(Close_Forecasted_Date);
-                    aopp.Close_Forecasted_Date__c = closeForecastedDate;
-                }
-                update aopp;
+        if (String.isNotBlank(oppAmount)) {
+          Decimal amt = Decimal.valueOf(oppAmount);
+          aopp.Amount__c = amt;
+        }
+        if (String.isNotBlank(oppOCMPrice)) {
+          Decimal amt = Decimal.valueOf(oppOCMPrice);
+          aopp.OCMSale_Price__c = amt;
+        }
+        if (Close_Forecasted_Date != '') {
+          Date closeForecastedDate = Date.valueOf(Close_Forecasted_Date);
+          aopp.Close_Forecasted_Date__c = closeForecastedDate;
+        }
+        update aopp;
+      }
+    }
+
+    system.debug(agency_report);
+    return agency_report;
+  }
+
+  @RemoteAction
+  @AuraEnabled
+  public static String editAgencyReport(
+    String Agency_Report_Id,
+    String Department_Cateogy,
+    String Purpose_Type,
+    String SupportNeedsc,
+    String Agency_Report_Header,
+    String Agency_Hospital,
+    String Person_In_Charge2,
+    String doctor,
+    String Submit_date,
+    String Product_Category1,
+    String Product_Category2,
+    String Product_Category3, //SWAG-CBX68C fy 銆愬鎵樸�慏AMS绯荤粺鍛ㄦ姤妯″潡鍐呭闇�姹傚鍔� start SupportNeeds__c  ,String SupportNeedsc
+    String Result,
+    String Opportunity,
+    String StageName,
+    String oppAmount,
+    String oppOCMPrice,
+    String Close_Forecasted_Date,
+    String Report_Date
+  ) {
+    if (String.isBlank(Agency_Report_Id)) {
+      return null;
+    } //SWAG-CBX68C fy 銆愬鎵樸�慏AMS绯荤粺鍛ㄦ姤妯″潡鍐呭闇�姹傚鍔� start SupportNeeds__c   ,SupportNeeds__c
+    // Agency_Report__c agency_report = [select Id, Name, Department_Cateogy__c, Purpose_Type__c,SupportNeeds__c, Agency_Hospital__c,
+    //                                   Person_In_Charge2__c, doctor2__c, Submit_date__c, Product_Category__c, Result__c, visitor_title__c, Opportunity__c
+    //                                   from Agency_Report__c where id=:Agency_Report_Id];
+
+    Agency_Report__c agency_report = new Agency_Report__c();
+    if (Test.isRunningTest()) {
+      List<Agency_Report__c> agency_report_tests = [
+        SELECT
+          Id,
+          Name,
+          Department_Cateogy__c,
+          Purpose_Type__c,
+          SupportNeeds__c,
+          Agency_Hospital__c,
+          Person_In_Charge2__c,
+          doctor2__c,
+          Submit_date__c,
+          Product_Category__c,
+          Result__c,
+          visitor_title__c,
+          Opportunity__c
+        FROM Agency_Report__c
+        LIMIT 1
+      ];
+      agency_report = agency_report_tests[0];
+    } else {
+      agency_report = [
+        SELECT
+          Id,
+          Name,
+          Department_Cateogy__c,
+          Purpose_Type__c,
+          SupportNeeds__c,
+          Agency_Hospital__c,
+          Person_In_Charge2__c,
+          doctor2__c,
+          Submit_date__c,
+          Product_Category__c,
+          Result__c,
+          visitor_title__c,
+          Opportunity__c
+        FROM Agency_Report__c
+        WHERE id = :Agency_Report_Id
+      ];
+    }
+
+    Date week = Date.valueOf(Submit_date);
+    agency_report.Submit_date__c = week;
+    Date reportDate = Date.valueOf(Report_Date);
+    agency_report.Report_Date__c = reportDate;
+
+    // MaxActivityDate__c 鏇存柊
+    if (Person_In_Charge2 != '') {
+      agency_report.Person_In_Charge2__c = Person_In_Charge2;
+      //Contact contact = LightningUtil.selectContact(Person_In_Charge2)[0];
+      //LightningUtil.updateAccMaxActivityDate(contact.AccountId, reportDate);
+    } else {
+      agency_report.Person_In_Charge2__c = null;
+    }
+
+    if (Agency_Hospital != '') {
+      LightningUtil.updateAccMaxActivityDate(Agency_Hospital, week);
+    }
+    system.debug('Purpose_Type+++==++===' + Purpose_Type);
+    // WRITE Agency Report__c
+    if (doctor != '') {
+      agency_report.doctor2__c = doctor;
+    } else {
+      agency_report.doctor2__c = null;
+    }
+    if (Department_Cateogy != '') {
+      agency_report.Department_Cateogy__c = Department_Cateogy;
+    } else {
+      agency_report.Department_Cateogy__c = null;
+    }
+    if (Purpose_Type != '') {
+      agency_report.Purpose_Type__c = Purpose_Type;
+    } else {
+      agency_report.Purpose_Type__c = null;
+    }
+    //SWAG-CBX68C fy 銆愬鎵樸�慏AMS绯荤粺鍛ㄦ姤妯″潡鍐呭闇�姹傚鍔� start SupportNeeds__c
+    if (SupportNeedsc != '') {
+      agency_report.SupportNeeds__c = SupportNeedsc;
+    } else {
+      agency_report.SupportNeeds__c = null;
+    }
+    if (Agency_Hospital != '') {
+      agency_report.Agency_Hospital__c = Agency_Hospital;
+    } else {
+      agency_report.Agency_Hospital__c = null;
+    }
+    if (Product_Category1 != '') {
+      agency_report.Product_Category1__c = Product_Category1;
+    } else {
+      agency_report.Product_Category1__c = null;
+    }
+    if (Product_Category2 != '') {
+      agency_report.Product_Category2__c = Product_Category2;
+    } else {
+      agency_report.Product_Category2__c = null;
+    }
+    if (Product_Category3 != '') {
+      agency_report.Product_Category3__c = Product_Category3;
+    } else {
+      agency_report.Product_Category3__c = null;
+    }
+    //if (Product_Category != '') { agency_report.Product_Category__c = Product_Category; } else { agency_report.Product_Category__c = null; }
+    if (Result != '') {
+      agency_report.Result__c = Result;
+    } else {
+      agency_report.Result__c = null;
+    }
+    //if (Opportunity != '') { agency_report.Opportunity__c = Opportunity; } else { agency_report.Opportunity__c = null; }
+    if (Opportunity != '') {
+      agency_report.Opportunity__c = Opportunity;
+      if (
+        StageName != '' ||
+        oppAmount != '' ||
+        Close_Forecasted_Date != '' ||
+        oppOCMPrice != ''
+      ) {
+        Agency_Opportunity__c aopp = [
+          SELECT Id, StageName__c, Amount__c, Close_Forecasted_Date__c
+          FROM Agency_Opportunity__c
+          WHERE Id = :Opportunity
+        ];
+        if (StageName != '') {
+          aopp.StageName__c = StageName;
+        }
+        if (String.isNotBlank(oppAmount)) {
+          Decimal amt = Decimal.valueOf(oppAmount);
+          aopp.Amount__c = amt;
+        }
+        if (String.isNotBlank(oppOCMPrice)) {
+          Decimal amt = Decimal.valueOf(oppOCMPrice);
+          aopp.OCMSale_Price__c = amt;
+        }
+        if (Close_Forecasted_Date != '') {
+          Date closeForecastedDate = Date.valueOf(Close_Forecasted_Date);
+          aopp.Close_Forecasted_Date__c = closeForecastedDate;
+        }
+        update aopp;
+      }
+    } else {
+      agency_report.Opportunity__c = null;
+    }
+    system.debug(agency_report);
+
+    agency_report = LightningUtil.updateAgencyReport(agency_report);
+
+    return agency_report.Id;
+  }
+
+  @RemoteAction
+  @AuraEnabled
+  public static List<Agency_Opportunity__c> selectOpportunityByIdAndHospitalLinkId(
+    String opportunity_id,
+    String agency_hospital_link_id
+  ) {
+    List<Agency_Opportunity__c> ret = new List<Agency_Opportunity__c>();
+
+    ret = LightningUtil.selectOpportunityByIdAndHospitalLinkId(
+      opportunity_id,
+      agency_hospital_link_id
+    );
+
+    return ret;
+  }
+
+  @RemoteAction
+  @AuraEnabled
+  public static WeeklyReportCmp getReports(String date_str, String person_str) {
+    WeeklyReportCmp li = new WeeklyReportCmp();
+    li.get_reports(date_str, person_str);
+    return li;
+  }
+
+  public void get_reports(String date_str, String person_str) {
+    // 閫卞牨銉囥兗銈裤倰鍙栧緱
+    Date week = Date.valueOf(date_str);
+    this.reports = LightningUtil.selectAgencyReport(week, person_str);
+  }
+
+  @RemoteAction
+  @AuraEnabled
+  public static List<Agency_Report__c> getReportsById(String report_id) {
+    List<Agency_Report__c> ret = new List<Agency_Report__c>();
+
+    ret = LightningUtil.selectAgencyReportById(report_id);
+
+    return ret;
+  }
+
+  // 鎵归噺娣诲姞鍛ㄦ姤by vivek start
+  @RemoteAction
+  @AuraEnabled
+  public static List<Agency_Report__c> getReportsByDate(
+    String date1,
+    String date2
+  ) {
+    Date date1_date = Date.valueOf(date1);
+    Date date2_date = Date.valueOf(date2);
+    WeeklyReportCmp li = new WeeklyReportCmp();
+    // li.get_reports(date_str, person_str);
+    // return li;
+    List<Contact> conMList = LightningUtil.selectAgencyPerson();
+    // LightningUtil.selectAgencyPerson();
+
+    System.debug('=====' + conMList);
+    // List<Agency_Report__c> reportlist = [Select Id, Name, Report_Date__c, Product_Category1__r.Name, Product_Category2__r.Name, Product_Category3__r.Name, Product_Category1__c, Product_Category2__c, Product_Category3__c, Department_Cateogy__c, Purpose_Type__c, Agency_Report_Header__c, Agency_Hospital__r.Name, Agency_Hospital__r.Hospital__c, OppName__c,
+    //                     Person_In_Charge2__c, Person_In_Charge2__r.Name, doctor2__c, doctor2__r.Name, Submit_date__c,
+    //                     Product_Category__c, Product_Category__r.Name, Result__c, visitor_title__c, Opportunity__c, Opportunity__r.Name
+    //                     From Agency_Report__c
+    //                     where Person_In_Charge2__c in :conMList and Report_Date__c >= :date1_date and Report_Date__c <= :date2_date ];
+    // return reportlist;
+    return LightningUtil.selectMAgencyReport(date1_date, date2_date, conMList);
+  }
+
+  public List<contact> selectMAgencyPerson() {
+    String login_user_id = UserInfo.getUserId();
+    // return [select id, Name, Agency_User__c from contact where Agency_User__c = true and Isactive__c = '鏈夋晥' and AccountId in (select AccountId from User where id=:login_user_id)];
+    // return [select id, Name, Agency_User__c from contact where Agency_User__c = true  and AccountId in (select AccountId from User where id=:login_user_id)];
+    return [SELECT id, Name, Agency_User__c FROM contact];
+  }
+  // fy 瀵煎叆 20220424 start
+  public class GeDatass {
+    public String dataId;
+    public String doctorDivision1;
+    //public String doctorDivision1Encrypt;         //zhj MEBG鏂版柟妗堟敼閫� 2022-11-29
+    public Integer isDelete;
+    public String name;
+    //public String nameEncrypt;                    //zhj MEBG鏂版柟妗堟敼閫� 2022-11-29
+    public String sfRecordId;
+    public String type;
+    //public String typeEncrypt;                    //zhj MEBG鏂版柟妗堟敼閫� 2022-11-29
+  }
+  @AuraEnabled
+  public static String processDataAWSId(String fileData) {
+    System.debug('fileData:::' + filedata);
+    String errorMag = '';
+    // 鍒涘缓鍛ㄦ姤
+    try {
+      if (fileData != null) {
+        String[] fileLines = new List<String>{};
+        fileLines = fileData.split('\n');
+
+        // 缁忛攢鍟嗗尰闄㈠悕绉發ist
+        List<String> ahlNameList = new List<String>();
+        //for content
+        system.debug('fileLines.size()==============>' + fileLines.size());
+        for (Integer i = 1, j = fileLines.size(); i < j; i++) {
+          List<String> inputvalues = new List<String>();
+          inputvalues = fileLines[i].split(',');
+          if (inputvalues != null) {
+            if (inputvalues[2] == '' || inputvalues[2] == null) {
+              errorMag += 'error1 绗�' + i + '琛屾暟鎹尰闄笉鑳戒负绌�';
             }
+            ahlNameList.add(inputvalues[2]);
+          }
         }
-        
-        system.debug(agency_report);
-        return agency_report;
-    }
+        // 缁忛攢鍟嗗尰闄㈢殑ocsm鍖婚櫌id鐨刲ist
+        List<String> ahlOcsmIdList = new List<String>();
+        System.debug('ahlNameList = ' + ahlNameList);
+        List<Agency_Hospital_Link__c> ahlList = [
+          SELECT id, name, Hospital__c, MaxActivityDate__c
+          FROM Agency_Hospital_Link__c
+          WHERE name = :ahlNameList AND Agency_Campaign_Obj__c = TRUE
+        ];
 
-    @RemoteAction
-    @AuraEnabled
-    public static String editAgencyReport(String Agency_Report_Id, String Department_Cateogy, String Purpose_Type,String SupportNeedsc, String Agency_Report_Header,
-                                        String Agency_Hospital, String Person_In_Charge2, String doctor, String Submit_date,
-                                        String Product_Category1, String Product_Category2, String Product_Category3, //SWAG-CBX68C fy 銆愬鎵樸�慏AMS绯荤粺鍛ㄦ姤妯″潡鍐呭闇�姹傚鍔� start SupportNeeds__c  ,String SupportNeedsc
-                                        String Result, String Opportunity, String StageName, String oppAmount, String oppOCMPrice, String Close_Forecasted_Date, String Report_Date)
-    {
-        if (String.isBlank(Agency_Report_Id)) {
-            return null;
-        }//SWAG-CBX68C fy 銆愬鎵樸�慏AMS绯荤粺鍛ㄦ姤妯″潡鍐呭闇�姹傚鍔� start SupportNeeds__c   ,SupportNeeds__c
-        // Agency_Report__c agency_report = [select Id, Name, Department_Cateogy__c, Purpose_Type__c,SupportNeeds__c, Agency_Hospital__c,
-        //                                   Person_In_Charge2__c, doctor2__c, Submit_date__c, Product_Category__c, Result__c, visitor_title__c, Opportunity__c
-        //                                   from Agency_Report__c where id=:Agency_Report_Id];
-
-        Agency_Report__c agency_report = new Agency_Report__c();
-        if(Test.isRunningTest()){
-            List<Agency_Report__c> agency_report_tests = [select Id, Name, Department_Cateogy__c, Purpose_Type__c,SupportNeeds__c, Agency_Hospital__c,
-                                          Person_In_Charge2__c, doctor2__c, Submit_date__c, Product_Category__c, Result__c, visitor_title__c, Opportunity__c
-                                          from Agency_Report__c limit 1];
-            agency_report = agency_report_tests[0];
-        }else {
-            agency_report = [select Id, Name, Department_Cateogy__c, Purpose_Type__c,SupportNeeds__c, Agency_Hospital__c,
-                                           Person_In_Charge2__c, doctor2__c, Submit_date__c, Product_Category__c, Result__c, visitor_title__c, Opportunity__c
-                                           from Agency_Report__c where id=:Agency_Report_Id];
+        for (Agency_Hospital_Link__c ahl : ahlList) {
+          ahlOcsmIdList.add(ahl.Hospital__c);
         }
-        
-        Date week = Date.valueOf(Submit_date);
-        agency_report.Submit_date__c = week;
-        Date reportDate = Date.valueOf(Report_Date);
-        agency_report.Report_Date__c = reportDate;
+        List<Agency_Contact__c> doctor2list = new List<Agency_Contact__c>();
+        System.debug('ahlOcsmIdList = ' + ahlOcsmIdList);
+        if (!Test.isRunningTest())
+          doctor2list = [
+            SELECT
+              id,
+              Name,
+              Doctor_Division1__c,
+              Type__c,
+              Agency_Hospital__c,
+              AWS_Data_Id__c
+            FROM Agency_Contact__c
+            WHERE Hospital_ID18__c = :ahlOcsmIdList
+            ORDER BY Name
+          ]; //zhj 鏂版柟妗堟敼閫� 2022-12-21 鍘绘帀Name_Encrypted__c
 
-        // MaxActivityDate__c 鏇存柊
-        if (Person_In_Charge2 != '') {
-            agency_report.Person_In_Charge2__c = Person_In_Charge2;
-            //Contact contact = LightningUtil.selectContact(Person_In_Charge2)[0];
-            //LightningUtil.updateAccMaxActivityDate(contact.AccountId, reportDate);
-        } else {
-            agency_report.Person_In_Charge2__c = null;
+        if (errorMag != '') {
+          return errorMag;
         }
-
-        if (Agency_Hospital != '')  {
-            LightningUtil.updateAccMaxActivityDate(Agency_Hospital, week);
-        }
-        system.debug('Purpose_Type+++==++==='+Purpose_Type);
-        // WRITE Agency Report__c
-        if (doctor != '') { agency_report.doctor2__c = doctor; } else { agency_report.doctor2__c = null; }
-        if (Department_Cateogy != '') { agency_report.Department_Cateogy__c = Department_Cateogy; } else { agency_report.Department_Cateogy__c = null; }
-        if (Purpose_Type != '') { agency_report.Purpose_Type__c = Purpose_Type; } else { agency_report.Purpose_Type__c = null; }
-         //SWAG-CBX68C fy 銆愬鎵樸�慏AMS绯荤粺鍛ㄦ姤妯″潡鍐呭闇�姹傚鍔� start SupportNeeds__c
-         if (SupportNeedsc != '') { agency_report.SupportNeeds__c = SupportNeedsc; } else { agency_report.SupportNeeds__c = null; }
-        if (Agency_Hospital != '') { agency_report.Agency_Hospital__c = Agency_Hospital; } else { agency_report.Agency_Hospital__c = null; }
-        if (Product_Category1 != '') { agency_report.Product_Category1__c = Product_Category1; } else { agency_report.Product_Category1__c = null; }
-        if (Product_Category2 != '') { agency_report.Product_Category2__c = Product_Category2; } else { agency_report.Product_Category2__c = null; }
-        if (Product_Category3 != '') { agency_report.Product_Category3__c = Product_Category3; } else { agency_report.Product_Category3__c = null; }
-        //if (Product_Category != '') { agency_report.Product_Category__c = Product_Category; } else { agency_report.Product_Category__c = null; }
-        if (Result != '') { agency_report.Result__c = Result; } else { agency_report.Result__c = null; }
-        //if (Opportunity != '') { agency_report.Opportunity__c = Opportunity; } else { agency_report.Opportunity__c = null; }
-        if (Opportunity != '') { 
-            agency_report.Opportunity__c = Opportunity; 
-            if (StageName != '' || oppAmount != '' || Close_Forecasted_Date != '' || oppOCMPrice != '') {
-                Agency_Opportunity__c aopp = [select Id, StageName__c, Amount__c, Close_Forecasted_Date__c from Agency_Opportunity__c where Id = :Opportunity];
-                if (StageName != '') {
-                    aopp.StageName__c = StageName;
-                }
-                if (String.isNotBlank(oppAmount)) {
-                    Decimal amt = Decimal.valueOf(oppAmount);
-                    aopp.Amount__c = amt;
-                }
-                if (String.isNotBlank(oppOCMPrice)) {
-                    Decimal amt = Decimal.valueOf(oppOCMPrice);
-                    aopp.OCMSale_Price__c = amt;
-                }
-                if (Close_Forecasted_Date != '') {
-                    Date closeForecastedDate = Date.valueOf(Close_Forecasted_Date);
-                    aopp.Close_Forecasted_Date__c = closeForecastedDate;
-                }
-                update aopp;
-            }
-        } else { agency_report.Opportunity__c = null; }
-        system.debug(agency_report);
-        
-        agency_report = LightningUtil.updateAgencyReport(agency_report);
-        
-        return agency_report.Id;
+        String doctor2listStr = JSON.serialize(doctor2list);
+        System.debug('doctor2listStr = ' + doctor2listStr);
+        return doctor2listStr;
+      }
+    } catch (Exception e) {
+      System.debug('exception' + e);
+      return e.getLineNumber() + 'exception:' + e;
     }
-    
-    @RemoteAction
-    @AuraEnabled
-    public static List<Agency_Opportunity__c> selectOpportunityByIdAndHospitalLinkId(String opportunity_id, String agency_hospital_link_id) {
-        List<Agency_Opportunity__c> ret = new List<Agency_Opportunity__c>();
-        
-        ret = LightningUtil.selectOpportunityByIdAndHospitalLinkId(opportunity_id, agency_hospital_link_id);
-        
-        return ret;
-    }
-    
-    @RemoteAction
-    @AuraEnabled
-    public static WeeklyReportCmp getReports(String date_str, String person_str) {
-        WeeklyReportCmp li = new WeeklyReportCmp();
-        li.get_reports(date_str, person_str);
-        return li;
-    }
-    
-    public void get_reports(String date_str, String person_str) {        
-        // 閫卞牨銉囥兗銈裤倰鍙栧緱
-        Date week = Date.valueOf(date_str);
-        this.reports = LightningUtil.selectAgencyReport(week, person_str);
-    }
-    
-    @RemoteAction
-    @AuraEnabled
-    public static List<Agency_Report__c> getReportsById(String report_id) {
-        List<Agency_Report__c> ret = new List<Agency_Report__c>();
-        
-        ret = LightningUtil.selectAgencyReportById(report_id);
-        
-        return ret;
-    }
-    
-    // 鎵归噺娣诲姞鍛ㄦ姤by vivek start
-    @RemoteAction
-    @AuraEnabled
-    public static List<Agency_Report__c> getReportsByDate(String date1, String date2) {
-        Date date1_date = Date.valueOf(date1);
-        Date date2_date = Date.valueOf(date2);
-        WeeklyReportCmp li = new WeeklyReportCmp();
-        // li.get_reports(date_str, person_str);
-        // return li;
-        List<Contact> conMList = LightningUtil.selectAgencyPerson();
-        // LightningUtil.selectAgencyPerson();
-
-        System.debug('====='+conMList);
-        // List<Agency_Report__c> reportlist = [Select Id, Name, Report_Date__c, Product_Category1__r.Name, Product_Category2__r.Name, Product_Category3__r.Name, Product_Category1__c, Product_Category2__c, Product_Category3__c, Department_Cateogy__c, Purpose_Type__c, Agency_Report_Header__c, Agency_Hospital__r.Name, Agency_Hospital__r.Hospital__c, OppName__c,
-        //                     Person_In_Charge2__c, Person_In_Charge2__r.Name, doctor2__c, doctor2__r.Name, Submit_date__c,
-        //                     Product_Category__c, Product_Category__r.Name, Result__c, visitor_title__c, Opportunity__c, Opportunity__r.Name
-        //                     From Agency_Report__c
-        //                     where Person_In_Charge2__c in :conMList and Report_Date__c >= :date1_date and Report_Date__c <= :date2_date ];
-        // return reportlist;
-        return LightningUtil.selectMAgencyReport(date1_date, date2_date, conMList);
-    }
-
-    public List<contact> selectMAgencyPerson() {
-        String login_user_id = UserInfo.getUserId();
-        // return [select id, Name, Agency_User__c from contact where Agency_User__c = true and Isactive__c = '鏈夋晥' and AccountId in (select AccountId from User where id=:login_user_id)];
-        // return [select id, Name, Agency_User__c from contact where Agency_User__c = true  and AccountId in (select AccountId from User where id=:login_user_id)];
-        return [select id, Name, Agency_User__c from contact];
-    }
-    // fy 瀵煎叆 20220424 start
-    public class GeDatass {
-        public String dataId;
-        public String doctorDivision1;
-        //public String doctorDivision1Encrypt;         //zhj MEBG鏂版柟妗堟敼閫� 2022-11-29
-        public Integer isDelete;
-        public String name;
-        //public String nameEncrypt;                    //zhj MEBG鏂版柟妗堟敼閫� 2022-11-29
-        public String sfRecordId;
-        public String type;
-        //public String typeEncrypt;                    //zhj MEBG鏂版柟妗堟敼閫� 2022-11-29
-    }
-    @AuraEnabled
-    public static String processDataAWSId(String fileData) {
-       System.debug('fileData:::'+filedata);
-       String errorMag = '';
-       // 鍒涘缓鍛ㄦ姤
-       try{
-            if(fileData!=null){ 
-                String[] fileLines = new String[]{};
-                fileLines = fileData.split('\n');
-              
-                // 缁忛攢鍟嗗尰闄㈠悕绉發ist
-                List<String> ahlNameList = new List<String>();
-                //for content
-                system.debug('fileLines.size()==============>'+fileLines.size());
-                for (Integer i=1,j=fileLines.size();i<j;i++){
-                    List<String> inputvalues = new List<String>();
-                    inputvalues = fileLines[i].split(',');
-                    if(inputvalues != null){
-                        if(inputvalues[2] == '' || inputvalues[2] == null){
-                            errorMag += 'error1 绗�'+i+'琛屾暟鎹尰闄笉鑳戒负绌�';
-                        }
-                        ahlNameList.add(inputvalues[2]);
-                    }
-                }
-                // 缁忛攢鍟嗗尰闄㈢殑ocsm鍖婚櫌id鐨刲ist
-                List<String> ahlOcsmIdList = new List<String>();
-                System.debug('ahlNameList = ' + ahlNameList);
-                List<Agency_Hospital_Link__c> ahlList = [select id,name,Hospital__c,MaxActivityDate__c from Agency_Hospital_Link__c where name = :ahlNameList and Agency_Campaign_Obj__c = true];
-                
-                System.debug('ahlList.size() = ' + ahlList.size());
-                for(Agency_Hospital_Link__c ahl : ahlList){
-                    ahlOcsmIdList.add(ahl.Hospital__c);
-                }
-                List<Agency_Contact__c> doctor2list = new List<Agency_Contact__c>();
-                System.debug('ahlOcsmIdList = ' + ahlOcsmIdList);
-                if(!Test.isRunningTest())
-                    doctor2list = [select id,Name,Doctor_Division1__c,Type__c,Agency_Hospital__c,AWS_Data_Id__c FROM Agency_Contact__c WHERE Hospital_ID18__c= :ahlOcsmIdList order by Name];     //zhj 鏂版柟妗堟敼閫� 2022-12-21 鍘绘帀Name_Encrypted__c
-                
-                if(errorMag != ''){
-                    return errorMag;
-                }
-                String doctor2listStr = JSON.serialize(doctor2list);
-                System.debug('doctor2list = ' + doctor2list);
-                return doctor2listStr;  
-            }
-        }catch(Exception e){
-             System.debug('exception'+e);
-             return e.getLineNumber()+'exception:'+e;   
-        }
-        return 'success';
-    }
-    // fy 瀵煎叆 20220424 end
-    @AuraEnabled// fy 瀵煎叆 20220424  start  String sobjectName,List<String> fields,
-    // public static String processData(String fileData,String Agency_ContactListjson) {
-    public static String processData(String fileData,String sobjectName,List<String> fields) {
-        DateTime now =System.now();
-        System.debug('褰撳墠鏃堕棿:::'+now);
-       System.debug('fileData:::'+filedata);
-       System.debug('sobjectName:::'+sobjectName);
-       System.debug('fields:::'+fields);
+    return 'success';
+  }
+  // fy 瀵煎叆 20220424 end
+  @AuraEnabled // fy 瀵煎叆 20220424  start  String sobjectName,List<String> fields,
+  // public static String processData(String fileData,String Agency_ContactListjson) {
+  public static String processData(
+    String fileData,
+    String sobjectName,
+    List<String> fields
+  ) {
+    DateTime now = System.now();
+    System.debug('褰撳墠鏃堕棿:::' + now);
+    System.debug('fileData:::' + filedata);
+    System.debug('sobjectName:::' + sobjectName);
+    System.debug('fields:::' + fields);
     //    System.debug('Agency_ContactListjson::::'+Agency_ContactListjson);
-       String errorMag = '';
+    String errorMag = '';
 
-       // 鍒涘缓鍛ㄦ姤
-       try{
-
-            if(fileData!=null){ 
-                // List<GeDatass> Agency_ContactList = (List<GeDatass>)JSON.deserialize(Agency_ContactListjson,List<GeDatass>.class);
-                // System.debug('Agency_ContactList::::'+Agency_ContactList);
-                // Map<String,String> Agency_ContactMap = new Map<String,String>();
-                // for(GeDatass agconobj :Agency_ContactList){
-                //     Agency_ContactMap.put(agconobj.name.replace(' ',''),agconobj.dataId);
-                // }
-                String[] fileLines = new String[]{};
-                fileLines = fileData.split('\n');
-                // 鎷呭綋鍚嶇О鐨刲ist
-                List<String> nameList = new List<String>();
-                // 鎶ュ憡鏃ョ殑list
-                List<Date> dateList = new List<Date>();
-                // List<String> s_dateList = new List<String>();
-                // 瀵煎叆鐨勬暟鎹�
-                List<List<String>> inputList = new List<List<String>>();
-                // 缁忛攢鍟嗗尰闄㈠悕绉發ist
-                List<String> ahlNameList = new List<String>();
-                // 绉戝Set
-                Set<String> departmentSet = new Set<String>();
-                // 缁忛攢鍟嗚浠峰悕绉發ist
-                // List<String> ahlOppNameList = new List<String>();
-                //for content
-                system.debug('fileLines.size()==============>'+fileLines.size());
-                for (Integer i=1,j=fileLines.size();i<j;i++){
-                    system.debug('for2022161329');
-                    List<String> inputvalues = new List<String>();
-                    inputvalues = fileLines[i].split(',');
-                    System.debug('inputvalues++'+inputvalues);
-                    if(inputvalues != null){
-                        system.debug('if2022161333');
-                        if(inputvalues[0] == '' || inputvalues[0] == null){
-                            // return 'error1 绗�'+i+'琛屾暟鎹媴褰撲笉鑳戒负绌�';
-                            errorMag += 'error1 绗�'+i+'琛屾暟鎹媴褰撲笉鑳戒负绌�';
-                            errorMag += '=';
-                        }
-                        if(inputvalues[1] == '' || inputvalues[1] == null){
-                            // return 'error1 绗�'+i+'琛屾暟鎹椿鍔ㄦ棩涓嶈兘涓虹┖';
-                            errorMag += 'error1 绗�'+i+'琛屾暟鎹椿鍔ㄦ棩涓嶈兘涓虹┖';
-                            errorMag += '=';
-                        }
-                         //SWAG-C7AASP 銆愬鎵樸�慏AMS绯荤粺鍛ㄦ姤琛ュ綍鏃堕棿璋冩暣  2022-1-10 pk start
-                         List<String> R = new List<String>();
-                         R = inputvalues[1].split('/');
-                         system.debug('R202216'+R);
-                         Date rDate = Date.newInstance(Integer.Valueof(R[0]),Integer.Valueof(R[1]),Integer.Valueof(R[2]));
-                         system.debug('rDate202216'+rDate);
-                         Date start = Date.today().addMonths(-1);
-                         Date startDay = start.toStartOfWeek();
-                         Date firstDayOfweek = System.today().toStartOfWeek();
-                         Date endDay = firstDayOfweek.addDays(6);
-                         if(rDate > endDay || rDate < startDay){
-                             system.debug('rDate >= ssDate');
-                             // return 'error1 绗�'+i+'琛屾暟鎹椿鍔ㄦ棩涓嶈兘涓虹┖';
-                             errorMag += 'error1 绗�'+i+'琛屾暟鎹�,瀵煎叆鍛ㄦ姤浠呭彲琛ユ姤鏈�杩戜竴鏈堝懆鎶�';
-                             errorMag += '=';
-                         }
-                         //SWAG-C7AASP 銆愬鎵樸�慏AMS绯荤粺鍛ㄦ姤琛ュ綍鏃堕棿璋冩暣  2022-1-10 pk end
-                        if(inputvalues[2] == '' || inputvalues[2] == null){
-                            // return 'error1 绗�'+i+'琛屾暟鎹尰闄笉鑳戒负绌�';
-                            errorMag += 'error1 绗�'+i+'琛屾暟鎹尰闄笉鑳戒负绌�';
-                            errorMag += '=';
-                        }
-                        if(inputvalues[3] == '' || inputvalues[3] == null){
-                            // return 'error1 绗�'+i+'琛屾暟鎹瀹や笉鑳戒负绌�';
-                            errorMag += 'error1 绗�'+i+'琛屾暟鎹瀹や笉鑳戒负绌�';
-                            errorMag += '=';
-                        }
-                        String departmentstr = GetDepartment_Cateogy(inputvalues[3]);
-                        if(departmentstr == 'no' && inputvalues[3] != '' && inputvalues[3] != null){
-                            // return 'error3 绗�'+i+'琛屾暟鎹瀹ら�夐」鍒楄〃鐨勫��'+inputvalues[3]+'涓嶅瓨鍦�';
-                            errorMag += 'error3 绗�'+i+'琛屾暟鎹瀹ら�夐」鍒楄〃鐨勫��'+inputvalues[3]+'涓嶅瓨鍦�';
-                            errorMag += '=';
-                        }
-                        if(inputvalues[4] == '' || inputvalues[4] == null){
-                            // return 'error1 绗�'+i+'琛屾暟鎹嫓璁夸汉涓嶈兘涓虹┖';
-                            errorMag += 'error1 绗�'+i+'琛屾暟鎹嫓璁夸汉涓嶈兘涓虹┖';
-                            errorMag += '=';
-                        }
-                        if(inputvalues[5] == '' || inputvalues[5] == null){
-                            // return 'error1 绗�'+i+'琛屾暟鎹骇鍝佸尯鍒�1涓嶈兘涓虹┖';
-                            errorMag += 'error1 绗�'+i+'琛屾暟鎹骇鍝佸尯鍒�1涓嶈兘涓虹┖';
-                            errorMag += '=';
-                        }
-                        if((inputvalues[6] != '' && inputvalues[6] != null)&& inputvalues[5] == inputvalues[6]){
-                            // return 'error1 绗�'+i+'琛屾暟鎹骇鍝佸尯鍒�1鍜屼骇鍝佸尯鍒�2鐨勫�间笉鑳介噸澶�';
-                            errorMag += 'error1 绗�'+i+'琛屾暟鎹骇鍝佸尯鍒�1鍜屼骇鍝佸尯鍒�2鐨勫�间笉鑳介噸澶�';
-                            errorMag += '=';
-                        }
-                        if((inputvalues[7] != '' && inputvalues[7] != null)&& inputvalues[5] == inputvalues[7]){
-
-
-                            // return 'error1 绗�'+i+'琛屾暟鎹骇鍝佸尯鍒�1鍜屼骇鍝佸尯鍒�3鐨勫�间笉鑳介噸澶�';
-                            errorMag += 'error1 绗�'+i+'琛屾暟鎹骇鍝佸尯鍒�1鍜屼骇鍝佸尯鍒�3鐨勫�间笉鑳介噸澶�';
-                            errorMag += '=';
-                        }
-                        if((inputvalues[6] != '' && inputvalues[6] != null) && (inputvalues[7] != '' && inputvalues[7] != null) && inputvalues[6] == inputvalues[7]){
-                            // return 'error1 绗�'+i+'琛屾暟鎹骇鍝佸尯鍒�2鍜屼骇鍝佸尯鍒�3鐨勫�间笉鑳介噸澶�';
-                            errorMag += 'error1 绗�'+i+'琛屾暟鎹骇鍝佸尯鍒�2鍜屼骇鍝佸尯鍒�3鐨勫�间笉鑳介噸澶�';
-                            errorMag += '=';
-                        }
-                        if(inputvalues[8] == '' || inputvalues[8] == null){
-                            // return 'error1 绗�'+i+'琛屾暟鎹椿鍔ㄥ尯鍒嗕笉鑳戒负绌�';
-                            errorMag += 'error1 绗�'+i+'琛屾暟鎹椿鍔ㄥ尯鍒嗕笉鑳戒负绌�';
-                            errorMag += '=';
-                        }
-                        boolean purposeType = GetPurposeType(inputvalues[8]);
-                        if(!purposeType && inputvalues[8] != '' && inputvalues[8] != null){
-                            // return 'error3 绗�'+i+'琛屾暟鎹椿鍔ㄥ尯鍒嗛�夐」鍒楄〃鐨勫��'+inputvalues[8]+'涓嶅瓨鍦�';
-                            errorMag += 'error3 绗�'+i+'琛屾暟鎹椿鍔ㄥ尯鍒嗛�夐」鍒楄〃鐨勫��'+inputvalues[8]+'涓嶅瓨鍦�';
-                            errorMag += '=';
-                        }
-                        // if(inputvalues[9] == '\r' || inputvalues[9] == null){
-                        //     return 'error1 缁撴灉涓嶈兘涓虹┖';
-                        // }
-                        if(inputvalues[8] == '璇环鎸栨帢-OPD' || inputvalues[8] == '璇环鎸栨帢-SIS' || inputvalues[8] == '璇环鎺ㄨ繘-OPD' || inputvalues[8] == '璇环鎺ㄨ繘-SIS'){
-                            System.debug(']]]]]1'+inputvalues[9]+'=====');
-                            if(inputvalues[9] == '\r'){
-
-                                // return 'error5 绗�'+i+'琛屾暟鎹綋娲诲姩鍖哄垎涓�'+inputvalues[8]+'缁撴灉涓嶈兘涓虹┖';
-                                errorMag += 'error5 绗�'+i+'琛屾暟鎹綋娲诲姩鍖哄垎涓�'+inputvalues[8]+'缁撴灉涓嶈兘涓虹┖';
-                                errorMag += '=';
-                            }
-                        }
-                        // if(inputvalues[9] != '\r' && getResultlist(inputvalues[9])){
-                        if(inputvalues[9] != '' && getResultlist(inputvalues[9])){
-                            // return 'error3 绗�'+i+'琛屾暟鎹粨鏋滈�夐」鍒楄〃鐨勫��'+inputvalues[9]+'涓嶅瓨鍦�';
-                            errorMag += 'error3 绗�'+i+'琛屾暟鎹粨鏋滈�夐」鍒楄〃鐨勫��'+inputvalues[9]+'涓嶅瓨鍦�';
-                            errorMag += '=';
-                        }
-                       system.debug('inputvalues[0]=================>'+inputvalues[0]);
-                        system.debug('inputvalues[1]=================>'+inputvalues[1]);
-                        system.debug('inputvalues[2]=================>'+inputvalues[2]);
-                        system.debug('inputvalues[3]=================>'+inputvalues[3]);
-                        system.debug('inputvalues[4]=================>'+inputvalues[4]);
-                        system.debug('inputvalues[5]=================>'+inputvalues[5]);
-                        system.debug('inputvalues[6]=================>'+inputvalues[6]);
-                        system.debug('inputvalues[7]=================>'+inputvalues[7]);
-                        system.debug('inputvalues[8]=================>'+inputvalues[8]);
-                        system.debug('inputvalues[9]=================>'+inputvalues[9]);
-                        // system.debug('inputvalues[10]=================>'+inputvalues[10]);
-
-
-                        nameList.add(inputvalues[0]);
-                        dateList.add(Date.valueOf(inputvalues[1].replace('/','-')));
-                        ahlNameList.add(inputvalues[2]);
-                        departmentSet.add('%'+GetDepartment_Cateogy(inputvalues[3])+'%'+'-'+GetEPurposeType(inputvalues[8]));
-                        inputList.add(inputvalues);
-                    }
-                }
-                system.debug('snduksbdnjsvbdskjv');
-                // 鎷呭綋鍚嶇О鍖归厤鐨刴ap
-                Map<String,String> nameIdMap = new Map<String,String>();
-                Map<String,String> nameConMap = new Map<String,String>();
-                // 缁忛攢鍟嗗尰闄㈠悕绉板尮閰嶇殑map
-                Map<String,Agency_Hospital_Link__c> ahlMap = new Map<String,Agency_Hospital_Link__c>();
-                // 浜у搧鍖哄垎鐨刴ap
-                Map<String,String> protypeMap = new Map<String,String>();
-                // 缁忛攢鍟嗗尰闄㈢殑ocsm鍖婚櫌id鐨刲ist
-                List<String> ahlOcsmIdList = new List<String>();
-                // 缁忛攢鍟嗗尰闄d鐨凩ist
-                List<String> ahlIdList = new List<String>();
-                // 鑾峰彇姣忓懆绗竴澶╃殑map
-                Map<Date,Date> dateMap = new Map<Date,Date>();
-                // 鏍规嵁鏃ユ湡鑾峰彇olympus鏃ュ巻id鐨刴ap
-                Map<Date,String> dateIdMap = new Map<Date,String>();
-                // 鏍规嵁缁忛攢鍟嗗尰闄㈢殑ocsm鍖婚櫌鑾峰彇鐨勬墍鏈�.瀹㈡埛浜哄憳鐨勪俊鎭殑鍚嶇О鍜宨d鐨刴ap
-                Map<String,String> doctor2Map = new Map<String,String>();
-                // 缁忛攢鍟嗚浠风殑map
-                Map<String,Agency_Opportunity__c> aoMap = new Map<String,Agency_Opportunity__c>();
-                // 绉戝鍜屼骇鍝佸尯鍒嗗叧绯籱ap
-                Map<String,List<Map<String,String>>> impProMap = new  Map<String,List<Map<String,String>>>();
-                impProMap = getImplProductList(departmentSet);
-                System.debug('---===---===---==='+impProMap);
-                // return nameList[0];
-                // List<Contact> conList = [select id,name from Contact where name = :nameList];
-                // List<Contact> conList = [select id,name from Contact];
-                List<Contact> conList = LightningUtil.selectAgencyPerson();
-                System.debug('---===---===---====='+conList);
-                List<OlympusCalendar__c> olympusDateList = [select Id,Date__c,FirstDayOfWeek__c,DayOfTheWeek__c from OlympusCalendar__c where Date__c= :dateList ];
-                // test鐢�
-                // String testuse = '';
-                // testuse += '====='+ahlNameList;
-                List<Agency_Hospital_Link__c> ahlList = [select id,name,Hospital__c,MaxActivityDate__c from Agency_Hospital_Link__c where name = :ahlNameList and Agency_Campaign_Obj__c = true];
-                // List<Agency_Hospital_Link__c> ahlList = [select id,name,Hospital__c,MaxActivityDate__c from Agency_Hospital_Link__c ];
-                // List<ProductTypes__c> proTypeList = [select id,name from ProductTypes__c];
-                for(OlympusCalendar__c olym : olympusDateList){
-                    if(olym.DayOfTheWeek__c == 'Sun'){
-                        dateMap.put(olym.Date__c, olym.Date__c.addDays(1));
-                    }
-                    else{
-                        dateMap.put(olym.Date__c, olym.FirstDayOfWeek__c);
-                    }
-                }
-                System.debug('x'+dateMap);
-                List<OlympusCalendar__c> olympusIdList = [select Id,Date__c,FirstDayOfWeek__c from OlympusCalendar__c where Date__c= :dateMap.values()];
-                for(OlympusCalendar__c olym : olympusIdList){
-                    dateIdMap.put(olym.FirstDayOfWeek__c, olym.id);
-                }
-                System.debug('dateIdMap===='+dateIdMap);
-                for(Contact con :conList){
-                    nameIdMap.put(con.Name.replace(' ',''), con.Id);
-                    nameConMap.put(con.Id, con.Name);
-                }
-                // testuse += '======'+ahlList;
-                // return testuse;
-                for(Agency_Hospital_Link__c ahl : ahlList){
-                    ahlMap.put(ahl.Name, ahl);
-                    ahlOcsmIdList.add(ahl.Hospital__c);
-                    ahlIdList.add(ahl.Id);
-                }
-                // for(ProductTypes__c protype : proTypeList){
-                //     protypeMap.put(protype.Name, protype.Id);
-                // }
-                //fy 20220424 start AWS_Data_Id__c
-                if(!Test.isRunningTest()){
-                    List<Agency_Contact__c> doctor2list = [select id,Name,Doctor_Division1__c,Type__c,Agency_Hospital__c,AWS_Data_Id__c FROM Agency_Contact__c WHERE Hospital_ID18__c= :ahlOcsmIdList order by Name];     //zhj 鏂版柟妗堟敼閫� 2022-12-21 鍘绘帀Name_Encrypted__c
-                    for(Agency_Contact__c ac : doctor2list){
-                        //fy 20220424 start
-                        // doctor2Map.put(ac.AWS_Data_Id__c, ac.Id);
-                        // doctor2Map.put(ac.Name.replace(' ',''), ac.Id);
-                        //doctor2Map.put(ac.Name_Encrypted__c, ac.Id);
-                        doctor2Map.put(ac.AWS_Data_Id__c, ac.Id);           //zhj 鏂版柟妗堟敼閫� 涓嶅啀瀛樼殑nameEncrpt鑰屾槸awsdataid 2022-12-21
-                        //fy 20220424 end
-                    }
-                }
-                
-
-                
-                // List<Agency_Opportunity__c> aoList = [select id,name,StageName__c,Amount__c,OCMSale_Price__c,Close_Forecasted_Date__c,Agency_Hospital__c from Agency_Opportunity__c where Agency_Hospital__c = :ahlIdList and name = :ahlOppNameList];
-                // for(Agency_Opportunity__c ao : aoList){
-                //     aoMap.put(ao.Name, ao);
-                // }
-                System.debug('nameIdMap===='+nameIdMap);
-                // 鍒涘缓鍛ㄦ姤
-                List<Agency_Report_Header__c> agency_report_headerlist = new List<Agency_Report_Header__c>();
-                Map<String,Agency_Report_Header__c> agency_report_headerMap = new Map<String,Agency_Report_Header__c>();
-                for(List<String> lineList :inputList){
-                    Date week = Date.today();
-                    String s_agency = null;
-                    String s_agencyname = null;
-                    System.debug('dateMap===='+dateMap);
-                    // System.debug('lineList[0]====涓嶇瓑浜庣┖'+lineList[1]);
-                    if(dateMap.get(Date.valueOf(lineList[1].replace('/','-'))) != null){
-                        System.debug('dateMap====涓嶇瓑浜庣┖');
-                        week = dateMap.get(Date.valueOf(lineList[1].replace('/','-')));
-                        System.debug('===='+week);
-                    }
-                    System.debug('lineList[0].replace()'+lineList[0].replace(' ',''));
-                    if(nameIdMap.get(lineList[0].replace(' ','')) != null){
-                        System.debug('nameIdMap====涓嶇瓑浜庣┖');
-                        s_agency = nameIdMap.get(lineList[0].replace(' ',''));
-                        s_agencyname = nameConMap.get(nameIdMap.get(lineList[0].replace(' ','')));
-                        System.debug('===='+s_agency);
-                    }
-                    // if(s_agency == null || s_agencyname == null){
-                    //     // return 'error0 鎷呭綋 '+lineList[0]+'濉啓涓嶆纭�';
-                    //     errorMag += 'error0 鎷呭綋 '+lineList[0]+'涓嶅瓨鍦�';
-                    //     errorMag += '=';
-                    // }
-                    Agency_Report_Header__c agency_report_header = new Agency_Report_Header__c();
-                    // agency_report_header.Name = lineList[0] + ' (' + week.format() + ')';
-                    agency_report_header.Name = s_agencyname + ' (' + week.format().replace('/','-') + ')';
-                    agency_report_header.HeaderInputKey__c = createHeader(week,s_agency);
-                    agency_report_header.Week__c = week;
-                    agency_report_header.Agency_Person2__c = s_agency;
-                    if(dateIdMap.containsKey(week)){
-                        agency_report_header.OlympusDate__c = dateIdMap.get(week);
-                    }
-                    if(s_agencyname != null && s_agencyname != '' && s_agencyname != 'null'){
-                        agency_report_headerMap.put(agency_report_header.HeaderInputKey__c, agency_report_header);
-                    }
-                    
-                }
-                agency_report_headerlist = agency_report_headerMap.values();
-                System.debug('==========='+agency_report_headerlist+'');
-                // upsert agency_report_headerlist Agency_Report_Header__c.HeaderInputKey__c;
-                if(agency_report_headerlist.size() > 0){
-                    LightningUtil.upsertMAgencyReportHeader(agency_report_headerlist);
-				}
-                
-                List<Agency_Report__c> arList = new List<Agency_Report__c>();
-                Integer hang = 1;
-                for(List<String> lineList :inputList){
-                    // 鍒涘缓鍛ㄦ姤鏄庣粏
-                    Date week = null;
-                    String s_agency = null;
-                    System.debug('dateMap===='+dateMap);
-                    System.debug('lineList[0]====涓嶇瓑浜庣┖'+lineList[1]);
-                    if(dateMap.get(Date.valueOf(lineList[1].replace('/','-'))) != null){
-                        System.debug('dateMap====涓嶇瓑浜庣┖');
-                        week = dateMap.get(Date.valueOf(lineList[1].replace('/','-')));
-                        System.debug('===='+week);
-                    }
-                    if(nameIdMap.get(lineList[0].replace(' ','')) != null){
-                        System.debug('nameIdMap====涓嶇瓑浜庣┖');
-                        s_agency = nameIdMap.get(lineList[0].replace(' ',''));
-                        System.debug('===='+s_agency);
-                    }
-
-                    Agency_Report__c agencyReport = new Agency_Report__c();
-                    if(week == null && lineList[1] != '' && lineList[1] != null){
-                        // return 'error2 绗�'+hang+'琛屾暟鎹姤鍛婃棩'+lineList[1]+'濉啓鏈夎';
-                        errorMag += 'error2 绗�'+hang+'琛屾暟鎹姤鍛婃棩'+lineList[1]+'濉啓鏈夎';
-                        errorMag += '=';
-                    }
-                    agencyReport.Submit_date__c = week;   // 鎻愬嚭鍛�
-                    if((s_agency == null || s_agency == '')&& lineList[0] != '' && lineList[0] != null){
-                        // return 'error2 绗�'+hang+'琛屾暟鎹媴褰�'+lineList[0]+'涓嶅瓨鍦�';
-                        errorMag += 'error2 绗�'+hang+'琛屾暟鎹媴褰�'+lineList[0]+'涓嶅瓨鍦�';
-                        errorMag += '=';
-                    }
-                    agencyReport.Person_In_Charge2__c = s_agency;  // 鎷呭綋
-                    if(lineList[1] != null && lineList[1] != ''){
-                        agencyReport.Report_Date__c = Date.valueOf(lineList[1].replace('/','-')); // 娲诲姩鏃�
-                    }
-                    if(ahlMap.containsKey(lineList[2])){
-                        agencyReport.Agency_Hospital__c = ahlMap.get(lineList[2]).Id; //缁忛攢鍟嗗尰闄�
-                        // 鏇存柊缁忛攢鍟嗗尰闄㈢殑鏈�鏂板懆
-                        ahlMap.get(lineList[2]).MaxActivityDate__c = week;
-                    }else{
-                        if(lineList[2] != '' && lineList[2] != null){
-
-                            // return 'error2 绗�'+hang+'琛屾暟鎹粡閿�鍟嗗尰闄�'+lineList[2]+'涓嶅瓨鍦�';
-                            errorMag += 'error2 绗�'+hang+'琛屾暟鎹粡閿�鍟嗗尰闄�'+lineList[2]+'涓嶅瓨鍦�';
-                            errorMag += '=';
-                        }
-                        
-                    }
-                    
-                    String departmentE = GetDepartment_Cateogy(lineList[3]);
-                    if(departmentE != 'no'){
-                        agencyReport.Department_Cateogy__c = departmentE;  // 绉戝
-                    }else{
-                        // return 'error2 绗�'+hang+'琛屾暟鎹瀹�'+lineList[3]+'涓嶅瓨鍦�';
-                        // errorMag += 'error2 绗�'+hang+'琛屾暟鎹瀹�'+lineList[3]+'涓嶅瓨鍦�';
-                        // errorMag += '=';
-                    }
-                    //fy 20220424 start
-                    // if(doctor2Map.containsKey(lineList[4].replace(' ',''))){
-                    if(doctor2Map.containsKey(lineList[4])){
-                    // if(Agency_ContactMap.containsKey(lineList[4].replace(' ',''))){
-                    //     if(doctor2Map.containsKey(Agency_ContactMap.get(lineList[4].replace(' ','')))){
-                            // agencyReport.doctor2__c = doctor2Map.get(lineList[4].replace(' ','')); // 鎷滆浜�
-                            agencyReport.doctor2__c = doctor2Map.get(lineList[4]); // 鎷滆浜�
-                            // agencyReport.doctor2__c = doctor2Map.get(Agency_ContactMap.get(lineList[4].replace(' ',''))); // 鎷滆浜�
-                        // }
-                    }else{
-                        if(lineList[4] != '' && lineList[4] != null){
-                            // return 'error2 绗�'+hang+'琛屾暟鎹嫓璁夸汉'+lineList[4]+'涓嶅瓨鍦�';
-                            errorMag += 'error2 绗�'+hang+'琛屾暟鎹嫓璁夸汉'+lineList[4]+'涓嶅瓨鍦�';
-                            errorMag += '=';
-                        }
-                        
-                    }
-
-                    if(GetPurposeType(lineList[8])){
-                        agencyReport.Purpose_Type__c = lineList[8]; // 娲诲姩鍖哄垎
-                    }else{
-                        // return 'error3 绗�'+hang+'琛屾暟鎹椿鍔ㄥ尯鍒嗛�夐」鍒楄〃鍊�'+lineList[8]+'涓嶅瓨鍦�';
-                        // errorMag += 'error3 绗�'+hang+'琛屾暟鎹椿鍔ㄥ尯鍒嗛�夐」鍒楄〃鍊�'+lineList[8]+'涓嶅瓨鍦�';
-                        // errorMag += '=';
-                    }
-                    // 绉戝浜у搧鍖哄垎鍏崇郴鍒ゆ柇
-                    // 濡傛灉鑳芥壘鍒帮紝灏辨槸姝g‘鐨�
-                    String departandprokey = '%'+GetDepartment_Cateogy(lineList[3])+'%'+'-'+GetEPurposeType(lineList[8]);
-                    System.debug('---===---===---==='+departandprokey);
-                    if(impProMap.containsKey(departandprokey)){
-                        System.debug('---===---===---==='+ifTrueProduct(impProMap.get(departandprokey),lineList[5]));
-                        if(ifTrueProduct(impProMap.get(departandprokey),lineList[5]) != ''){
-                            System.debug(']]]涓嶇瓑浜庣┖杩涘叆');
-                            agencyReport.Product_Category1__c = ifTrueProduct(impProMap.get(departandprokey),lineList[5]);
-                        }else{
-                            System.debug(']]]绛変簬绌鸿繘鍏�');
-                            // return 'error4 绗�'+hang+'琛屾暟鎹骇鍝佸尯鍒�1鐨勮祴鍊间笉姝g‘'+lineList[5];
-                            errorMag += 'error4 绗�'+hang+'琛屾暟鎹骇鍝佸尯鍒�1鐨勮祴鍊间笉姝g‘'+lineList[5];
-                            errorMag += '=';
-                        }
-                        if(lineList[6] != '' && lineList[6] != null){
-                            if(ifTrueProduct(impProMap.get(departandprokey),lineList[6]) != ''){
-                                agencyReport.Product_Category2__c = ifTrueProduct(impProMap.get(departandprokey),lineList[6]);
-                            }else{
-                                // return 'error4 绗�'+hang+'琛屾暟鎹骇鍝佸尯鍒�2鐨勮祴鍊间笉姝g‘'+lineList[6];
-                                errorMag += 'error4 绗�'+hang+'琛屾暟鎹骇鍝佸尯鍒�2鐨勮祴鍊间笉姝g‘'+lineList[6];
-                                errorMag += '=';
-                            }
-                        }
-                        if(lineList[7] != '' && lineList[7] != null){
-                            if(ifTrueProduct(impProMap.get(departandprokey),lineList[7]) != ''){
-                                agencyReport.Product_Category3__c = ifTrueProduct(impProMap.get(departandprokey),lineList[7]);
-                            }else{
-                                // return 'error4 绗�'+hang+'琛屾暟鎹骇鍝佸尯鍒�3鐨勮祴鍊间笉姝g‘'+lineList[7];
-                                errorMag += 'error4 绗�'+hang+'琛屾暟鎹骇鍝佸尯鍒�3鐨勮祴鍊间笉姝g‘'+lineList[7];
-                                errorMag += '=';
-                            }
-                        }
-                    }
-                    
-                    
-                    // 閫氳繃map 绉戝锛屼骇鍝佸尯鍒嗗悕 鍒ゆ柇鍙栧�兼槸鍚︾鍚堣姹�
-                    // if(protypeMap.containsKey(lineList[5])){
-                    //     agencyReport.Product_Category1__c = protypeMap.get(lineList[5]);// 浜у搧鍖哄垎1
-                    // }
-                    // if(protypeMap.containsKey(lineList[6])){
-                    //     agencyReport.Product_Category2__c = protypeMap.get(lineList[6]);// 浜у搧鍖哄垎2
-                    // }
-                    // if(protypeMap.containsKey(lineList[7])){
-                    //     agencyReport.Product_Category3__c = protypeMap.get(lineList[7]);// 浜у搧鍖哄垎3
-                    // }
-                    agencyReport.Result__c = lineList[9];
-                    if(lineList.size()==11){
-                        if(lineList[10] != null && lineList[10] != ''){
-                            agencyReport.SupportNeeds__c = lineList[10];
-                        }
-                    }
-                    String headerStr = createHeader(week,s_agency);
-                    if(agency_report_headerMap.containsKey(headerStr)){
-                        agencyReport.Agency_Report_Header__c = agency_report_headerMap.get(headerStr).Id; // 鍛ㄦ姤涓�瑙�
-                    }
-                    // if(aoMap.containsKey(lineList[6])){
-                    //     agencyReport.Opportunity__c = aoMap.get(lineList[6]).Id; // 缁忛攢鍟嗚浠�
-                    //     // 缁忛攢鍟嗚浠锋洿鏂板瓧娈�
-                    //     aoMap.get(lineList[6]).StageName__c = lineList[5]; // 璇环闃舵
-                    //     aoMap.get(lineList[6]).Amount__c = Decimal.valueOf(lineList[6]); // 鍖婚櫌閲囪喘棰勭畻(鍚◣,鍏�)
-                    //     aoMap.get(lineList[6]).OCMSale_Price__c = Decimal.valueOf(lineList[7]); // 璁㈣揣閲戦(鍚◣,鍏�)
-                    //     aoMap.get(lineList[6]).Close_Forecasted_Date__c = Date.valueOf(lineList[8].replace('/','-')); // 棰勬祴浜嶰LY绛剧害鏃�
-                    // }
-                    hang++;
-                    arList.add(agencyReport);
-                }
-
-                if(errorMag != ''){
-                    return errorMag;
-                }
-
-                // 鏇存柊缁忛攢鍟嗘剰鎰跨殑鏈�鏂板懆
-                if(ahlMap.values().size() > 0 ){
-                    update ahlMap.values();
-                }
-                // 鏇存柊缁忛攢鍟嗚浠�
-                // if(aoMap.values().size() > 0 ){
-                //     update aoMap.values();
-                // }
-                // 鏂板鍛ㄦ姤鏄庣粏
-                if(arList.size() > 0 ){
-                    // insert arList;
-                    LightningUtil.insertMAgencyReport(arList);
-                }
-                
-
+    // 鍒涘缓鍛ㄦ姤
+    try {
+      if (fileData != null) {
+        // List<GeDatass> Agency_ContactList = (List<GeDatass>)JSON.deserialize(Agency_ContactListjson,List<GeDatass>.class);
+        // System.debug('Agency_ContactList::::'+Agency_ContactList);
+        // Map<String,String> Agency_ContactMap = new Map<String,String>();
+        // for(GeDatass agconobj :Agency_ContactList){
+        //     Agency_ContactMap.put(agconobj.name.replace(' ',''),agconobj.dataId);
+        // }
+        String[] fileLines = new List<String>{};
+        fileLines = fileData.split('\n');
+        // 鎷呭綋鍚嶇О鐨刲ist
+        List<String> nameList = new List<String>();
+        // 鎶ュ憡鏃ョ殑list
+        List<Date> dateList = new List<Date>();
+        // List<String> s_dateList = new List<String>();
+        // 瀵煎叆鐨勬暟鎹�
+        List<List<String>> inputList = new List<List<String>>();
+        // 缁忛攢鍟嗗尰闄㈠悕绉發ist
+        List<String> ahlNameList = new List<String>();
+        // 绉戝Set
+        Set<String> departmentSet = new Set<String>();
+        // 缁忛攢鍟嗚浠峰悕绉發ist
+        // List<String> ahlOppNameList = new List<String>();
+        //for content
+        system.debug('fileLines.size()==============>' + fileLines.size());
+        for (Integer i = 1, j = fileLines.size(); i < j; i++) {
+          system.debug('for2022161329');
+          List<String> inputvalues = new List<String>();
+          inputvalues = fileLines[i].split(',');
+          System.debug('inputvalues++' + inputvalues);
+          if (inputvalues != null) {
+            system.debug('if2022161333');
+            if (inputvalues[0] == '' || inputvalues[0] == null) {
+              // return 'error1 绗�'+i+'琛屾暟鎹媴褰撲笉鑳戒负绌�';
+              errorMag += 'error1 绗�' + i + '琛屾暟鎹媴褰撲笉鑳戒负绌�';
+              errorMag += '=';
             }
-            return 'success';  
-        }catch(Exception e){
-             System.debug('exception'+e);
-             return e.getLineNumber()+'exception:'+e;   
-        }
-        return 'success';
-    }
-
-    // 鍒涘缓鍞竴閿�
-    public static String createHeader(Date s_date,String nameid){
-        String str = s_date.format();
-        String str1 = str.replace('/', '');
-        return nameid+':'+str1;
-    }
-
-    // 绉戝瀵瑰簲缈昏瘧
-    public static String GetDepartment_Cateogy(String department){
-        String departmentE = 'no';
-        if(department == '鍛煎惛绉�'){
-            departmentE = 'BF';
-        }
-        if(department == '鑰抽蓟鍠夌'){
-            departmentE = 'ENT';
-        }
-        if(department == 'ET鑰楁潗'){
-            departmentE = 'ET';
-        }
-        if(department == '娑堝寲绉�'){
-            departmentE = 'GI';
-        }
-        if(department == '鏅绉�'){
-            departmentE = 'GS';
-        }
-        if(department == '濡囩'){
-            departmentE = 'GYN';
-        }
-        if(department == '鍏朵粬'){
-            departmentE = 'OTH';
-        }
-        if(department == '娉屽翱绉�'){
-            departmentE = 'URO';
-        }
-        return departmentE;
-    }
-
-    // 鍒ゆ柇娲诲姩鍒嗗尯鏄惁瀛樺湪
-    public static boolean GetPurposeType(String purposeType){
-        Schema.DescribeFieldResult fieldResult = Agency_Report__c.Purpose_Type__c.getDescribe();
-        List<Schema.PicklistEntry> ple = fieldResult.getPicklistValues();
-        for( Schema.PicklistEntry pickListVal : ple){
-            if(pickListVal.getValue() == purposeType){
-                return true;
+            if (inputvalues[1] == '' || inputvalues[1] == null) {
+              // return 'error1 绗�'+i+'琛屾暟鎹椿鍔ㄦ棩涓嶈兘涓虹┖';
+              errorMag += 'error1 绗�' + i + '琛屾暟鎹椿鍔ㄦ棩涓嶈兘涓虹┖';
+              errorMag += '=';
             }
-        }
-        return false;
-    }
-    public static boolean getResultlist(String resultlist){
-        system.debug('resultlist===============>'+resultlist);
-        Schema.DescribeFieldResult fieldResult = Agency_Report__c.Result__c.getDescribe();
-        List<Schema.PicklistEntry> ple = fieldResult.getPicklistValues();
-        for( Schema.PicklistEntry pickListVal : ple){
-            System.debug('weixiao'+resultlist.trim()+'111111'+pickListVal.getValue()+'222222');
-            string temp = string.ValueOf(pickListVal.getValue());
-            if(temp.equals(resultlist.trim())){
-            // if(pickListVal.getValue().equals(resultlist)){
-                System.debug('weixiaoweixiao'+resultlist+''+pickListVal.getValue());
-                return false;
+            //SWAG-C7AASP 銆愬鎵樸�慏AMS绯荤粺鍛ㄦ姤琛ュ綍鏃堕棿璋冩暣  2022-1-10 pk start
+            List<String> R = new List<String>();
+            R = inputvalues[1].split('/');
+            system.debug('R202216' + R);
+            Date rDate = Date.newInstance(
+              Integer.Valueof(R[0]),
+              Integer.Valueof(R[1]),
+              Integer.Valueof(R[2])
+            );
+            system.debug('rDate202216' + rDate);
+            Date start = Date.today().addMonths(-1);
+            Date startDay = start.toStartOfWeek();
+            Date firstDayOfweek = System.today().toStartOfWeek();
+            Date endDay = firstDayOfweek.addDays(6);
+            if (rDate > endDay || rDate < startDay) {
+              system.debug('rDate >= ssDate');
+              // return 'error1 绗�'+i+'琛屾暟鎹椿鍔ㄦ棩涓嶈兘涓虹┖';
+              errorMag +=
+                'error1 绗�' +
+                i +
+                '琛屾暟鎹�,瀵煎叆鍛ㄦ姤浠呭彲琛ユ姤鏈�杩戜竴鏈堝懆鎶�';
+              errorMag += '=';
             }
+            //SWAG-C7AASP 銆愬鎵樸�慏AMS绯荤粺鍛ㄦ姤琛ュ綍鏃堕棿璋冩暣  2022-1-10 pk end
+            if (inputvalues[2] == '' || inputvalues[2] == null) {
+              // return 'error1 绗�'+i+'琛屾暟鎹尰闄笉鑳戒负绌�';
+              errorMag += 'error1 绗�' + i + '琛屾暟鎹尰闄笉鑳戒负绌�';
+              errorMag += '=';
+            }
+            if (inputvalues[3] == '' || inputvalues[3] == null) {
+              // return 'error1 绗�'+i+'琛屾暟鎹瀹や笉鑳戒负绌�';
+              errorMag += 'error1 绗�' + i + '琛屾暟鎹瀹や笉鑳戒负绌�';
+              errorMag += '=';
+            }
+            String departmentstr = GetDepartment_Cateogy(inputvalues[3]);
+            if (
+              departmentstr == 'no' &&
+              inputvalues[3] != '' &&
+              inputvalues[3] != null
+            ) {
+              // return 'error3 绗�'+i+'琛屾暟鎹瀹ら�夐」鍒楄〃鐨勫��'+inputvalues[3]+'涓嶅瓨鍦�';
+              errorMag +=
+                'error3 绗�' +
+                i +
+                '琛屾暟鎹瀹ら�夐」鍒楄〃鐨勫��' +
+                inputvalues[3] +
+                '涓嶅瓨鍦�';
+              errorMag += '=';
+            }
+            if (inputvalues[4] == '' || inputvalues[4] == null) {
+              // return 'error1 绗�'+i+'琛屾暟鎹嫓璁夸汉涓嶈兘涓虹┖';
+              errorMag += 'error1 绗�' + i + '琛屾暟鎹嫓璁夸汉涓嶈兘涓虹┖';
+              errorMag += '=';
+            }
+            if (inputvalues[5] == '' || inputvalues[5] == null) {
+              // return 'error1 绗�'+i+'琛屾暟鎹骇鍝佸尯鍒�1涓嶈兘涓虹┖';
+              errorMag += 'error1 绗�' + i + '琛屾暟鎹骇鍝佸尯鍒�1涓嶈兘涓虹┖';
+              errorMag += '=';
+            }
+            if (
+              (inputvalues[6] != '' && inputvalues[6] != null) &&
+              inputvalues[5] == inputvalues[6]
+            ) {
+              // return 'error1 绗�'+i+'琛屾暟鎹骇鍝佸尯鍒�1鍜屼骇鍝佸尯鍒�2鐨勫�间笉鑳介噸澶�';
+              errorMag +=
+                'error1 绗�' +
+                i +
+                '琛屾暟鎹骇鍝佸尯鍒�1鍜屼骇鍝佸尯鍒�2鐨勫�间笉鑳介噸澶�';
+              errorMag += '=';
+            }
+            if (
+              (inputvalues[7] != '' && inputvalues[7] != null) &&
+              inputvalues[5] == inputvalues[7]
+            ) {
+              // return 'error1 绗�'+i+'琛屾暟鎹骇鍝佸尯鍒�1鍜屼骇鍝佸尯鍒�3鐨勫�间笉鑳介噸澶�';
+              errorMag +=
+                'error1 绗�' +
+                i +
+                '琛屾暟鎹骇鍝佸尯鍒�1鍜屼骇鍝佸尯鍒�3鐨勫�间笉鑳介噸澶�';
+              errorMag += '=';
+            }
+            if (
+              (inputvalues[6] != '' &&
+              inputvalues[6] != null) &&
+              (inputvalues[7] != '' &&
+              inputvalues[7] != null) &&
+              inputvalues[6] == inputvalues[7]
+            ) {
+              // return 'error1 绗�'+i+'琛屾暟鎹骇鍝佸尯鍒�2鍜屼骇鍝佸尯鍒�3鐨勫�间笉鑳介噸澶�';
+              errorMag +=
+                'error1 绗�' +
+                i +
+                '琛屾暟鎹骇鍝佸尯鍒�2鍜屼骇鍝佸尯鍒�3鐨勫�间笉鑳介噸澶�';
+              errorMag += '=';
+            }
+            if (inputvalues[8] == '' || inputvalues[8] == null) {
+              // return 'error1 绗�'+i+'琛屾暟鎹椿鍔ㄥ尯鍒嗕笉鑳戒负绌�';
+              errorMag += 'error1 绗�' + i + '琛屾暟鎹椿鍔ㄥ尯鍒嗕笉鑳戒负绌�';
+              errorMag += '=';
+            }
+            boolean purposeType = GetPurposeType(inputvalues[8]);
+            if (
+              !purposeType &&
+              inputvalues[8] != '' &&
+              inputvalues[8] != null
+            ) {
+              // return 'error3 绗�'+i+'琛屾暟鎹椿鍔ㄥ尯鍒嗛�夐」鍒楄〃鐨勫��'+inputvalues[8]+'涓嶅瓨鍦�';
+              errorMag +=
+                'error3 绗�' +
+                i +
+                '琛屾暟鎹椿鍔ㄥ尯鍒嗛�夐」鍒楄〃鐨勫��' +
+                inputvalues[8] +
+                '涓嶅瓨鍦�';
+              errorMag += '=';
+            }
+            // if(inputvalues[9] == '\r' || inputvalues[9] == null){
+            //     return 'error1 缁撴灉涓嶈兘涓虹┖';
+            // }
+            if (
+              inputvalues[8] == '璇环鎸栨帢-OPD' ||
+              inputvalues[8] == '璇环鎸栨帢-SIS' ||
+              inputvalues[8] == '璇环鎺ㄨ繘-OPD' ||
+              inputvalues[8] == '璇环鎺ㄨ繘-SIS'
+            ) {
+              System.debug(']]]]]1' + inputvalues[9] + '=====');
+              if (inputvalues[9] == '\r') {
+                // return 'error5 绗�'+i+'琛屾暟鎹綋娲诲姩鍖哄垎涓�'+inputvalues[8]+'缁撴灉涓嶈兘涓虹┖';
+                errorMag +=
+                  'error5 绗�' +
+                  i +
+                  '琛屾暟鎹綋娲诲姩鍖哄垎涓�' +
+                  inputvalues[8] +
+                  '缁撴灉涓嶈兘涓虹┖';
+                errorMag += '=';
+              }
+            }
+            // if(inputvalues[9] != '\r' && getResultlist(inputvalues[9])){
+            if (inputvalues[9] != '' && getResultlist(inputvalues[9])) {
+              // return 'error3 绗�'+i+'琛屾暟鎹粨鏋滈�夐」鍒楄〃鐨勫��'+inputvalues[9]+'涓嶅瓨鍦�';
+              errorMag +=
+                'error3 绗�' +
+                i +
+                '琛屾暟鎹粨鏋滈�夐」鍒楄〃鐨勫��' +
+                inputvalues[9] +
+                '涓嶅瓨鍦�';
+              errorMag += '=';
+            }
+            system.debug('inputvalues[0]=================>' + inputvalues[0]);
+            system.debug('inputvalues[1]=================>' + inputvalues[1]);
+            system.debug('inputvalues[2]=================>' + inputvalues[2]);
+            system.debug('inputvalues[3]=================>' + inputvalues[3]);
+            system.debug('inputvalues[4]=================>' + inputvalues[4]);
+            system.debug('inputvalues[5]=================>' + inputvalues[5]);
+            system.debug('inputvalues[6]=================>' + inputvalues[6]);
+            system.debug('inputvalues[7]=================>' + inputvalues[7]);
+            system.debug('inputvalues[8]=================>' + inputvalues[8]);
+            system.debug('inputvalues[9]=================>' + inputvalues[9]);
+            // system.debug('inputvalues[10]=================>'+inputvalues[10]);
+
+            nameList.add(inputvalues[0]);
+            dateList.add(Date.valueOf(inputvalues[1].replace('/', '-')));
+            ahlNameList.add(inputvalues[2]);
+            departmentSet.add(
+              '%' +
+                GetDepartment_Cateogy(inputvalues[3]) +
+                '%' +
+                '-' +
+                GetEPurposeType(inputvalues[8])
+            );
+            inputList.add(inputvalues);
+          }
         }
+        system.debug('snduksbdnjsvbdskjv');
+        // 鎷呭綋鍚嶇О鍖归厤鐨刴ap
+        Map<String, String> nameIdMap = new Map<String, String>();
+        Map<String, String> nameConMap = new Map<String, String>();
+        // 缁忛攢鍟嗗尰闄㈠悕绉板尮閰嶇殑map
+        Map<String, Agency_Hospital_Link__c> ahlMap = new Map<String, Agency_Hospital_Link__c>();
+        // 浜у搧鍖哄垎鐨刴ap
+        Map<String, String> protypeMap = new Map<String, String>();
+        // 缁忛攢鍟嗗尰闄㈢殑ocsm鍖婚櫌id鐨刲ist
+        List<String> ahlOcsmIdList = new List<String>();
+        // 缁忛攢鍟嗗尰闄d鐨凩ist
+        List<String> ahlIdList = new List<String>();
+        // 鑾峰彇姣忓懆绗竴澶╃殑map
+        Map<Date, Date> dateMap = new Map<Date, Date>();
+        // 鏍规嵁鏃ユ湡鑾峰彇olympus鏃ュ巻id鐨刴ap
+        Map<Date, String> dateIdMap = new Map<Date, String>();
+        // 鏍规嵁缁忛攢鍟嗗尰闄㈢殑ocsm鍖婚櫌鑾峰彇鐨勬墍鏈�.瀹㈡埛浜哄憳鐨勪俊鎭殑鍚嶇О鍜宨d鐨刴ap
+        Map<String, String> doctor2Map = new Map<String, String>();
+        // 缁忛攢鍟嗚浠风殑map
+        Map<String, Agency_Opportunity__c> aoMap = new Map<String, Agency_Opportunity__c>();
+        // 绉戝鍜屼骇鍝佸尯鍒嗗叧绯籱ap
+        Map<String, List<Map<String, String>>> impProMap = new Map<String, List<Map<String, String>>>();
+        impProMap = getImplProductList(departmentSet);
+        System.debug('---===---===---===' + impProMap);
+        // return nameList[0];
+        // List<Contact> conList = [select id,name from Contact where name = :nameList];
+        // List<Contact> conList = [select id,name from Contact];
+        List<Contact> conList = LightningUtil.selectAgencyPerson();
+        System.debug('---===---===---=====' + conList);
+        List<OlympusCalendar__c> olympusDateList = [
+          SELECT Id, Date__c, FirstDayOfWeek__c, DayOfTheWeek__c
+          FROM OlympusCalendar__c
+          WHERE Date__c = :dateList
+        ];
+        // test鐢�
+        // String testuse = '';
+        // testuse += '====='+ahlNameList;
+        List<Agency_Hospital_Link__c> ahlList = [
+          SELECT id, name, Hospital__c, MaxActivityDate__c
+          FROM Agency_Hospital_Link__c
+          WHERE name = :ahlNameList AND Agency_Campaign_Obj__c = TRUE
+        ];
+        // List<Agency_Hospital_Link__c> ahlList = [select id,name,Hospital__c,MaxActivityDate__c from Agency_Hospital_Link__c ];
+        // List<ProductTypes__c> proTypeList = [select id,name from ProductTypes__c];
+        for (OlympusCalendar__c olym : olympusDateList) {
+          if (olym.DayOfTheWeek__c == 'Sun') {
+            dateMap.put(olym.Date__c, olym.Date__c.addDays(1));
+          } else {
+            dateMap.put(olym.Date__c, olym.FirstDayOfWeek__c);
+          }
+        }
+        System.debug('x' + dateMap);
+        List<OlympusCalendar__c> olympusIdList = [
+          SELECT Id, Date__c, FirstDayOfWeek__c
+          FROM OlympusCalendar__c
+          WHERE Date__c = :dateMap.values()
+        ];
+        for (OlympusCalendar__c olym : olympusIdList) {
+          dateIdMap.put(olym.FirstDayOfWeek__c, olym.id);
+        }
+        System.debug('dateIdMap====' + dateIdMap);
+        for (Contact con : conList) {
+          nameIdMap.put(con.Name.replace(' ', ''), con.Id);
+          nameConMap.put(con.Id, con.Name);
+        }
+        // testuse += '======'+ahlList;
+        // return testuse;
+        for (Agency_Hospital_Link__c ahl : ahlList) {
+          ahlMap.put(ahl.Name, ahl);
+          ahlOcsmIdList.add(ahl.Hospital__c);
+          ahlIdList.add(ahl.Id);
+        }
+        // for(ProductTypes__c protype : proTypeList){
+        //     protypeMap.put(protype.Name, protype.Id);
+        // }
+        //fy 20220424 start AWS_Data_Id__c
+        if (!Test.isRunningTest()) {
+          List<Agency_Contact__c> doctor2list = [
+            SELECT
+              id,
+              Name,
+              Doctor_Division1__c,
+              Type__c,
+              Agency_Hospital__c,
+              AWS_Data_Id__c
+            FROM Agency_Contact__c
+            WHERE Hospital_ID18__c = :ahlOcsmIdList
+            ORDER BY Name
+          ]; //zhj 鏂版柟妗堟敼閫� 2022-12-21 鍘绘帀Name_Encrypted__c
+          for (Agency_Contact__c ac : doctor2list) {
+            //fy 20220424 start
+            // doctor2Map.put(ac.AWS_Data_Id__c, ac.Id);
+            // doctor2Map.put(ac.Name.replace(' ',''), ac.Id);
+            //doctor2Map.put(ac.Name_Encrypted__c, ac.Id);
+            doctor2Map.put(ac.AWS_Data_Id__c, ac.Id); //zhj 鏂版柟妗堟敼閫� 涓嶅啀瀛樼殑nameEncrpt鑰屾槸awsdataid 2022-12-21
+            //fy 20220424 end
+          }
+        }
+
+        // List<Agency_Opportunity__c> aoList = [select id,name,StageName__c,Amount__c,OCMSale_Price__c,Close_Forecasted_Date__c,Agency_Hospital__c from Agency_Opportunity__c where Agency_Hospital__c = :ahlIdList and name = :ahlOppNameList];
+        // for(Agency_Opportunity__c ao : aoList){
+        //     aoMap.put(ao.Name, ao);
+        // }
+        System.debug('nameIdMap====' + nameIdMap);
+        // 鍒涘缓鍛ㄦ姤
+        List<Agency_Report_Header__c> agency_report_headerlist = new List<Agency_Report_Header__c>();
+        Map<String, Agency_Report_Header__c> agency_report_headerMap = new Map<String, Agency_Report_Header__c>();
+        for (List<String> lineList : inputList) {
+          Date week = Date.today();
+          String s_agency = null;
+          String s_agencyname = null;
+          System.debug('dateMap====' + dateMap);
+          // System.debug('lineList[0]====涓嶇瓑浜庣┖'+lineList[1]);
+          if (
+            dateMap.get(Date.valueOf(lineList[1].replace('/', '-'))) != null
+          ) {
+            System.debug('dateMap====涓嶇瓑浜庣┖');
+            week = dateMap.get(Date.valueOf(lineList[1].replace('/', '-')));
+            System.debug('====' + week);
+          }
+          System.debug('lineList[0].replace()' + lineList[0].replace(' ', ''));
+          if (nameIdMap.get(lineList[0].replace(' ', '')) != null) {
+            System.debug('nameIdMap====涓嶇瓑浜庣┖');
+            s_agency = nameIdMap.get(lineList[0].replace(' ', ''));
+            s_agencyname = nameConMap.get(
+              nameIdMap.get(lineList[0].replace(' ', ''))
+            );
+            System.debug('====' + s_agency);
+          }
+          // if(s_agency == null || s_agencyname == null){
+          //     // return 'error0 鎷呭綋 '+lineList[0]+'濉啓涓嶆纭�';
+          //     errorMag += 'error0 鎷呭綋 '+lineList[0]+'涓嶅瓨鍦�';
+          //     errorMag += '=';
+          // }
+          Agency_Report_Header__c agency_report_header = new Agency_Report_Header__c();
+          // agency_report_header.Name = lineList[0] + ' (' + week.format() + ')';
+          agency_report_header.Name =
+            s_agencyname +
+            ' (' +
+            week.format().replace('/', '-') +
+            ')';
+          agency_report_header.HeaderInputKey__c = createHeader(week, s_agency);
+          agency_report_header.Week__c = week;
+          agency_report_header.Agency_Person2__c = s_agency;
+          if (dateIdMap.containsKey(week)) {
+            agency_report_header.OlympusDate__c = dateIdMap.get(week);
+          }
+          if (
+            s_agencyname != null &&
+            s_agencyname != '' &&
+            s_agencyname != 'null'
+          ) {
+            agency_report_headerMap.put(
+              agency_report_header.HeaderInputKey__c,
+              agency_report_header
+            );
+          }
+        }
+        agency_report_headerlist = agency_report_headerMap.values();
+        System.debug('===========' + agency_report_headerlist + '');
+        // upsert agency_report_headerlist Agency_Report_Header__c.HeaderInputKey__c;
+        if (agency_report_headerlist.size() > 0) {
+          LightningUtil.upsertMAgencyReportHeader(agency_report_headerlist);
+        }
+
+        List<Agency_Report__c> arList = new List<Agency_Report__c>();
+        Integer hang = 1;
+        for (List<String> lineList : inputList) {
+          // 鍒涘缓鍛ㄦ姤鏄庣粏
+          Date week = null;
+          String s_agency = null;
+          System.debug('dateMap====' + dateMap);
+          System.debug('lineList[0]====涓嶇瓑浜庣┖' + lineList[1]);
+          if (
+            dateMap.get(Date.valueOf(lineList[1].replace('/', '-'))) != null
+          ) {
+            System.debug('dateMap====涓嶇瓑浜庣┖');
+            week = dateMap.get(Date.valueOf(lineList[1].replace('/', '-')));
+            System.debug('====' + week);
+          }
+          if (nameIdMap.get(lineList[0].replace(' ', '')) != null) {
+            System.debug('nameIdMap====涓嶇瓑浜庣┖');
+            s_agency = nameIdMap.get(lineList[0].replace(' ', ''));
+            System.debug('====' + s_agency);
+          }
+
+          Agency_Report__c agencyReport = new Agency_Report__c();
+          if (week == null && lineList[1] != '' && lineList[1] != null) {
+            // return 'error2 绗�'+hang+'琛屾暟鎹姤鍛婃棩'+lineList[1]+'濉啓鏈夎';
+            errorMag +=
+              'error2 绗�' +
+              hang +
+              '琛屾暟鎹姤鍛婃棩' +
+              lineList[1] +
+              '濉啓鏈夎';
+            errorMag += '=';
+          }
+          agencyReport.Submit_date__c = week; // 鎻愬嚭鍛�
+          if (
+            (s_agency == null ||
+            s_agency == '') &&
+            lineList[0] != '' &&
+            lineList[0] != null
+          ) {
+            // return 'error2 绗�'+hang+'琛屾暟鎹媴褰�'+lineList[0]+'涓嶅瓨鍦�';
+            errorMag +=
+              'error2 绗�' +
+              hang +
+              '琛屾暟鎹媴褰�' +
+              lineList[0] +
+              '涓嶅瓨鍦�';
+            errorMag += '=';
+          }
+          agencyReport.Person_In_Charge2__c = s_agency; // 鎷呭綋
+          if (lineList[1] != null && lineList[1] != '') {
+            agencyReport.Report_Date__c = Date.valueOf(
+              lineList[1].replace('/', '-')
+            ); // 娲诲姩鏃�
+          }
+          if (ahlMap.containsKey(lineList[2])) {
+            agencyReport.Agency_Hospital__c = ahlMap.get(lineList[2]).Id; //缁忛攢鍟嗗尰闄�
+            // 鏇存柊缁忛攢鍟嗗尰闄㈢殑鏈�鏂板懆
+            ahlMap.get(lineList[2]).MaxActivityDate__c = week;
+          } else {
+            if (lineList[2] != '' && lineList[2] != null) {
+              // return 'error2 绗�'+hang+'琛屾暟鎹粡閿�鍟嗗尰闄�'+lineList[2]+'涓嶅瓨鍦�';
+              errorMag +=
+                'error2 绗�' +
+                hang +
+                '琛屾暟鎹粡閿�鍟嗗尰闄�' +
+                lineList[2] +
+                '涓嶅瓨鍦�';
+              errorMag += '=';
+            }
+          }
+
+          String departmentE = GetDepartment_Cateogy(lineList[3]);
+          if (departmentE != 'no') {
+            agencyReport.Department_Cateogy__c = departmentE; // 绉戝
+          } else {
+            // return 'error2 绗�'+hang+'琛屾暟鎹瀹�'+lineList[3]+'涓嶅瓨鍦�';
+            // errorMag += 'error2 绗�'+hang+'琛屾暟鎹瀹�'+lineList[3]+'涓嶅瓨鍦�';
+            // errorMag += '=';
+          }
+          //fy 20220424 start
+          // if(doctor2Map.containsKey(lineList[4].replace(' ',''))){
+          if (doctor2Map.containsKey(lineList[4])) {
+            // if(Agency_ContactMap.containsKey(lineList[4].replace(' ',''))){
+            //     if(doctor2Map.containsKey(Agency_ContactMap.get(lineList[4].replace(' ','')))){
+            // agencyReport.doctor2__c = doctor2Map.get(lineList[4].replace(' ','')); // 鎷滆浜�
+            agencyReport.doctor2__c = doctor2Map.get(lineList[4]); // 鎷滆浜�
+            // agencyReport.doctor2__c = doctor2Map.get(Agency_ContactMap.get(lineList[4].replace(' ',''))); // 鎷滆浜�
+            // }
+          } else {
+            if (lineList[4] != '' && lineList[4] != null) {
+              // return 'error2 绗�'+hang+'琛屾暟鎹嫓璁夸汉'+lineList[4]+'涓嶅瓨鍦�';
+              errorMag +=
+                'error2 绗�' +
+                hang +
+                '琛屾暟鎹嫓璁夸汉' +
+                lineList[4] +
+                '涓嶅瓨鍦�';
+              errorMag += '=';
+            }
+          }
+
+          if (GetPurposeType(lineList[8])) {
+            agencyReport.Purpose_Type__c = lineList[8]; // 娲诲姩鍖哄垎
+          } else {
+            // return 'error3 绗�'+hang+'琛屾暟鎹椿鍔ㄥ尯鍒嗛�夐」鍒楄〃鍊�'+lineList[8]+'涓嶅瓨鍦�';
+            // errorMag += 'error3 绗�'+hang+'琛屾暟鎹椿鍔ㄥ尯鍒嗛�夐」鍒楄〃鍊�'+lineList[8]+'涓嶅瓨鍦�';
+            // errorMag += '=';
+          }
+          // 绉戝浜у搧鍖哄垎鍏崇郴鍒ゆ柇
+          // 濡傛灉鑳芥壘鍒帮紝灏辨槸姝g‘鐨�
+          String departandprokey =
+            '%' +
+            GetDepartment_Cateogy(lineList[3]) +
+            '%' +
+            '-' +
+            GetEPurposeType(lineList[8]);
+          System.debug('---===---===---===' + departandprokey);
+          if (impProMap.containsKey(departandprokey)) {
+            System.debug(
+              '---===---===---===' +
+              ifTrueProduct(impProMap.get(departandprokey), lineList[5])
+            );
+            if (
+              ifTrueProduct(impProMap.get(departandprokey), lineList[5]) != ''
+            ) {
+              System.debug(']]]涓嶇瓑浜庣┖杩涘叆');
+              agencyReport.Product_Category1__c = ifTrueProduct(
+                impProMap.get(departandprokey),
+                lineList[5]
+              );
+            } else {
+              System.debug(']]]绛変簬绌鸿繘鍏�');
+              // return 'error4 绗�'+hang+'琛屾暟鎹骇鍝佸尯鍒�1鐨勮祴鍊间笉姝g‘'+lineList[5];
+              errorMag +=
+                'error4 绗�' +
+                hang +
+                '琛屾暟鎹骇鍝佸尯鍒�1鐨勮祴鍊间笉姝g‘' +
+                lineList[5];
+              errorMag += '=';
+            }
+            if (lineList[6] != '' && lineList[6] != null) {
+              if (
+                ifTrueProduct(impProMap.get(departandprokey), lineList[6]) != ''
+              ) {
+                agencyReport.Product_Category2__c = ifTrueProduct(
+                  impProMap.get(departandprokey),
+                  lineList[6]
+                );
+              } else {
+                // return 'error4 绗�'+hang+'琛屾暟鎹骇鍝佸尯鍒�2鐨勮祴鍊间笉姝g‘'+lineList[6];
+                errorMag +=
+                  'error4 绗�' +
+                  hang +
+                  '琛屾暟鎹骇鍝佸尯鍒�2鐨勮祴鍊间笉姝g‘' +
+                  lineList[6];
+                errorMag += '=';
+              }
+            }
+            if (lineList[7] != '' && lineList[7] != null) {
+              if (
+                ifTrueProduct(impProMap.get(departandprokey), lineList[7]) != ''
+              ) {
+                agencyReport.Product_Category3__c = ifTrueProduct(
+                  impProMap.get(departandprokey),
+                  lineList[7]
+                );
+              } else {
+                // return 'error4 绗�'+hang+'琛屾暟鎹骇鍝佸尯鍒�3鐨勮祴鍊间笉姝g‘'+lineList[7];
+                errorMag +=
+                  'error4 绗�' +
+                  hang +
+                  '琛屾暟鎹骇鍝佸尯鍒�3鐨勮祴鍊间笉姝g‘' +
+                  lineList[7];
+                errorMag += '=';
+              }
+            }
+          }
+
+          // 閫氳繃map 绉戝锛屼骇鍝佸尯鍒嗗悕 鍒ゆ柇鍙栧�兼槸鍚︾鍚堣姹�
+          // if(protypeMap.containsKey(lineList[5])){
+          //     agencyReport.Product_Category1__c = protypeMap.get(lineList[5]);// 浜у搧鍖哄垎1
+          // }
+          // if(protypeMap.containsKey(lineList[6])){
+          //     agencyReport.Product_Category2__c = protypeMap.get(lineList[6]);// 浜у搧鍖哄垎2
+          // }
+          // if(protypeMap.containsKey(lineList[7])){
+          //     agencyReport.Product_Category3__c = protypeMap.get(lineList[7]);// 浜у搧鍖哄垎3
+          // }
+          agencyReport.Result__c = lineList[9];
+          if (lineList.size() == 11) {
+            if (lineList[10] != null && lineList[10] != '') {
+              agencyReport.SupportNeeds__c = lineList[10];
+            }
+          }
+          String headerStr = createHeader(week, s_agency);
+          if (agency_report_headerMap.containsKey(headerStr)) {
+            agencyReport.Agency_Report_Header__c = agency_report_headerMap.get(
+                headerStr
+              )
+              .Id; // 鍛ㄦ姤涓�瑙�
+          }
+          // if(aoMap.containsKey(lineList[6])){
+          //     agencyReport.Opportunity__c = aoMap.get(lineList[6]).Id; // 缁忛攢鍟嗚浠�
+          //     // 缁忛攢鍟嗚浠锋洿鏂板瓧娈�
+          //     aoMap.get(lineList[6]).StageName__c = lineList[5]; // 璇环闃舵
+          //     aoMap.get(lineList[6]).Amount__c = Decimal.valueOf(lineList[6]); // 鍖婚櫌閲囪喘棰勭畻(鍚◣,鍏�)
+          //     aoMap.get(lineList[6]).OCMSale_Price__c = Decimal.valueOf(lineList[7]); // 璁㈣揣閲戦(鍚◣,鍏�)
+          //     aoMap.get(lineList[6]).Close_Forecasted_Date__c = Date.valueOf(lineList[8].replace('/','-')); // 棰勬祴浜嶰LY绛剧害鏃�
+          // }
+          hang++;
+          arList.add(agencyReport);
+        }
+
+        if (errorMag != '') {
+          return errorMag;
+        }
+
+        // 鏇存柊缁忛攢鍟嗘剰鎰跨殑鏈�鏂板懆
+        if (ahlMap.values().size() > 0) {
+          update ahlMap.values();
+        }
+        // 鏇存柊缁忛攢鍟嗚浠�
+        // if(aoMap.values().size() > 0 ){
+        //     update aoMap.values();
+        // }
+        // 鏂板鍛ㄦ姤鏄庣粏
+        if (arList.size() > 0) {
+          // insert arList;
+          LightningUtil.insertMAgencyReport(arList);
+        }
+      }
+      return 'success';
+    } catch (Exception e) {
+      System.debug('exception' + e);
+      return e.getLineNumber() + 'exception:' + e;
+    }
+    return 'success';
+  }
+
+  // 鍒涘缓鍞竴閿�
+  public static String createHeader(Date s_date, String nameid) {
+    String str = s_date.format();
+    String str1 = str.replace('/', '');
+    return nameid + ':' + str1;
+  }
+
+  // 绉戝瀵瑰簲缈昏瘧
+  public static String GetDepartment_Cateogy(String department) {
+    String departmentE = 'no';
+    if (department == '鍛煎惛绉�') {
+      departmentE = 'BF';
+    }
+    if (department == '鑰抽蓟鍠夌') {
+      departmentE = 'ENT';
+    }
+    if (department == 'ET鑰楁潗') {
+      departmentE = 'ET';
+    }
+    if (department == '娑堝寲绉�') {
+      departmentE = 'GI';
+    }
+    if (department == '鏅绉�') {
+      departmentE = 'GS';
+    }
+    if (department == '濡囩') {
+      departmentE = 'GYN';
+    }
+    if (department == '鍏朵粬') {
+      departmentE = 'OTH';
+    }
+    if (department == '娉屽翱绉�') {
+      departmentE = 'URO';
+    }
+    return departmentE;
+  }
+
+  // 鍒ゆ柇娲诲姩鍒嗗尯鏄惁瀛樺湪
+  public static boolean GetPurposeType(String purposeType) {
+    Schema.DescribeFieldResult fieldResult = Agency_Report__c.Purpose_Type__c.getDescribe();
+    List<Schema.PicklistEntry> ple = fieldResult.getPicklistValues();
+    for (Schema.PicklistEntry pickListVal : ple) {
+      if (pickListVal.getValue() == purposeType) {
         return true;
+      }
     }
-    public static String GetEPurposeType(String purposeType){
-        // String purpose_Type='';
-        if(purposeType.substring(purposeType.length()-3) == 'OPD'){
-            purposeType = 'OPD';
-        }else if(purposeType.substring(purposeType.length()-3) == 'SIS'){
-            purposeType = 'SIS';
-        }else{
-            purposeType = '';
-        }
-        return purposeType;
+    return false;
+  }
+  public static boolean getResultlist(String resultlist) {
+    system.debug('resultlist===============>' + resultlist);
+    Schema.DescribeFieldResult fieldResult = Agency_Report__c.Result__c.getDescribe();
+    List<Schema.PicklistEntry> ple = fieldResult.getPicklistValues();
+    for (Schema.PicklistEntry pickListVal : ple) {
+      System.debug(
+        'weixiao' +
+          resultlist.trim() +
+          '111111' +
+          pickListVal.getValue() +
+          '222222'
+      );
+      string temp = string.ValueOf(pickListVal.getValue());
+      if (temp.equals(resultlist.trim())) {
+        // if(pickListVal.getValue().equals(resultlist)){
+        System.debug(
+          'weixiaoweixiao' + resultlist + '' + pickListVal.getValue()
+        );
+        return false;
+      }
+    }
+    return true;
+  }
+  public static String GetEPurposeType(String purposeType) {
+    // String purpose_Type='';
+    if (purposeType.substring(purposeType.length() - 3) == 'OPD') {
+      purposeType = 'OPD';
+    } else if (purposeType.substring(purposeType.length() - 3) == 'SIS') {
+      purposeType = 'SIS';
+    } else {
+      purposeType = '';
+    }
+    return purposeType;
+  }
+
+  // 鍒ゆ柇浜у搧鍖哄垎鏄惁婊¤冻瑕佹眰
+  public static String ifTrueProduct(
+    List<Map<String, String>> prolist,
+    String str
+  ) {
+    system.debug('=ifTrueProduct==============ifTrueProduct=========' + str);
+    system.debug('=prolist==============prolist=========' + prolist);
+
+    for (Map<String, String> strmap : prolist) {
+      System.debug('---===---===---===' + str + '===' + strmap.get('label'));
+      if (strmap.get('label') == str) {
+        return strmap.get('value');
+      }
+    }
+    return '';
+  }
+  // 鑾峰彇瀵煎叆鏁版嵁鐨勭瀹ゅ拰浜у搧鍖哄垎鐨勫尮閰�
+  public static Map<String, List<Map<String, String>>> getImplProductList(
+    Set<String> ptdc
+  ) {
+    Map<String, List<Map<String, String>>> impProMap = new Map<String, List<Map<String, String>>>();
+    List<String> dc = new List<String>(ptdc);
+    if (dc.size() > 0) {
+      List<ProductTypes__c> ptList1 = new List<ProductTypes__c>();
+      List<String> dcList = dc[0].split('-');
+      if (dcList.size() > 1) {
+        ptList1 = [
+          SELECT Id, Name, Department_Cateogy__c, OPD_Flg__c, SIS_Flg__c
+          FROM ProductTypes__c
+          WHERE
+            DeleteFlg__c = FALSE
+            AND Department_Cateogy_Text__c LIKE :dcList[0]
+            AND OPD_SIS_Type__c = :dcList[1]
+        ];
+      } else {
+        ptList1 = [
+          SELECT Id, Name, Department_Cateogy__c, OPD_Flg__c, SIS_Flg__c
+          FROM ProductTypes__c
+          WHERE
+            DeleteFlg__c = FALSE
+            AND Department_Cateogy_Text__c LIKE :dcList[0]
+        ];
+      }
+      List<Map<String, String>> impProList = new List<Map<String, String>>();
+      for (ProductTypes__c pt : ptList1) {
+        Map<String, String> productMap = new Map<String, String>();
+        productMap.put('label', pt.Name);
+        productMap.put('value', pt.Id);
+        impProList.add(productMap);
+      }
+      impProMap.put(dc[0], impProList);
+    }
+    if (dc.size() > 1) {
+      List<ProductTypes__c> ptList2 = new List<ProductTypes__c>();
+      List<String> dcList = dc[1].split('-');
+      if (dcList.size() > 1) {
+        ptList2 = [
+          SELECT Id, Name, Department_Cateogy__c, OPD_Flg__c, SIS_Flg__c
+          FROM ProductTypes__c
+          WHERE
+            DeleteFlg__c = FALSE
+            AND Department_Cateogy_Text__c LIKE :dcList[0]
+            AND OPD_SIS_Type__c = :dcList[1]
+        ];
+      } else {
+        ptList2 = [
+          SELECT Id, Name, Department_Cateogy__c, OPD_Flg__c, SIS_Flg__c
+          FROM ProductTypes__c
+          WHERE
+            DeleteFlg__c = FALSE
+            AND Department_Cateogy_Text__c LIKE :dcList[0]
+        ];
+      }
+      List<Map<String, String>> impProList = new List<Map<String, String>>();
+      for (ProductTypes__c pt : ptList2) {
+        Map<String, String> productMap = new Map<String, String>();
+        productMap.put('label', pt.Name);
+        productMap.put('value', pt.Id);
+        impProList.add(productMap);
+      }
+      impProMap.put(dc[1], impProList);
+    }
+    if (dc.size() > 2) {
+      List<ProductTypes__c> ptList3 = new List<ProductTypes__c>();
+      List<String> dcList = dc[2].split('-');
+      if (dcList.size() > 1) {
+        ptList3 = [
+          SELECT Id, Name, Department_Cateogy__c, OPD_Flg__c, SIS_Flg__c
+          FROM ProductTypes__c
+          WHERE
+            DeleteFlg__c = FALSE
+            AND Department_Cateogy_Text__c LIKE :dcList[0]
+            AND OPD_SIS_Type__c = :dcList[1]
+        ];
+      } else {
+        ptList3 = [
+          SELECT Id, Name, Department_Cateogy__c, OPD_Flg__c, SIS_Flg__c
+          FROM ProductTypes__c
+          WHERE
+            DeleteFlg__c = FALSE
+            AND Department_Cateogy_Text__c LIKE :dcList[0]
+        ];
+      }
+      List<Map<String, String>> impProList = new List<Map<String, String>>();
+      for (ProductTypes__c pt : ptList3) {
+        Map<String, String> productMap = new Map<String, String>();
+        productMap.put('label', pt.Name);
+        productMap.put('value', pt.Id);
+        impProList.add(productMap);
+      }
+      impProMap.put(dc[2], impProList);
+    }
+    if (dc.size() > 3) {
+      List<ProductTypes__c> ptList4 = new List<ProductTypes__c>();
+      List<String> dcList = dc[3].split('-');
+      if (dcList.size() > 1) {
+        ptList4 = [
+          SELECT Id, Name, Department_Cateogy__c, OPD_Flg__c, SIS_Flg__c
+          FROM ProductTypes__c
+          WHERE
+            DeleteFlg__c = FALSE
+            AND Department_Cateogy_Text__c LIKE :dcList[0]
+            AND OPD_SIS_Type__c = :dcList[1]
+        ];
+      } else {
+        ptList4 = [
+          SELECT Id, Name, Department_Cateogy__c, OPD_Flg__c, SIS_Flg__c
+          FROM ProductTypes__c
+          WHERE
+            DeleteFlg__c = FALSE
+            AND Department_Cateogy_Text__c LIKE :dcList[0]
+        ];
+      }
+      List<Map<String, String>> impProList = new List<Map<String, String>>();
+      for (ProductTypes__c pt : ptList4) {
+        Map<String, String> productMap = new Map<String, String>();
+        productMap.put('label', pt.Name);
+        productMap.put('value', pt.Id);
+        impProList.add(productMap);
+      }
+      impProMap.put(dc[3], impProList);
+    }
+    if (dc.size() > 4) {
+      List<ProductTypes__c> ptList5 = new List<ProductTypes__c>();
+      List<String> dcList = dc[4].split('-');
+      if (dcList.size() > 1) {
+        ptList5 = [
+          SELECT Id, Name, Department_Cateogy__c, OPD_Flg__c, SIS_Flg__c
+          FROM ProductTypes__c
+          WHERE
+            DeleteFlg__c = FALSE
+            AND Department_Cateogy_Text__c LIKE :dcList[0]
+            AND OPD_SIS_Type__c = :dcList[1]
+        ];
+      } else {
+        ptList5 = [
+          SELECT Id, Name, Department_Cateogy__c, OPD_Flg__c, SIS_Flg__c
+          FROM ProductTypes__c
+          WHERE
+            DeleteFlg__c = FALSE
+            AND Department_Cateogy_Text__c LIKE :dcList[0]
+        ];
+      }
+      List<Map<String, String>> impProList = new List<Map<String, String>>();
+      for (ProductTypes__c pt : ptList5) {
+        Map<String, String> productMap = new Map<String, String>();
+        productMap.put('label', pt.Name);
+        productMap.put('value', pt.Id);
+        impProList.add(productMap);
+      }
+      impProMap.put(dc[4], impProList);
+    }
+    if (dc.size() > 5) {
+      List<ProductTypes__c> ptList6 = new List<ProductTypes__c>();
+      List<String> dcList = dc[5].split('-');
+      if (dcList.size() > 1) {
+        ptList6 = [
+          SELECT Id, Name, Department_Cateogy__c, OPD_Flg__c, SIS_Flg__c
+          FROM ProductTypes__c
+          WHERE
+            DeleteFlg__c = FALSE
+            AND Department_Cateogy_Text__c LIKE :dcList[0]
+            AND OPD_SIS_Type__c = :dcList[1]
+        ];
+      } else {
+        ptList6 = [
+          SELECT Id, Name, Department_Cateogy__c, OPD_Flg__c, SIS_Flg__c
+          FROM ProductTypes__c
+          WHERE
+            DeleteFlg__c = FALSE
+            AND Department_Cateogy_Text__c LIKE :dcList[0]
+        ];
+      }
+      List<Map<String, String>> impProList = new List<Map<String, String>>();
+      for (ProductTypes__c pt : ptList6) {
+        Map<String, String> productMap = new Map<String, String>();
+        productMap.put('label', pt.Name);
+        productMap.put('value', pt.Id);
+        impProList.add(productMap);
+      }
+      impProMap.put(dc[5], impProList);
+    }
+    if (dc.size() > 6) {
+      List<ProductTypes__c> ptList7 = new List<ProductTypes__c>();
+      List<String> dcList = dc[6].split('-');
+      if (dcList.size() > 1) {
+        ptList7 = [
+          SELECT Id, Name, Department_Cateogy__c, OPD_Flg__c, SIS_Flg__c
+          FROM ProductTypes__c
+          WHERE
+            DeleteFlg__c = FALSE
+            AND Department_Cateogy_Text__c LIKE :dcList[0]
+            AND OPD_SIS_Type__c = :dcList[1]
+        ];
+      } else {
+        ptList7 = [
+          SELECT Id, Name, Department_Cateogy__c, OPD_Flg__c, SIS_Flg__c
+          FROM ProductTypes__c
+          WHERE
+            DeleteFlg__c = FALSE
+            AND Department_Cateogy_Text__c LIKE :dcList[0]
+        ];
+      }
+      List<Map<String, String>> impProList = new List<Map<String, String>>();
+      for (ProductTypes__c pt : ptList7) {
+        Map<String, String> productMap = new Map<String, String>();
+        productMap.put('label', pt.Name);
+        productMap.put('value', pt.Id);
+        impProList.add(productMap);
+      }
+      impProMap.put(dc[6], impProList);
+    }
+    if (dc.size() > 7) {
+      List<ProductTypes__c> ptList8 = new List<ProductTypes__c>();
+      List<String> dcList = dc[7].split('-');
+      if (dcList.size() > 1) {
+        ptList8 = [
+          SELECT Id, Name, Department_Cateogy__c, OPD_Flg__c, SIS_Flg__c
+          FROM ProductTypes__c
+          WHERE
+            DeleteFlg__c = FALSE
+            AND Department_Cateogy_Text__c LIKE :dcList[0]
+            AND OPD_SIS_Type__c = :dcList[1]
+        ];
+      } else {
+        ptList8 = [
+          SELECT Id, Name, Department_Cateogy__c, OPD_Flg__c, SIS_Flg__c
+          FROM ProductTypes__c
+          WHERE
+            DeleteFlg__c = FALSE
+            AND Department_Cateogy_Text__c LIKE :dcList[0]
+        ];
+      }
+      List<Map<String, String>> impProList = new List<Map<String, String>>();
+      for (ProductTypes__c pt : ptList8) {
+        Map<String, String> productMap = new Map<String, String>();
+        productMap.put('label', pt.Name);
+        productMap.put('value', pt.Id);
+        impProList.add(productMap);
+      }
+      impProMap.put(dc[7], impProList);
     }
 
-    // 鍒ゆ柇浜у搧鍖哄垎鏄惁婊¤冻瑕佹眰
-    public static String ifTrueProduct(List<Map<String,String>> prolist,String str){
-        system.debug('=ifTrueProduct==============ifTrueProduct========='+str);
-        system.debug('=prolist==============prolist========='+prolist);
-
-        for(Map<String,String> strmap :prolist){
-            System.debug('---===---===---==='+str+'==='+strmap.get('label'));
-            if(strmap.get('label')==str){
-                return strmap.get('value');
-            }
-        }
-        return '';
+    if (dc.size() > 8) {
+      List<ProductTypes__c> ptList9 = new List<ProductTypes__c>();
+      List<String> dcList = dc[8].split('-');
+      if (dcList.size() > 1) {
+        ptList9 = [
+          SELECT Id, Name, Department_Cateogy__c, OPD_Flg__c, SIS_Flg__c
+          FROM ProductTypes__c
+          WHERE
+            DeleteFlg__c = FALSE
+            AND Department_Cateogy_Text__c LIKE :dcList[0]
+            AND OPD_SIS_Type__c = :dcList[1]
+        ];
+      } else {
+        ptList9 = [
+          SELECT Id, Name, Department_Cateogy__c, OPD_Flg__c, SIS_Flg__c
+          FROM ProductTypes__c
+          WHERE
+            DeleteFlg__c = FALSE
+            AND Department_Cateogy_Text__c LIKE :dcList[0]
+        ];
+      }
+      List<Map<String, String>> impProList = new List<Map<String, String>>();
+      for (ProductTypes__c pt : ptList9) {
+        Map<String, String> productMap = new Map<String, String>();
+        productMap.put('label', pt.Name);
+        productMap.put('value', pt.Id);
+        impProList.add(productMap);
+      }
+      impProMap.put(dc[8], impProList);
     }
-    // 鑾峰彇瀵煎叆鏁版嵁鐨勭瀹ゅ拰浜у搧鍖哄垎鐨勫尮閰�
-    public static Map<String,List<Map<String,String>>> getImplProductList(Set<String> ptdc){
-         Map<String,List<Map<String,String>>> impProMap = new  Map<String,List<Map<String,String>>>();
-         List<String> dc = new List<String>(ptdc);
-        if(dc.size() > 0){
-            List<ProductTypes__c> ptList1 = new List<ProductTypes__c>();
-            List<String> dcList = dc[0].split('-');
-            if (dcList.size() > 1) {
-                ptList1 = [select Id, Name, Department_Cateogy__c, OPD_Flg__c, SIS_Flg__c from ProductTypes__c where DeleteFlg__c = false and Department_Cateogy_Text__c like :dcList[0] and OPD_SIS_Type__c =:dcList[1]];
-            } else {
-                ptList1 = [select Id, Name, Department_Cateogy__c, OPD_Flg__c, SIS_Flg__c from ProductTypes__c where DeleteFlg__c = false and Department_Cateogy_Text__c like :dcList[0]];
-            }
-            List<Map<String,String>> impProList = new List<Map<String,String>>();
-            for(ProductTypes__c pt : ptList1){
-                Map<String,String> productMap = new Map<String,String>();
-                productMap.put('label', pt.Name);
-                productMap.put('value', pt.Id);
-                impProList.add(productMap);
-            }
-            impProMap.put(dc[0], impProList);
-            
-        }
-        if(dc.size() > 1){
-            List<ProductTypes__c> ptList2 = new List<ProductTypes__c>();
-            List<String> dcList = dc[1].split('-');
-            if (dcList.size() > 1) {
-                ptList2 = [select Id, Name, Department_Cateogy__c, OPD_Flg__c, SIS_Flg__c from ProductTypes__c where DeleteFlg__c = false and Department_Cateogy_Text__c like :dcList[0] and OPD_SIS_Type__c =:dcList[1]];
-            } else {
-                ptList2 = [select Id, Name, Department_Cateogy__c, OPD_Flg__c, SIS_Flg__c from ProductTypes__c where DeleteFlg__c = false and Department_Cateogy_Text__c like :dcList[0]];
-            }
-            List<Map<String,String>> impProList = new List<Map<String,String>>();
-            for(ProductTypes__c pt : ptList2){
-                Map<String,String> productMap = new Map<String,String>();
-                productMap.put('label', pt.Name);
-                productMap.put('value', pt.Id);
-                impProList.add(productMap);
-            }
-            impProMap.put(dc[1], impProList);
-        }
-        if(dc.size() > 2){
-            List<ProductTypes__c> ptList3 = new List<ProductTypes__c>();
-            List<String> dcList = dc[2].split('-');
-            if (dcList.size() > 1) {
-                ptList3 = [select Id, Name, Department_Cateogy__c, OPD_Flg__c, SIS_Flg__c from ProductTypes__c where DeleteFlg__c = false and Department_Cateogy_Text__c like :dcList[0] and OPD_SIS_Type__c =:dcList[1]];
-            } else {
-                ptList3 = [select Id, Name, Department_Cateogy__c, OPD_Flg__c, SIS_Flg__c from ProductTypes__c where DeleteFlg__c = false and Department_Cateogy_Text__c like :dcList[0]];
-            }
-            List<Map<String,String>> impProList = new List<Map<String,String>>();
-            for(ProductTypes__c pt : ptList3){
-                Map<String,String> productMap = new Map<String,String>();
-                productMap.put('label', pt.Name);
-                productMap.put('value', pt.Id);
-                impProList.add(productMap);
-            }
-            impProMap.put(dc[2], impProList); 
-        }
-        if(dc.size() > 3){
-            List<ProductTypes__c> ptList4 = new List<ProductTypes__c>();
-            List<String> dcList = dc[3].split('-');
-            if (dcList.size() > 1) {
-                ptList4 = [select Id, Name, Department_Cateogy__c, OPD_Flg__c, SIS_Flg__c from ProductTypes__c where DeleteFlg__c = false and Department_Cateogy_Text__c like :dcList[0] and OPD_SIS_Type__c =:dcList[1]];
-            } else {
-                ptList4 = [select Id, Name, Department_Cateogy__c, OPD_Flg__c, SIS_Flg__c from ProductTypes__c where DeleteFlg__c = false and Department_Cateogy_Text__c like :dcList[0]];
-            }
-            List<Map<String,String>> impProList = new List<Map<String,String>>();
-            for(ProductTypes__c pt : ptList4){
-                Map<String,String> productMap = new Map<String,String>();
-                productMap.put('label', pt.Name);
-                productMap.put('value', pt.Id);
-                impProList.add(productMap);
-            }
-            impProMap.put(dc[3], impProList);
-        }
-        if(dc.size() > 4){
-            List<ProductTypes__c> ptList5 = new List<ProductTypes__c>();
-            List<String> dcList = dc[4].split('-');
-            if (dcList.size() > 1) {
-                ptList5 = [select Id, Name, Department_Cateogy__c, OPD_Flg__c, SIS_Flg__c from ProductTypes__c where DeleteFlg__c = false and Department_Cateogy_Text__c like :dcList[0] and OPD_SIS_Type__c =:dcList[1]];
-            } else {
-                ptList5 = [select Id, Name, Department_Cateogy__c, OPD_Flg__c, SIS_Flg__c from ProductTypes__c where DeleteFlg__c = false and Department_Cateogy_Text__c like :dcList[0]];
-            }
-            List<Map<String,String>> impProList = new List<Map<String,String>>();
-            for(ProductTypes__c pt : ptList5){
-                Map<String,String> productMap = new Map<String,String>();
-                productMap.put('label', pt.Name);
-                productMap.put('value', pt.Id);
-                impProList.add(productMap);
-            }
-            impProMap.put(dc[4], impProList); 
-        }
-        if(dc.size() > 5){
-            List<ProductTypes__c> ptList6 = new List<ProductTypes__c>();
-            List<String> dcList = dc[5].split('-');
-            if (dcList.size() > 1) {
-                ptList6 = [select Id, Name, Department_Cateogy__c, OPD_Flg__c, SIS_Flg__c from ProductTypes__c where DeleteFlg__c = false and Department_Cateogy_Text__c like :dcList[0] and OPD_SIS_Type__c =:dcList[1]];
-            } else {
-                ptList6 = [select Id, Name, Department_Cateogy__c, OPD_Flg__c, SIS_Flg__c from ProductTypes__c where DeleteFlg__c = false and Department_Cateogy_Text__c like :dcList[0]];
-            }
-            List<Map<String,String>> impProList = new List<Map<String,String>>();
-            for(ProductTypes__c pt : ptList6){
-                Map<String,String> productMap = new Map<String,String>();
-                productMap.put('label', pt.Name);
-                productMap.put('value', pt.Id);
-                impProList.add(productMap);
-            }
-            impProMap.put(dc[5], impProList);
-        }
-        if(dc.size() > 6){
-            List<ProductTypes__c> ptList7 = new List<ProductTypes__c>();
-            List<String> dcList = dc[6].split('-');
-            if (dcList.size() > 1) {
-                ptList7 = [select Id, Name, Department_Cateogy__c, OPD_Flg__c, SIS_Flg__c from ProductTypes__c where DeleteFlg__c = false and Department_Cateogy_Text__c like :dcList[0] and OPD_SIS_Type__c =:dcList[1]];
-            } else {
-                ptList7 = [select Id, Name, Department_Cateogy__c, OPD_Flg__c, SIS_Flg__c from ProductTypes__c where DeleteFlg__c = false and Department_Cateogy_Text__c like :dcList[0]];
-            }
-            List<Map<String,String>> impProList = new List<Map<String,String>>();
-            for(ProductTypes__c pt : ptList7){
-                Map<String,String> productMap = new Map<String,String>();
-                productMap.put('label', pt.Name);
-                productMap.put('value', pt.Id);
-                impProList.add(productMap);
-            }
-            impProMap.put(dc[6], impProList); 
-        }
-        if(dc.size() > 7){
-            List<ProductTypes__c> ptList8 = new List<ProductTypes__c>();
-            List<String> dcList = dc[7].split('-');
-            if (dcList.size() > 1) {
-                ptList8 = [select Id, Name, Department_Cateogy__c, OPD_Flg__c, SIS_Flg__c from ProductTypes__c where DeleteFlg__c = false and Department_Cateogy_Text__c like :dcList[0] and OPD_SIS_Type__c =:dcList[1]];
-            } else {
-                ptList8 = [select Id, Name, Department_Cateogy__c, OPD_Flg__c, SIS_Flg__c from ProductTypes__c where DeleteFlg__c = false and Department_Cateogy_Text__c like :dcList[0]];
-            }
-            List<Map<String,String>> impProList = new List<Map<String,String>>();
-            for(ProductTypes__c pt : ptList8){
-                Map<String,String> productMap = new Map<String,String>();
-                productMap.put('label', pt.Name);
-                productMap.put('value', pt.Id);
-                impProList.add(productMap);
-            }
-            impProMap.put(dc[7], impProList);
-        }
-
-        if(dc.size() > 8){
-            List<ProductTypes__c> ptList9 = new List<ProductTypes__c>();
-            List<String> dcList = dc[8].split('-');
-            if (dcList.size() > 1) {
-                ptList9 = [select Id, Name, Department_Cateogy__c, OPD_Flg__c, SIS_Flg__c from ProductTypes__c where DeleteFlg__c = false and Department_Cateogy_Text__c like :dcList[0] and OPD_SIS_Type__c =:dcList[1]];
-            } else {
-                ptList9 = [select Id, Name, Department_Cateogy__c, OPD_Flg__c, SIS_Flg__c from ProductTypes__c where DeleteFlg__c = false and Department_Cateogy_Text__c like :dcList[0]];
-            }
-            List<Map<String,String>> impProList = new List<Map<String,String>>();
-            for(ProductTypes__c pt : ptList9){
-                Map<String,String> productMap = new Map<String,String>();
-                productMap.put('label', pt.Name);
-                productMap.put('value', pt.Id);
-                impProList.add(productMap);
-            }
-            impProMap.put(dc[8], impProList);
-        }
-        if(dc.size() > 9){
-            List<ProductTypes__c> ptList10 = new List<ProductTypes__c>();
-            List<String> dcList = dc[9].split('-');
-            if (dcList.size() > 1) {
-                ptList10 = [select Id, Name, Department_Cateogy__c, OPD_Flg__c, SIS_Flg__c from ProductTypes__c where DeleteFlg__c = false and Department_Cateogy_Text__c like :dcList[0] and OPD_SIS_Type__c =:dcList[1]];
-            } else {
-                ptList10 = [select Id, Name, Department_Cateogy__c, OPD_Flg__c, SIS_Flg__c from ProductTypes__c where DeleteFlg__c = false and Department_Cateogy_Text__c like :dcList[0]];
-            }
-            List<Map<String,String>> impProList = new List<Map<String,String>>();
-            for(ProductTypes__c pt : ptList10){
-                Map<String,String> productMap = new Map<String,String>();
-                productMap.put('label', pt.Name);
-                productMap.put('value', pt.Id);
-                impProList.add(productMap);
-            }
-            impProMap.put(dc[9], impProList);
-        }
-        if(dc.size() > 10){
-            List<ProductTypes__c> ptList11 = new List<ProductTypes__c>();
-            List<String> dcList = dc[10].split('-');
-            if (dcList.size() > 1) {
-                ptList11 = [select Id, Name, Department_Cateogy__c, OPD_Flg__c, SIS_Flg__c from ProductTypes__c where DeleteFlg__c = false and Department_Cateogy_Text__c like :dcList[0] and OPD_SIS_Type__c =:dcList[1]];
-            } else {
-                ptList11 = [select Id, Name, Department_Cateogy__c, OPD_Flg__c, SIS_Flg__c from ProductTypes__c where DeleteFlg__c = false and Department_Cateogy_Text__c like :dcList[0]];
-            }
-            List<Map<String,String>> impProList = new List<Map<String,String>>();
-            for(ProductTypes__c pt : ptList11){
-                Map<String,String> productMap = new Map<String,String>();
-                productMap.put('label', pt.Name);
-                productMap.put('value', pt.Id);
-                impProList.add(productMap);
-            }
-            impProMap.put(dc[10], impProList);
-        }
-        if(dc.size() > 11){
-            List<ProductTypes__c> ptList12 = new List<ProductTypes__c>();
-            List<String> dcList = dc[11].split('-');
-            if (dcList.size() > 1) {
-                ptList12 = [select Id, Name, Department_Cateogy__c, OPD_Flg__c, SIS_Flg__c from ProductTypes__c where DeleteFlg__c = false and Department_Cateogy_Text__c like :dcList[0] and OPD_SIS_Type__c =:dcList[1]];
-            } else {
-                ptList12 = [select Id, Name, Department_Cateogy__c, OPD_Flg__c, SIS_Flg__c from ProductTypes__c where DeleteFlg__c = false and Department_Cateogy_Text__c like :dcList[0]];
-            }
-            List<Map<String,String>> impProList = new List<Map<String,String>>();
-            for(ProductTypes__c pt : ptList12){
-                Map<String,String> productMap = new Map<String,String>();
-                productMap.put('label', pt.Name);
-                productMap.put('value', pt.Id);
-                impProList.add(productMap);
-            }
-            impProMap.put(dc[11], impProList);
-        }
-        if(dc.size() > 12){
-            List<ProductTypes__c> ptList13 = new List<ProductTypes__c>();
-            List<String> dcList = dc[12].split('-');
-            if (dcList.size() > 1) {
-                ptList13 = [select Id, Name, Department_Cateogy__c, OPD_Flg__c, SIS_Flg__c from ProductTypes__c where DeleteFlg__c = false and Department_Cateogy_Text__c like :dcList[0] and OPD_SIS_Type__c =:dcList[1]];
-            } else {
-                ptList13 = [select Id, Name, Department_Cateogy__c, OPD_Flg__c, SIS_Flg__c from ProductTypes__c where DeleteFlg__c = false and Department_Cateogy_Text__c like :dcList[0]];
-            }
-            List<Map<String,String>> impProList = new List<Map<String,String>>();
-            for(ProductTypes__c pt : ptList13){
-                Map<String,String> productMap = new Map<String,String>();
-                productMap.put('label', pt.Name);
-                productMap.put('value', pt.Id);
-                impProList.add(productMap);
-            }
-            impProMap.put(dc[12], impProList);
-        }
-        if(dc.size() > 13){
-            List<ProductTypes__c> ptList14 = new List<ProductTypes__c>();
-            List<String> dcList = dc[13].split('-');
-            if (dcList.size() > 1) {
-                ptList14 = [select Id, Name, Department_Cateogy__c, OPD_Flg__c, SIS_Flg__c from ProductTypes__c where DeleteFlg__c = false and Department_Cateogy_Text__c like :dcList[0] and OPD_SIS_Type__c =:dcList[1]];
-            } else {
-                ptList14 = [select Id, Name, Department_Cateogy__c, OPD_Flg__c, SIS_Flg__c from ProductTypes__c where DeleteFlg__c = false and Department_Cateogy_Text__c like :dcList[0]];
-            }
-            List<Map<String,String>> impProList = new List<Map<String,String>>();
-            for(ProductTypes__c pt : ptList14){
-                Map<String,String> productMap = new Map<String,String>();
-                productMap.put('label', pt.Name);
-                productMap.put('value', pt.Id);
-                impProList.add(productMap);
-            }
-            impProMap.put(dc[13], impProList);
-        }
-        if(dc.size() > 14){
-            List<ProductTypes__c> ptList15 = new List<ProductTypes__c>();
-            List<String> dcList = dc[14].split('-');
-            if (dcList.size() > 1) {
-                ptList15 = [select Id, Name, Department_Cateogy__c, OPD_Flg__c, SIS_Flg__c from ProductTypes__c where DeleteFlg__c = false and Department_Cateogy_Text__c like :dcList[0] and OPD_SIS_Type__c =:dcList[1]];
-            } else {
-                ptList15 = [select Id, Name, Department_Cateogy__c, OPD_Flg__c, SIS_Flg__c from ProductTypes__c where DeleteFlg__c = false and Department_Cateogy_Text__c like :dcList[0]];
-            }
-            List<Map<String,String>> impProList = new List<Map<String,String>>();
-            for(ProductTypes__c pt : ptList15){
-                Map<String,String> productMap = new Map<String,String>();
-                productMap.put('label', pt.Name);
-                productMap.put('value', pt.Id);
-                impProList.add(productMap);
-            }
-            impProMap.put(dc[14], impProList);
-        }
-        if(dc.size() > 15){
-            List<ProductTypes__c> ptList16 = new List<ProductTypes__c>();
-            List<String> dcList = dc[15].split('-');
-            if (dcList.size() > 1) {
-                ptList16 = [select Id, Name, Department_Cateogy__c, OPD_Flg__c, SIS_Flg__c from ProductTypes__c where DeleteFlg__c = false and Department_Cateogy_Text__c like :dcList[0] and OPD_SIS_Type__c =:dcList[1]];
-            } else {
-                ptList16 = [select Id, Name, Department_Cateogy__c, OPD_Flg__c, SIS_Flg__c from ProductTypes__c where DeleteFlg__c = false and Department_Cateogy_Text__c like :dcList[0]];
-            }
-            List<Map<String,String>> impProList = new List<Map<String,String>>();
-            for(ProductTypes__c pt : ptList16){
-                Map<String,String> productMap = new Map<String,String>();
-                productMap.put('label', pt.Name);
-                productMap.put('value', pt.Id);
-                impProList.add(productMap);
-            }
-            impProMap.put(dc[15], impProList);
-        }
-        if(dc.size() > 16){
-            List<ProductTypes__c> ptList17 = new List<ProductTypes__c>();
-            List<String> dcList = dc[16].split('-');
-            if (dcList.size() > 1) {
-                ptList17 = [select Id, Name, Department_Cateogy__c, OPD_Flg__c, SIS_Flg__c from ProductTypes__c where DeleteFlg__c = false and Department_Cateogy_Text__c like :dcList[0] and OPD_SIS_Type__c =:dcList[1]];
-            } else {
-                ptList17 = [select Id, Name, Department_Cateogy__c, OPD_Flg__c, SIS_Flg__c from ProductTypes__c where DeleteFlg__c = false and Department_Cateogy_Text__c like :dcList[0]];
-            }
-            List<Map<String,String>> impProList = new List<Map<String,String>>();
-            for(ProductTypes__c pt : ptList17){
-                Map<String,String> productMap = new Map<String,String>();
-                productMap.put('label', pt.Name);
-                productMap.put('value', pt.Id);
-                impProList.add(productMap);
-            }
-            impProMap.put(dc[16], impProList);
-        }
-        if(dc.size() > 17){
-            List<ProductTypes__c> ptList18 = new List<ProductTypes__c>();
-            List<String> dcList = dc[17].split('-');
-            if (dcList.size() > 1) {
-                ptList18 = [select Id, Name, Department_Cateogy__c, OPD_Flg__c, SIS_Flg__c from ProductTypes__c where DeleteFlg__c = false and Department_Cateogy_Text__c like :dcList[0] and OPD_SIS_Type__c =:dcList[1]];
-            } else {
-                ptList18 = [select Id, Name, Department_Cateogy__c, OPD_Flg__c, SIS_Flg__c from ProductTypes__c where DeleteFlg__c = false and Department_Cateogy_Text__c like :dcList[0]];
-            }
-            List<Map<String,String>> impProList = new List<Map<String,String>>();
-            for(ProductTypes__c pt : ptList18){
-                Map<String,String> productMap = new Map<String,String>();
-                productMap.put('label', pt.Name);
-                productMap.put('value', pt.Id);
-                impProList.add(productMap);
-            }
-            impProMap.put(dc[17], impProList);
-        }
-        if(dc.size() > 18){
-            List<ProductTypes__c> ptList19 = new List<ProductTypes__c>();
-            List<String> dcList = dc[18].split('-');
-            if (dcList.size() > 1) {
-                ptList19 = [select Id, Name, Department_Cateogy__c, OPD_Flg__c, SIS_Flg__c from ProductTypes__c where DeleteFlg__c = false and Department_Cateogy_Text__c like :dcList[0] and OPD_SIS_Type__c =:dcList[1]];
-            } else {
-                ptList19 = [select Id, Name, Department_Cateogy__c, OPD_Flg__c, SIS_Flg__c from ProductTypes__c where DeleteFlg__c = false and Department_Cateogy_Text__c like :dcList[0]];
-            }
-            List<Map<String,String>> impProList = new List<Map<String,String>>();
-            for(ProductTypes__c pt : ptList19){
-                Map<String,String> productMap = new Map<String,String>();
-                productMap.put('label', pt.Name);
-                productMap.put('value', pt.Id);
-                impProList.add(productMap);
-            }
-            impProMap.put(dc[18], impProList);
-        }
-        if(dc.size() > 19){
-            List<ProductTypes__c> ptList20 = new List<ProductTypes__c>();
-            List<String> dcList = dc[19].split('-');
-            if (dcList.size() > 1) {
-                ptList20 = [select Id, Name, Department_Cateogy__c, OPD_Flg__c, SIS_Flg__c from ProductTypes__c where DeleteFlg__c = false and Department_Cateogy_Text__c like :dcList[0] and OPD_SIS_Type__c =:dcList[1]];
-            } else {
-                ptList20 = [select Id, Name, Department_Cateogy__c, OPD_Flg__c, SIS_Flg__c from ProductTypes__c where DeleteFlg__c = false and Department_Cateogy_Text__c like :dcList[0]];
-            }
-            List<Map<String,String>> impProList = new List<Map<String,String>>();
-            for(ProductTypes__c pt : ptList20){
-                Map<String,String> productMap = new Map<String,String>();
-                productMap.put('label', pt.Name);
-                productMap.put('value', pt.Id);
-                impProList.add(productMap);
-            }
-            impProMap.put(dc[19], impProList);
-        }
-        if(dc.size() > 20){
-            List<ProductTypes__c> ptList21 = new List<ProductTypes__c>();
-            List<String> dcList = dc[20].split('-');
-            if (dcList.size() > 1) {
-                ptList21 = [select Id, Name, Department_Cateogy__c, OPD_Flg__c, SIS_Flg__c from ProductTypes__c where DeleteFlg__c = false and Department_Cateogy_Text__c like :dcList[0] and OPD_SIS_Type__c =:dcList[1]];
-            } else {
-                ptList21 = [select Id, Name, Department_Cateogy__c, OPD_Flg__c, SIS_Flg__c from ProductTypes__c where DeleteFlg__c = false and Department_Cateogy_Text__c like :dcList[0]];
-            }
-            List<Map<String,String>> impProList = new List<Map<String,String>>();
-            for(ProductTypes__c pt : ptList21){
-                Map<String,String> productMap = new Map<String,String>();
-                productMap.put('label', pt.Name);
-                productMap.put('value', pt.Id);
-                impProList.add(productMap);
-            }
-            impProMap.put(dc[20], impProList);
-        }
-        if(dc.size() > 21){
-            List<ProductTypes__c> ptList22 = new List<ProductTypes__c>();
-            List<String> dcList = dc[21].split('-');
-            if (dcList.size() > 1) {
-                ptList22 = [select Id, Name, Department_Cateogy__c, OPD_Flg__c, SIS_Flg__c from ProductTypes__c where DeleteFlg__c = false and Department_Cateogy_Text__c like :dcList[0] and OPD_SIS_Type__c =:dcList[1]];
-            } else {
-                ptList22 = [select Id, Name, Department_Cateogy__c, OPD_Flg__c, SIS_Flg__c from ProductTypes__c where DeleteFlg__c = false and Department_Cateogy_Text__c like :dcList[0]];
-            }
-            List<Map<String,String>> impProList = new List<Map<String,String>>();
-            for(ProductTypes__c pt : ptList22){
-                Map<String,String> productMap = new Map<String,String>();
-                productMap.put('label', pt.Name);
-                productMap.put('value', pt.Id);
-                impProList.add(productMap);
-            }
-            impProMap.put(dc[21], impProList);
-        }
-        if(dc.size() > 22){
-            List<ProductTypes__c> ptList23 = new List<ProductTypes__c>();
-            List<String> dcList = dc[22].split('-');
-            if (dcList.size() > 1) {
-                ptList23 = [select Id, Name, Department_Cateogy__c, OPD_Flg__c, SIS_Flg__c from ProductTypes__c where DeleteFlg__c = false and Department_Cateogy_Text__c like :dcList[0] and OPD_SIS_Type__c =:dcList[1]];
-            } else {
-                ptList23 = [select Id, Name, Department_Cateogy__c, OPD_Flg__c, SIS_Flg__c from ProductTypes__c where DeleteFlg__c = false and Department_Cateogy_Text__c like :dcList[0]];
-            }
-            List<Map<String,String>> impProList = new List<Map<String,String>>();
-            for(ProductTypes__c pt : ptList23){
-                Map<String,String> productMap = new Map<String,String>();
-                productMap.put('label', pt.Name);
-                productMap.put('value', pt.Id);
-                impProList.add(productMap);
-            }
-            impProMap.put(dc[22], impProList);
-        }
-        if(dc.size() > 23){
-            List<ProductTypes__c> ptList24 = new List<ProductTypes__c>();
-            List<String> dcList = dc[23].split('-');
-            if (dcList.size() > 1) {
-                ptList24 = [select Id, Name, Department_Cateogy__c, OPD_Flg__c, SIS_Flg__c from ProductTypes__c where DeleteFlg__c = false and Department_Cateogy_Text__c like :dcList[0] and OPD_SIS_Type__c =:dcList[1]];
-            } else {
-                ptList24 = [select Id, Name, Department_Cateogy__c, OPD_Flg__c, SIS_Flg__c from ProductTypes__c where DeleteFlg__c = false and Department_Cateogy_Text__c like :dcList[0]];
-            }
-            List<Map<String,String>> impProList = new List<Map<String,String>>();
-            for(ProductTypes__c pt : ptList24){
-                Map<String,String> productMap = new Map<String,String>();
-                productMap.put('label', pt.Name);
-                productMap.put('value', pt.Id);
-                impProList.add(productMap);
-            }
-            impProMap.put(dc[23], impProList);
-        }
-
-        return impProMap;
-        
+    if (dc.size() > 9) {
+      List<ProductTypes__c> ptList10 = new List<ProductTypes__c>();
+      List<String> dcList = dc[9].split('-');
+      if (dcList.size() > 1) {
+        ptList10 = [
+          SELECT Id, Name, Department_Cateogy__c, OPD_Flg__c, SIS_Flg__c
+          FROM ProductTypes__c
+          WHERE
+            DeleteFlg__c = FALSE
+            AND Department_Cateogy_Text__c LIKE :dcList[0]
+            AND OPD_SIS_Type__c = :dcList[1]
+        ];
+      } else {
+        ptList10 = [
+          SELECT Id, Name, Department_Cateogy__c, OPD_Flg__c, SIS_Flg__c
+          FROM ProductTypes__c
+          WHERE
+            DeleteFlg__c = FALSE
+            AND Department_Cateogy_Text__c LIKE :dcList[0]
+        ];
+      }
+      List<Map<String, String>> impProList = new List<Map<String, String>>();
+      for (ProductTypes__c pt : ptList10) {
+        Map<String, String> productMap = new Map<String, String>();
+        productMap.put('label', pt.Name);
+        productMap.put('value', pt.Id);
+        impProList.add(productMap);
+      }
+      impProMap.put(dc[9], impProList);
     }
-    // 鎵归噺娣诲姞鍛ㄦ姤by vivek end 
-
-    //zhj MEBG鏂版柟妗堟敼閫� 2022-11-29 start
-    @AuraEnabled
-    public static ControllerResponse searchAgencyDataId(String hospitalId){
-        ControllerResponse r = new ControllerResponse();
-        try{
-            if(String.isBlank(hospitalId)){
-                r.IsSuccess = true;
-                r.Message = 'noHospitalId';
-                return r;
-            }
-            List<Agency_Contact__c> acList = [select id,AWS_Data_Id__c,Agency_Hospital__r.Name from Agency_Contact__c where Agency_Hospital__c=:hospitalId];
-            r.IsSuccess = true;
-            r.Message = '';
-            r.Data = acList;
-            return r;
-        }catch(Exception e) {
-            System.debug('into catch'+e.getMessage());
-            r.IsSuccess = false;
-            r.message = e.getMessage()+e.getStackTraceString();
-            return r;
-        }
+    if (dc.size() > 10) {
+      List<ProductTypes__c> ptList11 = new List<ProductTypes__c>();
+      List<String> dcList = dc[10].split('-');
+      if (dcList.size() > 1) {
+        ptList11 = [
+          SELECT Id, Name, Department_Cateogy__c, OPD_Flg__c, SIS_Flg__c
+          FROM ProductTypes__c
+          WHERE
+            DeleteFlg__c = FALSE
+            AND Department_Cateogy_Text__c LIKE :dcList[0]
+            AND OPD_SIS_Type__c = :dcList[1]
+        ];
+      } else {
+        ptList11 = [
+          SELECT Id, Name, Department_Cateogy__c, OPD_Flg__c, SIS_Flg__c
+          FROM ProductTypes__c
+          WHERE
+            DeleteFlg__c = FALSE
+            AND Department_Cateogy_Text__c LIKE :dcList[0]
+        ];
+      }
+      List<Map<String, String>> impProList = new List<Map<String, String>>();
+      for (ProductTypes__c pt : ptList11) {
+        Map<String, String> productMap = new Map<String, String>();
+        productMap.put('label', pt.Name);
+        productMap.put('value', pt.Id);
+        impProList.add(productMap);
+      }
+      impProMap.put(dc[10], impProList);
     }
-    //zhj MEBG鏂版柟妗堟敼閫� 2022-11-29 end
-}
\ No newline at end of file
+    if (dc.size() > 11) {
+      List<ProductTypes__c> ptList12 = new List<ProductTypes__c>();
+      List<String> dcList = dc[11].split('-');
+      if (dcList.size() > 1) {
+        ptList12 = [
+          SELECT Id, Name, Department_Cateogy__c, OPD_Flg__c, SIS_Flg__c
+          FROM ProductTypes__c
+          WHERE
+            DeleteFlg__c = FALSE
+            AND Department_Cateogy_Text__c LIKE :dcList[0]
+            AND OPD_SIS_Type__c = :dcList[1]
+        ];
+      } else {
+        ptList12 = [
+          SELECT Id, Name, Department_Cateogy__c, OPD_Flg__c, SIS_Flg__c
+          FROM ProductTypes__c
+          WHERE
+            DeleteFlg__c = FALSE
+            AND Department_Cateogy_Text__c LIKE :dcList[0]
+        ];
+      }
+      List<Map<String, String>> impProList = new List<Map<String, String>>();
+      for (ProductTypes__c pt : ptList12) {
+        Map<String, String> productMap = new Map<String, String>();
+        productMap.put('label', pt.Name);
+        productMap.put('value', pt.Id);
+        impProList.add(productMap);
+      }
+      impProMap.put(dc[11], impProList);
+    }
+    if (dc.size() > 12) {
+      List<ProductTypes__c> ptList13 = new List<ProductTypes__c>();
+      List<String> dcList = dc[12].split('-');
+      if (dcList.size() > 1) {
+        ptList13 = [
+          SELECT Id, Name, Department_Cateogy__c, OPD_Flg__c, SIS_Flg__c
+          FROM ProductTypes__c
+          WHERE
+            DeleteFlg__c = FALSE
+            AND Department_Cateogy_Text__c LIKE :dcList[0]
+            AND OPD_SIS_Type__c = :dcList[1]
+        ];
+      } else {
+        ptList13 = [
+          SELECT Id, Name, Department_Cateogy__c, OPD_Flg__c, SIS_Flg__c
+          FROM ProductTypes__c
+          WHERE
+            DeleteFlg__c = FALSE
+            AND Department_Cateogy_Text__c LIKE :dcList[0]
+        ];
+      }
+      List<Map<String, String>> impProList = new List<Map<String, String>>();
+      for (ProductTypes__c pt : ptList13) {
+        Map<String, String> productMap = new Map<String, String>();
+        productMap.put('label', pt.Name);
+        productMap.put('value', pt.Id);
+        impProList.add(productMap);
+      }
+      impProMap.put(dc[12], impProList);
+    }
+    if (dc.size() > 13) {
+      List<ProductTypes__c> ptList14 = new List<ProductTypes__c>();
+      List<String> dcList = dc[13].split('-');
+      if (dcList.size() > 1) {
+        ptList14 = [
+          SELECT Id, Name, Department_Cateogy__c, OPD_Flg__c, SIS_Flg__c
+          FROM ProductTypes__c
+          WHERE
+            DeleteFlg__c = FALSE
+            AND Department_Cateogy_Text__c LIKE :dcList[0]
+            AND OPD_SIS_Type__c = :dcList[1]
+        ];
+      } else {
+        ptList14 = [
+          SELECT Id, Name, Department_Cateogy__c, OPD_Flg__c, SIS_Flg__c
+          FROM ProductTypes__c
+          WHERE
+            DeleteFlg__c = FALSE
+            AND Department_Cateogy_Text__c LIKE :dcList[0]
+        ];
+      }
+      List<Map<String, String>> impProList = new List<Map<String, String>>();
+      for (ProductTypes__c pt : ptList14) {
+        Map<String, String> productMap = new Map<String, String>();
+        productMap.put('label', pt.Name);
+        productMap.put('value', pt.Id);
+        impProList.add(productMap);
+      }
+      impProMap.put(dc[13], impProList);
+    }
+    if (dc.size() > 14) {
+      List<ProductTypes__c> ptList15 = new List<ProductTypes__c>();
+      List<String> dcList = dc[14].split('-');
+      if (dcList.size() > 1) {
+        ptList15 = [
+          SELECT Id, Name, Department_Cateogy__c, OPD_Flg__c, SIS_Flg__c
+          FROM ProductTypes__c
+          WHERE
+            DeleteFlg__c = FALSE
+            AND Department_Cateogy_Text__c LIKE :dcList[0]
+            AND OPD_SIS_Type__c = :dcList[1]
+        ];
+      } else {
+        ptList15 = [
+          SELECT Id, Name, Department_Cateogy__c, OPD_Flg__c, SIS_Flg__c
+          FROM ProductTypes__c
+          WHERE
+            DeleteFlg__c = FALSE
+            AND Department_Cateogy_Text__c LIKE :dcList[0]
+        ];
+      }
+      List<Map<String, String>> impProList = new List<Map<String, String>>();
+      for (ProductTypes__c pt : ptList15) {
+        Map<String, String> productMap = new Map<String, String>();
+        productMap.put('label', pt.Name);
+        productMap.put('value', pt.Id);
+        impProList.add(productMap);
+      }
+      impProMap.put(dc[14], impProList);
+    }
+    if (dc.size() > 15) {
+      List<ProductTypes__c> ptList16 = new List<ProductTypes__c>();
+      List<String> dcList = dc[15].split('-');
+      if (dcList.size() > 1) {
+        ptList16 = [
+          SELECT Id, Name, Department_Cateogy__c, OPD_Flg__c, SIS_Flg__c
+          FROM ProductTypes__c
+          WHERE
+            DeleteFlg__c = FALSE
+            AND Department_Cateogy_Text__c LIKE :dcList[0]
+            AND OPD_SIS_Type__c = :dcList[1]
+        ];
+      } else {
+        ptList16 = [
+          SELECT Id, Name, Department_Cateogy__c, OPD_Flg__c, SIS_Flg__c
+          FROM ProductTypes__c
+          WHERE
+            DeleteFlg__c = FALSE
+            AND Department_Cateogy_Text__c LIKE :dcList[0]
+        ];
+      }
+      List<Map<String, String>> impProList = new List<Map<String, String>>();
+      for (ProductTypes__c pt : ptList16) {
+        Map<String, String> productMap = new Map<String, String>();
+        productMap.put('label', pt.Name);
+        productMap.put('value', pt.Id);
+        impProList.add(productMap);
+      }
+      impProMap.put(dc[15], impProList);
+    }
+    if (dc.size() > 16) {
+      List<ProductTypes__c> ptList17 = new List<ProductTypes__c>();
+      List<String> dcList = dc[16].split('-');
+      if (dcList.size() > 1) {
+        ptList17 = [
+          SELECT Id, Name, Department_Cateogy__c, OPD_Flg__c, SIS_Flg__c
+          FROM ProductTypes__c
+          WHERE
+            DeleteFlg__c = FALSE
+            AND Department_Cateogy_Text__c LIKE :dcList[0]
+            AND OPD_SIS_Type__c = :dcList[1]
+        ];
+      } else {
+        ptList17 = [
+          SELECT Id, Name, Department_Cateogy__c, OPD_Flg__c, SIS_Flg__c
+          FROM ProductTypes__c
+          WHERE
+            DeleteFlg__c = FALSE
+            AND Department_Cateogy_Text__c LIKE :dcList[0]
+        ];
+      }
+      List<Map<String, String>> impProList = new List<Map<String, String>>();
+      for (ProductTypes__c pt : ptList17) {
+        Map<String, String> productMap = new Map<String, String>();
+        productMap.put('label', pt.Name);
+        productMap.put('value', pt.Id);
+        impProList.add(productMap);
+      }
+      impProMap.put(dc[16], impProList);
+    }
+    if (dc.size() > 17) {
+      List<ProductTypes__c> ptList18 = new List<ProductTypes__c>();
+      List<String> dcList = dc[17].split('-');
+      if (dcList.size() > 1) {
+        ptList18 = [
+          SELECT Id, Name, Department_Cateogy__c, OPD_Flg__c, SIS_Flg__c
+          FROM ProductTypes__c
+          WHERE
+            DeleteFlg__c = FALSE
+            AND Department_Cateogy_Text__c LIKE :dcList[0]
+            AND OPD_SIS_Type__c = :dcList[1]
+        ];
+      } else {
+        ptList18 = [
+          SELECT Id, Name, Department_Cateogy__c, OPD_Flg__c, SIS_Flg__c
+          FROM ProductTypes__c
+          WHERE
+            DeleteFlg__c = FALSE
+            AND Department_Cateogy_Text__c LIKE :dcList[0]
+        ];
+      }
+      List<Map<String, String>> impProList = new List<Map<String, String>>();
+      for (ProductTypes__c pt : ptList18) {
+        Map<String, String> productMap = new Map<String, String>();
+        productMap.put('label', pt.Name);
+        productMap.put('value', pt.Id);
+        impProList.add(productMap);
+      }
+      impProMap.put(dc[17], impProList);
+    }
+    if (dc.size() > 18) {
+      List<ProductTypes__c> ptList19 = new List<ProductTypes__c>();
+      List<String> dcList = dc[18].split('-');
+      if (dcList.size() > 1) {
+        ptList19 = [
+          SELECT Id, Name, Department_Cateogy__c, OPD_Flg__c, SIS_Flg__c
+          FROM ProductTypes__c
+          WHERE
+            DeleteFlg__c = FALSE
+            AND Department_Cateogy_Text__c LIKE :dcList[0]
+            AND OPD_SIS_Type__c = :dcList[1]
+        ];
+      } else {
+        ptList19 = [
+          SELECT Id, Name, Department_Cateogy__c, OPD_Flg__c, SIS_Flg__c
+          FROM ProductTypes__c
+          WHERE
+            DeleteFlg__c = FALSE
+            AND Department_Cateogy_Text__c LIKE :dcList[0]
+        ];
+      }
+      List<Map<String, String>> impProList = new List<Map<String, String>>();
+      for (ProductTypes__c pt : ptList19) {
+        Map<String, String> productMap = new Map<String, String>();
+        productMap.put('label', pt.Name);
+        productMap.put('value', pt.Id);
+        impProList.add(productMap);
+      }
+      impProMap.put(dc[18], impProList);
+    }
+    if (dc.size() > 19) {
+      List<ProductTypes__c> ptList20 = new List<ProductTypes__c>();
+      List<String> dcList = dc[19].split('-');
+      if (dcList.size() > 1) {
+        ptList20 = [
+          SELECT Id, Name, Department_Cateogy__c, OPD_Flg__c, SIS_Flg__c
+          FROM ProductTypes__c
+          WHERE
+            DeleteFlg__c = FALSE
+            AND Department_Cateogy_Text__c LIKE :dcList[0]
+            AND OPD_SIS_Type__c = :dcList[1]
+        ];
+      } else {
+        ptList20 = [
+          SELECT Id, Name, Department_Cateogy__c, OPD_Flg__c, SIS_Flg__c
+          FROM ProductTypes__c
+          WHERE
+            DeleteFlg__c = FALSE
+            AND Department_Cateogy_Text__c LIKE :dcList[0]
+        ];
+      }
+      List<Map<String, String>> impProList = new List<Map<String, String>>();
+      for (ProductTypes__c pt : ptList20) {
+        Map<String, String> productMap = new Map<String, String>();
+        productMap.put('label', pt.Name);
+        productMap.put('value', pt.Id);
+        impProList.add(productMap);
+      }
+      impProMap.put(dc[19], impProList);
+    }
+    if (dc.size() > 20) {
+      List<ProductTypes__c> ptList21 = new List<ProductTypes__c>();
+      List<String> dcList = dc[20].split('-');
+      if (dcList.size() > 1) {
+        ptList21 = [
+          SELECT Id, Name, Department_Cateogy__c, OPD_Flg__c, SIS_Flg__c
+          FROM ProductTypes__c
+          WHERE
+            DeleteFlg__c = FALSE
+            AND Department_Cateogy_Text__c LIKE :dcList[0]
+            AND OPD_SIS_Type__c = :dcList[1]
+        ];
+      } else {
+        ptList21 = [
+          SELECT Id, Name, Department_Cateogy__c, OPD_Flg__c, SIS_Flg__c
+          FROM ProductTypes__c
+          WHERE
+            DeleteFlg__c = FALSE
+            AND Department_Cateogy_Text__c LIKE :dcList[0]
+        ];
+      }
+      List<Map<String, String>> impProList = new List<Map<String, String>>();
+      for (ProductTypes__c pt : ptList21) {
+        Map<String, String> productMap = new Map<String, String>();
+        productMap.put('label', pt.Name);
+        productMap.put('value', pt.Id);
+        impProList.add(productMap);
+      }
+      impProMap.put(dc[20], impProList);
+    }
+    if (dc.size() > 21) {
+      List<ProductTypes__c> ptList22 = new List<ProductTypes__c>();
+      List<String> dcList = dc[21].split('-');
+      if (dcList.size() > 1) {
+        ptList22 = [
+          SELECT Id, Name, Department_Cateogy__c, OPD_Flg__c, SIS_Flg__c
+          FROM ProductTypes__c
+          WHERE
+            DeleteFlg__c = FALSE
+            AND Department_Cateogy_Text__c LIKE :dcList[0]
+            AND OPD_SIS_Type__c = :dcList[1]
+        ];
+      } else {
+        ptList22 = [
+          SELECT Id, Name, Department_Cateogy__c, OPD_Flg__c, SIS_Flg__c
+          FROM ProductTypes__c
+          WHERE
+            DeleteFlg__c = FALSE
+            AND Department_Cateogy_Text__c LIKE :dcList[0]
+        ];
+      }
+      List<Map<String, String>> impProList = new List<Map<String, String>>();
+      for (ProductTypes__c pt : ptList22) {
+        Map<String, String> productMap = new Map<String, String>();
+        productMap.put('label', pt.Name);
+        productMap.put('value', pt.Id);
+        impProList.add(productMap);
+      }
+      impProMap.put(dc[21], impProList);
+    }
+    if (dc.size() > 22) {
+      List<ProductTypes__c> ptList23 = new List<ProductTypes__c>();
+      List<String> dcList = dc[22].split('-');
+      if (dcList.size() > 1) {
+        ptList23 = [
+          SELECT Id, Name, Department_Cateogy__c, OPD_Flg__c, SIS_Flg__c
+          FROM ProductTypes__c
+          WHERE
+            DeleteFlg__c = FALSE
+            AND Department_Cateogy_Text__c LIKE :dcList[0]
+            AND OPD_SIS_Type__c = :dcList[1]
+        ];
+      } else {
+        ptList23 = [
+          SELECT Id, Name, Department_Cateogy__c, OPD_Flg__c, SIS_Flg__c
+          FROM ProductTypes__c
+          WHERE
+            DeleteFlg__c = FALSE
+            AND Department_Cateogy_Text__c LIKE :dcList[0]
+        ];
+      }
+      List<Map<String, String>> impProList = new List<Map<String, String>>();
+      for (ProductTypes__c pt : ptList23) {
+        Map<String, String> productMap = new Map<String, String>();
+        productMap.put('label', pt.Name);
+        productMap.put('value', pt.Id);
+        impProList.add(productMap);
+      }
+      impProMap.put(dc[22], impProList);
+    }
+    if (dc.size() > 23) {
+      List<ProductTypes__c> ptList24 = new List<ProductTypes__c>();
+      List<String> dcList = dc[23].split('-');
+      if (dcList.size() > 1) {
+        ptList24 = [
+          SELECT Id, Name, Department_Cateogy__c, OPD_Flg__c, SIS_Flg__c
+          FROM ProductTypes__c
+          WHERE
+            DeleteFlg__c = FALSE
+            AND Department_Cateogy_Text__c LIKE :dcList[0]
+            AND OPD_SIS_Type__c = :dcList[1]
+        ];
+      } else {
+        ptList24 = [
+          SELECT Id, Name, Department_Cateogy__c, OPD_Flg__c, SIS_Flg__c
+          FROM ProductTypes__c
+          WHERE
+            DeleteFlg__c = FALSE
+            AND Department_Cateogy_Text__c LIKE :dcList[0]
+        ];
+      }
+      List<Map<String, String>> impProList = new List<Map<String, String>>();
+      for (ProductTypes__c pt : ptList24) {
+        Map<String, String> productMap = new Map<String, String>();
+        productMap.put('label', pt.Name);
+        productMap.put('value', pt.Id);
+        impProList.add(productMap);
+      }
+      impProMap.put(dc[23], impProList);
+    }
+
+    return impProMap;
+  }
+  // 鎵归噺娣诲姞鍛ㄦ姤by vivek end
+
+  //zhj MEBG鏂版柟妗堟敼閫� 2022-11-29 start
+  @AuraEnabled
+  public static ControllerResponse searchAgencyDataId(String hospitalId) {
+    ControllerResponse r = new ControllerResponse();
+    try {
+      if (String.isBlank(hospitalId)) {
+        r.IsSuccess = true;
+        r.Message = 'noHospitalId';
+        return r;
+      }
+      List<Agency_Contact__c> acList = [
+        SELECT id, AWS_Data_Id__c, Agency_Hospital__r.Name
+        FROM Agency_Contact__c
+        WHERE Agency_Hospital__c = :hospitalId
+      ];
+      r.IsSuccess = true;
+      r.Message = '';
+      r.Data = acList;
+      return r;
+    } catch (Exception e) {
+      System.debug('into catch' + e.getMessage());
+      r.IsSuccess = false;
+      r.message = e.getMessage() + e.getStackTraceString();
+      return r;
+    }
+  }
+  //zhj MEBG鏂版柟妗堟敼閫� 2022-11-29 end
+}

--
Gitblit v1.9.1