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

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