using FangYar.Common; using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Web; namespace FangYar.WebUI.ashx { /// /// OaVacationHandler 的摘要说明 /// public class OaVacationHandler : 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 "GetList": returnstr = GetVacationList(context); break; // APP个人提交信息查询 case "APPGetEmpVacationList": returnstr = APPGetEmpVacationList(context); break; // APP个人审核信息查询 case "APPGetEmpManageVacationList": returnstr = APPGetEmpManageVacationList(context); break; // 批量删除 case "DelVacation": returnstr = DelVacation(context); break; // 保存信息 case "SaveVacation": returnstr = SaveVacation(context); break; // APP保存信息 case "APPSaveVacation": returnstr = APPSaveVacation(context); break; // 返回顶班人 case "GetEmpReplaceList": returnstr = GetEmpReplaceList(context); break; // APP返回顶班人 case "AppGetEmpReplaceList": returnstr = AppGetEmpReplaceList(context); break; // 返回审批人 case "GetEmpApprovalList": returnstr = GetEmpApprovalList(context); break; // 处理休假信息 case "PostApprovalDeal": returnstr = PostApprovalDeal(context); break; // APP处理休假信息 case "APPPostApprovalDeal": returnstr = APPPostApprovalDeal(context); break; } context.Response.Write(returnstr); } /// /// PC后台查询 /// /// /// private string GetVacationList(HttpContext context) { string returnstr = ""; try { //查询组织机构 string OrgId = context.Request.Params["OrgId"]; //查询部门 string selDeptId = context.Request.Params["selDeptId"]; //查询时间 string searchTime = context.Request.Params["searchTime"]; // string keyword = context.Request.Params["keywords"]; //是否包含下级 string is_content = context.Request.Params["is_content"]; //部门信息ID string DeptID = context.Request.Params["DeptID"]; //是否管理员 string IsAdmin = context.Request.Params["IsAdmin"]; //登录账号ID string EmpId = context.Request.Params["EmpId"]; //审批状态 string Info_State = context.Request.Params["Info_State"]; string page = context.Request.Params["page"]; string limit = context.Request.Params["limit"]; int pageIndex = 1; int pageSize = 10; if (!string.IsNullOrEmpty(page)) { pageIndex = int.Parse(page); } if (!string.IsNullOrEmpty(limit)) { pageSize = int.Parse(limit); } pageIndex = pageIndex < 1 ? 1 : pageIndex; int startIndex = (pageIndex - 1) * pageSize; string whereStr = " ( 1=1 or Emp_Manage='" + EmpId + "' ) "; //是否包含下级 if (string.IsNullOrWhiteSpace(is_content)) { //不包含下级 whereStr += " and ORG_ID ='" + OrgId + "' "; } else { //包含下级 whereStr += " and ORG_ID in (SELECT ORG_ID from fire_org,(select get_Org_child_list('" + OrgId + "') cids ) s WHERE find_in_set(org_id,cids) ) "; } //是否查询某部门 if (!string.IsNullOrWhiteSpace(selDeptId)) { //包含部门查询条件 whereStr += " and PPL_ID in (SELECT id from tbl_sys_emp WHERE DEPT_ID ='" + selDeptId + "') "; } //是否管理员 if (IsAdmin == "1") { //管理员 } else { //非管理员 whereStr += " and (PPL_ID ='" + EmpId + "' or Emp_Manage='" + EmpId + "' ) "; } // 审批状态 if (!string.IsNullOrWhiteSpace(Info_State)) { whereStr += " and Info_State ='" + Info_State + "' "; } else { whereStr += " and Info_State <> '-1' "; } string sqlCount = " select count(1) from oa_vacation where " + whereStr; string sqlQuery = @"WITH t1 as(SELECT * from oa_vacation where " + whereStr + " ORDER BY CREATETIME DESC LIMIT " + startIndex + "," + pageSize + @") SELECT t1.*,e1.EMP_NAME PPL_NAME, e2.EMP_NAME REP_PPL_NAME, e3.EMP_NAME EMP_MANAGE_NAME from t1 LEFT JOIN tbl_sys_emp e1 on t1.PPL_ID = e1.ID LEFT JOIN tbl_sys_emp e2 on t1.REP_PPL = e2.ID LEFT JOIN tbl_sys_emp e3 on t1.Emp_Manage = e3.ID "; var dt1 = FangYar.Common.MySqlHelper.QueryTable(sqlQuery); var dt2 = FangYar.Common.MySqlHelper.QueryTable(sqlCount); returnstr = "{\"code\":0,\"msg\":\"\","; returnstr += "\"count\":" + dt2.Rows[0][0] + ",\"data\":"; returnstr += FangYar.Common.JsonHelper.ToJson(dt1); 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; } /// /// 删除信息 /// /// /// private string DelVacation(HttpContext context) { string returnstr = ""; int code = -1; string msg = ""; string delempdvc = ""; try { //休假信息ID string vId = context.Request.Params["vId"]; string sql = " update oa_vacation set Info_State = '-1' where id ='" + vId + "' "; int num = FangYar.Common.MySqlHelper.Execute(sql); if (num > 0) { msg = "成功!"; code = 1; } else { msg = "删除失败!"; } } catch (Exception e) { msg = e.Message; // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Error, "人员休假操作请求", "删除异常:" + e); } returnstr = "{\"code\":" + code + ",\"msg\":\"" + msg + "\",\"delempdvc\":\"" + delempdvc + "\"}"; // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Delete, "人员休假操作请求", "删除"); return returnstr; } /// /// 保存信息 /// /// /// private string SaveVacation(HttpContext context) { string returnstr = ""; int code = -1; string msg = ""; string delempdvc = ""; try { //休假信息ID string vId = context.Request.Params["vId"]; //用户信息ID string eId = context.Request.Params["eId"]; //开始时间 string sTime = context.Request.Params["sTime"]; //结束时间 string eTime = context.Request.Params["eTime"]; //顶班人 string REP_PPL = context.Request.Params["REP_PPL"]; //信息处理人员 string Emp_Manage = context.Request.Params["Emp_Manage"]; //人员所属机构ID string ORG_ID = context.Request.Params["ORG_ID"]; //实例化信息ID string ID = Guid.NewGuid().ToString("N"); // 验证开始时间格式 if (DateTime.TryParse(sTime, out DateTime dt1)) { //验证结束时间格式 if (DateTime.TryParse(eTime, out DateTime dt2)) { if (!string.IsNullOrWhiteSpace(Emp_Manage)) { //判断时间是否正确 if (dt2 > dt1) { //拼接插入Sql语句 string sql = "insert into oa_vacation(" + "ID,PPL_ID,S_TIME,E_TIME,REP_PPL,createtime,Info_State,Emp_Manage,ORG_ID" + ") values (" + "'" + ID + "','" + eId + "', '" + sTime + "','" + eTime + "','" + REP_PPL + "',now(),'0','" + Emp_Manage + "','" + ORG_ID + "' )"; //判断信息ID是否为空 if (!string.IsNullOrWhiteSpace(vId)) { //信息ID不为空,则更新信息 sql = " update oa_vacation set S_TIME='" + sTime + "',E_TIME='" + eTime + "',REP_PPL='" + REP_PPL + "',Emp_Manage='" + Emp_Manage + "' where ID='" + vId + "' "; } int i = FangYar.Common.MySqlHelper.Execute(sql); if (i > 0) { msg = "成功!"; code = 1; } else { msg = "添加失败!"; } } else { msg = "开始时间必须小于结束时间!"; } } else { msg = "请选择审批人!"; } } else { msg = "结束时间错误!"; } } else { msg = "开始时间错误!"; } } catch (Exception e) { msg = e.Message; // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Error, "人员休假操作请求", "添加异常:" + e); } returnstr = "{\"code\":" + code + ",\"msg\":\"" + msg + "\",\"delempdvc\":\"" + delempdvc + "\"}"; // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Add, "人员休假操作请求", "添加"); return returnstr; } /// /// 返回顶班人 /// /// /// private string GetEmpReplaceList(HttpContext context) { string returnstr = ""; try { // 组织机构信息ID string OrgId = context.Request.Params["OrgId"]; // 部门信息ID string DeptID = context.Request.Params["DeptID"]; // 用户信息ID string EmpId = context.Request.Params["EmpId"]; string sqlStr = @" WITH t1 as( SELECT * from tbl_sys_emp WHERE IS_DEL='0' and IS_ADMIN='0' and ORG_ID='" + OrgId + "' and id <> '" + EmpId + @"' ) SELECT* from(SELECT* from t1 WHERE DEPT_ID= '" + DeptID + @"' ORDER BY IS_LEADER DESC) t2 union SELECT* from(SELECT* from t1 WHERE DEPT_ID<> '" + DeptID + "' ORDER BY IS_LEADER DESC) t3 "; var dt1 = FangYar.Common.MySqlHelper.QueryTable(sqlStr); returnstr = "{\"code\":0,\"msg\":\"\",\"data\":"; returnstr += FangYar.Common.JsonHelper.ToJson(dt1); 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; } /// /// 返回审批人 /// /// /// private string GetEmpApprovalList(HttpContext context) { string returnstr = ""; try { // 用户信息ID string EmpId = context.Request.Params["EmpId"]; string sqlStr = @"SELECT id,EMP_NAME,ORG_ID,DEPT_ID,TAGS ,(SELECT PID from fire_org o WHERE o.ORG_ID=tbl_sys_emp.ORG_ID LIMIT 1 ) ORGPID ,(SELECT ORG_NAME from fire_org o WHERE o.ORG_ID=tbl_sys_emp.DEPT_ID LIMIT 1 ) DEPTNAME ,(SELECT EXTENDCODE1 from fire_org o WHERE o.ORG_ID=tbl_sys_emp.ORG_ID LIMIT 1 ) ORGTYPE from tbl_sys_emp WHERE id='" + EmpId + "'"; var dt1 = FangYar.Common.MySqlHelper.QueryTable(sqlStr); //当前机构ID var OrgId = dt1.Rows[0]["ORG_ID"] + ""; //机构信息ID var DeptID = dt1.Rows[0]["DEPT_ID"] + ""; // 上级机构信息ID var ORGPID = dt1.Rows[0]["ORGPID"] + ""; // 标签 var TAGS = dt1.Rows[0]["TAGS"] + ""; // 单位类型:0:支队;1:特勤站;2:大队;3:总队 var ORGTYPE = dt1.Rows[0]["ORGTYPE"] + ""; // 部门名称 var DEPTNAME = dt1.Rows[0]["DEPTNAME"] + ""; string sqlStr1 = " "; //判断是否单位负责人休假 if (TAGS.IndexOf("负责人") > 0 || TAGS.IndexOf("分管领导") > 0 || TAGS.IndexOf("主官") > 0) { // 总队或支队ID转机关ID var orgPidJg = WebCommonUtil.GetOrgIdUpLevelToDownLevel(ORGPID); // 查询上级机构信息 string sqlStrPOrg = " select * from fire_org WHERE org_id='" + ORGPID + "' "; var dtPorg = FangYar.Common.MySqlHelper.QueryTable(sqlStrPOrg); // 单位类型:0:支队;1:特勤站;2:大队;3:总队 var ORGPTYPE = dtPorg.Rows[0]["EXTENDCODE1"] + ""; // 负责人休假,获取上级单位信息,判断上级单位类型:0:支队;1:特勤站;2:大队;3:总队 switch (ORGPTYPE) { // 支队 case "0": // 总队 case "3": //判断原单位级别 switch (ORGTYPE) { // 支队 case "0": //判断原单位是否勤务大队 if (DEPTNAME.IndexOf("勤务") > 0) { sqlStr1 = " SELECT ID,USERS_UID,DEPT_ID, EMP_NAME from tbl_sys_emp WHERE ( locate('负责人',TAGS )>0 or locate('分管领导',TAGS )>0 or locate('主官',TAGS )>0 ) " + " and DEPT_ID in (SELECT ORG_ID from fire_org WHERE pid = '" + OrgId + "' and(locate('政治', ORG_NAME) > 0 or locate('队务', ORG_NAME) > 0 or locate('人事', ORG_NAME) > 0)) "; } else { //判断是否领导部门 if (DEPTNAME.IndexOf("领导") > 0) { sqlStr1 = " SELECT ID,USERS_UID,DEPT_ID, EMP_NAME from tbl_sys_emp WHERE ( locate('负责人',TAGS )>0 or locate('分管领导',TAGS )>0 or locate('主官',TAGS )>0 ) " + " and DEPT_ID in (SELECT ORG_ID from fire_org WHERE pid = '734389c7ae364584aea9918693bba3de' " + " and(locate('政治', ORG_NAME) > 0 or locate('队务', ORG_NAME) > 0 or locate('人事', ORG_NAME) > 0)) "; } else { //判断是否存在领导部门 string sqlStr2 = " SELECT * from fire_org WHERE pid='" + OrgId + "' and ORG_NAME like '%领导%' "; //查询领导部门 var dtLD = FangYar.Common.MySqlHelper.QueryTable(sqlStr2); if (dtLD.Rows.Count > 0) { //查询支队领导负责人 sqlStr1 = " SELECT ID,USERS_UID,DEPT_ID, EMP_NAME from tbl_sys_emp WHERE ORG_ID='" + OrgId + "' and DEPT_ID='" + dtLD.Rows[0]["ORG_ID"] + "' "; } else { ////没有领导部门,直接查询总队政治部相关负责人 //sqlStr1 = " SELECT ID,USERS_UID,DEPT_ID, EMP_NAME from tbl_sys_emp WHERE ( locate('负责人',TAGS )>0 or locate('分管领导',TAGS )>0 or locate('主官',TAGS )>0 ) " + // " and DEPT_ID in (SELECT ORG_ID from fire_org WHERE pid = '734389c7ae364584aea9918693bba3de' " + // " and(locate('政治', ORG_NAME) > 0 or locate('队务', ORG_NAME) > 0 or locate('人事', ORG_NAME) > 0)) "; //没有领导部门,返回支队主官 sqlStr1 = " SELECT ID,USERS_UID,DEPT_ID, EMP_NAME from tbl_sys_emp WHERE ORG_ID='" + OrgId + "' and locate('支队主官',TAGS )>0 "; } } } break; // 总队 case "3": //判断原单位是否勤务大队 if (DEPTNAME.IndexOf("勤务") > 0) { sqlStr1 = " SELECT ID,USERS_UID,DEPT_ID, EMP_NAME from tbl_sys_emp WHERE ( locate('负责人',TAGS )>0 or locate('分管领导',TAGS )>0 or locate('主官',TAGS )>0 ) " + " and DEPT_ID in (SELECT ORG_ID from fire_org WHERE pid = '" + OrgId + "' and(locate('政治', ORG_NAME) > 0 or locate('队务', ORG_NAME) > 0 or locate('人事', ORG_NAME) > 0)) "; } else { //不是勤务大队,返回总队领导 sqlStr1 = " SELECT ID,USERS_UID,DEPT_ID, EMP_NAME from tbl_sys_emp WHERE ORG_ID='734389c7ae364584aea9918693bba3de' and DEPT_ID='6c9972c7ef2b4388b329003738962af7' "; } break; default: //原单位是消防站或大队,上呈至支队或总队的,由支队或总队机关的队伍处、政治部、人事处处理 sqlStr1 = " SELECT ID,USERS_UID,DEPT_ID, EMP_NAME from tbl_sys_emp WHERE ( locate('负责人',TAGS )>0 or locate('分管领导',TAGS )>0 or locate('主官',TAGS )>0 ) " + " and DEPT_ID in (SELECT ORG_ID from fire_org WHERE pid = '" + orgPidJg + "' "; //判断是否昌都支队 if (!orgPidJg.Equals("335ef5c069954872a50d012b4676393a")) { //不是昌都支队 sqlStr1 += " and (locate('政治', ORG_NAME) > 0 or locate('队务', ORG_NAME) > 0 or locate('人事', ORG_NAME) > 0)) "; } else { //昌都支队 sqlStr1 += " and (locate('政治', ORG_NAME) > 0 or locate('领导', ORG_NAME) > 0 or locate('队务', ORG_NAME) > 0 or locate('人事', ORG_NAME) > 0)) "; } break; } break; //默认查询当前机构负责人 default: sqlStr1 = " SELECT ID,USERS_UID,DEPT_ID, EMP_NAME from tbl_sys_emp WHERE ORG_ID='" + ORGPID + "' and ( locate('负责人',TAGS )>0 or locate('分管领导',TAGS )>0 or locate('主官',TAGS )>0 ) "; break; } } else { // 非负责人休假,获取本级单位负责人信息 switch (ORGTYPE) { // 总队、支队,只返回本部门负责人信息 case "0": case "3": sqlStr1 = " SELECT ID,USERS_UID,DEPT_ID, EMP_NAME from tbl_sys_emp WHERE ORG_ID='" + OrgId + "' and DEPT_ID='" + DeptID + "' and ( locate('负责人',TAGS )>0 or locate('分管领导',TAGS )>0 or locate('主官',TAGS )>0 ) "; break; default: sqlStr1 = " SELECT ID,USERS_UID,DEPT_ID, EMP_NAME from tbl_sys_emp WHERE ORG_ID='" + OrgId + "' and ( locate('负责人',TAGS )>0 or locate('分管领导',TAGS )>0 or locate('主官',TAGS )>0 ) "; break; } } // 拼接休假顶班人替换功能 sqlStr1 = " WITH t1 as( " + sqlStr1 + " ) SELECT * from t1 WHERE id not in (SELECT PPL_ID from oa_vacation WHERE S_TIME < NOW() and E_TIME > NOW() and Info_State='1') " + " UNION SELECT ID,USERS_UID,DEPT_ID, EMP_NAME from tbl_sys_emp WHERE id in (SELECT REP_PPL from oa_vacation WHERE S_TIME < NOW() and E_TIME > NOW() and Info_State='1' " + " and PPL_ID in (SELECT id from t1)) "; var dtRet = FangYar.Common.MySqlHelper.QueryTable(sqlStr1); var deptIdStr = ""; for (int i = 0; i < dtRet.Rows.Count; i++) { if (i > 0) { deptIdStr += ","; } deptIdStr += dtRet.Rows[i]["DEPT_ID"] + ""; } returnstr = "{\"code\":0,\"msg\":\"\",\"deptIdStr\":\"" + deptIdStr + "\",\"data\":"; returnstr += FangYar.Common.JsonHelper.ToJson(dtRet); 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; } /// /// 处理休假信息 /// /// /// private string PostApprovalDeal(HttpContext context) { string returnstr = ""; int code = -1; string msg = ""; string delempdvc = ""; try { //休假信息ID string vId = context.Request.Params["vId"]; // 处理意见 string remark = context.Request.Params["remark"]; //审批状态:1、同意;2、拒绝 string Info_State = context.Request.Params["infoState"]; switch (Info_State) { case "1": case "2": string sql = " update oa_vacation set Info_State = '" + Info_State + "' ,Remark='" + remark + "' where id ='" + vId + "' "; int num = FangYar.Common.MySqlHelper.Execute(sql); if (num > 0) { msg = "成功!"; code = 1; } else { msg = "操作失败!"; } break; default: msg = "审批状态异常!"; break; } } catch (Exception e) { msg = e.Message; // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Error, "人员休假操作请求", "审批异常:" + e); } returnstr = "{\"code\":" + code + ",\"msg\":\"" + msg + "\",\"delempdvc\":\"" + delempdvc + "\"}"; // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Update, "人员休假操作请求", "处理休假信息"); return returnstr; } /// /// APP个人提交信息查询 /// /// /// private string APPGetEmpVacationList(HttpContext context) { string returnstr = ""; try { //登录账号ID string EmpId = context.Request.Params["EmpId"]; string page = context.Request.Params["page"]; string limit = context.Request.Params["limit"]; int pageIndex = 1; int pageSize = 10; if (!string.IsNullOrEmpty(page)) { pageIndex = int.Parse(page); } if (!string.IsNullOrEmpty(limit)) { pageSize = int.Parse(limit); } pageIndex = pageIndex < 1 ? 1 : pageIndex; int startIndex = (pageIndex - 1) * pageSize; string whereStr = " Info_State <> '-1' "; whereStr += " and PPL_ID ='" + EmpId + "' "; string sqlCount = " select count(1) from oa_vacation where " + whereStr; string sqlQuery = @"WITH t1 as(SELECT * from oa_vacation where " + whereStr + " ORDER BY CREATETIME DESC LIMIT " + startIndex + "," + pageSize + @") SELECT t1.*,CONCAT(e1.EMP_NAME,'的休假') PPL_NAME, e2.EMP_NAME REP_PPL_NAME, e3.EMP_NAME EMP_MANAGE_NAME from t1 LEFT JOIN tbl_sys_emp e1 on t1.PPL_ID = e1.ID LEFT JOIN tbl_sys_emp e2 on t1.REP_PPL = e2.ID LEFT JOIN tbl_sys_emp e3 on t1.Emp_Manage = e3.ID "; var dt1 = FangYar.Common.MySqlHelper.QueryTable(sqlQuery); var dt2 = FangYar.Common.MySqlHelper.QueryTable(sqlCount); returnstr = "{\"code\":0,\"msg\":\"\","; returnstr += "\"count\":" + dt2.Rows[0][0] + ",\"data\":"; returnstr += FangYar.Common.JsonHelper.ToJson(dt1); 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, "人员休假操作请求", "APP个人提交审批信息查询"); return returnstr; } /// /// APP个人审批信息查询 /// /// /// private string APPGetEmpManageVacationList(HttpContext context) { string returnstr = ""; try { //登录账号ID string EmpId = context.Request.Params["EmpId"]; //审批状态:0、未审批;1、已经审批 string Info_State = context.Request.Params["infoState"]; string page = context.Request.Params["page"]; string limit = context.Request.Params["limit"]; int pageIndex = 1; int pageSize = 10; if (!string.IsNullOrEmpty(page)) { pageIndex = int.Parse(page); } if (!string.IsNullOrEmpty(limit)) { pageSize = int.Parse(limit); } pageIndex = pageIndex < 1 ? 1 : pageIndex; int startIndex = (pageIndex - 1) * pageSize; string whereStr = " Info_State <> '-1' "; whereStr += " and Emp_Manage ='" + EmpId + "' "; // 审批状态 if (Info_State == "0") { whereStr += " and Info_State ='0' "; } else { whereStr += " and Info_State >0 "; } string sqlCount = " select count(1) from oa_vacation where " + whereStr; string sqlQuery = @"WITH t1 as(SELECT * from oa_vacation where " + whereStr + " ORDER BY CREATETIME DESC LIMIT " + startIndex + "," + pageSize + @") SELECT t1.*,CONCAT(e1.EMP_NAME,'的休假') PPL_NAME, e2.EMP_NAME REP_PPL_NAME, e3.EMP_NAME EMP_MANAGE_NAME from t1 LEFT JOIN tbl_sys_emp e1 on t1.PPL_ID = e1.ID LEFT JOIN tbl_sys_emp e2 on t1.REP_PPL = e2.ID LEFT JOIN tbl_sys_emp e3 on t1.Emp_Manage = e3.ID "; var dt1 = FangYar.Common.MySqlHelper.QueryTable(sqlQuery); var dt2 = FangYar.Common.MySqlHelper.QueryTable(sqlCount); returnstr = "{\"code\":0,\"msg\":\"\","; returnstr += "\"count\":" + dt2.Rows[0][0] + ",\"data\":"; returnstr += FangYar.Common.JsonHelper.ToJson(dt1); 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, "人员休假操作请求", "APP个人审批信息查询"); return returnstr; } /// /// APP查询顶班人 /// /// /// private string AppGetEmpReplaceList(HttpContext context) { string returnstr = ""; try { string orgId = context.Request.Params["OrgId"]; string deptId = context.Request.Params["deptId"]; // 用户信息ID string EmpId = context.Request.Params["EmpId"]; string sqlStr = @"SELECT '' EmpId,o.org_id id, o.org_name name, o.pid pid, CASE o.TYPE WHEN 0 THEN 'org' WHEN 1 THEN 'dept' ELSE o.TYPE END AS TYPE, o.sort sort,'' as photo FROM fire_org o ,(select get_Org_child_Dept_list_OrgIds((SELECT CONCAT( IFNULL(( SELECT t.ORG_ID FROM fire_org t WHERE t.pid = '" + orgId + "' and t.isorg = '1' ),''), ',', '" + orgId + @"' ) FROM DUAL)) cids ) s WHERE find_in_set(o.org_id,cids) union select e.id EmpId,e.users_uid id,e.emp_name name,IF((ISNULL(e.dept_id) > 0 or LENGTH(trim(e.dept_id))=0),e.org_id,e.dept_id) pid, 'emp' type, (case when e.is_leader is not null then e.is_leader else 1 end) sort,IF((ISNULL(PHOTO) > 0 or LENGTH(trim(PHOTO))=0),'images/imgPerDefaut.jpg',PHOTO) photo from tbl_sys_emp e,(select get_Org_child_Dept_list_OrgIds((SELECT CONCAT( IFNULL(( SELECT t.ORG_ID FROM fire_org t WHERE t.pid = '" + orgId + "' and t.isorg = '1'),''), ',', '" + orgId + @"' ) FROM DUAL)) cids ) s WHERE IS_ADMIN='0' and find_in_set(e.org_id,cids) and e.users_uid is not null and e.is_del != '1' and id <> '" + EmpId + "' order by id ='" + deptId + "' DESC,type, sort desc"; returnstr = "{\"code\":0,\"msg\":\"\",\"data\":"; var dt2 = FangYar.Common.MySqlHelper.QueryTable(sqlStr); returnstr += FangYar.Common.JsonHelper.ToJson(dt2); returnstr += "}"; } catch (Exception e) { returnstr = "{\"code\":-1,\"msg\":\"error\",\"data\":[]}"; // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Error, "人员休假操作请求", "APP查询顶班人异常:" + e); } // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Query, "人员休假操作请求", "APP查询顶班人"); return returnstr; } /// /// APP保存信息 /// /// /// private string APPSaveVacation(HttpContext context) { string returnstr = ""; int code = -1; string msg = ""; string delempdvc = ""; try { //休假信息ID string vId = context.Request.Params["vId"]; //用户信息ID string eId = context.Request.Params["eId"]; //开始时间 string sTime = context.Request.Params["sTime"]; //结束时间 string eTime = context.Request.Params["eTime"]; //顶班人 string REP_PPL = context.Request.Params["REP_PPL"]; //信息处理人员 string Emp_Manage = context.Request.Params["Emp_Manage"]; //人员所属机构ID string ORG_ID = context.Request.Params["ORG_ID"]; //实例化信息ID string ID = Guid.NewGuid().ToString("N"); // 验证开始时间格式 if (DateTime.TryParse(sTime, out DateTime dt1)) { //验证结束时间格式 if (DateTime.TryParse(eTime, out DateTime dt2)) { if (!string.IsNullOrWhiteSpace(Emp_Manage)) { //判断时间是否正确 if (dt2 > dt1) { //拼接插入Sql语句 string sql = "insert into oa_vacation(" + "ID,PPL_ID,S_TIME,E_TIME,REP_PPL,createtime,Info_State,Emp_Manage,ORG_ID" + ") values (" + "'" + ID + "','" + eId + "', '" + sTime + "','" + eTime + "','" + REP_PPL + "',now(),'0','" + Emp_Manage + "','" + ORG_ID + "' )"; //判断信息ID是否为空 if (!string.IsNullOrWhiteSpace(vId)) { //信息ID不为空,则更新信息 sql = " update oa_vacation set S_TIME='" + sTime + "',E_TIME='" + eTime + "',REP_PPL='" + REP_PPL + "',Emp_Manage='" + Emp_Manage + "' where ID='" + vId + "' "; } int i = FangYar.Common.MySqlHelper.Execute(sql); if (i > 0) { msg = "成功!"; code = 1; } else { msg = "添加失败!"; } } else { msg = "开始时间必须小于结束时间!"; } } else { msg = "请选择审批人!"; } } else { msg = "结束时间错误!"; } } else { msg = "开始时间错误!"; } } catch (Exception e) { msg = e.Message; // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Error, "人员休假操作请求", "APP添加休假信息异常:" + e); } returnstr = "{\"code\":" + code + ",\"msg\":\"" + msg + "\",\"delempdvc\":\"" + delempdvc + "\"}"; // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Add, "人员休假操作请求", "APP添加休假信息"); return returnstr; } /// /// APP处理休假信息 /// /// /// private string APPPostApprovalDeal(HttpContext context) { string returnstr = ""; int code = -1; string msg = ""; string delempdvc = ""; try { //休假信息ID string vId = context.Request.Params["vId"]; // 处理意见 string remark = context.Request.Params["remark"]; //审批状态:1、同意;2、拒绝 string Info_State = context.Request.Params["infoState"]; switch (Info_State) { case "1": case "2": string sql = " update oa_vacation set Info_State = '" + Info_State + "' ,Remark='" + remark + "' where id ='" + vId + "' "; int num = FangYar.Common.MySqlHelper.Execute(sql); if (num > 0) { msg = "成功!"; code = 1; } else { msg = "失败!"; } break; default: msg = "审批状态异常!"; break; } } catch (Exception e) { msg = e.Message; // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Error, "人员休假操作请求", "审批异常:" + e); } returnstr = "{\"code\":" + code + ",\"msg\":\"" + msg + "\",\"delempdvc\":\"" + delempdvc + "\"}"; // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Update, "人员休假操作请求", "APP处理休假信息"); return returnstr; } public bool IsReusable { get { return false; } } } }