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.
447 lines
19 KiB
447 lines
19 KiB
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Web;
|
|
using System.Data;
|
|
using System.Text;
|
|
using System.Collections;
|
|
using System.Reflection;
|
|
using System.Web.Script.Serialization;
|
|
using FangYar.Model;
|
|
using FangYar.BLL;
|
|
using Newtonsoft.Json.Linq;
|
|
using Newtonsoft.Json;
|
|
|
|
namespace FangYar.WebUI.ashx
|
|
{
|
|
/// <summary>
|
|
/// OaLeaveHandler 的摘要说明
|
|
/// </summary>
|
|
public class OaAttendanceTaskHandler : IHttpHandler
|
|
{
|
|
private FangYar.BLL.OA.OA_ATTENDANCE_TASK bll = new FangYar.BLL.OA.OA_ATTENDANCE_TASK();
|
|
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 "AttendanceTaskListByUID":
|
|
returnstr = GetAttendanceTaskListByUID(context);
|
|
break;
|
|
case "AttendanceTaskList":
|
|
returnstr = GetAttendanceTaskList(context);
|
|
break;
|
|
case "Add":
|
|
returnstr = AddAttendanceTask(context);
|
|
break;
|
|
case "Edit":
|
|
returnstr = EditAttendanceTask(context);
|
|
break;
|
|
case "Del":
|
|
returnstr = DelAttendanceTask(context);
|
|
break;
|
|
case "getRecordList":
|
|
returnstr = DelAttendanceTask(context);
|
|
break;
|
|
case "getAttendance":
|
|
returnstr = getAttendance(context);
|
|
break;
|
|
case "HistoryListByDate":
|
|
returnstr = getHistoryListByDate(context);
|
|
break;
|
|
}
|
|
|
|
context.Response.Write(returnstr);
|
|
}
|
|
|
|
|
|
//根据UID查询考勤任务
|
|
private string GetAttendanceTaskListByUID(HttpContext context)
|
|
{
|
|
string returnstr = "";
|
|
try
|
|
{
|
|
string UID = context.Request.Params["UID"];
|
|
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); }
|
|
|
|
string where = "";
|
|
if (!string.IsNullOrEmpty(UID))
|
|
{
|
|
where += " find_in_set ('" + UID + "',ATTENDANCE_USER_UID) ";
|
|
}
|
|
else
|
|
{
|
|
return "{\"code\":-1,\"msg\":\"参数错误\",\"count\":0,\"data\":[]}";
|
|
}
|
|
where += " and ATTENDANCE_DATE = '" + DateTime.Now.ToString("yyyy-MM-dd") + "' ";
|
|
returnstr = "{\"code\":0,\"msg\":\"\",";
|
|
int count = bll.GetRecordCount(where);
|
|
returnstr += "\"count\":" + count + ",\"data\":";
|
|
if (count == 0)
|
|
{
|
|
returnstr += "[]";
|
|
}
|
|
else
|
|
{
|
|
List<FangYar.Model.OA.OA_ATTENDANCE_TASK> list = bll.GetModelList(pageIndex, pageSize, where, " ATTENDANCE_DATE desc");
|
|
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, "考勤任务操作请求", "根据UID查询考勤任务异常:" + e);
|
|
}
|
|
// 记录操作日志
|
|
BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Query, "考勤任务操作请求", "根据UID查询考勤任务");
|
|
return returnstr;
|
|
}
|
|
|
|
//查询
|
|
private string GetAttendanceTaskList(HttpContext context)
|
|
{
|
|
string returnstr = "";
|
|
try
|
|
{
|
|
string ORG_ID = context.Request.Params["ORG_ID"];
|
|
string keyword = context.Request.Params["keywords"];
|
|
string treeID = context.Request.Params["treeID"];
|
|
string page = context.Request.Params["page"];
|
|
string limit = context.Request.Params["limit"];
|
|
|
|
|
|
int pageIndex = 1;
|
|
int pageSize = 10;
|
|
int startIndex = 0;
|
|
int endIndex = 10;
|
|
if (!string.IsNullOrEmpty(page)) { pageIndex = int.Parse(page); }
|
|
if (!string.IsNullOrEmpty(limit)) { pageSize = int.Parse(limit); }
|
|
startIndex = (pageIndex - 1) * pageSize;
|
|
endIndex = pageSize;
|
|
|
|
string where = "";
|
|
if (!string.IsNullOrEmpty(treeID) && treeID != ORG_ID)
|
|
{
|
|
ORG_ID = treeID;
|
|
}
|
|
if (!string.IsNullOrEmpty(ORG_ID))
|
|
{
|
|
where += " ORG_ID = '" + ORG_ID + "' ";
|
|
}
|
|
else
|
|
{
|
|
return "{\"code\":0,\"msg\":\"error\",\"count\":0,\"data\":[]}";
|
|
}
|
|
if (!string.IsNullOrEmpty(keyword))
|
|
{
|
|
where += "and TASK_NAME like '%" + keyword + "%' ";
|
|
}
|
|
returnstr = "{\"code\":0,\"msg\":\"\",";
|
|
int count = bll.GetRecordCount(where);
|
|
returnstr += "\"count\":" + count + ",\"data\":";
|
|
if (count == 0)
|
|
{
|
|
returnstr += "[]";
|
|
}
|
|
else
|
|
{
|
|
string order = " ATTENDANCE_DATE DESC";
|
|
List<FangYar.Model.OA.OA_ATTENDANCE_TASK> list = bll.GetModelList(pageIndex,pageSize,where, order);
|
|
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;
|
|
}
|
|
|
|
//添加考勤任务
|
|
private string AddAttendanceTask(HttpContext context)
|
|
{
|
|
string returnstr = "";
|
|
int code = -1;
|
|
string msg = "";
|
|
try
|
|
{
|
|
string ID = Guid.NewGuid().ToString("N");
|
|
string TASK_NAME = context.Request.Params["TASK_NAME"];
|
|
string LOCATION = context.Request.Params["LOCATION"];
|
|
string UP_START_DATE = context.Request.Params["UP_START_DATE"];
|
|
string UP_END_DATE = context.Request.Params["UP_END_DATE"];
|
|
string DOWN_START_DATE = context.Request.Params["DOWN_START_DATE"];
|
|
string DOWN_END_DATE = context.Request.Params["DOWN_END_DATE"];
|
|
string ORG_ID = context.Request.Params["ORG_ID"];
|
|
string ORG_NAME = context.Request.Params["ORG_NAME"];
|
|
string ATTENDANCE_DATE = context.Request.Params["ATTENDANCE_DATE"];
|
|
string REMARKS = context.Request.Params["REMARKS"];
|
|
string EXTEND1 = context.Request.Params["EXTEND1"];
|
|
string EXTEND2 = context.Request.Params["EXTEND2"];
|
|
string EXTEND3 = context.Request.Params["EXTEND3"];
|
|
string EXTEND4 = context.Request.Params["EXTEND4"];
|
|
string EXTEND5 = context.Request.Params["EXTEND5"];
|
|
string EXTEND6 = context.Request.Params["EXTEND6"];
|
|
string ATTENDANCE_USER = context.Request.Params["ATTENDANCE_USER"];
|
|
string ATTENDANCE_USER_UID = context.Request.Params["ATTENDANCE_USER_UID"];
|
|
string ATTENDANCE_USER_NAME = context.Request.Params["ATTENDANCE_USER_NAME"];
|
|
|
|
//考勤任务表
|
|
FangYar.Model.OA.OA_ATTENDANCE_TASK model = new Model.OA.OA_ATTENDANCE_TASK();
|
|
model.ID = ID;
|
|
model.TASK_NAME = TASK_NAME;
|
|
model.LOCATION = LOCATION;
|
|
model.UP_START_DATE = UP_START_DATE;
|
|
model.UP_END_DATE = UP_END_DATE;
|
|
model.DOWN_START_DATE = DOWN_START_DATE;
|
|
model.DOWN_END_DATE = DOWN_END_DATE;
|
|
model.ORG_ID = ORG_ID;
|
|
model.ORG_NAME = ORG_NAME;
|
|
model.ATTENDANCE_DATE = ATTENDANCE_DATE;
|
|
model.REMARKS = REMARKS;
|
|
model.EXTEND1 = EXTEND1;
|
|
model.EXTEND2 = EXTEND2;
|
|
model.EXTEND3 = EXTEND3;
|
|
model.EXTEND4 = EXTEND4;
|
|
model.EXTEND5 = EXTEND5;
|
|
model.EXTEND6 = EXTEND6;
|
|
model.ATTENDANCE_USER = ATTENDANCE_USER;
|
|
model.ATTENDANCE_USER_UID = ATTENDANCE_USER_UID;
|
|
model.ATTENDANCE_USER_NAME = ATTENDANCE_USER_NAME;
|
|
|
|
if (bll.Add(model))
|
|
{
|
|
try
|
|
{
|
|
|
|
string insSql = " insert into oa_attendance_record(ID,TASK_ID,USERS_UID,USERS_NAME,ORG_ID,ORG_NAME,UP_STATE,DOWN_STATE,ATTENDANCE_DATE,STATE,TIME_TYPE,FACE_READ_STATE,FACE_READ_STATE_PM) ";
|
|
|
|
JObject jsonStr = JsonConvert.DeserializeObject<JObject>(ATTENDANCE_USER);
|
|
JArray insArr = (JArray)jsonStr["data"];
|
|
|
|
|
|
for (int i = 0; i < insArr.Count; i++)
|
|
{
|
|
string itemUserId = ((JArray)jsonStr["data"])[i]["ppl_Id"].ToString();
|
|
string itemUserName = ((JArray)jsonStr["data"])[i]["ppl_Name"].ToString();
|
|
if (i > 0)
|
|
{
|
|
insSql += " UNION ";
|
|
}
|
|
insSql += " SELECT '" + Guid.NewGuid().ToString("N") + "','" + ID + "','" + itemUserId + "','" + itemUserName + "','" + ORG_ID + "','" + ORG_NAME +
|
|
"',0,0,'" + ATTENDANCE_DATE + "',0, 0,0,0";
|
|
|
|
}
|
|
int j = FangYar.Common.MySqlHelper.ExecuteSql(insSql);
|
|
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
|
|
}
|
|
|
|
msg = "添加成功!";
|
|
code = 1;
|
|
}
|
|
else { msg = "添加失败!"; }
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
msg = "添加失败:装备编码有重复数据";
|
|
// 记录操作日志
|
|
BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Error, "考勤任务操作请求", "添加考勤任务异常:" + e);
|
|
}
|
|
returnstr = "{\"msg\":\"" + msg + "\",\"code\":" + code + "}";
|
|
// 记录操作日志
|
|
BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Add, "考勤任务操作请求", "添加考勤任务");
|
|
return returnstr;
|
|
}
|
|
|
|
//修改考勤任务
|
|
private string EditAttendanceTask(HttpContext context)
|
|
{
|
|
string returnstr = "";
|
|
int code = -1;
|
|
string msg = "";
|
|
try
|
|
{
|
|
string ID = context.Request.Params["ID"];
|
|
string TASK_NAME = context.Request.Params["TASK_NAME"];
|
|
string LOCATION = context.Request.Params["LOCATION"];
|
|
string UP_START_DATE = context.Request.Params["UP_START_DATE"];
|
|
string UP_END_DATE = context.Request.Params["UP_END_DATE"];
|
|
string DOWN_START_DATE = context.Request.Params["DOWN_START_DATE"];
|
|
string DOWN_END_DATE = context.Request.Params["DOWN_END_DATE"];
|
|
string ORG_ID = context.Request.Params["ORG_ID"];
|
|
string ORG_NAME = context.Request.Params["ORG_NAME"];
|
|
string ATTENDANCE_DATE = context.Request.Params["ATTENDANCE_DATE"];
|
|
string REMARKS = context.Request.Params["REMARKS"];
|
|
string EXTEND1 = context.Request.Params["EXTEND1"];
|
|
string EXTEND2 = context.Request.Params["EXTEND2"];
|
|
string EXTEND3 = context.Request.Params["EXTEND3"];
|
|
string EXTEND4 = context.Request.Params["EXTEND4"];
|
|
string EXTEND5 = context.Request.Params["EXTEND5"];
|
|
string EXTEND6 = context.Request.Params["EXTEND6"];
|
|
|
|
//考勤任务表
|
|
FangYar.Model.OA.OA_ATTENDANCE_TASK model = new Model.OA.OA_ATTENDANCE_TASK();
|
|
model.ID = ID;
|
|
model.TASK_NAME = TASK_NAME;
|
|
model.LOCATION = LOCATION;
|
|
model.UP_START_DATE = UP_START_DATE;
|
|
model.UP_END_DATE = UP_END_DATE;
|
|
model.DOWN_START_DATE = DOWN_START_DATE;
|
|
model.DOWN_END_DATE = DOWN_END_DATE;
|
|
model.ORG_ID = ORG_ID;
|
|
model.ORG_NAME = ORG_NAME;
|
|
model.ATTENDANCE_DATE = ATTENDANCE_DATE;
|
|
model.REMARKS = REMARKS;
|
|
model.EXTEND1 = EXTEND1;
|
|
model.EXTEND2 = EXTEND2;
|
|
model.EXTEND3 = EXTEND3;
|
|
model.EXTEND4 = EXTEND4;
|
|
model.EXTEND5 = EXTEND5;
|
|
model.EXTEND6 = EXTEND6;
|
|
|
|
if (bll.Update(model))
|
|
{
|
|
msg = "修改成功!";
|
|
code = 1;
|
|
}
|
|
else { msg = "修改失败!"; }
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
msg = "修改失败!";
|
|
// 记录操作日志
|
|
BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Error, "考勤任务操作请求", "修改考勤任务异常:" + e);
|
|
}
|
|
returnstr = "{\"msg\":\"" + msg + "\",\"code\":" + code + "}";
|
|
// 记录操作日志
|
|
BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Add, "考勤任务操作请求", "修改考勤任务");
|
|
return returnstr;
|
|
}
|
|
|
|
//删除考勤记录
|
|
private string DelAttendanceTask(HttpContext context)
|
|
{
|
|
string returnstr = "";
|
|
int code = -1;
|
|
string msg = "";
|
|
try
|
|
{
|
|
string TaskList = context.Request.Params["TaskList"];
|
|
string[] TaskArray = TaskList.Split(',');
|
|
string TaskListString = "";
|
|
for (int i = 0; i < TaskArray.Length; i++)
|
|
{
|
|
if (i == 0)
|
|
{
|
|
TaskListString = "'" + TaskArray[i] + "'";
|
|
}
|
|
else
|
|
{
|
|
TaskListString += ",'" + TaskArray[i] + "'";
|
|
}
|
|
}
|
|
if (bll.DeleteList(TaskListString))
|
|
{
|
|
msg = "删除成功!";
|
|
code = 1;
|
|
}
|
|
else
|
|
{
|
|
msg = "删除失败!";
|
|
}
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
msg = "删除失败!";
|
|
// 记录操作日志
|
|
BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Error, "考勤任务操作请求", "删除考勤记录异常:" + e); ;
|
|
}
|
|
returnstr = "{\"code\":" + code + ",\"msg\":\"" + msg + "\"}";
|
|
// 记录操作日志
|
|
BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Delete, "考勤任务操作请求", "删除考勤记录");
|
|
return returnstr;
|
|
}
|
|
|
|
//获取考勤任务信息、打卡记录
|
|
private string getAttendance(HttpContext context)
|
|
{
|
|
string returnstr = "";
|
|
try
|
|
{
|
|
string taskId = context.Request.Params["taskId"];
|
|
returnstr = "{\"code\":0,\"msg\":\"\",\"TaskData\":";
|
|
List<DataTable> data = bll.getAttendance(taskId);
|
|
returnstr += FangYar.Common.JsonHelper.ToJson(data[0]);
|
|
returnstr += ",\"RecordData\":";
|
|
returnstr += FangYar.Common.JsonHelper.ToJson(data[1]);
|
|
returnstr += "}";
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
returnstr = "{\"code\":0,\"msg\":\"error\",\"count\":0,\"TaskData\":[],\"RecordData\":[] }";
|
|
// 记录操作日志
|
|
BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Error, "考勤任务操作请求", "获取考勤任务信息、打卡记录异常:" + e);
|
|
}
|
|
// 记录操作日志
|
|
BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Query, "考勤任务操作请求", "获取考勤任务信息、打卡记录");
|
|
return returnstr;
|
|
}
|
|
|
|
//按年月、机构获取月考勤记录
|
|
private string getHistoryListByDate(HttpContext context)
|
|
{
|
|
string returnstr = "";
|
|
try
|
|
{
|
|
string ORG_ID = context.Request.Params["ORG_ID"];
|
|
string ATTENDANCE_DATE = context.Request.Params["ATTENDANCE_DATE"];
|
|
DateTime sTime = Convert.ToDateTime(ATTENDANCE_DATE + "-01");
|
|
string dTime = sTime.AddMonths(1).ToString("yyyy-MM-dd");
|
|
|
|
returnstr = "{\"code\":0,\"msg\":\"\",\"data\":";
|
|
DataTable data = bll.getHistoryListByDate(ORG_ID, sTime.ToString("yyyy-MM-dd"), dTime);
|
|
returnstr += FangYar.Common.JsonHelper.ToJson(data);
|
|
returnstr += "}";
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
returnstr = "{\"code\":-1,\"msg\":\"" + e.Message + "\",\"data\":[] }";
|
|
// 记录操作日志
|
|
BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Error, "考勤任务操作请求", "按年月、机构获取月考勤记录异常:" + e);
|
|
}
|
|
// 记录操作日志
|
|
BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Query, "考勤任务操作请求", "按年月、机构获取月考勤记录");
|
|
return returnstr;
|
|
}
|
|
|
|
public bool IsReusable
|
|
{
|
|
get
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
}
|
|
}
|