软测单独项目
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

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; }
}
}