/// <summary> /// 更新商检明细数据 /// </summary> /// <param name="entity">数据实体</param> /// <returns></returns> /// <remarks>2016-03-22 王耀发 创建</remarks> public override void UpdateIcpGoodsItem(CIcpGoodsItem entity) { Context.Update("IcpGoodsItem", entity) .AutoMap(o => o.SysNo) .Where("SysNo", entity.SysNo) .Execute(); }
/// <summary> /// 插入商检明细数据 /// </summary> /// <param name="entity">数据实体</param> /// <returns>新增记录编号</returns> /// <remarks>2016-03-22 王耀发 创建</remarks> public override int InsertIcpGoodsItem(CIcpGoodsItem entity) { entity.SysNo = Context.Insert("IcpGoodsItem", entity) .AutoMap(o => o.SysNo) .ExecuteReturnLastId <int>("SysNo"); return(entity.SysNo); }
/// <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="entity">数据实体</param> /// <returns></returns> /// <remarks>2016-03-22 王耀发 创建</remarks> public abstract void UpdateIcpGoodsItem(CIcpGoodsItem entity);
/// <summary> /// 插入商检明细数据 /// </summary> /// <param name="entity">数据实体</param> /// <returns>新增记录编号</returns> /// <remarks>2016-03-22 王耀发 创建</remarks> public abstract int InsertIcpGoodsItem(CIcpGoodsItem entity);
/// <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); }