fuyu
2023-03-06 042735c4d44e740121dbbb52257617d348a1c391
force-app/main/default/classes/DealerPersonnelController.cls
@@ -1,4 +1,4 @@
public with sharing class DealerPersonnelController {
public without sharing class DealerPersonnelController {
    public DealerPersonnelController() {
    }
@@ -6,171 +6,548 @@
    public static String processData(String fileData,String sobjectName,List<String> fields) {
        system.debug('fileData===============>'+fileData);
        String errorMage = '';
        String str = '';
        try {
        //DB202301262139 SFDC经销商人员导入功能改进 start
        // Savepoint sp = Database.setSavepoint();
        // try {
        //DB202301262139 SFDC经销商人员导入功能改进 end
            if(fileData != null){
                String[] fileLines = new String[]{};
                fileLines = fileData.split('\n');
                system.debug('fileLines===================>'+fileLines);
                // 记录类型
                List<String> recordTypeList = new List<String>();
                // 经销商管理编码
                List<String> managementCodeList = new List<String>();
                //SWAG-CEW85A 【委托】消耗品&DAMS系统经销商人员管理——信息完善;fy start
                // 客户名
                List<String> accountNameList = new List<String>();
                List<String> CustomerNameList = new List<String>();
                //人员管理编码
                List<String> CManageCodeList = new List<String>();
                //SWAG-CEW85A 【委托】消耗品&DAMS系统经销商人员管理——信息完善;fy end
                // 导入的数据
                List<List<String>> inputList = new List<List<String>>();
                for (Integer i = 1,j = fileLines.size(); i < j; i++) {
                    List<String> inputValues = new List<String>();
                    inputValues = fileLines[i].split(',');
                    System.debug('inputValues=============>'+inputValues);
                    if(inputValues != null){
                        if(inputValues[0] == '' || inputValues[0] == null){
                            errorMage += 'errorMage: 第' + i + '行,记录类型不能为空!';
                            errorMage += '=';
                        }
                        if(inputValues[1] == '' || inputValues[1]== null){
                            errorMage += 'errorMage: 第' + i + '行,姓氏不能为空!';
                            errorMage += '=';
                        }
                        if(inputValues[2] == '' || inputValues[2] == null){
                            errorMage += 'errorMage: 第' + i + '行,名字不能为空!';
                            errorMage += '=';
                        }
                        if(inputValues[3] == '' || inputValues[3] ==null){
                            errorMage += 'errorMage: 第' + i + '行,手机不能为空!';
                            errorMage += '=';
                    if(fileLines[i].replace(',','').trim()!=''){
                        inputValues = fileLines[i].split(',',-1);
                        System.debug('inputValues=============>'+inputValues);
                        System.debug('fileLines[i]=============>'+fileLines[i]);
                        if(inputValues != null){
                            //DB202301262139 SFDC经销商人员导入功能改进 start
                            // if(inputValues[0] == '' || inputValues[0]== null){
                            //     errorMage += 'errorMage: 第' + i + '行,姓名不能为空!';
                            //     errorMage += '=';
                            // }
                            // // if(inputValues[1] == '' || inputValues[1] ==null){
                            // //     errorMage += 'errorMage: 第' + i + '行,手机不能为空!';
                            // //     errorMage += '=';
                            // // }
                            // // boolean mobileNumberFlag = mobileNumberVerification(inputValues[1]);
                            // // if(mobileNumberFlag == false){
                            // //     errorMage += 'errorMage: 你的手机号码不太正确,请检查您的手机是否正确!';
                            // //     errorMage += '=';
                            // // }
                            // // if(inputValues[2] == '' || inputValues[2] == null){
                            // //     errorMage += 'errorMage: 第' + i + '行,邮箱不能为空!';
                            // //     errorMage += '=';
                            // // }
                            // //SWAG-CEW85A 【委托】消耗品&DAMS系统经销商人员管理——信息完善;fy start
                            // if(inputValues[2] != '' && inputValues[2] != null){
                            // //SWAG-CEW85A 【委托】消耗品&DAMS系统经销商人员管理——信息完善;fy end
                            //     boolean mailboxFlag = mailboxVerification(inputValues[2]);
                            //     if(mailboxFlag == false){
                            //         errorMage += 'errorMage:第' + i + '行, 你的邮箱不太正确,请检查您的邮箱格式!';
                            //         errorMage += '=';
                            //     }
                            // //SWAG-CEW85A 【委托】消耗品&DAMS系统经销商人员管理——信息完善;fy start
                            // }
                            // //SWAG-CEW85A 【委托】消耗品&DAMS系统经销商人员管理——信息完善;fy end
                            // if(inputValues[3] == '' || inputValues[3] == null){
                            //     errorMage += 'errorMage: 第' + i + '行,经销商管理编码不能为空!';
                            //     errorMage += '=';
                            // }
                            // //SWAG-CEW85A 【委托】消耗品&DAMS系统经销商人员管理——信息完善;fy start
                            // if(inputValues[4] == '' || inputValues[4] == null){
                            //     errorMage += 'errorMage: 第' + i + '行,客户名不能为空!';
                            //     errorMage += '=';
                            // }
                            // if(inputValues[5] == '' || inputValues[5] == null){
                            //     errorMage += 'errorMage: 第' + i + '行,经销商用户不能为空!';
                            //     errorMage += '=';
                            // }
                            //DB202301262139 SFDC经销商人员导入功能改进 end
                            //SWAG-CEW85A 【委托】消耗品&DAMS系统经销商人员管理——信息完善;fy end
                            inputValues[3]=inputValues[3].leftpad(10,'0');
                            System.debug('测试去零1 '+inputValues[3].replace(' ','').length());
                            managementCodeList.add(inputValues[3]);
                            //SWAG-CEW85A 【委托】消耗品&DAMS系统经销商人员管理——信息完善;fy start
                            CustomerNameList.add(inputValues[4]);
                            CManageCodeList.add(inputValues[6]);
                            //SWAG-CEW85A 【委托】消耗品&DAMS系统经销商人员管理——信息完善;fy end
                            inputList.add(inputValues);
                            //导入的数据
<<<<<<< HEAD
                            System.debug('inputValues[0]===============>'+ inputValues[0]);
                            System.debug('inputValues[1]===============>'+ inputValues[1]);
                            System.debug('inputValues[2]===============>'+ inputValues[2]);
                            System.debug('inputValues[3]===============>'+ inputValues[3]);
                            //SWAG-CEW85A 【委托】消耗品&DAMS系统经销商人员管理——信息完善;fy start
                            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]);
                            System.debug('inputValues[11]===============>'+ inputValues[11]);
                            System.debug('inputValues[12]===============>'+ inputValues[12]);
                            System.debug('inputValues[13]===============>'+ inputValues[13]);
                            System.debug('inputValues[14]===============>'+ inputValues[14]);
                            System.debug('inputValues[15]===============>'+ inputValues[15]);
                            System.debug('inputValues[16]===============>'+ inputValues[16]);
=======
                            // System.debug('inputValues[0]===============>'+ inputValues[0]);
                            // System.debug('inputValues[1]===============>'+ inputValues[1]);
                            // System.debug('inputValues[2]===============>'+ inputValues[2]);
                            // System.debug('inputValues[3]===============>'+ inputValues[3]);
                            // //SWAG-CEW85A 【委托】消耗品&DAMS系统经销商人员管理——信息完善;fy start
                            // 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]);
                            // System.debug('inputValues[11]===============>'+ inputValues[11]);
                            // System.debug('inputValues[12]===============>'+ inputValues[12]);
                            // System.debug('inputValues[13]===============>'+ inputValues[13]);
                            // System.debug('inputValues[14]===============>'+ inputValues[14]);
                            // System.debug('inputValues[15]===============>'+ inputValues[15]);
                            // System.debug('inputValues[16]===============>'+ inputValues[16]);
>>>>>>> 进口单证+obsap+导入
                            //SWAG-CEW85A 【委托】消耗品&DAMS系统经销商人员管理——信息完善;fy end
                        }
                        boolean mobileNumberFlag = mobileNumberVerification(inputValues[3]);
                    System.debug('mobileNumberFlag=============>'+mobileNumberFlag);
                        if(mobileNumberFlag == false){
                            errorMage += 'errorMage: 你的手机号码不太正确,请检查您的手机是否正确!';
                            errorMage += '=';
                        }
                        if(inputValues[4] == '' || inputValues[4] == null){
                            errorMage += 'errorMage: 第' + i + '行,邮箱不能为空!';
                            errorMage += '=';
                        }
                        boolean mailboxFlag = mailboxVerification(inputValues[4]);
                    System.debug('mailboxFlag=============>'+mailboxFlag);
                        if(mailboxFlag == false){
                            errorMage += 'errorMage: 你的邮箱不太正确,请检查您的邮箱格式!';
                            errorMage += '=';
                        }
                        if(inputValues[5] == '' || inputValues[5] == null){
                            errorMage += 'errorMage: 第' + i + '行,客户名不能为空!';
                            errorMage += '=';
                        }
                        str = inputValues[5];
                        recordTypeList.add(inputValues[0]);
                        accountNameList.add(str);
                        //导入的数据
                        inputList.add(inputvalues);
                        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]);
                    }
                }
                Map<String,Account> accountMap = new Map<String,Account>();
                List<String> accountIdList = new List<String>();
                Map<String,RecordType> recordTypeMap = new Map<String,RecordType>();
                List<String> recordTypeIdList = new List<String>();
                List<Account> accountList = [select id, Name from Account where Name in: accountNameList];
                List<RecordType> rectCo = [select Id,Name from RecordType where IsActive = true and SobjectType = 'Contact' and Name in: recordTypeList];
                Map<String,Account> accountIdMap = new Map<String,Account>();
                //SWAG-CEW85A 【委托】消耗品&DAMS系统经销商人员管理——信息完善;fy start
                Map<String,Contact> contactIdMap = new Map<String,Contact>();
                Map<Id,String> ManagementCodeMap = new Map<Id,String>();
                List<Id> AccountIdList =new  List<Id>();
                //SWAG-CEW85A 【委托】消耗品&DAMS系统经销商人员管理——信息完善;fy end
<<<<<<< HEAD
                List<Account> accountList = [select id, Name,Management_Code__c from Account where Management_Code__c in: managementCodeList and Name in:CustomerNameList ];
=======
                System.debug('managementCodeList===============>'+ managementCodeList);
                System.debug('CustomerNameList===============>'+ CustomerNameList);
                List<Account> accountList = [select id, Name,Management_Code__c from Account where Management_Code__c in: managementCodeList and Name in:CustomerNameList];
                System.debug('iaccountList===============>'+ accountList);
>>>>>>> 进口单证+obsap+导入
                for(Account ac : accountList){ 
                    accountMap.put(ac.Name, ac);
                    accountIdList.add(ac.Id);
                    accountIdMap.put(ac.Management_Code__c,ac);
                    //SWAG-CEW85A 【委托】消耗品&DAMS系统经销商人员管理——信息完善;fy start
                    AccountIdList.add(ac.Id);
                    ManagementCodeMap.put(ac.Id,ac.Management_Code__c);
                    //SWAG-CEW85A 【委托】消耗品&DAMS系统经销商人员管理——信息完善;fy end
                }
                system.debug('accountList===============>'+accountList);
                system.debug('accountNameList===============>'+accountNameList);
                system.debug('accountMap===============>'+accountMap);
                for(RecordType re : rectCo){
                    recordTypeMap.put(re.Name, re);
                    recordTypeIdList.add(re.Id);
                //SWAG-CEW85A 【委托】消耗品&DAMS系统经销商人员管理——信息完善;fy start
                //查询客户人员是否有数据
                //DB202301262139 SFDC经销商人员导入功能改进 start 0228
                // Map<String,Contact> contactIdMapName = new Map<String,Contact>();
                List<Contact> contactList = [select id, CManageCode__c,AccountId from Contact where AccountId in: AccountIdList and CManageCode__c in:CManageCodeList ];
                // List<Contact> contactList = [select id, CManageCode__c,AccountId,Name from Contact where AccountId in: AccountIdList ];
                //DB202301262139 SFDC经销商人员导入功能改进 end
                for(Contact cc : contactList){
                    //DB202301262139 SFDC经销商人员导入功能改进 start 0228
                    // String namekey = cc.Name.replace(' ', '');
                    // String contactKey2=ManagementCodeMap.get(cc.AccountId)+'_'+namekey;
                    // contactIdMapName.put(contactKey2,cc);
                    String contactKey=ManagementCodeMap.get(cc.AccountId)+'_'+cc.CManageCode__c;
                    contactIdMap.put(contactKey,cc);
                    //DB202301262139 SFDC经销商人员导入功能改进 end
                }
                //DB202301262139 SFDC经销商人员导入功能改进 start 0228
                // System.debug('contactIdMapName++'+contactIdMapName);
                //DB202301262139 SFDC经销商人员导入功能改进 start 0228
                List<Contact> cnupdateList = new List<Contact>();
                //SWAG-CEW85A 【委托】消耗品&DAMS系统经销商人员管理——信息完善;fy end
                List<Contact> cnList = new List<Contact>();
                Integer lineNumber = 1;
                for(List<String> lineList :inputList){
                    //DB202301262139 SFDC经销商人员导入功能改进 start
                    Boolean errorflag1 = false;
                    String errorMageHang = '';
                    if(lineList[0] == '' || lineList[0]== null){
                        errorMageHang += ',姓名不能为空!';
                        errorflag1 = true;
                    }
                    if(lineList[2] != '' && lineList[2] != null){
                        boolean mailboxFlag = mailboxVerification(lineList[2]);
                        if(mailboxFlag == false){
                            errorMageHang += ', 你的邮箱不太正确,请检查您的邮箱格式!';
                            errorflag1 = true;
                        }
                    }
                    if(lineList[3] == '' || lineList[3] == null){
                        errorMageHang += ',经销商管理编码不能为空!';
                        errorflag1 = true;
                    }
                    if(lineList[4] == '' || lineList[4] == null){
                        errorMageHang += ',客户名不能为空!';
                        errorflag1 = true;
                    }
                    if(lineList[5] == '' || lineList[5] == null){
                        errorMageHang += ',经销商用户不能为空!';
                        errorflag1 = true;
                    }
                    //DB202301262139 SFDC经销商人员导入功能改进 end
                    Contact con = new Contact();
                    if(recordTypeMap.containsKey(lineList[0])){
                        con.RecordTypeId = recordTypeMap.get(lineList[0]).id;
                    }else{
                        errorMage += 'error: 第'+ lineNumber +'行数据,记录类型'+lineList[0]+'不存在';
                        errorMage += '=';
                    //暂时导入的是经销商用户,所以记录类型只有经销商,暂时写死;后期如果有变动再更改
                    con.RecordTypeId = '01210000000QfWiAAK';
                    if(!contactIdMap.containsKey(lineList[3]+'_'+lineList[6])){
                        if(lineList[0] != null && lineList[0] != ''){
                            con.LastName  = lineList[0];
                        }else{
                            //DB202301262139 SFDC经销商人员导入功能改进 start
                            // errorMage += 'error: 第'+ lineNumber +'行数据,姓氏'+lineList[0]+'不存在';
                            // errorMage += '=';
                            errorMageHang += ',姓氏 '+lineList[0]+' 不存在';
                            errorflag1 = true;
                            //DB202301262139 SFDC经销商人员导入功能改进 end
                        }
                    }
                    if(lineList[1] != null && lineList[1] != ''){
                        con.LastName  = lineList[1];
                    }else{
                        errorMage += 'error: 第'+ lineNumber +'行数据,姓氏'+lineList[1]+'不存在';
                        errorMage += '=';
                    }
                        // if(mobileNumberVerification(lineList[1])){
                            con.MobilePhone = lineList[1];
                        // }else{
                        //     errorMage += 'error: 第'+ lineNumber +'行数据,手机'+lineList[1]+'不正确!';
                        //     errorMage += '=';
                        // }
                    }
                    //SWAG-CEW85A 【委托】消耗品&DAMS系统经销商人员管理——信息完善;fy start
                    // else{
                    //     errorMage += 'error: 第'+ lineNumber +'行数据,手机'+lineList[1]+'不存在';
                    //     errorMage += '=';
                    // }
                    //SWAG-CEW85A 【委托】消耗品&DAMS系统经销商人员管理——信息完善;fy end
                    if(lineList[2] != null && lineList[2] != ''){
                        con.FirstName  = lineList[2];
                        if(mailboxVerification(lineList[2])){
                            con.Email = lineList[2];
                        }else{
                            //DB202301262139 SFDC经销商人员导入功能改进 start
                            // errorMage += 'error: 第'+ lineNumber +'行数据,电子邮件'+lineList[2]+'不正确!';
                            // errorMage += '=';
                            errorMageHang += ',电子邮件 '+lineList[2]+' 不正确!';
                            errorflag1 = true;
                            //DB202301262139 SFDC经销商人员导入功能改进 end
                        }
                    }
                    //SWAG-CEW85A 【委托】消耗品&DAMS系统经销商人员管理——信息完善;fy start
                    // else{
                    //     errorMage += 'error: 第'+ lineNumber +'行数据,电子邮件'+lineList[2]+'不存在';
                    //     errorMage += '=';
                    // }
                    //SWAG-CEW85A 【委托】消耗品&DAMS系统经销商人员管理——信息完善;fy end
                    if(accountIdMap.containsKey(lineList[3])){
                        con.AccountId = accountIdMap.get(lineList[3]).id;
                    }else{
                        errorMage += 'error: 第'+ lineNumber +'行数据,名字'+lineList[2]+'不存在';
                        errorMage += '=';
                        //DB202301262139 SFDC经销商人员导入功能改进 start
                        // errorMage += 'error: 第'+ lineNumber +'行数据,经销商编码'+lineList[3]+'或者客户名不存在';
                        // errorMage += '=';
                        errorMageHang += ',经销商编码 '+lineList[3]+' 或者客户名不存在';
                        errorflag1 = true;
                        //DB202301262139 SFDC经销商人员导入功能改进 end
                    }
                    //暂定创建直接为 true
                    // con.Agency_User__c =  true;
                    //SWAG-CEW85A 【委托】消耗品&DAMS系统经销商人员管理——信息完善;fy start
                    if(lineList[5] != null && lineList[5] != ''){
                        if(lineList[5]=='true'||lineList[5]=='TRUE'){
                            con.Agency_User__c=true;
                        }else{
                            con.Agency_User__c=false;
                        }
                    }else{
                        //DB202301262139 SFDC经销商人员导入功能改进 start
                        // errorMage += 'error: 第'+ lineNumber +'行数据,经销商用户'+lineList[0]+'不存在';
                        // errorMage += '=';
                        errorMageHang += ',经销商用户 '+lineList[0]+' 不存在';
                        errorflag1 = true;
                        //DB202301262139 SFDC经销商人员导入功能改进 end
                    }  
                    if(lineList[3] != null && lineList[3] != ''){
                        if(mobileNumberVerification(lineList[3])){
                            con.MobilePhone = lineList[3];
                        }else{
                            errorMage += 'error: 第'+ lineNumber +'行数据,手机'+lineList[3]+'不正确!';
                            errorMage += '=';
                     //SWAG-CEW85A 【委托】消耗品&DAMS系统经销商人员管理——信息完善;fy end
                    //SWAG-CEW85A 【委托】消耗品&DAMS系统经销商人员管理——信息完善;fy start
                    //经销商专员类型
                    if(VerificationOLYAssistantType(lineList[7])){
                        con.OLY_Assistant_Type__c  = lineList[7];
                    }else{
                        //DB202301262139 SFDC经销商人员导入功能改进 start
                        // errorMage += 'error: 第'+ lineNumber +'行数据,经销商专员类型'+lineList[7]+'不正确!';
                        // errorMage += '=';
                        errorMageHang += ',经销商专员类型 '+lineList[7]+' 不正确!';
                        errorflag1 = true;
                        //DB202301262139 SFDC经销商人员导入功能改进 end
                    }
                    //入职年份
                    if(VerificationDateType(lineList[8])){
                        con.InductionYear__c  = ConversionDateType(lineList[8]);
                    }else{
                        //DB202301262139 SFDC经销商人员导入功能改进 start
                        // errorMage += 'error: 第'+ lineNumber +'行数据,入职年份'+lineList[8]+'格式不正确!';
                        // errorMage += '=';
                        errorMageHang += ',入职年份 '+lineList[8]+' 格式不正确!';
                        errorflag1 = true;
                        //DB202301262139 SFDC经销商人员导入功能改进 end
                    }
                    //GIR认证级别
                    if(VerifyCertificationLevel(lineList[9])){
                        con.GIR_CertificationLevel__c  = lineList[9];
                    }else{
                        //DB202301262139 SFDC经销商人员导入功能改进 start
                        // errorMage += 'error: 第'+ lineNumber +'行数据,GIR认证级别'+lineList[9]+'不正确!';
                        // errorMage += '=';
                        errorMageHang += ',GIR认证级别 '+lineList[9]+' 不正确!';
                        errorflag1 = true;
                        //DB202301262139 SFDC经销商人员导入功能改进 end
                    }
                    //GIR认证时间
                    if(VerificationDateType(lineList[10])){
                        con.GIR_CertificationTime__c  = ConversionDateType(lineList[10]);
                    }else{
                        //DB202301262139 SFDC经销商人员导入功能改进 start
                        // errorMage += 'error: 第'+ lineNumber +'行数据,GIR认证时间'+lineList[10]+'格式不正确!';
                        // errorMage += '=';
                        errorMageHang += ',GIR认证时间 '+lineList[10]+' 格式不正确!';
                        errorflag1 = true;
                        //DB202301262139 SFDC经销商人员导入功能改进 end
                    }
                    //SP认证级别
                    if(VerifyCertificationLevel(lineList[11])){
                        con.SP_CertificationLevel__c  = lineList[11];
                    }else{
                        //DB202301262139 SFDC经销商人员导入功能改进 start
                        // errorMage += 'error: 第'+ lineNumber +'行数据,SP认证级别'+lineList[11]+'不正确!';
                        // errorMage += '=';
                        errorMageHang += ',SP认证级别 '+lineList[11]+' 不正确!';
                        errorflag1 = true;
                        //DB202301262139 SFDC经销商人员导入功能改进 end
                    }
                    //SP认证时间
                    if(VerificationDateType(lineList[12])){
                        con.SP_CertificationTime__c  = ConversionDateType(lineList[12]);
                    }else{
                        //DB202301262139 SFDC经销商人员导入功能改进 start
                        // errorMage += 'error: 第'+ lineNumber +'行数据,SP认证时间'+lineList[12]+'格式不正确!';
                        // errorMage += '=';
                        errorMageHang += ',SP认证时间 '+lineList[12]+' 格式不正确!';
                        errorflag1 = true;
                        //DB202301262139 SFDC经销商人员导入功能改进 end
                    }
                    //ET认证级别
                    if(VerifyCertificationLevel(lineList[13])){
                        con.ET_CertificationLevel__c  = lineList[13];
                    }else{
                        //DB202301262139 SFDC经销商人员导入功能改进 start
                        // errorMage += 'error: 第'+ lineNumber +'行数据,ET认证级别'+lineList[13]+'不正确!';
                        // errorMage += '=';
                        errorMageHang += ',ET认证级别 '+lineList[13]+' 不正确!';
                        errorflag1 = true;
                        //DB202301262139 SFDC经销商人员导入功能改进 end
                    }
                    //ET认证时间
                    if(VerificationDateType(lineList[14])){
                        con.ET_CertificationTime__c  = ConversionDateType(lineList[14]);
                    }else{
                        //DB202301262139 SFDC经销商人员导入功能改进 start
                        // errorMage += 'error: 第'+ lineNumber +'行数据,ET认证时间'+lineList[14]+'格式不正确!';
                        // errorMage += '=';
                        errorMageHang += ',ET认证时间 '+lineList[14]+' 格式不正确!';
                        errorflag1 = true;
                        //DB202301262139 SFDC经销商人员导入功能改进 end
                    }
                    //ENG认证级别
                    if(VerifyCertificationLevel(lineList[15])){
                        con.ENG_CertificationLevel__c  = lineList[15];
                    }else{
                        //DB202301262139 SFDC经销商人员导入功能改进 start
                        // errorMage += 'error: 第'+ lineNumber +'行数据,ENG认证级别'+lineList[15]+'不正确!';
                        // errorMage += '=';
                        errorMageHang +=',ENG认证级别 '+lineList[15]+' 不正确!';
                        errorflag1 = true;
                        //DB202301262139 SFDC经销商人员导入功能改进 end
                    }
                    //ENG认证时间
                    if(VerificationDateType(lineList[16])){
                        con.ENG_CertificationTime__c  = ConversionDateType(lineList[16]);
                    }else{
                        //DB202301262139 SFDC经销商人员导入功能改进 start
                        // errorMage += 'error: 第'+ lineNumber +'行数据,ENG认证时间'+lineList[16]+'格式不正确!';
                        // errorMage += '=';
                        errorMageHang +=',ENG认证时间 '+lineList[16]+' 格式不正确!';
                        errorflag1 = true;
                        //DB202301262139 SFDC经销商人员导入功能改进 end
                    }
                    //SWAG-CEW85A 【委托】消耗品&DAMS系统经销商人员管理——信息完善;fy end
                    //DB202301262139 SFDC经销商人员导入功能改进 start
                    // lineNumber++;
                    //DB202301262139 SFDC经销商人员导入功能改进 end
                    //SWAG-CEW85A 【委托】消耗品&DAMS系统经销商人员管理——信息完善;fy start
                    System.debug('001+'+lineList[3]+'_'+lineList[6]);
                    System.debug('002+'+contactIdMap.get(lineList[3]+'_'+lineList[6]));
                    //DB202301262139 SFDC经销商人员导入功能改进 start 0228
                    // System.debug('003+'+lineList[3]+'_'+lineList[0]);
                    // System.debug('004+'+contactIdMapName.get(lineList[3]+'_'+lineList[0]));
                    //DB202301262139 SFDC经销商人员导入功能改进 start 0228
                    //DB202301262139 SFDC经销商人员导入功能改进 start
                    if(errorflag1){
                        errorMage += 'error: 第' + lineNumber + '行 ('+lineList[0]+') 的数据'+errorMageHang;
                        errorMage += '=';
                    }else{
                    //DB202301262139 SFDC经销商人员导入功能改进 end
                        if(contactIdMap.containsKey(lineList[3]+'_'+lineList[6])){
                            con.Id=contactIdMap.get(lineList[3]+'_'+lineList[6]).Id;
                            cnupdateList.add(con);
                        }else {
                            //DB202301262139 SFDC经销商人员导入功能改进 start 0228
                            // if(!contactIdMapName.containsKey(lineList[3]+'_'+lineList[0])){
                            //     cnList.add(con);
                            // }
                            cnList.add(con);
                            //DB202301262139 SFDC经销商人员导入功能改进 end
                        }
                    }else{
                        errorMage += 'error: 第'+ lineNumber +'行数据,手机'+lineList[3]+'不存在';
                        errorMage += '=';
                    //DB202301262139 SFDC经销商人员导入功能改进 start
                    }
                    if(lineList[4] != null && lineList[4] != ''){
                        if(mailboxVerification(lineList[4])){
                            con.Email = lineList[4];
                        }else{
                            errorMage += 'error: 第'+ lineNumber +'行数据,电子邮件'+lineList[4]+'不正确!';
                            errorMage += '=';
                        }
                    }else{
                        errorMage += 'error: 第'+ lineNumber +'行数据,电子邮件'+lineList[4]+'不存在';
                        errorMage += '=';
                    }
                    if(accountMap.containsKey(lineList[5])){
                        con.AccountId = accountMap.get(lineList[5]).id;
                    }else{
                        errorMage += 'error: 第'+ lineNumber +'行数据,客户名'+lineList[5]+'不存在';
                        errorMage += '=';
                    }
                    if(lineList[6] == 'TRUE'){
                        con.Agency_User__c =  true;
                    }else{
                        con.Agency_User__c =  false;
                    }
                    //DB202301262139 SFDC经销商人员导入功能改进 end
                    //SWAG-CEW85A 【委托】消耗品&DAMS系统经销商人员管理——信息完善;fy end
                    // cnList.add(con);
                    //DB202301262139 SFDC经销商人员导入功能改进 start
                    lineNumber++;
                    cnList.add(con);
                    //DB202301262139 SFDC经销商人员导入功能改进 end
                }
                if(errorMage != ''){
                    system.debug('errorMage==========>'+errorMage);
                    return errorMage;
                }
                //DB202301262139 SFDC经销商人员导入功能改进 start
                // if(errorMage != ''){
                //     system.debug('errorMage==========>'+errorMage);
                //     return errorMage;
                // }
                //DB202301262139 SFDC经销商人员导入功能改进 end
                // 新增周报明细
                //DB202301262139 SFDC经销商人员导入功能改进 start
                List<String> errorChongfuList = new List<String>();
                //DB202301262139 SFDC经销商人员导入功能改进 end
                if(cnList.size() > 0 ){
                    insertContact(cnList);
                    System.debug('003+'+cnList);
                    //DB202301262139 SFDC经销商人员导入功能改进 start
                    // insertContact(cnList);
                    Database.SaveResult[] InsertShare = Database.insert(cnList, false);
                    for(Database.SaveResult insertresult :InsertShare){
                        if (!insertresult.isSuccess()) {
                            String errerContactiD='';
                            String errer = String.valueOf(insertresult.getErrors()[0]);
                            if(errer.contains('UniqueNumber__c 与记录值重复')){
                                List<String> errerList = errer.split('UniqueNumber__c 与记录值重复');
                                if(errerList.size()>1){
                                    errerContactiD=errerList[1].substring(errerList[1].indexOf('ID 为:')+5,errerList[1].indexOf(';getStatusCode')).replace(' ','');
                                    errorChongfuList.add(errerContactiD);
                                }
                            }else{
                                errorMage += errer;
                            }
                        }
                    }
                    //DB202301262139 SFDC经销商人员导入功能改进 end
                }
                //SWAG-CEW85A 【委托】消耗品&DAMS系统经销商人员管理——信息完善;fy start
                // 更新周报明细
                if(cnupdateList.size() > 0 ){
                    System.debug('004+'+cnupdateList);
                    //DB202301262139 SFDC经销商人员导入功能改进 start
                    // updateContact(cnupdateList);
                    Database.SaveResult[] UpdateShare = Database.update(cnupdateList, false);
                    for(Database.SaveResult updateresult :UpdateShare){
                        if (!updateresult.isSuccess()) {
                            String errerContactiD='';
                            String errer = String.valueOf(updateresult.getErrors()[0]);
                            if(errer.contains('UniqueNumber__c 与记录值重复')){
                                List<String> errerList = errer.split('UniqueNumber__c 与记录值重复');
                                if(errerList.size()>1){
                                    errerContactiD=errerList[1].substring(errerList[1].indexOf('ID 为:')+5,errerList[1].indexOf(';getStatusCode')).replace(' ','');
                                    errorChongfuList.add(errerContactiD);
                                }
                            }else{
                                errorMage += errer;
                            }
                        }
                    }
                    //DB202301262139 SFDC经销商人员导入功能改进 end
                }
                //DB202301262139 SFDC经销商人员导入功能改进 start
                List<Contact> repeatContact=[select Id,Name from Contact where Id = :errorChongfuList];
                if(repeatContact.size()>0){
                    for(Contact repeatContactitem :repeatContact){
                        String errerContactName='';
                        String errerContactID='';
                        errerContactName = repeatContactitem.Name;
                        errerContactID = repeatContactitem.Id;
                        errorMage +='error: 数据中存在与系统现有用户 '+errerContactName+'(Id为:'+errerContactiD+')重复的电话号码';
                    }
                }else if(errorChongfuList.size()>0){
                    errorMage +='error: 数据中存在重复的电话号码';
                }
                //DB202301262139 SFDC经销商人员导入功能改进 end
                //SWAG-CEW85A 【委托】消耗品&DAMS系统经销商人员管理——信息完善;fy start
            }
            if(errorMage != ''){
                system.debug('errorMage==========>'+errorMage);
                return errorMage;
            }
            return 'success';
        } catch (Exception e) {
            System.debug('exception'+e);
            return 'exception'+e;
        }
        //DB202301262139 SFDC经销商人员导入功能改进 start
            // String errer=String.valueOf(e);
            // String errerContactiD='';
            // String errerContactName='';
            // if(errer.contains('UniqueNumber__c 与记录值重复')){
            //     List<String> errerList = errer.split('UniqueNumber__c 与记录值重复');
            //     if(errerList.size()>1){
            //         errerContactiD=errerList[1].substring(errerList[1].indexOf('ID 为:')+5,errerList[1].indexOf(': []')).replace(' ','');
            //         List<Contact> repeatContact=[select Name from Contact where Id = :errerContactiD];
            //         if(repeatContact.size()>0){
            //             errerContactName=repeatContact[0].Name;
            //             return 'error: 数据中存在与系统现有用户 '+errerContactName+'(Id为:'+errerContactiD+')重复的电话号码';
            //         }else{
            //             return 'error: 数据中存在重复的电话号码';
            //         }
            //     }
            // }
            // return e.getLineNumber()+'exception'+e;
        // } catch (Exception e) {
        //     Database.rollback(sp);
        //     System.debug('exception++++++++++++++++++'+e.getLineNumber()+e);
        //     String errer=String.valueOf(e);
        //     String errerContactiD='';
        //     String errerContactName='';
        //     if(errer.contains('UniqueNumber__c 与记录值重复')){
        //         List<String> errerList = errer.split('UniqueNumber__c 与记录值重复');
        //         if(errerList.size()>1){
        //             errerContactiD=errerList[1].substring(errerList[1].indexOf('ID 为:')+5,errerList[1].indexOf(': []')).replace(' ','');
        //             List<Contact> repeatContact=[select Name from Contact where Id = :errerContactiD];
        //             if(repeatContact.size()>0){
        //                 errerContactName=repeatContact[0].Name;
        //                 return 'error: 数据中存在与系统现有用户 '+errerContactName+'(Id为:'+errerContactiD+')重复的电话号码';
        //             }else{
        //                 return 'error: 数据中存在重复的电话号码';
        //             }
        //         }
        //     }
        //     return e.getLineNumber()+'exception'+e;
        // }
        //DB202301262139 SFDC经销商人员导入功能改进 end
    }
      // 电子邮件的验证
    public static boolean mailboxVerification(String mailbox){
        String  check =  '^([a-z0-9A-Z]+[-|\\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\\.)+[a-zA-Z]{2,}$';
        String  check =  '^([a-z0-9A-Z]+[_-|\\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\\.)+[a-zA-Z]{2,}$';
        Pattern regex = Pattern.compile(check);  
        Matcher matcher = regex.matcher(mailbox);  
        if (matcher.matches()){
@@ -179,30 +556,61 @@
        return false;
    }
      // 手机号的验证
    public static boolean mobileNumberVerification(String phoneNumber){
        String check = '^((17[0-9])|(14[0-9])|(13[0-9])|(15[^4,\\D])|(18[0,5-9]))\\d{8}$';
        Pattern regex = Pattern.compile(check);
        Matcher matcher = regex.matcher(phoneNumber);
        if(matcher.matches()){
            return true;
        }
        return false;
    }
    // public static boolean mobileNumberVerification(String phoneNumber){
    //     String check = '^((17[0-9])|(14[0-9])|(13[0-9])|(15[^4,\\D])|(18[0,5-9]))\\d{8}$';
    //     Pattern regex = Pattern.compile(check);
    //     Matcher matcher = regex.matcher(phoneNumber);
    //     if(matcher.matches()){
    //         return true;
    //     }
    //     return false;
    // }
    //新增客户人员;
    public static void insertContact(List<Contact> data) {
        // System.debug('data==============>'+data);
        // List<String> lastNameList = new List<String>();
        // List<String> firstNameList = new List<String>();
        // for(Contact con:data){
        //     lastNameList.add(con.LastName);
        //     firstNameList.add(con.FirstName);
        // }
        // List<Contact> contactList = [select id, Name,Agency_User__c from contact where LastName in: lastNameList AND FirstName in: firstNameList];
        // if(contactList.size() >= 0){
        //     return '';
        // }
        // System.debug('strNameList==============>'+strNameList);
        insert data;
    }
   // SWAG-CEW85A 【委托】消耗品&DAMS系统经销商人员管理——信息完善;fy start
    //校验认证级别;
    public static boolean VerifyCertificationLevel(String data) {
        //DB202301262139 SFDC经销商人员导入功能改进 start
        // if(data=='A'||data=='B'||data==''){
        if(data=='A级'||data=='A级未通过'||data=='A级未通过(失效)'||data=='A级(失效)'||data=='B级'||data=='B级(失效)'||data=='B级未通过'||data=='初级'||data=='初级未通过'||data=='未认证'||data==''){
        //DB202301262139 SFDC经销商人员导入功能改进 end
            return true;
        }
        return false;
    }
    //校验日期类型
    public static Boolean VerificationDateType(String data) {
        List<String> date1str;
        List<String> date2str;
        if(data==''){
            return true;
        }
        date1str=data.split('/');
        date2str=data.split('-');
        if(date1str.size()>1||date2str.size()>1){
            return true;
        }
        return false;
    }
    //转换日期类型;
    public static Date ConversionDateType(String data) {
        if(data==''){
            return null;
        }
        return Date.valueOf(data.replace('/','-'));
    }
    //校验经销商专员类型;
    public static Boolean VerificationOLYAssistantType(String data) {
        if(data=='GR专员'||data=='SP专员'||data=='GRSP专员'||data=='ET专员'||data=='TB专员'||data=='奥辉基层专员'||data=='商务助理'||data=='*****'||data==''){
            return true;
        }
        return false;
    }
    //更新客户人员;
    public static void updateContact(List<Contact> data){
        update data;
    }
    //SWAG-CEW85A 【委托】消耗品&DAMS系统经销商人员管理——信息完善;fy end
}