using System; using System.Data; using System.Threading; using System.Web; namespace FangYar.WebUI.ashx { /// /// OaLeaveHandler 的摘要说明 /// public class OaPatrolTraHandler : IHttpHandler { private FangYar.BLL.OA_PATROL_TRAJECTORY bll = new FangYar.BLL.OA_PATROL_TRAJECTORY(); 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 "getTraList": returnstr = getTaskIDTralist(context); break; case "getTraCountState": returnstr = getTraCountState(context); break; case "Edit": returnstr = EditTra(context); break; case "IFIDGetModel": returnstr = IFIDGetModel(context); break; case "getTraListByTaskId": returnstr = getTraListByTaskId(context); break; case "AddTra": returnstr = AddTra(context); break; } context.Response.Write(returnstr); } //根据巡查任务ID查询轨迹列表 private string getTaskIDTralist(HttpContext context) { string returnstr = ""; try { string taskId = context.Request.Params["taskId"]; string state = context.Request.Params["state"]; string isDanger = context.Request.Params["isDanger"]; string where = " TASK_ID = '" + taskId + "' "; if (!string.IsNullOrEmpty(state)) { if (state.Contains(",")) { string[] state_s = state.Split(','); string states = ""; for (int i = 0; i < state_s.Length; i++) { if (i == 0) { states = "('" + state_s[i] + "'"; } states += ",'" + state_s[i] + "'"; } states += ")"; where += " and state in " + states + " "; } else { where += " and state = '" + state + "' "; } } if (!string.IsNullOrEmpty(isDanger)) { where += " and IS_DANGER = '" + isDanger + "' "; } where += " order by TIME "; returnstr = "{\"code\":0,\"msg\":\"\",\"TraData\":"; DataSet data = bll.GetList(where); returnstr += FangYar.Common.JsonHelper.ToJson(data); returnstr += "}"; } catch (Exception e) { returnstr = "{\"code\":0,\"msg\":\"error\",\"count\":0,\"TraData\":[]}"; // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Error, "巡查操作请求", "根据巡查任务ID查询轨迹列表"); } // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Query, "巡查操作请求", "根据巡查任务ID查询轨迹列表"); return returnstr; } //根据任务ID,获取巡查点状态统计数 private string getTraCountState(HttpContext context) { string returnstr = ""; try { string taskId = context.Request.Params["taskId"]; returnstr = "{\"code\":0,\"msg\":\"\",\"TraData\":"; DataTable data = bll.GetTraCountState(taskId); returnstr += FangYar.Common.JsonHelper.ToJson(data); returnstr += "}"; } catch { returnstr = "{\"code\":0,\"msg\":\"error\",\"count\":0,\"TraData\":[]}"; // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Query, "巡查操作请求", "获取巡查点状态统计数"); } // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Query, "巡查操作请求", "获取巡查点状态统计数"); return returnstr; } //添加巡查轨迹(自由巡检用) private string AddTra(HttpContext context) { string returnstr = ""; int code = -1; string msg = ""; string traId = ""; try { string orgId = context.Request.Params["ORG_ID"]; string TASK_ID = context.Request.Params["TASK_ID"]; string EMP_ID = context.Request.Params["EMP_ID"]; string EMP_NAME = context.Request.Params["EMP_NAME"]; string EXTENDCODE1 = context.Request.Params["IFID"]; string PATROL_NAME = context.Request.Params["PATROL_NAME"]; string IS_DANGER = context.Request.Params["IS_DANGER"]; FangYar.BLL.OA_PATROL_SPOT spotBll = new FangYar.BLL.OA_PATROL_SPOT(); if (spotBll.ExistsSpotNo(EXTENDCODE1)) { FangYar.Model.OA_PATROL_SPOT spotModel = spotBll.IFIDGetModel(orgId, EXTENDCODE1); if (spotModel == null) { msg = "对不起,该巡查点不可被当前登录账号:" + EMP_NAME + "巡查"; } else { //巡查轨迹表 FangYar.Model.OA_PATROL_TRAJECTORY model = new Model.OA_PATROL_TRAJECTORY(); model.ID = Guid.NewGuid().ToString("N"); model.ORG_ID = orgId; model.TASK_ID = TASK_ID; model.EMP_ID = EMP_ID; model.EMP_NAME = EMP_NAME; model.SPOT_ID = spotModel.ID; model.POINT = spotModel.POINT; model.ADDR = spotModel.ADDR; model.TIME = DateTime.Now.ToString(); model.IS_DANGER = IS_DANGER; model.STATE = "1"; model.EXTENDCODE1 = EXTENDCODE1; model.EXTENDCODE2 = PATROL_NAME; model.SPOT_NAME = spotModel.NAME; //上传图片 string A_PHOTO = UploadFile("OaPatrolTra", context, model.ID); model.A_PHOTO = A_PHOTO; if (bll.Add(model)) { msg = "该巡检点巡检成功!"; code = 1; traId = model.ID; } else { msg = "网络原因,请稍后重试!"; } } } else { msg = "对不起,该芯片不存在"; } } catch (Exception e) { msg = "网络原因,请稍后重试!!"; // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Error, "巡查操作请求", "添加巡查轨迹(自由巡检用)异常:" + e); } returnstr = "{\"msg\":\"" + msg + "\",\"code\":" + code + ",\"traId\":\"" + traId + "\"}"; // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Add, "巡查操作请求", "添加巡查轨迹(自由巡检用)"); return returnstr; } //根据巡查任务ID查询轨迹列表(自由巡检用) private string getTraListByTaskId(HttpContext context) { string returnstr = ""; try { string taskId = context.Request.Params["taskId"]; string where = " TASK_ID = '" + taskId + "' order by TIME "; returnstr = "{\"code\":0,\"msg\":\"\",\"TraData\":"; DataSet data = bll.GetList(where); returnstr += FangYar.Common.JsonHelper.ToJson(data); returnstr += "}"; } catch (Exception e) { returnstr = "{\"code\":0,\"msg\":\"error\",\"TraData\":[]}"; // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Error, "巡查操作请求", "根据巡查任务ID查询轨迹列表(自由巡检用)异常:" + e); } // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Query, "巡查操作请求", "根据巡查任务ID查询轨迹列表(自由巡检用)"); return returnstr; } //修改巡查轨迹 private string EditTra(HttpContext context) { string returnstr = ""; int code = -1; string msg = ""; try { string orgId = context.Request.Params["ORG_ID"]; string TASK_ID = context.Request.Params["TASK_ID"]; string EXTENDCODE1 = context.Request.Params["IFID"]; //string TIME = context.Request.Params["TIME"]; string STATE = context.Request.Params["STATE"]; string IS_DANGER = context.Request.Params["IS_DANGER"]; //上传图片 FangYar.Model.OA_PATROL_TRAJECTORY model = bll.IFIDGetModel(TASK_ID, EXTENDCODE1); string A_PHOTO = UploadFile("OaPatrolTra", context, model.ID); //巡查轨迹表 model.TASK_ID = TASK_ID; model.ORG_ID = orgId; model.EXTENDCODE1 = EXTENDCODE1; //model.TIME = TIME; model.STATE = STATE; model.IS_DANGER = IS_DANGER; model.A_PHOTO = A_PHOTO; if (bll.UpdateByTaskIdAndSpotNo(model)) { Thread.Sleep(100); DataTable data = bll.GetTraCountState(TASK_ID); string wxx = data.Rows[0]["WXX"].ToString(); bool flag = false; if (wxx == "0") { FangYar.BLL.OA_PATROL_TASK ptbll = new FangYar.BLL.OA_PATROL_TASK(); FangYar.Model.OA_PATROL_TASK ptmodel = ptbll.GetModel(TASK_ID); ptmodel.STATE = "1"; flag = ptbll.Update(ptmodel); } else { flag = true; } if (flag) { 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.Update, "巡查操作请求", "修改巡查轨迹"); return returnstr; } //根据IFID(芯片编号)得到一个对象实体 private string IFIDGetModel(HttpContext context) { string returnstr = ""; try { string TASK_ID = context.Request.Params["TASK_ID"]; string IFID = context.Request.Params["IFID"]; FangYar.Model.OA_PATROL_TRAJECTORY model = bll.IFIDGetModel(TASK_ID, IFID); if (model != null) { returnstr = "{\"code\":1,\"msg\":\"ok\",\"TraData\":" + FangYar.Common.JsonHelper.ToJson(model) + "}"; } else { returnstr = "{\"code\":0,\"msg\":\"ok\",\"TraData\":[]}"; } } catch (Exception e) { returnstr = "{\"code\":-1,\"msg\":\"error\",\"TraData\":[]}"; // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Error, "巡查操作请求", "根据IFID(芯片编号)得到一个对象实体异常:" + e); } // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Query, "巡查操作请求", "根据IFID(芯片编号)得到一个对象实体"); return returnstr; } //上传图片 private static string UploadFile(string url, HttpContext context, string CONNMOD_ID) { string result = ""; if (context.Request.Files.Count > 0) { string ImageFilePath = "/Upload/" + url + "/" + DateTime.Now.Year.ToString() + "/" + DateTime.Now.Month.ToString(); if (System.IO.Directory.Exists(HttpContext.Current.Server.MapPath(ImageFilePath)) == false)//如果不存在就创建文件夹 { System.IO.Directory.CreateDirectory(HttpContext.Current.Server.MapPath(ImageFilePath)); } for (int i = 0; i < context.Request.Files.Count; i++) { HttpPostedFile item = context.Request.Files[i]; string fileName = CONNMOD_ID + i + ".png"; try { string rootPath = System.AppDomain.CurrentDomain.BaseDirectory + ImageFilePath; item.SaveAs(rootPath + fileName); result += ImageFilePath + fileName + ","; } catch { result += ""; } } result = result.Substring(0, result.Length - 1); } return result; } public bool IsReusable { get { return false; } } } }