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 { /// /// OaLeaveHandler 的摘要说明 /// 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 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 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(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 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; } } } }