3948 lines
212 KiB
C#
3948 lines
212 KiB
C#
|
|
using Face.Domain.Entities;
|
|||
|
|
using Face.Domain.ViewModels;
|
|||
|
|
using Face.Services.DBUtility.Common;
|
|||
|
|
using Face.Services.Manager;
|
|||
|
|
using Face.Web.Areas.App.Models;
|
|||
|
|
using System;
|
|||
|
|
using System.Collections.Generic;
|
|||
|
|
using System.Drawing;
|
|||
|
|
using System.Drawing.Imaging;
|
|||
|
|
using System.IO;
|
|||
|
|
using System.Linq;
|
|||
|
|
using System.Net;
|
|||
|
|
using System.Net.Security;
|
|||
|
|
using System.Security.Cryptography.X509Certificates;
|
|||
|
|
using System.Text;
|
|||
|
|
using System.Threading.Tasks;
|
|||
|
|
using System.Web;
|
|||
|
|
using System.Web.Hosting;
|
|||
|
|
using System.Web.Mvc;
|
|||
|
|
using WebSocketToolsConsole;
|
|||
|
|
using Face.Web.Areas.App.Controllers;
|
|||
|
|
using System.Threading;
|
|||
|
|
using Newtonsoft.Json;
|
|||
|
|
using TencentCloud.Common.Profile;
|
|||
|
|
using TencentCloud.Common;
|
|||
|
|
using TencentCloud.Sms.V20210111;
|
|||
|
|
using TencentCloud.Sms.V20210111.Models;
|
|||
|
|
using System.Data;
|
|||
|
|
using System.Diagnostics;
|
|||
|
|
using System.Xml;
|
|||
|
|
using AUTS.Services.Enums;
|
|||
|
|
using System.Text.RegularExpressions;
|
|||
|
|
using static WebSocketToolsConsole.Entity;
|
|||
|
|
using static Face.Web.Areas.App.Models.Roominfo;
|
|||
|
|
using static Face.Web.Areas.App.Controllers.InterfaceController;
|
|||
|
|
using System.Web.Helpers;
|
|||
|
|
using Newtonsoft.Json.Linq;
|
|||
|
|
using System.Web.Services.Description;
|
|||
|
|
|
|||
|
|
namespace Face.Web.Areas.App.Controllers
|
|||
|
|
{
|
|||
|
|
/*
|
|||
|
|
* hotel, room, facedevice
|
|||
|
|
* no device:
|
|||
|
|
* step 9: error hotel or error room
|
|||
|
|
* step 8: success without facedevice
|
|||
|
|
* has device
|
|||
|
|
* step 7: error with face device
|
|||
|
|
* step 6: success with face device
|
|||
|
|
*/
|
|||
|
|
|
|||
|
|
|
|||
|
|
public class InterfaceController : Controller
|
|||
|
|
{
|
|||
|
|
private static readonly TimeSpan Interval = TimeSpan.FromMilliseconds(1000);
|
|||
|
|
|
|||
|
|
|
|||
|
|
#region 接口
|
|||
|
|
/// <summary>
|
|||
|
|
/// 接口1 (入住人员信息)
|
|||
|
|
/// </summary>
|
|||
|
|
/// https://gitee.com/My_yaoyao/blog/pages
|
|||
|
|
[HttpPost]
|
|||
|
|
public ActionResult checkinInterface(string key, string data)
|
|||
|
|
{
|
|||
|
|
//酒店编号
|
|||
|
|
string hc = "";
|
|||
|
|
//房间编号
|
|||
|
|
string ridname = "";
|
|||
|
|
//List<DeviceManage> tblsdsas = SqlSugarBase.GesmartDb().Queryable<DeviceManage>().ToList();
|
|||
|
|
DateTime dateTimess = DateTime.Now;
|
|||
|
|
Logs.WriteLog(data);
|
|||
|
|
string sn = "";
|
|||
|
|
string sendMsg, img, pictures;
|
|||
|
|
int pmsid = -1;
|
|||
|
|
string messageid = Guid.NewGuid().ToString();
|
|||
|
|
ReturnResult result = new ReturnResult();
|
|||
|
|
Hotels hotel = new Hotels();
|
|||
|
|
List<pmsLog> logList = new List<pmsLog>();
|
|||
|
|
bool offLineSend = false;
|
|||
|
|
threadinfo ti = new threadinfo();
|
|||
|
|
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
portinfo ci = JsonConvert.DeserializeObject<portinfo>(data);
|
|||
|
|
hc = ci.HotelCode;
|
|||
|
|
ridname = ci.roomid;
|
|||
|
|
if (key == "abc")
|
|||
|
|
{
|
|||
|
|
|
|||
|
|
hotel = SqlSugarBase.authoriydb.Queryable<Hotels>().First(x => x.Code == ci.HotelCode);
|
|||
|
|
//把酒店id转换成string类型
|
|||
|
|
//ci.HotelCode = hotel.Id.ToString();
|
|||
|
|
|
|||
|
|
pmsInterface info = new pmsInterface()
|
|||
|
|
{
|
|||
|
|
pmstype = 1,
|
|||
|
|
DateTime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
pmsContent = data,
|
|||
|
|
hotelid = hotel.Id,
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
|
|||
|
|
pmsid = ci.pmsinfoid;
|
|||
|
|
//SqlSugarBase.Db.Updateable(info).Where(x => x.pmsId == pmsid);
|
|||
|
|
messageid = pmsid.ToString();
|
|||
|
|
if (hotel.Id == 916)
|
|||
|
|
{
|
|||
|
|
pmsLog pmslogerr = new pmsLog
|
|||
|
|
{
|
|||
|
|
pmsid = pmsid,
|
|||
|
|
app = 1,
|
|||
|
|
step = 201,
|
|||
|
|
Data = data,
|
|||
|
|
Creationtime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
message = "请求过于频繁,已拒绝本酒店访问!",
|
|||
|
|
HotelCode = hc,
|
|||
|
|
roomid = ridname
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
SqlSugarBase.Db.Insertable(pmslogerr).ExecuteCommand();
|
|||
|
|
result.Status = 200;
|
|||
|
|
result.Message = $"请求过于频繁,已拒绝本酒店访问!";
|
|||
|
|
return Json(result);
|
|||
|
|
}
|
|||
|
|
pmsLog pmslog = new pmsLog
|
|||
|
|
{
|
|||
|
|
pmsid = pmsid,
|
|||
|
|
app = 1,
|
|||
|
|
step = 201,
|
|||
|
|
Data = data,
|
|||
|
|
Creationtime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
message = "收到pms信息",
|
|||
|
|
HotelCode = hc,
|
|||
|
|
roomid = ridname
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
SqlSugarBase.Db.Insertable(pmslog).ExecuteCommand();
|
|||
|
|
|
|||
|
|
|
|||
|
|
if (ci.HotelCode != "")
|
|||
|
|
{
|
|||
|
|
|
|||
|
|
hotel = SqlSugarBase.authoriydb.Queryable<Hotels>().First(x => x.Code == ci.HotelCode);
|
|||
|
|
|
|||
|
|
ci.HotelCode = hotel.Id.ToString();
|
|||
|
|
|
|||
|
|
GetRoomInterface.test test = new GetRoomInterface.test
|
|||
|
|
{
|
|||
|
|
code = hotel.Code.ToString(),
|
|||
|
|
creatDate = hotel.CreateTime.ToString("yyyy-MM-dd")
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
Roominfo.Root asd = GetRoomInterface.Roomport(test);
|
|||
|
|
|
|||
|
|
if (asd.IsSuccess == true)
|
|||
|
|
{
|
|||
|
|
//根据房间id使用三元运算符取通过api:https://www.boonlive-rcu.com/api/GetHostLis返回的房间信息
|
|||
|
|
var Hotelroomid = asd.Result.FirstOrDefault(x => x.RoomNumber == ci.roomid) != null ? asd.Result.FirstOrDefault(x => x.RoomNumber == ci.roomid) : null;
|
|||
|
|
//没有找到对应酒店的房间
|
|||
|
|
if (Hotelroomid == null)
|
|||
|
|
{
|
|||
|
|
logList.Clear();
|
|||
|
|
//创建s2 错误信息
|
|||
|
|
logList.Add(new pmsLog
|
|||
|
|
{
|
|||
|
|
pmsid = pmsid,
|
|||
|
|
app = 1,
|
|||
|
|
Creationtime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
step = 202,
|
|||
|
|
Data = "",
|
|||
|
|
message = $"已校验数据,未找到{ridname}房间",
|
|||
|
|
HotelCode = hc,
|
|||
|
|
roomid = ridname
|
|||
|
|
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
//创建s9错误信息
|
|||
|
|
logList.Add(new pmsLog
|
|||
|
|
{
|
|||
|
|
pmsid = pmsid,
|
|||
|
|
app = 1,
|
|||
|
|
Creationtime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
step = 203,
|
|||
|
|
Data = "",
|
|||
|
|
message = $"无需处理,未找到{ridname}房间",
|
|||
|
|
HotelCode = hc,
|
|||
|
|
roomid = ridname
|
|||
|
|
});
|
|||
|
|
//添加到pmsLog数据库
|
|||
|
|
SqlSugarBase.Db.Insertable(logList).ExecuteCommand();
|
|||
|
|
|
|||
|
|
result.Status = 300;
|
|||
|
|
result.Message = $"未找到{ridname}房间";
|
|||
|
|
return Json(result);
|
|||
|
|
}
|
|||
|
|
//否则吧房间id转换成string类型
|
|||
|
|
ci.roomid = Hotelroomid.ID.ToString();
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
logList.Clear();
|
|||
|
|
//创建s2 错误信息
|
|||
|
|
logList.Add(new pmsLog
|
|||
|
|
{
|
|||
|
|
pmsid = pmsid,
|
|||
|
|
app = 1,
|
|||
|
|
Creationtime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
step = 204,
|
|||
|
|
Data = "",
|
|||
|
|
message = $"已校验数据,未找到{ci.HotelCode}酒店code",
|
|||
|
|
HotelCode = hc,
|
|||
|
|
roomid = ridname
|
|||
|
|
});
|
|||
|
|
//创建s9 错误信息
|
|||
|
|
logList.Add(new pmsLog
|
|||
|
|
{
|
|||
|
|
pmsid = pmsid,
|
|||
|
|
app = 1,
|
|||
|
|
Creationtime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
step = 205,
|
|||
|
|
Data = "",
|
|||
|
|
message = $"无需处理,未找到{ci.HotelCode}酒店code",
|
|||
|
|
HotelCode = hc,
|
|||
|
|
roomid = ridname
|
|||
|
|
});
|
|||
|
|
//添加到pmsLog数据库
|
|||
|
|
SqlSugarBase.Db.Insertable(logList).ExecuteCommand();
|
|||
|
|
|
|||
|
|
|
|||
|
|
result.Status = 300;
|
|||
|
|
result.Message = "酒店输入错误";
|
|||
|
|
return Json(result);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
logList.Clear();
|
|||
|
|
//创建S2错误信息
|
|||
|
|
logList.Add(new pmsLog
|
|||
|
|
{
|
|||
|
|
pmsid = pmsid,
|
|||
|
|
app = 1,
|
|||
|
|
Creationtime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
step = 206,
|
|||
|
|
Data = "",
|
|||
|
|
message = $"已校验数据,{ci.HotelCode}酒店code错误",
|
|||
|
|
HotelCode = hc,
|
|||
|
|
roomid = ridname
|
|||
|
|
});
|
|||
|
|
//创建S9错误信息
|
|||
|
|
logList.Add(new pmsLog
|
|||
|
|
{
|
|||
|
|
pmsid = pmsid,
|
|||
|
|
app = 1,
|
|||
|
|
Creationtime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
step = 207,
|
|||
|
|
Data = "",
|
|||
|
|
message = $"无需处理,{ci.HotelCode}酒店code错误",
|
|||
|
|
HotelCode = hc,
|
|||
|
|
roomid = ridname
|
|||
|
|
});
|
|||
|
|
//添加到pmslog数据库
|
|||
|
|
SqlSugarBase.Db.Insertable(logList).ExecuteCommand();
|
|||
|
|
|
|||
|
|
result.Status = 300;
|
|||
|
|
result.Message = "酒店code错误";
|
|||
|
|
return Json(result);
|
|||
|
|
}
|
|||
|
|
//查询房间是否是公区并且关联公区
|
|||
|
|
tbl_room_basic_info tbl_room_basic_info = SqlSugarBase.Gesmartblv_rcu_db().Queryable<tbl_room_basic_info>().First(x => x.IsDel == 0 && x.ROOM_OLD_ID == int.Parse(ci.roomid));
|
|||
|
|
|
|||
|
|
|
|||
|
|
//是公区
|
|||
|
|
if (tbl_room_basic_info.isPublicArea == 1)
|
|||
|
|
{
|
|||
|
|
#region 公区房间下发
|
|||
|
|
sn = SqlOperationsData.selectFace(ci.HotelCode, ci.roomid);//是否有此SN号
|
|||
|
|
|
|||
|
|
DeviceManage device = SqlSugarBase.GesmartDb().Queryable<DeviceManage>().First(x => x.SerialNo == sn);
|
|||
|
|
|
|||
|
|
string Factorys = "";
|
|||
|
|
|
|||
|
|
if (device.Factory == "移海")
|
|||
|
|
{
|
|||
|
|
Factorys = "yh";
|
|||
|
|
}
|
|||
|
|
else if (device.Factory == "实义德")
|
|||
|
|
{
|
|||
|
|
Factorys = "devs";
|
|||
|
|
}
|
|||
|
|
else if (device.Factory == "深圳嘉禾兴")
|
|||
|
|
{
|
|||
|
|
Factorys = "szjhx";
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
Factorys = " ";
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
using (var sex = SqlSugarBase.GesmartDb())
|
|||
|
|
{
|
|||
|
|
///添加pms酒店,房间,sn号,信息索引
|
|||
|
|
pmsInterface pms = new pmsInterface()
|
|||
|
|
{
|
|||
|
|
faceSN = sn,
|
|||
|
|
hotelid = int.Parse(ci.HotelCode),
|
|||
|
|
room = int.Parse(ci.roomid),
|
|||
|
|
messageid = messageid,
|
|||
|
|
pmsId = pmsid
|
|||
|
|
};
|
|||
|
|
SqlOperationsData.revisepms(pms);
|
|||
|
|
//添加人脸机下发表
|
|||
|
|
FaceIssue fi = new FaceIssue()
|
|||
|
|
{
|
|||
|
|
creationtime = DateTime.Now,
|
|||
|
|
faceSn = sn,
|
|||
|
|
issuestate = 0,
|
|||
|
|
messageid = messageid,
|
|||
|
|
picture = ci.picture,
|
|||
|
|
Factory = Factorys,
|
|||
|
|
APKVersion = device.APKVersion
|
|||
|
|
};
|
|||
|
|
//添加到数据库FaceIssue
|
|||
|
|
SqlSugarBase.Db.Insertable(fi).ExecuteCommand();
|
|||
|
|
///修改人脸机下发表
|
|||
|
|
if (messageid != "")
|
|||
|
|
{
|
|||
|
|
string id = pms.pmsId.ToString();
|
|||
|
|
SqlSugarBase.Db.Updateable<FaceIssue>().SetColumns(x => x.pmsid == id).Where(x => x.messageid == messageid).ExecuteCommand();
|
|||
|
|
}
|
|||
|
|
if (sn != "" && sn != "")
|
|||
|
|
{
|
|||
|
|
//有人脸机,但是状态不在线
|
|||
|
|
var sea = sex.Queryable<DeviceManage>().Where(s => s.SerialNo == sn).First(j => j.Status == false);
|
|||
|
|
#region
|
|||
|
|
//if (sea != null)
|
|||
|
|
//{
|
|||
|
|
// logList.Clear();
|
|||
|
|
// logList.Add(new pmsLog
|
|||
|
|
// {
|
|||
|
|
// pmsid = pmsid,
|
|||
|
|
// app = 1,
|
|||
|
|
// Creationtime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
// step = 2,
|
|||
|
|
// Data = "",
|
|||
|
|
// message = $"已校验数据,{sn}号人脸机不在线"
|
|||
|
|
// });
|
|||
|
|
// logList.Add(new pmsLog
|
|||
|
|
// {
|
|||
|
|
// pmsid = pmsid,
|
|||
|
|
// app = 1,
|
|||
|
|
// Creationtime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
// step = 7,
|
|||
|
|
// Data = "",
|
|||
|
|
// message = $"无需处理,{sn}号人脸机不在线"
|
|||
|
|
// });
|
|||
|
|
// SqlSugarBase.Db.Insertable(logList).ExecuteCommand();
|
|||
|
|
|
|||
|
|
|
|||
|
|
// result.Status = 505;
|
|||
|
|
// result.Message = "人脸机不在线";
|
|||
|
|
// SqlOperationsData.preserve(data, ci.HotelCode, ci.roomid, sn, 3, 1);
|
|||
|
|
// return Json(result);
|
|||
|
|
//}
|
|||
|
|
#endregion
|
|||
|
|
//改为尝试下发
|
|||
|
|
if (sea != null)
|
|||
|
|
{
|
|||
|
|
//虽然不在线,依然尝试下发。
|
|||
|
|
//不要return, 会跳到397行
|
|||
|
|
logList.Clear();
|
|||
|
|
logList.Add(new pmsLog
|
|||
|
|
{
|
|||
|
|
pmsid = pmsid,
|
|||
|
|
app = 1,
|
|||
|
|
Creationtime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
step = 208,
|
|||
|
|
Data = "",
|
|||
|
|
message = $"已校验数据,{sn}号人脸机不在线,但仍然尝试下发,房号" + ridname + ",是否公区:是",
|
|||
|
|
HotelCode = hc,
|
|||
|
|
roomid = ridname
|
|||
|
|
});
|
|||
|
|
SqlSugarBase.Db.Insertable(logList).ExecuteCommand();
|
|||
|
|
|
|||
|
|
offLineSend = true;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
if (sn == null || sn == "")
|
|||
|
|
{
|
|||
|
|
img = ci.picture;
|
|||
|
|
pictures = Down(ci.picture, ci.LodgerNmae + ci.IDNumber + DateTime.Now.ToString("ss fff"));//云端地址转换ftp图片
|
|||
|
|
|
|||
|
|
//if (pictures == "图片路径错误")
|
|||
|
|
if (pictures.Contains("图片路径错误"))
|
|||
|
|
{
|
|||
|
|
logList.Clear();
|
|||
|
|
logList.Add(new pmsLog
|
|||
|
|
{
|
|||
|
|
pmsid = pmsid,
|
|||
|
|
app = 1,
|
|||
|
|
Creationtime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
step = 209,
|
|||
|
|
Data = "",
|
|||
|
|
message = "已校验数据,图片路径错误,房号" + ridname + ",SN:" + sn + ",是否公区:是",
|
|||
|
|
HotelCode = hc,
|
|||
|
|
roomid = ridname
|
|||
|
|
});
|
|||
|
|
logList.Add(new pmsLog
|
|||
|
|
{
|
|||
|
|
pmsid = pmsid,
|
|||
|
|
app = 1,
|
|||
|
|
Creationtime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
step = 210,
|
|||
|
|
Data = "",
|
|||
|
|
message = "无需处理,图片路径错误,房号" + ridname + ",SN:" + sn + ",是否公区:是",
|
|||
|
|
HotelCode = hc,
|
|||
|
|
roomid = ridname
|
|||
|
|
});
|
|||
|
|
SqlSugarBase.Db.Insertable(logList).ExecuteCommand();
|
|||
|
|
|
|||
|
|
|
|||
|
|
result.Status = 50;
|
|||
|
|
result.Message = "图片路径错误,房号" + ridname + ",SN:" + sn + ",是否公区:是";
|
|||
|
|
return Json(result);
|
|||
|
|
}
|
|||
|
|
ci.picture = pictures;
|
|||
|
|
Lodger lodgers = new Lodger
|
|||
|
|
{
|
|||
|
|
CheckInDate = DateTime.Now,
|
|||
|
|
IDNumber = ci.IDNumber,
|
|||
|
|
LodgerNmae = ci.LodgerNmae,
|
|||
|
|
Sex = ci.Sex,
|
|||
|
|
remark = ci.remark,
|
|||
|
|
Sourcedian = 1,
|
|||
|
|
phonenumber = ci.phonenumber
|
|||
|
|
};
|
|||
|
|
CheckInInfo cf = new CheckInInfo
|
|||
|
|
{
|
|||
|
|
|
|||
|
|
Name = ci.LodgerNmae,
|
|||
|
|
IdNumber = ci.IDNumber,
|
|||
|
|
picture = ci.picture,
|
|||
|
|
HotelCode = int.Parse(ci.HotelCode),
|
|||
|
|
Roomid = int.Parse(ci.roomid),
|
|||
|
|
InfoSource = 0,
|
|||
|
|
CheckTime = ci.CheckTime,
|
|||
|
|
checkOutTime = Convert.ToDateTime("2000/01/01"),
|
|||
|
|
//checkOutTime = ci.checkOutTime,
|
|||
|
|
CreationTime = DateTime.Now,
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
if (SqlOperationsData.addClient(lodgers) > 0)
|
|||
|
|
{
|
|||
|
|
if (SqlOperationsData.additionCheck(cf) > 0)
|
|||
|
|
{
|
|||
|
|
logList.Clear();
|
|||
|
|
logList.Add(new pmsLog
|
|||
|
|
{
|
|||
|
|
pmsid = pmsid,
|
|||
|
|
app = 1,
|
|||
|
|
Creationtime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
step = 211,
|
|||
|
|
Data = "",
|
|||
|
|
message = "已校验数据,图片路径正确,入住客户已经添加,客房已经开房,房号" + ridname + ",SN:" + sn + ",是否公区:是",
|
|||
|
|
HotelCode = hc,
|
|||
|
|
roomid = ridname
|
|||
|
|
});
|
|||
|
|
logList.Add(new pmsLog
|
|||
|
|
{
|
|||
|
|
pmsid = pmsid,
|
|||
|
|
app = 1,
|
|||
|
|
Creationtime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
step = 212,
|
|||
|
|
Data = "",
|
|||
|
|
message = "无需处理,此房间没有人脸机,房号" + ridname + ",SN:" + sn + ",是否公区:是",
|
|||
|
|
HotelCode = hc,
|
|||
|
|
roomid = ridname
|
|||
|
|
});
|
|||
|
|
SqlSugarBase.Db.Insertable(logList).ExecuteCommand();
|
|||
|
|
|
|||
|
|
result.Status = 200;
|
|||
|
|
result.Message = "添加入住信息成功,房号" + ridname + ",SN:" + sn + ",是否公区:是";
|
|||
|
|
return Json(result);
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
logList.Clear();
|
|||
|
|
logList.Add(new pmsLog
|
|||
|
|
{
|
|||
|
|
pmsid = pmsid,
|
|||
|
|
app = 1,
|
|||
|
|
Creationtime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
step = 213,
|
|||
|
|
Data = "",
|
|||
|
|
message = "已校验数据,图片路径正确,入住客户已经添加,客房开房失败,房号" + ridname + ",SN:" + sn + ",是否公区:是",
|
|||
|
|
HotelCode = hc,
|
|||
|
|
roomid = ridname
|
|||
|
|
});
|
|||
|
|
logList.Add(new pmsLog
|
|||
|
|
{
|
|||
|
|
pmsid = pmsid,
|
|||
|
|
app = 1,
|
|||
|
|
Creationtime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
step = 214,
|
|||
|
|
Data = "",
|
|||
|
|
message = "此房间没有人脸机,但是客房开房失败,房号" + ridname + ",SN:" + sn + ",是否公区:是",
|
|||
|
|
HotelCode = hc,
|
|||
|
|
roomid = ridname
|
|||
|
|
});
|
|||
|
|
SqlSugarBase.Db.Insertable(logList).ExecuteCommand();
|
|||
|
|
|
|||
|
|
result.Status = 400;
|
|||
|
|
result.Message = "添加入住信息失败";
|
|||
|
|
return Json(result);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
logList.Clear();
|
|||
|
|
logList.Add(new pmsLog
|
|||
|
|
{
|
|||
|
|
pmsid = pmsid,
|
|||
|
|
app = 1,
|
|||
|
|
Creationtime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
step = 215,
|
|||
|
|
Data = "",
|
|||
|
|
message = "已校验数据,图片路径正确,入住客户添加失败,房号" + ridname + ",SN:" + sn + ",是否公区:是",
|
|||
|
|
HotelCode = hc,
|
|||
|
|
roomid = ridname
|
|||
|
|
});
|
|||
|
|
logList.Add(new pmsLog
|
|||
|
|
{
|
|||
|
|
pmsid = pmsid,
|
|||
|
|
app = 1,
|
|||
|
|
Creationtime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
step = 216,
|
|||
|
|
Data = "",
|
|||
|
|
message = "此房间没有人脸机,但是入住客户添加失败,房号" + ridname + ",SN:" + sn + ",是否公区:是",
|
|||
|
|
HotelCode = hc,
|
|||
|
|
roomid = ridname
|
|||
|
|
});
|
|||
|
|
SqlSugarBase.Db.Insertable(logList).ExecuteCommand();
|
|||
|
|
|
|||
|
|
result.Status = 300;
|
|||
|
|
result.Message = "添加客户信息失败,房号" + ridname + ",SN:" + sn + ",是否公区:是";
|
|||
|
|
return Json(result);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
//checkin.checkinRoom(data, ci.HotelCode, ci.roomid,sn, tbl_room_basic_info.isPublicArea);
|
|||
|
|
img = ci.picture;
|
|||
|
|
string pictures1 = Down(ci.picture, ci.LodgerNmae + ci.IDNumber + DateTime.Now.ToString("ss fff"));//云端地址转换ftp图片
|
|||
|
|
if (pictures1 == "图片路径错误")
|
|||
|
|
{
|
|||
|
|
logList.Clear();
|
|||
|
|
logList.Add(new pmsLog
|
|||
|
|
{
|
|||
|
|
pmsid = pmsid,
|
|||
|
|
app = 1,
|
|||
|
|
Creationtime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
step = 217,
|
|||
|
|
Data = "",
|
|||
|
|
message = "已校验数据,图片路径错误,房号" + ridname + ",SN:" + sn + ",是否公区:是",
|
|||
|
|
HotelCode = hc,
|
|||
|
|
roomid = ridname
|
|||
|
|
});
|
|||
|
|
logList.Add(new pmsLog
|
|||
|
|
{
|
|||
|
|
pmsid = pmsid,
|
|||
|
|
app = 1,
|
|||
|
|
Creationtime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
step = 218,
|
|||
|
|
Data = "",
|
|||
|
|
message = "无需处理,图片路径错误,房号" + ridname + ",SN:" + sn + ",是否公区:是",
|
|||
|
|
HotelCode = hc,
|
|||
|
|
roomid = ridname
|
|||
|
|
});
|
|||
|
|
SqlSugarBase.Db.Insertable(logList).ExecuteCommand();
|
|||
|
|
|
|||
|
|
result.Status = 50;
|
|||
|
|
result.Message = "图片路径错误,房号" + ridname + ",SN:" + sn + ",是否公区:是";
|
|||
|
|
return Json(result);
|
|||
|
|
}
|
|||
|
|
ci.picture = pictures1;
|
|||
|
|
|
|||
|
|
Lodger lodgers1 = new Lodger
|
|||
|
|
{
|
|||
|
|
CheckInDate = DateTime.Now,
|
|||
|
|
IDNumber = ci.IDNumber,
|
|||
|
|
LodgerNmae = ci.LodgerNmae,
|
|||
|
|
Sex = ci.Sex,
|
|||
|
|
remark = ci.remark,
|
|||
|
|
Sourcedian = 1,
|
|||
|
|
phonenumber = ci.phonenumber
|
|||
|
|
};
|
|||
|
|
CheckInInfo cf2 = new CheckInInfo
|
|||
|
|
{
|
|||
|
|
Name = ci.LodgerNmae,
|
|||
|
|
IdNumber = ci.IDNumber,
|
|||
|
|
picture = ci.picture,
|
|||
|
|
HotelCode = int.Parse(ci.HotelCode),
|
|||
|
|
Roomid = int.Parse(ci.roomid),
|
|||
|
|
InfoSource = 0,
|
|||
|
|
CheckTime = ci.CheckTime,
|
|||
|
|
checkOutTime = Convert.ToDateTime("2000/01/01"),
|
|||
|
|
//checkOutTime = ci.checkOutTime,
|
|||
|
|
CreationTime = DateTime.Now,
|
|||
|
|
};
|
|||
|
|
if (SqlOperationsData.addClient(lodgers1) > 0)
|
|||
|
|
{
|
|||
|
|
if (SqlOperationsData.additionCheck(cf2) > 0)
|
|||
|
|
{
|
|||
|
|
StringBuilder sbperson = new StringBuilder();
|
|||
|
|
sbperson.Append("key=abc");
|
|||
|
|
sbperson.Append("&id=" + ci.IDNumber);
|
|||
|
|
sbperson.Append("&name=" + ci.LodgerNmae);
|
|||
|
|
sbperson.Append("&IC_NO=0001");
|
|||
|
|
sbperson.Append("&ID_NO=" + ci.IDNumber);
|
|||
|
|
sbperson.Append("&photo=<" + img + ">");
|
|||
|
|
sbperson.Append("&startTs=-1");
|
|||
|
|
sbperson.Append("&endTs=-1");
|
|||
|
|
sbperson.Append("&passCount=10000");
|
|||
|
|
//追加酒店id和房间id
|
|||
|
|
sbperson.Append("&HotelID=" + ci.HotelCode);
|
|||
|
|
sbperson.Append("&RoomID=" + ci.roomid);
|
|||
|
|
//协议里面没有的字段是否公区
|
|||
|
|
sbperson.Append("&isPublicArea=1");
|
|||
|
|
Entity.Rootinfo msgx = new Entity.Rootinfo();
|
|||
|
|
List<Entity.Rootinfo> rootinfos = new List<Entity.Rootinfo>();
|
|||
|
|
Entity.msgx ms = new Entity.msgx();
|
|||
|
|
ms.msgid = messageid;
|
|||
|
|
ms.sn = sn;
|
|||
|
|
ms.cmd = "setPerson";
|
|||
|
|
ms.msg = System.Web.HttpUtility.HtmlDecode(sbperson.ToString());
|
|||
|
|
msgx.msgx = ms;
|
|||
|
|
msgx.pmsid = pmsid;
|
|||
|
|
transferFace tf = new transferFace()
|
|||
|
|
{
|
|||
|
|
faceSN = sn,
|
|||
|
|
faultState = 0,
|
|||
|
|
infoid = msgx.msgx.msgid,
|
|||
|
|
creationTime = DateTime.Now
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
SqlSugarBase.Db.Insertable(tf).ExecuteCommand();
|
|||
|
|
rootinfos.Add(msgx);//存储
|
|||
|
|
|
|||
|
|
sendMsg = Newtonsoft.Json.JsonConvert.SerializeObject(msgx);
|
|||
|
|
pmsLog log = null;
|
|||
|
|
if (offLineSend)
|
|||
|
|
{
|
|||
|
|
log = new pmsLog
|
|||
|
|
{
|
|||
|
|
pmsid = pmsid,
|
|||
|
|
app = 1,
|
|||
|
|
Creationtime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
step = 219,
|
|||
|
|
Data = sendMsg,
|
|||
|
|
message = "已校验数据,准备向控制台发送,房号" + ridname + ",SN:" + sn + ",是否公区:是",
|
|||
|
|
HotelCode = hc,
|
|||
|
|
roomid = ridname
|
|||
|
|
};
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
log = new pmsLog
|
|||
|
|
{
|
|||
|
|
pmsid = pmsid,
|
|||
|
|
app = 1,
|
|||
|
|
Creationtime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
step = 220,
|
|||
|
|
Data = sendMsg,
|
|||
|
|
message = "已校验数据,准备向控制台发送,房号" + ridname + ",SN:" + sn + ",是否公区:是",
|
|||
|
|
HotelCode = hc,
|
|||
|
|
roomid = ridname
|
|||
|
|
};
|
|||
|
|
}
|
|||
|
|
SqlSugarBase.Db.Insertable(log).ExecuteCommand();
|
|||
|
|
|
|||
|
|
string infods = UdpCommunication.QueueSend(sendMsg);
|
|||
|
|
|
|||
|
|
log = new pmsLog
|
|||
|
|
{
|
|||
|
|
pmsid = pmsid,
|
|||
|
|
app = 1,
|
|||
|
|
Creationtime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
step = 225,
|
|||
|
|
Data = sendMsg,
|
|||
|
|
message = infods
|
|||
|
|
};
|
|||
|
|
SqlSugarBase.Db.Insertable(log).ExecuteCommand();
|
|||
|
|
|
|||
|
|
|
|||
|
|
Errormessageinfo errorinfo = new Errormessageinfo();
|
|||
|
|
errorinfo.Errormessage(pmsid, log.message);
|
|||
|
|
/*改成MSMQ,消息队列*/
|
|||
|
|
//UdpCommunication.UdpState(sendMsg);//下发数据给控制台
|
|||
|
|
|
|||
|
|
result.Status = 200;
|
|||
|
|
result.Message = "开房成功";
|
|||
|
|
Thread.Sleep(Interval);
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
logList.Clear();
|
|||
|
|
logList.Add(new pmsLog
|
|||
|
|
{
|
|||
|
|
pmsid = pmsid,
|
|||
|
|
app = 1,
|
|||
|
|
Creationtime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
step = 226,
|
|||
|
|
Data = "",
|
|||
|
|
message = "已校验数据,添加入住信息失败,房号" + ridname + ",SN:" + sn + ",是否公区:是",
|
|||
|
|
HotelCode = hc,
|
|||
|
|
roomid = ridname
|
|||
|
|
});
|
|||
|
|
logList.Add(new pmsLog
|
|||
|
|
{
|
|||
|
|
pmsid = pmsid,
|
|||
|
|
app = 1,
|
|||
|
|
Creationtime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
step = 227,
|
|||
|
|
Data = "",
|
|||
|
|
message = "无需处理,添加入住信息失败,房号" + ridname + ",SN:" + sn + ",是否公区:是",
|
|||
|
|
HotelCode = hc,
|
|||
|
|
roomid = ridname
|
|||
|
|
});
|
|||
|
|
SqlSugarBase.Db.Insertable(logList).ExecuteCommand();
|
|||
|
|
|
|||
|
|
result.Status = 400;
|
|||
|
|
result.Message = "添加入住信息失败";
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
logList.Clear();
|
|||
|
|
logList.Add(new pmsLog
|
|||
|
|
{
|
|||
|
|
pmsid = pmsid,
|
|||
|
|
app = 1,
|
|||
|
|
Creationtime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
step = 228,
|
|||
|
|
Data = "",
|
|||
|
|
message = "已校验数据,添加客户信息失败,房号" + ridname + ",SN:" + sn + ",是否公区:是",
|
|||
|
|
HotelCode = hc,
|
|||
|
|
roomid = ridname
|
|||
|
|
});
|
|||
|
|
logList.Add(new pmsLog
|
|||
|
|
{
|
|||
|
|
pmsid = pmsid,
|
|||
|
|
app = 1,
|
|||
|
|
Creationtime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
step = 229,
|
|||
|
|
Data = "",
|
|||
|
|
message = "无需处理,添加客户信息失败,房号" + ridname + ",SN:" + sn + ",是否公区:是",
|
|||
|
|
HotelCode = hc,
|
|||
|
|
roomid = ridname
|
|||
|
|
});
|
|||
|
|
SqlSugarBase.Db.Insertable(logList).ExecuteCommand();
|
|||
|
|
result.Status = 300;
|
|||
|
|
result.Message = "添加客户信息失败";
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
#endregion
|
|||
|
|
}
|
|||
|
|
//不是公区
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
|
|||
|
|
//没有关联公区
|
|||
|
|
if (string.IsNullOrEmpty(tbl_room_basic_info.AssociatedPublicArea))
|
|||
|
|
{
|
|||
|
|
#region 非公区房间下发
|
|||
|
|
sn = SqlOperationsData.selectFace(ci.HotelCode, ci.roomid);//是否有此SN号
|
|||
|
|
DeviceManage device = SqlSugarBase.GesmartDb().Queryable<DeviceManage>().First(x => x.SerialNo == sn);
|
|||
|
|
|
|||
|
|
string Factorys = "";
|
|||
|
|
|
|||
|
|
if (device.Factory == "移海")
|
|||
|
|
{
|
|||
|
|
Factorys = "yh";
|
|||
|
|
}
|
|||
|
|
else if (device.Factory == "实义德")
|
|||
|
|
{
|
|||
|
|
Factorys = "devs";
|
|||
|
|
}
|
|||
|
|
else if (device.Factory == "深圳嘉禾兴")
|
|||
|
|
{
|
|||
|
|
Factorys = "szjhx";
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
Factorys = " ";
|
|||
|
|
}
|
|||
|
|
using (var sex = SqlSugarBase.GesmartDb())
|
|||
|
|
{
|
|||
|
|
///添加pms酒店,房间,sn号,信息索引
|
|||
|
|
pmsInterface pms = new pmsInterface()
|
|||
|
|
{
|
|||
|
|
faceSN = sn,
|
|||
|
|
hotelid = int.Parse(ci.HotelCode),
|
|||
|
|
room = int.Parse(ci.roomid),
|
|||
|
|
messageid = messageid,
|
|||
|
|
pmsId = pmsid
|
|||
|
|
};
|
|||
|
|
SqlOperationsData.revisepms(pms);
|
|||
|
|
//添加人脸机下发表
|
|||
|
|
FaceIssue fi = new FaceIssue()
|
|||
|
|
{
|
|||
|
|
creationtime = DateTime.Now,
|
|||
|
|
faceSn = sn,
|
|||
|
|
issuestate = 0,
|
|||
|
|
messageid = messageid,
|
|||
|
|
picture = ci.picture,
|
|||
|
|
Factory = Factorys,
|
|||
|
|
APKVersion = device.APKVersion
|
|||
|
|
};
|
|||
|
|
//添加到数据库FaceIssue
|
|||
|
|
SqlSugarBase.Db.Insertable(fi).ExecuteCommand();
|
|||
|
|
///修改人脸机下发表
|
|||
|
|
if (messageid != "")
|
|||
|
|
{
|
|||
|
|
string id = pms.pmsId.ToString();
|
|||
|
|
SqlSugarBase.Db.Updateable<FaceIssue>().SetColumns(x => x.pmsid == id).Where(x => x.messageid == messageid).ExecuteCommand();
|
|||
|
|
}
|
|||
|
|
if (sn != "" && sn != "")
|
|||
|
|
{
|
|||
|
|
//有人脸机,但是状态不在线
|
|||
|
|
var sea = sex.Queryable<DeviceManage>().Where(s => s.SerialNo == sn).First(j => j.Status == false);
|
|||
|
|
//if (sea != null)
|
|||
|
|
//{
|
|||
|
|
// logList.Clear();
|
|||
|
|
// logList.Add(new pmsLog
|
|||
|
|
// {
|
|||
|
|
// pmsid = pmsid,
|
|||
|
|
// app = 1,
|
|||
|
|
// Creationtime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
// step = 2,
|
|||
|
|
// Data = "",
|
|||
|
|
// message = $"已校验数据,{sn}号人脸机不在线"
|
|||
|
|
// });
|
|||
|
|
// logList.Add(new pmsLog
|
|||
|
|
// {
|
|||
|
|
// pmsid = pmsid,
|
|||
|
|
// app = 1,
|
|||
|
|
// Creationtime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
// step = 7,
|
|||
|
|
// Data = "",
|
|||
|
|
// message = $"无需处理,{sn}号人脸机不在线"
|
|||
|
|
// });
|
|||
|
|
// SqlSugarBase.Db.Insertable(logList).ExecuteCommand();
|
|||
|
|
|
|||
|
|
|
|||
|
|
// result.Status = 505;
|
|||
|
|
// result.Message = "人脸机不在线";
|
|||
|
|
// SqlOperationsData.preserve(data, ci.HotelCode, ci.roomid, sn, 3, 1);
|
|||
|
|
// return Json(result);
|
|||
|
|
//}
|
|||
|
|
//改为尝试下发
|
|||
|
|
if (sea != null)
|
|||
|
|
{
|
|||
|
|
//虽然不在线,依然尝试下发。
|
|||
|
|
//不要return, 会跳到397行
|
|||
|
|
logList.Clear();
|
|||
|
|
logList.Add(new pmsLog
|
|||
|
|
{
|
|||
|
|
pmsid = pmsid,
|
|||
|
|
app = 1,
|
|||
|
|
Creationtime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
step = 230,
|
|||
|
|
Data = "",
|
|||
|
|
message = $"已校验数据,{sn}号人脸机不在线,但仍然尝试下发,房号" + ridname + ",是否公区:否",
|
|||
|
|
HotelCode = hc,
|
|||
|
|
roomid = ridname
|
|||
|
|
});
|
|||
|
|
SqlSugarBase.Db.Insertable(logList).ExecuteCommand();
|
|||
|
|
|
|||
|
|
offLineSend = true;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
if (sn == null || sn == "")
|
|||
|
|
{
|
|||
|
|
img = ci.picture;
|
|||
|
|
//pictures = Down(ci.picture, DateTime.Now.ToString("yyyy-MM-dd HH-mm-ss fff"));//云端地址转换ftp图片
|
|||
|
|
pictures = Down(ci.picture, ci.LodgerNmae + ci.IDNumber + DateTime.Now.ToString("ss fff"));//云端地址转换ftp图片
|
|||
|
|
|
|||
|
|
if (pictures == "图片路径错误")
|
|||
|
|
{
|
|||
|
|
logList.Clear();
|
|||
|
|
logList.Add(new pmsLog
|
|||
|
|
{
|
|||
|
|
pmsid = pmsid,
|
|||
|
|
app = 1,
|
|||
|
|
Creationtime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
step = 231,
|
|||
|
|
Data = "",
|
|||
|
|
message = "已校验数据,图片路径错误,房号" + ridname + ",SN:" + sn + ",是否公区:否",
|
|||
|
|
HotelCode = hc,
|
|||
|
|
roomid = ridname
|
|||
|
|
});
|
|||
|
|
logList.Add(new pmsLog
|
|||
|
|
{
|
|||
|
|
pmsid = pmsid,
|
|||
|
|
app = 1,
|
|||
|
|
Creationtime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
step = 232,
|
|||
|
|
Data = "",
|
|||
|
|
message = "无需处理,图片路径错误,房号" + ridname + ",SN:" + sn + ",是否公区:否",
|
|||
|
|
HotelCode = hc,
|
|||
|
|
roomid = ridname
|
|||
|
|
});
|
|||
|
|
SqlSugarBase.Db.Insertable(logList).ExecuteCommand();
|
|||
|
|
|
|||
|
|
|
|||
|
|
result.Status = 50;
|
|||
|
|
result.Message = "图片路径错误,房号" + ridname + ",SN:" + sn + ",是否公区:否";
|
|||
|
|
return Json(result);
|
|||
|
|
}
|
|||
|
|
ci.picture = pictures;
|
|||
|
|
Lodger lodgers = new Lodger
|
|||
|
|
{
|
|||
|
|
CheckInDate = DateTime.Now,
|
|||
|
|
IDNumber = ci.IDNumber,
|
|||
|
|
LodgerNmae = ci.LodgerNmae,
|
|||
|
|
Sex = ci.Sex,
|
|||
|
|
remark = ci.remark,
|
|||
|
|
Sourcedian = 1,
|
|||
|
|
phonenumber = ci.phonenumber
|
|||
|
|
};
|
|||
|
|
CheckInInfo cf = new CheckInInfo
|
|||
|
|
{
|
|||
|
|
|
|||
|
|
Name = ci.LodgerNmae,
|
|||
|
|
IdNumber = ci.IDNumber,
|
|||
|
|
picture = ci.picture,
|
|||
|
|
HotelCode = int.Parse(ci.HotelCode),
|
|||
|
|
Roomid = int.Parse(ci.roomid),
|
|||
|
|
InfoSource = 0,
|
|||
|
|
CheckTime = ci.CheckTime,
|
|||
|
|
checkOutTime = Convert.ToDateTime("2000/01/01"),
|
|||
|
|
//checkOutTime =ci.checkOutTime,
|
|||
|
|
CreationTime = DateTime.Now,
|
|||
|
|
};
|
|||
|
|
if (SqlOperationsData.addClient(lodgers) > 0)
|
|||
|
|
{
|
|||
|
|
if (SqlOperationsData.additionCheck(cf) > 0)
|
|||
|
|
{
|
|||
|
|
logList.Clear();
|
|||
|
|
logList.Add(new pmsLog
|
|||
|
|
{
|
|||
|
|
pmsid = pmsid,
|
|||
|
|
app = 1,
|
|||
|
|
Creationtime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
step = 235,
|
|||
|
|
Data = "",
|
|||
|
|
message = "已校验数据,图片路径正确,入住客户已经添加,客房已经开房,房号" + ridname + ",SN:" + sn + ",是否公区:否",
|
|||
|
|
HotelCode = hc,
|
|||
|
|
roomid = ridname
|
|||
|
|
});
|
|||
|
|
logList.Add(new pmsLog
|
|||
|
|
{
|
|||
|
|
pmsid = pmsid,
|
|||
|
|
app = 1,
|
|||
|
|
Creationtime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
step = 236,
|
|||
|
|
Data = "",
|
|||
|
|
message = "无需处理,此房间没有人脸机,房号" + ridname + ",SN:" + sn + ",是否公区:否",
|
|||
|
|
HotelCode = hc,
|
|||
|
|
roomid = ridname
|
|||
|
|
});
|
|||
|
|
SqlSugarBase.Db.Insertable(logList).ExecuteCommand();
|
|||
|
|
|
|||
|
|
result.Status = 200;
|
|||
|
|
result.Message = "添加入住信息成功,房号" + ridname + ",SN:" + sn + ",是否公区:否";
|
|||
|
|
return Json(result);
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
logList.Clear();
|
|||
|
|
logList.Add(new pmsLog
|
|||
|
|
{
|
|||
|
|
pmsid = pmsid,
|
|||
|
|
app = 1,
|
|||
|
|
Creationtime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
step = 237,
|
|||
|
|
Data = "",
|
|||
|
|
message = "已校验数据,图片路径正确,入住客户已经添加,客房开房失败,房号" + ridname + ",SN:" + sn + ",是否公区:否",
|
|||
|
|
HotelCode = hc,
|
|||
|
|
roomid = ridname
|
|||
|
|
});
|
|||
|
|
logList.Add(new pmsLog
|
|||
|
|
{
|
|||
|
|
pmsid = pmsid,
|
|||
|
|
app = 1,
|
|||
|
|
Creationtime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
step = 238,
|
|||
|
|
Data = "",
|
|||
|
|
message = "此房间没有人脸机,但是客房开房失败,房号" + ridname + ",SN:" + sn + ",是否公区:否",
|
|||
|
|
HotelCode = hc,
|
|||
|
|
roomid = ridname
|
|||
|
|
});
|
|||
|
|
SqlSugarBase.Db.Insertable(logList).ExecuteCommand();
|
|||
|
|
|
|||
|
|
result.Status = 400;
|
|||
|
|
result.Message = "添加入住信息失败,房号" + ridname + ",SN:" + sn + ",是否公区:否";
|
|||
|
|
return Json(result);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
logList.Clear();
|
|||
|
|
logList.Add(new pmsLog
|
|||
|
|
{
|
|||
|
|
pmsid = pmsid,
|
|||
|
|
app = 1,
|
|||
|
|
Creationtime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
step = 239,
|
|||
|
|
Data = "",
|
|||
|
|
message = "已校验数据,图片路径正确,入住客户添加失败,房号" + ridname + ",SN:" + sn + ",是否公区:否",
|
|||
|
|
HotelCode = hc,
|
|||
|
|
roomid = ridname
|
|||
|
|
});
|
|||
|
|
logList.Add(new pmsLog
|
|||
|
|
{
|
|||
|
|
pmsid = pmsid,
|
|||
|
|
app = 1,
|
|||
|
|
Creationtime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
step = 240,
|
|||
|
|
Data = "",
|
|||
|
|
message = "此房间没有人脸机,但是入住客户添加失败,房号" + ridname + ",SN:" + sn + ",是否公区:否",
|
|||
|
|
HotelCode = hc,
|
|||
|
|
roomid = ridname
|
|||
|
|
});
|
|||
|
|
SqlSugarBase.Db.Insertable(logList).ExecuteCommand();
|
|||
|
|
|
|||
|
|
result.Status = 300;
|
|||
|
|
result.Message = "添加客户信息失败,房号" + ridname + ",SN:" + sn + ",是否公区:否";
|
|||
|
|
return Json(result);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
img = ci.picture;
|
|||
|
|
string pictures1 = Down(ci.picture, ci.LodgerNmae + ci.IDNumber + DateTime.Now.ToString("ss fff"));//云端地址转换ftp图片
|
|||
|
|
if (pictures1 == "图片路径错误")
|
|||
|
|
{
|
|||
|
|
logList.Clear();
|
|||
|
|
logList.Add(new pmsLog
|
|||
|
|
{
|
|||
|
|
pmsid = pmsid,
|
|||
|
|
app = 1,
|
|||
|
|
Creationtime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
step = 244,
|
|||
|
|
Data = "",
|
|||
|
|
message = "已校验数据,图片路径错误,房号" + ridname + ",SN:" + sn + ",是否公区:否",
|
|||
|
|
HotelCode = hc,
|
|||
|
|
roomid = ridname
|
|||
|
|
});
|
|||
|
|
logList.Add(new pmsLog
|
|||
|
|
{
|
|||
|
|
pmsid = pmsid,
|
|||
|
|
app = 1,
|
|||
|
|
Creationtime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
step = 245,
|
|||
|
|
Data = "",
|
|||
|
|
message = "无需处理,图片路径错误,房号" + ridname + ",SN:" + sn + ",是否公区:否",
|
|||
|
|
HotelCode = hc,
|
|||
|
|
roomid = ridname
|
|||
|
|
});
|
|||
|
|
SqlSugarBase.Db.Insertable(logList).ExecuteCommand();
|
|||
|
|
|
|||
|
|
result.Status = 50;
|
|||
|
|
result.Message = "图片路径错误,房号" + ridname + ",SN:" + sn + ",是否公区:否";
|
|||
|
|
return Json(result);
|
|||
|
|
}
|
|||
|
|
ci.picture = pictures1;
|
|||
|
|
|
|||
|
|
Lodger lodgers1 = new Lodger
|
|||
|
|
{
|
|||
|
|
CheckInDate = DateTime.Now,
|
|||
|
|
IDNumber = ci.IDNumber,
|
|||
|
|
LodgerNmae = ci.LodgerNmae,
|
|||
|
|
Sex = ci.Sex,
|
|||
|
|
remark = ci.remark,
|
|||
|
|
Sourcedian = 1,
|
|||
|
|
phonenumber = ci.phonenumber
|
|||
|
|
};
|
|||
|
|
CheckInInfo cf2 = new CheckInInfo
|
|||
|
|
{
|
|||
|
|
Name = ci.LodgerNmae,
|
|||
|
|
IdNumber = ci.IDNumber,
|
|||
|
|
picture = ci.picture,
|
|||
|
|
HotelCode = int.Parse(ci.HotelCode),
|
|||
|
|
Roomid = int.Parse(ci.roomid),
|
|||
|
|
InfoSource = 0,
|
|||
|
|
CheckTime = ci.CheckTime,
|
|||
|
|
checkOutTime = Convert.ToDateTime("2000/01/01"),
|
|||
|
|
//checkOutTime = ci.checkOutTime,
|
|||
|
|
CreationTime = DateTime.Now,
|
|||
|
|
};
|
|||
|
|
if (SqlOperationsData.addClient(lodgers1) > 0)
|
|||
|
|
{
|
|||
|
|
if (SqlOperationsData.additionCheck(cf2) > 0)
|
|||
|
|
{
|
|||
|
|
StringBuilder sbperson = new StringBuilder();
|
|||
|
|
sbperson.Append("key=abc");
|
|||
|
|
sbperson.Append("&id=" + ci.IDNumber);
|
|||
|
|
sbperson.Append("&name=" + ci.LodgerNmae);
|
|||
|
|
sbperson.Append("&IC_NO=0001");
|
|||
|
|
sbperson.Append("&ID_NO=" + ci.IDNumber);
|
|||
|
|
sbperson.Append("&photo=<" + img + ">");
|
|||
|
|
sbperson.Append("&startTs=-1");
|
|||
|
|
sbperson.Append("&endTs=-1");
|
|||
|
|
sbperson.Append("&passCount=10000");
|
|||
|
|
//追加酒店id和房间id
|
|||
|
|
sbperson.Append("&HotelID=" + ci.HotelCode);
|
|||
|
|
sbperson.Append("&RoomID=" + ci.roomid);
|
|||
|
|
//协议里面没有的字段是否公区
|
|||
|
|
sbperson.Append("&isPublicArea=0");
|
|||
|
|
Entity.Rootinfo msgx = new Entity.Rootinfo();
|
|||
|
|
List<Entity.Rootinfo> rootinfos = new List<Entity.Rootinfo>();
|
|||
|
|
Entity.msgx ms = new Entity.msgx();
|
|||
|
|
ms.msgid = messageid;
|
|||
|
|
ms.sn = sn;
|
|||
|
|
ms.cmd = "setPerson";
|
|||
|
|
ms.msg = System.Web.HttpUtility.HtmlDecode(sbperson.ToString());
|
|||
|
|
msgx.msgx = ms;
|
|||
|
|
msgx.pmsid = pmsid;
|
|||
|
|
transferFace tf = new transferFace()
|
|||
|
|
{
|
|||
|
|
faceSN = sn,
|
|||
|
|
faultState = 0,
|
|||
|
|
infoid = msgx.msgx.msgid,
|
|||
|
|
creationTime = DateTime.Now
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
SqlSugarBase.Db.Insertable(tf).ExecuteCommand();
|
|||
|
|
rootinfos.Add(msgx);//存储
|
|||
|
|
|
|||
|
|
sendMsg = Newtonsoft.Json.JsonConvert.SerializeObject(msgx);
|
|||
|
|
pmsLog log = null;
|
|||
|
|
if (offLineSend)
|
|||
|
|
{
|
|||
|
|
log = new pmsLog
|
|||
|
|
{
|
|||
|
|
pmsid = pmsid,
|
|||
|
|
app = 1,
|
|||
|
|
Creationtime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
step = 246,
|
|||
|
|
Data = sendMsg,
|
|||
|
|
message = "已校验数据,准备向控制台发送,房号" + ridname + ",SN:" + sn + ",是否公区:否",
|
|||
|
|
HotelCode = hc,
|
|||
|
|
roomid = ridname
|
|||
|
|
};
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
log = new pmsLog
|
|||
|
|
{
|
|||
|
|
pmsid = pmsid,
|
|||
|
|
app = 1,
|
|||
|
|
Creationtime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
step = 247,
|
|||
|
|
Data = sendMsg,
|
|||
|
|
message = "已校验数据,准备向控制台发送,房号" + ridname + ",SN:" + sn + ",是否公区:否",
|
|||
|
|
HotelCode = hc,
|
|||
|
|
roomid = ridname
|
|||
|
|
};
|
|||
|
|
}
|
|||
|
|
SqlSugarBase.Db.Insertable(log).ExecuteCommand();
|
|||
|
|
|
|||
|
|
//UdpCommunication.QueueSend(sendMsg);
|
|||
|
|
Errormessageinfo errorinfo = new Errormessageinfo();
|
|||
|
|
errorinfo.Errormessage(pmsid, log.message);
|
|||
|
|
//发送信息给控制台程序
|
|||
|
|
string infods = UdpCommunication.QueueSend(sendMsg);
|
|||
|
|
|
|||
|
|
log = new pmsLog
|
|||
|
|
{
|
|||
|
|
pmsid = pmsid,
|
|||
|
|
app = 1,
|
|||
|
|
Creationtime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
step = 248,
|
|||
|
|
Data = sendMsg,
|
|||
|
|
message = infods
|
|||
|
|
};
|
|||
|
|
SqlSugarBase.Db.Insertable(log).ExecuteCommand();
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
/*改成MSMQ,消息队列*/
|
|||
|
|
//UdpCommunication.UdpState(sendMsg);//下发数据给控制台
|
|||
|
|
|
|||
|
|
result.Status = 200;
|
|||
|
|
result.Message = "开房成功";
|
|||
|
|
Thread.Sleep(Interval);
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
logList.Clear();
|
|||
|
|
logList.Add(new pmsLog
|
|||
|
|
{
|
|||
|
|
pmsid = pmsid,
|
|||
|
|
app = 1,
|
|||
|
|
Creationtime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
step = 249,
|
|||
|
|
Data = "",
|
|||
|
|
message = "已校验数据,添加入住信息失败,房号" + ridname + ",SN:" + sn + ",是否公区:否",
|
|||
|
|
HotelCode = hc,
|
|||
|
|
roomid = ridname
|
|||
|
|
});
|
|||
|
|
logList.Add(new pmsLog
|
|||
|
|
{
|
|||
|
|
pmsid = pmsid,
|
|||
|
|
app = 1,
|
|||
|
|
Creationtime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
step = 251,
|
|||
|
|
Data = "",
|
|||
|
|
message = "无需处理,添加入住信息失败,房号" + ridname + ",SN:" + sn + ",是否公区:否",
|
|||
|
|
HotelCode = hc,
|
|||
|
|
roomid = ridname
|
|||
|
|
});
|
|||
|
|
SqlSugarBase.Db.Insertable(logList).ExecuteCommand();
|
|||
|
|
|
|||
|
|
result.Status = 400;
|
|||
|
|
result.Message = "添加入住信息失败,房号" + ridname + ",SN:" + sn + ",是否公区:否";
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
logList.Clear();
|
|||
|
|
logList.Add(new pmsLog
|
|||
|
|
{
|
|||
|
|
pmsid = pmsid,
|
|||
|
|
app = 1,
|
|||
|
|
Creationtime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
step = 252,
|
|||
|
|
Data = "",
|
|||
|
|
message = "已校验数据,添加客户信息失败,房号" + ridname + ",SN:" + sn + ",是否公区:否",
|
|||
|
|
HotelCode = hc,
|
|||
|
|
roomid = ridname
|
|||
|
|
});
|
|||
|
|
logList.Add(new pmsLog
|
|||
|
|
{
|
|||
|
|
pmsid = pmsid,
|
|||
|
|
app = 1,
|
|||
|
|
Creationtime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
step = 253,
|
|||
|
|
Data = "",
|
|||
|
|
message = "无需处理,添加客户信息失败,房号" + ridname + ",SN:" + sn + ",是否公区:否",
|
|||
|
|
HotelCode = hc,
|
|||
|
|
roomid = ridname
|
|||
|
|
});
|
|||
|
|
SqlSugarBase.Db.Insertable(logList).ExecuteCommand();
|
|||
|
|
result.Status = 300;
|
|||
|
|
result.Message = "添加客户信息失败,房号" + ridname + ",SN:" + sn + ",是否公区:否";
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
#endregion
|
|||
|
|
}
|
|||
|
|
//关联了公区的
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
|
|||
|
|
img = ci.picture;
|
|||
|
|
List<string> ints = new List<string>();
|
|||
|
|
string guanlian = tbl_room_basic_info.AssociatedPublicArea;
|
|||
|
|
string[] arr = guanlian.Split(',');
|
|||
|
|
//ints.Add(ci.roomid);
|
|||
|
|
ints.AddRange(arr);
|
|||
|
|
#region 关联公区的房间,公区下发
|
|||
|
|
for (int i = 0; i < ints.Count(); i++)
|
|||
|
|
{
|
|||
|
|
//根据酒店编号和房间编号查找人脸机编号
|
|||
|
|
sn = SqlOperationsData.selectFace(ci.HotelCode, ints[i]);//是否有此SN号
|
|||
|
|
DeviceManage deviced = SqlSugarBase.GesmartDb().Queryable<DeviceManage>().First(x => x.SerialNo == sn);
|
|||
|
|
tbl_room_basic_info tbl = SqlSugarBase.Gesmartblv_rcu_db().Queryable<tbl_room_basic_info>().First(x => x.IsDel == 0 && x.ROOM_OLD_ID == int.Parse(ints[i]));
|
|||
|
|
string Factorysd = "";
|
|||
|
|
if (deviced != null)
|
|||
|
|
{
|
|||
|
|
if (deviced.Factory == "移海")
|
|||
|
|
{
|
|||
|
|
Factorysd = "yh";
|
|||
|
|
}
|
|||
|
|
else if (deviced.Factory == "实义德")
|
|||
|
|
{
|
|||
|
|
Factorysd = "devs";
|
|||
|
|
}
|
|||
|
|
else if (deviced.Factory == "深圳嘉禾兴")
|
|||
|
|
{
|
|||
|
|
Factorysd = "szjhx";
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
Factorysd = " ";
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
using (var sex = SqlSugarBase.GesmartDb())
|
|||
|
|
{
|
|||
|
|
///添加pms酒店,房间,sn号,信息索引
|
|||
|
|
pmsInterface pms = new pmsInterface()
|
|||
|
|
{
|
|||
|
|
faceSN = sn,
|
|||
|
|
hotelid = int.Parse(ci.HotelCode),
|
|||
|
|
room = int.Parse(ints[i]),
|
|||
|
|
messageid = messageid,
|
|||
|
|
pmsId = pmsid
|
|||
|
|
};
|
|||
|
|
SqlOperationsData.revisepms(pms);
|
|||
|
|
//添加人脸机下发表
|
|||
|
|
FaceIssue fi = new FaceIssue()
|
|||
|
|
{
|
|||
|
|
creationtime = DateTime.Now,
|
|||
|
|
faceSn = sn,
|
|||
|
|
issuestate = 0,
|
|||
|
|
messageid = messageid,
|
|||
|
|
picture = ci.picture,
|
|||
|
|
Factory = Factorysd,
|
|||
|
|
APKVersion = deviced.APKVersion
|
|||
|
|
};
|
|||
|
|
//添加到数据库FaceIssue
|
|||
|
|
SqlSugarBase.Db.Insertable(fi).ExecuteCommand();
|
|||
|
|
///修改人脸机下发表
|
|||
|
|
if (messageid != "")
|
|||
|
|
{
|
|||
|
|
string id = pms.pmsId.ToString();
|
|||
|
|
SqlSugarBase.Db.Updateable<FaceIssue>().SetColumns(x => x.pmsid == id).Where(x => x.messageid == messageid).ExecuteCommand();
|
|||
|
|
}
|
|||
|
|
if (sn != "" && sn != "")
|
|||
|
|
{
|
|||
|
|
//有人脸机,但是状态不在线
|
|||
|
|
var sea = sex.Queryable<DeviceManage>().Where(s => s.SerialNo == sn).First(j => j.Status == false);
|
|||
|
|
|
|||
|
|
//改为尝试下发
|
|||
|
|
if (sea != null)
|
|||
|
|
{
|
|||
|
|
//虽然不在线,依然尝试下发。
|
|||
|
|
//不要return, 会跳到397行
|
|||
|
|
logList.Clear();
|
|||
|
|
logList.Add(new pmsLog
|
|||
|
|
{
|
|||
|
|
pmsid = pmsid,
|
|||
|
|
app = 1,
|
|||
|
|
Creationtime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
step = 254,
|
|||
|
|
Data = "",
|
|||
|
|
message = $"已校验数据,{sn}号人脸机不在线,但仍然尝试下发,房号" + tbl.ROOM_NUMBER + ",是否公区:是",
|
|||
|
|
HotelCode = hc,
|
|||
|
|
roomid = tbl.ROOM_NUMBER
|
|||
|
|
});
|
|||
|
|
SqlSugarBase.Db.Insertable(logList).ExecuteCommand();
|
|||
|
|
|
|||
|
|
offLineSend = true;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
if (sn == null || sn == "")
|
|||
|
|
{
|
|||
|
|
//img = ci.picture;
|
|||
|
|
//pictures = Down(ci.picture, DateTime.Now.ToString("yyyy-MM-dd HH-mm-ss fff"));//云端地址转换ftp图片
|
|||
|
|
pictures = Down(img, ci.LodgerNmae + ci.IDNumber + DateTime.Now.ToString("ss fff"));//云端地址转换ftp图片
|
|||
|
|
|
|||
|
|
if (pictures == "图片路径错误")
|
|||
|
|
{
|
|||
|
|
logList.Clear();
|
|||
|
|
logList.Add(new pmsLog
|
|||
|
|
{
|
|||
|
|
pmsid = pmsid,
|
|||
|
|
app = 1,
|
|||
|
|
Creationtime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
step = 255,
|
|||
|
|
Data = "",
|
|||
|
|
message = "已校验数据,图片路径错误,房号" + tbl.ROOM_NUMBER + ",SN:" + sn + ",是否公区:是",
|
|||
|
|
HotelCode = hc,
|
|||
|
|
roomid = tbl.ROOM_NUMBER
|
|||
|
|
});
|
|||
|
|
logList.Add(new pmsLog
|
|||
|
|
{
|
|||
|
|
pmsid = pmsid,
|
|||
|
|
app = 1,
|
|||
|
|
Creationtime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
step = 256,
|
|||
|
|
Data = "",
|
|||
|
|
message = "无需处理,图片路径错误,房号" + tbl.ROOM_NUMBER + ",SN:" + sn + ",是否公区:是",
|
|||
|
|
HotelCode = hc,
|
|||
|
|
roomid = tbl.ROOM_NUMBER
|
|||
|
|
});
|
|||
|
|
SqlSugarBase.Db.Insertable(logList).ExecuteCommand();
|
|||
|
|
|
|||
|
|
|
|||
|
|
result.Status = 50;
|
|||
|
|
result.Message = "图片路径错误,房号" + tbl.ROOM_NUMBER + ",SN:" + sn + ",是否公区:是";
|
|||
|
|
return Json(result);
|
|||
|
|
}
|
|||
|
|
ci.picture = pictures;
|
|||
|
|
Lodger lodgers = new Lodger
|
|||
|
|
{
|
|||
|
|
CheckInDate = DateTime.Now,
|
|||
|
|
IDNumber = ci.IDNumber,
|
|||
|
|
LodgerNmae = ci.LodgerNmae,
|
|||
|
|
Sex = ci.Sex,
|
|||
|
|
remark = ci.remark,
|
|||
|
|
Sourcedian = 1,
|
|||
|
|
phonenumber = ci.phonenumber
|
|||
|
|
};
|
|||
|
|
CheckInInfo cf = new CheckInInfo
|
|||
|
|
{
|
|||
|
|
|
|||
|
|
Name = ci.LodgerNmae,
|
|||
|
|
IdNumber = ci.IDNumber,
|
|||
|
|
picture = ci.picture,
|
|||
|
|
HotelCode = int.Parse(ci.HotelCode),
|
|||
|
|
Roomid = int.Parse(ci.roomid),
|
|||
|
|
InfoSource = 0,
|
|||
|
|
CheckTime = ci.CheckTime,
|
|||
|
|
//checkOutTime = Convert.ToDateTime("2000/01/01"),
|
|||
|
|
checkOutTime = ci.checkOutTime,
|
|||
|
|
CreationTime = DateTime.Now,
|
|||
|
|
};
|
|||
|
|
if (SqlOperationsData.addClient(lodgers) > 0)
|
|||
|
|
{
|
|||
|
|
if (SqlOperationsData.additionCheck(cf) > 0)
|
|||
|
|
{
|
|||
|
|
logList.Clear();
|
|||
|
|
logList.Add(new pmsLog
|
|||
|
|
{
|
|||
|
|
pmsid = pmsid,
|
|||
|
|
app = 1,
|
|||
|
|
Creationtime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
step = 257,
|
|||
|
|
Data = "",
|
|||
|
|
message = "已校验数据,图片路径正确,入住客户已经添加,客房已经开房,房号" + tbl.ROOM_NUMBER + ",SN:" + sn + ",是否公区:是",
|
|||
|
|
HotelCode = hc,
|
|||
|
|
roomid = tbl.ROOM_NUMBER
|
|||
|
|
});
|
|||
|
|
logList.Add(new pmsLog
|
|||
|
|
{
|
|||
|
|
pmsid = pmsid,
|
|||
|
|
app = 1,
|
|||
|
|
Creationtime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
step = 258,
|
|||
|
|
Data = "",
|
|||
|
|
message = "无需处理,此房间没有人脸机,房号" + tbl.ROOM_NUMBER + ",SN:" + sn + ",是否公区:是",
|
|||
|
|
HotelCode = hc,
|
|||
|
|
roomid = tbl.ROOM_NUMBER
|
|||
|
|
});
|
|||
|
|
SqlSugarBase.Db.Insertable(logList).ExecuteCommand();
|
|||
|
|
|
|||
|
|
result.Status = 200;
|
|||
|
|
result.Message = "添加入住信息成功";
|
|||
|
|
return Json(result);
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
logList.Clear();
|
|||
|
|
logList.Add(new pmsLog
|
|||
|
|
{
|
|||
|
|
pmsid = pmsid,
|
|||
|
|
app = 1,
|
|||
|
|
Creationtime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
step = 259,
|
|||
|
|
Data = "",
|
|||
|
|
message = "已校验数据,图片路径正确,入住客户已经添加,客房开房失败,房号" + tbl.ROOM_NUMBER + ",SN:" + sn + ",是否公区:是",
|
|||
|
|
HotelCode = hc,
|
|||
|
|
roomid = tbl.ROOM_NUMBER
|
|||
|
|
});
|
|||
|
|
logList.Add(new pmsLog
|
|||
|
|
{
|
|||
|
|
pmsid = pmsid,
|
|||
|
|
app = 1,
|
|||
|
|
Creationtime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
step = 260,
|
|||
|
|
Data = "",
|
|||
|
|
message = "此房间没有人脸机,但是客房开房失败,房号" + tbl.ROOM_NUMBER + ",SN:" + sn + ",是否公区:是",
|
|||
|
|
HotelCode = hc,
|
|||
|
|
roomid = tbl.ROOM_NUMBER
|
|||
|
|
});
|
|||
|
|
SqlSugarBase.Db.Insertable(logList).ExecuteCommand();
|
|||
|
|
|
|||
|
|
result.Status = 400;
|
|||
|
|
result.Message = "添加入住信息失败";
|
|||
|
|
return Json(result);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
logList.Clear();
|
|||
|
|
logList.Add(new pmsLog
|
|||
|
|
{
|
|||
|
|
pmsid = pmsid,
|
|||
|
|
app = 1,
|
|||
|
|
Creationtime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
step = 261,
|
|||
|
|
Data = "",
|
|||
|
|
message = "已校验数据,图片路径正确,入住客户添加失败,房号" + tbl.ROOM_NUMBER + ",SN:" + sn + ",是否公区:是",
|
|||
|
|
HotelCode = hc,
|
|||
|
|
roomid = tbl.ROOM_NUMBER
|
|||
|
|
});
|
|||
|
|
logList.Add(new pmsLog
|
|||
|
|
{
|
|||
|
|
pmsid = pmsid,
|
|||
|
|
app = 1,
|
|||
|
|
Creationtime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
step = 262,
|
|||
|
|
Data = "",
|
|||
|
|
message = "此房间没有人脸机,但是入住客户添加失败,房号" + tbl.ROOM_NUMBER + ",SN:" + sn + ",是否公区:是",
|
|||
|
|
HotelCode = hc,
|
|||
|
|
roomid = tbl.ROOM_NUMBER
|
|||
|
|
});
|
|||
|
|
SqlSugarBase.Db.Insertable(logList).ExecuteCommand();
|
|||
|
|
|
|||
|
|
result.Status = 300;
|
|||
|
|
result.Message = "添加客户信息失败,房号" + tbl.ROOM_NUMBER + ",SN:" + sn + ",是否公区:是";
|
|||
|
|
return Json(result);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
//img = ci.picture;
|
|||
|
|
string pictures1 = Down(img, ci.LodgerNmae + ci.IDNumber + DateTime.Now.ToString("ss fff"));//云端地址转换ftp图片
|
|||
|
|
if (pictures1 == "图片路径错误")
|
|||
|
|
{
|
|||
|
|
logList.Clear();
|
|||
|
|
logList.Add(new pmsLog
|
|||
|
|
{
|
|||
|
|
pmsid = pmsid,
|
|||
|
|
app = 1,
|
|||
|
|
Creationtime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
step = 263,
|
|||
|
|
Data = "",
|
|||
|
|
message = "已校验数据,图片路径错误,房号" + tbl.ROOM_NUMBER + ",SN:" + sn + ",是否公区:是",
|
|||
|
|
|
|||
|
|
HotelCode = hc,
|
|||
|
|
roomid = tbl.ROOM_NUMBER
|
|||
|
|
});
|
|||
|
|
logList.Add(new pmsLog
|
|||
|
|
{
|
|||
|
|
pmsid = pmsid,
|
|||
|
|
app = 1,
|
|||
|
|
Creationtime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
step = 264,
|
|||
|
|
Data = "",
|
|||
|
|
message = "无需处理,图片路径错误,房号" + tbl.ROOM_NUMBER + ",SN:" + sn + ",是否公区:是",
|
|||
|
|
|
|||
|
|
HotelCode = hc,
|
|||
|
|
roomid = tbl.ROOM_NUMBER
|
|||
|
|
});
|
|||
|
|
SqlSugarBase.Db.Insertable(logList).ExecuteCommand();
|
|||
|
|
|
|||
|
|
result.Status = 50;
|
|||
|
|
result.Message = "图片路径错误,房号" + tbl.ROOM_NUMBER + ",SN:" + sn + ",是否公区:是";
|
|||
|
|
return Json(result);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
ci.picture = pictures1;
|
|||
|
|
|
|||
|
|
Lodger lodgers1 = new Lodger
|
|||
|
|
{
|
|||
|
|
CheckInDate = DateTime.Now,
|
|||
|
|
IDNumber = ci.IDNumber,
|
|||
|
|
LodgerNmae = ci.LodgerNmae,
|
|||
|
|
Sex = ci.Sex,
|
|||
|
|
remark = ci.remark,
|
|||
|
|
Sourcedian = 1,
|
|||
|
|
phonenumber = ci.phonenumber
|
|||
|
|
};
|
|||
|
|
CheckInInfo cf2 = new CheckInInfo
|
|||
|
|
{
|
|||
|
|
Name = ci.LodgerNmae,
|
|||
|
|
IdNumber = ci.IDNumber,
|
|||
|
|
picture = ci.picture,
|
|||
|
|
HotelCode = int.Parse(ci.HotelCode),
|
|||
|
|
Roomid = int.Parse(ci.roomid),
|
|||
|
|
InfoSource = 0,
|
|||
|
|
CheckTime = ci.CheckTime,
|
|||
|
|
//checkOutTime = Convert.ToDateTime("2000/01/01"),
|
|||
|
|
checkOutTime = ci.checkOutTime,
|
|||
|
|
CreationTime = DateTime.Now,
|
|||
|
|
};
|
|||
|
|
if (SqlOperationsData.addClient(lodgers1) > 0)
|
|||
|
|
{
|
|||
|
|
if (SqlOperationsData.additionCheck(cf2) > 0)
|
|||
|
|
{
|
|||
|
|
//Thread revT = new Thread(IssueFacemachine);
|
|||
|
|
//ti.roomid = ints[i];
|
|||
|
|
//ti.IDNumber = ci.IDNumber;
|
|||
|
|
//ti.LodgerNmae = ci.LodgerNmae;
|
|||
|
|
//ti.IDNumber = ci.IDNumber;
|
|||
|
|
//ti.picture = img;
|
|||
|
|
//ti.HotelCode= ci.HotelCode;
|
|||
|
|
//ti.offLineSend = offLineSend;
|
|||
|
|
//ti.pmsid = pmsid;
|
|||
|
|
//ti.SN = sn;
|
|||
|
|
//ti.messageid = messageid;
|
|||
|
|
//revT.Start(ti);
|
|||
|
|
StringBuilder sbperson = new StringBuilder();
|
|||
|
|
sbperson.Append("key=abc");
|
|||
|
|
sbperson.Append("&id=" + ci.IDNumber);
|
|||
|
|
sbperson.Append("&name=" + ci.LodgerNmae);
|
|||
|
|
sbperson.Append("&IC_NO=0001");
|
|||
|
|
sbperson.Append("&ID_NO=" + ci.IDNumber);
|
|||
|
|
sbperson.Append("&photo=<" + img + ">");
|
|||
|
|
sbperson.Append("&startTs=" + ci.CheckTime);
|
|||
|
|
sbperson.Append("&endTs=" + ci.checkOutTime);
|
|||
|
|
sbperson.Append("&passCount=10000");
|
|||
|
|
//追加酒店id和房间id
|
|||
|
|
sbperson.Append("&HotelID=" + ci.HotelCode);
|
|||
|
|
sbperson.Append("&RoomID=" + ints[i]);
|
|||
|
|
//协议里面没有的字段是否公区
|
|||
|
|
sbperson.Append("&isPublicArea=1");
|
|||
|
|
//sbperson.Append("&Groupid=" + ci.Groupid);
|
|||
|
|
|
|||
|
|
Entity.Rootinfo msgx = new Entity.Rootinfo();
|
|||
|
|
List<Entity.Rootinfo> rootinfos = new List<Entity.Rootinfo>();
|
|||
|
|
Entity.msgx ms = new Entity.msgx();
|
|||
|
|
ms.msgid = messageid;
|
|||
|
|
ms.sn = sn;
|
|||
|
|
ms.cmd = "setPerson";
|
|||
|
|
ms.msg = System.Web.HttpUtility.HtmlDecode(sbperson.ToString());
|
|||
|
|
msgx.msgx = ms;
|
|||
|
|
msgx.pmsid = pmsid;
|
|||
|
|
transferFace tf = new transferFace()
|
|||
|
|
{
|
|||
|
|
faceSN = sn,
|
|||
|
|
faultState = 0,
|
|||
|
|
infoid = msgx.msgx.msgid,
|
|||
|
|
creationTime = DateTime.Now
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
SqlSugarBase.Db.Insertable(tf).ExecuteCommand();
|
|||
|
|
rootinfos.Add(msgx);//存储
|
|||
|
|
|
|||
|
|
sendMsg = Newtonsoft.Json.JsonConvert.SerializeObject(msgx);
|
|||
|
|
pmsLog log = null;
|
|||
|
|
if (offLineSend)
|
|||
|
|
{
|
|||
|
|
log = new pmsLog
|
|||
|
|
{
|
|||
|
|
pmsid = pmsid,
|
|||
|
|
app = 1,
|
|||
|
|
Creationtime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
step = 265,
|
|||
|
|
Data = sendMsg,
|
|||
|
|
message = "已校验数据,准备向控制台发送,房号" + tbl.ROOM_NUMBER + ",SN:" + sn + ",是否公区:是",
|
|||
|
|
HotelCode = hc,
|
|||
|
|
roomid = tbl.ROOM_NUMBER
|
|||
|
|
};
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
log = new pmsLog
|
|||
|
|
{
|
|||
|
|
pmsid = pmsid,
|
|||
|
|
app = 1,
|
|||
|
|
Creationtime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
step = 266,
|
|||
|
|
Data = sendMsg,
|
|||
|
|
message = "已校验数据,准备向控制台发送,房号" + tbl.ROOM_NUMBER + ",SN:" + sn + ",是否公区:是",
|
|||
|
|
HotelCode = hc,
|
|||
|
|
roomid = tbl.ROOM_NUMBER
|
|||
|
|
};
|
|||
|
|
}
|
|||
|
|
SqlSugarBase.Db.Insertable(log).ExecuteCommand();
|
|||
|
|
|
|||
|
|
string infos = UdpCommunication.QueueSend(sendMsg);
|
|||
|
|
|
|||
|
|
log = new pmsLog
|
|||
|
|
{
|
|||
|
|
pmsid = pmsid,
|
|||
|
|
app = 1,
|
|||
|
|
Creationtime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
step = 267,
|
|||
|
|
Data = sendMsg,
|
|||
|
|
message = infos,
|
|||
|
|
HotelCode = hc,
|
|||
|
|
roomid = tbl.ROOM_NUMBER
|
|||
|
|
};
|
|||
|
|
SqlSugarBase.Db.Insertable(log).ExecuteCommand();
|
|||
|
|
Errormessageinfo errorinfo = new Errormessageinfo();
|
|||
|
|
errorinfo.Errormessage(pmsid, log.message);
|
|||
|
|
/*改成MSMQ,消息队列*/
|
|||
|
|
//UdpCommunication.UdpState(sendMsg);//下发数据给控制台
|
|||
|
|
|
|||
|
|
result.Status = 200;
|
|||
|
|
result.Message = "开房成功";
|
|||
|
|
Thread.Sleep(Interval);
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
logList.Clear();
|
|||
|
|
logList.Add(new pmsLog
|
|||
|
|
{
|
|||
|
|
pmsid = pmsid,
|
|||
|
|
app = 1,
|
|||
|
|
Creationtime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
step = 268,
|
|||
|
|
Data = "",
|
|||
|
|
message = "已校验数据,添加入住信息失败,房号" + tbl.ROOM_NUMBER + ",SN:" + sn + ",是否公区:是",
|
|||
|
|
HotelCode = hc,
|
|||
|
|
roomid = tbl.ROOM_NUMBER
|
|||
|
|
});
|
|||
|
|
logList.Add(new pmsLog
|
|||
|
|
{
|
|||
|
|
pmsid = pmsid,
|
|||
|
|
app = 1,
|
|||
|
|
Creationtime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
step = 269,
|
|||
|
|
Data = "",
|
|||
|
|
message = "无需处理,添加入住信息失败,房号" + tbl.ROOM_NUMBER + ",SN:" + sn + ",是否公区:是",
|
|||
|
|
HotelCode = hc,
|
|||
|
|
roomid = tbl.ROOM_NUMBER
|
|||
|
|
});
|
|||
|
|
SqlSugarBase.Db.Insertable(logList).ExecuteCommand();
|
|||
|
|
|
|||
|
|
result.Status = 400;
|
|||
|
|
result.Message = "添加入住信息失败,房号" + tbl.ROOM_NUMBER + ",SN:" + sn + ",是否公区:是";
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
logList.Clear();
|
|||
|
|
logList.Add(new pmsLog
|
|||
|
|
{
|
|||
|
|
pmsid = pmsid,
|
|||
|
|
app = 1,
|
|||
|
|
Creationtime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
step = 270,
|
|||
|
|
Data = "",
|
|||
|
|
message = "已校验数据,添加客户信息失败,房号" + tbl.ROOM_NUMBER + ",SN:" + sn + ",是否公区:是",
|
|||
|
|
HotelCode = hc,
|
|||
|
|
roomid = tbl.ROOM_NUMBER
|
|||
|
|
});
|
|||
|
|
logList.Add(new pmsLog
|
|||
|
|
{
|
|||
|
|
pmsid = pmsid,
|
|||
|
|
app = 1,
|
|||
|
|
Creationtime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
step = 271,
|
|||
|
|
Data = "",
|
|||
|
|
message = "无需处理,添加客户信息失败,房号" + tbl.ROOM_NUMBER + ",SN:" + sn + ",是否公区:是",
|
|||
|
|
HotelCode = hc,
|
|||
|
|
roomid = tbl.ROOM_NUMBER
|
|||
|
|
});
|
|||
|
|
SqlSugarBase.Db.Insertable(logList).ExecuteCommand();
|
|||
|
|
result.Status = 300;
|
|||
|
|
result.Message = "添加客户信息失败,房号" + tbl.ROOM_NUMBER + ",SN:" + sn + ",是否公区:是";
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
#endregion
|
|||
|
|
|
|||
|
|
#region 关联公区的房间,非公区下发
|
|||
|
|
sn = SqlOperationsData.selectFace(ci.HotelCode, ci.roomid);//是否有此SN号
|
|||
|
|
DeviceManage device = SqlSugarBase.GesmartDb().Queryable<DeviceManage>().First(x => x.SerialNo == sn);
|
|||
|
|
|
|||
|
|
string Factorys = "";
|
|||
|
|
|
|||
|
|
if (device.Factory == "移海")
|
|||
|
|
{
|
|||
|
|
Factorys = "yh";
|
|||
|
|
}
|
|||
|
|
else if (device.Factory == "实义德")
|
|||
|
|
{
|
|||
|
|
Factorys = "devs";
|
|||
|
|
}
|
|||
|
|
else if (device.Factory == "深圳嘉禾兴")
|
|||
|
|
{
|
|||
|
|
Factorys = "szjhx";
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
Factorys = " ";
|
|||
|
|
}
|
|||
|
|
using (var sex = SqlSugarBase.GesmartDb())
|
|||
|
|
{
|
|||
|
|
///添加pms酒店,房间,sn号,信息索引
|
|||
|
|
pmsInterface pms = new pmsInterface()
|
|||
|
|
{
|
|||
|
|
faceSN = sn,
|
|||
|
|
hotelid = int.Parse(ci.HotelCode),
|
|||
|
|
room = int.Parse(ci.roomid),
|
|||
|
|
messageid = messageid,
|
|||
|
|
pmsId = pmsid
|
|||
|
|
};
|
|||
|
|
SqlOperationsData.revisepms(pms);
|
|||
|
|
//添加人脸机下发表
|
|||
|
|
FaceIssue fi = new FaceIssue()
|
|||
|
|
{
|
|||
|
|
creationtime = DateTime.Now,
|
|||
|
|
faceSn = sn,
|
|||
|
|
issuestate = 0,
|
|||
|
|
messageid = messageid,
|
|||
|
|
picture = ci.picture,
|
|||
|
|
Factory = Factorys,
|
|||
|
|
APKVersion = device.APKVersion
|
|||
|
|
};
|
|||
|
|
//添加到数据库FaceIssue
|
|||
|
|
SqlSugarBase.Db.Insertable(fi).ExecuteCommand();
|
|||
|
|
///修改人脸机下发表
|
|||
|
|
if (messageid != "")
|
|||
|
|
{
|
|||
|
|
string id = pms.pmsId.ToString();
|
|||
|
|
SqlSugarBase.Db.Updateable<FaceIssue>().SetColumns(x => x.pmsid == id).Where(x => x.messageid == messageid).ExecuteCommand();
|
|||
|
|
}
|
|||
|
|
if (sn != "" && sn != "")
|
|||
|
|
{
|
|||
|
|
//有人脸机,但是状态不在线
|
|||
|
|
var sea = sex.Queryable<DeviceManage>().Where(s => s.SerialNo == sn).First(j => j.Status == false);
|
|||
|
|
//if (sea != null)
|
|||
|
|
//{
|
|||
|
|
// logList.Clear();
|
|||
|
|
// logList.Add(new pmsLog
|
|||
|
|
// {
|
|||
|
|
// pmsid = pmsid,
|
|||
|
|
// app = 1,
|
|||
|
|
// Creationtime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
// step = 2,
|
|||
|
|
// Data = "",
|
|||
|
|
// message = $"已校验数据,{sn}号人脸机不在线"
|
|||
|
|
// });
|
|||
|
|
// logList.Add(new pmsLog
|
|||
|
|
// {
|
|||
|
|
// pmsid = pmsid,
|
|||
|
|
// app = 1,
|
|||
|
|
// Creationtime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
// step = 7,
|
|||
|
|
// Data = "",
|
|||
|
|
// message = $"无需处理,{sn}号人脸机不在线"
|
|||
|
|
// });
|
|||
|
|
// SqlSugarBase.Db.Insertable(logList).ExecuteCommand();
|
|||
|
|
|
|||
|
|
|
|||
|
|
// result.Status = 505;
|
|||
|
|
// result.Message = "人脸机不在线";
|
|||
|
|
// SqlOperationsData.preserve(data, ci.HotelCode, ci.roomid, sn, 3, 1);
|
|||
|
|
// return Json(result);
|
|||
|
|
//}
|
|||
|
|
//改为尝试下发
|
|||
|
|
if (sea != null)
|
|||
|
|
{
|
|||
|
|
//虽然不在线,依然尝试下发。
|
|||
|
|
//不要return, 会跳到397行
|
|||
|
|
logList.Clear();
|
|||
|
|
logList.Add(new pmsLog
|
|||
|
|
{
|
|||
|
|
pmsid = pmsid,
|
|||
|
|
app = 1,
|
|||
|
|
Creationtime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
step = 272,
|
|||
|
|
Data = "",
|
|||
|
|
message = $"已校验数据,{sn}号人脸机不在线,但仍然尝试下发,房号" + ridname + ",是否公区:否",
|
|||
|
|
HotelCode = hc,
|
|||
|
|
roomid = ridname
|
|||
|
|
});
|
|||
|
|
SqlSugarBase.Db.Insertable(logList).ExecuteCommand();
|
|||
|
|
|
|||
|
|
offLineSend = true;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
if (sn == null || sn == "")
|
|||
|
|
{
|
|||
|
|
//img = ci.picture;
|
|||
|
|
//pictures = Down(ci.picture, DateTime.Now.ToString("yyyy-MM-dd HH-mm-ss fff"));//云端地址转换ftp图片
|
|||
|
|
pictures = Down(img, ci.LodgerNmae + ci.IDNumber + DateTime.Now.ToString("ss fff"));//云端地址转换ftp图片
|
|||
|
|
|
|||
|
|
if (pictures == "图片路径错误")
|
|||
|
|
{
|
|||
|
|
logList.Clear();
|
|||
|
|
logList.Add(new pmsLog
|
|||
|
|
{
|
|||
|
|
pmsid = pmsid,
|
|||
|
|
app = 1,
|
|||
|
|
Creationtime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
step = 273,
|
|||
|
|
Data = "",
|
|||
|
|
message = "已校验数据,图片路径错误,房号" + ridname + ",SN:" + sn + ",是否公区:否",
|
|||
|
|
HotelCode = hc,
|
|||
|
|
roomid = ridname
|
|||
|
|
});
|
|||
|
|
logList.Add(new pmsLog
|
|||
|
|
{
|
|||
|
|
pmsid = pmsid,
|
|||
|
|
app = 1,
|
|||
|
|
Creationtime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
step = 274,
|
|||
|
|
Data = "",
|
|||
|
|
message = "无需处理,图片路径错误,房号" + ridname + ",SN:" + sn + ",是否公区:否",
|
|||
|
|
HotelCode = hc,
|
|||
|
|
roomid = ridname
|
|||
|
|
});
|
|||
|
|
SqlSugarBase.Db.Insertable(logList).ExecuteCommand();
|
|||
|
|
|
|||
|
|
|
|||
|
|
result.Status = 50;
|
|||
|
|
result.Message = "图片路径错误,房号" + ridname + ",SN:" + sn + ",是否公区:否";
|
|||
|
|
return Json(result);
|
|||
|
|
}
|
|||
|
|
ci.picture = pictures;
|
|||
|
|
Lodger lodgers = new Lodger
|
|||
|
|
{
|
|||
|
|
CheckInDate = DateTime.Now,
|
|||
|
|
IDNumber = ci.IDNumber,
|
|||
|
|
LodgerNmae = ci.LodgerNmae,
|
|||
|
|
Sex = ci.Sex,
|
|||
|
|
remark = ci.remark,
|
|||
|
|
Sourcedian = 1,
|
|||
|
|
phonenumber = ci.phonenumber
|
|||
|
|
};
|
|||
|
|
CheckInInfo cf = new CheckInInfo
|
|||
|
|
{
|
|||
|
|
|
|||
|
|
Name = ci.LodgerNmae,
|
|||
|
|
IdNumber = ci.IDNumber,
|
|||
|
|
picture = ci.picture,
|
|||
|
|
HotelCode = int.Parse(ci.HotelCode),
|
|||
|
|
Roomid = int.Parse(ci.roomid),
|
|||
|
|
InfoSource = 0,
|
|||
|
|
CheckTime = ci.CheckTime,
|
|||
|
|
checkOutTime = Convert.ToDateTime("2000/01/01"),
|
|||
|
|
//checkOutTime = ci.checkOutTime,
|
|||
|
|
CreationTime = DateTime.Now,
|
|||
|
|
};
|
|||
|
|
if (SqlOperationsData.addClient(lodgers) > 0)
|
|||
|
|
{
|
|||
|
|
if (SqlOperationsData.additionCheck(cf) > 0)
|
|||
|
|
{
|
|||
|
|
logList.Clear();
|
|||
|
|
logList.Add(new pmsLog
|
|||
|
|
{
|
|||
|
|
pmsid = pmsid,
|
|||
|
|
app = 1,
|
|||
|
|
Creationtime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
step = 275,
|
|||
|
|
Data = "",
|
|||
|
|
message = "已校验数据,图片路径正确,入住客户已经添加,客房已经开房,房号" + ridname + ",SN:" + sn + ",是否公区:否",
|
|||
|
|
HotelCode = hc,
|
|||
|
|
roomid = ridname
|
|||
|
|
});
|
|||
|
|
logList.Add(new pmsLog
|
|||
|
|
{
|
|||
|
|
pmsid = pmsid,
|
|||
|
|
app = 1,
|
|||
|
|
Creationtime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
step = 276,
|
|||
|
|
Data = "",
|
|||
|
|
message = "无需处理,此房间没有人脸机,房号" + ridname + ",SN:" + sn + ",是否公区:否",
|
|||
|
|
HotelCode = hc,
|
|||
|
|
roomid = ridname
|
|||
|
|
});
|
|||
|
|
SqlSugarBase.Db.Insertable(logList).ExecuteCommand();
|
|||
|
|
|
|||
|
|
result.Status = 200;
|
|||
|
|
result.Message = "添加入住信息成功,房号" + ridname + ",SN:" + sn + ",是否公区:否";
|
|||
|
|
return Json(result);
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
logList.Clear();
|
|||
|
|
logList.Add(new pmsLog
|
|||
|
|
{
|
|||
|
|
pmsid = pmsid,
|
|||
|
|
app = 1,
|
|||
|
|
Creationtime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
step = 277,
|
|||
|
|
Data = "",
|
|||
|
|
message = "已校验数据,图片路径正确,入住客户已经添加,客房开房失败,房号" + ridname + ",SN:" + sn + ",是否公区:否",
|
|||
|
|
HotelCode = hc,
|
|||
|
|
roomid = ridname
|
|||
|
|
});
|
|||
|
|
logList.Add(new pmsLog
|
|||
|
|
{
|
|||
|
|
pmsid = pmsid,
|
|||
|
|
app = 1,
|
|||
|
|
Creationtime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
step = 278,
|
|||
|
|
Data = "",
|
|||
|
|
message = "此房间没有人脸机,但是客房开房失败,房号" + ridname + ",SN:" + sn + ",是否公区:否",
|
|||
|
|
HotelCode = hc,
|
|||
|
|
roomid = ridname
|
|||
|
|
});
|
|||
|
|
SqlSugarBase.Db.Insertable(logList).ExecuteCommand();
|
|||
|
|
|
|||
|
|
result.Status = 400;
|
|||
|
|
result.Message = "添加入住信息失败,房号" + ridname + ",SN:" + sn + ",是否公区:否";
|
|||
|
|
return Json(result);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
logList.Clear();
|
|||
|
|
logList.Add(new pmsLog
|
|||
|
|
{
|
|||
|
|
pmsid = pmsid,
|
|||
|
|
app = 1,
|
|||
|
|
Creationtime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
step = 279,
|
|||
|
|
Data = "",
|
|||
|
|
message = "已校验数据,图片路径正确,入住客户添加失败,房号" + ridname + ",SN:" + sn + ",是否公区:否",
|
|||
|
|
HotelCode = hc,
|
|||
|
|
roomid = ridname
|
|||
|
|
});
|
|||
|
|
logList.Add(new pmsLog
|
|||
|
|
{
|
|||
|
|
pmsid = pmsid,
|
|||
|
|
app = 1,
|
|||
|
|
Creationtime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
step = 280,
|
|||
|
|
Data = "",
|
|||
|
|
message = "此房间没有人脸机,但是入住客户添加失败,房号" + ridname + ",SN:" + sn + ",是否公区:否",
|
|||
|
|
HotelCode = hc,
|
|||
|
|
roomid = ridname
|
|||
|
|
});
|
|||
|
|
SqlSugarBase.Db.Insertable(logList).ExecuteCommand();
|
|||
|
|
|
|||
|
|
result.Status = 300;
|
|||
|
|
result.Message = "添加客户信息失败,房号" + ridname + ",SN:" + sn + ",是否公区:否";
|
|||
|
|
return Json(result);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
//img = ci.picture;
|
|||
|
|
string pictures1 = Down(img, ci.LodgerNmae + ci.IDNumber + DateTime.Now.ToString("ss fff"));//云端地址转换ftp图片
|
|||
|
|
if (pictures1 == "图片路径错误")
|
|||
|
|
{
|
|||
|
|
logList.Clear();
|
|||
|
|
logList.Add(new pmsLog
|
|||
|
|
{
|
|||
|
|
pmsid = pmsid,
|
|||
|
|
app = 1,
|
|||
|
|
Creationtime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
step = 281,
|
|||
|
|
Data = "",
|
|||
|
|
message = "已校验数据,图片路径错误,房号" + ridname + ",SN:" + sn + ",是否公区:否",
|
|||
|
|
HotelCode = hc,
|
|||
|
|
roomid = ridname
|
|||
|
|
});
|
|||
|
|
logList.Add(new pmsLog
|
|||
|
|
{
|
|||
|
|
pmsid = pmsid,
|
|||
|
|
app = 1,
|
|||
|
|
Creationtime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
step = 282,
|
|||
|
|
Data = "",
|
|||
|
|
message = "无需处理,图片路径错误,房号" + ridname + ",SN:" + sn + ",是否公区:否",
|
|||
|
|
HotelCode = hc,
|
|||
|
|
roomid = ridname
|
|||
|
|
});
|
|||
|
|
SqlSugarBase.Db.Insertable(logList).ExecuteCommand();
|
|||
|
|
|
|||
|
|
result.Status = 50;
|
|||
|
|
result.Message = "图片路径错误,房号" + ridname + ",SN:" + sn + ",是否公区:否";
|
|||
|
|
return Json(result);
|
|||
|
|
}
|
|||
|
|
ci.picture = pictures1;
|
|||
|
|
|
|||
|
|
Lodger lodgers1 = new Lodger
|
|||
|
|
{
|
|||
|
|
CheckInDate = DateTime.Now,
|
|||
|
|
IDNumber = ci.IDNumber,
|
|||
|
|
LodgerNmae = ci.LodgerNmae,
|
|||
|
|
Sex = ci.Sex,
|
|||
|
|
remark = ci.remark,
|
|||
|
|
Sourcedian = 1,
|
|||
|
|
phonenumber = ci.phonenumber
|
|||
|
|
};
|
|||
|
|
CheckInInfo cf2 = new CheckInInfo
|
|||
|
|
{
|
|||
|
|
Name = ci.LodgerNmae,
|
|||
|
|
IdNumber = ci.IDNumber,
|
|||
|
|
picture = ci.picture,
|
|||
|
|
HotelCode = int.Parse(ci.HotelCode),
|
|||
|
|
Roomid = int.Parse(ci.roomid),
|
|||
|
|
InfoSource = 0,
|
|||
|
|
CheckTime = ci.CheckTime,
|
|||
|
|
checkOutTime = Convert.ToDateTime("2000/01/01"),
|
|||
|
|
//checkOutTime = ci.checkOutTime,
|
|||
|
|
CreationTime = DateTime.Now,
|
|||
|
|
};
|
|||
|
|
if (SqlOperationsData.addClient(lodgers1) > 0)
|
|||
|
|
{
|
|||
|
|
if (SqlOperationsData.additionCheck(cf2) > 0)
|
|||
|
|
{
|
|||
|
|
StringBuilder sbperson = new StringBuilder();
|
|||
|
|
sbperson.Append("key=abc");
|
|||
|
|
sbperson.Append("&id=" + ci.IDNumber);
|
|||
|
|
sbperson.Append("&name=" + ci.LodgerNmae);
|
|||
|
|
sbperson.Append("&IC_NO=0001");
|
|||
|
|
sbperson.Append("&ID_NO=" + ci.IDNumber);
|
|||
|
|
sbperson.Append("&photo=<" + img + ">");
|
|||
|
|
sbperson.Append("&startTs=-1");
|
|||
|
|
sbperson.Append("&endTs=-1");
|
|||
|
|
sbperson.Append("&passCount=10000");
|
|||
|
|
//追加酒店id和房间id
|
|||
|
|
sbperson.Append("&HotelID=" + ci.HotelCode);
|
|||
|
|
sbperson.Append("&RoomID=" + ci.roomid);
|
|||
|
|
//协议里面没有的字段是否公区
|
|||
|
|
sbperson.Append("&isPublicArea=0");
|
|||
|
|
Entity.Rootinfo msgx = new Entity.Rootinfo();
|
|||
|
|
List<Entity.Rootinfo> rootinfos = new List<Entity.Rootinfo>();
|
|||
|
|
Entity.msgx ms = new Entity.msgx();
|
|||
|
|
ms.msgid = messageid;
|
|||
|
|
ms.sn = sn;
|
|||
|
|
ms.cmd = "setPerson";
|
|||
|
|
ms.msg = System.Web.HttpUtility.HtmlDecode(sbperson.ToString());
|
|||
|
|
msgx.msgx = ms;
|
|||
|
|
msgx.pmsid = pmsid;
|
|||
|
|
transferFace tf = new transferFace()
|
|||
|
|
{
|
|||
|
|
faceSN = sn,
|
|||
|
|
faultState = 0,
|
|||
|
|
infoid = msgx.msgx.msgid,
|
|||
|
|
creationTime = DateTime.Now
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
SqlSugarBase.Db.Insertable(tf).ExecuteCommand();
|
|||
|
|
rootinfos.Add(msgx);//存储
|
|||
|
|
|
|||
|
|
sendMsg = Newtonsoft.Json.JsonConvert.SerializeObject(msgx);
|
|||
|
|
pmsLog log = null;
|
|||
|
|
if (offLineSend)
|
|||
|
|
{
|
|||
|
|
log = new pmsLog
|
|||
|
|
{
|
|||
|
|
pmsid = pmsid,
|
|||
|
|
app = 1,
|
|||
|
|
Creationtime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
step = 283,
|
|||
|
|
Data = sendMsg,
|
|||
|
|
message = "已校验数据,准备向控制台发送,房号" + ridname + ",SN:" + sn + ",是否公区:否",
|
|||
|
|
HotelCode = hc,
|
|||
|
|
roomid = ridname
|
|||
|
|
};
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
log = new pmsLog
|
|||
|
|
{
|
|||
|
|
pmsid = pmsid,
|
|||
|
|
app = 1,
|
|||
|
|
Creationtime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
step = 284,
|
|||
|
|
Data = sendMsg,
|
|||
|
|
message = "已校验数据,准备向控制台发送,房号" + ridname + ",SN:" + sn + ",是否公区:否",
|
|||
|
|
HotelCode = hc,
|
|||
|
|
roomid = ridname
|
|||
|
|
};
|
|||
|
|
}
|
|||
|
|
SqlSugarBase.Db.Insertable(log).ExecuteCommand();
|
|||
|
|
|
|||
|
|
//UdpCommunication.QueueSend(sendMsg);
|
|||
|
|
string infods = UdpCommunication.QueueSend(sendMsg);
|
|||
|
|
|
|||
|
|
log = new pmsLog
|
|||
|
|
{
|
|||
|
|
pmsid = pmsid,
|
|||
|
|
app = 1,
|
|||
|
|
Creationtime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
step = 285,
|
|||
|
|
Data = sendMsg,
|
|||
|
|
message = infods
|
|||
|
|
};
|
|||
|
|
SqlSugarBase.Db.Insertable(log).ExecuteCommand();
|
|||
|
|
Errormessageinfo errorinfo = new Errormessageinfo();
|
|||
|
|
errorinfo.Errormessage(pmsid, log.message);
|
|||
|
|
/*改成MSMQ,消息队列*/
|
|||
|
|
//UdpCommunication.UdpState(sendMsg);//下发数据给控制台
|
|||
|
|
|
|||
|
|
result.Status = 200;
|
|||
|
|
result.Message = "开房成功";
|
|||
|
|
Thread.Sleep(Interval);
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
logList.Clear();
|
|||
|
|
logList.Add(new pmsLog
|
|||
|
|
{
|
|||
|
|
pmsid = pmsid,
|
|||
|
|
app = 1,
|
|||
|
|
Creationtime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
step = 286,
|
|||
|
|
Data = "",
|
|||
|
|
message = "已校验数据,添加入住信息失败,房号" + ridname + ",SN:" + sn + ",是否公区:否",
|
|||
|
|
HotelCode = hc,
|
|||
|
|
roomid = ridname
|
|||
|
|
});
|
|||
|
|
logList.Add(new pmsLog
|
|||
|
|
{
|
|||
|
|
pmsid = pmsid,
|
|||
|
|
app = 1,
|
|||
|
|
Creationtime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
step = 287,
|
|||
|
|
Data = "",
|
|||
|
|
message = "无需处理,添加入住信息失败,房号" + ridname + ",SN:" + sn + ",是否公区:否",
|
|||
|
|
HotelCode = hc,
|
|||
|
|
roomid = ridname
|
|||
|
|
});
|
|||
|
|
SqlSugarBase.Db.Insertable(logList).ExecuteCommand();
|
|||
|
|
|
|||
|
|
result.Status = 400;
|
|||
|
|
result.Message = "添加入住信息失败,房号" + ridname + ",SN:" + sn + ",是否公区:否";
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
logList.Clear();
|
|||
|
|
logList.Add(new pmsLog
|
|||
|
|
{
|
|||
|
|
pmsid = pmsid,
|
|||
|
|
app = 1,
|
|||
|
|
Creationtime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
step = 288,
|
|||
|
|
Data = "",
|
|||
|
|
message = "已校验数据,添加客户信息失败,房号" + ridname + ",SN:" + sn + ",是否公区:否",
|
|||
|
|
HotelCode = hc,
|
|||
|
|
roomid = ridname
|
|||
|
|
});
|
|||
|
|
logList.Add(new pmsLog
|
|||
|
|
{
|
|||
|
|
pmsid = pmsid,
|
|||
|
|
app = 1,
|
|||
|
|
Creationtime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
step = 289,
|
|||
|
|
Data = "",
|
|||
|
|
message = "无需处理,添加客户信息失败,房号" + ridname + ",SN:" + sn + ",是否公区:否",
|
|||
|
|
HotelCode = hc,
|
|||
|
|
roomid = ridname
|
|||
|
|
});
|
|||
|
|
SqlSugarBase.Db.Insertable(logList).ExecuteCommand();
|
|||
|
|
result.Status = 300;
|
|||
|
|
result.Message = "添加客户信息失败,房号" + ridname + ",SN:" + sn + ",是否公区:否";
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
#endregion
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
result.Status = 100;
|
|||
|
|
result.Message = "密钥错误";
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
catch (Exception e)
|
|||
|
|
{
|
|||
|
|
result.Status = 500;
|
|||
|
|
result.Message = e.Message;
|
|||
|
|
LogHelp.WriteExceptionLog(e, "开房接口");
|
|||
|
|
}
|
|||
|
|
return Json(result);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// string转 byte数组
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="data"></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
public static byte[] stringToByteArray(string data)
|
|||
|
|
{
|
|||
|
|
|
|||
|
|
return Encoding.Default.GetBytes(data);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 16进制原码字符串转字节数组
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="hexString">"AABBCC"或"AA BB CC"格式的字符串</param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
public static byte[] ConvertHexStringToBytes(string hexString)
|
|||
|
|
{
|
|||
|
|
hexString = hexString.Replace(" ", "");
|
|||
|
|
if (hexString.Length % 2 != 0)
|
|||
|
|
{
|
|||
|
|
throw new ArgumentException("参数长度不正确,必须是偶数位。");
|
|||
|
|
}
|
|||
|
|
byte[] returnBytes = new byte[hexString.Length / 2];
|
|||
|
|
for (int i = 0; i < returnBytes.Length; i++)
|
|||
|
|
{
|
|||
|
|
returnBytes[i] = Convert.ToByte(hexString.Substring(i * 2, 2), 16);
|
|||
|
|
}
|
|||
|
|
return returnBytes;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 接口2 (删除人员)
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="HotelCode"></param>
|
|||
|
|
/// <param name="roomName"></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
[HttpPost]
|
|||
|
|
public ActionResult CheckOut(string key, string data)
|
|||
|
|
{ //酒店编号
|
|||
|
|
string hc = "";
|
|||
|
|
//房间编号
|
|||
|
|
string ridname = "";
|
|||
|
|
int pmsid = -1;
|
|||
|
|
List<string> message = new List<string>();
|
|||
|
|
string messageid = "";
|
|||
|
|
string sn = "";
|
|||
|
|
data da = JsonConvert.DeserializeObject<data>(data);
|
|||
|
|
ReturnResult result = new ReturnResult();
|
|||
|
|
Hotels hotel = new Hotels();
|
|||
|
|
List<pmsLog> logList = new List<pmsLog>();
|
|||
|
|
|
|||
|
|
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
hc = da.HotelCode;
|
|||
|
|
ridname = da.roomid;
|
|||
|
|
//密码出错,直接返回。不跟踪。
|
|||
|
|
if (key != "abc")
|
|||
|
|
{
|
|||
|
|
result.Status = 100;
|
|||
|
|
result.Message = "密钥错误";
|
|||
|
|
return Json(result);
|
|||
|
|
}
|
|||
|
|
hotel = SqlSugarBase.authoriydb.Queryable<Hotels>().First(x => x.Code == da.HotelCode);
|
|||
|
|
#region 产生入口记录,产生跟踪用pmsid
|
|||
|
|
//记录入口,产生pmsid以备跟踪
|
|||
|
|
pmsInterface info = new pmsInterface
|
|||
|
|
{
|
|||
|
|
pmstype = 0,
|
|||
|
|
DateTime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
pmsContent = data,
|
|||
|
|
hotelid = hotel.Id,
|
|||
|
|
|
|||
|
|
};
|
|||
|
|
//pmsid = SqlSugarBase.Db.Insertable(info).ExecuteReturnIdentity();
|
|||
|
|
pmsid = da.pmsinfoid;
|
|||
|
|
SqlSugarBase.Db.Updateable(info).Where(x => x.pmsId == pmsid);
|
|||
|
|
messageid = pmsid.ToString();
|
|||
|
|
pmsLog pmslog = new pmsLog
|
|||
|
|
{
|
|||
|
|
pmsid = pmsid,
|
|||
|
|
app = 1,
|
|||
|
|
step = 201,
|
|||
|
|
Data = data,
|
|||
|
|
Creationtime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
message = "收到pms信息",
|
|||
|
|
HotelCode = hc,
|
|||
|
|
roomid = ridname
|
|||
|
|
};
|
|||
|
|
SqlSugarBase.Db.Insertable(pmslog).ExecuteCommand();
|
|||
|
|
#endregion
|
|||
|
|
|
|||
|
|
//酒店出错:酒店为空。跟踪记录到 step 9, 返回酒店code错误。
|
|||
|
|
if (da.HotelCode == "")
|
|||
|
|
{
|
|||
|
|
logList.Clear();
|
|||
|
|
logList.Add(new pmsLog
|
|||
|
|
{
|
|||
|
|
pmsid = pmsid,
|
|||
|
|
app = 1,
|
|||
|
|
Creationtime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
step = 290,
|
|||
|
|
Data = "",
|
|||
|
|
message = $"已校验数据,酒店code输入错误",
|
|||
|
|
HotelCode = hc,
|
|||
|
|
roomid = ridname
|
|||
|
|
});
|
|||
|
|
logList.Add(new pmsLog
|
|||
|
|
{
|
|||
|
|
pmsid = pmsid,
|
|||
|
|
app = 1,
|
|||
|
|
Creationtime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
step = 291,
|
|||
|
|
Data = "",
|
|||
|
|
message = $"无需处理,未找到{da.HotelCode}(code)输入错误",
|
|||
|
|
HotelCode = hc,
|
|||
|
|
roomid = ridname
|
|||
|
|
});
|
|||
|
|
SqlSugarBase.Db.Insertable(logList).ExecuteCommand();
|
|||
|
|
|
|||
|
|
result.Status = 350;
|
|||
|
|
result.Message = "酒店code错误";
|
|||
|
|
return Json(result);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
hotel = SqlSugarBase.authoriydb.Queryable<Hotels>().First(x => x.Code == da.HotelCode);
|
|||
|
|
|
|||
|
|
//酒店出错,直接返回。跟踪记录到 step 9, 返回无编号酒店错误。
|
|||
|
|
if (hotel == null)
|
|||
|
|
{
|
|||
|
|
logList.Clear();
|
|||
|
|
logList.Add(new pmsLog
|
|||
|
|
{
|
|||
|
|
pmsid = pmsid,
|
|||
|
|
app = 1,
|
|||
|
|
Creationtime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
step = 292,
|
|||
|
|
Data = "",
|
|||
|
|
message = "已校验数据,无酒店",
|
|||
|
|
HotelCode = hc,
|
|||
|
|
roomid = ridname
|
|||
|
|
});
|
|||
|
|
logList.Add(new pmsLog
|
|||
|
|
{
|
|||
|
|
pmsid = pmsid,
|
|||
|
|
app = 1,
|
|||
|
|
Creationtime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
step = 293,
|
|||
|
|
Data = "",
|
|||
|
|
message = $"无需处理,无编号为{da.HotelCode}酒店",
|
|||
|
|
HotelCode = hc,
|
|||
|
|
roomid = ridname
|
|||
|
|
});
|
|||
|
|
SqlSugarBase.Db.Insertable(logList).ExecuteCommand();
|
|||
|
|
result.Status = 121;
|
|||
|
|
result.Message = "无酒店";
|
|||
|
|
return Json(result);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
da.HotelCode = hotel.Id.ToString();
|
|||
|
|
GetRoomInterface.test test = new GetRoomInterface.test
|
|||
|
|
{
|
|||
|
|
code = hotel.Code.ToString(),
|
|||
|
|
creatDate = hotel.CreateTime.ToString("yyyy-MM-dd")
|
|||
|
|
};
|
|||
|
|
Roominfo.Root asd = GetRoomInterface.Roomport(test);
|
|||
|
|
|
|||
|
|
//酒店出错,直接返回。跟踪记录到 step 9, 返回酒店输入错误。
|
|||
|
|
if (asd != null && asd.IsSuccess == false)
|
|||
|
|
{
|
|||
|
|
logList.Clear();
|
|||
|
|
logList.Add(new pmsLog
|
|||
|
|
{
|
|||
|
|
pmsid = pmsid,
|
|||
|
|
app = 1,
|
|||
|
|
Creationtime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
step = 290,
|
|||
|
|
Data = "",
|
|||
|
|
message = $"已校验数据,酒店code输入错误",
|
|||
|
|
HotelCode = hc,
|
|||
|
|
roomid = ridname
|
|||
|
|
});
|
|||
|
|
logList.Add(new pmsLog
|
|||
|
|
{
|
|||
|
|
pmsid = pmsid,
|
|||
|
|
app = 1,
|
|||
|
|
Creationtime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
step = 291,
|
|||
|
|
Data = "",
|
|||
|
|
message = $"无需处理,未找到{da.HotelCode}(code)输入错误",
|
|||
|
|
HotelCode = hc,
|
|||
|
|
roomid = ridname
|
|||
|
|
});
|
|||
|
|
SqlSugarBase.Db.Insertable(logList).ExecuteCommand();
|
|||
|
|
|
|||
|
|
result.Status = 300;
|
|||
|
|
result.Message = "酒店输入错误";
|
|||
|
|
return Json(result);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
var Hotelroomid = asd.Result.FirstOrDefault(x => x.RoomNumber == da.roomid);
|
|||
|
|
|
|||
|
|
//房间出错,直接返回。跟踪记录到 step 9, 返回无房间错误。
|
|||
|
|
if (Hotelroomid == null)
|
|||
|
|
{
|
|||
|
|
logList.Clear();
|
|||
|
|
logList.Add(new pmsLog
|
|||
|
|
{
|
|||
|
|
pmsid = pmsid,
|
|||
|
|
app = 1,
|
|||
|
|
Creationtime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
step = 296,
|
|||
|
|
Data = "",
|
|||
|
|
message = $"已校验数据,无{da.roomid}此房间",
|
|||
|
|
HotelCode = hc,
|
|||
|
|
roomid = ridname
|
|||
|
|
});
|
|||
|
|
logList.Add(new pmsLog
|
|||
|
|
{
|
|||
|
|
pmsid = pmsid,
|
|||
|
|
app = 1,
|
|||
|
|
Creationtime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
step = 297,
|
|||
|
|
Data = "",
|
|||
|
|
message = $"无需处理,未找到{da.roomid}此房间",
|
|||
|
|
HotelCode = hc,
|
|||
|
|
roomid = ridname
|
|||
|
|
});
|
|||
|
|
SqlSugarBase.Db.Insertable(logList).ExecuteCommand();
|
|||
|
|
|
|||
|
|
result.Status = 120;
|
|||
|
|
result.Message = "无房间";
|
|||
|
|
return Json(result);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
#region 房间,住客,人脸机。并订正到日志。
|
|||
|
|
da.roomid = Hotelroomid.ID.ToString();
|
|||
|
|
//查询房间是否关联公区
|
|||
|
|
tbl_room_basic_info tbl_room_basic_info = SqlSugarBase.Gesmartblv_rcu_db().Queryable<tbl_room_basic_info>().First(x => x.IsDel == 0 && x.ROOM_OLD_ID == int.Parse(da.roomid));
|
|||
|
|
//是公区
|
|||
|
|
if (tbl_room_basic_info.isPublicArea == 1)
|
|||
|
|
{
|
|||
|
|
#region 公区下发
|
|||
|
|
//da.HotelCode = "1287";
|
|||
|
|
List<string> sdres = SqlOperationsData.getCheck(da.HotelCode, da.roomid);
|
|||
|
|
sn = SqlOperationsData.selectFace(da.HotelCode, da.roomid);
|
|||
|
|
DeviceManage deviced = SqlSugarBase.GesmartDb().Queryable<DeviceManage>().First(x => x.SerialNo == sn);
|
|||
|
|
|
|||
|
|
string Factorysd = "";
|
|||
|
|
|
|||
|
|
if (deviced != null)
|
|||
|
|
{
|
|||
|
|
if (deviced.Factory == "移海")
|
|||
|
|
{
|
|||
|
|
Factorysd = "yh";
|
|||
|
|
}
|
|||
|
|
else if (deviced.Factory == "实义德")
|
|||
|
|
{
|
|||
|
|
Factorysd = "devs";
|
|||
|
|
}
|
|||
|
|
else if (deviced.Factory == "深圳嘉禾兴")
|
|||
|
|
{
|
|||
|
|
Factorysd = "szjhx";
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
Factorysd = " ";
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
pmsInterface pmss = new pmsInterface
|
|||
|
|
{
|
|||
|
|
faceSN = sn,
|
|||
|
|
hotelid = int.Parse(da.HotelCode),
|
|||
|
|
room = int.Parse(da.roomid),
|
|||
|
|
messageid = messageid,
|
|||
|
|
pmsId = pmsid,
|
|||
|
|
};
|
|||
|
|
SqlOperationsData.revisepms(pmss);
|
|||
|
|
//住客错误。直接返回。跟踪记录到 step 8, 返回无客人错误。
|
|||
|
|
if (sdres.Count == 0)
|
|||
|
|
{
|
|||
|
|
logList.Clear();
|
|||
|
|
logList.Add(new pmsLog
|
|||
|
|
{
|
|||
|
|
pmsid = pmsid,
|
|||
|
|
app = 1,
|
|||
|
|
Creationtime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
step = 298,
|
|||
|
|
Data = "",
|
|||
|
|
message = "已校验数据,此房间无人脸机,房号" + ridname + ",SN:" + sn + ",是否公区:是",
|
|||
|
|
HotelCode = hc,
|
|||
|
|
roomid = ridname
|
|||
|
|
});
|
|||
|
|
logList.Add(new pmsLog
|
|||
|
|
{
|
|||
|
|
pmsid = pmsid,
|
|||
|
|
app = 1,
|
|||
|
|
Creationtime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
step = 299,
|
|||
|
|
Data = "",
|
|||
|
|
message = $"无需处理,房间无客人入住,房号" + ridname + ",SN:" + sn + ",是否公区:是",
|
|||
|
|
HotelCode = hc,
|
|||
|
|
roomid = ridname
|
|||
|
|
});
|
|||
|
|
SqlSugarBase.Db.Insertable(logList).ExecuteCommand();
|
|||
|
|
|
|||
|
|
result.Status = 404;
|
|||
|
|
result.Message = "此房间无客人入住,房号" + ridname + ",SN:" + sn + ",是否公区:是";
|
|||
|
|
//return Json(result);
|
|||
|
|
}
|
|||
|
|
if (sn != null && sn != "")// 有人脸机退房。跟踪记录到 step 2, 返回退房成功。
|
|||
|
|
{
|
|||
|
|
Entity.Rootinfo msgx = new Entity.Rootinfo();
|
|||
|
|
Entity.msgx mx = new Entity.msgx();
|
|||
|
|
//mx.msgid = Guid.NewGuid().ToString();
|
|||
|
|
//messageid = mx.msgid;//保存信息id
|
|||
|
|
mx.msgid = messageid;
|
|||
|
|
mx.sn = sn;
|
|||
|
|
mx.cmd = "removePerson";
|
|||
|
|
StringBuilder builder = new StringBuilder();
|
|||
|
|
builder.Append("key=abc");
|
|||
|
|
builder.Append("&id=[]");
|
|||
|
|
builder.Append("&HotelID=" + da.HotelCode);
|
|||
|
|
builder.Append("&RoomID=" + da.roomid);
|
|||
|
|
//协议里面没有的字段是否公区
|
|||
|
|
builder.Append("&isPublicArea=1");
|
|||
|
|
mx.msg = System.Web.HttpUtility.HtmlDecode(builder.ToString());
|
|||
|
|
msgx.pmsid = pmsid;
|
|||
|
|
msgx.msgx = mx;
|
|||
|
|
string sendMsg = Newtonsoft.Json.JsonConvert.SerializeObject(msgx);
|
|||
|
|
string Number = sdres[0];
|
|||
|
|
var sdete = SqlSugarBase.Db.Queryable<CheckInInfo>().First(x => x.IdNumber == Number).picture;
|
|||
|
|
FaceIssue issue = new FaceIssue()
|
|||
|
|
{
|
|||
|
|
faceSn = sn,
|
|||
|
|
creationtime = DateTime.Now,
|
|||
|
|
messageid = messageid,
|
|||
|
|
issuestate = 0,
|
|||
|
|
picture = "http://face.blv-oa.com/ImgServer/FileImage?url=" + sdete,
|
|||
|
|
Factory = Factorysd,
|
|||
|
|
APKVersion = deviced.APKVersion
|
|||
|
|
};
|
|||
|
|
SqlSugarBase.Db.Insertable(issue).ExecuteCommand();
|
|||
|
|
message.Add(messageid);
|
|||
|
|
|
|||
|
|
pmsLog log = new pmsLog
|
|||
|
|
{
|
|||
|
|
pmsid = pmsid,
|
|||
|
|
app = 1,
|
|||
|
|
Creationtime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
step = 300,
|
|||
|
|
Data = sendMsg,
|
|||
|
|
message = "已校验数据,准备向控制台发送,房号" + ridname + ",SN:" + sn + ",是否公区:是",
|
|||
|
|
HotelCode = hc,
|
|||
|
|
roomid = ridname
|
|||
|
|
};
|
|||
|
|
SqlSugarBase.Db.Insertable(log).ExecuteCommand();
|
|||
|
|
#region
|
|||
|
|
/*改成MSMQ,消息队列*/
|
|||
|
|
//UdpCommunication.UdpState(sendMsg);
|
|||
|
|
//Thread.Sleep(100);
|
|||
|
|
//DateTime dateTimess = DateTime.Now;
|
|||
|
|
//DateTime dateTime = DateTime.Now;
|
|||
|
|
//TimeSpan ss = dateTime - dateTimess;
|
|||
|
|
|
|||
|
|
//string times = ss.TotalSeconds.ToString();
|
|||
|
|
//float ssd = float.Parse(times);
|
|||
|
|
//if (ssd > 4)
|
|||
|
|
//{
|
|||
|
|
// if (log.message == "已校验数据,准备向控制台发送")
|
|||
|
|
// {
|
|||
|
|
// DateTime nowtime = DateTime.Now.AddDays(-1);
|
|||
|
|
// string infos = "已校验数据,准备向控制台发送";
|
|||
|
|
// var logspms = SqlSugarBase.Db.Queryable<pmsLog>().Where(x => x.step == 2 && x.Creationtime >= nowtime && x.message.Contains(infos)).ToList();
|
|||
|
|
// if (logspms.Count() > 10)
|
|||
|
|
// {
|
|||
|
|
// smsconts = smsconts + 1;
|
|||
|
|
// //Responsesd info = SMSinfo.SMSNotify();
|
|||
|
|
// }
|
|||
|
|
// }
|
|||
|
|
|
|||
|
|
//}
|
|||
|
|
//if (smsconts >= 10)
|
|||
|
|
//{
|
|||
|
|
// Responsesd responsesd = SMSinfo.SMSNotify();
|
|||
|
|
// if (responsesd.SendStatusSet[0].Code == "ok" || responsesd.SendStatusSet[0].Code == "Ok")
|
|||
|
|
// {
|
|||
|
|
// GetProcess();
|
|||
|
|
// smsconts = 0;
|
|||
|
|
// }
|
|||
|
|
//}
|
|||
|
|
#endregion
|
|||
|
|
//UdpCommunication.QueueSend(sendMsg);
|
|||
|
|
string infods = UdpCommunication.QueueSend(sendMsg);
|
|||
|
|
|
|||
|
|
log = new pmsLog
|
|||
|
|
{
|
|||
|
|
pmsid = pmsid,
|
|||
|
|
app = 1,
|
|||
|
|
Creationtime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
step = 301,
|
|||
|
|
Data = sendMsg,
|
|||
|
|
message = infods
|
|||
|
|
};
|
|||
|
|
SqlSugarBase.Db.Insertable(log).ExecuteCommand();
|
|||
|
|
Errormessageinfo errorinfo = new Errormessageinfo();
|
|||
|
|
errorinfo.Errormessage(pmsid, log.message);
|
|||
|
|
result.Status = 200;
|
|||
|
|
result.Message = "退房成功";
|
|||
|
|
|
|||
|
|
//每次调用都会记录FaceIssue日志
|
|||
|
|
foreach (var item in message)
|
|||
|
|
{
|
|||
|
|
SqlSugarBase.Db.Updateable<FaceIssue>().SetColumns(x => x.pmsid == pmsid.ToString()).Where(x => x.messageid == item).ExecuteCommand();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//return Json(result);
|
|||
|
|
}//end of if (sn != null && sn != "")// 有人脸机退房。跟踪记录到 step 2, 返回退房成功。
|
|||
|
|
else // 普通退房,没有人脸机。跟踪记录到 step 8, 返回退房成功。
|
|||
|
|
{
|
|||
|
|
logList.Clear();
|
|||
|
|
logList.Add(new pmsLog
|
|||
|
|
{
|
|||
|
|
pmsid = pmsid,
|
|||
|
|
app = 1,
|
|||
|
|
Creationtime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
step = 302,
|
|||
|
|
Data = "",
|
|||
|
|
message = "已校验数据,此房间无人脸机,房号" + da.roomid + ",SN:" + sn + ",是否公区:是",
|
|||
|
|
HotelCode = hc,
|
|||
|
|
roomid = ridname
|
|||
|
|
});
|
|||
|
|
logList.Add(new pmsLog
|
|||
|
|
{
|
|||
|
|
pmsid = pmsid,
|
|||
|
|
app = 1,
|
|||
|
|
Creationtime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
step = 303,
|
|||
|
|
Data = "",
|
|||
|
|
message = $"无需处理,此房间无人脸机,房号" + da.roomid + ",SN:" + sn + ",是否公区:是",
|
|||
|
|
HotelCode = hc,
|
|||
|
|
roomid = ridname
|
|||
|
|
});
|
|||
|
|
SqlSugarBase.Db.Insertable(logList).ExecuteCommand();
|
|||
|
|
|
|||
|
|
result.Status = 200;
|
|||
|
|
result.Message = "退房成功";
|
|||
|
|
//return Json(result);
|
|||
|
|
} //end of else // 普通退房,没有人脸机。跟踪记录到 step 8, 返回退房成功。
|
|||
|
|
#endregion
|
|||
|
|
}
|
|||
|
|
//不是公区
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
//没有关联公区
|
|||
|
|
if (string.IsNullOrEmpty(tbl_room_basic_info.AssociatedPublicArea))
|
|||
|
|
{
|
|||
|
|
#region 没有关联公区的有非公区下发
|
|||
|
|
List<string> sdre = SqlOperationsData.getCheck(da.HotelCode, da.roomid);
|
|||
|
|
sn = SqlOperationsData.selectFace(da.HotelCode, da.roomid.ToString());
|
|||
|
|
DeviceManage deviced = SqlSugarBase.GesmartDb().Queryable<DeviceManage>().First(x => x.SerialNo == sn);
|
|||
|
|
|
|||
|
|
string Factorysd = "";
|
|||
|
|
if (deviced != null)
|
|||
|
|
{
|
|||
|
|
if (deviced.Factory == "移海")
|
|||
|
|
{
|
|||
|
|
Factorysd = "yh";
|
|||
|
|
}
|
|||
|
|
else if (deviced.Factory == "实义德")
|
|||
|
|
{
|
|||
|
|
Factorysd = "devs";
|
|||
|
|
}
|
|||
|
|
else if (deviced.Factory == "深圳嘉禾兴")
|
|||
|
|
{
|
|||
|
|
Factorysd = "szjhx";
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
Factorysd = " ";
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
pmsInterface pms = new pmsInterface
|
|||
|
|
{
|
|||
|
|
faceSN = sn,
|
|||
|
|
hotelid = int.Parse(da.HotelCode),
|
|||
|
|
room = int.Parse(da.roomid),
|
|||
|
|
messageid = messageid,
|
|||
|
|
pmsId = pmsid,
|
|||
|
|
};
|
|||
|
|
SqlOperationsData.revisepms(pms);
|
|||
|
|
//住客错误。直接返回。跟踪记录到 step 8, 返回无客人错误。
|
|||
|
|
if (sdre.Count == 0)
|
|||
|
|
{
|
|||
|
|
logList.Clear();
|
|||
|
|
logList.Add(new pmsLog
|
|||
|
|
{
|
|||
|
|
pmsid = pmsid,
|
|||
|
|
app = 1,
|
|||
|
|
Creationtime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
step = 304,
|
|||
|
|
Data = "",
|
|||
|
|
message = "已校验数据,此房间无人脸机,房号" + ridname + ",SN:" + sn + ",是否公区:否",
|
|||
|
|
HotelCode = hc,
|
|||
|
|
roomid = ridname
|
|||
|
|
});
|
|||
|
|
logList.Add(new pmsLog
|
|||
|
|
{
|
|||
|
|
pmsid = pmsid,
|
|||
|
|
app = 1,
|
|||
|
|
Creationtime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
step = 305,
|
|||
|
|
Data = "",
|
|||
|
|
message = $"无需处理,房间无客人入住,房号" + ridname + ",SN:" + sn + ",是否公区:否",
|
|||
|
|
HotelCode = hc,
|
|||
|
|
roomid = ridname
|
|||
|
|
});
|
|||
|
|
SqlSugarBase.Db.Insertable(logList).ExecuteCommand();
|
|||
|
|
|
|||
|
|
result.Status = 404;
|
|||
|
|
result.Message = "此房间无客人入住,房号" + ridname + ",SN:" + sn + ",是否公区:否";
|
|||
|
|
//return Json(result);
|
|||
|
|
}
|
|||
|
|
if (sn != null && sn != "")// 有人脸机退房。跟踪记录到 step 2, 返回退房成功。
|
|||
|
|
{
|
|||
|
|
Entity.Rootinfo msgx = new Entity.Rootinfo();
|
|||
|
|
Entity.msgx mx = new Entity.msgx();
|
|||
|
|
//mx.msgid = Guid.NewGuid().ToString();
|
|||
|
|
//messageid = mx.msgid;//保存信息id
|
|||
|
|
mx.msgid = messageid;
|
|||
|
|
mx.sn = sn;
|
|||
|
|
mx.cmd = "removePerson";
|
|||
|
|
StringBuilder builder = new StringBuilder();
|
|||
|
|
builder.Append("key=abc");
|
|||
|
|
builder.Append("&id=[]");
|
|||
|
|
builder.Append("&HotelID=" + da.HotelCode);
|
|||
|
|
builder.Append("&RoomID=" + da.roomid);
|
|||
|
|
//协议里面没有的字段是否公区
|
|||
|
|
builder.Append("&isPublicArea=0");
|
|||
|
|
mx.msg = System.Web.HttpUtility.HtmlDecode(builder.ToString());
|
|||
|
|
msgx.pmsid = pmsid;
|
|||
|
|
msgx.msgx = mx;
|
|||
|
|
string sendMsg = Newtonsoft.Json.JsonConvert.SerializeObject(msgx);
|
|||
|
|
string Number = sdre[0];
|
|||
|
|
var sdete = SqlSugarBase.Db.Queryable<CheckInInfo>().First(x => x.IdNumber == Number).picture;
|
|||
|
|
FaceIssue issue = new FaceIssue()
|
|||
|
|
{
|
|||
|
|
faceSn = sn,
|
|||
|
|
creationtime = DateTime.Now,
|
|||
|
|
messageid = messageid,
|
|||
|
|
issuestate = 0,
|
|||
|
|
picture = "http://face.blv-oa.com/ImgServer/FileImage?url=" + sdete,
|
|||
|
|
Factory = Factorysd,
|
|||
|
|
APKVersion = deviced.APKVersion
|
|||
|
|
};
|
|||
|
|
SqlSugarBase.Db.Insertable(issue).ExecuteCommand();
|
|||
|
|
message.Add(messageid);
|
|||
|
|
|
|||
|
|
pmsLog log = new pmsLog
|
|||
|
|
{
|
|||
|
|
pmsid = pmsid,
|
|||
|
|
app = 1,
|
|||
|
|
Creationtime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
step = 306,
|
|||
|
|
Data = sendMsg,
|
|||
|
|
message = "已校验数据,准备向控制台发送,房号" + ridname + ",SN:" + sn + ",是否公区:否",
|
|||
|
|
HotelCode = hc,
|
|||
|
|
roomid = ridname
|
|||
|
|
};
|
|||
|
|
SqlSugarBase.Db.Insertable(log).ExecuteCommand();
|
|||
|
|
#region
|
|||
|
|
/*改成MSMQ,消息队列*/
|
|||
|
|
//UdpCommunication.UdpState(sendMsg);
|
|||
|
|
//Thread.Sleep(100);
|
|||
|
|
//DateTime dateTimess = DateTime.Now;
|
|||
|
|
//DateTime dateTime = DateTime.Now;
|
|||
|
|
//TimeSpan ss = dateTime - dateTimess;
|
|||
|
|
|
|||
|
|
//string times = ss.TotalSeconds.ToString();
|
|||
|
|
//float ssd = float.Parse(times);
|
|||
|
|
//if (ssd > 4)
|
|||
|
|
//{
|
|||
|
|
// if (log.message == "已校验数据,准备向控制台发送")
|
|||
|
|
// {
|
|||
|
|
// DateTime nowtime = DateTime.Now.AddDays(-1);
|
|||
|
|
// string infos = "已校验数据,准备向控制台发送";
|
|||
|
|
// var logspms = SqlSugarBase.Db.Queryable<pmsLog>().Where(x => x.step == 2 && x.Creationtime >= nowtime && x.message.Contains(infos)).ToList();
|
|||
|
|
// if (logspms.Count() > 10)
|
|||
|
|
// {
|
|||
|
|
// smsconts = smsconts + 1;
|
|||
|
|
// //Responsesd info = SMSinfo.SMSNotify();
|
|||
|
|
// }
|
|||
|
|
// }
|
|||
|
|
|
|||
|
|
//}
|
|||
|
|
//if (smsconts >= 10)
|
|||
|
|
//{
|
|||
|
|
// Responsesd responsesd = SMSinfo.SMSNotify();
|
|||
|
|
// if (responsesd.SendStatusSet[0].Code == "ok" || responsesd.SendStatusSet[0].Code == "Ok")
|
|||
|
|
// {
|
|||
|
|
// GetProcess();
|
|||
|
|
// smsconts = 0;
|
|||
|
|
// }
|
|||
|
|
//}
|
|||
|
|
#endregion
|
|||
|
|
string infods = UdpCommunication.QueueSend(sendMsg);
|
|||
|
|
|
|||
|
|
log = new pmsLog
|
|||
|
|
{
|
|||
|
|
pmsid = pmsid,
|
|||
|
|
app = 1,
|
|||
|
|
Creationtime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
step = 307,
|
|||
|
|
Data = sendMsg,
|
|||
|
|
message = infods
|
|||
|
|
};
|
|||
|
|
SqlSugarBase.Db.Insertable(log).ExecuteCommand();
|
|||
|
|
Errormessageinfo errorinfo = new Errormessageinfo();
|
|||
|
|
errorinfo.Errormessage(pmsid, log.message);
|
|||
|
|
result.Status = 200;
|
|||
|
|
result.Message = "退房成功";
|
|||
|
|
|
|||
|
|
//每次调用都会记录FaceIssue日志
|
|||
|
|
foreach (var item in message)
|
|||
|
|
{
|
|||
|
|
SqlSugarBase.Db.Updateable<FaceIssue>().SetColumns(x => x.pmsid == pmsid.ToString()).Where(x => x.messageid == item).ExecuteCommand();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//return Json(result);
|
|||
|
|
}//end of if (sn != null && sn != "")// 有人脸机退房。跟踪记录到 step 2, 返回退房成功。
|
|||
|
|
else // 普通退房,没有人脸机。跟踪记录到 step 8, 返回退房成功。
|
|||
|
|
{
|
|||
|
|
logList.Clear();
|
|||
|
|
logList.Add(new pmsLog
|
|||
|
|
{
|
|||
|
|
pmsid = pmsid,
|
|||
|
|
app = 1,
|
|||
|
|
Creationtime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
step = 308,
|
|||
|
|
Data = "",
|
|||
|
|
message = "已校验数据,此房间无人脸机,房号" + da.roomid + ",SN:" + sn + ",是否公区:否",
|
|||
|
|
HotelCode = hc,
|
|||
|
|
roomid = ridname
|
|||
|
|
});
|
|||
|
|
logList.Add(new pmsLog
|
|||
|
|
{
|
|||
|
|
pmsid = pmsid,
|
|||
|
|
app = 1,
|
|||
|
|
Creationtime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
step = 309,
|
|||
|
|
Data = "",
|
|||
|
|
message = $"无需处理,此房间无人脸机,房号" + da.roomid + ",SN:" + sn + ",是否公区:否",
|
|||
|
|
HotelCode = hc,
|
|||
|
|
roomid = ridname
|
|||
|
|
});
|
|||
|
|
SqlSugarBase.Db.Insertable(logList).ExecuteCommand();
|
|||
|
|
|
|||
|
|
result.Status = 200;
|
|||
|
|
result.Message = "退房成功";
|
|||
|
|
return Json(result);
|
|||
|
|
} //end of else // 普通退房,没有人脸机。跟踪记录到 step 8, 返回退房成功。
|
|||
|
|
#endregion
|
|||
|
|
}
|
|||
|
|
//有关联公区
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
//删除公区用户人的信息
|
|||
|
|
List<string> ints = new List<string>();
|
|||
|
|
string guanlian = tbl_room_basic_info.AssociatedPublicArea;
|
|||
|
|
string[] arr = guanlian.Split(',');
|
|||
|
|
//ints.Add(da.roomid);
|
|||
|
|
ints.AddRange(arr);
|
|||
|
|
for (int j = 0; j < ints.Count(); j++)
|
|||
|
|
{
|
|||
|
|
#region 关联公区的有公区的公区下发
|
|||
|
|
List<string> sdres = SqlOperationsData.getCheck(da.HotelCode, ints[j]);
|
|||
|
|
sn = SqlOperationsData.selectFace(da.HotelCode, ints[j].ToString());
|
|||
|
|
DeviceManage deviceds = SqlSugarBase.GesmartDb().Queryable<DeviceManage>().First(x => x.SerialNo == sn);
|
|||
|
|
tbl_room_basic_info tbbasicinfo = SqlSugarBase.Gesmartblv_rcu_db().Queryable<tbl_room_basic_info>().First(x => x.IsDel == 0 && x.ROOM_OLD_ID == int.Parse(ints[j]));
|
|||
|
|
string Factorysds = "";
|
|||
|
|
|
|||
|
|
if (deviceds != null)
|
|||
|
|
{
|
|||
|
|
if (deviceds.Factory == "移海")
|
|||
|
|
{
|
|||
|
|
Factorysds = "yh";
|
|||
|
|
}
|
|||
|
|
else if (deviceds.Factory == "实义德")
|
|||
|
|
{
|
|||
|
|
Factorysds = "devs";
|
|||
|
|
}
|
|||
|
|
else if (deviceds.Factory == "深圳嘉禾兴")
|
|||
|
|
{
|
|||
|
|
Factorysds = "szjhx";
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
Factorysds = " ";
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
pmsInterface pmss = new pmsInterface
|
|||
|
|
{
|
|||
|
|
faceSN = sn,
|
|||
|
|
hotelid = int.Parse(da.HotelCode),
|
|||
|
|
room = int.Parse(ints[j]),
|
|||
|
|
messageid = messageid,
|
|||
|
|
pmsId = pmsid,
|
|||
|
|
};
|
|||
|
|
SqlOperationsData.revisepms(pmss);
|
|||
|
|
//住客错误。直接返回。跟踪记录到 step 8, 返回无客人错误。
|
|||
|
|
if (sdres.Count == 0)
|
|||
|
|
{
|
|||
|
|
logList.Clear();
|
|||
|
|
logList.Add(new pmsLog
|
|||
|
|
{
|
|||
|
|
pmsid = pmsid,
|
|||
|
|
app = 1,
|
|||
|
|
Creationtime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
step = 310,
|
|||
|
|
Data = "",
|
|||
|
|
message = "已校验数据,此房间无人脸机,房号" + tbbasicinfo.ROOM_NUMBER + ",SN:" + sn + ",是否公区:是",
|
|||
|
|
HotelCode = hc,
|
|||
|
|
roomid = tbbasicinfo.ROOM_NUMBER
|
|||
|
|
});
|
|||
|
|
logList.Add(new pmsLog
|
|||
|
|
{
|
|||
|
|
pmsid = pmsid,
|
|||
|
|
app = 1,
|
|||
|
|
Creationtime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
step = 311,
|
|||
|
|
Data = "",
|
|||
|
|
message = $"无需处理,房间无客人入住,房号" + tbbasicinfo.ROOM_NUMBER + ",SN:" + sn + ",是否公区:是",
|
|||
|
|
HotelCode = hc,
|
|||
|
|
roomid = tbbasicinfo.ROOM_NUMBER
|
|||
|
|
});
|
|||
|
|
SqlSugarBase.Db.Insertable(logList).ExecuteCommand();
|
|||
|
|
|
|||
|
|
result.Status = 404;
|
|||
|
|
result.Message = "此房间无客人入住,房号" + tbbasicinfo.ROOM_NUMBER + ",SN:" + sn + ",是否公区:是";
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
if (sn != null && sn != "")// 有人脸机退房。跟踪记录到 step 2, 返回退房成功。
|
|||
|
|
{
|
|||
|
|
Entity.Rootinfo msgx = new Entity.Rootinfo();
|
|||
|
|
Entity.msgx mx = new Entity.msgx();
|
|||
|
|
//mx.msgid = Guid.NewGuid().ToString();
|
|||
|
|
//messageid = mx.msgid;//保存信息id
|
|||
|
|
mx.msgid = messageid;
|
|||
|
|
mx.sn = sn;
|
|||
|
|
mx.cmd = "removePerson";
|
|||
|
|
StringBuilder builder = new StringBuilder();
|
|||
|
|
builder.Append("key=abc");
|
|||
|
|
builder.Append("&id=[]");
|
|||
|
|
builder.Append("&HotelID=" + da.HotelCode);
|
|||
|
|
builder.Append("&RoomID=" + ints[j]);
|
|||
|
|
builder.Append("&Groupid=1");
|
|||
|
|
//协议里面没有的字段是否公区
|
|||
|
|
|
|||
|
|
builder.Append("&isPublicArea=1");
|
|||
|
|
mx.msg = System.Web.HttpUtility.HtmlDecode(builder.ToString());
|
|||
|
|
msgx.pmsid = pmsid;
|
|||
|
|
msgx.msgx = mx;
|
|||
|
|
string sendMsg = Newtonsoft.Json.JsonConvert.SerializeObject(msgx);
|
|||
|
|
string Number = "";
|
|||
|
|
if (sdres.Count != 0)
|
|||
|
|
{
|
|||
|
|
Number = sdres[0];
|
|||
|
|
}
|
|||
|
|
//string Number = sdres[0];
|
|||
|
|
var sdete = SqlSugarBase.Db.Queryable<CheckInInfo>().First(x => x.IdNumber == Number).picture;
|
|||
|
|
FaceIssue issue = new FaceIssue()
|
|||
|
|
{
|
|||
|
|
faceSn = sn,
|
|||
|
|
creationtime = DateTime.Now,
|
|||
|
|
messageid = messageid,
|
|||
|
|
issuestate = 0,
|
|||
|
|
picture = "http://face.blv-oa.com/ImgServer/FileImage?url=" + sdete,
|
|||
|
|
Factory = Factorysds,
|
|||
|
|
APKVersion = deviceds.APKVersion
|
|||
|
|
};
|
|||
|
|
SqlSugarBase.Db.Insertable(issue).ExecuteCommand();
|
|||
|
|
message.Add(messageid);
|
|||
|
|
|
|||
|
|
pmsLog log = new pmsLog
|
|||
|
|
{
|
|||
|
|
pmsid = pmsid,
|
|||
|
|
app = 1,
|
|||
|
|
Creationtime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
step = 312,
|
|||
|
|
Data = sendMsg,
|
|||
|
|
message = "已校验数据,准备向控制台发送,房号" + tbbasicinfo.ROOM_NUMBER + ",SN:" + sn + ",是否公区:是",
|
|||
|
|
HotelCode = hc,
|
|||
|
|
roomid = tbbasicinfo.ROOM_NUMBER
|
|||
|
|
};
|
|||
|
|
SqlSugarBase.Db.Insertable(log).ExecuteCommand();
|
|||
|
|
#region
|
|||
|
|
/*改成MSMQ,消息队列*/
|
|||
|
|
//UdpCommunication.UdpState(sendMsg);
|
|||
|
|
//Thread.Sleep(100);
|
|||
|
|
//DateTime dateTimess = DateTime.Now;
|
|||
|
|
//DateTime dateTime = DateTime.Now;
|
|||
|
|
//TimeSpan ss = dateTime - dateTimess;
|
|||
|
|
|
|||
|
|
//string times = ss.TotalSeconds.ToString();
|
|||
|
|
//float ssd = float.Parse(times);
|
|||
|
|
//if (ssd > 4)
|
|||
|
|
//{
|
|||
|
|
// if (log.message == "已校验数据,准备向控制台发送")
|
|||
|
|
// {
|
|||
|
|
// DateTime nowtime = DateTime.Now.AddDays(-1);
|
|||
|
|
// string infos = "已校验数据,准备向控制台发送";
|
|||
|
|
// var logspms = SqlSugarBase.Db.Queryable<pmsLog>().Where(x => x.step == 2 && x.Creationtime >= nowtime && x.message.Contains(infos)).ToList();
|
|||
|
|
// if (logspms.Count() > 10)
|
|||
|
|
// {
|
|||
|
|
// smsconts = smsconts + 1;
|
|||
|
|
// //Responsesd info = SMSinfo.SMSNotify();
|
|||
|
|
// }
|
|||
|
|
// }
|
|||
|
|
|
|||
|
|
//}
|
|||
|
|
//if (smsconts >= 10)
|
|||
|
|
//{
|
|||
|
|
// Responsesd responsesd = SMSinfo.SMSNotify();
|
|||
|
|
// if (responsesd.SendStatusSet[0].Code == "ok" || responsesd.SendStatusSet[0].Code == "Ok")
|
|||
|
|
// {
|
|||
|
|
// GetProcess();
|
|||
|
|
// smsconts = 0;
|
|||
|
|
// }
|
|||
|
|
//}
|
|||
|
|
#endregion
|
|||
|
|
|
|||
|
|
string infods = UdpCommunication.QueueSend(sendMsg);
|
|||
|
|
|
|||
|
|
log = new pmsLog
|
|||
|
|
{
|
|||
|
|
pmsid = pmsid,
|
|||
|
|
app = 1,
|
|||
|
|
Creationtime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
step = 313,
|
|||
|
|
Data = sendMsg,
|
|||
|
|
message = infods
|
|||
|
|
};
|
|||
|
|
SqlSugarBase.Db.Insertable(log).ExecuteCommand();
|
|||
|
|
Errormessageinfo errorinfo = new Errormessageinfo();
|
|||
|
|
errorinfo.Errormessage(pmsid, log.message);
|
|||
|
|
result.Status = 200;
|
|||
|
|
result.Message = "退房成功";
|
|||
|
|
|
|||
|
|
//每次调用都会记录FaceIssue日志
|
|||
|
|
foreach (var item in message)
|
|||
|
|
{
|
|||
|
|
SqlSugarBase.Db.Updateable<FaceIssue>().SetColumns(x => x.pmsid == pmsid.ToString()).Where(x => x.messageid == item).ExecuteCommand();
|
|||
|
|
}
|
|||
|
|
//return Json(result);
|
|||
|
|
}//end of if (sn != null && sn != "")// 有人脸机退房。跟踪记录到 step 2, 返回退房成功。
|
|||
|
|
else // 普通退房,没有人脸机。跟踪记录到 step 8, 返回退房成功。
|
|||
|
|
{
|
|||
|
|
logList.Clear();
|
|||
|
|
logList.Add(new pmsLog
|
|||
|
|
{
|
|||
|
|
pmsid = pmsid,
|
|||
|
|
app = 1,
|
|||
|
|
Creationtime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
step = 314,
|
|||
|
|
Data = "",
|
|||
|
|
message = "已校验数据,此房间无人脸机,房号" + tbbasicinfo.ROOM_NUMBER + ",SN:" + sn + ",是否公区:是",
|
|||
|
|
HotelCode = hc,
|
|||
|
|
roomid = tbbasicinfo.ROOM_NUMBER
|
|||
|
|
});
|
|||
|
|
logList.Add(new pmsLog
|
|||
|
|
{
|
|||
|
|
pmsid = pmsid,
|
|||
|
|
app = 1,
|
|||
|
|
Creationtime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
step = 315,
|
|||
|
|
Data = "",
|
|||
|
|
message = $"无需处理,此房间无人脸机,房号" + tbbasicinfo.ROOM_NUMBER + ",SN:" + sn + ",是否公区:是",
|
|||
|
|
HotelCode = hc,
|
|||
|
|
roomid = tbbasicinfo.ROOM_NUMBER
|
|||
|
|
});
|
|||
|
|
SqlSugarBase.Db.Insertable(logList).ExecuteCommand();
|
|||
|
|
|
|||
|
|
result.Status = 200;
|
|||
|
|
result.Message = "退房成功";
|
|||
|
|
//return Json(result);
|
|||
|
|
} //end of else // 普通退房,没有人脸机。跟踪记录到 step 8, 返回退房成功。
|
|||
|
|
#endregion
|
|||
|
|
}
|
|||
|
|
#region 关联公区的有公区的非公区下发
|
|||
|
|
//删除房间所有人信息
|
|||
|
|
List<string> sdre = SqlOperationsData.getCheck(da.HotelCode, da.roomid);
|
|||
|
|
sn = SqlOperationsData.selectFace(da.HotelCode, da.roomid.ToString());
|
|||
|
|
DeviceManage deviced = SqlSugarBase.GesmartDb().Queryable<DeviceManage>().First(x => x.SerialNo == sn);
|
|||
|
|
|
|||
|
|
string Factorysd = "";
|
|||
|
|
|
|||
|
|
|
|||
|
|
if (deviced != null)
|
|||
|
|
{
|
|||
|
|
if (deviced.Factory == "移海")
|
|||
|
|
{
|
|||
|
|
Factorysd = "yh";
|
|||
|
|
}
|
|||
|
|
else if (deviced.Factory == "实义德")
|
|||
|
|
{
|
|||
|
|
Factorysd = "devs";
|
|||
|
|
}
|
|||
|
|
else if (deviced.Factory == "深圳嘉禾兴")
|
|||
|
|
{
|
|||
|
|
Factorysd = "szjhx";
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
Factorysd = " ";
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
pmsInterface pms = new pmsInterface
|
|||
|
|
{
|
|||
|
|
faceSN = sn,
|
|||
|
|
hotelid = int.Parse(da.HotelCode),
|
|||
|
|
room = int.Parse(da.roomid),
|
|||
|
|
messageid = messageid,
|
|||
|
|
pmsId = pmsid,
|
|||
|
|
};
|
|||
|
|
SqlOperationsData.revisepms(pms);
|
|||
|
|
//住客错误。直接返回。跟踪记录到 step 8, 返回无客人错误。
|
|||
|
|
if (sdre.Count == 0)
|
|||
|
|
{
|
|||
|
|
logList.Clear();
|
|||
|
|
logList.Add(new pmsLog
|
|||
|
|
{
|
|||
|
|
pmsid = pmsid,
|
|||
|
|
app = 1,
|
|||
|
|
Creationtime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
step = 314,
|
|||
|
|
Data = "",
|
|||
|
|
message = "已校验数据,此房间无人脸机,房号" + ridname + ",SN:" + sn + ",是否公区:否",
|
|||
|
|
HotelCode = hc,
|
|||
|
|
roomid = ridname
|
|||
|
|
});
|
|||
|
|
logList.Add(new pmsLog
|
|||
|
|
{
|
|||
|
|
pmsid = pmsid,
|
|||
|
|
app = 1,
|
|||
|
|
Creationtime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
step = 315,
|
|||
|
|
Data = "",
|
|||
|
|
message = $"无需处理,房间无客人入住,房号" + ridname + ",SN:" + sn + ",是否公区:否",
|
|||
|
|
HotelCode = hc,
|
|||
|
|
roomid = ridname
|
|||
|
|
});
|
|||
|
|
SqlSugarBase.Db.Insertable(logList).ExecuteCommand();
|
|||
|
|
|
|||
|
|
result.Status = 404;
|
|||
|
|
result.Message = "此房间无客人入住";
|
|||
|
|
//return Json(result);不管房间住没有住人都下发一次删除人脸的动作2024-04-11 17:24:13做出的修改
|
|||
|
|
}
|
|||
|
|
if (sn != null && sn != "")// 有人脸机退房。跟踪记录到 step 2, 返回退房成功。
|
|||
|
|
{
|
|||
|
|
Entity.Rootinfo msgx = new Entity.Rootinfo();
|
|||
|
|
Entity.msgx mx = new Entity.msgx();
|
|||
|
|
//mx.msgid = Guid.NewGuid().ToString();
|
|||
|
|
//messageid = mx.msgid;//保存信息id
|
|||
|
|
mx.msgid = messageid;
|
|||
|
|
mx.sn = sn;
|
|||
|
|
mx.cmd = "removeGroup";
|
|||
|
|
StringBuilder builder = new StringBuilder();
|
|||
|
|
builder.Append("key=abc");
|
|||
|
|
//builder.Append("&id=[]");
|
|||
|
|
builder.Append("&Group=1");
|
|||
|
|
//协议里面没有的字段是否公区
|
|||
|
|
builder.Append("&isPublicArea=0");
|
|||
|
|
//builder.Append("&RoomID=" + da.roomid);
|
|||
|
|
mx.msg = System.Web.HttpUtility.HtmlDecode(builder.ToString());
|
|||
|
|
msgx.pmsid = pmsid;
|
|||
|
|
msgx.msgx = mx;
|
|||
|
|
string sendMsg = Newtonsoft.Json.JsonConvert.SerializeObject(msgx);
|
|||
|
|
string Number = sdre[0];
|
|||
|
|
var sdete = SqlSugarBase.Db.Queryable<CheckInInfo>().First(x => x.IdNumber == Number).picture;
|
|||
|
|
FaceIssue issue = new FaceIssue()
|
|||
|
|
{
|
|||
|
|
faceSn = sn,
|
|||
|
|
creationtime = DateTime.Now,
|
|||
|
|
messageid = messageid,
|
|||
|
|
issuestate = 0,
|
|||
|
|
picture = "http://face.blv-oa.com/ImgServer/FileImage?url=" + sdete,
|
|||
|
|
APKVersion = deviced.APKVersion
|
|||
|
|
};
|
|||
|
|
SqlSugarBase.Db.Insertable(issue).ExecuteCommand();
|
|||
|
|
message.Add(messageid);
|
|||
|
|
|
|||
|
|
pmsLog log = new pmsLog
|
|||
|
|
{
|
|||
|
|
pmsid = pmsid,
|
|||
|
|
app = 1,
|
|||
|
|
Creationtime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
step = 316,
|
|||
|
|
Data = sendMsg,
|
|||
|
|
message = "已校验数据,准备向控制台发送,房号" + ridname + ",SN:" + sn + ",是否公区:否",
|
|||
|
|
HotelCode = hc,
|
|||
|
|
roomid = ridname
|
|||
|
|
};
|
|||
|
|
SqlSugarBase.Db.Insertable(log).ExecuteCommand();
|
|||
|
|
#region
|
|||
|
|
/*改成MSMQ,消息队列*/
|
|||
|
|
//UdpCommunication.UdpState(sendMsg);
|
|||
|
|
//Thread.Sleep(100);
|
|||
|
|
//DateTime dateTimess = DateTime.Now;
|
|||
|
|
//DateTime dateTime = DateTime.Now;
|
|||
|
|
//TimeSpan ss = dateTime - dateTimess;
|
|||
|
|
|
|||
|
|
//string times = ss.TotalSeconds.ToString();
|
|||
|
|
//float ssd = float.Parse(times);
|
|||
|
|
//if (ssd > 4)
|
|||
|
|
//{
|
|||
|
|
// if (log.message == "已校验数据,准备向控制台发送")
|
|||
|
|
// {
|
|||
|
|
// DateTime nowtime = DateTime.Now.AddDays(-1);
|
|||
|
|
// string infos = "已校验数据,准备向控制台发送";
|
|||
|
|
// var logspms = SqlSugarBase.Db.Queryable<pmsLog>().Where(x => x.step == 2 && x.Creationtime >= nowtime && x.message.Contains(infos)).ToList();
|
|||
|
|
// if (logspms.Count() > 10)
|
|||
|
|
// {
|
|||
|
|
// smsconts = smsconts + 1;
|
|||
|
|
// //Responsesd info = SMSinfo.SMSNotify();
|
|||
|
|
// }
|
|||
|
|
// }
|
|||
|
|
|
|||
|
|
//}
|
|||
|
|
//if (smsconts >= 10)
|
|||
|
|
//{
|
|||
|
|
// Responsesd responsesd = SMSinfo.SMSNotify();
|
|||
|
|
// if (responsesd.SendStatusSet[0].Code == "ok" || responsesd.SendStatusSet[0].Code == "Ok")
|
|||
|
|
// {
|
|||
|
|
// GetProcess();
|
|||
|
|
// smsconts = 0;
|
|||
|
|
// }
|
|||
|
|
//}
|
|||
|
|
#endregion
|
|||
|
|
string infods = UdpCommunication.QueueSend(sendMsg);
|
|||
|
|
|
|||
|
|
log = new pmsLog
|
|||
|
|
{
|
|||
|
|
pmsid = pmsid,
|
|||
|
|
app = 1,
|
|||
|
|
Creationtime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
step = 317,
|
|||
|
|
Data = sendMsg,
|
|||
|
|
message = infods
|
|||
|
|
};
|
|||
|
|
SqlSugarBase.Db.Insertable(log).ExecuteCommand();
|
|||
|
|
Errormessageinfo errorinfo = new Errormessageinfo();
|
|||
|
|
errorinfo.Errormessage(pmsid, log.message);
|
|||
|
|
result.Status = 200;
|
|||
|
|
result.Message = "退房成功";
|
|||
|
|
|
|||
|
|
//每次调用都会记录FaceIssue日志
|
|||
|
|
foreach (var item in message)
|
|||
|
|
{
|
|||
|
|
SqlSugarBase.Db.Updateable<FaceIssue>().SetColumns(x => x.pmsid == pmsid.ToString()).Where(x => x.messageid == item).ExecuteCommand();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//return Json(result);
|
|||
|
|
}//end of if (sn != null && sn != "")// 有人脸机退房。跟踪记录到 step 2, 返回退房成功。
|
|||
|
|
else // 普通退房,没有人脸机。跟踪记录到 step 8, 返回退房成功。
|
|||
|
|
{
|
|||
|
|
logList.Clear();
|
|||
|
|
logList.Add(new pmsLog
|
|||
|
|
{
|
|||
|
|
pmsid = pmsid,
|
|||
|
|
app = 1,
|
|||
|
|
Creationtime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
step = 317,
|
|||
|
|
Data = "",
|
|||
|
|
message = "已校验数据,此房间无人脸机,房号" + ridname + ",SN:" + sn + ",是否公区:否",
|
|||
|
|
HotelCode = hc,
|
|||
|
|
roomid = ridname
|
|||
|
|
});
|
|||
|
|
logList.Add(new pmsLog
|
|||
|
|
{
|
|||
|
|
pmsid = pmsid,
|
|||
|
|
app = 1,
|
|||
|
|
Creationtime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
step = 318,
|
|||
|
|
Data = "",
|
|||
|
|
message = $"无需处理,此房间无人脸机,房号" + ridname + ",SN:" + sn + ",是否公区:否",
|
|||
|
|
HotelCode = hc,
|
|||
|
|
roomid = ridname
|
|||
|
|
});
|
|||
|
|
SqlSugarBase.Db.Insertable(logList).ExecuteCommand();
|
|||
|
|
|
|||
|
|
result.Status = 200;
|
|||
|
|
result.Message = "退房成功";
|
|||
|
|
//return Json(result);
|
|||
|
|
} //end of else // 普通退房,没有人脸机。跟踪记录到 step 8, 返回退房成功。
|
|||
|
|
}
|
|||
|
|
#endregion
|
|||
|
|
}
|
|||
|
|
#endregion
|
|||
|
|
}
|
|||
|
|
catch (Exception e)
|
|||
|
|
{
|
|||
|
|
LogHelp.WriteExceptionLog(e);
|
|||
|
|
result.Status = 500;
|
|||
|
|
result.Message = e.Message;
|
|||
|
|
}
|
|||
|
|
return Json(result);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public class data
|
|||
|
|
{
|
|||
|
|
public string HotelCode { get; set; }
|
|||
|
|
public string roomid { get; set; }
|
|||
|
|
|
|||
|
|
public string checkOutTime { get; set; }
|
|||
|
|
public int pmsinfoid { get; set; }
|
|||
|
|
}
|
|||
|
|
/// <summary>
|
|||
|
|
/// 网络图片保存到项目目录
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="url"></param>
|
|||
|
|
/// <param name="dtnow"></param>
|
|||
|
|
public string Down(string url, string dtnow)
|
|||
|
|
{
|
|||
|
|
string tmp_ErrIdx = "0";
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
tmp_ErrIdx = "1";
|
|||
|
|
WebRequest wreq = WebRequest.Create(url);
|
|||
|
|
tmp_ErrIdx = "2";
|
|||
|
|
HttpWebResponse wresp = (HttpWebResponse)wreq.GetResponse();
|
|||
|
|
tmp_ErrIdx = "3";
|
|||
|
|
Stream s = wresp.GetResponseStream();
|
|||
|
|
tmp_ErrIdx = "4";
|
|||
|
|
System.Drawing.Image img;
|
|||
|
|
using (img = System.Drawing.Image.FromStream(s))
|
|||
|
|
{
|
|||
|
|
tmp_ErrIdx = "5";
|
|||
|
|
string TimePath = HostingEnvironment.MapPath("~/Upload/Image/");//保存路径
|
|||
|
|
if (!Directory.Exists(TimePath))//判断文件夹是否存在
|
|||
|
|
{
|
|||
|
|
Directory.CreateDirectory(TimePath);//不存在则创建文件夹
|
|||
|
|
}
|
|||
|
|
tmp_ErrIdx = "6";
|
|||
|
|
string TimePathMake = HostingEnvironment.MapPath("~/Upload/Img/");//小图
|
|||
|
|
if (!Directory.Exists(TimePathMake))//判断文件夹是否存在
|
|||
|
|
{
|
|||
|
|
Directory.CreateDirectory(TimePathMake);//不存在则创建文件夹
|
|||
|
|
}
|
|||
|
|
tmp_ErrIdx = "7";
|
|||
|
|
img.Save(TimePath + dtnow + "_1" + ".jpg", ImageFormat.Jpeg);
|
|||
|
|
tmp_ErrIdx = "8";
|
|||
|
|
string res = MakeThumbnail(img, TimePathMake, 800, 800, "", dtnow);
|
|||
|
|
//System.IO.File.Delete(TimePath + "1" + name + ".jpg");
|
|||
|
|
//MemoryStream ms = new MemoryStream();
|
|||
|
|
//img.Dispose();
|
|||
|
|
string ftpURL = "auth.blv-oa.com:50/uts_Manager/oyl_FTP/Image";
|
|||
|
|
//string ftpURLTwo = "auth.blv-oa.com:50/uts_Manager/oyl_FTP/Img";
|
|||
|
|
//FtpUploadShow(TimePathMake + dtnow + ".jpg", ftpURLTwo);
|
|||
|
|
return FtpUploadShow(res, ftpURL);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
catch (Exception ex)
|
|||
|
|
{
|
|||
|
|
LogHelp.WriteExceptionLog(ex, "图片");
|
|||
|
|
return "图片路径错误-" + tmp_ErrIdx;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 上传到FTP
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="filename"></param>
|
|||
|
|
/// <param name="ftpServerIP"></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
public string FtpUploadShow(string filename, string ftpServerIP)
|
|||
|
|
{
|
|||
|
|
//filename += ".jpg";
|
|||
|
|
string ftpUserID = "uts_manager";//ftp账号
|
|||
|
|
string ftpPassword = "uts_Inhaos@all";//ftp密码
|
|||
|
|
FileInfo fileInf = new FileInfo(filename);
|
|||
|
|
FtpWebRequest reqFTP;
|
|||
|
|
ServicePointManager.ServerCertificateValidationCallback =
|
|||
|
|
new RemoteCertificateValidationCallback(ValidateServerCertificate);
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
// 根据uri创建FtpWebRequest对象
|
|||
|
|
reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri("ftp://" + ftpServerIP + "/" + fileInf.Name));
|
|||
|
|
string s = fileInf.Name;
|
|||
|
|
// ftp用户名和密码
|
|||
|
|
reqFTP.Credentials = new NetworkCredential(ftpUserID, ftpPassword);
|
|||
|
|
// 默认为true,连接不会被关闭
|
|||
|
|
// 在一个命令之后被执行
|
|||
|
|
reqFTP.KeepAlive = true;
|
|||
|
|
//如果要连接的 FTP 服务器要求凭据并支持安全套接字层 (SSL),则应将 EnableSsl 设置为 true。如果不写会报出421错误(服务不可用)
|
|||
|
|
reqFTP.EnableSsl = false;
|
|||
|
|
// 指定执行什么命令
|
|||
|
|
reqFTP.Method = WebRequestMethods.Ftp.UploadFile;
|
|||
|
|
// 指定数据传输类型
|
|||
|
|
reqFTP.UseBinary = true;
|
|||
|
|
// 上传文件时通知服务器文件的大小
|
|||
|
|
reqFTP.ContentLength = fileInf.Length;
|
|||
|
|
// 缓冲大小设置为 10kb
|
|||
|
|
int buffLength = 10480;
|
|||
|
|
byte[] buff = new byte[buffLength];
|
|||
|
|
int contentLen;
|
|||
|
|
// 打开一个文件流 (System.IO.FileStream) 去读上传的文件
|
|||
|
|
FileStream fs = fileInf.OpenRead();
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
// 把上传的文件写入流
|
|||
|
|
Stream strm = reqFTP.GetRequestStream();
|
|||
|
|
// 每次读文件流的buffLength kb
|
|||
|
|
contentLen = fs.Read(buff, 0, buffLength);
|
|||
|
|
// 流内容没有结束
|
|||
|
|
while (contentLen != 0)
|
|||
|
|
{
|
|||
|
|
// 把内容从file stream 写入 upload stream
|
|||
|
|
strm.Write(buff, 0, contentLen);
|
|||
|
|
contentLen = fs.Read(buff, 0, buffLength);
|
|||
|
|
}
|
|||
|
|
// 关闭两个流
|
|||
|
|
strm.Close();
|
|||
|
|
fs.Close();
|
|||
|
|
return fileInf.Name;
|
|||
|
|
}
|
|||
|
|
catch (Exception ex)
|
|||
|
|
{
|
|||
|
|
Response.Write("Upload Error:" + ex.Message);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
catch (Exception e)
|
|||
|
|
{
|
|||
|
|
Response.Write("Upload Error:" + e.Message);
|
|||
|
|
}
|
|||
|
|
return null;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public static bool ValidateServerCertificate
|
|||
|
|
(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors)
|
|||
|
|
{
|
|||
|
|
return true;
|
|||
|
|
}
|
|||
|
|
public string MakeThumbnail(Image originalImage, string thumbnailPath, int width, int height, string mode, string name)
|
|||
|
|
{
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
ReturnResult result = new ReturnResult();
|
|||
|
|
int towidth = width;
|
|||
|
|
int toheight = height;
|
|||
|
|
int x = 0;
|
|||
|
|
int y = 0;
|
|||
|
|
int ow = originalImage.Width;
|
|||
|
|
int oh = originalImage.Height;
|
|||
|
|
if (mode == "")
|
|||
|
|
{
|
|||
|
|
if (ow > oh)
|
|||
|
|
{
|
|||
|
|
mode = "W";
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
mode = "H";
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
switch (mode)
|
|||
|
|
{
|
|||
|
|
case "HW"://指定高宽缩放(可能变形)
|
|||
|
|
break;
|
|||
|
|
case "W"://指定宽,高按比例
|
|||
|
|
toheight = originalImage.Height * width / originalImage.Width;
|
|||
|
|
break;
|
|||
|
|
case "H"://指定高,宽按比例
|
|||
|
|
towidth = originalImage.Width * height / originalImage.Height;
|
|||
|
|
break;
|
|||
|
|
case "Cut"://指定高宽裁减(不变形)
|
|||
|
|
if ((double)originalImage.Width / (double)originalImage.Height > (double)towidth / (double)toheight)
|
|||
|
|
{
|
|||
|
|
oh = originalImage.Height;
|
|||
|
|
ow = originalImage.Height * towidth / toheight;
|
|||
|
|
y = 0;
|
|||
|
|
x = (originalImage.Width - ow) / 2;
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
ow = originalImage.Width;
|
|||
|
|
oh = originalImage.Width * height / towidth;
|
|||
|
|
x = 0;
|
|||
|
|
y = (originalImage.Height - oh) / 2;
|
|||
|
|
}
|
|||
|
|
break;
|
|||
|
|
default:
|
|||
|
|
break;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
using (Image bitmap = new System.Drawing.Bitmap(towidth, toheight))
|
|||
|
|
{
|
|||
|
|
//新建一个画板
|
|||
|
|
using (Graphics g = System.Drawing.Graphics.FromImage(bitmap))
|
|||
|
|
{
|
|||
|
|
//设置高质量插值法
|
|||
|
|
g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High;
|
|||
|
|
//设置高质量,低速度呈现平滑程度
|
|||
|
|
g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
|
|||
|
|
//清空画布并以透明背景色填充
|
|||
|
|
g.Clear(Color.Transparent);
|
|||
|
|
//在指定位置并且按指定大小绘制原图片的指定部分
|
|||
|
|
g.DrawImage(originalImage, new Rectangle(0, 0, towidth, toheight),
|
|||
|
|
new Rectangle(x, y, ow, oh),
|
|||
|
|
GraphicsUnit.Pixel);
|
|||
|
|
|
|||
|
|
if (!Directory.Exists(thumbnailPath))
|
|||
|
|
{
|
|||
|
|
Directory.CreateDirectory(thumbnailPath);
|
|||
|
|
}
|
|||
|
|
//以jpg格式保存缩略图
|
|||
|
|
bitmap.Save(thumbnailPath + "2" + name + ".jpg");
|
|||
|
|
|
|||
|
|
ImgServerController.CompressImage(thumbnailPath + "2" + name + ".jpg", thumbnailPath + name + ".jpg");
|
|||
|
|
//System.IO.File.Delete(thumbnailPath + "2" + name + ".jpg");
|
|||
|
|
//originalImage.Dispose();
|
|||
|
|
//bitmap.Dispose();
|
|||
|
|
//g.Dispose();
|
|||
|
|
return thumbnailPath + name + ".jpg";
|
|||
|
|
//return thumbnailPath + info.Name;
|
|||
|
|
|
|||
|
|
//g.Dispose();
|
|||
|
|
//bitmap.Dispose();
|
|||
|
|
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
catch (Exception)
|
|||
|
|
{
|
|||
|
|
//LogHelp.WriteExceptionLog(ex, this.GetType().Name);
|
|||
|
|
return null;
|
|||
|
|
}
|
|||
|
|
finally
|
|||
|
|
{
|
|||
|
|
//originalImage.Dispose();
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
/// <summary>
|
|||
|
|
/// 图片是否合格
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="url"></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
public ActionResult VisitImg(string Imgurl)
|
|||
|
|
{
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
WebRequest wreq = WebRequest.Create(Imgurl);
|
|||
|
|
HttpWebResponse wresp = (HttpWebResponse)wreq.GetResponse();
|
|||
|
|
Stream s = wresp.GetResponseStream();
|
|||
|
|
System.Drawing.Image img;
|
|||
|
|
img = System.Drawing.Image.FromStream(s);
|
|||
|
|
|
|||
|
|
if (img.Width > 900 || img.Height > 900)
|
|||
|
|
{
|
|||
|
|
return Json(new
|
|||
|
|
{
|
|||
|
|
Status = false,
|
|||
|
|
Message = "图片不符合要求,注释:照片要求宽高640*480像素,分辨率最大支持1080*1080"
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
return Json(new
|
|||
|
|
{
|
|||
|
|
Status = true,
|
|||
|
|
Message = "图片符合要求"
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
catch (Exception ex)
|
|||
|
|
{
|
|||
|
|
|
|||
|
|
throw;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
#endregion
|
|||
|
|
|
|||
|
|
|
|||
|
|
//开启进程方法
|
|||
|
|
public string GetProcess()
|
|||
|
|
{
|
|||
|
|
//找到所有进程
|
|||
|
|
Process[] ps = Process.GetProcesses();
|
|||
|
|
DataTable ProcessTable = new DataTable();
|
|||
|
|
ProcessTable.Columns.Add("Name", typeof(string));
|
|||
|
|
ProcessTable.Columns.Add("Start Time", typeof(DateTime));
|
|||
|
|
ProcessTable.Columns.Add("CPU %", typeof(TimeSpan));
|
|||
|
|
ProcessTable.Columns.Add("Threads", typeof(string));
|
|||
|
|
ProcessTable.Columns.Add("Session ID", typeof(int));
|
|||
|
|
ProcessTable.Columns.Add("Unique ID", typeof(int));
|
|||
|
|
ProcessTable.Columns.Add("RAM", typeof(float));
|
|||
|
|
ProcessTable.Columns.Add("Machine", typeof(string));
|
|||
|
|
ProcessTable.Columns.Add("Priority", typeof(int));
|
|||
|
|
foreach (Process Process in ps)
|
|||
|
|
{
|
|||
|
|
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
//找到具有指定名称的进程
|
|||
|
|
// 换成你的exe名字 去掉exe
|
|||
|
|
if (!Process.ProcessName.ToUpper().Contains("TESTWEBSOCKET"))
|
|||
|
|
continue;
|
|||
|
|
string pName = Process.ProcessName;
|
|||
|
|
DateTime pStartTime = Process.StartTime;
|
|||
|
|
TimeSpan pProcTime = Process.TotalProcessorTime;
|
|||
|
|
string pThreads = Process.Threads.ToString();
|
|||
|
|
int pSessionId = Process.SessionId;
|
|||
|
|
int pId = Process.Id;
|
|||
|
|
long pRam = Process.VirtualMemorySize64;
|
|||
|
|
string pMachineName = Process.MachineName;
|
|||
|
|
int pPriority = Process.BasePriority;
|
|||
|
|
//杀死进程
|
|||
|
|
Process.Kill();
|
|||
|
|
ProcessTable.Rows.Add(pName
|
|||
|
|
, pStartTime
|
|||
|
|
, pProcTime
|
|||
|
|
, pThreads
|
|||
|
|
, pSessionId
|
|||
|
|
, pId
|
|||
|
|
, pRam
|
|||
|
|
, pMachineName
|
|||
|
|
, pPriority);
|
|||
|
|
}
|
|||
|
|
catch (Exception e)
|
|||
|
|
{
|
|||
|
|
Logs.WriteLog("重新启动进成功" + e);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
// 换成你的exe路径
|
|||
|
|
Process.Start(@"C:\FaceConsole\bin6\Release\TestWebSocket.exe");
|
|||
|
|
return JsonConvert.SerializeObject(ProcessTable);
|
|||
|
|
}
|
|||
|
|
/// <summary>
|
|||
|
|
/// 关闭进程
|
|||
|
|
/// </summary>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
public string GetProcessKill()
|
|||
|
|
{
|
|||
|
|
|
|||
|
|
//找到所有进程
|
|||
|
|
Process[] ps = Process.GetProcesses();
|
|||
|
|
DataTable ProcessTable = new DataTable();
|
|||
|
|
ProcessTable.Columns.Add("Name", typeof(string));
|
|||
|
|
ProcessTable.Columns.Add("Start Time", typeof(DateTime));
|
|||
|
|
ProcessTable.Columns.Add("CPU %", typeof(TimeSpan));
|
|||
|
|
ProcessTable.Columns.Add("Threads", typeof(string));
|
|||
|
|
ProcessTable.Columns.Add("Session ID", typeof(int));
|
|||
|
|
ProcessTable.Columns.Add("Unique ID", typeof(int));
|
|||
|
|
ProcessTable.Columns.Add("RAM", typeof(float));
|
|||
|
|
ProcessTable.Columns.Add("Machine", typeof(string));
|
|||
|
|
ProcessTable.Columns.Add("Priority", typeof(int));
|
|||
|
|
foreach (Process Process in ps)
|
|||
|
|
{
|
|||
|
|
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
//找到具有指定名称的进程
|
|||
|
|
// 换成你的exe名字 去掉exe
|
|||
|
|
if (!Process.ProcessName.ToUpper().Contains("TESTWEBSOCKET"))
|
|||
|
|
continue;
|
|||
|
|
string pName = Process.ProcessName;
|
|||
|
|
DateTime pStartTime = Process.StartTime;
|
|||
|
|
TimeSpan pProcTime = Process.TotalProcessorTime;
|
|||
|
|
string pThreads = Process.Threads.ToString();
|
|||
|
|
int pSessionId = Process.SessionId;
|
|||
|
|
int pId = Process.Id;
|
|||
|
|
long pRam = Process.VirtualMemorySize64;
|
|||
|
|
string pMachineName = Process.MachineName;
|
|||
|
|
int pPriority = Process.BasePriority;
|
|||
|
|
//杀死进程
|
|||
|
|
Process.Kill();
|
|||
|
|
ProcessTable.Rows.Add(pName
|
|||
|
|
, pStartTime
|
|||
|
|
, pProcTime
|
|||
|
|
, pThreads
|
|||
|
|
, pSessionId
|
|||
|
|
, pId
|
|||
|
|
, pRam
|
|||
|
|
, pMachineName
|
|||
|
|
, pPriority);
|
|||
|
|
}
|
|||
|
|
catch (Exception e)
|
|||
|
|
{
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
// 换成你的exe路径
|
|||
|
|
Process.Start(@"C:\FaceConsole\bin6\Release\TestWebSocket.exe");
|
|||
|
|
return JsonConvert.SerializeObject(ProcessTable);
|
|||
|
|
}
|
|||
|
|
public static void IssueFacemachine(object issueinfo)
|
|||
|
|
{
|
|||
|
|
ReturnResult result = new ReturnResult();
|
|||
|
|
string sendMsg;
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
threadinfo faceinfo = (issueinfo as threadinfo);
|
|||
|
|
|
|||
|
|
|
|||
|
|
StringBuilder sbperson = new StringBuilder();
|
|||
|
|
sbperson.Append("key=abc");
|
|||
|
|
sbperson.Append("&id=" + faceinfo.IDNumber);
|
|||
|
|
sbperson.Append("&name=" + faceinfo.LodgerNmae);
|
|||
|
|
sbperson.Append("&IC_NO=0001");
|
|||
|
|
sbperson.Append("&ID_NO=" + faceinfo.IDNumber);
|
|||
|
|
sbperson.Append("&photo=<" + faceinfo.picture + ">");
|
|||
|
|
sbperson.Append("&startTs=-1");
|
|||
|
|
sbperson.Append("&endTs=-1");
|
|||
|
|
sbperson.Append("&passCount=10000");
|
|||
|
|
//追加酒店id和房间id
|
|||
|
|
sbperson.Append("&HotelID=" + faceinfo.HotelCode);
|
|||
|
|
sbperson.Append("&RoomID=" + faceinfo.roomid);
|
|||
|
|
//协议里面没有的字段是否公区
|
|||
|
|
sbperson.Append("&isPublicArea=1");
|
|||
|
|
//sbperson.Append("&Groupid=" + ci.Groupid);
|
|||
|
|
|
|||
|
|
Entity.Rootinfo msgx = new Entity.Rootinfo();
|
|||
|
|
List<Entity.Rootinfo> rootinfos = new List<Entity.Rootinfo>();
|
|||
|
|
Entity.msgx ms = new Entity.msgx();
|
|||
|
|
ms.msgid = faceinfo.messageid;
|
|||
|
|
ms.sn = faceinfo.SN;
|
|||
|
|
ms.cmd = "setPerson";
|
|||
|
|
ms.msg = System.Web.HttpUtility.HtmlDecode(sbperson.ToString());
|
|||
|
|
msgx.msgx = ms;
|
|||
|
|
msgx.pmsid = faceinfo.pmsid;
|
|||
|
|
transferFace tf = new transferFace()
|
|||
|
|
{
|
|||
|
|
faceSN = faceinfo.SN,
|
|||
|
|
faultState = 0,
|
|||
|
|
infoid = msgx.msgx.msgid,
|
|||
|
|
creationTime = DateTime.Now
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
SqlSugarBase.Db.Insertable(tf).ExecuteCommand();
|
|||
|
|
rootinfos.Add(msgx);//存储
|
|||
|
|
|
|||
|
|
sendMsg = Newtonsoft.Json.JsonConvert.SerializeObject(msgx);
|
|||
|
|
pmsLog log = null;
|
|||
|
|
if (faceinfo.offLineSend)
|
|||
|
|
{
|
|||
|
|
log = new pmsLog
|
|||
|
|
{
|
|||
|
|
pmsid = faceinfo.pmsid,
|
|||
|
|
app = 1,
|
|||
|
|
Creationtime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
step = 319,
|
|||
|
|
Data = sendMsg,
|
|||
|
|
message = "已校验数据,准备向控制台发送,房号" + faceinfo.roomid + ",SN:" + faceinfo.SN + ",是否公区:是"
|
|||
|
|
};
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
log = new pmsLog
|
|||
|
|
{
|
|||
|
|
pmsid = faceinfo.pmsid,
|
|||
|
|
app = 1,
|
|||
|
|
Creationtime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
|
|||
|
|
step = 320,
|
|||
|
|
Data = sendMsg,
|
|||
|
|
message = "已校验数据,准备向控制台发送,房号" + faceinfo.roomid + ",SN:" + faceinfo.SN + ",是否公区:是"
|
|||
|
|
};
|
|||
|
|
}
|
|||
|
|
SqlSugarBase.Db.Insertable(log).ExecuteCommand();
|
|||
|
|
|
|||
|
|
UdpCommunication.QueueSend(sendMsg);
|
|||
|
|
Errormessageinfo errorinfo = new Errormessageinfo();
|
|||
|
|
errorinfo.Errormessage(faceinfo.pmsid, log.message);
|
|||
|
|
/*改成MSMQ,消息队列*/
|
|||
|
|
//UdpCommunication.UdpState(sendMsg);//下发数据给控制台
|
|||
|
|
|
|||
|
|
result.Status = 200;
|
|||
|
|
result.Message = "开房成功";
|
|||
|
|
//return result;
|
|||
|
|
Thread.Sleep(Interval);
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
catch (Exception e)
|
|||
|
|
{
|
|||
|
|
result.Status = 500;
|
|||
|
|
result.Message = e.Message;
|
|||
|
|
LogHelp.WriteExceptionLog(e, "开房接口多线程错误");
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
public static class SMSinfo
|
|||
|
|
{
|
|||
|
|
public static Responsesd SMSNotify()
|
|||
|
|
{
|
|||
|
|
Responsesd shujiu = new Responsesd();
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
// 实例化一个认证对象,入参需要传入腾讯云账户 SecretId 和 SecretKey,此处还需注意密钥对的保密
|
|||
|
|
// 代码泄露可能会导致 SecretId 和 SecretKey 泄露,并威胁账号下所有资源的安全性。以下代码示例仅供参考,建议采用更安全的方式来使用密钥,请参见:https://cloud.tencent.com/document/product/1278/85305
|
|||
|
|
// 密钥可前往官网控制台 https://console.cloud.tencent.com/cam/capi 进行获取
|
|||
|
|
Credential cred = new Credential
|
|||
|
|
{
|
|||
|
|
SecretId = "AKID99vRlvskQs52khPs78uQhkbKwaCkDeHo",
|
|||
|
|
//SecretId = "AKID99vRIvskQs52khPs78uQhkbKwaCkDeHo",
|
|||
|
|
SecretKey = "RhmgMn37xZyAFPQSFn14uhQ3a4QgzJby"
|
|||
|
|
//SecretKey = "RhmgMn37xZyAFPQSFn14uhQ3a4QgzJby"
|
|||
|
|
};
|
|||
|
|
// 实例化一个client选项,可选的,没有特殊需求可以跳过
|
|||
|
|
ClientProfile clientProfile = new ClientProfile();
|
|||
|
|
// 实例化一个http选项,可选的,没有特殊需求可以跳过
|
|||
|
|
HttpProfile httpProfile = new HttpProfile();
|
|||
|
|
httpProfile.Endpoint = ("sms.tencentcloudapi.com");
|
|||
|
|
clientProfile.HttpProfile = httpProfile;
|
|||
|
|
|
|||
|
|
// 实例化要请求产品的client对象,clientProfile是可选的
|
|||
|
|
//SmsClient client = new SmsClient(cred, "", clientProfile);
|
|||
|
|
SmsClient client = new SmsClient(cred, "ap-guangzhou", clientProfile);
|
|||
|
|
// 实例化一个请求对象,每个接口都会对应一个request对象
|
|||
|
|
SendSmsRequest req = new SendSmsRequest();
|
|||
|
|
req.PhoneNumberSet = new string[] { "13509214696" };
|
|||
|
|
req.SmsSdkAppId = "1400871751";
|
|||
|
|
req.SignName = "东莞市英皓思科技有限公司";
|
|||
|
|
req.TemplateId = "2000581";
|
|||
|
|
// 返回的resp是一个SendSmsResponse的实例,与请求对象对应
|
|||
|
|
SendSmsResponse resp = client.SendSmsSync(req);
|
|||
|
|
var abs = AbstractModel.ToJsonString(resp);
|
|||
|
|
shujiu = JsonConvert.DeserializeObject<Responsesd>(abs);
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
catch (Exception e)
|
|||
|
|
{
|
|||
|
|
Console.WriteLine(e.ToString());
|
|||
|
|
}
|
|||
|
|
return shujiu;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
public class Responsesd
|
|||
|
|
{
|
|||
|
|
public List<SendStatusSetsdf> SendStatusSet { get; set; }
|
|||
|
|
public string RequestId { get; set; }
|
|||
|
|
}
|
|||
|
|
public class SendStatusSetsdf
|
|||
|
|
{
|
|||
|
|
public string PhoneNumber { get; set; }
|
|||
|
|
public string SerialNo { get; set; }
|
|||
|
|
|
|||
|
|
public int Fee { get; set; }
|
|||
|
|
public string SessionContext { get; set; }
|
|||
|
|
public string Code { get; set; }
|
|||
|
|
public string Message { get; set; }
|
|||
|
|
public string IsoCode { get; set; }
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
public class threadinfo : portinfo
|
|||
|
|
{
|
|||
|
|
public bool offLineSend { get; set; }
|
|||
|
|
public int pmsid { get; set; }
|
|||
|
|
public string SN { get; set; }
|
|||
|
|
public string messageid { get; set; }
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
}
|