/// <summary> /// 更新数据 /// </summary> /// <param name="entity">数据实体</param> /// <returns></returns> /// <remarks>2016-03-22 王耀发 创建</remarks> public override void Update(CIcp entity) { Context.Update("Icp", entity) .AutoMap(o => o.SysNo) .Where("SysNo", entity.SysNo) .Execute(); }
Hyt.Model.Icp.GZNanSha.CommodityInspection SetMod(CIcp model) { Model.Icp.GZNanSha.CommodityInspection mod = new Model.Icp.GZNanSha.CommodityInspection(); mod.CargoBcode = "ICPI" + DateTime.Now.ToString("yyyyMMddHHmmss"); mod.Status = 0; return(mod); }
/// <summary> /// 插入数据 /// </summary> /// <param name="entity">数据实体</param> /// <returns>新增记录编号</returns> /// <remarks>2016-03-22 王耀发 创建</remarks> public override int Insert(CIcp entity) { entity.SysNo = Context.Insert("Icp", entity) .AutoMap(o => o.SysNo) .ExecuteReturnLastId <int>("SysNo"); return(entity.SysNo); }
/// <summary> /// 获取指定类型的最大三位流水号 /// </summary> /// <param name="name">报文类型</param> /// <returns>最大流水号</returns> /// <remarks>2016-03-22 王耀发 创建</remarks> public string GetMaxSerialNumberByMType(string IcpType, string MessageType) { CIcp entity = IcpDao.Instance.GetEntityByMType(IcpType, MessageType); string SerialNumber = ""; if (entity != null) { SerialNumber = entity.SerialNumber; int intSerialNumber = int.Parse(SerialNumber) + 1; if (intSerialNumber < 10) { SerialNumber = "00" + intSerialNumber.ToString(); return(SerialNumber); } if (intSerialNumber < 100) { SerialNumber = "0" + intSerialNumber.ToString(); return(SerialNumber); } if (intSerialNumber == 100) { SerialNumber = "001"; return(SerialNumber); } } else { SerialNumber = "001"; } return(SerialNumber); }
/// <summary> /// 获取数据 /// </summary> /// <param name="MessageType">报文类型</param> /// <returns></returns> public override CIcp GetEntityByMType(string IcpType, string MessageType) { string sql = @"(select top 1 * from Icp where IcpType =" + IcpType + " and MessageType = '" + MessageType + "' order by SerialNumber desc) as t"; CIcp entity = Context.Select <CIcp>("*") .From(sql) .QuerySingle(); return(entity); }
public ActionResult GetIcp(int sysNo) { CIcp mod = IcpBo.Instance.GetEntity(sysNo); if (mod.PlatDocRec != null) { mod.PlatDocRec = mod.PlatDocRec.Replace("<", "<").Replace(">", ">").Replace("\n", "<br/>").Replace(" ", " "); } if (mod.CiqDocRec != null) { mod.CiqDocRec = mod.CiqDocRec.Replace("<", "<").Replace(">", ">").Replace("\n", "<br/>").Replace(" ", " "); } return(Json(mod)); }
public ActionResult IcpGoodsCreate(int?id) { CIcp model = new CIcp(); if (id != null) { model = IcpBo.Instance.GetEntity(id.Value); ViewBag.IcpGoodsItemList = IcpBo.Instance.GetListByIcpGoodsSysNo(id.Value); ViewBag.OpType = "Update"; } else { ViewBag.OpType = "Add"; } ViewBag.IcpTypes = MvcHtmlString.Create(MvcCreateHtml.EnumToString <Hyt.Model.CommonEnum.商检>(null, null).ToString()); return(View(model)); }
/// <summary> /// /// </summary> /// <param name="IcpType"></param> /// <param name="ProductSysNoList"></param> /// <returns></returns> /// <remarks>2016-4-1 王耀发 创建</remarks> public override Result PushGoods(string ProductSysNoList) { Result result = new Result(); CIcp model = new CIcp(); model.IcpType = (int)Model.CommonEnum.商检.广州白云机场; List <CIcpGoodsItem> CIcpGoodsItemList = new List <CIcpGoodsItem>(); string[] sArray = ProductSysNoList.Split(','); foreach (string i in sArray) { int ProductSysNo = int.Parse(i); IcpBYJiChangGoodsInfo Entity = IcpBo.Instance.GetIcpBYJiChangGoodsInfoEntityByPid(ProductSysNo); CIcpGoodsItemList.Add(new CIcpGoodsItem() { IcpType = model.IcpType, ProductSysNo = ProductSysNo, EntGoodsNo = Entity.EntGoodsNo }); } Hyt.Model.Icp.GZBaiYunJiChang.Goods.Goods.InternationalTrade internationaltrade = new Hyt.Model.Icp.GZBaiYunJiChang.Goods.Goods.InternationalTrade(); internationaltrade.Head = new Hyt.Model.Icp.GZBaiYunJiChang.Goods.Goods.Head(); internationaltrade.Declaration = new Hyt.Model.Icp.GZBaiYunJiChang.Goods.Goods.Declaration(); internationaltrade.Declaration.GoodsRegHead = new Hyt.Model.Icp.GZBaiYunJiChang.Goods.Goods.GoodsRegHead(); internationaltrade.Declaration.GoodsRegList = new Hyt.Model.Icp.GZBaiYunJiChang.Goods.Goods.GoodsRegList(); internationaltrade.Declaration.GoodsRegList.GoodsContentList = new List <Hyt.Model.Icp.GZBaiYunJiChang.Goods.Goods.GoodsContent>(); //生成最大流水号 string MaxSerialNumber = GetMaxSerialNumberByMType(model.IcpType.ToString(), config.GZJCIcpInfoTrade.GoodsMessageType); string fileName = config.GZJCIcpInfoTrade.GoodsMessageType + "_" + config.GZJCIcpInfoTrade.Sender + "_" + DateTime.Now.ToString("yyyyMMddHHmmss") + MaxSerialNumber; internationaltrade.Head = SetIcpGoodsHead(fileName, config.GZJCIcpInfoTrade.GoodsMessageType); internationaltrade.Declaration.GoodsRegHead = SetIcpGoodsHeadData(); List <Hyt.Model.Icp.GZBaiYunJiChang.Goods.Goods.GoodsContent> GoodsContentList = SetIcpGoodsBodyData(CIcpGoodsItemList); if (GoodsContentList.Count != 0) { internationaltrade.Declaration.GoodsRegList.GoodsContentList = SetIcpGoodsBodyData(CIcpGoodsItemList); string str = Hyt.Util.Serialization.SerializationUtil.XmlSerialize <Hyt.Model.Icp.GZBaiYunJiChang.Goods.Goods.InternationalTrade>(internationaltrade); str = str.Replace("encoding=\"utf-16\"", "encoding=\"UTF-8\""); FtpUtil ftp = new FtpUtil(config.GZJCIcpInfoTrade.FtpUrl, config.GZJCIcpInfoTrade.FtpName, config.GZJCIcpInfoTrade.FtpPassword); string msg = ""; string MessageID = fileName; fileName = fileName + ".xml"; try { ftp.UploadFile(config.GZJCIcpInfoTrade.FtpUrl + "in", fileName, Encoding.UTF8.GetBytes(str), out msg); //新增商检表信息 int UserSysNo = AdminAuthenticationBo.Instance.Current.Base.SysNo; model.SourceSysNo = 0; model.MessageID = MessageID; model.MessageType = config.GZJCIcpInfoTrade.GoodsMessageType; model.SerialNumber = MaxSerialNumber; model.XmlContent = str; model.CreatedBy = UserSysNo; model.CreatedDate = DateTime.Now; model.Status = (int)IcpStatus.商品商检推送状态.已推送; model.LastUpdateBy = UserSysNo; model.LastUpdateDate = DateTime.Now; model.SysNo = IcpDao.Instance.Insert(model); if (model.SysNo > 0) // { if (CIcpGoodsItemList != null) { foreach (var item in CIcpGoodsItemList) { var m = new CIcpGoodsItem { SourceSysNo = 0, IcpType = model.IcpType, MessageID = MessageID, IcpGoodsSysNo = model.SysNo, ProductSysNo = item.ProductSysNo, EntGoodsNo = item.EntGoodsNo, CreatedBy = UserSysNo, CreatedDate = DateTime.Now, LastUpdateBy = UserSysNo, LastUpdateDate = DateTime.Now }; IcpDao.Instance.InsertIcpGoodsItem(m); } } } result.Status = true; result.Message = internationaltrade.Head.MessageID; } catch (Exception ex) { result.Status = false; result.Message = ex.Message; } } else { result.Status = false; result.Message = "商品备案信息无效"; } return(result); }
/// <summary> /// 订单备案 /// </summary> /// <returns></returns> /// <remarks>2016-3-21 王耀发 添加</remarks> public override Result PushOrder(int OrderSysNo) { Result result = new Result(); int IcpType = (int)Model.CommonEnum.商检.广州白云机场; Hyt.Model.Icp.GZBaiYunJiChang.Order.InternationalTrade internationaltrade = new Hyt.Model.Icp.GZBaiYunJiChang.Order.InternationalTrade(); internationaltrade.Head = new Hyt.Model.Icp.GZBaiYunJiChang.Order.Head(); internationaltrade.Declaration = new Hyt.Model.Icp.GZBaiYunJiChang.Order.Declaration(); internationaltrade.Declaration.OrderHead = new Hyt.Model.Icp.GZBaiYunJiChang.Order.OrderHead(); internationaltrade.Declaration.OrderList = new Hyt.Model.Icp.GZBaiYunJiChang.Order.OrderList(); internationaltrade.Declaration.OrderList.OrderContentList = new List <Hyt.Model.Icp.GZBaiYunJiChang.Order.OrderContent>(); //生成最大流水号 string MaxSerialNumber = GetMaxSerialNumberByMType(IcpType.ToString(), config.GZJCIcpInfoTrade.OrderMessageType); string fileName = config.GZJCIcpInfoTrade.OrderMessageType + "_" + config.GZJCIcpInfoTrade.Sender + "_" + DateTime.Now.ToString("yyyyMMddHHmmss") + MaxSerialNumber; internationaltrade.Head = SetIcpOrderHead(fileName, config.GZJCIcpInfoTrade.OrderMessageType); internationaltrade.Declaration.OrderHead = SetIcpOrderHeadData(); internationaltrade.Declaration.OrderList.OrderContentList.Add(SetOrderContent(OrderSysNo)); string str = Hyt.Util.Serialization.SerializationUtil.XmlSerialize <Hyt.Model.Icp.GZBaiYunJiChang.Order.InternationalTrade>(internationaltrade); str = str.Replace("encoding=\"utf-16\"", "encoding=\"UTF-8\""); FtpUtil ftp = new FtpUtil(config.GZJCIcpInfoTrade.FtpUrl, config.GZJCIcpInfoTrade.FtpName, config.GZJCIcpInfoTrade.FtpPassword); string msg = ""; string MessageID = fileName; fileName = fileName + ".xml"; try { ftp.UploadFile(config.GZJCIcpInfoTrade.FtpUrl + "in", fileName, Encoding.UTF8.GetBytes(str), out msg); //新增商检表信息 int UserSysNo = AdminAuthenticationBo.Instance.Current.Base.SysNo; CIcp model = new CIcp(); model.SourceSysNo = OrderSysNo; model.IcpType = IcpType; model.MessageID = MessageID; model.MessageType = config.GZJCIcpInfoTrade.OrderMessageType; model.SerialNumber = MaxSerialNumber; model.XmlContent = str; model.CreatedBy = UserSysNo; model.CreatedDate = DateTime.Now; model.Status = (int)IcpStatus.商品商检推送状态.已推送; model.LastUpdateBy = UserSysNo; model.LastUpdateDate = DateTime.Now; model.SysNo = IcpDao.Instance.Insert(model); var soItems = SoOrderBo.Instance.GetOrderItemsByOrderId(OrderSysNo); foreach (SoOrderItem item in soItems) { var m = new CIcpGoodsItem { SourceSysNo = OrderSysNo, IcpType = model.IcpType, MessageID = MessageID, IcpGoodsSysNo = model.SysNo, ProductSysNo = item.ProductSysNo, EntGoodsNo = "None", CreatedBy = UserSysNo, CreatedDate = DateTime.Now, LastUpdateBy = UserSysNo, LastUpdateDate = DateTime.Now }; IcpDao.Instance.InsertIcpGoodsItem(m); } //更新订单的商检推送状态 SoOrderBo.Instance.UpdateOrderGZJCStatus(OrderSysNo, (int)OrderStatus.销售单推送状态.已推送); result.Status = true; result.Message = internationaltrade.Head.MessageID; } catch (Exception ex) { result.Status = false; result.Message = ex.Message; } return(result); }
/// <summary> /// 添加商检信息记录 /// </summary> /// <param name="model">商检信息</param> /// <returns>返回新建记录的编号</returns> /// <remarks>2016-03-22 王耀发 创建</remarks> public int Create(CIcp model) { return(IcpDao.Instance.Insert(model)); }
/// <summary> /// 更新数据 /// </summary> /// <param name="entity">数据实体</param> /// <returns></returns> /// <remarks>2016-03-22 王耀发 创建</remarks> public abstract void Update(CIcp entity);
/// <summary> /// 插入数据 /// </summary> /// <param name="entity">数据实体</param> /// <returns>新增记录编号</returns> /// <remarks>2016-03-22 王耀发 创建</remarks> public abstract int Insert(CIcp entity);
/// <summary> /// 获取商品回执 /// </summary> /// <returns></returns> public Result GetRecByType(OrderStatus.商检反馈报文类型 type) { string strType = ""; if (type == Hyt.Model.WorkflowStatus.OrderStatus.商检反馈报文类型.商品检查) { strType = "商品检查"; } if (type == Hyt.Model.WorkflowStatus.OrderStatus.商检反馈报文类型.商品审核报文) { strType = "商品审核"; } Result result = new Result(); try { FtpUtil ftp = new FtpUtil(config.NSIcpInfo.FtpUrl, config.NSIcpInfo.FtpName, config.NSIcpInfo.FtpPassword); string[] fileList = GetCustomsOutResult(type); if (fileList != null) { if (type == Hyt.Model.WorkflowStatus.OrderStatus.商检反馈报文类型.商品检查) { foreach (string fileTxt in fileList) { string msg = ""; Stream stream = ftp.FileStream(config.NSIcpInfo.FtpUrl + "4200.IMPBA.SWBCARGOBACK.REPORT/" + fileTxt, ref msg); //设置当前流的位置为流的开始,防止读取位置错误造成无法读取完整流的内容 stream.Seek(0, SeekOrigin.Begin); using (StreamReader reader = new StreamReader(stream)) { string txt = reader.ReadToEnd(); //接收回执 if (fileTxt.Contains("DOCREC_")) { Model.Icp.GZNanSha.CustomsResult.Commodity.ROOT root = Hyt.Util.Serialization.SerializationUtil.XmlDeserialize <Model.Icp.GZNanSha.CustomsResult.Commodity.ROOT>(txt); //更新商检回执信息 if (root.declaration.OrgMessageType == "661105") { CIcp Icp = IcpBo.Instance.GetEntityByMessageIDType(root.declaration.OrgMessageType, root.declaration.OrgMessageID); if (Icp != null) { if (Icp.Status == (int)OrderStatus.商检状态.已推送) { IcpBo.Instance.UpdatePlatDocRecByMessageID(root.declaration.OrgMessageID, txt, root.declaration.Status); if (root.declaration.Status == "10") { IcpBo.Instance.UpdateStatus(root.declaration.OrgMessageID, (int)IcpStatus.商品商检推送状态.已接收); } if (root.declaration.Status == "20") { IcpBo.Instance.UpdateStatus(root.declaration.OrgMessageID, (int)IcpStatus.商品商检推送状态.申报失败); IcpBo.Instance.UpdateEntGoodsNoByMessageID(root.declaration.OrgMessageID, "None"); } } } } } } } } if (type == Hyt.Model.WorkflowStatus.OrderStatus.商检反馈报文类型.商品审核报文) { foreach (string fileTxt in fileList) { string msg = ""; Stream stream = ftp.FileStream(config.NSIcpInfo.FtpUrl + "4200.IMPBA.SWBCARGOBACK.AUDIT/out/" + fileTxt, ref msg); //设置当前流的位置为流的开始,防止读取位置错误造成无法读取完整流的内容 stream.Seek(0, SeekOrigin.Begin); using (StreamReader reader = new StreamReader(stream)) { string txt = reader.ReadToEnd(); Hyt.Model.Icp.GZNanSha.CustomsResult.CommodityAudit.ROOT root = Hyt.Util.Serialization.SerializationUtil.XmlDeserialize <Model.Icp.GZNanSha.CustomsResult.CommodityAudit.ROOT>(txt); List <Hyt.Model.Icp.GZNanSha.CustomsResult.CommodityAudit.Record> RecordList = root.declaration.GoodsRegRecList.RecordList; foreach (Hyt.Model.Icp.GZNanSha.CustomsResult.CommodityAudit.Record item in RecordList) { //审核通过,更新检验检疫商品备案编号 if (item.RegStatus == "10") { IcpBo.Instance.UpdateNSCIQGoodsNo(item.Gcode, item.CIQGoodsNO); } } } } } result.Status = true; result.Message = strType + "回执获取成功"; } else { result.Status = true; result.Message = strType + "暂未生成相应的回执"; } } catch (Exception ex) { result.Status = false; result.Message = ex.Message; } return(result); }
/// <summary> /// 获取订单回执 /// </summary> /// <returns></returns> public override Result GetOrderRec() { Result result = new Result(); try { FtpUtil ftp = new FtpUtil(config.NSIcpInfo.FtpUrl, config.NSIcpInfo.FtpName, config.NSIcpInfo.FtpPassword); string[] fileList = GetCustomsOutResult(OrderStatus.商检反馈报文类型.商品订单); if (fileList != null) { foreach (string fileTxt in fileList) { string msg = ""; Stream stream = ftp.FileStream(config.NSIcpInfo.FtpUrl + "4200.IMPBA.SWBEBTRADE.REPORT/" + fileTxt, ref msg); //设置当前流的位置为流的开始,防止读取位置错误造成无法读取完整流的内容 stream.Seek(0, SeekOrigin.Begin); using (StreamReader reader = new StreamReader(stream)) { string txt = reader.ReadToEnd(); //接收回执 if (fileTxt.Contains("DOCREC_")) { Model.Icp.GZNanSha.CustomsResult.Commodity.ROOT root = Hyt.Util.Serialization.SerializationUtil.XmlDeserialize <Model.Icp.GZNanSha.CustomsResult.Commodity.ROOT>(txt); //更新商检回执信息 if (root.declaration.OrgMessageType == "661101") { CIcp Icp = IcpBo.Instance.GetEntityByMessageIDType(root.declaration.OrgMessageType, root.declaration.OrgMessageID); if (Icp != null) { if (Icp.Status == (int)OrderStatus.商检状态.已推送) { IcpBo.Instance.UpdatePlatDocRecByMessageID(root.declaration.OrgMessageID, txt, root.declaration.Status); //Status: 10 入库成功,20 出错 if (root.declaration.Status == "10") { //更新订单的商检推送状态为已通过 IcpBo.Instance.UpdateStatus(root.declaration.OrgMessageID, (int)IcpStatus.商品商检推送状态.已接收); SoOrderBo.Instance.UpdateOrderNsStatus(Icp.SourceSysNo, (int)OrderStatus.商检状态.已通过); } if (root.declaration.Status == "20") { //更新订单的商检推送状态为未推送 IcpBo.Instance.UpdateStatus(root.declaration.OrgMessageID, (int)IcpStatus.商品商检推送状态.申报失败); SoOrderBo.Instance.UpdateOrderNsStatus(Icp.SourceSysNo, (int)OrderStatus.商检状态.未推送); } } } } } } } result.Status = true; result.Message = "商品订单回执获取成功"; } else { result.Status = true; result.Message = "暂未生成相应的回执"; } } catch (Exception ex) { result.Status = false; result.Message = ex.Message; } return(result); }
/// <summary> /// 推送订单 /// </summary> /// <returns></returns> /// <remarks>2016-3-21 王耀发 创建</remarks> public override Result PushOrder(int soOrderSysNo) { Result result = new Result(); int IcpType = (int)Model.CommonEnum.商检.广州南沙; Hyt.Model.Manual.SoOrderMods order = SoOrderBo.Instance.GetSoOrderMods(soOrderSysNo); order.ReceiveAddress = SoOrderBo.Instance.GetOrderReceiveAddress2(order.ReceiveAddressSysNo); order.ReceiverProvince = ((Hyt.Model.Manual.SoReceiveAddressMod)order.ReceiveAddress).ReceiverProvince.Trim(); order.ReceiverCity = ((Hyt.Model.Manual.SoReceiveAddressMod)order.ReceiveAddress).ReceiverCity.Trim(); order.ReceiverArea = ((Hyt.Model.Manual.SoReceiveAddressMod)order.ReceiveAddress).ReceiverArea.Trim(); order.OrderItemList = SoOrderBo.Instance.GetOrderItemsByOrderId(order.SysNo); order.OrderInvoice = SoOrderBo.Instance.GetFnInvoice(order.InvoiceSysNo); order.ReceiptVoucher = Hyt.BLL.Finance.FnReceiptVoucherBo.Instance.GetReceiptVoucherByOrder(soOrderSysNo); order.ReceiptVoucherItemList = Hyt.BLL.Finance.FnReceiptVoucherBo.Instance.GetReceiptVoucherItem(order.ReceiptVoucher.SysNo); IList <int> proIdList = new List <int>(); List <Hyt.Model.Manual.SoOrderItemByPro> soProList = new List <Model.Manual.SoOrderItemByPro>(); foreach (var item in order.OrderItemList) { proIdList.Add(item.ProductSysNo); } IList <IcpGZNanShaGoodsInfo> proList = Hyt.BLL.Product.PdProductBo.Instance.GetIcpGZNanShaGoodsInfoList(proIdList); if (order.OrderItemList.Count != proList.Count) { return(new Result() { Message = "订单明细有尚未备案的商品,推送失败", Status = false }); } foreach (var proItem in proList) { SoOrderItem item = order.OrderItemList.First(p => p.ProductSysNo == proItem.ProductSysNo); Hyt.Model.Manual.SoOrderItemByPro mod = new Model.Manual.SoOrderItemByPro(); mod.GCode = proItem.Gcode; mod.ProductSysNo = proItem.ProductSysNo; mod.Hscode = proItem.HSCode; mod.CiqGoodsNo = proItem.CIQGoodsNo; mod.ProductName = proItem.Gname; mod.Brand = proItem.Brand; mod.Spec = proItem.Spec; mod.Origin = proItem.AssemCountry; mod.QtyUnit = proItem.Unit; mod.Qty = item.Quantity.ToString(); mod.DecPrice = item.SalesUnitPrice; mod.DecTotal = item.SalesAmount; mod.SellWebSite = proItem.SellWebSite; soProList.Add(mod); } ////测试 //foreach (var proItem in order.OrderItemList) //{ // var product = Hyt.BLL.Product.PdProductBo.Instance.GetProduct(proItem.ProductSysNo); // //获取启邦商品备案信息 // var IcpQiBang = Hyt.BLL.ApiIcq.IcpBo.Instance.GetIcpQiBangGoodsInfoEntityByPid(proItem.ProductSysNo); // Hyt.Model.Manual.SoOrderItemByPro mod = new Model.Manual.SoOrderItemByPro(); // mod.GCode = IcpQiBang.item_code; // mod.ProductSysNo = proItem.ProductSysNo; // mod.Hscode = IcpQiBang.item_id; // mod.CiqGoodsNo = IcpQiBang.ciqgoodsno; // mod.ProductName = IcpQiBang.item_name; // mod.Brand = Hyt.BLL.Product.PdBrandBo.Instance.GetEntity(product.BrandSysNo).Name; // mod.Spec = IcpQiBang.item_spec; // mod.Origin = IcpQiBang.origincountry; // mod.QtyUnit = "克"; // mod.Qty = proItem.Quantity.ToString(); // mod.DecPrice = proItem.SalesUnitPrice; // mod.DecTotal = proItem.SalesAmount; // mod.SellWebSite = "http://www.gaopin999.com/"; // soProList.Add(mod); //} Hyt.Model.Icp.GZNanSha.Order.Root root = new Hyt.Model.Icp.GZNanSha.Order.Root(); root.head = new Model.Icp.GZNanSha.Head(); root.body = new Model.Icp.GZNanSha.Order.OrderBody(); root.body.record = new Model.Icp.GZNanSha.Order.OrderBodyRecord(); root.body.record.cusOrderMod = new Model.Icp.GZNanSha.Order.CustomOrderMod(); root.body.record.cusOrderMod.orderGoodsList = new Model.Icp.GZNanSha.Order.OrderGoodsList(); //生成最大流水号 string MaxSerialNumber = GetMaxSerialNumberByMType(IcpType.ToString(), config.NSIcpInfo.OrderMessageType); DateTime now = DateTime.Now; string strDate = now.ToString("yyyyMMddHHmmssfff"); string strDateMid = now.ToString("yyyyMMddHHmmss"); //string fileName = config.NSIcpInfo.OrderMessageType + "_" + strDate + MaxSerialNumber; string fileName = config.NSIcpInfo.OrderMessageType + "_" + strDate; string MessageID = "ICIP" + strDateMid; SetCustomOrderHead(MessageID, root.head); BindCusOrderData(order, root.body.record.cusOrderMod); BindCusOrderGoodsData(soProList, root.body.record.cusOrderMod.orderGoodsList); string str = Hyt.Util.Serialization.SerializationUtil.XmlSerialize <Model.Icp.GZNanSha.Order.Root>(root); str = str.Replace("encoding=\"utf-16\"", "encoding=\"utf-8\""); str = str.Replace("Root", "ROOT"); FtpUtil ftp = new FtpUtil(config.NSIcpInfo.FtpUrl, config.NSIcpInfo.FtpName, config.NSIcpInfo.FtpPassword); string msg = ""; fileName = fileName + ".xml"; try { ftp.UploadFile(config.NSIcpInfo.FtpUrl + "4200.IMPBA.SWBEBTRADE.REPORT/in", fileName, Encoding.UTF8.GetBytes(str), out msg); //新增商检表信息 int UserSysNo = AdminAuthenticationBo.Instance.Current.Base.SysNo; CIcp model = new CIcp(); model.SourceSysNo = soOrderSysNo; model.IcpType = Hyt.Model.CommonEnum.商检.广州南沙.GetHashCode(); model.MessageID = MessageID; model.MessageType = config.NSIcpInfo.OrderMessageType; model.SerialNumber = MaxSerialNumber; model.XmlContent = str; model.Status = (int)IcpStatus.商品商检推送状态.已推送; model.CreatedBy = UserSysNo; model.CreatedDate = DateTime.Now; model.LastUpdateBy = UserSysNo; model.LastUpdateDate = DateTime.Now; model.SysNo = IcpDao.Instance.Insert(model); //插入明细 foreach (var proItem in proList) { var m = new CIcpGoodsItem { SourceSysNo = soOrderSysNo, IcpType = model.IcpType, MessageID = MessageID, IcpGoodsSysNo = model.SysNo, ProductSysNo = proItem.ProductSysNo, EntGoodsNo = "None", CreatedBy = UserSysNo, CreatedDate = DateTime.Now, LastUpdateBy = UserSysNo, LastUpdateDate = DateTime.Now }; IcpDao.Instance.InsertIcpGoodsItem(m); } //foreach (var proItem in order.OrderItemList) //{ // var m = new CIcpGoodsItem // { // SourceSysNo = soOrderSysNo, // IcpType = model.IcpType, // MessageID = MessageID, // IcpGoodsSysNo = model.SysNo, // ProductSysNo = proItem.ProductSysNo, // EntGoodsNo = "None", // CreatedBy = UserSysNo, // CreatedDate = DateTime.Now, // LastUpdateBy = UserSysNo, // LastUpdateDate = DateTime.Now // }; // IcpDao.Instance.InsertIcpGoodsItem(m); //} //更新订单的商检推送状态 SoOrderBo.Instance.UpdateOrderNsStatus(soOrderSysNo, (int)OrderStatus.商检状态.已推送); result.Status = true; result.Message = root.head.MessageID; } catch (Exception ex) { result.Status = false; result.Message = ex.Message; } return(result); }
/// <summary> /// 商品备案 /// </summary> /// <returns></returns> /// <remarks>2016-3-21 王耀发 创建</remarks> public override Result PushGoods(string ProductSysNoList) { Result result = new Result(); CIcp model = new CIcp(); model.IcpType = (int)Model.CommonEnum.商检.广州南沙; List <CIcpGoodsItem> CIcpGoodsItemList = new List <CIcpGoodsItem>(); string[] sArray = ProductSysNoList.Split(','); foreach (string i in sArray) { int ProductSysNo = int.Parse(i); IcpGZNanShaGoodsInfo Entity = IcpBo.Instance.GetIcpGZNanShaGoodsInfoEntityByPid(ProductSysNo); CIcpGoodsItemList.Add(new CIcpGoodsItem() { IcpType = model.IcpType, ProductSysNo = ProductSysNo, EntGoodsNo = Entity.Gcode }); } Model.Icp.GZNanSha.CommodityInspection mod = SetMod(model); List <Hyt.Model.Icp.GZNanSha.CommodityInspectionLists> modLists = SetModLists(CIcpGoodsItemList); Hyt.Model.Icp.GZNanSha.Root root = new Hyt.Model.Icp.GZNanSha.Root(); root.head = new Hyt.Model.Icp.GZNanSha.Head(); root.body = new Hyt.Model.Icp.GZNanSha.Body(); root.body.goodSrecord = new Model.Icp.GZNanSha.GOODSRECORD(); root.body.goodSrecord.record = new Model.Icp.GZNanSha.Record(); root.body.goodSrecord.record.cargoList = new Model.Icp.GZNanSha.CARGO.CARGOLIST(); root.body.goodSrecord.record.cargoList.recordList = new List <Hyt.Model.Icp.GZNanSha.Record1>(); //生成最大流水号 string MaxSerialNumber = GetMaxSerialNumberByMType(model.IcpType.ToString(), config.NSIcpInfo.GoodsMessageType); DateTime now = DateTime.Now; string strDate = now.ToString("yyyyMMddHHmmssfff"); string strDateMid = now.ToString("yyyyMMddHHmmss"); //string fileName = config.NSIcpInfo.GoodsMessageType + "_" + strDate + MaxSerialNumber; string MessageID = "ICIP" + strDateMid; string fileName = config.NSIcpInfo.GoodsMessageType + "_" + strDate; SetCustomHead(MessageID, root.head); SetCustomBodyData(root.body.goodSrecord.record, mod); SetCustomBodyData(root.body.goodSrecord.record.cargoList, modLists); string str = Hyt.Util.Serialization.SerializationUtil.XmlSerialize <Model.Icp.GZNanSha.Root>(root); str = str.Replace("encoding=\"utf-16\"", "encoding=\"utf-8\""); FtpUtil ftp = new FtpUtil(config.NSIcpInfo.FtpUrl, config.NSIcpInfo.FtpName, config.NSIcpInfo.FtpPassword); string msg = ""; //string MessageID = fileName; fileName = fileName + ".xml"; try { ftp.UploadFile(config.NSIcpInfo.FtpUrl + "4200.IMPBA.SWBCARGOBACK.REPORT/in", fileName, Encoding.UTF8.GetBytes(str), out msg); //新增商检表信息 int UserSysNo = AdminAuthenticationBo.Instance.Current.Base.SysNo; model.SourceSysNo = 0; model.MessageID = MessageID; model.MessageType = config.NSIcpInfo.GoodsMessageType; model.SerialNumber = MaxSerialNumber; model.XmlContent = str; model.CreatedBy = UserSysNo; model.CreatedDate = DateTime.Now; model.Status = (int)IcpStatus.商品商检推送状态.已推送; model.LastUpdateBy = AdminAuthenticationBo.Instance.Current.Base.SysNo; model.LastUpdateDate = DateTime.Now; model.SysNo = IcpDao.Instance.Insert(model); if (model.SysNo > 0) // { if (CIcpGoodsItemList != null) { foreach (var item in CIcpGoodsItemList) { var m = new CIcpGoodsItem { SourceSysNo = 0, IcpType = model.IcpType, MessageID = MessageID, IcpGoodsSysNo = model.SysNo, ProductSysNo = item.ProductSysNo, EntGoodsNo = item.EntGoodsNo, CreatedBy = UserSysNo, CreatedDate = DateTime.Now, LastUpdateBy = UserSysNo, LastUpdateDate = DateTime.Now }; IcpDao.Instance.InsertIcpGoodsItem(m); } } } result.Status = true; result.Message = root.head.MessageID; } catch (Exception ex) { result.Status = false; result.Message = ex.Message; } return(result); }