Exemplo n.º 1
0
        /// <summary>
        /// 根据国家名称获取国家对象
        /// </summary>
        /// <param name="name"></param>
        /// <returns></returns>
        public static t_countryEntity GetCountryModel(string name)
        {
            using (var con = ConnectionFactory.CreateConnection())
            {
                if (con.State == System.Data.ConnectionState.Closed)
                {
                    con.Open();
                }
                yw_hddz_ocrvalmapEntity map = GetMap("t_country", name);
                if (map != null)
                {
                    name = map.value;
                }
                name = name.ToLower().Replace(" ", "").Replace(".", "").Replace("&", "");


                string sql = "SELECT a.ctr_code,ctr_cname,ctr_ename,b.ctr_area2,b.dqdm,a.ctr_hgcode from t_country a LEFT JOIN t_area2 b on a.ctr_area2=b.ctr_area2 where  replace(replace(replace(LOWER(a.ctr_ename),' ',''),'.',''),'&','')=@ctr_ename";

                t_countryEntity model = con.Query <t_countryEntity>(sql, new { ctr_ename = name }).FirstOrDefault();

                //if (model == null)//如果库中没有则添加model
                //{
                //    model = new t_countryEntity();
                //    model.ctr_ename = name;
                //    //model.
                //    AddCountry(model);
                //}
                return(model);
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// 根据名称匹配往来单位
        /// </summary>
        /// <param name="khmc_yw"></param>
        /// <returns></returns>
        public static yw_wldwEntity GetWldwModel(string khmc_yw)
        {
            using (var con = ConnectionFactory.CreateConnection())
            {
                if (con.State == System.Data.ConnectionState.Closed)
                {
                    con.Open();
                }

                yw_hddz_ocrvalmapEntity map = GetMap("yw_wldw", khmc_yw);
                if (map != null)
                {
                    khmc_yw = map.value;
                }

                khmc_yw = khmc_yw.ToLower().Replace(" ", "").Replace(".", "").Replace("&", "");
                string sql = "select * from yw_wldw where replace(replace(replace(LOWER(khmc_yw),' ',''),'.',''),'&','')=@khmc_yw or replace(replace(replace(LOWER(khmc),' ',''),'.',''),'&','')=@khmc_yw";

                yw_wldwEntity model = con.Query <yw_wldwEntity>(sql, new { khmc_yw = khmc_yw }).FirstOrDefault();

                //if (model == null)//如果库中没有则添加model
                //{
                //    model = new yw_wldwEntity();
                //    model.khmc_yw = khmc_yw;
                //    model.sqr = "4001";
                //    model.yw_khbm = GetNewWldwKhbm(model.sqr);
                //    model.khmc = khmc_yw;
                //    AddWldw(model);
                //}
                return(model);
            }
        }
Exemplo n.º 3
0
        /// <summary>
        /// ocr同步到水果通
        /// </summary>
        /// <param name="modelXml"></param>
        /// <returns></returns>
        public void OCRToFruit(HttpContext context)
        {
            SysLogEntity log = new SysLogEntity();

            try
            {
                bool isadd = false;
                //接受
                string id = context.Request.Params["id"];
                Interfaces.OCRWebServ.OcrInvokeServiceImpl serv = new OcrInvokeServiceImpl();
                //判断id是否已经同步
                //serv.Timeout = 20000;//20秒的超时时间
                string xmlData = serv.queryInfo("<?xml version=\"1.0\" encoding=\"utf-8\"?><ROOT><ocrmainid>" + id + "</ocrmainid><token>ocr</token></ROOT>");

                #region xml
                //                string xmlData = @"<freshport>
                //  <flag>true</flag>
                //  <msg/>
                //  <data>
                //    <yw_hddz>
                //      <ocrid>432ce7f1-3012-4e8b-ab81-d6f588afe2bb</ocrid>
                //      <gwgysbm>NEW ZEALAND APPLE LTD</gwgysbm>
                //      <zjsmc>NEW ZEALAND APPLE LTD</zjsmc>
                //      <khbm>Fuhuida Fareast (Xiamen) Corporation.</khbm>
                //      <jydwbm>Fuhuida Fareast (Xiamen) Corporation.</jydwbm>
                //      <hz_spmc>鲜苹果</hz_spmc>
                //      <ysfs>海运</ysfs>
                //      <cyr>中国远洋</cyr>
                //      <cyrbm>中国远洋</cyrbm>
                //      <invoiceno>fp-20160506-1</invoiceno>
                //      <ztdh>td-20160506-1</ztdh>
                //      <ycddm>New zealand1</ycddm>
                //      <ejycd>New zealand</ejycd>
                //      <sfyyf>FREIGHT PREPAID</sfyyf>
                //      <cm>MOL DESTINY</cm>
                //      <hcorhbh>009</hcorhbh>
                //      <zcrq>2015.05.13</zcrq>
                //      <qyg>NAPIER</qyg>
                //      <mdg>SHANGHAI</mdg>
                //      <fh>F3304!7</fh>
                //      <zjz>20916.00</zjz>
                //      <zmz>23240.00</zmz>
                //      <hz_jzxh>TGHU9995270</hz_jzxh>
                //      <hz_xx>40RQ</hz_xx>
                //      <hz_zhlx>40RQ</hz_zhlx>
                //      <jgfs>C&amp;amp;F</jgfs>
                //      <wbbb>USD</wbbb>
                //      <zje>45259.90</zje>
                //      <invoice_date>2015.05.15</invoice_date>
                //      <mygb>New zealand</mygb>
                //      <tzrmc>SHANGHAI YUHUA FRUIT CO. , LTD</tzrmc>
                //      <jldw>CARTONS</jldw>
                //      <details>
                //        <yw_hddz_spxx>
                //          <spmc_yw>Apples</spmc_yw>
                //          <jldw>CARTONS</jldw>
                //          <jlsl>224</jlsl>
                //          <fpje>8724.80</fpje>
                //          <hgbm></hgbm>
                //          <djjg>38.95</djjg>
                //          <spgg_yw>90</spgg_yw>
                //          <sppz_yw>Rose</sppz_yw>
                //          <spdj_yw>HG</spdj_yw>
                //          <sppp_yw></sppp_yw>
                //          <spms></spms>
                //          <zjz>3920.00</zjz>
                //          <zmz>4256.00</zmz>
                //        </yw_hddz_spxx>
                //        <yw_hddz_spxx>
                //          <spmc_yw>Apples</spmc_yw>
                //          <jldw>CARTONS</jldw>
                //          <jlsl>98</jlsl>
                //          <fpje>3817.10</fpje>
                //          <hgbm></hgbm>
                //          <djjg>38.95</djjg>
                //          <spgg_yw>60</spgg_yw>
                //          <sppz_yw>Rose</sppz_yw>
                //          <spdj_yw>HG</spdj_yw>
                //          <sppp_yw></sppp_yw>
                //          <spms></spms>
                //          <zjz></zjz>
                //          <zmz></zmz>
                //        </yw_hddz_spxx>
                //        <yw_hddz_spxx>
                //          <spmc_yw>Apples</spmc_yw>
                //          <jldw>CARTONS</jldw>
                //          <jlsl>392</jlsl>
                //          <fpje>15268.40</fpje>
                //          <hgbm></hgbm>
                //          <djjg>38.95</djjg>
                //          <spgg_yw>80</spgg_yw>
                //          <sppz_yw>Rose</sppz_yw>
                //          <spdj_yw>HG</spdj_yw>
                //          <sppp_yw></sppp_yw>
                //          <spms></spms>
                //          <zjz></zjz>
                //          <zmz></zmz>
                //        </yw_hddz_spxx>
                //        <yw_hddz_spxx>
                //          <spmc_yw>Apples</spmc_yw>
                //          <jldw>CARTONS</jldw>
                //          <jlsl>448</jlsl>
                //          <fpje>17449.60</fpje>
                //          <hgbm></hgbm>
                //          <djjg>38.95</djjg>
                //          <spgg_yw>70</spgg_yw>
                //          <sppz_yw>Rose</sppz_yw>
                //          <spdj_yw>HG</spdj_yw>
                //          <sppp_yw></sppp_yw>
                //          <spms></spms>
                //          <zjz></zjz>
                //          <zmz></zmz>
                //        </yw_hddz_spxx>
                //      </details>
                //    </yw_hddz>
                //  </data>
                //</freshport>";
                #endregion

                List <yw_hddz_spxxEntity>      list     = new List <yw_hddz_spxxEntity>();
                Interfaces.Service.HddzService dbServ   = new Interfaces.Service.HddzService();
                Interfaces.Service.BaseService baseServ = new Interfaces.Service.BaseService();
                yw_hddzEntity editmodel = dbServ.GetHddzModel(id);//主表对象
                yw_hddzEntity model     = new yw_hddzEntity();
                if (editmodel == null)
                {
                    editmodel = new yw_hddzEntity();
                    isadd     = true;
                }
                else
                {
                    isadd = false;
                }

                //解析xml文件
                #region xml测试文件
                //string xmlData = @"<freshport>
                //  <flag>true</flag>
                //  <msg/>
                //  <data><yw_hddz>  <ocrid>432ce7f1-3012-4e8b-ab81-d6f588afe2bb</ocrid>  <gwgysbm>yangliutao</gwgysbm>  <zjsmc>NEW ZEALAND APPLE LTD</zjsmc>  <khbm>yangtao</khbm>  <jydwbm>same</jydwbm>  <ysfs>海运</ysfs>  <cyr>003</cyr>  <invoiceno>fp-20160506-1</invoiceno>  <ztdh>td-20160506-1</ztdh>  <ycddm>4</ycddm>  <ejycd>New zealand</ejycd>  <sfyyf>FREIGHT PREPAID</sfyyf>  <cm>MOL DESTINY</cm>  <hcorhbh>009</hcorhbh>  <czrq/>  <qyg>NAPIER</qyg>  <mdg/>  <fh>F3304!7</fh>  <zjz>20916.00</zjz>  <zmz>23240.00</zmz>  <hz_jzxh>TGHU9995270</hz_jzxh>  <hz_xx>40RQ</hz_xx>  <hz_zhlx>40RQ</hz_zhlx>  <jgfs>C&amp;amp;F</jgfs>  <wbbb>USD</wbbb>  <zje>45259.90</zje>  <invoice_date>13-05-2015</invoice_date>  <details>    <yw_hddz_spxx>      <spmc_yw>Apples</spmc_yw>      <jlsl>224</jlsl>      <fpje>8724.80</fpje>      <or_hscode/>    </yw_hddz_spxx>    <yw_hddz_spxx>      <spmc_yw>Apples</spmc_yw>      <jlsl>98</jlsl>      <fpje>3817.10</fpje>      <or_hscode/>    </yw_hddz_spxx>    <yw_hddz_spxx>      <spmc_yw>Apples</spmc_yw>      <jlsl>392</jlsl>      <fpje>15268.40</fpje>      <or_hscode/>    </yw_hddz_spxx>    <yw_hddz_spxx>      <spmc_yw>Apples</spmc_yw>      <jlsl>448</jlsl>      <fpje>17449.60</fpje>      <or_hscode/>    </yw_hddz_spxx>  </details></yw_hddz></data>
                //</freshport>";
                #endregion

                Interfaces.MasterDataResponse mdr = new Interfaces.MasterDataResponse(xmlData);
                log.otherID = id;
                #region 返回数据异常处理
                if (!mdr.flag)//执行失败
                {
                    log.msg    = mdr.GetMsgStr <yw_hddzEntity>();
                    res.msg    = log.msg;
                    res.result = false;
                    //strrep = "{\"result\":false,\"message\":\"" + log.msg + "\"}";
                }
                else
                {
                    //把xml转化成对象
                    OcrXmlToHddz(mdr.data, out model, out list);


                    #region 基础表名称对应代码
                    List <yw_hddz_ocrvalmapEntity> errordatelist = new List <yw_hddz_ocrvalmapEntity>();

                    #region 国外供应商
                    if (!string.IsNullOrEmpty(model.gwgysbm))
                    {
                        yw_wldwEntity gwgys = Interfaces.Service.BaseService.GetWldwModel(model.gwgysbm);
                        if (gwgys != null)
                        {
                            model.gwgysbm = gwgys.yw_khbm;
                            model.gwgysjc = gwgys.khjc;
                            model.gwgysmc = gwgys.khmc_yw;
                        }
                        else
                        {
                            yw_hddz_ocrvalmapEntity errData = new yw_hddz_ocrvalmapEntity();
                            errData.field     = "gwgys";
                            errData.fieldname = "国外供应商";
                            errData.ocrvalue  = model.gwgysbm;
                            errData.tablename = "yw_wldw";
                            errordatelist.Add(errData);
                        }
                    }
                    #endregion

                    #region 客户
                    if (!string.IsNullOrEmpty(model.khbm))
                    {
                        yw_wldwEntity kh = Interfaces.Service.BaseService.GetWldwModel(model.khbm);
                        if (kh != null)
                        {
                            model.khbm  = kh.yw_khbm;
                            model.khjc  = kh.khjc;
                            model.khmc  = kh.khmc;
                            model.khpym = kh.pym;
                        }
                        else
                        {
                            yw_hddz_ocrvalmapEntity errData = new yw_hddz_ocrvalmapEntity();
                            errData.field     = "kh";
                            errData.fieldname = "委托客户";
                            errData.ocrvalue  = model.khbm;
                            errData.tablename = "yw_wldw";
                            errordatelist.Add(errData);
                        }
                    }
                    #endregion

                    #region 经营单位
                    if (!string.IsNullOrEmpty(model.jydwbm))
                    {
                        yw_wldwEntity jydw = Interfaces.Service.BaseService.GetWldwModel(model.jydwbm);
                        if (jydw != null)
                        {
                            model.jydwbm  = jydw.yw_khbm;
                            model.jydwjc  = jydw.khjc;
                            model.jydwmc  = jydw.khmc;
                            model.jydwpym = jydw.pym;
                        }
                        else
                        {
                            yw_hddz_ocrvalmapEntity errData = new yw_hddz_ocrvalmapEntity();
                            errData.field     = "jydw";
                            errData.fieldname = "经营单位";
                            errData.ocrvalue  = model.jydwbm;
                            errData.tablename = "yw_wldw";
                            errordatelist.Add(errData);
                        }
                    }
                    #endregion

                    #region 承运人
                    if (!string.IsNullOrEmpty(model.cyr))
                    {
                        yw_wldwEntity cyr = Interfaces.Service.BaseService.GetWldwModel(model.cyr);
                        if (cyr != null)
                        {
                            model.cyrbm  = cyr.yw_khbm;
                            model.cyrjc  = cyr.khjc;
                            model.cyr    = cyr.khmc;
                            model.cyrpym = cyr.pym;
                        }
                        else
                        {
                            yw_hddz_ocrvalmapEntity errData = new yw_hddz_ocrvalmapEntity();
                            errData.field     = "cyr";
                            errData.fieldname = "承运人";
                            errData.ocrvalue  = model.cyrbm;
                            errData.tablename = "yw_wldw";
                            errordatelist.Add(errData);
                        }
                    }
                    #endregion

                    #region 中间商
                    if (!string.IsNullOrEmpty(model.zjsmc))
                    {
                        yw_wldwEntity zjs = Interfaces.Service.BaseService.GetWldwModel(model.zjsmc);
                        if (zjs != null)
                        {
                            model.zjsbm  = zjs.yw_khbm;
                            model.zjsjc  = zjs.khjc;
                            model.zjsmc  = zjs.khmc_yw;
                            model.zjspym = zjs.pym;
                        }
                        else
                        {
                            yw_hddz_ocrvalmapEntity errData = new yw_hddz_ocrvalmapEntity();
                            errData.field     = "zjs";
                            errData.fieldname = "中间商";
                            errData.ocrvalue  = model.zjsmc;
                            errData.tablename = "yw_wldw";
                            errordatelist.Add(errData);
                        }
                    }
                    #endregion

                    #region 通知人
                    if (!string.IsNullOrEmpty(model.tzrmc))
                    {
                        yw_wldwEntity tzr = Interfaces.Service.BaseService.GetWldwModel(model.tzrmc);
                        if (tzr != null)
                        {
                            model.tzrbm  = tzr.yw_khbm;
                            model.tzrjc  = tzr.khjc;
                            model.tzrmc  = tzr.khmc;
                            model.tzrpym = tzr.pym;
                        }
                        else
                        {
                            yw_hddz_ocrvalmapEntity errData = new yw_hddz_ocrvalmapEntity();
                            errData.field     = "tzr";
                            errData.fieldname = "通知人";
                            errData.ocrvalue  = model.tzrmc;
                            errData.tablename = "yw_wldw";
                            errordatelist.Add(errData);
                        }
                    }
                    #endregion

                    #region 原产地
                    if (!string.IsNullOrEmpty(model.ycddm))
                    {
                        t_countryEntity ycd = Interfaces.Service.BaseService.GetCountryModel(model.ycddm);
                        if (ycd != null)
                        {
                            model.ycd   = ycd.ctr_ename;
                            model.ycddm = ycd.ctr_hgcode;
                            model.dqdm  = ycd.dqdm;
                        }
                        else
                        {
                            yw_hddz_ocrvalmapEntity errData = new yw_hddz_ocrvalmapEntity();
                            errData.field     = "ycd";
                            errData.fieldname = "原产地";
                            errData.ocrvalue  = model.ycddm;
                            errData.tablename = "t_country";
                            errordatelist.Add(errData);
                        }
                    }
                    #endregion

                    #endregion
                    //完善对象字段
                    #region 根据代码完善数据
                    model.sfyyf = model.sfyyf == "FREIGHT PREPAID" ? "N" : "Y";
                    model.jgfs  = model.jgfs.Replace("&amp;", "&");
                    #endregion


                    #region 数据保存
                    if (errordatelist.Count == 0)//没有错误才能保存
                    {
                        if (isadd)
                        {
                            model.zbr = QsWebSoft.AppService.GetUserID();
                            if (model.ysfs.Trim() == "海运")
                            {
                                model.ywbh = new Interfaces.Service.HddzService().GetNewYwbh(DateTime.Now.ToString("yy") + model.dqdm);
                            }
                            else
                            {
                                model.ywbh = new Interfaces.Service.HddzService().GetNewYwbh(DateTime.Now.ToString("yy") + "OC");
                            }

                            model.zbrq  = DateTime.Now;
                            model.state = "新制";
                            //分录商品表 赋值ywbh
                        }
                        else
                        {
                            model.ywbh           = editmodel.ywbh;
                            model.zbrq           = editmodel.zbrq;
                            model.zbr            = editmodel.zbr;
                            model.state          = editmodel.state;
                            model.SupplierSellID = editmodel.SupplierSellID;
                            model.shdwbm         = editmodel.shdwbm;
                        }
                        list.ForEach(p => p.ywbh = model.ywbh);
                        log.ywbh = model.ywbh;
                        //保存数据
                        if (isadd)
                        {
                            dbServ.SaveHddz(model, list);
                        }
                        else
                        {
                            dbServ.ModifyHddz(model, list);
                        }
                        res.result = true;
                        log.msg    = "编号为" + model.ywbh + "的数据保存成功";
                    }
                    else//把错误和数据抛到前端
                    {
                        res.id        = id;
                        res.data      = model;
                        res.data1     = list;
                        res.errordata = errordatelist;
                        res.errortype = 1;
                        res.msg       = log.msg = "有未匹配的值。";
                        res.result    = false;
                    }

                    #endregion
                }

                #endregion
            }
            catch (Exception ex)
            {
                log.msg       = ex.Message.Replace(Environment.NewLine, "");
                res.msg       = log.msg;
                res.result    = false;
                res.errortype = 2;
            }
            strrep = JsonConvert.SerializeObject(res);
            context.Response.Write(strrep);
        }