public override bool Put() { try { //获取配置参数 DefConfigurationSectionRequest DefRequest = this._paramList.SingleOrDefault( o => o.Key == "SKURequest").Value; Request request = null; if (DefRequest != null) { LogHelper.WriteLog(typeof(string), batchNumber + ":<<上传", LogHelper.LogLevel.INFO); switch (DefRequest.runningMode) { case "off": LogHelper.WriteLog(typeof(string), batchNumber + ":上传的模式不存在", LogHelper.LogLevel.Warn); break; case "on_once": //执行单次模式,按照配置表提供的参数执行 //请求参数 request = new Request(DefRequest.startTime, DefRequest.endTime, DefRequest.page, DefRequest.pageSize); //return (GetSKU(batchNumber, request)); break; case "on_continuity": ///执行连续模式,获取起始日期和终止日期的时间差,用于配置 ASNAccessor Accessor = new ASNAccessor(); Accessor.wms_receipt(); //上传入库反馈 Accessor.Create_SHPPK(); //上传出库反馈 Accessor.QueryIQCManual(); //生成手工单移库 Accessor.WMSAdjustment(); //上传调整反馈 //Accessor.WMSInventory();//上传库存快照反馈 return(true); default: LogHelper.WriteLog(typeof(string), batchNumber + ":上传的模式不存在", LogHelper.LogLevel.Error); break; } return(true); } else { LogHelper.WriteLog(typeof(string), batchNumber + ":请求参数为空,无法继续", LogHelper.LogLevel.Error); return(false); } } catch (Exception ex) { LogHelper.WriteLog(ex.GetType(), batchNumber + ":" + ex.Message, LogHelper.LogLevel.Error); return(false); } finally { LogHelper.WriteLog(typeof(string), batchNumber + ">>结束上传", LogHelper.LogLevel.INFO); } }
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); }