示例#1
0
        public async Task <ErrMessage> DEL_LENOVOSFTP()
        {
            ErrMessage rETURN = new ErrMessage();
            await Task.Run(() =>
            {
                SFTPHelper sftp   = new SFTPHelper("bjmft.lenovo.com", "22", "Ex_Ontim_P", "Ex_Ontim_P");
                string remotePath = "/856_Appendix/out/tmp";
                bool bl           = true;
                bool bl1          = true;
                Dictionary <string, string> dic = sftp.GetFileListFileName(remotePath, ".txt", ref bl);
                if (bl)
                {
                    dic = dic.OrderBy(r => r.Value).ToDictionary(r => r.Key, r => r.Value);
                    foreach (KeyValuePair <string, string> kvp in dic)
                    {
                        string extenname = kvp.Key;
                        sftp.Delete(remotePath + "/" + extenname);
                    }
                }
                Dictionary <string, string> dic1 = sftp.GetFileListFileName(remotePath, ".trigger", ref bl1);
                if (bl1)
                {
                    dic1 = dic1.OrderBy(r => r.Value).ToDictionary(r => r.Key, r => r.Value);
                    foreach (KeyValuePair <string, string> kvp in dic1)
                    {
                        string extenname = kvp.Key;
                        sftp.Delete(remotePath + "/" + extenname);
                    }
                }
            });

            rETURN.Err     = "执行完成";
            rETURN.success = true;
            return(rETURN);
        }
示例#2
0
        ///****************************************************************************************************
        /// 函 数 名:doBackup
        /// 输入参数:无
        /// 返回值  :无
        /// 功能描述:
        /// <summary>
        /// 进行文件备份,即从sftp指定目录上下载文件到本地并删除sftp上的相应文件
        /// </summary>
        /// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        /// 创 建 人:罗嗣扬                        创建日期:2017-08-24
        /// 修 改 人:罗嗣扬                        修改日期:2017-08-25
        ///****************************************************************************************************
        public void doBackup()
        {
            //访问配置文件并获取默认配置
            string sftp_ip       = System.Configuration.ConfigurationManager.AppSettings["sftp_ip"];
            string sftp_port     = System.Configuration.ConfigurationManager.AppSettings["sftp_port"];
            string sftp_username = System.Configuration.ConfigurationManager.AppSettings["sftp_username"];
            string sftp_password = System.Configuration.ConfigurationManager.AppSettings["sftp_password"];
            string sftp_path     = System.Configuration.ConfigurationManager.AppSettings["sftp_path"];
            string local_path    = System.Configuration.ConfigurationManager.AppSettings["local_path"];

            //创建一个sftp类对象
            SFTPHelper sftpObj = null;

            try
            {
                //给sftp类对象赋值
                sftpObj = new SFTPHelper(sftp_ip, sftp_port, sftp_username, sftp_password);

                //连接sftp服务器
                sftpObj.Connect();

                //获取指定sftp的文件列表
                Array fileList = sftpObj.GetFileList(sftp_path).ToArray();

                //创建一个代表不带路径的文件名的字符串
                string shortFileName = "";

                //遍历已经获取的sftp文件列表,逐个从sftp下载文件到本地并删除sftp上的相应文件
                int i = 0;
                for (i = 0; i < fileList.Length; i++)
                {
                    try
                    {
                        shortFileName = fileList.GetValue(i).ToString();
                        sftpObj.Get(sftp_path + shortFileName, local_path + shortFileName);
                        sftpObj.Delete(sftp_path + shortFileName);
                    }
                    catch (Exception ex)
                    {
                        continue;
                    }
                }

                log.Info("Ftp文件下载成功。下载文件数:" + i.ToString());
            }
            catch (Exception ex)
            {
                log.Error("Ftp文件下载出现异常。", ex);
            }
            finally
            {
                if (sftpObj != null && sftpObj.Connected)
                {
                    //断开sftp连接
                    sftpObj.Disconnect();
                }
            }
        }
示例#3
0
        public override bool Business()
        {
            try
            {
                SFTPHelper fTPHelper = new SFTPHelper(SFTPIP, SFTPort, SFTPUser, SFTPPwd);
                //读取文件列表
                string[] receivefiles = Directory.GetFiles(SFTPConstants.ReceiveFilePath);
                LogHelper.WriteLog(typeof(string), "开始处理文件", LogHelper.LogLevel.INFO);

                if (receivefiles.Length > 0)
                {
                    //TextHelper txthelper = new TextHelper();
                    for (int i = 0; i < receivefiles.Length; i++)
                    {
                        LogModel log = new LogModel();
                        log.SourceFileName = receivefiles[i];

                        FileInfo file        = new FileInfo(receivefiles[i]);
                        string   filename    = file.Name;
                        string   result      = "";//解析的错误提示
                        string   externumber = "";
                        try
                        {
                            List <string> txtlists = TextHelper.ReadTextFileToList(receivefiles[i]);//读取成list

                            //没有数据
                            if (txtlists.Count() > 0)
                            {
                                //可以处理多个接口文件
                                switch (txtlists[0].ToString().Substring(0, 9).Trim())
                                {
                                case "WMSSKU":    //PUMA推给我们的
                                    log.Type = "WMSSKU";
                                    result   = new ProductAccessor().AddProduct(txtlists, out externumber);
                                    break;

                                case "WMSASN":    //PUMA推给我们的 入库单
                                    log.Type = "WMSASN";
                                    result   = new ASNAccessor().GetInbound_ASNHD(txtlists, out externumber);
                                    break;

                                case "WMSORD":    //PUMA推给我们的 出库单
                                    log.Type = "WMSORD";
                                    result   = new ASNAccessor().GetInbound_ORDHD(txtlists, out externumber);
                                    break;

                                default:
                                    log.Type = "";
                                    result   = "未能从文件中识别出对应的接口";
                                    break;
                                }

                                if (result == "200")
                                {
                                    //解析成功,移动到success文件夹
                                    log.ToFileName  = SFTPConstants.SuccessFilePath + @"\" + log.Type + @"\" + filename;
                                    log.ResultDesc  = "解析成功";
                                    log.Externumber = externumber;
                                    log.Flag        = "Y";

                                    if (log.Type == "WMSSKU")
                                    {
                                        fTPHelper.Delete(OUT_MASTER + "//" + filename);
                                    }
                                    else
                                    {
                                        fTPHelper.Delete(OUT_TRANSACTION + "//" + filename);
                                    }
                                }
                                else
                                {
                                    if (log.Type != "")
                                    {
                                        if (result.Contains("数据库插入失败"))
                                        {
                                            log.ToFileName  = "";// SFTPConstants.SuccessFilePath + @"\" + log.Type + @"\" + filename;
                                            log.ResultDesc  = "解析失败:" + result;
                                            log.Externumber = externumber;
                                            log.Flag        = "E";
                                        }
                                        else
                                        {
                                            log.ToFileName  = SFTPConstants.FaildFilePath + @"\" + log.Type + @"\" + filename;//移动到解析失败文件夹
                                            log.ResultDesc  = "解析失败:" + result;
                                            log.Externumber = externumber;
                                            log.Flag        = "N";
                                        }
                                    }
                                    else
                                    {
                                        log.ToFileName  = SFTPConstants.ErrorFilePath + @"\" + filename;
                                        log.ResultDesc  = "解析失败:" + result;
                                        log.Externumber = externumber;
                                        log.Flag        = "N";
                                    }
                                }
                            }
                            else
                            {
                                log.ToFileName = SFTPConstants.ErrorFilePath + @"\" + filename;
                                log.Flag       = "N";
                                log.ResultDesc = "解析失败:文档中无数据";
                            }
                        }
                        catch (Exception ex)
                        {
                            //报错了放到error文件
                            log.ToFileName = SFTPConstants.ErrorFilePath + @"\" + filename;
                            log.Flag       = "N";
                            log.ResultDesc = "解析报错:" + ex.Message.ToString();
                        }
                        if (log.Flag == "E")
                        {//数据库失败再解析一次
                        }
                        else
                        {
                            LocalFileHelper.MoveToCover(log.SourceFileName, log.ToFileName);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                LogHelper.WriteLog(typeof(string), "处理文件错误" + ex.ToString(), LogHelper.LogLevel.INFO);

                //throw;
            }
            return(true);
        }