예제 #1
0
        ///// <summary>
        /////
        ///// </summary>
        ///// <param name="进出口标志"></param>
        ///// <param name="tdh"></param>
        ///// <returns></returns>
        //private string GetBoxUrlByTdh(ImportExportType 进出口标志, string tdh)
        //{
        //    return m_url + "?" + CreatePostData(进出口标志, null, null, null, null, null, null, null, tdh);
        //}


        ///// <summary>
        /////
        ///// </summary>
        ///// <param name="进出口标志"></param>
        ///// <param name="xh"></param>
        ///// <returns></returns>
        //private string GetBoxUrlByXh(ImportExportType 进出口标志, string xh)
        //{
        //    return m_url + "?" + CreatePostData(进出口标志, null, null, null, xh, null, null, null, null);
        //}

        /// <summary>
        ///
        /// </summary>
        /// <param name="报关单编号"></param>
        /// <returns></returns>
        public IList <流转状态数据> 查询流转状态数据(string 报关单编号)
        {
            IList <流转状态数据> ret = new List <流转状态数据>();

            try
            {
                string postData = m_报关单流转Data.Replace("#报关单编号#", 报关单编号);
                string htmlInfo = base.PostToString(m_报关单流转Url, postData);
                if (htmlInfo.Contains("/portalframework/um/Login.do"))
                {
                    Login();
                    htmlInfo = base.PostToString(m_报关单流转Url, postData);
                }
                MatchCollection mc = m_报关单流转regex.Matches(htmlInfo);
                if (mc.Count % 5 != 0)
                {
                    throw new WebFormatChangedException("nbeport html format is changed");
                }

                for (int i = 1; i < mc.Count / 5; ++i)
                {
                    ret.Add(new 流转状态数据(WebProxy.RemoveSpaces(mc[i * 5 + 2].Groups[1].Value),
                                       Convert.ToDateTime(WebProxy.RemoveSpaces(mc[i * 5 + 4].Groups[1].Value))));
                    //s = base.RemoveSpaces(s);
                }
            }
            catch (Exception)
            {
                //ServiceProvider.GetService<IExceptionProcess>().ProcessWithNotify(ex);
            }
            return(ret);
        }
예제 #2
0
        internal static string Parse查询进场码头(string htmlInfo)
        {
            HtmlAgilityPack.HtmlDocument _html = new HtmlAgilityPack.HtmlDocument();
            _html.LoadHtml(htmlInfo);

            HtmlAgilityPack.HtmlNode node_td = _html.DocumentNode.SelectSingleNode("/html[1]/body[1]/center[1]/div[2]/fieldset[1]/table[1]/tr[1]/td[1]/div[1]/table[1]/tr[2]/td[6]");

            if (node_td == null)
            {
                throw new WebFormatChangedException("PageSource format for 运抵报告对比进场码头 is changed");
            }

            return(WebProxy.RemoveSpaces(node_td.InnerText));
        }
예제 #3
0
        /// <summary>
        /// 返回提单号、 放行时间、报关单号
        /// </summary>
        /// <param name="webContent"></param>
        /// <returns></returns>
        internal static List <List <string> > 查询海关放行时间(string webContent)
        {
            //<tr align="center">
            //  <TD height="24" bgcolor="#E9F1FC" class="dblue12">NO.</TD>
            //  <TD height="24" valign="middle" bgcolor="#FFFFFF" class="dblue12">集装箱号</TD>
            //  <TD height="24" valign="middle" bgcolor="#E9F1FC" class="dblue12">英文船名</TD>
            //  <TD height="24" valign="middle" bgcolor="#FFFFFF" class="dblue12">航次</TD>
            //  <TD height="24" valign="middle" bgcolor="#E9F1FC" class="dblue12">航向</TD>
            //  <TD height="24" valign="middle" bgcolor="#FFFFFF" class="dblue12">船舶UN代码</TD>
            //  <TD height="24" valign="middle" bgcolor="#E9F1FC" class="dblue12">提单号</TD>
            //  <TD height="24" valign="middle" bgcolor="#FFFFFF" class="dblue12">放行时间</TD>
            //  <TD height="24" valign="middle" bgcolor="#E9F1FC" class="dblue12">海关放行号</TD>
            //  <TD height="24" valign="middle" bgcolor="#FFFFFF" class="dblue12">码头/堆场</TD>
            //</TR>
            //<TR align="center" bgColor="#FFFFFF"}>
            //    <td height="24" class="dblue12">1</td>
            //  <TD height="24" class="dblue12">IMTU9085962 </TD>
            //  <TD height="24" class="dblue12">EVERUNIQUE </TD>
            //  <TD height="24" class="dblue12">0167W</TD>
            //  <TD height="24" class="dblue12">E </TD>
            //  <TD height="24" class="dblue12">UN9116606</TD>
            //  <TD height="24" class="dblue12">EGLV143083852506</TD>
            //  <TD height="24" class="dblue12">2010-11-09 13:54:41</TD>
            //  <TD height="24" class="dblue12">310120100518987733 </TD>
            //  <TD height="24" class="dblue12">港吉(四期)</TD>
            //</TR>
            //<TR align="center" bgColor="#E2EBF1">
            //    <td height="24" class="dblue12">2</td>
            //  <TD height="24" class="dblue12">IMTU9085962 </TD>
            //  <TD height="24" class="dblue12">CSCLASIA </TD>
            //  <TD height="24" class="dblue12">0086E</TD>
            //  <TD height="24" class="dblue12">I </TD>
            //  <TD height="24" class="dblue12">UN9285976</TD>
            //  <TD height="24" class="dblue12"></TD>
            //  <TD height="24" class="dblue12">2010-11-02 15:02:30</TD>
            //  <TD height="24" class="dblue12">31042010I170002364 </TD>
            //  <TD height="24" class="dblue12">北二集司(三期)
            //  </TD>
            //</TR>

            List <List <string> > returnList = new List <List <string> >();

            HtmlAgilityPack.HtmlDocument _html = new HtmlAgilityPack.HtmlDocument();
            _html.LoadHtml(webContent);

            HtmlAgilityPack.HtmlNode node_table = _html.DocumentNode.SelectSingleNode("/html[1]/body[1]/table[1]/tr[4]/td[1]/table[1]");

            int trCount = m_tr.Matches(node_table.InnerHtml).Count + m_tr1.Matches(node_table.InnerHtml).Count;

            // 数据行数,需再加上列头行和翻页行
            for (int i = 2; i < trCount + 2; i++)
            {
                // 提单号
                HtmlAgilityPack.HtmlNode node_td_tdh = _html.DocumentNode.SelectSingleNode(
                    string.Format("/html[1]/body[1]/table[1]/tr[4]/td[1]/table[1]/tr[{0}]/td[7]", i));

                // 放行时间
                HtmlAgilityPack.HtmlNode node_td_fxsj = _html.DocumentNode.SelectSingleNode(
                    string.Format("/html[1]/body[1]/table[1]/tr[4]/td[1]/table[1]/tr[{0}]/td[8]", i));

                // 报关单号
                HtmlAgilityPack.HtmlNode node_td_bgdh = _html.DocumentNode.SelectSingleNode(
                    string.Format("/html[1]/body[1]/table[1]/tr[4]/td[1]/table[1]/tr[{0}]/td[9]", i));

                List <string> dataList = new List <string>();
                dataList.Add(WebProxy.RemoveSpaces(node_td_tdh.InnerHtml));
                dataList.Add(WebProxy.RemoveSpaces(node_td_fxsj.InnerHtml));
                dataList.Add(WebProxy.RemoveSpaces(node_td_bgdh.InnerHtml));
                returnList.Add(dataList);
            }

            return(returnList);
        }
예제 #4
0
        internal static 报关单数据 Parse查询报关单数据(string htmlInfo, string 报关单编号)
        {
            int idx1 = htmlInfo.IndexOf(@"<div id=""mainlay""");
            int idx2 = htmlInfo.IndexOf(@"<table");
            int idx3 = 0;

            if (idx1 == -1 || idx1 == -1)
            {
                throw new WebFormatChangedException("Invalid Html");
            }
            string innerHtml = htmlInfo.Substring(idx1, idx2 - idx1);

            MatchCollection mc = m_regexDetail.Matches(innerHtml);

            List <string> ss = new List <string>();

            foreach (Match m in mc)
            {
                ss.Add(WebProxy.RemoveSpaces(m.Groups[1].Value));
            }

            int idx = ss.IndexOf(报关单编号);

            if (idx == -1)
            {
                throw new WebFormatChangedException("nbedi format changed!");
            }

            string xh = "";
            string s  = ss[idx + 30];

            if (!string.IsNullOrEmpty(s))
            {
                idx1 = s.IndexOf('*');
                idx2 = s.IndexOf('(');
                idx3 = s.IndexOf(')');
                xh   = s.Substring(0, idx1 - 1).Trim();
            }

            Match m1 = m_regexXh.Match(htmlInfo);

            if (m1 == null)
            {
                throw new WebFormatChangedException("nbedi format is changed");
            }
            Match  m2   = m_regexTgdh.Match(htmlInfo);
            string tgdh = null;

            if (m2 != null && m2.Groups.Count > 0)
            {
                tgdh = WebProxy.RemoveSpaces(m2.Groups[1].Value);
            }

            string xh1 = WebProxy.RemoveSpaces(m1.Groups[1].Value);

            if (!string.IsNullOrEmpty(xh1))
            {
                xh += "," + xh1;
            }

            int xl  = 0;
            int bxl = 0;

            if (s.Contains("("))
            {
                xl  = string.IsNullOrEmpty(s) ? 0 : Convert.ToInt32(s.Substring(idx1 + 1, idx2 - idx1 - 1).Trim());
                bxl = string.IsNullOrEmpty(s) ? 0 : Convert.ToInt32(s.Substring(idx2 + 1, idx3 - idx2 - 1).Trim());
            }
            else
            {
                xl = string.IsNullOrEmpty(s) ? 0 : Convert.ToInt32(s.Substring(idx1 + 1).Trim());
            }

            //报关员
            string bgy = null;
            Match  m3  = m_regexBgy.Match(htmlInfo);

            if (m3 != null && m3.Groups.Count > 0)
            {
                bgy = WebProxy.RemoveSpaces(m3.Groups[1].Value);
            }

            //报关公司
            HtmlAgilityPack.HtmlDocument _html = new HtmlAgilityPack.HtmlDocument();
            _html.LoadHtml(htmlInfo);
            HtmlAgilityPack.HtmlNode node_bgdh = _html.DocumentNode.SelectSingleNode("/html[1]/body[1]/div[1]/div[39]/div[1]");
            string bggs = WebProxy.RemoveSpaces(node_bgdh.InnerText);

            return(new 报关单数据(ss[0], ss[idx], ss[idx + 11], xh,
                             string.IsNullOrEmpty(ss[idx + 5]) ? null : new DateTime?(Convert.ToDateTime(ss[idx + 5])),
                             ss[idx + 6], ss[idx + 12], ss[idx + 20], xl, bxl,
                             htmlInfo, 1, tgdh, bgy, bggs));
        }
예제 #5
0
        internal static IList <集装箱数据> Parse查询集装箱数据(string htmlInfo)
        {
            List <集装箱数据> xhs = new List <集装箱数据>();

            HtmlAgilityPack.HtmlDocument _html = new HtmlAgilityPack.HtmlDocument();
            _html.LoadHtml(htmlInfo);

            HtmlAgilityPack.HtmlNode node_table = _html.DocumentNode.SelectSingleNode("/html[1]/body[1]/center[1]/div[3]/fieldset[1]/table[1]/tr[1]/td[1]/div[1]/table[1]");
            int trCount = new Regex("<tr>").Matches(node_table.InnerHtml).Count;

            HtmlAgilityPack.HtmlNode node_tr = _html.DocumentNode.SelectSingleNode("/html[1]/body[1]/center[1]/div[3]/fieldset[1]/table[1]/tr[1]/td[1]/div[1]/table[1]/tr[1]");
            int thCount = new Regex("<th").Matches(node_tr.InnerHtml).Count;

            /* <td width="120">MANHATTAN</td>
             * <td width="60">1042S</td>
             * <td width="100">CLHU8379490</td>
             * <td width="30">45</td>
             * <td width="40">整箱</td>
             * <td>NLBDS046542</td>
             * <td>11/12/2010 10:37:00 PM</td>
             * <td>5H1863</td>
             * <td>BLCT</td>
             * <td>11/12/2010 10:44:03 PM</td>
             * <td class="table_content text_center" align="center" width="70">
             *        <a id="GridView1_ctl02_lbt_YP" href="javascript:__doPostBack('GridView1$ctl02$lbt_YP','')">预配舱单</a>
             * </td>
             */
            for (int i = 2; i <= trCount; i++)    // 去掉列头行
            {
                HtmlAgilityPack.HtmlNode node_td船名   = _html.DocumentNode.SelectSingleNode(string.Format("/html[1]/body[1]/center[1]/div[3]/fieldset[1]/table[1]/tr[1]/td[1]/div[1]/table[1]/tr[{0}]/td[1]", i));
                HtmlAgilityPack.HtmlNode node_td航次   = _html.DocumentNode.SelectSingleNode(string.Format("/html[1]/body[1]/center[1]/div[3]/fieldset[1]/table[1]/tr[1]/td[1]/div[1]/table[1]/tr[{0}]/td[2]", i));
                HtmlAgilityPack.HtmlNode node_td箱号   = _html.DocumentNode.SelectSingleNode(string.Format("/html[1]/body[1]/center[1]/div[3]/fieldset[1]/table[1]/tr[1]/td[1]/div[1]/table[1]/tr[{0}]/td[3]", i));
                HtmlAgilityPack.HtmlNode node_td箱型   = _html.DocumentNode.SelectSingleNode(string.Format("/html[1]/body[1]/center[1]/div[3]/fieldset[1]/table[1]/tr[1]/td[1]/div[1]/table[1]/tr[{0}]/td[4]", i));
                HtmlAgilityPack.HtmlNode node_td提单号  = null;
                HtmlAgilityPack.HtmlNode node_td运抵时间 = null;
                // 未知原因,整箱那列时有时无
                if (thCount == 11)
                {
                    node_td提单号  = _html.DocumentNode.SelectSingleNode(string.Format("/html[1]/body[1]/center[1]/div[3]/fieldset[1]/table[1]/tr[1]/td[1]/div[1]/table[1]/tr[{0}]/td[6]", i));
                    node_td运抵时间 = _html.DocumentNode.SelectSingleNode(string.Format("/html[1]/body[1]/center[1]/div[3]/fieldset[1]/table[1]/tr[1]/td[1]/div[1]/table[1]/tr[{0}]/td[7]", i));
                }
                else
                {
                    node_td提单号  = _html.DocumentNode.SelectSingleNode(string.Format("/html[1]/body[1]/center[1]/div[3]/fieldset[1]/table[1]/tr[1]/td[1]/div[1]/table[1]/tr[{0}]/td[5]", i));
                    node_td运抵时间 = _html.DocumentNode.SelectSingleNode(string.Format("/html[1]/body[1]/center[1]/div[3]/fieldset[1]/table[1]/tr[1]/td[1]/div[1]/table[1]/tr[{0}]/td[6]", i));
                }

                xhs.Add(new 集装箱数据(null,
                                  WebProxy.RemoveSpaces(node_td船名.InnerText),
                                  WebProxy.RemoveSpaces(node_td航次.InnerText),
                                  WebProxy.RemoveSpaces(node_td箱号.InnerText),
                                  null,
                                  DateTime.Parse(node_td运抵时间.InnerText),
                                  null,
                                  null,
                                  WebProxy.RemoveSpaces(node_td提单号.InnerText),
                                  null,
                                  WebProxy.RemoveSpaces(node_td箱型.InnerText)));
            }
            return(xhs);
        }