/// <summary> /// 上载报文(到QP) /// </summary> /// <param name="keyValue">激活码</param> /// <param name="machineCode">机器代码</param> /// <param name="cusCiqNo">关检关联号(可选),如果没有填空字符</param> /// <param name="msgXml">消息</param> /// <returns></returns> public MesReceipt SendMessage(string keyValue, string machineCode, string cusCiqNo, string msgXml) { var receipt = new MesReceipt(); LogHelper logHelper = LogHelper.GetInstance(); try { CusCiqNoInfo cusCiqNoInfo = new CusCiqNoInfo { CusCiqNo = cusCiqNo }; var cusDataMsg = new CusDataMsg { KeyValue = keyValue, MachineCode = machineCode, MessageXml = msgXml, CusCiqNo = cusCiqNoInfo }; IMessageDataHelper dataHelper = DataHelperFactory.GetMessageDataHelper(); //检查激活码 if (!Utility.CheckKey(dataHelper.GetKeyInfo(keyValue, machineCode))) { receipt.Status = "003"; receipt.Message = GetErrInfo(Context.ErrKeyValueInvalid, Context.ErrKeyValueInvalidId); return(receipt); } cusDataMsg = Utility.FormatCusDataMsg(cusDataMsg, dataHelper.GetMaxTcsCurrentId(), ConfigInfo.TscIdHead, ConfigInfo.DocumentNo); receipt.RDate = DateTime.Now.ToString("yyyyMMddHHmmss"); DeclHelper declHelper = new DeclHelper(); DeclEnvelopHead msgHeader = declHelper.GetEnvelopHeader(msgXml); #region 生成TCS报文 XDocEntity tmpDoc = ConfigInfo.GetTemplateDocEntity(); TcsHelper tcsHelper = new TcsHelper(); //保存报文 XDocument tcsDoc = tcsHelper.GenerateTcsXDoc(tmpDoc, cusDataMsg); tcsDoc.Save(GetFileName(ConfigInfo.Path)); #endregion #region 报文落地数据库 cusDataMsg.TcsMessageXml = tcsDoc.ToString(); cusDataMsg.DeclTime = DateTime.Now; cusDataMsg.MsgGuid = msgHeader.MsgGuid; cusDataMsg.Sendtime = msgHeader.SendTime; dataHelper.SaveMessageInfo(cusDataMsg); #endregion receipt.Status = "000"; receipt.Message = string.Empty; receipt.MessagID = cusDataMsg.TaskId; //记录操作日志 logHelper.LogOperation(string.Format("SendMessage 上载报文(到QP),KeyValue:{0},Machinecode:{1},CusCiqNo:{2}", keyValue, machineCode, cusCiqNo), Context.SendMessageEventId, "SendMessage", keyValue); return(receipt); } catch (Exception ex) { receipt.Status = "001"; receipt.Message = GetErrInfo(Context.ErrSendMessage, Context.SendMessageEventId); logHelper.LogErrInfo(ex.Message, Context.SendMessageEventId, "SendMessage", keyValue, msgXml); return(receipt); } }
public void SendMessageTest() { MessageServiceHelper helper = new MessageServiceHelper(); string cusCiqNo = helper.GetCusCiqNo("0", "5100"); XDocument declDoc = XDocument.Parse(Constants.ClientMessage); MesReceipt res = helper.SendMessage(Constants.ClientKey, Constants.ClientMachineCode, cusCiqNo, declDoc.ToString()); Assert.AreEqual(string.Empty, res.Message); Assert.AreEqual <Boolean>(false, string.IsNullOrEmpty(res.MessagID)); }
public void WCFTest() { //ServiceReference1.MessageServiceWCFClient client = new ServiceReference1.MessageServiceWCFClient(); //string cusCiqNo = client.GetCusCiqNo("0", "5100"); WSHttpBinding httpBinding = new WSHttpBinding(); httpBinding.Security.Mode = SecurityMode.None; //string url = "http://*****:*****@"F:\Temp\DeclMsg\DECL_FILE.xml"); //上载报文 //MesReceipt res = wsHttpChannel.SendMessage("130409667935", "00-21-70-67-E8-27", // cusCiqNo, declDoc.ToString()); MesReceipt res = wsHttpChannel.SendMessage("130815300366", "00-21-70-67-E8-27", cusCiqNo, declDoc.ToString()); Assert.AreEqual(string.Empty, res.Message); Assert.AreEqual <Boolean>(false, string.IsNullOrEmpty(res.MessagID)); //上传报文(全) SaveModel model = wsHttpChannel.UploadAllData("130409667935", "00-21-70-67-E8-27", "1", "5100", cusCiqNo, 0, declDoc.ToString(), declDoc.ToString()); SaveModel model2 = wsHttpChannel.UploadAllData("130409667935", "00-21-70-67-E8-27", "1", "5100", cusCiqNo, 0, declDoc.ToString(), declDoc.ToString()); Assert.AreEqual <string>(model.Password, model2.Password); Assert.AreEqual <Boolean>(true, model.IsSuccess); //上传报关报文 model = wsHttpChannel.UploadCustomsData("130409667935", "00-21-70-67-E8-27", "1", "5100", cusCiqNo, 0, declDoc.ToString()); Assert.AreEqual <Boolean>(true, model.IsSuccess); //下载报关数据 string cusMsg = wsHttpChannel.DownloadCustomsData("130409667935", "00-21-70-67-E8-27", "0130422510000024", "950496"); Assert.IsNotNull(cusMsg); XDocument cusDoc = XDocument.Parse(cusMsg); Assert.AreEqual <string>("662025362", cusDoc.Root.Element("EnvelopBody").Element("DECL_HEAD").Element("PRE_ENTRY_ID").Value); //下载报检数据 string ciqMsg = wsHttpChannel.DownloadCiqData("130409667935", "00-21-70-67-E8-27", "0130422510000024", "950496"); Assert.IsNotNull(ciqMsg); XDocument ciqDoc = XDocument.Parse(ciqMsg); Assert.AreEqual <string>("662025362", ciqDoc.Root.Element("EnvelopBody").Element("DECL_HEAD").Element("PRE_ENTRY_ID").Value); //获得更新时间 Assert.AreEqual(DateTime.Parse("2013-04-22 10:33:00"), wsHttpChannel.GetSaveTime("0130422510000024")); //登陆 UserInfo user = wsHttpChannel.Login("jctest", "2157FC3FAD461F6A45834F07F8B0BA03"); Assert.AreEqual("3c94fe4f-677d-4ffc-9922-9479bb784283", user.Guid); //修改密码 Assert.AreEqual <int>(1, wsHttpChannel.UpdatePassword("jctest", "2157FC3FAD461F6A45834F07F8B0BA03", "2157FC3FAD461F6A45834F07F8B0BA03")); //激活 //Assert.AreEqual<int>(1, wsHttpChannel.ActiveKeyByLoginName("e", "E1671797C52E15F763380B45E841EC32", "130403162281", "BFEBFBFF0001067A")); //下载回执 foreach (var cusRep in wsHttpChannel.ReceiveMsgRep("130409667935", "00-21-70-67-E8-27", "T1907843510020130223f4ff60b96")) { Assert.AreEqual <Boolean>(false, string.IsNullOrEmpty(cusRep.ReturnInfo)); } }