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.
1436 lines
58 KiB
1436 lines
58 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;
|
|
using Newtonsoft.Json.Linq;
|
|
using System.IO;
|
|
using Spire.Doc;
|
|
using Spire.Doc.Documents;
|
|
using System.Drawing;
|
|
using Spire.Doc.Fields;
|
|
using System.Timers;
|
|
using System.Text.RegularExpressions;
|
|
using FangYar.Common;
|
|
|
|
namespace FangYar.WebUI.ashx
|
|
{
|
|
/// <summary>
|
|
/// OaLeaveHandler 的摘要说明
|
|
/// </summary>
|
|
public class OaLeaveHandler : IHttpHandler
|
|
{
|
|
private FangYar.BLL.OA_LEAVE bll = new FangYar.BLL.OA_LEAVE();
|
|
public void ProcessRequest(HttpContext context)
|
|
{
|
|
context.Response.ContentType = "text/plain";
|
|
string action = context.Request.Params["Action"];
|
|
string returnstr = "";
|
|
|
|
switch (action)
|
|
{
|
|
case "List":
|
|
returnstr = getLeaveList(context);
|
|
break;
|
|
case "ListAll":
|
|
returnstr = getLeaveAllList(context);
|
|
break;
|
|
case "getOrgTree":
|
|
returnstr = getOrgTreeList(context);
|
|
break;
|
|
case "getOrgTree2":
|
|
returnstr = getOrgTreeList2(context);
|
|
break;
|
|
case "getOrgTree3":
|
|
returnstr = getOrgTreeList3(context);
|
|
break;
|
|
case "getOrgList":
|
|
returnstr = getOrgList(context);
|
|
break;
|
|
case "getOrgList2":
|
|
returnstr = getOrgList2(context);
|
|
break;
|
|
case "getOrgLeaderTree":
|
|
returnstr = getOrgLeaderTree(context);
|
|
break;
|
|
case "add":
|
|
returnstr = addLeave(context);
|
|
break;
|
|
case "getLeave":
|
|
returnstr = getLeave(context);
|
|
break;
|
|
case "editWait":
|
|
returnstr = editWait(context);
|
|
break;
|
|
case "ApplyRegression":
|
|
returnstr = ApplyRegression(context);
|
|
break;
|
|
case "ApprovalRegression":
|
|
returnstr = ApprovalRegression(context);
|
|
break;
|
|
case "Del":
|
|
returnstr = DelLeave(context);
|
|
break;
|
|
case "getAksPatrolOrgTree":
|
|
returnstr = getAksPatrolOrgTree(context);
|
|
break;
|
|
case "leaveSta":
|
|
returnstr = leaveSta(context);
|
|
break;
|
|
case "homeLeaveSta":
|
|
returnstr = homeLeaveSta(context);
|
|
break;
|
|
case "leaveTypeSta":
|
|
returnstr = leaveTypeSta(context);
|
|
break;
|
|
case "leaveOrgTypeSta":
|
|
returnstr = leaveOrgTypeSta(context);
|
|
break;
|
|
case "leaveTypeList":
|
|
returnstr = leaveTypeList(context);
|
|
break;
|
|
case "htmlToWord":
|
|
returnstr = htmlToWord(context);
|
|
break;
|
|
case "leaveSta2":
|
|
returnstr = leaveSta2(context);
|
|
break;
|
|
case "leaveAllList":
|
|
returnstr = leaveAllList(context);
|
|
break;
|
|
}
|
|
|
|
context.Response.Write(returnstr);
|
|
}
|
|
|
|
//查询
|
|
private string getLeaveList(HttpContext context)
|
|
{
|
|
string returnstr = "";
|
|
try
|
|
{
|
|
string userId = context.Request.Params["userId"];
|
|
string keyword = context.Request.Params["keywords"];
|
|
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 = null;
|
|
where = "(PPL_ID = '" + userId + "' or PPL_ID = 'u_" + userId + "') ";
|
|
if (!string.IsNullOrEmpty(keyword))
|
|
{
|
|
where += " and (L_OUT like '%" + keyword + "%' or L_REASON like '%" + keyword + "%') ";
|
|
}
|
|
returnstr = "{\"code\":0,\"msg\":\"\",";
|
|
int count = bll.GetRecordCount(where);
|
|
returnstr += "\"count\":" + count + ",\"data\":";
|
|
if (count == 0)
|
|
{
|
|
returnstr += "[]";
|
|
}
|
|
else
|
|
{
|
|
List<FangYar.Model.OA_LEAVE> list = bll.QueryList(pageIndex, pageSize, where, " s_time desc");
|
|
returnstr += FangYar.Common.JsonHelper.ToJson(list);
|
|
}
|
|
returnstr += "}";
|
|
}
|
|
catch
|
|
{
|
|
returnstr = "{\"code\":0,\"msg\":\"error\",\"count\":0,\"data\":[]";
|
|
}
|
|
return returnstr;
|
|
}
|
|
|
|
//查询营区内所有人员请假记录
|
|
private string getLeaveAllList(HttpContext context)
|
|
{
|
|
string returnstr = "";
|
|
try
|
|
{
|
|
string orgId = context.Request.Params["orgId"];
|
|
string keyword = context.Request.Params["keywords"];
|
|
string page = context.Request.Params["page"];
|
|
string limit = context.Request.Params["limit"];
|
|
string treeID = context.Request.Params["treeID"];
|
|
string type = context.Request.Params["type"];
|
|
string searchTime = context.Request.Params["searchTime"];
|
|
string is_content = context.Request.Params["is_content"];
|
|
|
|
int pageIndex = 1;
|
|
int pageSize = 10;
|
|
if (!string.IsNullOrEmpty(page)) { pageIndex = int.Parse(page); }
|
|
if (!string.IsNullOrEmpty(limit)) { pageSize = int.Parse(limit); }
|
|
string where = null;
|
|
where = " PPL_ID in (select users_uid from tbl_sys_emp where IS_ADMIN='0' ";
|
|
|
|
if (!string.IsNullOrEmpty(treeID) && treeID != orgId)
|
|
{
|
|
if (is_content == "1")
|
|
{
|
|
where += " and ( org_id in ( select o.org_id from fire_org o,(select get_Org_child_list('" + treeID + "') cids ) s where find_in_set(org_id,cids) ) ";
|
|
where += " or DEPT_ID in ( select o.org_id from fire_org o,(select get_Org_child_list('" + treeID + "') cids ) s where find_in_set(org_id,cids) )) ";
|
|
}
|
|
else
|
|
{
|
|
where += " and ( ORG_ID = '" + treeID + "'";
|
|
where += " or DEPT_ID = '" + treeID + "')";
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (is_content == "1")
|
|
{
|
|
where += " and (org_id in ( select o.org_id from fire_org o,(select get_Org_child_list('" + orgId + "') cids ) s where find_in_set(org_id,cids)) ";
|
|
where += " or DEPT_ID in ( select o.org_id from fire_org o,(select get_Org_child_list('" + orgId + "') cids ) s where find_in_set(org_id,cids))) ";
|
|
}
|
|
else
|
|
{
|
|
where += " and (ORG_ID = '" + orgId + "'";
|
|
where += " or DEPT_ID = '" + orgId + "')";
|
|
}
|
|
}
|
|
where += " and users_uid is not null )";
|
|
|
|
if (!string.IsNullOrEmpty(keyword))
|
|
{
|
|
where += " and (PPL_NAME like '%" + keyword + "%' or L_OUT like '%" + keyword + "%' or L_REASON like '%" + keyword + "%') ";
|
|
}
|
|
if (!string.IsNullOrEmpty(searchTime))
|
|
{
|
|
|
|
string startTime = "", endTime = "";
|
|
if (searchTime.IndexOf(" 到 ") != -1)
|
|
{
|
|
startTime = Regex.Split(searchTime, " 到 ", RegexOptions.IgnoreCase)[0];
|
|
endTime = Regex.Split(searchTime, " 到 ", RegexOptions.IgnoreCase)[1];
|
|
}
|
|
|
|
where += " and (( (date_format(s_time,'%Y-%m-%d %H:%i:%s'))>=date_format('" + startTime + "','%Y-%m-%d %H:%i:%s')" +
|
|
" and (date_format(s_time,'%Y-%m-%d %H:%i:%s'))<= date_format('" + endTime + "', '%Y-%m-%d %H:%i:%s') ) " +
|
|
"or ( (date_format(e_time,'%Y-%m-%d %H:%i:%s'))>=date_format('" + startTime + "','%Y-%m-%d %H:%i:%s')" +
|
|
" and date_format(e_time,'%Y-%m-%d %H:%i:%s')<= date_format('" + endTime + "', '%Y-%m-%d %H:%i:%s') )) ";
|
|
}
|
|
returnstr = "{\"code\":0,\"msg\":\"\",";
|
|
int count = bll.GetRecordCount(where);
|
|
returnstr += "\"count\":" + count + ",\"data\":";
|
|
if (count == 0)
|
|
{
|
|
returnstr += "[]";
|
|
}
|
|
else
|
|
{
|
|
List<FangYar.Model.OA_LEAVE> list = bll.QueryList(pageIndex, pageSize, where, " s_time desc");
|
|
returnstr += FangYar.Common.JsonHelper.ToJson(list);
|
|
}
|
|
returnstr += "}";
|
|
}
|
|
catch
|
|
{
|
|
returnstr = "{\"code\":0,\"msg\":\"error\",\"count\":0,\"data\":[]";
|
|
}
|
|
return returnstr;
|
|
}
|
|
|
|
//获取Tree 机构-部门-员工(获取UID)
|
|
private string getOrgTreeList(HttpContext context)
|
|
{
|
|
string returnstr = "";
|
|
try
|
|
{
|
|
string orgId = context.Request.Params["OrgId"];
|
|
string type = context.Request.Params["type"];
|
|
|
|
returnstr = "{\"code\":0,\"msg\":\"\",\"data\":";
|
|
DataTable data = bll.getOrgTree(orgId);
|
|
data.Columns.Add("nocheck", typeof(string)); //数据类型为文本
|
|
for (int i = 0; i < data.Rows.Count; i++)
|
|
{
|
|
string aaa = data.Rows[i]["TYPE"].ToString();
|
|
if (data.Rows[i]["TYPE"].ToString() == "emp")
|
|
{
|
|
data.Rows[i]["nocheck"] = "false";
|
|
}
|
|
else
|
|
{
|
|
data.Rows[i]["nocheck"] = "true";
|
|
}
|
|
}
|
|
|
|
returnstr += FangYar.Common.JsonHelper.ToJson(data);
|
|
returnstr += "}";
|
|
}
|
|
catch
|
|
{
|
|
returnstr = "{\"code\":0,\"msg\":\"error\",\"count\":0,\"data\":[]";
|
|
}
|
|
return returnstr;
|
|
}
|
|
|
|
//获取Tree 机构-部门-员工(获取EMP_ID)
|
|
private string getOrgTreeList2(HttpContext context)
|
|
{
|
|
string returnstr = "";
|
|
try
|
|
{
|
|
string orgId = context.Request.Params["OrgId"];
|
|
string type = context.Request.Params["type"];
|
|
|
|
returnstr = "{\"code\":0,\"msg\":\"\",\"data\":";
|
|
DataTable data = bll.getOrgTree2(orgId);
|
|
returnstr += FangYar.Common.JsonHelper.ToJson(data);
|
|
returnstr += "}";
|
|
}
|
|
catch
|
|
{
|
|
returnstr = "{\"code\":0,\"msg\":\"error\",\"count\":0,\"data\":[]";
|
|
}
|
|
return returnstr;
|
|
}
|
|
|
|
|
|
//获取Tree 机构-部门-员工(获取UID)
|
|
private string getOrgTreeList3(HttpContext context)
|
|
{
|
|
string returnstr = "";
|
|
try
|
|
{
|
|
string orgId = context.Request.Params["OrgId"];
|
|
string type = context.Request.Params["type"];
|
|
|
|
returnstr = "{\"code\":0,\"msg\":\"\",\"data\":";
|
|
FangYar.BLL.TRAIN.T_TRAININGPLAN tbll = new BLL.TRAIN.T_TRAININGPLAN();
|
|
DataTable data = tbll.getOrgTree(orgId);
|
|
data.Columns.Add("nocheck", typeof(string)); //数据类型为文本
|
|
for (int i = 0; i < data.Rows.Count; i++)
|
|
{
|
|
string aaa = data.Rows[i]["TYPE"].ToString();
|
|
//if (data.Rows[i]["TYPE"].ToString() == "emp")
|
|
//{
|
|
data.Rows[i]["nocheck"] = "false";
|
|
//}
|
|
//else
|
|
//{
|
|
// data.Rows[i]["nocheck"] = "true";
|
|
//}
|
|
}
|
|
|
|
returnstr += FangYar.Common.JsonHelper.ToJson(data);
|
|
returnstr += "}";
|
|
}
|
|
catch
|
|
{
|
|
returnstr = "{\"code\":0,\"msg\":\"error\",\"count\":0,\"data\":[]";
|
|
}
|
|
return returnstr;
|
|
}
|
|
|
|
//获取Tree 机构-部门-员工(获取UID)
|
|
private string getOrgLeaderTree(HttpContext context)
|
|
{
|
|
string returnstr = "";
|
|
try
|
|
{
|
|
string orgId = context.Request.Params["OrgId"];
|
|
returnstr = "{\"code\":0,\"msg\":\"\",\"data\":";
|
|
DataTable data = bll.getOrgLeaderTree(orgId);
|
|
data.Columns.Add("nocheck", typeof(string)); //数据类型为文本
|
|
for (int i = 0; i < data.Rows.Count; i++)
|
|
{
|
|
string aaa = data.Rows[i]["TYPE"].ToString();
|
|
if (data.Rows[i]["TYPE"].ToString() == "emp")
|
|
{
|
|
data.Rows[i]["nocheck"] = "false";
|
|
}
|
|
else
|
|
{
|
|
data.Rows[i]["nocheck"] = "true";
|
|
}
|
|
}
|
|
returnstr += FangYar.Common.JsonHelper.ToJson(data);
|
|
returnstr += "}";
|
|
}
|
|
catch
|
|
{
|
|
returnstr = "{\"code\":0,\"msg\":\"error\",\"count\":0,\"data\":[]";
|
|
}
|
|
return returnstr;
|
|
}
|
|
|
|
//获取Tree 机构-部门-员工(获取UID)
|
|
private string getAksPatrolOrgTree(HttpContext context)
|
|
{
|
|
string returnstr = "";
|
|
try
|
|
{
|
|
string orgId = context.Request.Params["OrgId"];
|
|
returnstr = "{\"code\":0,\"msg\":\"\",\"data\":";
|
|
DataTable data = bll.getAksPatrolOrgTree(orgId);
|
|
data.Columns.Add("nocheck", typeof(string)); //数据类型为文本
|
|
for (int i = 0; i < data.Rows.Count; i++)
|
|
{
|
|
string aaa = data.Rows[i]["TYPE"].ToString();
|
|
if (data.Rows[i]["TYPE"].ToString() == "emp")
|
|
{
|
|
data.Rows[i]["nocheck"] = "false";
|
|
}
|
|
else
|
|
{
|
|
data.Rows[i]["nocheck"] = "true";
|
|
}
|
|
}
|
|
returnstr += FangYar.Common.JsonHelper.ToJson(data);
|
|
returnstr += "}";
|
|
}
|
|
catch
|
|
{
|
|
returnstr = "{\"code\":0,\"msg\":\"error\",\"count\":0,\"data\":[]";
|
|
}
|
|
return returnstr;
|
|
}
|
|
|
|
//手机端 获取Tree 机构-部门-员工(获取UID)
|
|
private string getOrgList(HttpContext context)
|
|
{
|
|
string returnstr = "";
|
|
try
|
|
{
|
|
string orgId = context.Request.Params["OrgId"];
|
|
|
|
returnstr = "{\"code\":0,\"msg\":\"\",\"data\":";
|
|
DataTable data = bll.getOrgTree(orgId);
|
|
|
|
//List<Dictionary<string, JArray>> dict = new List<Dictionary<string, JArray>>();
|
|
//foreach (DataRow d in data.Rows)
|
|
//{
|
|
// if (d["TYPE"].ToString() == "org" || d["TYPE"].ToString() == "dept")
|
|
// {
|
|
// Dictionary<string, JArray> dictOrg = new Dictionary<string, JArray>();
|
|
|
|
// JArray farray = new JArray();
|
|
// //JObject fobj = new JObject();
|
|
// //JProperty fname = new JProperty("name", d["NAME"].ToString());
|
|
// //fobj.Add(fname);
|
|
// farray.Add(d["NAME"].ToString());
|
|
// dictOrg.Add("name", farray);
|
|
// JArray empa = new JArray();
|
|
// foreach (DataRow d1 in data.Rows)
|
|
// {
|
|
// if (d1["TYPE"].ToString() == "emp" && d1["PID"].ToString() == d["ID"].ToString())
|
|
// {
|
|
// JObject emp = new JObject();
|
|
// JProperty id = new JProperty("id", d1["ID"].ToString());
|
|
// JProperty name = new JProperty("name", d1["NAME"].ToString());
|
|
// emp.Add(id);
|
|
// emp.Add(name);
|
|
// empa.Add(emp);
|
|
// }
|
|
// }
|
|
// dictOrg.Add("data", empa);
|
|
// dict.Add(dictOrg);
|
|
|
|
// }
|
|
//}
|
|
|
|
returnstr += FangYar.Common.JsonHelper.ToJson(data);
|
|
returnstr += "}";
|
|
}
|
|
catch
|
|
{
|
|
returnstr = "{\"code\":0,\"msg\":\"error\",\"count\":0,\"data\":[]";
|
|
}
|
|
return returnstr;
|
|
}
|
|
|
|
//手机端 获取Tree 机构-部门-员工(获取EMP_ID)
|
|
private string getOrgList2(HttpContext context)
|
|
{
|
|
string returnstr = "";
|
|
try
|
|
{
|
|
string orgId = context.Request.Params["OrgId"];
|
|
|
|
returnstr = "{\"code\":0,\"msg\":\"\",\"data\":";
|
|
DataTable data = bll.getOrgTree2(orgId);
|
|
|
|
List<Dictionary<string, JArray>> dict = new List<Dictionary<string, JArray>>();
|
|
foreach (DataRow d in data.Rows)
|
|
{
|
|
if (d["TYPE"].ToString() == "org" || d["TYPE"].ToString() == "dept")
|
|
{
|
|
Dictionary<string, JArray> dictOrg = new Dictionary<string, JArray>();
|
|
JArray fname = new JArray();
|
|
fname.Add(d["NAME"].ToString());
|
|
dictOrg.Add("name", fname);
|
|
JArray empa = new JArray();
|
|
foreach (DataRow d1 in data.Rows)
|
|
{
|
|
if (d1["TYPE"].ToString() == "emp" && d1["PID"].ToString() == d["ID"].ToString())
|
|
{
|
|
JObject emp = new JObject();
|
|
emp.Add(d1["ID"].ToString());
|
|
emp.Add(d1["NAME"].ToString());
|
|
empa.Add(emp);
|
|
}
|
|
}
|
|
dictOrg.Add("data", empa);
|
|
dict.Add(dictOrg);
|
|
|
|
}
|
|
}
|
|
|
|
returnstr += FangYar.Common.JsonHelper.ToJson(dict);
|
|
returnstr += "}";
|
|
}
|
|
catch
|
|
{
|
|
returnstr = "{\"code\":0,\"msg\":\"error\",\"count\":0,\"data\":[]";
|
|
}
|
|
return returnstr;
|
|
}
|
|
|
|
//添加请假
|
|
private string addLeave(HttpContext context)
|
|
{
|
|
string returnstr = "";
|
|
int code = -1;
|
|
string msg = "";
|
|
try
|
|
{
|
|
string leaveId = Guid.NewGuid().ToString("N");
|
|
string pplId = context.Request.Params["ppl_id"];
|
|
string pplName = context.Request.Params["ppl_name"];
|
|
string lType = context.Request.Params["l_type"];
|
|
//string lTypeName = context.Request.Params["l_typeName"];
|
|
string sTime = context.Request.Params["s_time"];
|
|
string eTime = context.Request.Params["e_time"];
|
|
string lNum = context.Request.Params["l_num"];
|
|
string lOut = context.Request.Params["l_out"];
|
|
string accPplId = context.Request.Params["acc_pplId"];
|
|
string repPplId = context.Request.Params["rep_pplId"];
|
|
string lReason = context.Request.Params["l_reason"];
|
|
string appPplId = context.Request.Params["app_pplId"];
|
|
|
|
//请假表
|
|
FangYar.Model.OA_LEAVE model = new Model.OA_LEAVE();
|
|
model.ID = leaveId;
|
|
model.PPL_ID = pplId;
|
|
model.PPL_NAME = pplName;
|
|
model.L_TYPE = lType;
|
|
model.S_TIME = sTime;
|
|
model.E_TIME = eTime;
|
|
model.L_OUT = lOut;
|
|
model.ACC_PPL = accPplId;
|
|
model.REP_PPL = repPplId;
|
|
model.L_NUM = lNum;
|
|
model.L_REASON = lReason;
|
|
model.PHOTO = "";
|
|
model.STATE = "0";
|
|
|
|
if (bll.AddLeave(model, appPplId))
|
|
{
|
|
JObject ppl_s = JsonConvert.DeserializeObject<JObject>(appPplId);
|
|
FangYar.BLL.TBL.SysUsersBLL ubll = new BLL.TBL.SysUsersBLL();
|
|
|
|
foreach (JObject obj in ppl_s.Value<JArray>("data"))
|
|
{
|
|
string objpplId = (string)obj["ppl_Id"];
|
|
string objpplName = (string)obj["ppl_Name"];
|
|
Model.TBL.TBL_SYS_USERS_Model usersModel = ubll.CheckLoginByUserID(objpplId);
|
|
cwsService.CwsClient cws = new cwsService.CwsClient();
|
|
cws.yqMessageSend(usersModel.USERS_MOBILE, pplName, "请假", "待审批");
|
|
|
|
break;
|
|
}
|
|
msg = "添加成功!";
|
|
code = 1;
|
|
}
|
|
else { msg = "添加失败!"; }
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
msg = "添加失败!";
|
|
}
|
|
returnstr = "{\"msg\":\"" + msg + "\",\"code\":" + code + "}";
|
|
return returnstr;
|
|
}
|
|
|
|
//获取请假信息、流转记录
|
|
private string getLeave(HttpContext context)
|
|
{
|
|
string returnstr = "";
|
|
try
|
|
{
|
|
string leaveId = context.Request.Params["leaveId"];
|
|
returnstr = "{\"code\":0,\"msg\":\"\",\"leaveData\":";
|
|
List<DataTable> data = bll.getLeave(leaveId);
|
|
returnstr += FangYar.Common.JsonHelper.ToJson(data[0]);
|
|
returnstr += ",\"waitData\":";
|
|
returnstr += FangYar.Common.JsonHelper.ToJson(data[1]);
|
|
returnstr += "}";
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
returnstr = "{\"code\":0,\"msg\":\"error\",\"count\":0,\"leaveData\":[],\"waitData\":[] }";
|
|
}
|
|
return returnstr;
|
|
}
|
|
|
|
//请假审批
|
|
private string editWait(HttpContext context)
|
|
{
|
|
string returnstr = "";
|
|
int code = -1;
|
|
string pplid = "";
|
|
try
|
|
{
|
|
string leaveId = context.Request.Params["leaveId"];
|
|
string waitId = context.Request.Params["waitId"];
|
|
string state = context.Request.Params["state"];
|
|
string sort = context.Request.Params["sort"];
|
|
string aOpinion = context.Request.Params["a_opinion"];
|
|
string isOver = context.Request.Params["isOver"];
|
|
|
|
FangYar.Model.OA_WAITPROCESSED model = new Model.OA_WAITPROCESSED();
|
|
model.ID = waitId;
|
|
model.TASK_ID = leaveId;
|
|
model.STATE = state;
|
|
model.SORT = Convert.ToInt32(sort);
|
|
model.A_OPINION = aOpinion;
|
|
|
|
pplid = bll.editWait(model, isOver);
|
|
if (pplid != "")
|
|
{
|
|
cwsService.CwsClient cws = new cwsService.CwsClient();
|
|
FangYar.BLL.TBL.SysUsersBLL ubll = new BLL.TBL.SysUsersBLL();
|
|
Model.TBL.TBL_SYS_USERS_Model usersModel = ubll.CheckLoginByUserID(pplid);
|
|
string org3 = "已审批";
|
|
//发送给下一位待办人
|
|
if (state == "2" && isOver == "0") org3 = "待审批";
|
|
cws.yqMessageSend(usersModel.USERS_MOBILE, usersModel.USERS_NAME, "请假", org3);
|
|
}
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
|
|
}
|
|
returnstr = "{\"data\":\"" + pplid + "\",\"code\":" + code + "}";
|
|
return returnstr;
|
|
}
|
|
|
|
//销假申请
|
|
private string ApplyRegression(HttpContext context)
|
|
{
|
|
string returnstr = "";
|
|
string pplid = "";
|
|
string code = "0";
|
|
string msg = "发起失败";
|
|
try
|
|
{
|
|
string leaveId = context.Request.Params["leaveId"];
|
|
|
|
//请假表
|
|
FangYar.Model.OA_LEAVE model = new Model.OA_LEAVE();
|
|
model.ID = leaveId;
|
|
pplid = bll.Regression(model);
|
|
if (pplid != "")
|
|
{
|
|
msg = "发起成功";
|
|
code = "1";
|
|
}
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
|
|
}
|
|
returnstr = "{\"code\":\"" + code + "\",\"data\":\"" + pplid + "\",\"msg\":\"" + msg + "\"}";
|
|
return returnstr;
|
|
}
|
|
|
|
//销假审批
|
|
private string ApprovalRegression(HttpContext context)
|
|
{
|
|
string returnstr = "";
|
|
int code = -1;
|
|
string msg = "";
|
|
try
|
|
{
|
|
string leaveId = context.Request.Params["leaveId"];
|
|
string waitId = context.Request.Params["waitId"];
|
|
string state = context.Request.Params["state"];
|
|
|
|
//待办表
|
|
FangYar.Model.OA_WAITPROCESSED model = new Model.OA_WAITPROCESSED();
|
|
model.ID = waitId;
|
|
model.TASK_ID = leaveId;
|
|
model.STATE = state;
|
|
|
|
if (bll.ApprovalRegression(model))
|
|
{
|
|
msg = "审批成功!";
|
|
code = 1;
|
|
}
|
|
else { msg = "审批失败!"; }
|
|
}
|
|
catch
|
|
{
|
|
msg = "审批失败!";
|
|
}
|
|
returnstr = "{\"msg\":\"" + msg + "\",\"code\":" + code + "}";
|
|
return returnstr;
|
|
}
|
|
|
|
//删除
|
|
private string DelLeave(HttpContext context)
|
|
{
|
|
string msg = "删除失败";
|
|
string pplId_s = "";
|
|
try
|
|
{
|
|
string id = context.Request.Params["id"];
|
|
string sTime = context.Request.Params["sTime"];
|
|
string data = bll.DelLeave(id, sTime);
|
|
string[] data_s = data.Split('。');
|
|
msg = data_s[0];
|
|
pplId_s = data_s[1];
|
|
}
|
|
catch
|
|
{
|
|
|
|
}
|
|
return "{\"msg\":\"" + msg + "\",\"data\":\"" + pplId_s + "\" }";
|
|
}
|
|
|
|
//请假统计
|
|
private string leaveSta(HttpContext context)
|
|
{
|
|
string returnstr = "";
|
|
int code = -1;
|
|
string msg = "";
|
|
string data = "";
|
|
string strWhere = " 1=1";
|
|
try
|
|
{
|
|
string ORG_ID = context.Request.Params["Org_Id"];
|
|
string USERS_UID = context.Request.Params["USERS_UID"];
|
|
string S_Time = context.Request.Params["S_Time"];
|
|
string E_Time = context.Request.Params["E_Time"];
|
|
if (!string.IsNullOrEmpty(ORG_ID))
|
|
{
|
|
code = 1;
|
|
strWhere += " and ORG_ID='" + ORG_ID + "'";
|
|
if (!string.IsNullOrEmpty(S_Time) && !string.IsNullOrEmpty(E_Time))
|
|
{
|
|
strWhere += " and date_format('" + S_Time + "','%Y-%m-%d') < date_format(S_TIME,'%Y-%m-%d')";
|
|
strWhere += " and date_format('" + E_Time + "','%Y-%m-%d') > date_format(S_TIME,'%Y-%m-%d')";
|
|
}
|
|
else
|
|
{
|
|
strWhere += " and date_format(now(),'%Y-%m-%d') = date_format(S_TIME,'%Y-%m-%d')";
|
|
}
|
|
|
|
if (!string.IsNullOrEmpty(USERS_UID))
|
|
{
|
|
strWhere += " and PPL_ID = '" + USERS_UID + "'";
|
|
}
|
|
DataTable dt = bll.leaveSta(strWhere);
|
|
data = FangYar.Common.JsonHelper.ToJson(dt);
|
|
}
|
|
}
|
|
catch
|
|
{
|
|
msg = "获取失败!";
|
|
}
|
|
returnstr = "{\"code\":" + code + ",\"msg\":\"" + msg + "\",\"data\":" + data + "}";
|
|
return returnstr;
|
|
}
|
|
|
|
//请假统计
|
|
private string leaveTypeSta(HttpContext context)
|
|
{
|
|
string returnstr = "";
|
|
int code = -1;
|
|
string msg = "";
|
|
string data = "";
|
|
string strWhere = " 1=1";
|
|
try
|
|
{
|
|
string ORG_ID = context.Request.Params["Org_Id"];
|
|
string USERS_UID = context.Request.Params["USERS_UID"];
|
|
string S_Time = context.Request.Params["S_Time"];
|
|
string E_Time = context.Request.Params["E_Time"];
|
|
if (!string.IsNullOrEmpty(ORG_ID))
|
|
{
|
|
if (!string.IsNullOrEmpty(S_Time) && !string.IsNullOrEmpty(E_Time))
|
|
{
|
|
strWhere += " and date(S_TIME) between '" + S_Time + "' and '" + E_Time + "' ";
|
|
}
|
|
else
|
|
{
|
|
strWhere += " and date_format(now(),'%Y-%m-%d') = date_format(S_TIME,'%Y-%m-%d') ";
|
|
}
|
|
|
|
if (!string.IsNullOrEmpty(USERS_UID))
|
|
{
|
|
strWhere += " and PPL_ID = '" + USERS_UID + "'";
|
|
}
|
|
else
|
|
{
|
|
strWhere += " and PPL_ID in (select USERS_UID from tbl_sys_emp where IS_ADMIN='0' and ORG_ID ='" + ORG_ID + "' and is_del = '0'" +
|
|
" and users_uid is not null)";
|
|
}
|
|
strWhere += " and STATE = '1'";
|
|
|
|
DataTable dt = bll.LeaveTypeSta(strWhere);
|
|
data = FangYar.Common.JsonHelper.ToJson(dt);
|
|
code = 1;
|
|
msg = "获取成功!";
|
|
}
|
|
}
|
|
catch
|
|
{
|
|
code = -1;
|
|
msg = "获取失败!";
|
|
}
|
|
returnstr = "{\"code\":" + code + ",\"msg\":\"" + msg + "\",\"data\":" + data + "}";
|
|
return returnstr;
|
|
}
|
|
|
|
//请假统计
|
|
private string leaveOrgTypeSta(HttpContext context)
|
|
{
|
|
string returnstr = "";
|
|
int code = -1;
|
|
string msg = "";
|
|
string data = "";
|
|
string strWhere = " 1=1";
|
|
try
|
|
{
|
|
string ORG_ID = context.Request.Params["Org_Id"];
|
|
string USERS_UID = context.Request.Params["USERS_UID"];
|
|
string S_Time = context.Request.Params["S_Time"];
|
|
string E_Time = context.Request.Params["E_Time"];
|
|
|
|
|
|
string orgId = context.Request.Params["OrgId"];
|
|
|
|
FangYar.BLL.FIRE.FIRE_ORG orgBll = new FangYar.BLL.FIRE.FIRE_ORG();
|
|
FangYar.BLL.TBL.SysEmpBLL empBll = new FangYar.BLL.TBL.SysEmpBLL();
|
|
returnstr = "{\"code\":0,\"msg\":\"\",\"data\":";
|
|
|
|
string sql = " with t1 as ( ";
|
|
sql += " select fo.ORG_NAME,fo.TYPE,fo.extendcode1,e.ORG_ID,t.*, d.title AS TITLES, d.sort from( ";
|
|
sql += " select * from OA_LEAVE where date(S_TIME) between '" + S_Time + "' and '" + E_Time + "' ";
|
|
sql += " and PPL_ID in (select USERS_UID from tbl_sys_emp where IS_ADMIN='0' and is_del = '0' and users_uid is not null) and STATE = '1' ";
|
|
sql += " ) t left join DICTIONARY d on t.l_type = d.id LEFT JOIN tbl_sys_emp e on e.IS_ADMIN='0' and t.PPL_ID = e.USERS_UID ";
|
|
sql += " LEFT JOIN fire_org fo on fo.ORG_ID=e.ORG_ID) ";
|
|
sql += " ,t2 as ( SELECT * from t1,(select get_Org_child_list_OrgIds('" + ORG_ID + "') cids ) s where find_in_set(org_id,cids) and type = '0') ";
|
|
sql += " ,t3 as( SELECT org_id , org_name ";
|
|
sql += " ,sum(case TITLES when '事假' then L_num else 0 end) sjtianshu,sum(case TITLES when '事假' then 1 else 0 end) sjcishu ";
|
|
sql += " ,sum(case TITLES when '病假' then L_num else 0 end) bjtianshu ,sum(case TITLES when '病假' then 1 else 0 end) bjcishu ";
|
|
sql += " ,sum(case TITLES when '探亲假' then L_num else 0 end) tqjtianshu ,sum(case TITLES when '探亲假' then 1 else 0 end) tqjcishu ";
|
|
sql += " ,sum(case TITLES when '年假' then L_num else 0 end) njtianshu ,sum(case TITLES when '年假' then 1 else 0 end) njcishu ";
|
|
sql += " ,sum(case TITLES when '产假' then L_num else 0 end) cjtianshu ,sum(case TITLES when '产假' then 1 else 0 end) cjcishu ";
|
|
sql += " ,sum(case TITLES when '陪护假' then L_num else 0 end) phjtianshu ,sum(case TITLES when '陪护假' then 1 else 0 end) phjcishu ";
|
|
sql += " from t2 group by org_id , org_name , extendcode1) ";
|
|
sql += " ,t4 as ( SELECT *,sjtianshu+bjtianshu+tqjtianshu+njtianshu+cjtianshu+phjtianshu allnumtianshu ";
|
|
sql += " ,sjcishu+bjcishu+tqjcishu+njcishu+cjcishu+phjcishu allnumcishu from t3 ) SELECT * from t4 ";
|
|
|
|
DataTable dt = new CommomBLL().GetTableList(sql);
|
|
data += FangYar.Common.JsonHelper.ToJson(dt);
|
|
code = 1;
|
|
msg = "获取成功!";
|
|
}
|
|
catch
|
|
{
|
|
code = -1;
|
|
msg = "获取失败!";
|
|
}
|
|
returnstr = "{\"code\":" + code + ",\"msg\":\"" + msg + "\",\"data\":" + data + "}";
|
|
return returnstr;
|
|
}
|
|
|
|
|
|
//请假列表
|
|
private string leaveTypeList(HttpContext context)
|
|
{
|
|
string returnstr = "";
|
|
int code = -1;
|
|
string msg = "";
|
|
string data = "";
|
|
string strWhere = " 1=1";
|
|
try
|
|
{
|
|
string ORG_ID = context.Request.Params["Org_Id"];
|
|
string USERS_UID = context.Request.Params["USERS_UID"];
|
|
string S_Time = context.Request.Params["S_Time"];
|
|
string E_Time = context.Request.Params["E_Time"];
|
|
if (!string.IsNullOrEmpty(ORG_ID))
|
|
{
|
|
|
|
if (!string.IsNullOrEmpty(S_Time) && !string.IsNullOrEmpty(E_Time))
|
|
{
|
|
|
|
strWhere += " and date(S_TIME) between '" + S_Time + "' and '" + E_Time + "' ";
|
|
}
|
|
else
|
|
{
|
|
strWhere += " and date_format(now(),'%Y-%m-%d') = date_format(S_TIME,'%Y-%m-%d')";
|
|
}
|
|
|
|
if (!string.IsNullOrEmpty(USERS_UID))
|
|
{
|
|
strWhere += " and PPL_ID = '" + USERS_UID + "'";
|
|
}
|
|
else
|
|
{
|
|
strWhere += " and PPL_ID in (select USERS_UID from tbl_sys_emp where IS_ADMIN='0' and ORG_ID ='" + ORG_ID + "' and is_del = '0'" +
|
|
" and users_uid is not null)";
|
|
}
|
|
strWhere += " and STATE = '1'";
|
|
strWhere += " order by s_time desc ";
|
|
|
|
//DataTable dt = bll.GetList(strWhere).Tables[0];
|
|
DataTable dt = bll.LeaveTypeList(strWhere);
|
|
|
|
data = FangYar.Common.JsonHelper.ToJson(dt);
|
|
code = 1;
|
|
msg = "获取成功!";
|
|
}
|
|
}
|
|
catch
|
|
{
|
|
code = -1;
|
|
msg = "获取失败!";
|
|
}
|
|
returnstr = "{\"code\":" + code + ",\"msg\":\"" + msg + "\",\"data\":" + data + "}";
|
|
return returnstr;
|
|
}
|
|
|
|
//首页请假七天统计
|
|
private string homeLeaveSta(HttpContext context)
|
|
{
|
|
string returnstr = "";
|
|
int code = -1;
|
|
string msg = "";
|
|
string data = "";
|
|
string strWhere = " 1=1";
|
|
try
|
|
{
|
|
string ORG_ID = context.Request.Params["Org_Id"];
|
|
if (!string.IsNullOrEmpty(ORG_ID))
|
|
{
|
|
code = 1;
|
|
strWhere += " and ORG_ID='" + ORG_ID + "'";
|
|
DataTable dt = bll.homeLeaveSta(strWhere);
|
|
data = FangYar.Common.JsonHelper.ToJson(dt);
|
|
}
|
|
}
|
|
catch
|
|
{
|
|
msg = "获取失败!";
|
|
}
|
|
returnstr = "{\"code\":" + code + ",\"msg\":\"" + msg + "\",\"data\":" + data + "}";
|
|
return returnstr;
|
|
}
|
|
|
|
//html导出Word
|
|
private string htmlToWord(HttpContext context)
|
|
{
|
|
string returnstr = "";
|
|
try
|
|
{
|
|
string Org_Id = context.Request.Params["Org_Id"];
|
|
string USERS_UID = context.Request.Params["USERS_UID"];
|
|
string S_Time = context.Request.Params["S_Time"];
|
|
string E_Time = context.Request.Params["E_Time"];
|
|
string FlagUID = context.Request.Params["FlagUID"];
|
|
|
|
//实例化一个Document对象
|
|
Document doc = new Document();
|
|
doc.Watermark = null;
|
|
|
|
//添加section和段落
|
|
Section section1 = doc.AddSection();
|
|
Paragraph para1 = section1.AddParagraph();
|
|
|
|
#region 获取table数据
|
|
string strWhere = " 1=1 ";
|
|
|
|
|
|
|
|
if (!string.IsNullOrEmpty(S_Time) && !string.IsNullOrEmpty(E_Time))
|
|
{
|
|
strWhere += " and date_format('" + S_Time + "','%Y-%m-%d') <= date_format(S_TIME,'%Y-%m-%d')";
|
|
strWhere += " and date_format('" + E_Time + "','%Y-%m-%d') >= date_format(S_TIME,'%Y-%m-%d')";
|
|
}
|
|
else
|
|
{
|
|
strWhere += " and date_format(now(),'%Y-%m-%d') = date_format(S_TIME,'%Y-%m-%d')";
|
|
}
|
|
|
|
if (!string.IsNullOrEmpty(USERS_UID))
|
|
{
|
|
strWhere += " and PPL_ID = '" + USERS_UID + "'";
|
|
}
|
|
else
|
|
{
|
|
strWhere += " and PPL_ID in (select USERS_UID from tbl_sys_emp where IS_ADMIN='0' and ORG_ID ='" + Org_Id + "' and is_del = '0'" +
|
|
" and users_uid is not null)";
|
|
}
|
|
if (!string.IsNullOrEmpty(FlagUID))
|
|
{
|
|
strWhere += " and PPL_ID = '" + FlagUID + "'";
|
|
}
|
|
strWhere += " and STATE = '1'";
|
|
|
|
|
|
String[] headerQiandi1 = { "姓名", "事假", "病假", "探亲假", "年假", "产假", "陪护假", "总数" }; //表头字段
|
|
DataTable dt1 = bll.LeaveTypeSta(strWhere);
|
|
|
|
DataColumn dc = new DataColumn("Rowsall");
|
|
dt1.Columns.Add(dc);
|
|
int SJall = 0, BJall = 0, TQJall = 0, NJall = 0, CJall = 0, PHJall = 0;
|
|
for (int r = 0; r < dt1.Rows.Count; r++) //生成表体
|
|
{
|
|
int Rowsall = 0;
|
|
for (int c = 2; c < 8; c++)
|
|
{
|
|
Rowsall += int.Parse(dt1.Rows[r][c].ToString());
|
|
if (c == 2)
|
|
{
|
|
SJall += int.Parse(dt1.Rows[r][c].ToString());
|
|
}
|
|
else if (c == 3)
|
|
{
|
|
BJall += int.Parse(dt1.Rows[r][c].ToString());
|
|
}
|
|
else if (c == 4)
|
|
{
|
|
TQJall += int.Parse(dt1.Rows[r][c].ToString());
|
|
}
|
|
else if (c == 5)
|
|
{
|
|
NJall += int.Parse(dt1.Rows[r][c].ToString());
|
|
}
|
|
else if (c == 6)
|
|
{
|
|
CJall += int.Parse(dt1.Rows[r][c].ToString());
|
|
}
|
|
else if (c == 7)
|
|
{
|
|
PHJall += int.Parse(dt1.Rows[r][c].ToString());
|
|
}
|
|
|
|
}
|
|
dt1.Rows[r]["Rowsall"] = Rowsall;
|
|
}
|
|
DataRow dr = dt1.NewRow();
|
|
dt1.Rows.Add(dr);
|
|
dt1.Rows[dt1.Rows.Count - 1][0] = "总数";
|
|
dt1.Rows[dt1.Rows.Count - 1][2] = SJall;
|
|
dt1.Rows[dt1.Rows.Count - 1][3] = BJall;
|
|
dt1.Rows[dt1.Rows.Count - 1][4] = TQJall;
|
|
dt1.Rows[dt1.Rows.Count - 1][5] = NJall;
|
|
dt1.Rows[dt1.Rows.Count - 1][6] = CJall;
|
|
dt1.Rows[dt1.Rows.Count - 1][7] = PHJall;
|
|
dt1.Rows[dt1.Rows.Count - 1][8] = SJall + BJall + TQJall + NJall + CJall + PHJall;
|
|
dt1.Columns.Remove("PPL_ID");
|
|
|
|
if (dt1.Rows.Count > 0)
|
|
{
|
|
#region 创建Word表格
|
|
Table tableQiandi1 = section1.AddTable(); //新建表格
|
|
tableQiandi1.ResetCells(dt1.Rows.Count + 1, headerQiandi1.Length);
|
|
tableQiandi1.TableFormat.Borders.BorderType = Spire.Doc.Documents.BorderStyle.Single;
|
|
|
|
TableRow rowQiandi = tableQiandi1.Rows[0]; //添加行
|
|
rowQiandi.IsHeader = true; //设为表头
|
|
rowQiandi.Height = 30;
|
|
rowQiandi.HeightType = TableRowHeightType.Auto;
|
|
for (int i = 0; i < headerQiandi1.Length; i++) //生成表头
|
|
{
|
|
rowQiandi.Cells[i].Width = 145;
|
|
rowQiandi.Height = 30;
|
|
rowQiandi.Cells[i].CellFormat.VerticalAlignment = VerticalAlignment.Middle;
|
|
rowQiandi.HeightType = TableRowHeightType.Auto;
|
|
Paragraph p = rowQiandi.Cells[i].AddParagraph();
|
|
AddTextRange(section1, p, headerQiandi1[i], 14, true, "黑体", Spire.Doc.Documents.HorizontalAlignment.Center);
|
|
}
|
|
|
|
for (int r = 0; r < dt1.Rows.Count; r++) //生成表体
|
|
{
|
|
TableRow dataRow = tableQiandi1.Rows[r + 1];
|
|
dataRow.RowFormat.BackColor = Color.Empty;
|
|
for (int c = 0; c < dt1.Columns.Count; c++)
|
|
{
|
|
dataRow.Cells[c].Width = 145;
|
|
dataRow.Height = 20;
|
|
dataRow.Cells[c].CellFormat.VerticalAlignment = VerticalAlignment.Middle;
|
|
TextRange tr = dataRow.Cells[c].AddParagraph().AppendText(dt1.Rows[r][c].ToString());
|
|
tr.CharacterFormat.FontSize = 12;
|
|
}
|
|
}
|
|
#endregion 创建Word表格
|
|
}
|
|
|
|
|
|
|
|
//添加section和段落
|
|
Section section2 = doc.AddSection();
|
|
Paragraph para2 = section2.AddParagraph();
|
|
//列表
|
|
|
|
String[] headerQiandi2 = { "姓名", "类型", "请假天数", "开始时间", "结束时间", "去向", "随行人", "顶班人", "请假事由" }; //表头字段
|
|
|
|
if (!string.IsNullOrEmpty(S_Time) && !string.IsNullOrEmpty(E_Time))
|
|
{
|
|
strWhere += " and date_format('" + S_Time + "','%Y-%m-%d') <= date_format(S_TIME,'%Y-%m-%d')";
|
|
strWhere += " and date_format('" + E_Time + "','%Y-%m-%d') >= date_format(S_TIME,'%Y-%m-%d')";
|
|
}
|
|
else
|
|
{
|
|
strWhere += " and date_format(now(),'%Y-%m-%d') = date_format(S_TIME,'%Y-%m-%d')";
|
|
}
|
|
if (!string.IsNullOrEmpty(USERS_UID))
|
|
{
|
|
strWhere += " and PPL_ID = '" + USERS_UID + "'";
|
|
}
|
|
else
|
|
{
|
|
strWhere += " and PPL_ID in (select USERS_UID from tbl_sys_emp where IS_ADMIN='0' and ORG_ID ='" + Org_Id + "' and is_del = '0'" +
|
|
" and users_uid is not null)";
|
|
}
|
|
if (!string.IsNullOrEmpty(FlagUID))
|
|
{
|
|
strWhere += " and PPL_ID = '" + FlagUID + "'";
|
|
}
|
|
strWhere += " and STATE = '1'";
|
|
strWhere += " order by s_time desc ";
|
|
|
|
DataTable dt2 = bll.LeaveTypeList(strWhere);
|
|
|
|
|
|
#endregion 获取table数据
|
|
|
|
if (dt2.Rows.Count > 0)
|
|
{
|
|
|
|
#region 创建Word表格
|
|
Table tableQiandi2 = section2.AddTable(); //新建表格
|
|
tableQiandi2.ResetCells(dt2.Rows.Count + 1, headerQiandi2.Length);
|
|
tableQiandi2.TableFormat.Borders.BorderType = Spire.Doc.Documents.BorderStyle.Single;
|
|
|
|
TableRow rowQiandi = tableQiandi2.Rows[0]; //添加行
|
|
rowQiandi.IsHeader = true; //设为表头
|
|
rowQiandi.Height = 30;
|
|
rowQiandi.HeightType = TableRowHeightType.Auto;
|
|
for (int i = 0; i < headerQiandi2.Length; i++) //生成表头
|
|
{
|
|
rowQiandi.Cells[i].Width = 145;
|
|
rowQiandi.Height = 30;
|
|
rowQiandi.Cells[i].CellFormat.VerticalAlignment = VerticalAlignment.Middle;
|
|
rowQiandi.HeightType = TableRowHeightType.Auto;
|
|
Paragraph p = rowQiandi.Cells[i].AddParagraph();
|
|
AddTextRange(section2, p, headerQiandi2[i], 14, true, "黑体", Spire.Doc.Documents.HorizontalAlignment.Center);
|
|
}
|
|
|
|
for (int r = 0; r < dt2.Rows.Count; r++) //生成表体
|
|
{
|
|
TableRow dataRow = tableQiandi2.Rows[r + 1];
|
|
dataRow.RowFormat.BackColor = Color.Empty;
|
|
for (int c = 0; c < dt2.Columns.Count; c++)
|
|
{
|
|
dataRow.Cells[c].Width = 145;
|
|
dataRow.Height = 20;
|
|
dataRow.Cells[c].CellFormat.VerticalAlignment = VerticalAlignment.Middle;
|
|
TextRange tr = dataRow.Cells[c].AddParagraph().AppendText(dt2.Rows[r][c].ToString());
|
|
tr.CharacterFormat.FontSize = 12;
|
|
}
|
|
}
|
|
#endregion 创建Word表格
|
|
}
|
|
//保存到文档
|
|
string path = AppDomain.CurrentDomain.BaseDirectory + "\\OA\\Leave_Statistics\\";
|
|
string fileName = DateTime.Now.ToString("yyyyMMddHHmmssfff") + ".doc";
|
|
if (Directory.Exists(path) == false)//如果不存在就创建文件夹
|
|
{
|
|
Directory.CreateDirectory(path);
|
|
}
|
|
doc.SaveToFile(path + fileName, FileFormat.Doc);
|
|
returnstr = "{\"code\":0,\"msg\":\"\",\"url\":\"/OA/Leave_Statistics/" + fileName + "\"}";
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
returnstr = "{\"code\":-1,\"msg\":\"" + e.Message + "\"}";
|
|
}
|
|
return returnstr;
|
|
}
|
|
|
|
private Image GetImage(string fileName)
|
|
{
|
|
byte[] bytes = Convert.FromBase64String(fileName);
|
|
using (MemoryStream ms = new MemoryStream(bytes))
|
|
{
|
|
return Image.FromStream(ms);
|
|
}
|
|
}
|
|
|
|
private void AddTextRange(Section section, Paragraph pragraph, string word, float fontSize, bool isBold, string fontName, Spire.Doc.Documents.HorizontalAlignment alignType)
|
|
{
|
|
|
|
TextRange textRange = pragraph.AppendText(word);
|
|
textRange.CharacterFormat.FontSize = fontSize;
|
|
textRange.CharacterFormat.Bold = isBold;
|
|
textRange.CharacterFormat.FontName = fontName;
|
|
pragraph.Format.HorizontalAlignment = alignType;
|
|
}
|
|
|
|
|
|
|
|
//根据日期统计请假人员
|
|
private string leaveSta2(HttpContext context)
|
|
{
|
|
string returnstr = "";
|
|
try
|
|
{
|
|
string ORG_ID = context.Request.Params["OrgId"];
|
|
string findDate = context.Request.Params["findDate"];
|
|
if (!string.IsNullOrEmpty(ORG_ID) && !string.IsNullOrEmpty(findDate))
|
|
{
|
|
returnstr = "{\"code\":0,\"msg\":\"\",\"data\":";
|
|
List<FangYar.Model.OA_LEAVE> list = bll.leaveSta2(ORG_ID, findDate);
|
|
returnstr += FangYar.Common.JsonHelper.ToJson(list);
|
|
returnstr += "}";
|
|
}
|
|
else
|
|
{
|
|
return "{\"code\":-1,\"msg\":\"参数有误\",\"data\":[]}";
|
|
}
|
|
}
|
|
catch
|
|
{
|
|
returnstr = "{\"code\":0,\"msg\":\"error\",\"count\":0,\"data\":[]}";
|
|
}
|
|
return returnstr;
|
|
}
|
|
|
|
|
|
|
|
#region 返回所有请假信息
|
|
|
|
|
|
/// <summary>
|
|
/// 公差列表
|
|
/// </summary>
|
|
/// <param name="context"></param>
|
|
/// <returns></returns>
|
|
private string leaveAllList(HttpContext context)
|
|
{
|
|
JsonRetMo<List<dynamic>> retMo = new JsonRetMo<List<dynamic>>() { code = "1", data = new List<dynamic>(), msg = "" };
|
|
try
|
|
{
|
|
string ORG_ID = context.Request.Params["Org_Id"];
|
|
string USERS_UID = context.Request.Params["USERS_UID"];
|
|
string S_Time = context.Request.Params["S_Time"];
|
|
string E_Time = context.Request.Params["E_Time"];
|
|
if (!string.IsNullOrEmpty(ORG_ID))
|
|
{
|
|
var listOrj = QueryOrgList(ORG_ID);
|
|
var listLeave = QueryLeaveAllList(ORG_ID, USERS_UID, S_Time, E_Time);
|
|
for (int i = 0; i < listOrj.Count; i++)
|
|
{
|
|
var ORG_IDStr = listOrj[i].ORG_ID;
|
|
listOrj[i].SubData.AddRange(listLeave.Where(p => p.ORG_ID == ORG_IDStr).ToList());
|
|
}
|
|
retMo.data = listOrj;
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
retMo.code = "0";
|
|
retMo.msg = "异常:" + ex;
|
|
}
|
|
string returnstr = FangYar.Common.JsonHelper.ToJSON1(retMo);
|
|
return returnstr;
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// 查询请假数据详情
|
|
/// </summary>
|
|
/// <param name="ORG_ID"></param>
|
|
/// <param name="USERS_UID"></param>
|
|
/// <param name="S_Time"></param>
|
|
/// <param name="E_Time"></param>
|
|
/// <returns></returns>
|
|
private List<dynamic> QueryLeaveAllList(string ORG_ID, string USERS_UID, string S_Time, string E_Time)
|
|
{
|
|
|
|
//查询所有出公差信息
|
|
string sqlToler = @"SELECT (SELECT d.title FROM DICTIONARY d WHERE d.id = t.L_TYPE) DIC_TEXT,
|
|
(SELECT d.ORG_ID FROM TBL_SYS_EMP d WHERE d.IS_ADMIN='0' and d.USERS_UID = t.PPL_ID) ORG_ID,
|
|
t.* from OA_LEAVE t
|
|
WHERE date_format(t.S_TIME, '%Y-%m-%d %H:%i:%s') >= date_format('" + S_Time + @" 0:0:0', '%Y-%m-%d %H:%i:%s')
|
|
and date_format(t.E_TIME,'%Y-%m-%d %H:%i:%s') <= date_format('" + E_Time + @" 23:59:59', '%Y-%m-%d %H:%i:%s')
|
|
and t.PPL_ID in (SELECT USERS_UID from TBL_SYS_EMP where IS_ADMIN='0' and ORG_ID in (select ORG_ID from FIRE_ORG,(select get_Org_child_list('" + ORG_ID +
|
|
"') cids ) s where find_in_set(org_id,cids) ))";
|
|
|
|
//查询公差信息
|
|
DataTable dtToler = FangYar.Common.MySqlHelper.QueryTable(sqlToler);
|
|
var listToler = dtToler.ToDynamicList();
|
|
|
|
if (!string.IsNullOrWhiteSpace(USERS_UID))
|
|
{
|
|
listToler = listToler.Where(p => p.PPL_ID == USERS_UID).ToList();
|
|
}
|
|
List<dynamic> retList = new List<dynamic>();
|
|
foreach (var item in listToler)
|
|
{
|
|
|
|
retList.Add(new
|
|
{
|
|
ID = item.ID + "",
|
|
PPL_ID = item.PPL_ID + "",
|
|
PPL_NAME = item.PPL_NAME + "",
|
|
L_TYPE = item.L_TYPE + "",
|
|
S_TIME = item.S_TIME + "",
|
|
E_TIME = item.E_TIME + "",
|
|
L_OUT = item.L_OUT + "",
|
|
ACC_PPL = item.ACC_PPL + "",
|
|
REP_PPL = item.REP_PPL + "",
|
|
L_REASON = item.L_REASON + "",
|
|
PHOTO = item.PHOTO + "",
|
|
STATE = item.STATE + "",
|
|
L_NUM = item.L_NUM + "",
|
|
TITLE = item.TITLE + "",
|
|
EXTEND = item.EXTEND + "",
|
|
EXTEND2 = item.EXTEND2 + "",
|
|
EXTEND3 = item.EXTEND3 + "",
|
|
EXTEND4 = item.EXTEND4 + "",
|
|
IS_RETURN = item.IS_RETURN + "",
|
|
DIC_TEXT = item.DIC_TEXT + "",
|
|
ORG_ID = item.ORG_ID + ""
|
|
});
|
|
}
|
|
|
|
|
|
|
|
|
|
return retList;
|
|
|
|
}
|
|
|
|
private List<dynamic> QueryOrgList(string ORG_ID)
|
|
{
|
|
|
|
//查询所有出公差信息
|
|
string sqlToler = @"select * from FIRE_ORG,(select get_Org_child_list('" + ORG_ID + "') cids ) s where type=0 and find_in_set(org_id,cids) ";
|
|
|
|
//查询公差信息
|
|
DataTable dtToler = FangYar.Common.MySqlHelper.QueryTable(sqlToler);
|
|
var listToler = dtToler.ToDynamicList();
|
|
|
|
List<dynamic> retList = new List<dynamic>();
|
|
foreach (var item in listToler)
|
|
{
|
|
|
|
retList.Add(new
|
|
{
|
|
|
|
ORG_ID = item.ORG_ID,
|
|
PID = item.PID,
|
|
ORG_NO = item.ORG_NO,
|
|
ORG_NAME = item.ORG_NAME,
|
|
ATTR = item.ATTR,
|
|
ORG_LEVEL = item.ORG_LEVEL,
|
|
ORG_TYPE = item.ORG_TYPE,
|
|
ADDR = item.ADDR,
|
|
DES = item.DES,
|
|
AFF = item.AFF,
|
|
CODE = item.CODE,
|
|
CONT = item.CONT,
|
|
PHONE = item.PHONE,
|
|
LON = item.LON,
|
|
LAT = item.LAT,
|
|
CITY = item.CITY,
|
|
STATE = item.STATE,
|
|
A_PER = item.A_PER,
|
|
A_TIME = item.A_TIME,
|
|
U_PER = item.U_PER,
|
|
U_TIME = item.U_TIME,
|
|
EXTENDCODE1 = item.EXTENDCODE1,
|
|
EXTENDCODE2 = item.EXTENDCODE2,
|
|
EXTENDCODE3 = item.EXTENDCODE3,
|
|
EXTENDCODE4 = item.EXTENDCODE4,
|
|
EXTENDCODE5 = item.EXTENDCODE5,
|
|
DUTY_PHONE = item.DUTY_PHONE,
|
|
SECRET = item.SECRET,
|
|
ZIP_CODE = item.ZIP_CODE,
|
|
FAX = item.FAX,
|
|
HEI_B = item.HEI_B,
|
|
HEI = item.HEI,
|
|
UNIT_PER = item.UNIT_PER,
|
|
UNIT_W_PHONE = item.UNIT_W_PHONE,
|
|
UNIT_M_PHONE = item.UNIT_M_PHONE,
|
|
UNIT_R_PHONE = item.UNIT_R_PHONE,
|
|
CONT_PER = item.CONT_PER,
|
|
CONT_W_PHONE = item.CONT_W_PHONE,
|
|
CONT_M_PHONE = item.CONT_M_PHONE,
|
|
CONT_R_PHONE = item.CONT_R_PHONE,
|
|
CONT_EMAIL = item.CONT_EMAIL,
|
|
UNIT = item.UNIT,
|
|
UNIT_ADDR = item.UNIT_ADDR,
|
|
ALL_NUM = item.ALL_NUM,
|
|
FOUND_TIME = item.FOUND_TIME,
|
|
Q_LEVEL = item.Q_LEVEL,
|
|
E_TIME = item.E_TIME,
|
|
PLACE_ADDR = item.PLACE_ADDR,
|
|
TRA_TOOL = item.TRA_TOOL,
|
|
SUPPORT = item.SUPPORT,
|
|
DATA_UNIT = item.DATA_UNIT,
|
|
RECORD_NO = item.RECORD_NO,
|
|
MAIN_DUTY = item.MAIN_DUTY,
|
|
EPUIP_DES = item.EPUIP_DES,
|
|
EXP_DES = item.EXP_DES,
|
|
RES_EXP = item.RES_EXP,
|
|
SIGNAL_MODE = item.SIGNAL_MODE,
|
|
REMARKS = item.REMARKS,
|
|
PIDS = item.PIDS,
|
|
TYPE = item.TYPE,
|
|
SORT = item.SORT,
|
|
CHILDSLENGTH = item.CHILDSLENGTH,
|
|
CHARGELEADER = item.CHARGELEADER,
|
|
LEADER = item.LEADER,
|
|
SubData = new List<dynamic>(),
|
|
});
|
|
}
|
|
|
|
|
|
|
|
|
|
return retList;
|
|
|
|
}
|
|
|
|
#endregion
|
|
|
|
public bool IsReusable
|
|
{
|
|
get
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
}
|
|
}
|