Files
Desktop_PMSTools/frmCheckIn.cs
2025-11-26 11:50:21 +08:00

328 lines
12 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Xml;
using System.IO;
using AForge.Video;
using AForge.Video.DirectShow;
namespace WinFormTest
{
public partial class frmCheckIn : Form
{
blwws.blwwsSoapClient blwwsClient = new blwws.blwwsSoapClient();
syncstatus.syncstatusSoapClient syncstatusClient = new syncstatus.syncstatusSoapClient();
//ServiceReference2.ThirdpartyServiceClient client1 = new ServiceReference2.ThirdpartyServiceClient();
private FilterInfoCollection videoDevices;
private VideoCaptureDevice videoSource = null;
public frmCheckIn(string hotelCode, string roomNumber)
{
InitializeComponent();
txtHotelCode.Text = hotelCode;
//txtRoomNumber.Text = roomNumber;
cmbSex.SelectedIndex = 0;
//btnFaceCheckIn.Visible = false;
rbtnPhoto1.CheckedChanged += new EventHandler(rbtnPhoto1_CheckedChanged);
btnPhoto.Click += new EventHandler(btnPhoto_Click);
this.Load += new EventHandler(frmCheckIn_Load);
this.FormClosing += new FormClosingEventHandler(frmCheckIn_FormClosing);
}
void frmCheckIn_FormClosing(object sender, FormClosingEventArgs e)
{
if (videoSource != null && videoSource.IsRunning)
{
videoSource.Stop();
}
}
private bool isPhoto = false;
void btnPhoto_Click(object sender, EventArgs e)
{
if (videoSource == null || !videoSource.IsRunning)
{
MessageBox.Show("没有找到摄像头!");
return;
}
picPhoto.Image = picWebcam.Image;
isPhoto = true;
}
void frmCheckIn_Load(object sender, EventArgs e)
{
videoDevices = new FilterInfoCollection(FilterCategory.VideoInputDevice);
if (videoDevices.Count > 0)
{
videoSource = new VideoCaptureDevice(videoDevices[0].MonikerString);
videoSource.NewFrame += new NewFrameEventHandler(video_NewFrame);
videoSource.DesiredFrameSize = new Size(picWebcam.Size.Width, picWebcam.Size.Height);
videoSource.Start();
}
}
void video_NewFrame(object sender, NewFrameEventArgs eventArgs)
{
Bitmap img = (Bitmap)eventArgs.Frame.Clone();
picWebcam.Image = img;
}
void rbtnPhoto1_CheckedChanged(object sender, EventArgs e)
{
if (rbtnPhoto1.Checked)
{
txtPhotoUrl.ReadOnly = false;
btnPhoto.Enabled = false;
}
else
{
txtPhotoUrl.ReadOnly = true;
btnPhoto.Enabled = true;
}
}
private void button1_Click(object sender, EventArgs e)
{
if (string.IsNullOrEmpty(txtRoomNumber.Text.Trim()))
{
MessageBox.Show("房号不能为空");
txtRoomNumber.Focus();
return;
}
string errorMsg = "";
string xmlString = "<interface><item idtype=\"0\" idcard = \"" + txtIDNumber.Text.Trim() + "\" customer = \"" +
txtName.Text.Trim() + "\" sex =\"女\" country =\"0\" checkindate = \"" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "\"/></interface>";
if (blwwsClient.CheckIn("blw_ws@2015", txtHotelCode.Text.Trim(), txtRoomNumber.Text.Trim(), DateTime.Now, xmlString, ref errorMsg, txtPhoneNumber.Text.Trim(), txtIDNumber.Text.Trim()))
{
MessageBox.Show("开房成功!");
}
else
{
MessageBox.Show(errorMsg);
}
}
private void button2_Click(object sender, EventArgs e)
{
if (string.IsNullOrEmpty(txtRoomNumber.Text.Trim()))
{
MessageBox.Show("房号不能为空");
txtRoomNumber.Focus();
return;
}
string errorMsg = "";
if (blwwsClient.CheckOut("blw_ws@2015", txtHotelCode.Text.Trim(), txtRoomNumber.Text.Trim(), DateTime.Now, ref errorMsg))
{
MessageBox.Show("退房成功!");
}
else
{
MessageBox.Show(errorMsg);
}
}
private void button3_Click(object sender, EventArgs e)
{
if (string.IsNullOrEmpty(txtRoomNumber.Text.Trim()))
{
MessageBox.Show("房号不能为空");
txtRoomNumber.Focus();
return;
}
string errorMsg = "";
if (blwwsClient.RentRoom("blw_ws@2015", txtHotelCode.Text.Trim(), txtRoomNumber.Text.Trim(), DateTime.Now, ref errorMsg))
{
MessageBox.Show("变更待租成功!");
}
else
{
MessageBox.Show(errorMsg);
}
}
private void button4_Click(object sender, EventArgs e)
{
//=============将插卡信息上报给PMS=======================================
//XmlDocument xmlDoc = new XmlDocument();
//xmlDoc.LoadXml(client1.GethHotelcode("宝来客控对接酒店"));
//XmlElement element = xmlDoc.DocumentElement;
//string hotelCode = element.GetElementsByTagName("Body")[0].ChildNodes[0].ChildNodes[0].InnerText;//"HOTEL1489374686";
//xmlDoc = new XmlDocument();
//XmlNode node = xmlDoc.CreateXmlDeclaration("1.0", "utf-8", "");//创建类型声明节点
//xmlDoc.AppendChild(node);
//XmlNode root = xmlDoc.CreateElement("request");
//xmlDoc.AppendChild(root);
//XmlNode card = xmlDoc.CreateElement("cardIdentificatioinrq");
//root.AppendChild(card);
//XmlNode data = xmlDoc.CreateNode(XmlNodeType.Element, "hotelCode", null);
//data.InnerText = hotelCode;//酒店代码
//card.AppendChild(data);
//data = xmlDoc.CreateNode(XmlNodeType.Element, "roomno", null);
//data.InnerText = textBox1.Text.Trim();//房间号
//card.AppendChild(data);
//data = xmlDoc.CreateNode(XmlNodeType.Element, "remark", null);
//data.InnerText = "";//备注
//card.AppendChild(data);
//data = xmlDoc.CreateNode(XmlNodeType.Element, "guestinfo", null);
//if (string.IsNullOrEmpty(textBox2.Text.Trim()))
//{
// data.InnerText = "无人";
//}
//else
//{
// data.InnerText = textBox2.Text.Trim();//插卡人身份信息
//}
//card.AppendChild(data);
//data = xmlDoc.CreateNode(XmlNodeType.Element, "key", null);
//data.InnerText = "Wide_Third";//授权码
//card.AppendChild(data);
////logger.Error(xmlDoc.InnerXml);
//textBox3.Text = xmlDoc.InnerXml;
//string result = client1.SendIdentificatioinByCard(xmlDoc.InnerXml);
//string result = TestBLL.Class1.Test(textBox1.Text.Trim(), textBox2.Text.Trim());
//MessageBox.Show("发送成功" + Environment.NewLine + result);
}
private void button5_Click(object sender, EventArgs e)
{
if (string.IsNullOrEmpty(txtRoomNumber.Text.Trim()))
{
MessageBox.Show("房号不能为空");
txtRoomNumber.Focus();
return;
}
if (string.IsNullOrEmpty(txtPhoneNumber.Text.Trim()))
{
MessageBox.Show("手机号不能为空");
txtPhoneNumber.Focus();
return;
}
string errorMsg = "";
if (blwwsClient.ChangePhoneNumber("blw_ws@2015", txtHotelCode.Text.Trim(), txtRoomNumber.Text.Trim(), txtPhoneNumber.Text.Trim(), txtIDNumber.Text.Trim(), ref errorMsg))
{
MessageBox.Show("变更手机号成功!");
}
else
{
MessageBox.Show(errorMsg);
}
}
private void btnWXLogin_Click(object sender, EventArgs e)
{
if (string.IsNullOrEmpty(txtRoomNumber.Text.Trim()))
{
MessageBox.Show("房号不能为空");
txtRoomNumber.Focus();
return;
}
if (string.IsNullOrEmpty(txtValidateCode.Text.Trim()))
{
MessageBox.Show("验证码不能为空");
txtValidateCode.Focus();
return;
}
if (syncstatusClient.ValidateNumberByCode(txtHotelCode.Text.Trim(), txtRoomNumber.Text.Trim(), txtValidateCode.Text.Trim()))
{
MessageBox.Show("验证成功!");
}
else
{
MessageBox.Show("验证失败!");
}
}
private void btnClose_Click(object sender, EventArgs e)
{
this.Close();
}
private void btnFaceCheckIn_Click(object sender, EventArgs e)
{
if (string.IsNullOrEmpty(txtRoomNumber.Text.Trim()))
{
MessageBox.Show("房号不能为空");
txtRoomNumber.Focus();
return;
}
if (string.IsNullOrEmpty(txtName.Text.Trim()))
{
MessageBox.Show("姓名不能为空");
txtName.Focus();
return;
}
if (string.IsNullOrEmpty(txtIDNumber.Text.Trim()))
{
MessageBox.Show("身份证号不能为空");
txtIDNumber.Focus();
return;
}
string errorMsg = "";
long checkInID = 0;
string photoUrl = txtPhotoUrl.Text.Trim();
byte[] photo = null;
if (rbtnPhoto2.Checked)
{
if (!isPhoto)
{
MessageBox.Show("请先拍照");
btnPhoto.Focus();
return;
}
photoUrl = "";
photo = GetBytePictureBox(picPhoto);
}
else if(string.IsNullOrEmpty(photoUrl))
{
MessageBox.Show("云端图片地址不能为空");
txtPhotoUrl.Focus();
return;
}
string xmlString = "<interface><item idtype=\"0\" idcard = \"" + txtIDNumber.Text.Trim() + "\" customer = \"" +
txtName.Text.Trim() + "\" sex =\"女\" country =\"0\" checkindate = \"" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "\"/></interface>";
if (blwwsClient.CheckIn2("blw_ws@2015", txtHotelCode.Text.Trim(), txtRoomNumber.Text.Trim(), DateTime.Now, xmlString, ref errorMsg, ref checkInID, txtPhoneNumber.Text.Trim(), txtIDNumber.Text.Trim()))
{
if (blwwsClient.UploadPhoto("blw_ws@2015", txtHotelCode.Text.Trim(), checkInID, 0, txtIDNumber.Text.Trim(), txtName.Text.Trim(),
cmbSex.SelectedIndex, dtBirthday.Value.ToString("yyyy-MM-dd"), photoUrl, photo, ref errorMsg))
{
MessageBox.Show("开房成功CheckInID:" + checkInID.ToString());
}
else
{
MessageBox.Show(errorMsg);
}
}
else
{
MessageBox.Show(errorMsg);
}
}
private byte[] GetBytePictureBox(System.Windows.Forms.PictureBox pb)
{
byte[] bt = null;
if (!pb.Equals(null))
{
using (MemoryStream ms = new MemoryStream())
{
Bitmap bm = new Bitmap(pb.Size.Width, pb.Size.Height);
pb.DrawToBitmap(bm, pb.ClientRectangle);
bm.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
bt = ms.GetBuffer();
}
}
return bt;
}
}
}