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

361 lines
15 KiB

using System;
using System.Data;
using System.Threading;
using System.Web;
namespace FangYar.WebUI.ashx
{
/// <summary>
/// OaLeaveHandler 的摘要说明
/// </summary>
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;
}
}
}
}