コード例 #1
0
ファイル: DataAction2.cs プロジェクト: terius/-20191025
        private Hashtable CreateHtParam(EHS_ENTRY_HEAD info)
        {
            Hashtable ht = new Hashtable();

            ht["SHIP_ID"]      = info.SHIP_ID;
            ht["VOYAGE_NO"]    = info.VOYAGE_NO;
            ht["BILL_NO"]      = info.BILL_NO;
            ht["I_E_FLAG"]     = info.I_E_FLAG;
            ht["I_E_PORT"]     = info.I_E_PORT;
            ht["L_D_PORT"]     = info.L_D_PORT;
            ht["TRAF_NAME"]    = info.TRAF_NAME;
            ht["SEND_NAME"]    = info.SEND_NAME;
            ht["OWNER_NAME"]   = info.OWNER_NAME;
            ht["SEND_COUNTRY"] = info.SEND_COUNTRY;
            ht["SEND_CITY"]    = info.SEND_CITY;
            ht["TRADE_CODE"]   = info.TRADE_CODE;
            ht["TRADE_NAME"]   = info.TRADE_NAME;
            ht["MAIN_G_NAME"]  = info.MAIN_G_NAME;
            ht["PACK_NO"]      = info.PACK_NO;
            ht["GROSS_WT"]     = info.GROSS_WT;
            ht["TOTAL_VALUE"]  = info.TOTAL_VALUE;
            ht["CURR_CODE"]    = info.CURR_CODE;
            ht["I_E_DATE"]     = info.I_E_DATE;
            ht["D_DATE"]       = info.D_DATE;
            ht["ENTRY_TYPE"]   = info.ENTRY_TYPE;
            ht["DEC_TYPE"]     = info.DEC_TYPE;
            ht["DEC_ER"]       = info.DEC_ER;
            ht["READ_DATE"]    = info.READ_DATE;
            ht["DEC_DATE"]     = info.DEC_DATE;
            ht["M_CHECKH"]     = info.CHK_MARK;
            ht["READ_FLAG"]    = "0";
            return(ht);
        }
コード例 #2
0
ファイル: DataAction2.cs プロジェクト: terius/-20191025
        private int SaveInfo(EHS_ENTRY_HEAD info)
        {
            if (info == null)
            {
                return(0);
            }
            int rs = 0;

            try
            {
                //S();
                string newDecType = ChangeDecType(info.TRADE_CODE, info.DEC_TYPE);
                info.DEC_TYPE = newDecType;
                bool billIsExist = CheckBillExist(info.BILL_NO);
                // E("", "判断");
                // S();
                if (billIsExist)
                {
                    rs = UpdateHeadInfo(info);
                    //  FileHelper.WriteLog("更新 BILL_NO:" + info.BILL_NO + (rs > 0 ? "成功" : "失败"));
                }
                else
                {
                    rs = InsertHeadInfo(info);
                    //   FileHelper.WriteLog("新增 BILL_NO:" + info.BILL_NO + (rs > 0 ? "成功" : "失败"));
                }
                //   E("", "数据库存储");
            }
            catch (Exception ex)
            {
                FileHelper.WriteLog("发生错误! BILL_NO:" + info.BILL_NO + "\r\n错误原因:" + ex.ToString());
            }

            return(rs);
        }
コード例 #3
0
ファイル: DataAction2.cs プロジェクト: terius/-20191025
        public void ReadFiles()
        {
            DirectoryInfo di      = new DirectoryInfo(HGPath);
            FileInfo      newFile = null;
            MyXmlDocument doc     = MyXmlDocument.CreateInstance();

            //try
            //{
            //    while (true)
            //    {
            //        di = new DirectoryInfo(HGPath);
            //        bool rs = di.Exists;
            //        if (rs)
            //        {
            //            break;
            //        }
            //        Thread.Sleep(60000);
            //    }
            //}
            //catch (Exception ex)
            //{
            //    Loger.LogMessage(ex.ToString());
            //}
            // FileHelper.WriteLog("开始获取文件");
            S();
            FileInfo[] files = di.GetFiles();

            //  int icount = Math.Min(50, files.Length);
            int icount = files.Length;

            E("", "从海关服务器读取文件");
            FileHelper.WriteLog("从海关服务上获取到" + icount + "个文件");
            DateTime dtS = DateTime.Now;
            string   dueTime, dueTxt;
            string   newFilePath = "";

            for (int i = 0; i < icount; i++)
            {
                try
                {
                    dtS = DateTime.Now;
                    S();
                    newFilePath = MoveFileToPath(files[i], ReadPath);
                    CopyFileToPath(newFilePath, OtherPath);

                    E(files[i].Name, "移动到Read文件夹");
                    S();
                    newFile = new FileInfo(newFilePath);
                    //  XmlDocument doc = new XmlDocument();
                    doc.Load(newFile.FullName);
                    XmlNodeList            node  = doc.SelectNodes("DATA/ENTRY_HEAD");
                    IList <EHS_ENTRY_HEAD> infos = new List <EHS_ENTRY_HEAD>();

                    foreach (XmlNode item in node)
                    {
                        EHS_ENTRY_HEAD info = XmlHelper.Deserialize <EHS_ENTRY_HEAD>(item.OuterXml);
                        infos.Add(info);
                    }
                    E(newFile.Name, "读取文件");
                    S();
                    int rs = 0;
                    foreach (var info in infos)
                    {
                        rs += SaveInfo(info);
                    }
                    E(newFile.Name, "存储");
                    S();
                    if (rs > 0)
                    {
                        MoveFileToPath(newFile, true);
                    }
                    else
                    {
                        MoveFileToPath(newFile, false);
                    }
                    E(newFile.Name, "移动到Save文件夹");


                    dueTime = DateTime.Now.Subtract(dtS).TotalSeconds.ToString("0.00");
                    dueTxt  = (newFile == null ? "未知文件" : newFile.Name) + "处理完成,用时:" + dueTime + "秒";
                    FileHelper.WriteLog(dueTxt);
                    Console.WriteLine(dueTxt);
                }
                catch (Exception ex)
                {
                    MoveFileToPath(newFile, false);
                    Console.WriteLine((newFile == null ? "未知文件" : newFile.Name) + "处理失败,原因:" + ex.Message);
                    Loger.LogMessage(ex.ToString());
                }
            }
        }
コード例 #4
0
ファイル: DataAction2.cs プロジェクト: terius/-20191025
        private int UpdateHeadInfo(EHS_ENTRY_HEAD info)
        {
            Hashtable ht = CreateHtParam(info);

            return(UpdateTable(ht));
        }
コード例 #5
0
ファイル: DataAction2.cs プロジェクト: terius/-20191025
        private int InsertHeadInfo(EHS_ENTRY_HEAD info)
        {
            Hashtable ht = CreateHtParam(info);

            return(InsertTable(ht));
        }