예제 #1
0
        public override void GetData()
        {
            ConnectFile.connectState(folderPath_Queue, "NisMail_UserName".ToAppSetting(), "NisMail_PWD".ToAppSetting());
            DirectoryInfo TheFolder = new DirectoryInfo(folderPath_Queue);

            foreach (FileInfo NextFile in TheFolder.GetFiles("*_SECTION_?_????????.TSV"))//*_SECTION_?_????????.TSV  //DSC_SECTION_C_20180202
            {
                string sql = AggData(NextFile);
                Execute(sql, NextFile);
            }
        }
예제 #2
0
        public override void GetData()
        {
            ConnectFile.connectState(folderPath_Queue, "NisMail_UserName".ToAppSetting(), "NisMail_PWD".ToAppSetting());
            DirectoryInfo TheFolder = new DirectoryInfo(folderPath_Queue);

            foreach (FileInfo NextFile in TheFolder.GetFiles("ZACF*"))
            {
                string sql = AggData(NextFile);
                Execute(sql, NextFile);
            }
        }
예제 #3
0
        public override void GetData()
        {
            aIncomePurchaseUpdate = AIncomePurchaseUpdate.Create(context.connStr, new IncomePurchaseUpdateType(IncomePurchaseUpdateType.Purchase));
            ConnectFile.connectState(folderPath_Queue, "NisMail_UserName".ToAppSetting(), "NisMail_PWD".ToAppSetting());
            DirectoryInfo TheFolder = new DirectoryInfo(folderPath_Queue);

            foreach (FileInfo NextFile in TheFolder.GetFiles("ZACF*"))
            {
                string sql = AggData(NextFile);
                Execute(sql, NextFile);
            }
            //回调
            aIncomePurchaseUpdate.ExecuteQuery(IsExecuteQuery);
        }
예제 #4
0
        public override void GetData()
        {
            LogInfo.Log.Info("执行SAP2成本中心主数据同步");
            StringBuilder errMsg     = new StringBuilder();
            StringBuilder successMsg = new StringBuilder();

            SQLHelper.ExecuteNonQuery(context.connStr, "DELETE FROM MAIN_COSTCENTER WHERE COMPANY IN (" + filter + ")");
            //获得表结构和数据
            DataTable costcenter = SQLHelper.ExecuteDataset(context.connStr, CommandType.Text, "SELECT COMPANY, CODE, NAME, DEPARTMENT, DEPARTMENT_TYPE, DEL_FLG FROM [DBO].[MAIN_COSTCENTER] WHERE COMPANY IN (" + filter + ")").Tables[0];//GetColumnNames_MAIN_COSTCENTER();
            //向表中添加数据
            DataRow dr;

            ConnectFile.connectState(filePath, "NisMail_UserName".ToAppSetting(), "NisMail_PWD".ToAppSetting());
            using (StreamReader sr = new StreamReader(filePath, Encoding.UTF8))
            {
                string   str     = sr.ReadToEnd();
                string[] strlist = str.Split("\r\n".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
                for (int i = 0; i < strlist.Length; i++)
                {
                    string[] strs = strlist[i].Split('\t');
                    if (!dic.ContainsKey(strs[0]))
                    {
                        errMsg.AppendLine(string.Format("第{0}行公司编码:{1}编码:{2}名称:{3}不存在于MAIN_COMPANY表中", (i + 1), strs[0], strs[1].TrimStart('0'), strs[2]));
                        errorCount++;
                        continue;
                    }
                    dr                    = costcenter.NewRow();
                    dr["COMPANY"]         = dic[strs[0]];
                    dr["CODE"]            = strs[1];
                    dr["NAME"]            = strs[2];
                    dr["DEPARTMENT"]      = strs[3];
                    dr["DEPARTMENT_TYPE"] = strs[4];
                    dr["DEL_FLG"]         = strs[5].ToUpper() == "X" ? 1 : 0;
                    costcenter.Rows.Add(dr);
                    successMsg.AppendLine(string.Format("第{0}行公司:{1}编码:{2}名称:{3}部门:{4}部门类型:{5}成功", i + 1, dic[strs[0]], strs[1].TrimStart('0'), strs[2], strs[3], strs[4]));
                    successCount++;
                }
            }
            try
            {
                ExecuteMainData(costcenter, "MAIN_COSTCENTER");
            }
            catch (Exception ex)
            {
                //LogInfo.Log.Error(ex);
                //exception = ex;
                throw ex;
            }
            Log();
        }
예제 #5
0
        public override void GetData()
        {
            ConnectFile.connectState(folderPath_Queue, "NisMail_UserName".ToAppSetting(), "NisMail_PWD".ToAppSetting());
            DirectoryInfo TheFolder = new DirectoryInfo(folderPath_Queue);

            foreach (FileInfo NextFile in TheFolder.GetFiles("PAY*.TSV"))
            {
                if (!FileCheck(NextFile, "PAY"))
                {
                    context.MessageQueue(NextFile.FullName + "文件校验错误", NextFile.FullName + "文件校验错误");
                    FileMove(NextFile, folderPath_Faild);
                    break;
                }
                string sql = AggData(NextFile);
                Execute(sql, NextFile);
            }
        }
예제 #6
0
        public override void GetData()
        {
            //LogInfo.Log.Info("执行凭证数据回传");
            StringBuilder errMsg     = new StringBuilder();
            StringBuilder successMsg = new StringBuilder();
            //SQLHelper.ExecuteNonQuery(context.connStr, "DELETE FROM MAIN_SUPPLIER WHERE SUPP_TYPE=0 AND COMPANY IN(" + filter + ")");
            StringBuilder sb_sql = new StringBuilder();

            //向表中添加数据
            ConnectFile.connectState(filePath, "NisMail_UserName".ToAppSetting(), "NisMail_PWD".ToAppSetting());
            using (StreamReader sr = new StreamReader(filePath, Encoding.UTF8))
            {
                string   str     = sr.ReadToEnd();
                string[] strlist = str.Split("\r\n".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
                for (int i = 0; i < strlist.Length; i++)
                {
                    string[] strs = strlist[i].Split('\t');
                    if (strs.Length < 4)
                    {
                        errMsg.AppendLine("第" + (i + 1) + "行数据完整性异常");
                        errorCount++;
                        continue;
                    }
                    if (!dic.ContainsKey(strs[0]))
                    {
                        errMsg.AppendLine(string.Format("第{0}行公司编码:{1}不存在于MAIN_COMPANY表中", (i + 1), strs[0]));
                        errorCount++;
                        continue;
                    }
                    sb_sql.AppendLine(string.Format(@"insert into MAIN_SAP_FIN_ACCVOUCH(company,apply_no,voucher_no,account_date) 
                                                        values ('{0}','{1}','{2}','{3}');", dic[strs[0]], strs[2], strs[1], SplitDate(strs[3])));
                    successMsg.AppendLine(string.Format("第{0}行公司:{1}凭证组装成功", i + 1, dic[strs[0]]));
                    successCount++;
                }
            }
            try
            {
                SQLHelper.ExecuteNonQuery(context.connStr, sb_sql.ToString());
            }
            catch (Exception ex)
            {
                throw ex;
            }
            Log();
        }
예제 #7
0
        //时间    美元  欧元  日元  港币  泰铢  马币
        public override void GetData()
        {
            string sql = "insert into MAIN_FOREIGN_EXCHANGE(DATE,USD,EUR,JPY,HKD,THB,MYR) values ('{0}','{1}','{2}','{3}','{4}','{5}','{6}');";

            ConnectFile.connectState(folderPath_Queue, "NisMail_UserName".ToAppSetting(), "NisMail_PWD".ToAppSetting());
            DirectoryInfo TheFolder = new DirectoryInfo(this.folderPath_Queue);

            foreach (FileInfo NextFile in TheFolder.GetFiles("dabanhl_*.txt"))
            {
                StringBuilder sb = new StringBuilder();
                try
                {
                    using (StreamReader sr = new StreamReader(NextFile.FullName, Encoding.UTF8))
                    {
                        string   str     = sr.ReadToEnd();
                        string[] strlist = str.Split("\r\n".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
                        for (int i = 0; i < strlist.Length; i++)
                        {
                            string[] strs = strlist[i].Split(',');
                            if (strs.Length != 5)
                            {
                                continue;
                            }
                            DateTime date = Convert.ToDateTime(strs[0]);
                            decimal  USD  = Convert.ToDecimal(strs[1]);
                            decimal  EUR  = Convert.ToDecimal(strs[2]);
                            decimal  JPY  = Convert.ToDecimal(strs[3]);
                            decimal  HKD  = Convert.ToDecimal(strs[4]);
                            decimal  THB  = Convert.ToDecimal(strs[5]);
                            decimal  MYR  = Convert.ToDecimal(strs[6]);
                            sb.AppendLine(string.Format(sql, date.ToShortDateString(), USD, EUR, JPY, HKD, THB, MYR));
                        }
                    }
                    Execute(sb.ToString(), NextFile);
                }
                catch (Exception ex)
                {
                    LogInfo.Log.Error(ex);
                    //发送邮件并移至错误文件夹中
                    context.MessageQueue("SAP联携异常", NextFile.FullName + "文件处理异常:" + ex.Message);
                    FileMove(NextFile, folderPath_Faild);
                }
            }
        }
예제 #8
0
        //公司代码	发票号	金额  会计凭证号	过帐日期	客户采购订单编号
        public override void GetData()
        {
            string sql = "insert into DABAN_BPM_{0}.dbo.MAIN_KPSQ_INVOICE(CD,INVOICECODE,AMOUNT,ACCVOUCHCODE,DATE,APPLY_NO) values ('{0}','{1}','{2}','{3}','{4}','{5}');";

            ConnectFile.connectState(folderPath_Queue, "NisMail_UserName".ToAppSetting(), "NisMail_PWD".ToAppSetting());
            DirectoryInfo TheFolder = new DirectoryInfo(this.folderPath_Queue);

            foreach (FileInfo NextFile in TheFolder.GetFiles("INV_*.TSV"))
            {
                StringBuilder sb = new StringBuilder();
                try
                {
                    using (StreamReader sr = new StreamReader(NextFile.FullName, Encoding.UTF8))
                    {
                        string   str     = sr.ReadToEnd();
                        string[] strlist = str.Split("\r\n".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
                        for (int i = 1; i < strlist.Length; i++)
                        {
                            string[] strs = strlist[i].Split('\t');
                            if (strs.Length != 6)
                            {
                                continue;
                            }
                            string   cd           = main_Company_dic[strs[0]];//公司编码转换
                            string   invoiceCode  = strs[1];
                            decimal  amount       = Convert.ToDecimal(strs[2]);
                            string   accvouchCode = strs[3];
                            DateTime date         = Convert.ToDateTime(strs[4]);// Convert.ToDateTime(SplitDate(strs[4]));//20180904格式化2018-09-04
                            string   apply_no     = strs[5];
                            sb.AppendLine(string.Format(sql, cd, invoiceCode, amount, accvouchCode, date, apply_no));
                        }
                    }
                    Execute(sb.ToString(), NextFile);
                }
                catch (Exception ex)
                {
                    LogInfo.Log.Error(ex);
                    //发送邮件并移至错误文件夹中
                    context.MessageQueue("SAP联携异常", NextFile.FullName + "文件处理异常:" + ex.Message);
                    FileMove(NextFile, folderPath_Faild);
                }
            }
        }
예제 #9
0
        public override void GetData()
        {
            LogInfo.Log.Info("执行SAP1供应商行主数据同步");
            StringBuilder errMsg     = new StringBuilder();
            StringBuilder successMsg = new StringBuilder();

            SQLHelper.ExecuteNonQuery(context.connStr, "DELETE FROM MAIN_SUPPLIER WHERE SUPP_TYPE=0 AND COMPANY IN(" + filter + ")");
            DataTable mainsupplier = SQLHelper.ExecuteDataset(context.connStr, CommandType.Text, "SELECT COMPANY,SUPP_ID,SUPP_NAME,SUPP_ABB,SUPP_TYPE,BANK_NAME,BANK_SUB_NAME,BANK_ACCOUNT,DEL_FLG,SUPP_CODE FROM MAIN_SUPPLIER WHERE COMPANY IN(" + filter + ")").Tables[0];
            //向表中添加数据
            DataRow dr;

            ConnectFile.connectState(filePath, "NisMail_UserName".ToAppSetting(), "NisMail_PWD".ToAppSetting());
            using (StreamReader sr = new StreamReader(filePath, Encoding.UTF8))
            {
                string   str     = sr.ReadToEnd();
                string[] strlist = str.Split("\r\n".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
                for (int i = 0; i < strlist.Length; i++)
                {
                    string[] strs = strlist[i].Split('\t');
                    if (strs.Length < 76)
                    {
                        errMsg.AppendLine("第" + (i + 1) + "行数据完整性异常");
                        errorCount++;
                        continue;
                    }
                    if (!dic.ContainsKey(strs[47]))
                    {
                        errMsg.AppendLine(string.Format("第{0}行公司编码:{1}供应商编码:{2}供应商名称:{3}不存在于MAIN_COMPANY表中", (i + 1), strs[47], strs[0], strs[2]));
                        errorCount++;
                        continue;
                    }
                    string key = dic[strs[47]] + strs[0];
                    dr              = mainsupplier.NewRow();
                    dr["COMPANY"]   = dic[strs[47]];
                    dr["SUPP_ID"]   = strs[0];
                    dr["SUPP_NAME"] = strs[2];
                    dr["SUPP_ABB"]  = strs[4];
                    if (string.IsNullOrEmpty(strs[0]))
                    {
                        dr["SUPP_TYPE"] = 1;//零星供应商
                    }
                    else
                    {
                        dr["SUPP_TYPE"] = 0;//固定供应商
                    }
                    dr["BANK_NAME"]     = strs[76];
                    dr["BANK_SUB_NAME"] = strs[71];
                    dr["BANK_ACCOUNT"]  = (strs[68] + strs[70]);
                    //删除数据不插入
                    if (strs[51].ToUpper() == "X")
                    {
                        continue;
                    }
                    dr["DEL_FLG"]   = strs[51].ToUpper() == "X" ? 1 : 0;
                    dr["SUPP_CODE"] = strs[53];
                    mainsupplier.Rows.Add(dr);
                    successMsg.AppendLine(string.Format("第{0}行公司:{1}供应商编码:{2}供应商名称:{3}银行账号:{4}成功", i + 1, dic[strs[47]], strs[0], strs[2], (strs[68] + strs[70])));
                    successCount++;
                }
            }
            try
            {
                ExecuteMainData(mainsupplier, "MAIN_SUPPLIER");
            }
            catch (Exception ex)
            {
                //LogInfo.Log.Error(ex);
                //exception = ex;
                throw ex;
            }
            Log();
        }
예제 #10
0
        //经销商编码	禀议号	红字发票信息表编号	金额	预定结算方式	地区
        public override void GetData()
        {
            /*ID	自增主键
             * ACCOUNT	支付经销商代码
             * BY_NO	禀议号
             * INV_NO	发票号
             * AMOUNT	金额
             * TYPE	支付经销商
             * AREA	地区
             * APPLY_NO	采贩号
             * DURATION	区间
             * FLAG	冻结标志*/
            string sql = "insert into BPMDB.dbo.MAIN_DIST_HP(FLAG,ACCOUNT,BY_NO,APPLY_NO,AMOUNT,TYPE,AREA,DURATION,ORDER_NO,ABSTRACT,CD) values (0,'{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}');";

            ConnectFile.connectState(folderPath_Queue, "NisMail_UserName".ToAppSetting(), "NisMail_PWD".ToAppSetting());
            //this.folderPath_Queue = @"D:\SourceCode\Files\Success";
            DirectoryInfo TheFolder = new DirectoryInfo(this.folderPath_Queue);

            foreach (FileInfo NextFile in TheFolder.GetFiles("SF_Discount_Certificates_TO_DABAN*.TSV"))
            {
                bool          IsError = false;
                StringBuilder sb      = new StringBuilder();
                try
                {
                    using (StreamReader sr = new StreamReader(NextFile.FullName, Encoding.UTF8))
                    {
                        string        str       = sr.ReadToEnd();
                        string[]      strlist   = str.Split("\r\n".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
                        List <string> APPLY_NOS = new List <string>();
                        for (int i = 1; i < strlist.Length; i++)
                        {
                            string[] strs = strlist[i].Split('\t');
                            if (strs.Length != 10)
                            {
                                continue;
                            }
                            string ACCOUNT  = strs[0].Trim();
                            string BY_NO    = strs[1].Trim();
                            string APPLY_NO = strs[2].Trim();
                            if (APPLY_NOS.Contains(APPLY_NO))
                            {
                                continue;
                            }
                            else
                            {
                                APPLY_NOS.Add(APPLY_NO);
                            }
                            decimal AMOUNT = Convert.ToDecimal(strs[3].Trim());
                            string  TYPE   = strs[4].Trim();// 需检查是否为1,2,3其中一个
                            if (TYPE != "1" && TYPE != "2" && TYPE != "3")
                            {
                                LogInfo.Log.Error(string.Format("红字发票信息表编号【{0}】的预定结算方式(汇款/转货款)非1, 2, 3其中一个", APPLY_NO));
                                IsError = true;
                                continue;
                            }
                            string AREA     = strs[5].Trim();
                            string DURATION = strs[6].Trim();
                            string ORDER_NO = strs[7].Trim();
                            string ABSTRACT = strs[8].Trim();
                            string COMPANY  = strs[9].Trim();
                            sb.AppendLine(string.Format(sql, ACCOUNT, BY_NO, APPLY_NO, AMOUNT, TYPE, AREA, DURATION, ORDER_NO, ABSTRACT, COMPANY));
                        }
                    }
                    Execute(sb.ToString(), NextFile);
                }
                catch (Exception ex)
                {
                    LogInfo.Log.Error(ex);
                    IsError = true;
                    //发送邮件并移至错误文件夹中
                    context.MessageQueue("SAP联携异常", NextFile.FullName + "文件处理异常:" + ex.Message);
                    FileMove(NextFile, folderPath_Faild);
                }
                finally {
                    if (IsError)
                    {
                        context.MessageQueue("折扣折让回传处理异常", "折扣折让回传处理异常,详情请查看Log记录!");
                    }
                }
            }
        }
예제 #11
0
        //红字发票信息表编号
        public override void GetData()
        {
            /*ID 数据表主键
             * APPLY_NO 编号
             * FLAG 标识
             * TYPE 付款方式
             * CAT 类型
             * INV_NO 发票号码
             * PAY_DATE 支付日期*/
            //MAIN_DIST_HP
            // string sql = "insert into DABAN_BPM_DICS.dbo.MAIN_DIST_HPTYPE(CAT,APPLY_NO,FLAG,TYPE,INV_NO,PAY_DATE) values ({0},{1},{2},{3},{4},{5});";
            string u_sql = "update BPMDB.dbo.MAIN_DIST_HP set FLAG='{0}',TYPE='{1}' where ORDER_NO='{2}'; ";

            //本地测试注释,正式环境释放(文件服务器连接)
            ConnectFile.connectState(folderPath_Queue, "NisMail_UserName".ToAppSetting(), "NisMail_PWD".ToAppSetting());

            DirectoryInfo TheFolder = new DirectoryInfo(this.folderPath_Queue);

            foreach (FileInfo NextFile in TheFolder.GetFiles("SFD*.TSV"))
            {
                bool          IsError = false;
                StringBuilder sb      = new StringBuilder();
                try
                {
                    using (StreamReader sr = new StreamReader(NextFile.FullName, Encoding.UTF8))
                    {
                        string   str     = sr.ReadToEnd();
                        string[] strlist = str.Split("\r\n".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
                        for (int i = 1; i < strlist.Length; i++)
                        {
                            string[] strs = strlist[i].Split('\t');
                            if (strs.Length != 6)
                            {
                                continue;
                            }
                            string CAT      = "'" + strs[0].Trim() + "'";
                            string ORDER_NO = "'" + strs[1].Trim() + "'";
                            //if (!IsExisit(strs[1].Trim())) {
                            //    LogInfo.Log.Error(string.Format("红字发票信息表编号【{0}】在 DABAN_BPM_DICS.dbo.MAIN_DIST_HP 中不存在!", strs[1].Trim()));
                            //    IsError = true;
                            //    continue;
                            //}
                            int FLAG = strs[2].Trim().ToUpper() == "X" ? 1 : 0;

                            string TYPE     = "'" + strs[3].Trim() + "'";
                            string INV_NO   = "'" + strs[4].Trim() + "'";
                            string PAY_DATE = "";
                            if (string.IsNullOrEmpty(strs[5].Trim()))
                            {
                                PAY_DATE = "NULL";
                            }
                            else
                            {
                                DateTime dt = DateTime.MinValue;
                                PAY_DATE = "'" + DateTime.TryParse(strs[5], out dt).ToString() + "'";
                            }
                            sb.AppendLine(string.Format(u_sql, FLAG, TYPE, ORDER_NO));
                        }
                    }
                    Execute(sb.ToString(), NextFile);
                }
                catch (Exception ex)
                {
                    LogInfo.Log.Error(ex);
                    IsError = true;
                    //发送邮件并移至错误文件夹中
                    context.MessageQueue("供应商红票状态回传", NextFile.FullName + "文件处理异常:" + ex.Message);
                    FileMove(NextFile, folderPath_Faild);
                }
                finally
                {
                    if (IsError)
                    {
                        context.MessageQueue("折扣折让状态回传处理异常", "折扣折让状态回传处理异常,详情请查看Log记录!");
                    }
                }
            }
        }
예제 #12
0
 public override void GetData()
 {
     LogInfo.Log.Info("执行SAP1客户行主数据同步");
     StringBuilder errMsg = new StringBuilder();
     StringBuilder successMsg = new StringBuilder();
     SQLHelper.ExecuteNonQuery(context.connStr, "DELETE FROM MAIN_CUSTOMER WHERE COMPANY IN(" + filter + ")");
     DataTable mainsupplier = SQLHelper.ExecuteDataset(context.connStr, CommandType.Text, "SELECT COMPANY, CSR_ID, CSR_NAME, CSR_ABB,FINCODE, DEL_FLG, KNA1KUNNR, KNA1LAND1, KNA1NAME1, KNA1NAME2, KNA1SORTL, KNA1ADRNR, KNA1ERDAT, KNA1ERNAM, KNA1KONZS, KNA1KTOKD, KNA1LIFNR, KNA1LOEVM, KNA1SPERR, KNA1SPRAS, KNA1STCD1, KNA1VBUND, KNA1STCEG, KNA1ZZDESTINATION, KNA1ZZPREFECTURE, KNA1ZZCITY, KNA1ZZAREACODE, KNA1ZZBIZMINUNIT, KNA1ZZCONCLASS, KNA1ZZRACUSTTYPE, KNA1ZZDEVDATE, KNA1ZZGRINOUTFLG, KNA1ZZVKBUR, KNA1ZKAIPIAO, KNA1ZHUISHOU, KNA1ZZGSQSEC_CUST, ADRCDATE_FROM, ADRCNATION, ADRCDATE_TO, ADRCTITLE, ADRCNAME1, ADRCNAME2, ADRCNAME3,ADRCNAME4, ADRCNAME_CO, ADRCCITY1, ADRCPOST_CODE1, ADRCPO_BOX, ADRCTRANSPZONE, ADRCSTREET, ADRCHOUSE_NUM1, ADRCSTR_SUPPL1,ADRCSTR_SUPPL2, ADRCSTR_SUPPL3, ADRCLOCATION, ADRCBUILDING, ADRCFLOOR, ADRCROOMNUMBER, ADRCCOUNTRY, ADRCLANGU, ADRCREGION, ADRCSORT1, ADRCSORT2, ADRCTEL_NUMBER, ADRCFAX_NUMBER, KNB1BUKRS, KNB1PERNR, KNB1ERDAT, KNB1ERNAM, KNB1SPERR, KNB1LOEVM,KNB1AKONT, KNB1ZTERM, KNVVVKORG, KNVVVTWEG, KNVVSPART, KNVVERNAM, KNVVERDAT, KNVVLOEVM, KNVVKALKS, KNVVKONDA, KNVVINCO1, KNVVINCO2, KNVVVSBED, KNVVWAERS, KNVVZTERM, KNVVVWERK, KNBKBANKS, KNBKBANKL, KNBKBANKN, KNBKBKONT, KNBKBKREF, KNBKKOINH, KNVKNAMEV, KNVKNAME1, KNVKTELF1, BNKABANKA FROM MAIN_CUSTOMER WHERE COMPANY IN(" + filter + ")").Tables[0];
     //向表中添加数据
     DataRow dr;
     ConnectFile.connectState(filePath, "NisMail_UserName".ToAppSetting(), "NisMail_PWD".ToAppSetting());
     using (StreamReader sr = new StreamReader(filePath, Encoding.UTF8))
     {
         string str = sr.ReadToEnd();
         string[] strlist = str.Split("\r\n".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
         for (int i = 1; i < strlist.Length; i++)
         {
             string[] strs = strlist[i].Split('\t');
             if (strs.Length < 92)
             {
                 errMsg.AppendLine("第" + (i + 1) + "行数据完整性异常");
                 errorCount++;
                 continue;
             }
             if (!dic.ContainsKey(strs[59]))
             {
                 errMsg.AppendLine(string.Format("第{0}行公司编码:{1}客户行编码:{2}客户行名称:{3}不存在于MAIN_COMPANY表中", (i + 1), strs[59], strs[0], strs[2]));
                 errorCount++;
                 continue;
             }
             //string key = dic[strs[47]] + strs[0];
             dr = mainsupplier.NewRow();
             dr["COMPANY"] = dic[strs[59]];
             dr["CSR_ID"] = strs[0];
             dr["CSR_NAME"] = strs[2];
             dr["CSR_ABB"] = strs[4];
             dr["FINCODE"] = strs[65];
             dr["DEL_FLG"] = strs[63].ToUpper() == "X" ? 1 : 0;
             dr["KNA1KUNNR"] = strs[0];
             dr["KNA1LAND1"] = strs[1];
             dr["KNA1NAME1"] = strs[2];
             dr["KNA1NAME2"] = strs[3];
             dr["KNA1SORTL"] = strs[4];
             dr["KNA1ADRNR"] = strs[5];
             if (strs[6] != "")
             {
                 if (strs[6].Length == 8)
                 {
                     dr["KNA1ERDAT"] = SplitDate(strs[6]);//date
                 }
                 else
                 {
                     dr["KNA1ERDAT"] = DBNull.Value;
                 }
             }
             else
             {
                 dr["KNA1ERDAT"] = DBNull.Value;
             }
             dr["KNA1ERNAM"] = strs[7];
             dr["KNA1KONZS"] = strs[8];
             dr["KNA1KTOKD"] = strs[9];
             dr["KNA1LIFNR"] = strs[10];
             dr["KNA1LOEVM"] = strs[11];
             dr["KNA1SPERR"] = strs[12];
             dr["KNA1SPRAS"] = strs[13];
             dr["KNA1STCD1"] = strs[14];
             dr["KNA1VBUND"] = strs[15];
             dr["KNA1STCEG"] = strs[16];
             dr["KNA1ZZDESTINATION"] = strs[17];
             dr["KNA1ZZPREFECTURE"] = strs[18];
             dr["KNA1ZZCITY"] = strs[19];
             dr["KNA1ZZAREACODE"] = strs[20];
             dr["KNA1ZZBIZMINUNIT"] = strs[21];
             dr["KNA1ZZCONCLASS"] = strs[22];
             dr["KNA1ZZRACUSTTYPE"] = strs[23];
             dr["KNA1ZZDEVDATE"] = strs[24];
             dr["KNA1ZZGRINOUTFLG"] = strs[25];
             dr["KNA1ZZVKBUR"] = strs[26];
             dr["KNA1ZKAIPIAO"] = strs[27];
             dr["KNA1ZHUISHOU"] = strs[28];
             dr["KNA1ZZGSQSEC_CUST"] = strs[29];
             if (strs[30] != "")
             {
                 if (strs[30].Length == 8)
                 {
                     dr["ADRCDATE_FROM"] = SplitDate(strs[30]);//date
                 }
                 else
                 {
                     dr["ADRCDATE_FROM"] = DBNull.Value;
                 }
             }
             else
             {
                 dr["ADRCDATE_FROM"] = DBNull.Value;
             }
             dr["ADRCNATION"] = strs[31];
             if (strs[32] != "")
             {
                 if (strs[32].Length == 8)
                 {
                     dr["ADRCDATE_TO"] = SplitDate(strs[32]);//date
                 }
                 else
                 {
                     dr["ADRCDATE_TO"] = DBNull.Value;
                 }
             }
             else
             {
                 dr["ADRCDATE_TO"] = DBNull.Value;
             }
             dr["ADRCTITLE"] = strs[33];
             dr["ADRCNAME1"] = strs[34];
             dr["ADRCNAME2"] = strs[35];
             dr["ADRCNAME3"] = strs[36];
             dr["ADRCNAME4"] = strs[37];
             dr["ADRCNAME_CO"] = strs[38];
             dr["ADRCCITY1"] = strs[39];
             dr["ADRCPOST_CODE1"] = strs[40];
             dr["ADRCPO_BOX"] = strs[41];
             dr["ADRCTRANSPZONE"] = strs[42];
             dr["ADRCSTREET"] = strs[43];
             dr["ADRCHOUSE_NUM1"] = strs[44];
             dr["ADRCSTR_SUPPL1"] = strs[45];
             dr["ADRCSTR_SUPPL2"] = strs[46];
             dr["ADRCSTR_SUPPL3"] = strs[47];
             dr["ADRCLOCATION"] = strs[48];
             dr["ADRCBUILDING"] = strs[49];
             dr["ADRCFLOOR"] = strs[50];
             dr["ADRCROOMNUMBER"] = strs[51];
             dr["ADRCCOUNTRY"] = strs[52];
             dr["ADRCLANGU"] = strs[53];
             dr["ADRCREGION"] = strs[54];
             dr["ADRCSORT1"] = strs[55];
             dr["ADRCSORT2"] = strs[56];
             dr["ADRCTEL_NUMBER"] = strs[57];
             dr["ADRCFAX_NUMBER"] = strs[58];
             dr["KNB1BUKRS"] = strs[59];//COMPANY
             dr["KNB1PERNR"] = strs[60];
             if (strs[61] != "")
             {
                 if (strs[61].Length == 8)
                 {
                     dr["KNB1ERDAT"] = SplitDate(strs[61]);//date
                 }
                 else
                 {
                     dr["KNB1ERDAT"] = DBNull.Value;
                 }
             }
             else
             {
                 dr["KNB1ERDAT"] = DBNull.Value;
             }
             dr["KNB1ERNAM"] = strs[62];
             dr["KNB1SPERR"] = strs[63];
             dr["KNB1LOEVM"] = strs[64];
             dr["KNB1AKONT"] = strs[65];
             dr["KNB1ZTERM"] = strs[66];
             dr["KNVVVKORG"] = strs[67];
             dr["KNVVVTWEG"] = strs[68];
             dr["KNVVSPART"] = strs[69];
             dr["KNVVERNAM"] = strs[70];
             if (strs[71] != "")
             {
                 if (strs[71].Length == 8 && strs[71] != "00000000")
                 {
                     dr["KNVVERDAT"] = SplitDate(strs[71]);//date
                 }
                 else
                 {
                     dr["KNVVERDAT"] = DBNull.Value;
                 }
             }
             else
             {
                 dr["KNVVERDAT"] = DBNull.Value;
             }
             dr["KNVVLOEVM"] = strs[72];
             dr["KNVVKALKS"] = strs[73];
             dr["KNVVKONDA"] = strs[74];
             dr["KNVVINCO1"] = strs[75];
             dr["KNVVINCO2"] = strs[76];
             dr["KNVVVSBED"] = strs[77];
             dr["KNVVWAERS"] = strs[78];
             dr["KNVVZTERM"] = strs[79];
             dr["KNVVVWERK"] = strs[80];
             dr["KNBKBANKS"] = strs[81];
             dr["KNBKBANKL"] = strs[82];
             dr["KNBKBANKN"] = strs[83];
             dr["KNBKBKONT"] = strs[84];
             dr["KNBKBKREF"] = strs[85];
             dr["KNBKKOINH"] = strs[86];
             dr["KNVKNAMEV"] = strs[87];
             dr["KNVKNAME1"] = strs[88];
             dr["KNVKTELF1"] = strs[89];
             dr["BNKABANKA"] = strs[90];//97 个字段
             mainsupplier.Rows.Add(dr);
             successMsg.AppendLine(string.Format("第{0}行公司:{1}客户行编码:{2}客户行名称:{3}成功", i + 1, dic[strs[59]], strs[0], strs[2]));
             successCount++;
         }
     }
     try
     {
         ExecuteMainData(mainsupplier, "MAIN_CUSTOMER");
     }
     catch (Exception ex)
     {
         //LogInfo.Log.Error(ex);
         //exception = ex;
         throw ex;
     }
     Log();
 }