protected override void ExtractOutboundData(string huId, OutboundControl outboundControl) { lock (ExportBarCodeLock) { if (ii == 99) ii = 10; var result = new Dictionary<string, string[][]>(); var list = this.genericMgr.FindAll<CreateBarCode>(@"from CreateBarCode as c where c.IsCreateDat =0 order by Id asc "); nowTime = DateTime.Now.ToString("yyyyMMddHHmmss"); list = list.OrderBy(l => l.Id).ToList(); int count = list.Count % 2000 == 0 ? list.Count / 2000 : list.Count / 2000 + 1; for (int i = 0; i < count; i++) { List<string[]> extractData = new List<string[]>(); var currentList = list.Skip(i * 2000).Take(2000); var maxId = currentList.Max(c => c.Id); var minId = currentList.Min(c => c.Id); foreach (var barCodeDat in currentList) { var data = new List<string> { maxId.ToString()+","+minId.ToString(), barCodeDat.HuId + "\t", barCodeDat.LotNo + "\t", barCodeDat.Item + "\t", barCodeDat.Qty + "\t", barCodeDat.ManufactureParty + "\t", barCodeDat.ASN + "\t" }; extractData.Add(data.ToArray()); } result.Add("HUID" + nowTime + ii++ + ".DAT", extractData.ToArray()); } base.BaseOutboundData(result, outboundControl); } }
protected override void ExtractOutboundData(string systemCode, OutboundControl outboundControl) { lock (ExporLocationLock) { if (ii == 99) ii = 10; var result = new Dictionary<string, string[][]>(); var list = this.genericMgr.FindAll<Location>(@"from Location as c where (DATEDIFF(d,c.LastModifyDate,GETDATE())=0) and IsActive=? ", true); nowTime = DateTime.Now.ToString("yyyyMMddHHmmss"); if (list.Count > 0) { List<string[]> extractData = new List<string[]>(); foreach (var barCodeDat in list) { var data = new List<string> { barCodeDat.Code, barCodeDat.Code + "\t", barCodeDat.Name + "\t", "0084\t" }; extractData.Add(data.ToArray()); } result.Add("WARE" + nowTime+ii++ + ".DAT", extractData.ToArray()); } base.BaseOutboundData(result, outboundControl); } }
protected override void ExtractOutboundData(string systemCode, OutboundControl outboundControl) { lock (ExporSeqKitFlowLock) { if (ii == 99) ii = 10; var result = new Dictionary<string, string[][]>(); var list = this.genericMgr.FindAll<FlowMaster>(@"select f from FlowMaster as f where f.PartyFrom=? and f.FlowStrategy=? ", new object[] { "LOC", (int)com.Sconit.CodeMaster.FlowStrategy.SEQ }); nowTime = DateTime.Now.ToString("yyyyMMddHHmmss"); if (list.Count > 0) { List<string[]> extractData = new List<string[]>(); foreach (var flowMaster in list) { var data = new List<string> { flowMaster.Code, flowMaster.Code + "\t", flowMaster.Description + "\t", "0084\t", flowMaster.Type + "\t", }; extractData.Add(data.ToArray()); } result.Add("FLOW" + nowTime+ii++ + ".DAT", extractData.ToArray()); } base.BaseOutboundData(result, outboundControl); } }
protected override void ExtractOutboundData(string systemCode, OutboundControl outboundControl) { lock (ExporEdiOrderInfoLock) { if (ii == 99) ii = 10; Dictionary<string, string[][]> result = new Dictionary<string, string[][]>(); IList<EdiOrderInfo> ediOrderInfoList = this.genericMgr.FindAll<EdiOrderInfo>(@"from EdiOrderInfo as ei where ei.OrderStrategy in(2,3) and ei.IsDelayOrder=0 and ei.IsCreateByPO=0 and Type=1 and Priority=0 and ei.Status in (0,2) and IsChangeOrder=0 and ei.IsCreateBySA=0 "); List<string> orderNos = ediOrderInfoList.Select(o => o.OrderNo).Distinct().ToList(); foreach (var orderNo in orderNos) { List<string[]> extractData = new List<string[]>(); foreach (var ediOrderInfo in ediOrderInfoList.Where(o => o.OrderNo == orderNo)) { List<string> data = new List<string>(); data.Add(systemCode); data.Add("SEM"); data.Add(ediOrderInfo.Supplier); data.Add(DateTime.Now.ToString("yyyyMMddHHmm")); data.Add(ediOrderInfo.Supplier); data.Add(ediOrderInfo.Item); data.Add(ediOrderInfo.WindowTime.ToString("yyyyMMdd")); data.Add(ediOrderInfo.WindowTime.ToString("HHmm")); //data.Add(SystemHelper.IsInterate(ediOrderInfo.OrderQty)?((int)ediOrderInfo.OrderQty).ToString():ediOrderInfo.OrderQty.ToString()); // data.Add(SystemHelper.IsInterate(ediOrderInfo.ShipQty)?((int)ediOrderInfo.ShipQty).ToString():ediOrderInfo.ShipQty.ToString()); // data.Add(SystemHelper.IsInterate(ediOrderInfo.ReciveQty)?((int)ediOrderInfo.ReciveQty).ToString():ediOrderInfo.ReciveQty.ToString()); data.Add("R07"); data.Add("4"); data.Add(ediOrderInfo.OrderNo); data.Add(ediOrderInfo.Sequence.ToString()); data.Add(""); data.Add(ediOrderInfo.Bin); data.Add(""); data.Add(ediOrderInfo.PONo); data.Add(ediOrderInfo.Dock); data.Add(ediOrderInfo.UCDesc); // data.Add(SystemHelper.IsInterate(ediOrderInfo.UnitCount)?((int)ediOrderInfo.UnitCount).ToString():ediOrderInfo.UnitCount.ToString()); data.Add(ediOrderInfo.Type == 1 ? "1" : "3"); data.Add(ediOrderInfo.OrderStrategy == 2 ? "0" : "1"); data.Add(""); data.Add(ediOrderInfo.IsInspect ? "1" : "0"); extractData.Add(data.ToArray()); } result.Add(orderNo, extractData.ToArray()); } base.BaseOutboundData(result, outboundControl); } }
protected override void ExtractOutboundData(string systemCode, OutboundControl outboundControl) { lock (ExportOrderDATLock) { if (i == 99) i = 10; Dictionary<string, string[][]> result = new Dictionary<string, string[][]>(); IList<CreateProcurementOrderDAT> createOrderDATList = this.genericMgr.FindAll<CreateProcurementOrderDAT>(@"from CreateProcurementOrderDAT as c where c.IsCreateDat=?", false); List<string> orderNos = createOrderDATList.Select(o => o.OrderNo).Distinct().ToList(); nowTime = System.DateTime.Now.ToString("yyyyMMddHHmmss"); //int i = 10; foreach (var orderNo in orderNos) { List<string[]> extractData = new List<string[]>(); foreach (var createOrderDAT in createOrderDATList.Where(o => o.OrderNo == orderNo)) { List<string> data = new List<string>(); data.Add(createOrderDAT.OrderNo); data.Add(createOrderDAT.OrderNo + "\t"); data.Add(createOrderDAT.Van + "\t"); data.Add(createOrderDAT.OrderStrategy + "\t"); data.Add(createOrderDAT.StartTime.ToString("yyyy/MM/dd HH:mm:ss") + "\t"); data.Add(createOrderDAT.WindowTime.ToString("yyyy/MM/dd HH:mm:ss") + "\t"); data.Add(createOrderDAT.Priority + "\t"); data.Add(createOrderDAT.Sequence + "\t"); data.Add(createOrderDAT.PartyFrom + "\t"); data.Add(createOrderDAT.PartyTo + "\t"); data.Add(createOrderDAT.Dock + "\t"); data.Add(nowTime + "\t"); data.Add(createOrderDAT.Flow + "\t"); data.Add(createOrderDAT.LineSeq + "\t"); data.Add(createOrderDAT.Item + "\t"); data.Add(createOrderDAT.ManufactureParty + "\t"); data.Add(createOrderDAT.LocationTo + "\t"); if (string.IsNullOrWhiteSpace(createOrderDAT.Routing)) { data.Add(createOrderDAT.Bin + "\t"); //工位 } else { data.Add(createOrderDAT.Routing + "\t"); //捡货库格 } data.Add(createOrderDAT.OrderedQty + "\t"); data.Add(createOrderDAT.IsShipExceed + "\t"); extractData.Add(data.ToArray()); } result.Add("SHIP" + nowTime + (i++) + ".DAT", extractData.ToArray()); } base.BaseOutboundData(result, outboundControl); } }
protected override void ExtractOutboundData(string systemCode, OutboundControl outboundControl) { lock (ExportIpDATLock) { if (i == 99) i = 10; Dictionary<string, string[][]> result = new Dictionary<string, string[][]>(); IList<CreateIpDAT> createIpDATList = this.genericMgr.FindAll<CreateIpDAT>(@"from CreateIpDAT as c where c.IsCreateDat=0 and c.ErrorCount<5"); List<string> ipNos = createIpDATList.Select(o => o.ASN_NO).Distinct().ToList(); nowTime = System.DateTime.Now.ToString("yyyyMMddHHmmss"); foreach (var ipNo in ipNos) { List<string[]> extractData = new List<string[]>(); foreach (var createIpDAT in createIpDATList.Where(o => o.ASN_NO == ipNo).OrderBy(o => o.Id)) { List<string> data = new List<string>(); data.Add(createIpDAT.ASN_NO); data.Add(createIpDAT.ASN_NO + "\t"); data.Add(createIpDAT.ASN_ITEM + "\t"); data.Add(createIpDAT.WH_CODE + "\t"); data.Add(createIpDAT.WH_DOCK + "\t"); data.Add(createIpDAT.WH_LOCATION + "\t"); data.Add(createIpDAT.ITEM_CODE + "\t"); data.Add(createIpDAT.SUPPLIER_CODE + "\t"); data.Add(createIpDAT.QTY + "\t"); data.Add(createIpDAT.UOM + "\t"); data.Add(createIpDAT.BASE_UNIT_QTY + "\t"); data.Add(createIpDAT.BASE_UNIT_UOM + "\t"); data.Add(createIpDAT.QC_FLAG + "\t"); data.Add(createIpDAT.DELIVERY_DATE.ToString("yyyyMMddHHmmss") + "\t"); data.Add(createIpDAT.TIME_WINDOW + "\t"); data.Add(createIpDAT.PO + "\t"); data.Add(createIpDAT.FINANCE_FLAG + "\t"); data.Add(createIpDAT.COMPONENT_FLAG + "\t"); data.Add(createIpDAT.TRACKID + "\t"); data.Add(createIpDAT.PO_LINE + "\t"); data.Add(createIpDAT.FactoryInfo + "\t"); data.Add(createIpDAT.F80XBJ + "\t"); data.Add(createIpDAT.F80X_LOCATION); extractData.Add(data.ToArray()); } //string fileName = createIpDATList.Where(o => o.ASN_NO == ipNo).First().FileName; //result.Add(fileName+(i++)+".DAT", extractData.ToArray()); result.Add("ASNLE" + nowTime + (i++) + ".DAT", extractData.ToArray()); } base.BaseOutboundData(result, outboundControl); } }
protected override void ExtractOutboundData(string systemCode, OutboundControl outboundControl) { lock (ExportSeqOrderDATLock) { if (i == 99) i = 10; Dictionary<string, string[][]> result = new Dictionary<string, string[][]>(); IList<CreateSeqOrderDAT> createSeqOrderDATList = this.genericMgr.FindAll<CreateSeqOrderDAT>(@"from CreateSeqOrderDAT as c where c.IsCreateDat=0 and c.ErrorCount<5 and Qty>0"); List<string> seqNos = createSeqOrderDATList.Select(o => o.SeqNo).Distinct().ToList(); nowTime = System.DateTime.Now.ToString("yyyyMMddHHmmss"); //int i = 10; foreach (var seqNo in seqNos) { List<string[]> extractData = new List<string[]>(); foreach (var createSeqOrderDAT in createSeqOrderDATList.Where(o => o.SeqNo == seqNo)) { List<string> data = new List<string>(); data.Add(createSeqOrderDAT.SeqNo); data.Add(createSeqOrderDAT.SeqNo + "\t"); data.Add(createSeqOrderDAT.Seq + "\t"); data.Add(createSeqOrderDAT.Flow + "\t"); data.Add(createSeqOrderDAT.StartTime.ToString("yyyy/MM/dd HH:mm:ss") + "\t"); data.Add(createSeqOrderDAT.WindowTime.ToString("yyyy/MM/dd HH:mm:ss") + "\t"); data.Add(createSeqOrderDAT.PartyFrom + "\t"); data.Add(createSeqOrderDAT.PartyTo + "\t"); data.Add(createSeqOrderDAT.LocationTo + "\t"); data.Add(createSeqOrderDAT.Container + "\t"); data.Add(createSeqOrderDAT.CreateDate.ToString("yyyy/MM/dd HH:mm:ss") + "\t"); data.Add(createSeqOrderDAT.Item + "\t"); data.Add(createSeqOrderDAT.ManufactureParty + "\t"); data.Add(createSeqOrderDAT.Qty + "\t"); data.Add(createSeqOrderDAT.SequenceNumber + "\t"); data.Add(createSeqOrderDAT.Van + "\t"); data.Add(createSeqOrderDAT.Line + "\t"); data.Add(createSeqOrderDAT.Station + "\t"); data.Add(createSeqOrderDAT.OrderDetId.ToString() + "\t"); extractData.Add(data.ToArray()); } result.Add("SEQ" + nowTime + (i++) + ".DAT", extractData.ToArray()); } base.BaseOutboundData(result, outboundControl); } }
protected override void ExtractOutboundData(string systemCode, OutboundControl outboundControl) { lock (ExportOrderDATLock) { if (i == 99) i = 10; Dictionary<string, string[][]> result = new Dictionary<string, string[][]>(); IList<CreateOrderDAT> createOrderDATList = this.genericMgr.FindAll<CreateOrderDAT>(@"from CreateOrderDAT as c where c.IsCreateDat=0 and c.ErrorCount<5"); List<string> orderNos = createOrderDATList.Select(o => o.OrderNo).Distinct().ToList(); nowTime = System.DateTime.Now.ToString("yyyyMMddHHmmss"); //int i = 10; foreach (var orderNo in orderNos) { List<string[]> extractData = new List<string[]>(); foreach (var createOrderDAT in createOrderDATList.Where(o => o.OrderNo == orderNo)) { List<string> data = new List<string>(); data.Add(createOrderDAT.OrderNo); data.Add(createOrderDAT.MATNR + "\t"); data.Add(createOrderDAT.LIFNR + "\t"); data.Add(createOrderDAT.ENMNG + "\t"); data.Add(createOrderDAT.CHARG + "\t"); data.Add(createOrderDAT.COLOR + "\t"); data.Add(createOrderDAT.TIME_STAMP + "\t"); data.Add(createOrderDAT.CY_SEQNR + "\t"); data.Add(nowTime + "\t"); data.Add(createOrderDAT.AUFNR + "\t"); data.Add(createOrderDAT.LGORT + "\t"); data.Add(createOrderDAT.UMLGO + "\t"); data.Add((!string.IsNullOrWhiteSpace(createOrderDAT.LGPBE)? createOrderDAT.LGPBE : createOrderDAT.UMLGO) + "\t"); data.Add(createOrderDAT.REQ_TIME_STAMP + "\t"); data.Add(createOrderDAT.FLG_SORT + "\t"); data.Add(createOrderDAT.PLNBEZ + "\t"); data.Add(createOrderDAT.KTEXT + "\t"); data.Add(createOrderDAT.ZPLISTNO); extractData.Add(data.ToArray()); } result.Add("SEQ1LE" + nowTime + (i++) + ".DAT", extractData.ToArray()); } base.BaseOutboundData(result, outboundControl); } }
protected override void ExtractOutboundData(string systemCode, OutboundControl outboundControl) { lock (ExportIpDATLock) { if (i == 99) i = 10; Dictionary<string, string[][]> result = new Dictionary<string, string[][]>(); IList<LesINLog> lesINLogList = this.genericMgr.FindAll<LesINLog>(@"from LesINLog as l where l.IsCreateDat=0"); List<string> fileNames = lesINLogList.Select(o => o.FileName).Distinct().ToList(); nowTime = System.DateTime.Now.ToString("yyyyMMddHHmmss"); //int i = 10; foreach (var fileName in fileNames) { List<string[]> extractData = new List<string[]>(); var ids = string.Join( "','",lesINLogList.Where(o => o.FileName == fileName).Select(o => o.Id).ToArray()); foreach (var lesINLog in lesINLogList.Where(o => o.FileName == fileName)) { List<string> data = new List<string>(); data.Add(ids); data.Add(lesINLog.Type + "\t"); data.Add(lesINLog.MoveType + "\t"); data.Add(lesINLog.Id + "\t"); data.Add(lesINLog.PO + "\t"); data.Add(lesINLog.POLine + "\t"); data.Add(lesINLog.WMSNo + "\t"); data.Add(lesINLog.WMSLine + "\t"); data.Add(lesINLog.HandTime.ToString("yyMMddHHmmss") + "\t"); data.Add(lesINLog.Item + "\t"); data.Add(lesINLog.HandResult + "\t"); data.Add(lesINLog.ErrorCause + "\t"); data.Add(lesINLog.Qty + "\t"); data.Add(lesINLog.QtyMark + "\t"); extractData.Add(data.ToArray()); } //string fileName = lesINLogList.Where(o => o.FileName == fileName).First().HandTime; //result.Add(fileName + (i++) + ".DAT", extractData.ToArray()); result.Add("LOGLE" + nowTime + (i++) + ".DAT", extractData.ToArray()); } base.BaseOutboundData(result, outboundControl); } }
protected override void ExtractOutboundData(string systemCode, OutboundControl outboundControl) { lock (ExporYieldReturnLock) { if (i == 99) i = 10; var result = new Dictionary<string, string[][]>(); var list = this.genericMgr.FindAll<YieldReturn>(@"from YieldReturn as c where c.IsCreateDat=0 order by Id asc"); List<string> ipNos = list.Select(o => o.IpNo).Distinct().ToList(); nowTime = DateTime.Now.ToString("yyyyMMddHHmmss"); foreach (var ipNo in ipNos) { List<string[]> extractData = new List<string[]>(); foreach (var m in list.Where(c => c.IpNo == ipNo)) { var data = new List<string> { m.IpNo, m.IpNo + "\t", m.ArriveTime + "\t", m.PartyFrom + "\t", m.PartyTo + "\t", m.Dock + "\t", m.CreateDate.ToString("yyyy/MM/dd HH:mm:ss") + "\t", m.Seq + "\t", m.Item + "\t", m.ManufactureParty + "\t", m.Qty + "\t", m.IsConsignment + "\t" }; extractData.Add(data.ToArray()); } var fileName = "RETU" + nowTime + (i++) + ".DAT"; result.Add(fileName, extractData.ToArray()); } base.BaseOutboundData(result, outboundControl); } }
protected override void ExtractOutboundData(string systemCode, OutboundControl outboundControl) { lock (ExportPackDATLock) { if (ii == 99) ii = 10; int suffix = 10; var result = new Dictionary<string, string[][]>(); var list = this.genericMgr.FindAll<ItemStandardPackDAT>(@"from ItemStandardPackDAT as c where c.IsCreateDat=0 order by Id asc"); nowTime = DateTime.Now.ToString("yyyyMMddHHmmss"); list = list.OrderBy(l => l.Id).ToList(); int count = list.Count % 2000 == 0 ? list.Count / 2000 : list.Count / 2000 + 1; for (int i = 0; i < count; i++) { List<string[]> extractData = new List<string[]>(); var currentList = list.Skip(i * 2000).Take(2000); var maxId = currentList.Max(c => c.Id); var minId = currentList.Min(c => c.Id); foreach (var barCodeDat in currentList) { var data = new List<string> { maxId.ToString()+","+minId.ToString(), barCodeDat.Item + "\t", barCodeDat.Pack + "\t", barCodeDat.UC + "\t", barCodeDat.IOType + "\t", barCodeDat.Location + "\t", barCodeDat.Plant + "\t" }; extractData.Add(data.ToArray()); } result.Add("ITEM" + nowTime + (ii++) + ".DAT", extractData.ToArray()); } base.BaseOutboundData(result, outboundControl); } }
public void ProcessOutbound(OutboundControl outboundControl) { //log.Info("Start process outbound."); string outFolder = outboundControl.OutFolder; //string serviceName = dssOutboundControl.ServiceName; string archiveFolder = outboundControl.ArchiveFolder; string tempFolder = outboundControl.TempFolder; string encoding = outboundControl.FileEncoding; // string encoding = Encoding.Default.WebName; string filePrefix = this.GetFilePrefix(outboundControl); #region 初始化本地目录 //outFolder = outFolder.Replace("\\", "/"); //if (!outFolder.EndsWith("/")) //{ // outFolder += "/"; //} //if (!Directory.Exists(outFolder)) //{ // Directory.CreateDirectory(outFolder); //} //archiveFolder = archiveFolder.Replace("\\", "/"); //if (!archiveFolder.EndsWith("/")) //{ // archiveFolder += "/"; //} //if (!Directory.Exists(archiveFolder)) //{ // Directory.CreateDirectory(archiveFolder); //} //tempFolder = tempFolder.Replace("\\", "/"); //if (!tempFolder.EndsWith("/")) //{ // tempFolder += "/"; //} //if (Directory.Exists(tempFolder)) //{ // var d = new DirectoryInfo(tempFolder); // //则删除此目录、其子目录以及所有文件 // d.Delete(true); // //Directory.Delete(tempFolder); //} //Directory.CreateDirectory(tempFolder); #endregion #region 抽取数据 IList<FormatControl> lenArray = null; ExtractOutboundData(outboundControl.SystemCode, outboundControl); // IList<FormatControl> lenArray = this.genericMgr.FindAll<FormatControl>("from FormatControl f where f.SystemCode=? order by Sequence asc", outboundControl.SystemCode); //Dictionary<string, string[][]> result = ExtractOutboundData(outboundControl.SystemCode,outboundControl); #endregion //foreach (var data in result) //{ // Random rd = new Random(); // Thread.Sleep(10); // //string fileName = DateTime.Now.ToString("yyyyMMddHHmmssff") + filePrefix + rd.Next(0, 9).ToString() + ".dat"; // string fileName = data.Key; // StreamWriter sw = new StreamWriter(tempFolder + fileName, false, Encoding.GetEncoding(encoding)); // int flushCount = 0; // string key = data.Value.First()[0]; // foreach (var item in data.Value) // { // item[0] = string.Empty; // sw.WriteLine(ParseLine(item)); // if (flushCount % 2000 == 0) // { // sw.Flush(); // } // flushCount++; // } // sw.Flush(); // sw.Close(); // #region 文件移至目录 // try // { // File.Copy(tempFolder + fileName, archiveFolder + fileName); //备份目录 // log.Debug(archiveFolder + fileName+" 备份成功。 "); // File.Move(tempFolder + fileName, outFolder + fileName); //导出目录 // log.Debug(archiveFolder + fileName + " 导出目录成功。 "); // SaveOutboundData(key, true); // SaveOutboundData(key, true, fileName); // } // catch (Exception ex) // { // log.Error("Create export file error.", ex); // if (File.Exists(archiveFolder + fileName)) // { // File.Delete(archiveFolder + fileName); // } // if (File.Exists(outFolder + fileName)) // { // File.Delete(outFolder + fileName); // } // SaveOutboundData(key, false); // } // #endregion //} }
protected void BaseOutboundData(Dictionary<string, string[][]> result, OutboundControl outboundControl) { string outFolder = outboundControl.OutFolder; string archiveFolder = outboundControl.ArchiveFolder; string tempFolder = outboundControl.TempFolder; string encoding = outboundControl.FileEncoding; string filePrefix = this.GetFilePrefix(outboundControl); #region 初始化本地目录 outFolder = outFolder.Replace("\\", "/"); if (!outFolder.EndsWith("/")) { outFolder += "/"; } if (!Directory.Exists(outFolder)) { Directory.CreateDirectory(outFolder); } archiveFolder = archiveFolder.Replace("\\", "/"); if (!archiveFolder.EndsWith("/")) { archiveFolder += "/"; } if (!Directory.Exists(archiveFolder)) { Directory.CreateDirectory(archiveFolder); } tempFolder = tempFolder.Replace("\\", "/"); if (!tempFolder.EndsWith("/")) { tempFolder += "/"; } if (Directory.Exists(tempFolder)) { var d = new DirectoryInfo(tempFolder); //则删除此目录、其子目录以及所有文件 d.Delete(true); //Directory.Delete(tempFolder); } Directory.CreateDirectory(tempFolder); #endregion foreach (var data in result) { Random rd = new Random(); Thread.Sleep(10); //string fileName = DateTime.Now.ToString("yyyyMMddHHmmssff") + filePrefix + rd.Next(0, 9).ToString() + ".dat"; string fileName = data.Key; StreamWriter sw = new StreamWriter(tempFolder + fileName, false, Encoding.GetEncoding(encoding)); int flushCount = 0; string key = data.Value.First()[0]; foreach (var item in data.Value) { item[0] = string.Empty; sw.WriteLine(ParseLine(item)); if (flushCount % 2000 == 0) { sw.Flush(); } flushCount++; } sw.Flush(); sw.Close(); #region 文件移至目录 try { File.Copy(tempFolder + fileName, archiveFolder + fileName); //备份目录 //log.Debug(archiveFolder + fileName + " 备份成功。 "); File.Move(tempFolder + fileName, outFolder + fileName); //导出目录 //log.Debug(archiveFolder + fileName + " 导出目录成功。 "); SaveOutboundData(key, true); SaveOutboundData(key, true, fileName); } catch (Exception ex) { log.Error("Create export file error.", ex); if (File.Exists(archiveFolder + fileName)) { File.Delete(archiveFolder + fileName); } if (File.Exists(outFolder + fileName)) { File.Delete(outFolder + fileName); } SaveOutboundData(key, false); } #endregion } }
private string GetFilePrefix(OutboundControl outboundControl) { string filePrefix = outboundControl.SystemCode; return filePrefix; }
//#region Abstract Method //protected abstract Dictionary<string, string[][]> ExtractOutboundData(string systemCode);//应该带有一个参数FisMapping protected abstract void ExtractOutboundData(string systemCode, OutboundControl outboundControl);