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

1331 lines
67 KiB

using MySql.Data.MySqlClient;
using Spire.Xls;
using System;
using System.Collections.Generic;
using System.Data;
using System.IO;
using System.Linq;
using System.Text;
using System.Web;
namespace FangYar.WebUI.ashx
{
/// <summary>
/// OAEmpApprovalHandler 的摘要说明
/// </summary>
public class OAEmpApprovalHandler : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
// 记录操作日志
BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Other, "人员审核操作请求", "");
context.Response.ContentType = "text/plain";
string action = context.Request.Params["Action"];
string returnstr = "";
switch (action)
{
//查询审批数据列表
case "GetEmpApprovalList":
returnstr = GetEmpApprovalList(context);
break;
//返回全部机构信息
case "GetAllOrg":
returnstr = GetAllOrg(context);
break;
// 搜索选择人员
case "GetEmpSearch":
returnstr = GetEmpSearch(context);
break;
//获取上一级别审批人信息
case "GetUpLevelEmp":
returnstr = GetUpLevelEmp(context);
break;
//删除人员申请
case "DelEmpApproval":
returnstr = DelEmpApproval(context);
break;
//调整人员申请
case "AdjustEmpApproval":
returnstr = AdjustEmpApproval(context);
break;
//添加人员申请
case "AddOrgEmpApproval":
returnstr = AddOrgEmpApproval(context);
break;
// 返回审核流程详情
case "GetApprovalDetails":
returnstr = GetApprovalDetails(context);
break;
//批量添加人员
case "AddImpExcel":
returnstr = AddImpExcel(context);
break;
}
context.Response.Write(returnstr);
}
//根据机构ID查询
private string GetEmpApprovalList(HttpContext context)
{
string returnstr = "";
try
{
// 组织机构ID
string OrgId = context.Request.Params["OrgId"];
// 缓存数据信息类型:1、新增;2、跨营区调整;3、删除;
string Cache_Type = context.Request.Params["Cache_Type"];
// 是否包含下级
string is_content = context.Request.Params["is_content"];
// 操作用户所属营区
string Operation_Org_Id = context.Request.Params["Operation_Org_Id"];
// 插叙内容
string keywords = context.Request.Params["keywords"];
// 分页信息
string page = context.Request.Params["page"];
string limit = context.Request.Params["limit"];
int.TryParse(page, out int pageIndex);
int.TryParse(limit, out int pageSize);
pageSize = pageSize < 1 ? 1 : pageSize;
pageIndex = pageIndex < 1 ? 1 : pageIndex;
int numStart = (pageIndex - 1) * pageSize;
string sqlStr = " SELECT * from tbl_sys_emp_cache ";
if (is_content == "1")
{
sqlStr += " ,(select get_Org_child_list('" + OrgId + "') cids ) s ";
}
//添加操作机构查询
sqlStr += " where Operation_Org_Id='" + Operation_Org_Id + "' ";
// 添加查询下级机构查询条件
if (is_content == "1")
{
sqlStr += " and find_in_set(org_id,cids) ";
}
else
{
sqlStr += " and org_id='" + OrgId + "' ";
}
if (!string.IsNullOrWhiteSpace(keywords))
{
sqlStr += " and ( USERS_UID like '%" + keywords + "%' or EMP_NAME like '%" + keywords + "%' or EMP_MOBILE like '%" + keywords + "%' ) ";
}
// 添加数据信息类型:1、新增;2、跨营区调整;3、删除;查询条件
sqlStr += " and Cache_Type='" + Cache_Type + "' ";
string sqlStrCount = sqlStr.Replace("*", " count(1) ");
var dtCount = FangYar.Common.MySqlHelper.QueryTable(sqlStrCount);
sqlStr += " order by createtime desc limit " + numStart + ", " + pageSize;
var dtQuery = FangYar.Common.MySqlHelper.QueryTable(sqlStr);
returnstr = "{\"code\":0,\"msg\":\"\",";
returnstr += "\"count\":" + dtCount.Rows[0][0] + ",\"data\":";
returnstr += FangYar.Common.JsonHelper.ToJson(dtQuery);
returnstr += "}";
}
catch (Exception e)
{
returnstr = "{\"code\":0,\"msg\":\"error\",\"count\":0,\"data\":[]}";
// 记录操作日志
BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Error, "人员审核操作请求", "查询审核提交信息异常:" + e);
}
// 记录操作日志
BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Query, "人员审核操作请求", "查询审核提交信息");
return returnstr;
}
/// <summary>
/// 查询所有机构以及部门信息
/// </summary>
/// <param name="context"></param>
/// <returns></returns>
private string GetAllOrg(HttpContext context)
{
string returnstr = "";
try
{
string sqlStr = " SELECT * from fire_org WHERE EXTENDCODE4 LIKE '0_1%' ORDER BY EXTENDCODE4 ";
var list = FangYar.Common.MySqlHelper.QueryTable(sqlStr);
returnstr = "{\"code\":0,\"msg\":\"\",";
returnstr += "\"count\":" + list.Rows.Count + ",\"data\":";
returnstr += FangYar.Common.JsonHelper.ToJson(list);
returnstr += "}";
}
catch (Exception e)
{
returnstr = "{\"code\":0,\"msg\":\"error\",\"count\":0,\"data\":[]}";
// 记录操作日志
BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Error, "人员审核操作请求", "查询所有机构信息异常:" + e);
}
// 记录操作日志
BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Query, "人员审核操作请求", "查询所有机构信息");
return returnstr;
}
/// <summary>
/// 人员搜索查询
/// </summary>
/// <param name="context"></param>
/// <returns></returns>
private string GetEmpSearch(HttpContext context)
{
string returnstr = "";
try
{
// 查询关键字
string SearchStr = context.Request.Params["SearchStr"];
// 组织机构ID
string OrgId = context.Request.Params["OrgId"];
// 搜索显示条数
string PageSize = context.Request.Params["PageSize"];
string sqlStr = @" WITH t1 as(SELECT id, EMP_NAME, ORG_ID from tbl_sys_emp,(select get_Org_child_list('" + OrgId + @"') cids ) s
WHERE IS_ADMIN = '0' and IS_DEL = '0' and find_in_set(org_id, cids) and EMP_NAME LIKE '%" + SearchStr + "%' LIMIT " + PageSize + @" )
SELECT t1.*,o.ORG_NAME from t1 LEFT JOIN fire_org o on t1.ORG_ID = o.ORG_ID ";
var list = FangYar.Common.MySqlHelper.QueryTable(sqlStr);
returnstr = "{\"code\":0,\"msg\":\"\",\"data\":";
returnstr += FangYar.Common.JsonHelper.ToJson(list);
returnstr += "}";
}
catch (Exception e)
{
returnstr = "{\"code\":0,\"msg\":\"error\",\"count\":0,\"data\":[]}";
// 记录操作日志
BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Error, "人员审核操作请求", "人员搜索异常:" + e);
}
// 记录操作日志
BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Query, "人员审核操作请求", "人员搜索");
return returnstr;
}
/// <summary>
/// 返回上级人员信息
/// </summary>
/// <param name="context"></param>
/// <returns></returns>
private string GetUpLevelEmp(HttpContext context)
{
string returnstr = "";
try
{
// 组织机构ID
string OrgId = context.Request.Params["OrgId"];
// 组织机构ID
string ADMIN_LEVEL = context.Request.Params["ADMIN_LEVEL"];
int.TryParse(ADMIN_LEVEL, out int numLevel);
if (numLevel > 1)
{
numLevel = numLevel - 1;
}
else
{
numLevel = 1;
}
string sqlStr = @" SELECT * from tbl_sys_emp WHERE ORG_ID='" + OrgId + "' and IS_DEL='0' and ADMIN_LEVEL='" + numLevel + "' ";
var list = FangYar.Common.MySqlHelper.QueryTable(sqlStr);
returnstr = "{\"code\":0,\"msg\":\"\",\"data\":";
returnstr += FangYar.Common.JsonHelper.ToJson(list);
returnstr += "}";
}
catch (Exception e)
{
returnstr = "{\"code\":0,\"msg\":\"error\",\"count\":0,\"data\":[]}";
// 记录操作日志
BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Error, "人员审核操作请求", "上级管理员查询异常:" + e);
}
// 记录操作日志
BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Query, "人员审核操作请求", "上级管理员查询");
return returnstr;
}
/// <summary>
/// 删除人员申请
/// </summary>
/// <param name="context"></param>
/// <returns></returns>
private string DelEmpApproval(HttpContext context)
{
string returnstr = "";
try
{
// 操作用户机构ID
string OpOrgId = context.Request.Params["OpOrgId"];
// 操作用户ID
string OpEid = context.Request.Params["OpEid"];
// 删除用户ID
string DelEid = context.Request.Params["DelEid"];
// 审批用户ID
string ApprovalEid = context.Request.Params["ApprovalEid"];
// 操作说明
string Cache_Remark = context.Request.Params["Cache_Remark"];
string guid = Guid.NewGuid().ToString("N");
string guid1 = Guid.NewGuid().ToString("N");
string sqlStr = @" INSERT into tbl_sys_emp_cache (ID,EmpId,USERS_UID,EMP_NAME,EMP_NUM,EMP_SEX,ORG_ID,DEPT_ID,EMP_EMAIL,EMP_MOBILE,IS_DEL,IDNUMBER,FIRE_PRO,CERT,NATION,FACE,MAR
,IS_WORK,PROF,POL,PHOTO,IS_LEADER,ENLISTED_TIME,IS_ACCESS,DURING_ACCESS_PERIOD,ISDRIVER,FILENUM,PERMISSIONNUM,FIRSTCARD
,EFFECTIVETIME,PERMITTEDORGAN,BIRTHDAY,FAMILYADDR,ALL_ANNUAL_LEAVE,AVAILABLE_ANNUAL_LEAVE,CID,POSTS,TAGS,IS_TRAIN,IS_ADMIN
,IS_ADMIN_DB,TAGS_BAK,createtime,IS_VISITOR_CHECK,OPENID,DURING_ACCESS_PERIOD2,ACCESSALLOWEDMODE,IS_SUBCAMPVIDEO
,New_Org_ID,New_DEPT_ID,Cache_Type,Operation_EmpId,Operation_Org_Id,Cache_Remark)
SELECT '" + guid + @"',ID,USERS_UID,EMP_NAME,EMP_NUM,EMP_SEX,ORG_ID,DEPT_ID,EMP_EMAIL,EMP_MOBILE,IS_DEL,IDNUMBER,FIRE_PRO,CERT,NATION,FACE,MAR
,IS_WORK,PROF,POL,PHOTO,IS_LEADER,ENLISTED_TIME,IS_ACCESS,DURING_ACCESS_PERIOD,ISDRIVER,FILENUM,PERMISSIONNUM,FIRSTCARD
,EFFECTIVETIME,PERMITTEDORGAN,BIRTHDAY,FAMILYADDR,ALL_ANNUAL_LEAVE,AVAILABLE_ANNUAL_LEAVE,CID,POSTS,TAGS,IS_TRAIN,IS_ADMIN
,IS_ADMIN_DB,TAGS_BAK,now(),IS_VISITOR_CHECK,OPENID,DURING_ACCESS_PERIOD2,ACCESSALLOWEDMODE,IS_SUBCAMPVIDEO
,'','','3','" + OpEid + "','" + OpOrgId + "','" + Cache_Remark +
"' FROM tbl_sys_emp WHERE id = '" + DelEid + "' ; ";
sqlStr += @" insert into tbl_sys_emp_move (ID,INSTANCEID,APPROVAL_RANK,SENDERID,SENDERNAME,SEND_ORG_ID,SENDERTIME,RECEIVEID,RECEIVE_ORG_ID,OP_STATUS,Cache_Type)
SELECT '" + guid1 + "','" + guid + "',ADMIN_LEVEL-1,id,EMP_NAME,ORG_ID,now(),'" + ApprovalEid + "',(SELECT ORG_ID from tbl_sys_emp WHERE id='" + ApprovalEid +
"' LIMIT 1),'0','3' from tbl_sys_emp WHERE id = '" + OpEid + "' ; ";
var num = FangYar.Common.MySqlHelper.Execute(sqlStr);
if (num > 0)
{
returnstr = "{\"code\":1,\"msg\":\"操作成功\",\"count\":0,\"data\":[]}";
}
else
{
returnstr = "{\"code\":0,\"msg\":\"操作识别\",\"count\":0,\"data\":[]}";
}
}
catch (Exception e)
{
returnstr = "{\"code\":0,\"msg\":\"操作异常\",\"count\":0,\"data\":[]}";
// 记录操作日志
BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Error, "人员审核操作请求", "删除人员申请异常:" + e);
}
// 记录操作日志
BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Query, "人员审核操作请求", "删除人员申请");
return returnstr;
}
/// <summary>
/// 调整人员申请
/// </summary>
/// <param name="context"></param>
/// <returns></returns>
private string AdjustEmpApproval(HttpContext context)
{
string returnstr = "";
try
{
// 操作用户机构ID
string OpOrgId = context.Request.Params["OpOrgId"];
// 操作用户ID
string OpEid = context.Request.Params["OpEid"];
// 删除用户ID
string DelEid = context.Request.Params["DelEid"];
// 审批用户ID
string ApprovalEid = context.Request.Params["ApprovalEid"];
// 操作说明
string Cache_Remark = context.Request.Params["Cache_Remark"];
// 目标营区
string newOrgId = context.Request.Params["newOrgId"];
// 目标部门
string newDepId = context.Request.Params["newDepId"];
string guid = Guid.NewGuid().ToString("N");
string guid1 = Guid.NewGuid().ToString("N");
string sqlStr = @" INSERT into tbl_sys_emp_cache (ID,EmpId,USERS_UID,EMP_NAME,EMP_NUM,EMP_SEX,ORG_ID,DEPT_ID,EMP_EMAIL,EMP_MOBILE,IS_DEL,IDNUMBER,FIRE_PRO,CERT,NATION,FACE,MAR
,IS_WORK,PROF,POL,PHOTO,IS_LEADER,ENLISTED_TIME,IS_ACCESS,DURING_ACCESS_PERIOD,ISDRIVER,FILENUM,PERMISSIONNUM,FIRSTCARD
,EFFECTIVETIME,PERMITTEDORGAN,BIRTHDAY,FAMILYADDR,ALL_ANNUAL_LEAVE,AVAILABLE_ANNUAL_LEAVE,CID,POSTS,TAGS,IS_TRAIN,IS_ADMIN
,IS_ADMIN_DB,TAGS_BAK,createtime,IS_VISITOR_CHECK,OPENID,DURING_ACCESS_PERIOD2,ACCESSALLOWEDMODE,IS_SUBCAMPVIDEO
,New_Org_ID,New_DEPT_ID,Cache_Type,Operation_EmpId,Operation_Org_Id,Cache_Remark)
SELECT '" + guid + @"',ID,USERS_UID,EMP_NAME,EMP_NUM,EMP_SEX,ORG_ID,DEPT_ID,EMP_EMAIL,EMP_MOBILE,IS_DEL,IDNUMBER,FIRE_PRO,CERT,NATION,FACE,MAR
,IS_WORK,PROF,POL,PHOTO,IS_LEADER,ENLISTED_TIME,IS_ACCESS,DURING_ACCESS_PERIOD,ISDRIVER,FILENUM,PERMISSIONNUM,FIRSTCARD
,EFFECTIVETIME,PERMITTEDORGAN,BIRTHDAY,FAMILYADDR,ALL_ANNUAL_LEAVE,AVAILABLE_ANNUAL_LEAVE,CID,POSTS,TAGS,IS_TRAIN,IS_ADMIN
,IS_ADMIN_DB,TAGS_BAK,now(),IS_VISITOR_CHECK,OPENID,DURING_ACCESS_PERIOD2,ACCESSALLOWEDMODE,IS_SUBCAMPVIDEO
,'" + newOrgId + "','" + newDepId + "','2','" + OpEid + "','" + OpOrgId + "','" + Cache_Remark +
"' FROM tbl_sys_emp WHERE id = '" + DelEid + "' ; ";
sqlStr += @" insert into tbl_sys_emp_move (ID,INSTANCEID,APPROVAL_RANK,SENDERID,SENDERNAME,SEND_ORG_ID,SENDERTIME,RECEIVEID,RECEIVE_ORG_ID,OP_STATUS,Cache_Type)
SELECT '" + guid1 + "','" + guid + "',ADMIN_LEVEL-1,id,EMP_NAME,ORG_ID,now(),'" + ApprovalEid + "',(SELECT ORG_ID from tbl_sys_emp WHERE id='" + ApprovalEid +
"' LIMIT 1),'0','2' from tbl_sys_emp WHERE id = '" + OpEid + "' ; ";
var num = FangYar.Common.MySqlHelper.Execute(sqlStr);
if (num > 0)
{
returnstr = "{\"code\":1,\"msg\":\"操作成功\",\"count\":0,\"data\":[]}";
}
else
{
returnstr = "{\"code\":0,\"msg\":\"操作识别\",\"count\":0,\"data\":[]}";
}
}
catch (Exception e)
{
returnstr = "{\"code\":0,\"msg\":\"操作异常\",\"count\":0,\"data\":[]}";
// 记录操作日志
BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Error, "人员审核操作请求", "删除人员申请异常:" + e);
}
// 记录操作日志
BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Query, "人员审核操作请求", "删除人员申请");
return returnstr;
}
/// <summary>
/// 返回审核流程详情
/// </summary>
/// <param name="context"></param>
/// <returns></returns>
private string GetApprovalDetails(HttpContext context)
{
string returnstr = "";
try
{
// 审核信息ID
string mId = context.Request.Params["mId"];
string sqlStr1 = " SELECT * from tbl_sys_emp_cache WHERE id='" + mId + "' ";
string sqlStr2 = @" SELECT m.*,e1.EMP_NAME JS_NAME, e2.EMP_NAME CL_NAME from tbl_sys_emp_move m LEFT JOIN tbl_sys_emp e1 on e1.ID = m.RECEIVEID
LEFT JOIN tbl_sys_emp e2 on m.COMPLETEDID = e2.ID WHERE INSTANCEID = '" + mId + "' ORDER BY SENDERTIME ";
var dt1 = FangYar.Common.MySqlHelper.QueryTable(sqlStr1);
var dt2 = FangYar.Common.MySqlHelper.QueryTable(sqlStr2);
returnstr = "{\"code\":0,\"msg\":\"\",\"data1\":" + FangYar.Common.JsonHelper.ToJson(dt1);
returnstr += ",\"data2\":" + FangYar.Common.JsonHelper.ToJson(dt2) + "}";
}
catch (Exception e)
{
returnstr = "{\"code\":0,\"msg\":\"error\",\"count\":0,\"data\":[]}";
// 记录操作日志
BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Error, "人员审核操作请求", "查询审核提交信息异常:" + e);
}
// 记录操作日志
BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Query, "人员审核操作请求", "查询审核提交信息");
return returnstr;
}
//添加人员
private string AddOrgEmpApproval(HttpContext context)
{
string returnstr = "";
int code = -1;
string msg = "";
try
{
// 操作用户机构ID
string OpOrgId = context.Request.Params["OpOrgId"];
// 操作用户ID
string OpEid = context.Request.Params["OpEid"];
// 审批用户ID
string ApprovalEid = context.Request.Params["ApprovalEid"];
// 操作说明
string Cache_Remark = context.Request.Params["Cache_Remark"];
string empName = context.Request.Params["emp_name"];
string empNum = context.Request.Params["emp_num"];
string empSex = context.Request.Params["emp_sex"];
string BLOOD_TYPE = context.Request.Params["BLOOD_TYPE"];
string orgId = context.Request.Params["org_id"];
string deptId = context.Request.Params["dept_id"];
string empEmail = context.Request.Params["emp_email"];
string empMobile = context.Request.Params["emp_mobile"];
string idnumber = context.Request.Params["idnumber"];
string birthday = context.Request.Params["birthday"];
string familyaddr = context.Request.Params["familyaddr"];
string cert = context.Request.Params["cert"];
string nation = context.Request.Params["nation"];
string face = context.Request.Params["face"];
string mar = context.Request.Params["mar"];
string isWork = context.Request.Params["is_work"];
string prof = context.Request.Params["prof"];
string tags = context.Request.Params["tags"];
string posts = context.Request.Params["posts"];
string pol = context.Request.Params["pol"];
string photo = context.Request.Params["photo"];
string isLeader = context.Request.Params["isLeader"];
string enlisted_time = context.Request.Params["enlisted_time"];
string is_access = context.Request.Params["is_access"];
string is_SubCampVideo = context.Request.Params["is_SubCampVideo"];
string AccessAllowedMode = context.Request.Params["AccessAllowedMode"];
string during_access_period = context.Request.Params["during_access_period"];
string isdriver = context.Request.Params["isdriver"];
string filenum = context.Request.Params["filenum"];
string permissionnum = context.Request.Params["permissionnum"];
string firstcard = context.Request.Params["firstcard"];
string effictivetime = context.Request.Params["effictivetime"];
string permittedorgan = context.Request.Params["permittedorgan"];
string ALL_ANNUAL_LEAVE = context.Request.Params["ALL_ANNUAL_LEAVE"];
string AVAILABLE_ANNUAL_LEAVE = context.Request.Params["AVAILABLE_ANNUAL_LEAVE"];
string IS_ADMIN = context.Request.Params["IS_ADMIN"] + "";
string strWhere = " EMP_NUM ='" + empNum + "' and ORG_ID ='" + orgId + "' and EMP_NUM is not null ";
string sql = " SELECT ID,EMP_NAME,USERS_UID,EMP_MOBILE,IDNUMBER,EMP_NUM from tbl_sys_emp WHERE USERS_UID='" + empMobile
+ "' or EMP_MOBILE='" + empMobile + "' or IDNUMBER ='" + idnumber + "' or (ORG_ID='" + orgId + "' and EMP_NUM ='" + empNum + "') ";
var dt = FangYar.Common.MySqlHelper.QueryTable(sql);
//获取是否存在现有人员编号重的情况
//int count = bll.GetRecordCount(" EMP_NUM ='" + empNum + "' and ORG_ID ='" + orgId + "' and EMP_NUM is not null and is_del='0' ");
int count = dt.Rows.Count;
if (count > 0)
{
//msg = "单位内编号重复,请修改后添加!";
msg = "重复信息:<br />";
for (int i = 0; i < dt.Rows.Count; i++)
{
if ((dt.Rows[i]["USERS_UID"] + "").Trim() == empMobile)
{
msg += "已有账号与手机号重复;<br />";
}
if ((dt.Rows[i]["EMP_MOBILE"] + "").Trim() == empMobile)
{
msg += "手机号重复;<br />";
}
if ((dt.Rows[i]["idnumber"] + "").Trim() == idnumber)
{
msg += "身份证号重复;<br />";
}
if ((dt.Rows[i]["EMP_NUM"] + "").Trim() == empNum)
{
msg += "编号重复;<br />";
}
}
msg += "请确认输入信息是否正确";
}
else
{
Model.TBL.TBL_SYS_EMP_Model model = new Model.TBL.TBL_SYS_EMP_Model();
//员工表
model.ID = Guid.NewGuid().ToString("N");
//model.USERS_UID = usersUid;
model.EMP_NAME = empName;
model.EMP_NUM = empNum;
model.EMP_SEX = empSex;
model.BLOOD_TYPE = BLOOD_TYPE;
model.ORG_ID = orgId;
model.DEPT_ID = deptId;
model.EMP_EMAIL = empEmail;
model.EMP_MOBILE = empMobile;
model.IDNUMBER = idnumber;
model.BIRTHDAY = birthday;
model.FAMILYADDR = familyaddr;
model.CERT = cert;
model.NATION = nation;
model.FACE = face;
model.MAR = mar;
model.IS_WORK = isWork;
model.PROF = prof;
model.TAGS = tags;
model.POSTS = posts;
model.POL = pol;
model.PHOTO = photo;
model.IS_LEADER = isLeader;
model.IS_DEL = "0";
model.ENLISTED_TIME = enlisted_time;
model.IS_ACCESS = is_access;
model.IS_SUBCAMPVIDEO = is_SubCampVideo;
//model.DURING_ACCESS_PERIOD = during_access_period;
model.DURING_ACCESS_PERIOD2 = during_access_period;
model.ISDRIVER = isdriver;
model.FILENUM = filenum;
model.PERMISSIONNUM = permissionnum;
model.FIRSTCARD = firstcard;
model.EFFECTIVETIME = effictivetime;
model.PERMITTEDORGAN = permittedorgan;
model.IS_ADMIN = IS_ADMIN;
if (!string.IsNullOrEmpty(ALL_ANNUAL_LEAVE))
{
model.ALL_ANNUAL_LEAVE = decimal.Parse(ALL_ANNUAL_LEAVE);
}
if (!string.IsNullOrEmpty(AVAILABLE_ANNUAL_LEAVE))
{
model.AVAILABLE_ANNUAL_LEAVE = decimal.Parse(AVAILABLE_ANNUAL_LEAVE);
}
if (!string.IsNullOrEmpty(AccessAllowedMode))
{
model.ACCESSALLOWEDMODE = int.Parse(AccessAllowedMode);
}
//审核表ID
string guid = Guid.NewGuid().ToString("N");
//
string guid1 = Guid.NewGuid().ToString("N");
StringBuilder strsql = new StringBuilder();
strsql.Append("insert into tbl_sys_emp_cache (ID,EmpId,USERS_UID,EMP_NAME,EMP_NUM,EMP_SEX,ORG_ID,DEPT_ID,EMP_EMAIL,EMP_MOBILE,IDNUMBER," +
"FIRE_PRO,CERT,NATION,FACE,MAR,IS_WORK,PROF,POL,IS_DEL,PHOTO,IS_LEADER,ENLISTED_TIME,IS_ACCESS,IS_SUBCAMPVIDEO,DURING_ACCESS_PERIOD," +
"ISDRIVER,FILENUM,PERMISSIONNUM,FIRSTCARD,EFFECTIVETIME,PERMITTEDORGAN,BIRTHDAY,FAMILYADDR,ALL_ANNUAL_LEAVE,AVAILABLE_ANNUAL_LEAVE,TAGS," +
"POSTS,IS_ADMIN,DURING_ACCESS_PERIOD2,ACCESSALLOWEDMODE,Cache_Type,Operation_EmpId,Operation_Org_Id,Cache_Remark,BLOOD_TYPE)");
strsql.Append("values");
strsql.Append("(@ID,@EmpId,@USERS_UID,@EMP_NAME,@EMP_NUM,@EMP_SEX,@ORG_ID,@DEPT_ID,@EMP_EMAIL,@EMP_MOBILE,@IDNUMBER,@FIRE_PRO,@CERT,@NATION," +
"@FACE,@MAR,@IS_WORK,@PROF,@POL,@IS_DEL,@PHOTO,@IS_LEADER,@ENLISTED_TIME,@IS_ACCESS,@IS_SUBCAMPVIDEO,@DURING_ACCESS_PERIOD,@ISDRIVER,@FILENUM," +
"@PERMISSIONNUM,@FIRSTCARD,@EFFECTIVETIME,@PERMITTEDORGAN,@BIRTHDAY,@FAMILYADDR,@ALL_ANNUAL_LEAVE,@AVAILABLE_ANNUAL_LEAVE,@TAGS,@POSTS,@IS_ADMIN," +
"@DURING_ACCESS_PERIOD2,@ACCESSALLOWEDMODE,1,@Operation_EmpId,@Operation_Org_Id,@Cache_Remark,@BLOOD_TYPE) ;");
MySqlParameter[] paras ={
new MySqlParameter("@ID",guid),
new MySqlParameter("@EmpId",Guid.NewGuid().ToString("N")),
new MySqlParameter("@USERS_UID",model.EMP_MOBILE),
new MySqlParameter("@EMP_NAME",model.EMP_NAME),
new MySqlParameter("@EMP_NUM",model.EMP_NUM),
new MySqlParameter("@EMP_SEX",model.EMP_SEX),
new MySqlParameter("@ORG_ID", model.ORG_ID),
new MySqlParameter("@DEPT_ID", model.DEPT_ID),
new MySqlParameter("@EMP_EMAIL", model.EMP_EMAIL),
new MySqlParameter("@EMP_MOBILE",model.EMP_MOBILE),
new MySqlParameter("@IDNUMBER",model.IDNUMBER),
new MySqlParameter("@FIRE_PRO",model.FIRE_PRO),
new MySqlParameter("@CERT",model.CERT),
new MySqlParameter("@NATION", model.NATION),
new MySqlParameter("@FACE", model.FACE),
new MySqlParameter("@MAR",model.MAR),
new MySqlParameter("@IS_WORK", model.IS_WORK),
new MySqlParameter("@PROF",model.PROF),
new MySqlParameter("@POL", model.POL),
new MySqlParameter("@IS_DEL",model.IS_DEL),
new MySqlParameter("@PHOTO",model.PHOTO),
new MySqlParameter("@IS_LEADER",model.IS_LEADER),
new MySqlParameter("@ENLISTED_TIME",model.ENLISTED_TIME),
new MySqlParameter("@IS_ACCESS",model.IS_ACCESS),
new MySqlParameter("@IS_SUBCAMPVIDEO",model.IS_SUBCAMPVIDEO),
new MySqlParameter("@DURING_ACCESS_PERIOD",model.DURING_ACCESS_PERIOD),
new MySqlParameter("@ISDRIVER",model.ISDRIVER),
new MySqlParameter("@FILENUM",model.FILENUM),
new MySqlParameter("@PERMISSIONNUM", model.PERMISSIONNUM),
new MySqlParameter("@FIRSTCARD",model.FIRSTCARD),
new MySqlParameter("@EFFECTIVETIME",model.EFFECTIVETIME),
new MySqlParameter("@PERMITTEDORGAN",model.PERMITTEDORGAN),
new MySqlParameter("@BIRTHDAY",model.BIRTHDAY),
new MySqlParameter("@FAMILYADDR",model.FAMILYADDR),
new MySqlParameter("@ALL_ANNUAL_LEAVE",model.ALL_ANNUAL_LEAVE),
new MySqlParameter("@AVAILABLE_ANNUAL_LEAVE", model.AVAILABLE_ANNUAL_LEAVE),
new MySqlParameter("@TAGS",model.TAGS),
new MySqlParameter("@POSTS", model.POSTS),
new MySqlParameter("@IS_ADMIN",model.IS_ADMIN),
new MySqlParameter("@DURING_ACCESS_PERIOD2",model.DURING_ACCESS_PERIOD2),
new MySqlParameter("@ACCESSALLOWEDMODE",model.ACCESSALLOWEDMODE),
new MySqlParameter("@Operation_EmpId",OpEid),
new MySqlParameter("@Operation_Org_Id",OpOrgId),
new MySqlParameter("@Cache_Remark",Cache_Remark),
new MySqlParameter("@BLOOD_TYPE",BLOOD_TYPE),
};
strsql.Append(@" insert into tbl_sys_emp_move (ID,INSTANCEID,APPROVAL_RANK,SENDERID,SENDERNAME,SEND_ORG_ID,SENDERTIME,RECEIVEID,RECEIVE_ORG_ID,OP_STATUS,Cache_Type)
SELECT '" + guid1 + "','" + guid + "',ADMIN_LEVEL-1,id,EMP_NAME,ORG_ID,now(),'" + ApprovalEid + "',(SELECT ORG_ID from tbl_sys_emp WHERE id='" + ApprovalEid +
"' LIMIT 1),'0','3' from tbl_sys_emp WHERE id = '" + OpEid + "' ; ");
int i = FangYar.Common.MySqlHelper.ExecuteSql(strsql.ToString(), paras);
if (i > 0)
{
msg = "添加成功!";
code = 1;
}
else { msg = "添加失败!"; }
}
}
catch (Exception e)
{
msg = e.Message;
// 记录操作日志
BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Error, "人员操作请求", "添加异常:" + e);
}
returnstr = "{\"msg\":\"" + msg + "\",\"code\":" + code + "}";
// 记录操作日志
BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Add, "人员操作请求", "添加");
return returnstr;
}
#region 导入人员
//上传excel
private string AddImpExcel(HttpContext context)
{
string returnstr = "{\"code\":0,\"msg\":\"error\",\"count\":0,\"data\":[]}";
try
{
// 操作用户机构ID
string OpOrgId = context.Request.Params["OpOrgId"];
// 操作用户ID
string OpEid = context.Request.Params["OpEid"];
// 审批用户ID
string ApprovalEid = context.Request.Params["ApprovalEid"];
// 操作说明
string Cache_Remark = "批量导入";
if (string.IsNullOrWhiteSpace(ApprovalEid))
{
//没有内容
return "{\"code\":0,\"msg\":\"没有选择审批用户\",\"count\":0,\"data\":[]}";
}
var file = context.Request.Files[0]; //获取选中文件
var fileName = Path.GetFileNameWithoutExtension(file.FileName);
Cache_Remark += "[" + fileName + "]";
string PC_CODE = DateTime.Now.ToString("yyyyMMddHHmmssfff");
Stream stream = file.InputStream; //将文件转为流
Workbook workbook = new Workbook();
//将文件流内容读取到workbook对象里面
workbook.LoadFromStream(stream);
//得到第一个Sheet页
Worksheet sheet = workbook.Worksheets[0];
DataTable dtImp = SheetToDataTable(true, sheet);
if (dtImp.Rows.Count < 1)
{
//没有内容
return "{\"code\":0,\"msg\":\"导入文件没有内容\",\"count\":0,\"data\":[]}";
}
string filename = file.FileName;
string filetype = Path.GetExtension(filename).ToLower();
//上传的目录
string uploaddir = "~/File/ImpEmpFile/" + DateTime.Now.ToString("yyyyMM") + "/";
//上传的路径
//生成年月文件夹及日文件夹
if (Directory.Exists(context.Server.MapPath(uploaddir)) == false)
{
Directory.CreateDirectory(context.Server.MapPath(uploaddir));
}
var guidFile = Guid.NewGuid().ToString("N");
string uploadpath = uploaddir + guidFile + filetype;
//保存文件
file.SaveAs(context.Server.MapPath(uploadpath));
//数据库保存文件路径
string dbFileUlr = uploadpath.Replace("~", "");
if (dtImp.Rows.Count > 0)
{
//有内容
//判断头部信息是否异常
if (!(dtImp.Columns[0].ColumnName).Trim().Equals("姓名")) { returnstr = "{\"code\":0,\"msg\":\"导入文件模板错误\",\"count\":0,\"data\":[]}"; return returnstr; }
//判断头部信息是否异常
if (!(dtImp.Columns[1] + "").Trim().Equals("性别")) { returnstr = "{\"code\":0,\"msg\":\"导入文件模板错误\",\"count\":0,\"data\":[]}"; return returnstr; }
//判断头部信息是否异常
if (!(dtImp.Columns[2] + "").Trim().Equals("营区")) { returnstr = "{\"code\":0,\"msg\":\"导入文件模板错误\",\"count\":0,\"data\":[]}"; return returnstr; }
//判断头部信息是否异常
if (!(dtImp.Columns[3] + "").Trim().Equals("所属部门")) { returnstr = "{\"code\":0,\"msg\":\"导入文件模板错误\",\"count\":0,\"data\":[]}"; return returnstr; }
//判断头部信息是否异常
if (!(dtImp.Columns[4] + "").Trim().Equals("身份证号")) { returnstr = "{\"code\":0,\"msg\":\"导入文件模板错误\",\"count\":0,\"data\":[]}"; return returnstr; }
//判断头部信息是否异常
if (!(dtImp.Columns[5] + "").Trim().Equals("手机号")) { returnstr = "{\"code\":0,\"msg\":\"导入文件模板错误\",\"count\":0,\"data\":[]}"; return returnstr; }
//判断头部信息是否异常
if (!(dtImp.Columns[6] + "").Trim().Equals("电子邮箱")) { returnstr = "{\"code\":0,\"msg\":\"导入文件模板错误\",\"count\":0,\"data\":[]}"; return returnstr; }
//判断头部信息是否异常
if (!(dtImp.Columns[7] + "").Trim().Equals("学历")) { returnstr = "{\"code\":0,\"msg\":\"导入文件模板错误\",\"count\":0,\"data\":[]}"; return returnstr; }
//判断头部信息是否异常
if (!(dtImp.Columns[8] + "").Trim().Equals("民族")) { returnstr = "{\"code\":0,\"msg\":\"导入文件模板错误\",\"count\":0,\"data\":[]}"; return returnstr; }
//判断头部信息是否异常
if (!(dtImp.Columns[9] + "").Trim().Equals("政治面貌")) { returnstr = "{\"code\":0,\"msg\":\"导入文件模板错误\",\"count\":0,\"data\":[]}"; return returnstr; }
//判断头部信息是否异常
if (!(dtImp.Columns[10] + "").Trim().Equals("婚姻状况")) { returnstr = "{\"code\":0,\"msg\":\"导入文件模板错误\",\"count\":0,\"data\":[]}"; return returnstr; }
//判断头部信息是否异常
if (!(dtImp.Columns[11] + "").Trim().Equals("职位")) { returnstr = "{\"code\":0,\"msg\":\"导入文件模板错误\",\"count\":0,\"data\":[]}"; return returnstr; }
//判断头部信息是否异常
if (!(dtImp.Columns[12] + "").Trim().Equals("消防救援衔")) { returnstr = "{\"code\":0,\"msg\":\"导入文件模板错误\",\"count\":0,\"data\":[]}"; return returnstr; }
//判断头部信息是否异常
if (!(dtImp.Columns[13] + "").Trim().Equals("入伍时间")) { returnstr = "{\"code\":0,\"msg\":\"导入文件模板错误\",\"count\":0,\"data\":[]}"; return returnstr; }
//判断头部信息是否异常
if (!(dtImp.Columns[14] + "").Trim().Equals("家庭住址")) { returnstr = "{\"code\":0,\"msg\":\"导入文件模板错误\",\"count\":0,\"data\":[]}"; return returnstr; }
//判断头部信息是否异常
if (!(dtImp.Columns[15] + "").Trim().Equals("标签")) { returnstr = "{\"code\":0,\"msg\":\"导入文件模板错误\",\"count\":0,\"data\":[]}"; return returnstr; }
//判断头部信息是否异常
if (!(dtImp.Columns[16] + "").Trim().Equals("血型")) { returnstr = "{\"code\":0,\"msg\":\"导入文件模板错误\",\"count\":0,\"data\":[]}"; return returnstr; }
// 查询机构信息
string sqlOrg = @" SELECT * from fire_org ,(select get_Org_child_list('D8DC637B8B984848A63F82A018AFAEB0') cids ) s WHERE TYPE = '0' and find_in_set(org_id,cids)
and ORG_ID not in (SELECT ORG_ID from fire_org WHERE pid = 'D8DC637B8B984848A63F82A018AFAEB0' ) and ORG_ID<> 'D8DC637B8B984848A63F82A018AFAEB0'
or ORG_ID = '734389c7ae364584aea9918693bba3de' ORDER BY EXTENDCODE4 ";
var dtOrg = FangYar.Common.MySqlHelper.QueryTable(sqlOrg);
//机构数据缓存
List<ImpOrgMo> lisOrg = new List<ImpOrgMo>();
for (int i = 0; i < dtOrg.Rows.Count; i++)
{
lisOrg.Add(new ImpOrgMo()
{
ORG_ID = dtOrg.Rows[i]["ORG_ID"] + "",
ORG_NAME = dtOrg.Rows[i]["ORG_NAME"] + "",
});
}
//配置字典选项信息
string sqlDic = " SELECT * from tbl_sys_dicdetail ";
var dtDic = FangYar.Common.MySqlHelper.QueryTable(sqlDic);
List<ImpDicMo> listDic = new List<ImpDicMo>();
for (int i = 0; i < dtDic.Rows.Count; i++)
{
listDic.Add(new ImpDicMo()
{
ID = dtDic.Rows[i]["ID"] + "",
IS_ORG = dtDic.Rows[i]["IS_ORG"] + "",
DIC_FID = dtDic.Rows[i]["DIC_FID"] + "",
DIC_TEXT = dtDic.Rows[i]["DIC_TEXT"] + "",
MOD_CODE = dtDic.Rows[i]["MOD_CODE"] + "",
DIC_ORDER = dtDic.Rows[i]["DIC_ORDER"] + "",
DIC_VALUE = dtDic.Rows[i]["DIC_VALUE"] + "",
});
}
//导入人员信息缓存
List<ImpEmpMo> listImpEmp = new List<ImpEmpMo>();
for (int i = 0; i < dtImp.Rows.Count; i++)
{
//姓名
string str0 = dtImp.Rows[i][0] + "";
if (string.IsNullOrWhiteSpace(str0)) { returnstr = "{\"code\":0,\"msg\":\"第" + (i + 1) + "行姓名信息为空\",\"data\":[]}"; return returnstr; }
//性别
string str1 = dtImp.Rows[i][1] + "";
if (string.IsNullOrWhiteSpace(str1)) { returnstr = "{\"code\":0,\"msg\":\"第" + (i + 1) + "行(姓名:" + str0 + ")性别信息为空\",\"data\":[]}"; return returnstr; }
//营区
string str2 = dtImp.Rows[i][2] + "";
if (string.IsNullOrWhiteSpace(str2)) { returnstr = "{\"code\":0,\"msg\":\"第" + (i + 1) + "行(姓名:" + str0 + ")营区信息为空\",\"data\":[]}"; return returnstr; }
//所属部门
string str3 = dtImp.Rows[i][3] + "";
//身份证号
string str4 = dtImp.Rows[i][4] + "";
if (string.IsNullOrWhiteSpace(str4)) { returnstr = "{\"code\":0,\"msg\":\"第" + (i + 1) + "行(姓名:" + str0 + ")身份证号信息为空\",\"data\":[]}"; return returnstr; }
//手机号
string str5 = dtImp.Rows[i][5] + "";
if (string.IsNullOrWhiteSpace(str5)) { returnstr = "{\"code\":0,\"msg\":\"第" + (i + 1) + "行(姓名:" + str0 + ")手机号信息为空\",\"data\":[]}"; return returnstr; }
//电子邮箱
string str6 = dtImp.Rows[i][6] + "";
//学历
string str7 = dtImp.Rows[i][7] + "";
if (string.IsNullOrWhiteSpace(str7)) { returnstr = "{\"code\":0,\"msg\":\"第" + (i + 1) + "行(姓名:" + str0 + ")学历信息为空\",\"data\":[]}"; return returnstr; }
//民族
string str8 = dtImp.Rows[i][8] + "";
if (string.IsNullOrWhiteSpace(str8)) { returnstr = "{\"code\":0,\"msg\":\"第" + (i + 1) + "行(姓名:" + str0 + ")民族信息为空\",\"data\":[]}"; return returnstr; }
//政治面貌
string str9 = dtImp.Rows[i][9] + "";
if (string.IsNullOrWhiteSpace(str9)) { returnstr = "{\"code\":0,\"msg\":\"第" + (i + 1) + "行(姓名:" + str0 + ")政治面貌信息为空\",\"data\":[]}"; return returnstr; }
//婚姻状况
string str10 = dtImp.Rows[i][10] + "";
if (string.IsNullOrWhiteSpace(str10)) { returnstr = "{\"code\":0,\"msg\":\"第" + (i + 1) + "行(姓名:" + str0 + ")婚姻状况信息为空\",\"data\":[]}"; return returnstr; }
//职位
string str11 = dtImp.Rows[i][11] + "";
if (string.IsNullOrWhiteSpace(str11)) { returnstr = "{\"code\":0,\"msg\":\"第" + (i + 1) + "行(姓名:" + str0 + ")职位信息为空\",\"data\":[]}"; return returnstr; }
//消防救援衔
string str12 = dtImp.Rows[i][12] + "";
if (string.IsNullOrWhiteSpace(str12)) { returnstr = "{\"code\":0,\"msg\":\"第" + (i + 1) + "行(姓名:" + str0 + ")消防救援衔信息为空\",\"data\":[]}"; return returnstr; }
//入伍时间
string str13 = dtImp.Rows[i][13] + "";
if (string.IsNullOrWhiteSpace(str13)) { returnstr = "{\"code\":0,\"msg\":\"第" + (i + 1) + "行(姓名:" + str0 + ")入伍时间信息为空\",\"data\":[]}"; return returnstr; }
//家庭住址
string str14 = dtImp.Rows[i][14] + "";
//标签
string str15 = dtImp.Rows[i][15] + "";
if (string.IsNullOrWhiteSpace(str15)) { returnstr = "{\"code\":0,\"msg\":\"第" + (i + 1) + "行(姓名:" + str0 + ")标签信息为空\",\"data\":[]}"; return returnstr; }
//血型
string str16 = dtImp.Rows[i][16] + "";
if (string.IsNullOrWhiteSpace(str16)) { returnstr = "{\"code\":0,\"msg\":\"第" + (i + 1) + "行(姓名:" + str0 + ")血型信息为空\",\"data\":[]}"; return returnstr; }
listImpEmp.Add(new ImpEmpMo
{
EMP_NAME = str0,
EMP_SEX = str1,
ORG_Name = str2,
DEPT_Name = str3,
IDNUMBER = str4,
EMP_MOBILE = str5,
EMP_EMAIL = str6,
CERT = str7,
NATION = str8,
FACE = str9,
MAR = str10,
PROF = str11,
POL = str12,
ENLISTED_TIME = str13,
FAMILYADDR = str14,
TAGS = str15,
BLOOD_TYPE = str16,
});
}
//验证手机号是否重复
var l1 = listImpEmp.GroupBy(p => p.EMP_MOBILE);
if (l1.Count() != listImpEmp.Count)
{
string str = "表格内手机号:";
var l1_1 = l1.Where(p => p.Count() > 1).ToList();
foreach (var item in l1_1)
{
str += "[" + item.Key + "] ";
}
str += "存在重复";
returnstr = "{\"code\":0,\"msg\":\"" + str + "\",\"data\":[]}";
return returnstr;
}
//验证身份证号是否重复
var l2 = listImpEmp.GroupBy(p => p.IDNUMBER);
if (l2.Count() != listImpEmp.Count)
{
string str = "表格内身份证号:";
var l2_1 = l2.Where(p => p.Count() > 1).ToList();
foreach (var item in l2_1)
{
str += "[" + item.Key + "] ";
}
str += "存在重复";
returnstr = "{\"code\":0,\"msg\":\"" + str + "\",\"data\":[]}";
return returnstr;
}
//遍历验证手机号、身份证号是否在数据库存在重复
for (int i = 0; i < listImpEmp.Count; i++)
{
string str0 = listImpEmp[i].EMP_NAME;
string strMobile = listImpEmp[i].EMP_MOBILE;
string strIdnumber = listImpEmp[i].IDNUMBER;
//验证手机号或身份证号是否存在
string sqlCheck = @"SELECT 1 c, 1 t from tbl_sys_emp WHERE USERS_UID = '" + strMobile + "' or EMP_MOBILE = '" + strMobile + @"'
union all
SELECT 1 c,2 t FROM tbl_sys_emp_cache WHERE Cache_Type='1' and Cache_State in ('0','1') and EMP_MOBILE = '" + strMobile + @"'
union all
SELECT 1 c, 3 t from tbl_sys_emp WHERE IDNUMBER = '" + strIdnumber + @"'
union all
SELECT 1 c,4 t FROM tbl_sys_emp_cache WHERE Cache_Type='1' and Cache_State in ('0','1') and IDNUMBER = '" + strIdnumber + "' ";
var dtCheck = FangYar.Common.MySqlHelper.QueryTable(sqlCheck);
if (dtCheck.Rows.Count > 0)
{
string str = "第" + (i + 1) + "行(姓名:" + str0 + "):";
for (int k = 0; k < dtCheck.Rows.Count; k++)
{
string strTyp = dtCheck.Rows[k]["t"] + "";
switch (strTyp)
{
//人员信息表手机号重复
case "1":
str += "手机号信息系统已经存在;";
break;
//新增审核手机号重复
case "2":
str += "手机号信息新增审核人员中存在重复;";
break;
//人员信息表身份证号重复
case "3":
str += "身份证号信息系统已经存在;";
break;
//新增审核身份证号重复
case "4":
str += "身份证号信息新增审核人员中存在重复;";
break;
}
}
returnstr = "{\"code\":0,\"msg\":\"" + str + "\",\"data\":[]}";
return returnstr;
}
}
string num = DateTime.Now.ToString("yyyyMMddhhmmssf");
//循环添加信息
for (int j = 0; j < listImpEmp.Count; j++)
{
var orgInfo = lisOrg.Where(p => p.ORG_NAME == listImpEmp[j].ORG_Name).FirstOrDefault();
string org_id = "";
if (orgInfo != null)
{
org_id = orgInfo.ORG_ID;
}
//审核表ID
string guid = Guid.NewGuid().ToString("N");
//
string guid1 = Guid.NewGuid().ToString("N");
StringBuilder strsql = new StringBuilder();
strsql.Append("insert into tbl_sys_emp_cache (ID,EmpId,USERS_UID,EMP_NAME,EMP_NUM,EMP_SEX,ORG_ID,DEPT_ID,EMP_EMAIL,EMP_MOBILE,IDNUMBER," +
"CERT,NATION,FACE,MAR,IS_WORK,PROF,POL,IS_DEL,PHOTO,IS_LEADER,ENLISTED_TIME,IS_ACCESS,IS_SUBCAMPVIDEO," +
"ISDRIVER,FILENUM,PERMISSIONNUM,FIRSTCARD,EFFECTIVETIME,PERMITTEDORGAN,BIRTHDAY,FAMILYADDR,ALL_ANNUAL_LEAVE,AVAILABLE_ANNUAL_LEAVE,TAGS," +
"POSTS,IS_ADMIN,ACCESSALLOWEDMODE,Cache_Type,Operation_EmpId,Operation_Org_Id,Cache_Remark,BLOOD_TYPE,PC_CODE,PC_FILE_NAME,PC_FILE_URL)");
strsql.Append("values");
strsql.Append("(@ID,@EmpId,@USERS_UID,@EMP_NAME,@EMP_NUM,@EMP_SEX,@ORG_ID,@DEPT_ID,@EMP_EMAIL,@EMP_MOBILE,@IDNUMBER,@CERT,@NATION," +
"@FACE,@MAR,@IS_WORK,@PROF,@POL,@IS_DEL,@PHOTO,@IS_LEADER,@ENLISTED_TIME,@IS_ACCESS,@IS_SUBCAMPVIDEO,@ISDRIVER,@FILENUM," +
"@PERMISSIONNUM,@FIRSTCARD,@EFFECTIVETIME,@PERMITTEDORGAN,@BIRTHDAY,@FAMILYADDR,@ALL_ANNUAL_LEAVE,@AVAILABLE_ANNUAL_LEAVE,@TAGS,@POSTS,@IS_ADMIN," +
"@ACCESSALLOWEDMODE,1,@Operation_EmpId,@Operation_Org_Id,@Cache_Remark,@BLOOD_TYPE,@PC_CODE,@PC_FILE_NAME,@PC_FILE_URL) ;");
MySqlParameter[] paras ={
new MySqlParameter("@ID",guid),
new MySqlParameter("@EmpId",Guid.NewGuid().ToString("N")),
new MySqlParameter("@USERS_UID",listImpEmp[j].EMP_MOBILE),
new MySqlParameter("@EMP_NAME",listImpEmp[j].EMP_NAME),
new MySqlParameter("@EMP_NUM",num+j),
new MySqlParameter("@EMP_SEX",listImpEmp[j].EMP_SEX),
new MySqlParameter("@ORG_ID", org_id),
new MySqlParameter("@DEPT_ID", ""),
new MySqlParameter("@EMP_EMAIL", listImpEmp[j].EMP_EMAIL),
new MySqlParameter("@EMP_MOBILE",listImpEmp[j].EMP_MOBILE),
new MySqlParameter("@IDNUMBER",listImpEmp[j].IDNUMBER),
new MySqlParameter("@CERT",GetDicVidel(listDic,"CERTTYPE", listImpEmp[j].CERT)),//需要处理
new MySqlParameter("@NATION",GetDicVidel(listDic,"NATIONTYPE", listImpEmp[j].NATION)),//需要处理
new MySqlParameter("@FACE", GetDicVidel(listDic,"FACETYPE", listImpEmp[j].FACE)),//需要处理
new MySqlParameter("@MAR",GetDicVidel(listDic,"MARTYPE",listImpEmp[j].MAR)),//需要处理
new MySqlParameter("@IS_WORK", "1"),
new MySqlParameter("@PROF",GetDicVidel(listDic,"PROFTYPE",listImpEmp[j].PROF)),//需要处理
new MySqlParameter("@POL", GetDicVidel(listDic,"POLTYPE",listImpEmp[j].POL)),//需要处理
new MySqlParameter("@IS_DEL","0"),
new MySqlParameter("@PHOTO",""),
new MySqlParameter("@IS_LEADER","0"),
new MySqlParameter("@ENLISTED_TIME",listImpEmp[j].ENLISTED_TIME),
new MySqlParameter("@IS_ACCESS","1"),
new MySqlParameter("@IS_SUBCAMPVIDEO","0"),
new MySqlParameter("@ISDRIVER","0"),
new MySqlParameter("@FILENUM",""),
new MySqlParameter("@PERMISSIONNUM", ""),
new MySqlParameter("@FIRSTCARD",""),
new MySqlParameter("@EFFECTIVETIME",""),
new MySqlParameter("@PERMITTEDORGAN",""),
new MySqlParameter("@BIRTHDAY",GetBirthDayByIdCard(listImpEmp[j].IDNUMBER)),//根据身份证获取出生日期
new MySqlParameter("@FAMILYADDR",listImpEmp[j].FAMILYADDR),
new MySqlParameter("@ALL_ANNUAL_LEAVE","0"),
new MySqlParameter("@AVAILABLE_ANNUAL_LEAVE","0"),
new MySqlParameter("@TAGS",listImpEmp[j].TAGS),
new MySqlParameter("@POSTS", ""),
new MySqlParameter("@IS_ADMIN","0"),
new MySqlParameter("@ACCESSALLOWEDMODE","0"),
new MySqlParameter("@Operation_EmpId",OpEid),
new MySqlParameter("@Operation_Org_Id",OpOrgId),
new MySqlParameter("@Cache_Remark",Cache_Remark),
new MySqlParameter("@BLOOD_TYPE",listImpEmp[j].BLOOD_TYPE),
new MySqlParameter("@PC_CODE",PC_CODE),
new MySqlParameter("@PC_FILE_NAME",fileName),
new MySqlParameter("@PC_FILE_URL",dbFileUlr),
};
strsql.Append(@" insert into tbl_sys_emp_move (ID,INSTANCEID,APPROVAL_RANK,SENDERID,SENDERNAME,SEND_ORG_ID
,SENDERTIME,RECEIVEID,RECEIVE_ORG_ID,OP_STATUS,Cache_Type,PC_CODE,PC_FILE_NAME,PC_FILE_URL)
SELECT '" + guid1 + "','" + guid + "',ADMIN_LEVEL-1,id,EMP_NAME,ORG_ID,now(),'" + ApprovalEid + "',(SELECT ORG_ID from tbl_sys_emp WHERE id='" + ApprovalEid +
"' LIMIT 1),'0','3','" + PC_CODE + "','" + fileName + "','" + dbFileUlr + "' from tbl_sys_emp WHERE id = '" + OpEid + "' ; ");
int i = FangYar.Common.MySqlHelper.ExecuteSql(strsql.ToString(), paras);
}
}
returnstr = "{\"code\":1,\"msg\":\"操作成功\",\"count\":0,\"data\":[]}";
}
catch (Exception ex)
{
returnstr = "{\"code\":0,\"msg\":\"导入异常:" + ex + "\",\"count\":0,\"data\":[]}";
// 记录操作日志
BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Query, "人员审核操作请求", "导入人员信息异常:" + ex);
}
// 记录操作日志
BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Query, "人员审核操作请求", "导入人员信息");
return returnstr;
}
/// <summary>
/// 根据身份证号返回出生日期
/// </summary>
/// <param name="idStr"></param>
/// <returns></returns>
private string GetBirthDayByIdCard(string idStr)
{
try
{
var ss = idStr.Substring(6, 8);
DateTime dt = DateTime.ParseExact(ss, "yyyyMMdd", System.Globalization.CultureInfo.CurrentCulture);
var str = dt.ToString("yyyy-MM-dd");
return str;
}
catch (Exception ex) { }
return "1900-01-01";
}
private string GetDicVidel(List<ImpDicMo> lisDic, string typeStr, string nameStr)
{
try
{
var l1 = lisDic.Where(p => p.MOD_CODE == typeStr && p.DIC_TEXT == nameStr);
if (l1.Count() > 0)
{
if (l1.Count() > 1)
{
var l2 = l1.Where(p => p.IS_ORG == "1");
if (l2.Count() > 0)
{
return l2.First().DIC_VALUE;
}
}
return l1.First().DIC_VALUE;
}
}
catch (Exception ex)
{
}
return "";
}
private DataTable SheetToDataTable(bool hasTitle, Worksheet sheet)
{
int iRowCount = sheet.Rows.Length;
int iColCount = sheet.Columns.Length;
DataTable dt = new DataTable();
//生成列头
for (int i = 0; i < iColCount; i++)
{
var name = "column" + i;
if (hasTitle)
{
var txt = sheet.Range[1, i + 1].Text;
if (!string.IsNullOrEmpty(txt)) name = txt;
}
while (dt.Columns.Contains(name)) name = name + "_1";//重复行名称会报错。
dt.Columns.Add(new DataColumn(name, typeof(string)));
}
//生成行数据
int rowIdx = hasTitle ? 2 : 1;
for (int iRow = rowIdx; iRow <= iRowCount; iRow++)
{
DataRow dr = dt.NewRow();
for (int iCol = 1; iCol <= iColCount; iCol++)
{
dr[iCol - 1] = sheet.Range[iRow, iCol].DisplayedText;
}
dt.Rows.Add(dr);
}
return RemoveEmpty(dt);
}
/// <summary>
/// 去除空行
/// </summary>
/// <param name="dt"></param>
/// <returns></returns>
private DataTable RemoveEmpty(DataTable dt)
{
List<DataRow> removelist = new List<DataRow>();
for (int i = 0; i < dt.Rows.Count; i++)
{
bool rowdataisnull = true;
for (int j = 0; j < dt.Columns.Count; j++)
{
if (!string.IsNullOrEmpty(dt.Rows[i][j].ToString().Trim()))
{
rowdataisnull = false;
}
}
if (rowdataisnull)
{
removelist.Add(dt.Rows[i]);
}
}
for (int i = 0; i < removelist.Count; i++)
{
dt.Rows.Remove(removelist[i]);
}
return dt;
}
/// <summary>
/// 导入人员模型
/// </summary>
public class ImpEmpMo
{
/// <summary>
/// 姓名
/// </summary>
public string EMP_NAME { get; set; }
/// <summary>
/// 性别
/// </summary>
public string EMP_SEX { get; set; }
/// <summary>
/// 营区
/// </summary>
public string ORG_Name { get; set; }
/// <summary>
/// 部门名称
/// </summary>
public string DEPT_Name { get; set; }
/// <summary>
/// 身份证号
/// </summary>
public string IDNUMBER { get; set; }
/// <summary>
/// 手机号
/// </summary>
public string EMP_MOBILE { get; set; }
/// <summary>
/// 邮箱
/// </summary>
public string EMP_EMAIL { get; set; }
/// <summary>
/// 学历
/// </summary>
public string CERT { get; set; }
/// <summary>
/// 民族
/// </summary>
public string NATION { get; set; }
/// <summary>
/// 政治面貌
/// </summary>
public string FACE { get; set; }
/// <summary>
/// 婚姻状况
/// </summary>
public string MAR { get; set; }
/// <summary>
/// 职位
/// </summary>
public string PROF { get; set; }
/// <summary>
/// 消防救援衔
/// </summary>
public string POL { get; set; }
/// <summary>
/// 入伍时间
/// </summary>
public string ENLISTED_TIME { get; set; }
/// <summary>
/// 家庭住址
/// </summary>
public string FAMILYADDR { get; set; }
/// <summary>
/// 标签
/// </summary>
public string TAGS { get; set; }
/// <summary>
/// 血型
/// </summary>
public string BLOOD_TYPE { get; set; }
}
/// <summary>
/// 导入机构模型
/// </summary>
public class ImpOrgMo
{
/// <summary>
/// 机构ID
/// </summary>
public string ORG_ID { get; set; }
/// <summary>
/// 机构名称
/// </summary>
public string ORG_NAME { get; set; }
}
/// <summary>
/// 导入选项数据模型
/// </summary>
public class ImpDicMo
{
/// <summary>
/// 信息ID
/// </summary>
public string ID { get; set; }
/// <summary>
/// 信息编码
/// </summary>
public string MOD_CODE { get; set; }
/// <summary>
/// 信息名称
/// </summary>
public string DIC_TEXT { get; set; }
/// <summary>
/// 信息值
/// </summary>
public string DIC_VALUE { get; set; }
/// <summary>
/// 上级编码
/// </summary>
public string DIC_FID { get; set; }
/// <summary>
/// 排序
/// </summary>
public string DIC_ORDER { get; set; }
/// <summary>
/// 0:新疆;1:西藏
/// </summary>
public string IS_ORG { get; set; }
}
#endregion
public bool IsReusable
{
get
{
return false;
}
}
}
}