コード例 #1
0
 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);
     }
 }
コード例 #2
0
        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);
            }
        }
コード例 #3
0
        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);
            }
        }
コード例 #4
0
        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);
            }
        }
コード例 #5
0
 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);
     }
 }
コード例 #6
0
        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);
            }
        }
コード例 #7
0
 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);
     }
 }
コード例 #8
0
 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);
     }
 }
コード例 #9
0
 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);
     }
 }
コード例 #10
0
        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);
            }
        }
コード例 #11
0
 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);
     }
 }
コード例 #12
0
        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
            //}
        }
コード例 #13
0
        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
            }
        
        }
コード例 #14
0
 private string GetFilePrefix(OutboundControl outboundControl)
 {
     string filePrefix = outboundControl.SystemCode;
     return filePrefix;
 }
コード例 #15
0
 //#region Abstract Method
 //protected abstract Dictionary<string, string[][]> ExtractOutboundData(string systemCode);//应该带有一个参数FisMapping
 protected abstract void ExtractOutboundData(string systemCode, OutboundControl outboundControl);