You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
416 lines
14 KiB
416 lines
14 KiB
using Newtonsoft.Json;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace FangYar.Common
|
|
{
|
|
/// <summary>
|
|
/// 总队餐厅人员信息同步操作类
|
|
/// </summary>
|
|
public class EmpSyncDiningHelper
|
|
{
|
|
|
|
|
|
// IccSyncUrlHead
|
|
/// <summary>
|
|
/// 人员新增ICC人脸库
|
|
/// </summary>
|
|
public static string AddUrl = System.Configuration.ConfigurationManager.AppSettings["DiningSyncUrlHead"] + System.Configuration.ConfigurationManager.AppSettings["DiningEmpInfoAddUrl"] + "";
|
|
/// <summary>
|
|
/// 人员修改ICC人脸库
|
|
/// </summary>
|
|
public static string UpdUrl = System.Configuration.ConfigurationManager.AppSettings["DiningSyncUrlHead"] + System.Configuration.ConfigurationManager.AppSettings["DiningEmpInfoUpdUrl"] + "";
|
|
/// <summary>
|
|
/// 人员删除ICC人脸库
|
|
/// </summary>
|
|
public static string DelUrl = System.Configuration.ConfigurationManager.AppSettings["DiningSyncUrlHead"] + System.Configuration.ConfigurationManager.AppSettings["DiningEmpInfoDelUrl"] + "";
|
|
|
|
/// <summary>
|
|
/// 营区域名前缀
|
|
/// </summary>
|
|
public static string CampImgUrlPrefix = System.Configuration.ConfigurationManager.AppSettings["CampImgUrlPrefix"] + "";
|
|
|
|
|
|
#region 人员信息操作
|
|
|
|
/// <summary>
|
|
/// 人员信息添加
|
|
/// </summary>
|
|
/// <param name="eid"></param>
|
|
private static void EmpInfoAdd(EmpToDiningMo mo)
|
|
{
|
|
try
|
|
{
|
|
|
|
Dictionary<string, string> dicParameter = new Dictionary<string, string>();
|
|
dicParameter.Add("user_code", mo.user_code);
|
|
dicParameter.Add("user_id", mo.user_id);
|
|
dicParameter.Add("user_name", mo.user_name);
|
|
dicParameter.Add("user_orgid", mo.user_orgid);
|
|
dicParameter.Add("user_orgname", mo.user_orgname);
|
|
dicParameter.Add("user_phone", mo.user_phone);
|
|
dicParameter.Add("user_photo", mo.user_photo);
|
|
|
|
|
|
//序列化参数
|
|
var jsonParam = JsonConvert.SerializeObject(dicParameter);
|
|
|
|
|
|
//插入日志信息ID
|
|
string insLogId = Guid.NewGuid().ToString("N");
|
|
//插入日志记录
|
|
InsLog(new TblSysEmpDiningSyncLogMo() { ID = insLogId, EMP_ID = mo.user_id, INFO_TYPE = "0", POST_URL = AddUrl, POST_PARAMETER = jsonParam });
|
|
|
|
//调用接口同步数据并获取返回值
|
|
var retStr = WebCommonUtil.HttpPostFormData(AddUrl, dicParameter);
|
|
|
|
FangYar.Common.MyLogHelper.WriteMsg(new FangYar.Common.LogInfoMo()
|
|
{
|
|
message = "请求返回:" + retStr,
|
|
msgType = FangYar.Common.EnumLogMsgTypeEnum.Info,
|
|
path = "EmpSyncDining"
|
|
});
|
|
|
|
//更新调用接口返回结果到日志记录
|
|
UpdLog(new TblSysEmpDiningSyncLogMo() { ID = insLogId, POST_RETURN_MSG = retStr });
|
|
|
|
|
|
EmpSyncDiningReturnMo postRetMo = JsonHelper.FromJSON<EmpSyncDiningReturnMo>(retStr);
|
|
switch (postRetMo.code)
|
|
{
|
|
case "1":
|
|
break;
|
|
default:
|
|
EmpInfoUpd(mo, dicParameter, jsonParam);
|
|
break;
|
|
}
|
|
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
string str = "新增人员Web请求异常:" + ex;
|
|
FangYar.Common.MyLogHelper.WriteMsg(new FangYar.Common.LogInfoMo()
|
|
{
|
|
message = str,
|
|
msgType = FangYar.Common.EnumLogMsgTypeEnum.Error,
|
|
path = "EmpSyncDining"
|
|
});
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 人员信息更新
|
|
/// </summary>
|
|
/// <param name="mo">人员基础数据对象模型</param>
|
|
/// <param name="dicParameter">参数集合</param>
|
|
/// <param name="jsonParam">参数字符串</param>
|
|
public static void EmpInfoUpd(EmpToDiningMo mo, Dictionary<string, string> dicParameter, string jsonParam)
|
|
{
|
|
try
|
|
{
|
|
|
|
//插入日志信息ID
|
|
string insLogId = Guid.NewGuid().ToString("N");
|
|
//插入日志记录
|
|
InsLog(new TblSysEmpDiningSyncLogMo() { ID = insLogId, EMP_ID = mo.user_id, INFO_TYPE = "1", POST_URL = UpdUrl, POST_PARAMETER = jsonParam });
|
|
|
|
//调用接口同步数据并获取返回值
|
|
var retStr = WebCommonUtil.HttpPostFormData(UpdUrl, dicParameter);
|
|
|
|
EmpSyncIccReturnMo postRetMo = JsonHelper.FromJSON<EmpSyncIccReturnMo>(retStr);
|
|
|
|
//更新调用接口返回结果到日志记录
|
|
UpdLog(new TblSysEmpDiningSyncLogMo() { ID = insLogId, POST_RETURN_MSG = retStr });
|
|
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
string str = "更新人员Web请求异常:" + ex;
|
|
FangYar.Common.MyLogHelper.WriteMsg(new FangYar.Common.LogInfoMo()
|
|
{
|
|
message = str,
|
|
msgType = FangYar.Common.EnumLogMsgTypeEnum.Error,
|
|
path = "EmpSyncDining"
|
|
});
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 人员信息删除
|
|
/// </summary>
|
|
/// <param name="eid"></param>
|
|
public static void EmpInfoDel(string eid)
|
|
{
|
|
try
|
|
{
|
|
|
|
Dictionary<string, string> dicParameter = new Dictionary<string, string>();
|
|
dicParameter.Add("user_id", eid);
|
|
|
|
|
|
//序列化参数
|
|
var jsonParam = JsonConvert.SerializeObject(dicParameter);
|
|
|
|
|
|
//插入日志信息ID
|
|
string insLogId = Guid.NewGuid().ToString("N");
|
|
//插入日志记录
|
|
InsLog(new TblSysEmpDiningSyncLogMo() { ID = insLogId, EMP_ID = eid, INFO_TYPE = "2", POST_URL = DelUrl, POST_PARAMETER = jsonParam });
|
|
|
|
//调用接口同步数据并获取返回值
|
|
var retStr = WebCommonUtil.HttpPostFormData(DelUrl, dicParameter);
|
|
|
|
//更新调用接口返回结果到日志记录
|
|
UpdLog(new TblSysEmpDiningSyncLogMo() { ID = insLogId, POST_RETURN_MSG = retStr });
|
|
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
string str = "删除人员Web请求异常:" + ex;
|
|
FangYar.Common.MyLogHelper.WriteMsg(new FangYar.Common.LogInfoMo()
|
|
{
|
|
message = str,
|
|
msgType = FangYar.Common.EnumLogMsgTypeEnum.Error,
|
|
path = "EmpSyncDining"
|
|
});
|
|
}
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// 同步人员信息
|
|
/// </summary>
|
|
/// <param name="empIdList"></param>
|
|
public static void EmpInfoSync(List<string> empIdList)
|
|
{
|
|
var empList = GetToDiningEmpList(empIdList);
|
|
foreach (var item in empList)
|
|
{
|
|
try
|
|
{
|
|
|
|
EmpInfoAdd(item);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
string str = "遍历添加人员异常:" + ex;
|
|
FangYar.Common.MyLogHelper.WriteMsg(new FangYar.Common.LogInfoMo()
|
|
{
|
|
message = str,
|
|
msgType = FangYar.Common.EnumLogMsgTypeEnum.Error,
|
|
path = "EmpSyncDining"
|
|
});
|
|
}
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
/// 人员同步请求ICC日志信息插入
|
|
/// </summary>
|
|
/// <param name="mo"></param>
|
|
public static void InsLog(TblSysEmpDiningSyncLogMo mo)
|
|
{
|
|
try
|
|
{
|
|
if (mo != null)
|
|
{
|
|
//返回结果插入到日志表
|
|
string sqlInsLog = " insert into tbl_sys_emp_dining_sync_log (ID,EMP_ID,INFO_TYPE,POST_URL,POST_PARAMETER) VALUES ('" + mo.ID +
|
|
"','" + mo.EMP_ID + "','" + mo.INFO_TYPE + "','" + mo.POST_URL + "','" + mo.POST_PARAMETER + "') ";
|
|
//执行插入
|
|
MySqlHelper.Execute(sqlInsLog);
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
string str = "插入日志信息异常:" + ex;
|
|
FangYar.Common.MyLogHelper.WriteMsg(new FangYar.Common.LogInfoMo()
|
|
{
|
|
message = str,
|
|
msgType = FangYar.Common.EnumLogMsgTypeEnum.Error,
|
|
path = "EmpSyncICC"
|
|
});
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 人员同步请求ICC日志信息更新
|
|
/// </summary>
|
|
/// <param name="mo"></param>
|
|
public static void UpdLog(TblSysEmpDiningSyncLogMo mo)
|
|
{
|
|
try
|
|
{
|
|
if (mo != null)
|
|
{
|
|
//返回结果插入到日志表
|
|
string sqlInsLog = " update tbl_sys_emp_dining_sync_log set POST_RETURN_MSG='" + mo.POST_RETURN_MSG + "',POST_RETURN_TIME=now() where id='" + mo.ID + "' ";
|
|
//执行插入
|
|
MySqlHelper.Execute(sqlInsLog);
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
string str = "更新日志信息异常:" + ex;
|
|
FangYar.Common.MyLogHelper.WriteMsg(new FangYar.Common.LogInfoMo()
|
|
{
|
|
message = str,
|
|
msgType = FangYar.Common.EnumLogMsgTypeEnum.Error,
|
|
path = "EmpSyncICC"
|
|
});
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 根据用户ID查询用户信息
|
|
/// </summary>
|
|
/// <param name="eidList"></param>
|
|
/// <returns></returns>
|
|
public static List<EmpToDiningMo> GetToDiningEmpList(List<string> eidList)
|
|
{
|
|
List<EmpToDiningMo> retList = new List<EmpToDiningMo>();
|
|
|
|
string eidWhere = "'" + string.Join("','", eidList) + "'";
|
|
|
|
string sqlStr = @" SELECT ID user_id,PHOTO user_photo,e.ORG_ID user_orgid,o.ORG_NAME user_orgname,EMP_NUM user_code, EMP_NAME user_name,EMP_MOBILE user_phone
|
|
FROM tbl_sys_emp e LEFT JOIN fire_org o on e.ORG_ID = o.ORG_ID WHERE e.ID in (" + eidWhere + ") ";
|
|
var dt = MySqlHelper.QueryTable(sqlStr);
|
|
|
|
for (int i = 0; i < dt.Rows.Count; i++)
|
|
{
|
|
try
|
|
{
|
|
retList.Add(new EmpToDiningMo()
|
|
{
|
|
user_id = dt.Rows[i]["user_id"] + "",
|
|
user_code = dt.Rows[i]["user_code"] + "",
|
|
user_name = dt.Rows[i]["user_name"] + "",
|
|
user_orgid = dt.Rows[i]["user_orgid"] + "",
|
|
user_phone = dt.Rows[i]["user_phone"] + "",
|
|
user_photo = CampImgUrlPrefix + dt.Rows[i]["user_photo"] + "",
|
|
user_orgname = dt.Rows[i]["user_orgname"] + "",
|
|
});
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
string str = "查询数据转换对象异常:" + ex;
|
|
FangYar.Common.MyLogHelper.WriteMsg(new FangYar.Common.LogInfoMo()
|
|
{
|
|
message = str,
|
|
msgType = FangYar.Common.EnumLogMsgTypeEnum.Error,
|
|
path = "EmpSyncDining"
|
|
});
|
|
}
|
|
}
|
|
|
|
return retList;
|
|
}
|
|
|
|
}
|
|
|
|
|
|
public class EmpSyncDiningReturnMo
|
|
{
|
|
/// <summary>
|
|
/// 信息状态:0:失败;1:成功
|
|
/// </summary>
|
|
public string code { get; set; }
|
|
/// <summary>
|
|
/// 提示信息
|
|
/// </summary>
|
|
public string msg { get; set; }
|
|
/// <summary>
|
|
/// 响应时间
|
|
/// </summary>
|
|
public string time { get; set; }
|
|
/// <summary>
|
|
/// 返回结果
|
|
/// </summary>
|
|
public object data { get; set; }
|
|
}
|
|
|
|
/// <summary>
|
|
/// 营区人员ICC信息同步操作日志
|
|
/// </summary>
|
|
public class TblSysEmpDiningSyncLogMo
|
|
{
|
|
/// <summary>
|
|
/// 信息ID
|
|
/// </summary>
|
|
public string ID { get; set; }
|
|
/// <summary>
|
|
/// 人员信息ID
|
|
/// </summary>
|
|
public string EMP_ID { get; set; }
|
|
/// <summary>
|
|
/// 调用更新后返回内容
|
|
/// </summary>
|
|
public string POST_RETURN_MSG { get; set; }
|
|
/// <summary>
|
|
/// 信息类型:0、新增;1、修改;2、删除;
|
|
/// </summary>
|
|
public string INFO_TYPE { get; set; }
|
|
/// <summary>
|
|
/// 信息创建时间
|
|
/// </summary>
|
|
public string createtime { get; set; }
|
|
/// <summary>
|
|
/// 请求信息路径
|
|
/// </summary>
|
|
public string POST_URL { get; set; }
|
|
/// <summary>
|
|
/// 请求信息参数
|
|
/// </summary>
|
|
public string POST_PARAMETER { get; set; }
|
|
/// <summary>
|
|
/// 请求信息返回时间
|
|
/// </summary>
|
|
public string POST_RETURN_TIME { get; set; }
|
|
|
|
|
|
|
|
}
|
|
|
|
/// <summary>
|
|
/// 营区到餐厅同步数据模型
|
|
/// </summary>
|
|
public class EmpToDiningMo
|
|
{
|
|
/// <summary>
|
|
/// 用户信息ID
|
|
/// </summary>
|
|
public string user_id { get; set; }
|
|
/// <summary>
|
|
/// 用户照片
|
|
/// </summary>
|
|
public string user_photo { get; set; }
|
|
/// <summary>
|
|
/// 用户机构ID
|
|
/// </summary>
|
|
public string user_orgid { get; set; }
|
|
/// <summary>
|
|
/// 用户机构名称
|
|
/// </summary>
|
|
public string user_orgname { get; set; }
|
|
/// <summary>
|
|
/// 用户编码
|
|
/// </summary>
|
|
public string user_code { get; set; }
|
|
/// <summary>
|
|
/// 用户姓名
|
|
/// </summary>
|
|
public string user_name { get; set; }
|
|
/// <summary>
|
|
/// 用户手机号
|
|
/// </summary>
|
|
public string user_phone { get; set; }
|
|
}
|
|
}
|
|
|