From e9e1806b0f4b5bae1fc36204ccc5d6fdad52d66f Mon Sep 17 00:00:00 2001
From: buli <137736985@qq.com>
Date: 星期一, 05 六月 2023 11:22:08 +0800
Subject: [PATCH] Merge branch 'master' into LightningUpgradeProject

---
 force-app/main/default/classes/RepairBeforeInsertHandler.cls |  236 ++++++++++++++++++++++++++++++++++++++++++----------------
 1 files changed, 170 insertions(+), 66 deletions(-)

diff --git a/force-app/main/default/classes/RepairBeforeInsertHandler.cls b/force-app/main/default/classes/RepairBeforeInsertHandler.cls
index fd195e6..f7aa1ae 100644
--- a/force-app/main/default/classes/RepairBeforeInsertHandler.cls
+++ b/force-app/main/default/classes/RepairBeforeInsertHandler.cls
@@ -56,12 +56,20 @@
         List<String> HospitalId = new List<String>();
         List<String> provinceList = new List<String>();//鐪�
         List<String> cityList = new List<String>();//甯�
+        List<String> inchargeStaff = new List<String>();//甯�
         for (Repair__c nObj : newList) {
             //鍖婚櫌鐨凜SM绠$悊鐪�(鏂囨湰) 鍊间笉涓虹┖锛屽苟涓旀敹璐у湴鍧�涓嶄负绌�
             if(nObj.Hospital__c != null && nObj.address_Contacts__c == null && nObj.address_Telephone__c == null && nObj.address_Contacts_Name__c == null && nObj.address_City__c == null && nObj.Detailed_Address__c == null){
                 HospitalId.add(nObj.Hospital__C);
             }
+            inchargeStaff.add(nObj.Incharge_Staff__c);
         }
+        // gzw DB202212270703 20230301 澶囧搧鍦板潃瀵煎叆鏀归�� start
+        Map<String,user> profileAndRoleMap = new Map<String,user>();
+        for(user re :[select id,Profile.name,Branch__c,UserRole.name from user where id in :inchargeStaff]){
+            profileAndRoleMap.put(re.id, re);
+        }
+        // gzw DB202212270703 20230301 澶囧搧鍦板潃瀵煎叆鏀归�� start
         if(HospitalId != null && HospitalId.size() > 0){
             String HospitalSQl = 'SELECT id,OCM_man_province_txt__c,FieldCity_Master_Name__c from Account where id in :HospitalId';
             List<Account> accountList = Database.query(HospitalSQl);
@@ -70,13 +78,19 @@
                     for(Account ac : accountList){
                         if(nObj.Hospital__c == ac.id){
                             String provinceAndCity = '';
-                            if('灞变笢' == ac.OCM_man_province_txt__c){
-                                if('鐑熷彴甯�' == ac.FieldCity_Master_Name__c || '濞佹捣甯�' == ac.FieldCity_Master_Name__c || '鏃ョ収甯�' == ac.FieldCity_Master_Name__c 
-                                    || '闈掑矝甯�' == ac.FieldCity_Master_Name__c || '娼嶅潑甯�' == ac.FieldCity_Master_Name__c){
-                                    provinceAndCity = matchupMap.get('灞变笢,闈掑矝甯�');
-                                }else{
-                                    provinceAndCity = matchupMap.get('灞变笢,娴庡崡甯�');
-                                }
+                            //DB202303246427 LY 20230329 start 
+                            // if('灞变笢' == ac.OCM_man_province_txt__c){
+                            //     if('鐑熷彴甯�' == ac.FieldCity_Master_Name__c || '濞佹捣甯�' == ac.FieldCity_Master_Name__c || '鏃ョ収甯�' == ac.FieldCity_Master_Name__c 
+                            //         || '闈掑矝甯�' == ac.FieldCity_Master_Name__c || '娼嶅潑甯�' == ac.FieldCity_Master_Name__c){
+                            //         provinceAndCity = matchupMap.get('灞变笢,闈掑矝甯�');
+                            //     }else{
+                            //         provinceAndCity = matchupMap.get('灞变笢,娴庡崡甯�');
+                            //     }
+                            if('闈掑矝' == ac.OCM_man_province_txt__c){
+                                provinceAndCity = matchupMap.get('灞变笢,闈掑矝甯�');
+                            }else if ('灞变笢' == ac.OCM_man_province_txt__c) {
+                                provinceAndCity = matchupMap.get('灞变笢,娴庡崡甯�');
+                            //DB202303246427 LY 20230329 end
                             }else{
                                 provinceAndCity = matchupMap.get(ac.OCM_man_province_txt__c);
                             }
@@ -93,79 +107,169 @@
             system.debug('cityList='+cityList);
             system.debug('provinceList='+provinceList);
             if(falg && provinceList != null && cityList != null && provinceList.size() > 0 && cityList.size() > 0){
-                String addressSQl = 'SELECT ID,Customer__c,Customer_Name__c,Contacts__c,Contacts_Name__c,Telephone__c,Province__c,Province_Name__c,City__c,City_Name__c,Detailed_Address__c,ZipCode__c'
-                    			//+ ',Contacts__r.LastName_Encrypted__c,ZipCode_Encrypted__c,Detailed_Address_Encrypted__c,Telephone_Encrypted__c' // PI鏀归�� By Bright 20220407 zhj MEBG鏂版柟妗堟敼閫� 2022-11-29
+                // gzw DB202212270703 20230301 澶囧搧鍦板潃瀵煎叆鏀归�� start
+                // String addressSQl = 'SELECT ID,Customer__c,Customer_Name__c,Contacts__c,Contacts_Name__c,Telephone__c,Province__c,Province_Name__c,City__c,City_Name__c,Detailed_Address__c,ZipCode__c'
+                //     			//+ ',Contacts__r.LastName_Encrypted__c,ZipCode_Encrypted__c,Detailed_Address_Encrypted__c,Telephone_Encrypted__c' // PI鏀归�� By Bright 20220407 zhj MEBG鏂版柟妗堟敼閫� 2022-11-29
+                //                 + ' from Address__c  '
+                //                 + ' where Address_Classification__c =  \'鍔炰簨澶刓' and Province_Name__c in :provinceList and City_Name__c in :cityList '
+                //                 + ' order by Using_Datetime__c desc NULLS LAST ';
+
+
+                String addressSQl = 'SELECT ID,Customer__c,Customer_Name__c,Contacts__c,Contacts_Name__c,Telephone__c,Province__c,Province_Name__c,City__c,City_Name__c,Detailed_Address__c,ZipCode__c '
+                                + ' ,Address_Classification__c,Beipin_Center__c  '
+                                //+ ',Contacts__r.LastName_Encrypted__c,ZipCode_Encrypted__c,Detailed_Address_Encrypted__c,Telephone_Encrypted__c' // PI鏀归�� By Bright 20220407 zhj MEBG鏂版柟妗堟敼閫� 2022-11-29
                                 + ' from Address__c  '
-                                + ' where Address_Classification__c =  \'鍔炰簨澶刓' and Province_Name__c in :provinceList and City_Name__c in :cityList '
+                                + ' where ( Address_Classification__c =  \'鍔炰簨澶刓' and Province_Name__c in :provinceList and City_Name__c in :cityList )'
+                                + ' or Address_Classification__c =  \'澶囧搧\''
                                 + ' order by Using_Datetime__c desc NULLS LAST ';
+
+                // gzw DB202212270703 20230301 澶囧搧鍦板潃瀵煎叆鏀归�� end
 				system.debug('addressSQl='+addressSQl);
-                List<Address__c> addressList = Database.query(addressSQl);
-                
-                if(addressList != null && addressList.size() > 0){
-                    system.debug(addressList[0]);
+                List<Address__c> addressList = new List<Address__c>();
+                Map<String,Address__c> beipinMap = new Map<String,Address__c>();
+                List<Address__c> addressTempList = Database.query(addressSQl);
+                for (Address__c ad :addressTempList) {
+                    if (ad.Address_Classification__c == '澶囧搧') {
+                        beipinMap.put(ad.Beipin_Center__c,ad);
+                    }else{
+                        addressList.add(ad);
+                    }
+                }
+                //List<Address__c> addressList = Database.query(addressSQl);
+
+                System.debug('杩涘叆澶囧搧+++++addressTempList ' + addressTempList.size());
+                // if(addressList != null && addressList.size() > 0){
+                if(addressTempList != null && addressTempList.size() > 0){
                     for (Repair__c nObj : newList) {
-                        if(nObj.Hospital__c != null && nObj.address_Contacts__c == null && nObj.address_Telephone__c == null && nObj.address_Contacts_Name__c == null && nObj.address_City__c == null && nObj.Detailed_Address__c == null){
-                            //鐢变簬涓轰簡鍑忓皯select ,鎵�浠ヨ幏鍙栨垜浠厤缃ソ鐨刴ap锛屾牴鎹繚鏈夎澶囦笂鍖婚櫌鐨� OCSM绠$悊鐪�(鏂囨湰) 鐨勫�硷紝鑾峰彇瀵瑰簲鐨勫湴鍧�涓婄殑鐪佸拰甯�
-                            for(Account ac : accountList){
-                                if(nObj.Hospital__c == ac.id){
-                                    String provinceAndCity = '';
-                                    matchupMap.get(ac.OCM_man_province_txt__c);
-                                    if('灞变笢' == ac.OCM_man_province_txt__c){
-                                        if('鐑熷彴甯�' == ac.FieldCity_Master_Name__c || '濞佹捣甯�' == ac.FieldCity_Master_Name__c || '鏃ョ収甯�' == ac.FieldCity_Master_Name__c 
-                                            || '闈掑矝甯�' == ac.FieldCity_Master_Name__c || '娼嶅潑甯�' == ac.FieldCity_Master_Name__c){
+                        System.debug('杩涘叆澶囧搧+++++ ');
+                        if (nObj.Returns_Product_way__c == '澶囧搧涓績') {
+                            user re = profileAndRoleMap.get(nObj.Incharge_Staff__c);
+                            if (re == null) return;
+                            String beipCenter = '';
+                            if (re.Profile.name.startsWith('2B3')) {
+                                beipCenter = '鍖椾含澶囧搧涓績';
+                            }else if (re.Profile.name.startsWith('2B2')) {
+                                if (re.Branch__c == '鍖椾含') {
+                                    beipCenter = '鍖椾含澶囧搧涓績';
+                                }else if (re.Branch__c == '涓婃捣') {
+                                    beipCenter = '鍗庝笢澶囧搧涓績';
+                                }else if (re.Branch__c == '骞垮窞') {
+                                    beipCenter = '骞垮窞澶囧搧涓績';
+                                }
+                            }else if (re.UserRole.name == 'CTEC鏁欒偛鏈儴') {
+                                if (re.Branch__c == '鍖椾含') {
+                                    beipCenter = '鍖椾含C-TEC';
+                                }else if (re.Branch__c == '涓婃捣') {
+                                    beipCenter = '涓婃捣C-TEC';
+                                }else if (re.Branch__c == '骞垮窞') {
+                                    beipCenter = '骞垮窞C-TEC';
+                                }
+                            }
+                            System.debug('杩涘叆澶囧搧+++++ beipCenter' + beipCenter);
+
+                            if(String.isNotBlank(beipCenter)){
+                                Address__c addressbeip = beipinMap.get(beipCenter);
+                                System.debug('杩涘叆澶囧搧+++++ addressbeip' + addressbeip.id);
+                                //鑱旂郴浜�
+                                String contactsName = '';
+                                String contactsNameEncrypt = '';
+                                if(!String.isBlank(addressbeip.Contacts__c)){
+                                    contactsName = addressbeip.Contacts_Name__c;
+                                }
+                                //鐪�+甯�
+                                String address = addressbeip.Detailed_Address__c.trim();
+                                String cityName = addressbeip.City_Name__c.trim();
+                                String ProvinceCity = addressbeip.Province_Name__c.trim()+cityName;
+                                //闃叉璇︾粏鍦板潃閲岄潰甯︾潃鐪佷唤鍜屽競
+                                if(!address.contains(ProvinceCity)){
+                                    address = ProvinceCity + address;
+                                }
+                                //鑱旂郴浜�
+                                String ContactPerson = '';
+                                if(!String.isBlank(addressbeip.Customer__c)){
+                                    ContactPerson = addressbeip.Customer_Name__c;
+                                }
+                                nObj.address_Contacts__c=contactsName;
+                                nObj.address_ZipCode__c = addressbeip.ZipCode__c;
+                                nObj.address_City__c = cityName;
+                                nObj.address_Contacts_Name__c = ContactPerson;
+                                nObj.address_Telephone__c=addressbeip.Telephone__c;
+                                nObj.Detailed_Address__c=address;
+                                nObj.Encrypt_Update_Flag__c=true;
+                                system.debug('nObj assign and Encrypt_Update_Flag__c set true');
+
+                            }
+                        }else{
+                            if(nObj.Hospital__c != null && nObj.address_Contacts__c == null && nObj.address_Telephone__c == null && nObj.address_Contacts_Name__c == null && nObj.address_City__c == null && nObj.Detailed_Address__c == null){
+                                //鐢变簬涓轰簡鍑忓皯select ,鎵�浠ヨ幏鍙栨垜浠厤缃ソ鐨刴ap锛屾牴鎹繚鏈夎澶囦笂鍖婚櫌鐨� OCSM绠$悊鐪�(鏂囨湰) 鐨勫�硷紝鑾峰彇瀵瑰簲鐨勫湴鍧�涓婄殑鐪佸拰甯�
+                                for(Account ac : accountList){
+                                    if(nObj.Hospital__c == ac.id){
+                                        String provinceAndCity = '';
+                                        matchupMap.get(ac.OCM_man_province_txt__c);
+                                        //DB202303246427 LY 20230329 start 
+                                        // if('灞变笢' == ac.OCM_man_province_txt__c){
+                                        //     if('鐑熷彴甯�' == ac.FieldCity_Master_Name__c || '濞佹捣甯�' == ac.FieldCity_Master_Name__c || '鏃ョ収甯�' == ac.FieldCity_Master_Name__c 
+                                        //         || '闈掑矝甯�' == ac.FieldCity_Master_Name__c || '娼嶅潑甯�' == ac.FieldCity_Master_Name__c){
+                                        //         provinceAndCity = matchupMap.get('灞变笢,闈掑矝甯�');
+                                        //     }else{
+                                        //         provinceAndCity = matchupMap.get('灞变笢,娴庡崡甯�');
+                                        //     }
+                                        if ('闈掑矝' == ac.OCM_man_province_txt__c) {
                                             provinceAndCity = matchupMap.get('灞变笢,闈掑矝甯�');
-                                        }else{
+                                        }else if ('灞变笢' == ac.OCM_man_province_txt__c) {
                                             provinceAndCity = matchupMap.get('灞变笢,娴庡崡甯�');
+                                        //DB202303246427 LY 20230329 end
+                                        }else{
+                                            provinceAndCity = matchupMap.get(ac.OCM_man_province_txt__c);
                                         }
-                                    }else{
-                                        provinceAndCity = matchupMap.get(ac.OCM_man_province_txt__c);
-                                    }
-                                    system.debug('provinceAndCity='+provinceAndCity);
-                                    if(provinceAndCity != null){//涓嶈兘涓虹┖
-                                        //鍦板潃琛ㄤ笂鐪佸拰甯備笉鑳戒负绌�
-                                        if(addressList[0].Province_Name__c != null && addressList[0].City_Name__c!= null){
-                                            //鎷兼帴涓�涓瓧绗︿覆鏂逛究瀵规瘮
-                                            String pAc = addressList[0].Province_Name__c + ',' + addressList[0].City_Name__c;
-                                            if(provinceAndCity.equals(pAc)){
-                                                //鑱旂郴浜�
-                                                String contactsName = '';
-                                                String contactsNameEncrypt = '';// 20220407 PI鏀归�� By Bright
-                                                if(!String.isBlank(addressList[0].Contacts__c)){
-                                                    contactsName = addressList[0].Contacts_Name__c;
-                                                    //contactsNameEncrypt = addressList[0].Contacts__r.LastName_Encrypted__c;// 20220407 PI鏀归�� By Bright   zhj MEBG鏂版柟妗堟敼閫� 2022-11-29
+                                        system.debug('provinceAndCity='+provinceAndCity);
+                                        if(provinceAndCity != null){//涓嶈兘涓虹┖
+                                            //鍦板潃琛ㄤ笂鐪佸拰甯備笉鑳戒负绌�
+                                            if(addressList[0].Province_Name__c != null && addressList[0].City_Name__c!= null){
+                                                //鎷兼帴涓�涓瓧绗︿覆鏂逛究瀵规瘮
+                                                String pAc = addressList[0].Province_Name__c + ',' + addressList[0].City_Name__c;
+                                                if(provinceAndCity.equals(pAc)){
+                                                    //鑱旂郴浜�
+                                                    String contactsName = '';
+                                                    String contactsNameEncrypt = '';// 20220407 PI鏀归�� By Bright
+                                                    if(!String.isBlank(addressList[0].Contacts__c)){
+                                                        contactsName = addressList[0].Contacts_Name__c;
+                                                        //contactsNameEncrypt = addressList[0].Contacts__r.LastName_Encrypted__c;// 20220407 PI鏀归�� By Bright   zhj MEBG鏂版柟妗堟敼閫� 2022-11-29
+                                                    }
+                                                    //鐪�+甯�
+                                                    String address = addressList[0].Detailed_Address__c.trim();
+                                                    //String addressEncrypt = addressList[0].Detailed_Address_Encrypted__c;   zhj MEBG鏂版柟妗堟敼閫� 2022-11-29
+                                                    String cityName = addressList[0].City_Name__c.trim();
+                                                    String ProvinceCity = addressList[0].Province_Name__c.trim()+cityName;
+                                                    //闃叉璇︾粏鍦板潃閲岄潰甯︾潃鐪佷唤鍜屽競
+                                                    if(!address.contains(ProvinceCity)){
+                                                        address = ProvinceCity + address;
+                                                    }
+                                                    //鑱旂郴浜�
+                                                    String ContactPerson = '';
+                                                    if(!String.isBlank(addressList[0].Customer__c)){
+                                                        ContactPerson = addressList[0].Customer_Name__c;
+                                                    }
+                                                    nObj.address_Contacts__c=contactsName;
+                                                    //nObj.address_Contacts_Encrypt__c=contactsNameEncrypt;// 20220407 PI鏀归�� By Bright   zhj MEBG鏂版柟妗堟敼閫� 2022-11-29
+                                                    nObj.address_ZipCode__c = addressList[0].ZipCode__c;
+                                                    //nObj.address_ZipCode_Encrypt__c = addressList[0].ZipCode_Encrypted__c;// 20220407 PI鏀归�� By Bright   zhj MEBG鏂版柟妗堟敼閫� 2022-11-29
+                                                    nObj.address_City__c = cityName;
+                                                    nObj.address_Contacts_Name__c = ContactPerson;
+                                                    nObj.address_Telephone__c=addressList[0].Telephone__c;
+                                                    //nObj.address_Telephone_Encrypt__c=addressList[0].Telephone_Encrypted__c;// 20220407 PI鏀归�� By Bright  zhj MEBG鏂版柟妗堟敼閫� 2022-11-29
+                                                    nObj.Detailed_Address__c=address;
+                                                    //nObj.Detailed_Address_Encrypt__c=addressEncrypt;// 20220407 PI鏀归�� By Bright   zhj MEBG鏂版柟妗堟敼閫� 2022-11-29
+                                                    nObj.Encrypt_Update_Flag__c=true;// 20220411 PI鏀归�� By Bright
+                                                    system.debug('nObj assign and Encrypt_Update_Flag__c set true');
                                                 }
-                                                //鐪�+甯�
-                                                String address = addressList[0].Detailed_Address__c.trim();
-                                                //String addressEncrypt = addressList[0].Detailed_Address_Encrypted__c;   zhj MEBG鏂版柟妗堟敼閫� 2022-11-29
-                                                String cityName = addressList[0].City_Name__c.trim();
-                                                String ProvinceCity = addressList[0].Province_Name__c.trim()+cityName;
-                                                //闃叉璇︾粏鍦板潃閲岄潰甯︾潃鐪佷唤鍜屽競
-                                                if(!address.contains(ProvinceCity)){
-                                                    address = ProvinceCity + address;
-                                                }
-                                                //鑱旂郴浜�
-                                                String ContactPerson = '';
-                                                if(!String.isBlank(addressList[0].Customer__c)){
-                                                    ContactPerson = addressList[0].Customer_Name__c;
-                                                }
-                                                nObj.address_Contacts__c=contactsName;
-                                                //nObj.address_Contacts_Encrypt__c=contactsNameEncrypt;// 20220407 PI鏀归�� By Bright   zhj MEBG鏂版柟妗堟敼閫� 2022-11-29
-                                                nObj.address_ZipCode__c = addressList[0].ZipCode__c;
-                                                //nObj.address_ZipCode_Encrypt__c = addressList[0].ZipCode_Encrypted__c;// 20220407 PI鏀归�� By Bright   zhj MEBG鏂版柟妗堟敼閫� 2022-11-29
-                                                nObj.address_City__c = cityName;
-                                                nObj.address_Contacts_Name__c = ContactPerson;
-                                                nObj.address_Telephone__c=addressList[0].Telephone__c;
-                                                //nObj.address_Telephone_Encrypt__c=addressList[0].Telephone_Encrypted__c;// 20220407 PI鏀归�� By Bright  zhj MEBG鏂版柟妗堟敼閫� 2022-11-29
-                                                nObj.Detailed_Address__c=address;
-                                                //nObj.Detailed_Address_Encrypt__c=addressEncrypt;// 20220407 PI鏀归�� By Bright   zhj MEBG鏂版柟妗堟敼閫� 2022-11-29
-                                                nObj.Encrypt_Update_Flag__c=true;// 20220411 PI鏀归�� By Bright
-                                                system.debug('nObj assign and Encrypt_Update_Flag__c set true');
                                             }
                                         }
                                     }
                                 }
                             }
                         }
+                        
                     }
                 }
             }

--
Gitblit v1.9.1