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.
951 lines
42 KiB
951 lines
42 KiB
using FangYar.Common;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Data;
|
|
using System.Linq;
|
|
using System.Web;
|
|
|
|
namespace FangYar.WebUI.ashx
|
|
{
|
|
/// <summary>
|
|
/// OaVacationHandler 的摘要说明
|
|
/// </summary>
|
|
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);
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// PC后台查询
|
|
/// </summary>
|
|
/// <param name="context"></param>
|
|
/// <returns></returns>
|
|
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;
|
|
}
|
|
|
|
|
|
|
|
/// <summary>
|
|
/// 删除信息
|
|
/// </summary>
|
|
/// <param name="context"></param>
|
|
/// <returns></returns>
|
|
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;
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// 保存信息
|
|
/// </summary>
|
|
/// <param name="context"></param>
|
|
/// <returns></returns>
|
|
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;
|
|
}
|
|
|
|
|
|
|
|
/// <summary>
|
|
/// 返回顶班人
|
|
/// </summary>
|
|
/// <param name="context"></param>
|
|
/// <returns></returns>
|
|
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;
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// 返回审批人
|
|
/// </summary>
|
|
/// <param name="context"></param>
|
|
/// <returns></returns>
|
|
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;
|
|
}
|
|
|
|
|
|
|
|
/// <summary>
|
|
/// 处理休假信息
|
|
/// </summary>
|
|
/// <param name="context"></param>
|
|
/// <returns></returns>
|
|
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;
|
|
}
|
|
|
|
|
|
|
|
/// <summary>
|
|
/// APP个人提交信息查询
|
|
/// </summary>
|
|
/// <param name="context"></param>
|
|
/// <returns></returns>
|
|
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;
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// APP个人审批信息查询
|
|
/// </summary>
|
|
/// <param name="context"></param>
|
|
/// <returns></returns>
|
|
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;
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// APP查询顶班人
|
|
/// </summary>
|
|
/// <param name="context"></param>
|
|
/// <returns></returns>
|
|
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;
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// APP保存信息
|
|
/// </summary>
|
|
/// <param name="context"></param>
|
|
/// <returns></returns>
|
|
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;
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// APP处理休假信息
|
|
/// </summary>
|
|
/// <param name="context"></param>
|
|
/// <returns></returns>
|
|
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;
|
|
}
|
|
}
|
|
}
|
|
}
|