SGGL_JT/SUBQHSE/BLL/Customization/ZHGL/ProblemNoticeApprove.cs

367 lines
14 KiB
C#

using System.Collections.Generic;
using System.Data.SqlClient;
using System.Data;
using System.Linq;
using Model;
using System;
namespace BLL
{
public class ProblemNoticeApprove
{
public static Model.Problem_NoticeApprove GetProblem_NoticeApproveById(string approveId)
{
return Funs.DB.Problem_NoticeApprove.FirstOrDefault(e => e.ApproveId == approveId);
}
/// <summary>
/// 获取未审批记录
/// </summary>
/// <param name="parentId">父级主键</param>
/// <returns></returns>
public static List<Model.Problem_NoticeApprove> GetProblem_NoticeApproveByParentId(string parentId)
{
var q = (from x in Funs.DB.Problem_NoticeApprove where x.ParentId == parentId && x.State == 0 select x).ToList();
return q;
}
/// <summary>
/// 获取所有审批记录
/// </summary>
/// <param name="parentId">父级主键</param>
/// <returns></returns>
public static List<Model.Problem_NoticeApprove> GetAllProblem_NoticeApproveByParentId(string parentId)
{
var q = (from x in Funs.DB.Problem_NoticeApprove where x.ParentId == parentId select x).ToList();
return q;
}
/// <summary>
/// 根据parentid 获取每个审批组的最后一条记录
/// </summary>
/// <param name="parentId"></param>
/// <returns></returns>
public static List<Model.Problem_NoticeApprove> GetApproveTypeLastProblem_NoticeApproveByParentId(string parentId)
{
var q =
(from x in Funs.DB.Problem_NoticeApprove where x.ParentId == parentId group x by x.ApproveType into g select g.OrderByDescending(p => p.ApproveDate).FirstOrDefault()).ToList();
return q;
}
/// <summary>
///获取当前人员的所有审批信息
/// </summary>
/// <param name="parentId"></param>
/// <param name="approveMan"></param>
/// <returns></returns>
public static List<Model.Problem_NoticeApprove> GetListProblem_NoticeApproveByUserId(string parentId, string approveMan)
{
var q = (from x in Funs.DB.Problem_NoticeApprove where x.ParentId == parentId && x.ApproveMan == approveMan select x).ToList();
return q;
}
/// <summary>
/// 获取当前人员的最后一次审批信息
/// </summary>
/// <param name="parentId"></param>
/// <param name="userId"></param>
/// <returns></returns>
public static Model.Problem_NoticeApprove GetProblem_NoticeApproveByParentIdandUserId(string parentId, string userId)
{
var q = (from x in Funs.DB.Problem_NoticeApprove where x.ParentId == parentId && x.ApproveMan == userId orderby x.ApproveDate descending select x).FirstOrDefault();
//return Funs.DB.Problem_NoticeApprove.FirstOrDefault(e => e.ParentId == ParentId && e.ApproveMan == UserID );
return q;
}
public static List<Model.Problem_NoticeApprove> GetProblem_NoticeApproveByParentIdAndType(string parentId, string approveType)
{
return Funs.DB.Problem_NoticeApprove.Where(e => e.ParentId == parentId && e.ApproveType == approveType).ToList();
}
public static bool IsCountersignerAllAgree(string parentId, string approveType)
{
bool result = false;
var list = GetProblem_NoticeApproveByParentIdAndType(parentId, approveType);
var notApproveCount = list.Where(x => x.State == 0).Count();
if (notApproveCount == 0)
{
result = true;
}
return result;
}
/// <summary>
/// 获取当前人员正在审批的信息
/// </summary>
/// <param name="parentId"></param>
/// <param name="approveMan"></param>
/// <returns></returns>
public static Model.Problem_NoticeApprove GetProblem_NoticeApproveByUserId(string parentId, string approveMan)
{
return Funs.DB.Problem_NoticeApprove.FirstOrDefault(e => e.ParentId == parentId && e.ApproveMan == approveMan && e.State == 0);
}
/// <summary>
/// 判断当前人员是否是审批相关人员
/// </summary>
/// <param name="parentId"></param>
/// <param name="approveMan"></param>
/// <returns></returns>
public static bool IsApproveMan(string parentId, string approveMan)
{
bool IsExit = false;
var q = (from x in Funs.DB.Problem_NoticeApprove where x.ParentId == parentId && x.ApproveMan == approveMan select x).ToList();
if (q.Count > 0)
{
IsExit = true;
}
return IsExit;
}
/// <summary>
/// 添加审批人员记录
/// </summary>
/// <param name="newtable"></param>
public static void AddProblem_NoticeApprove(Model.Problem_NoticeApprove newtable)
{
Model.Problem_NoticeApprove table = new Model.Problem_NoticeApprove();
table.ApproveId = newtable.ApproveId;
table.ParentId = newtable.ParentId;
table.ApproveMan = newtable.ApproveMan;
table.ApproveDate = newtable.ApproveDate;
table.State = newtable.State;
table.IsAgree = newtable.IsAgree;
table.ApproveIdea = newtable.ApproveIdea;
table.ApproveType = newtable.ApproveType;
table.ApproveForm = newtable.ApproveForm;
Funs.DB.Problem_NoticeApprove.InsertOnSubmit(table);
Funs.DB.SubmitChanges();
Model.Workflow_TodoItems todoItems = new Model.Workflow_TodoItems
{
Id = SQLHelper.GetNewID(),
SysCode = WorkflowTodoitemsService.SysCode,
FlowId = table.ApproveId,
WorkflowName = "审批",
NodeName = table.ApproveType,
Receiver = table.ApproveMan,
ReceiveDateTime = DateTime.Now,
Status = (int)WorkflowTodoitemsService.Status.,
};
if (table.ApproveForm == "ProblemNotice")
{
todoItems.RequestName = "问题督导通知单";
todoItems.PCUrl= Funs.SGGLUrl + "Customization/CNCCG/ZHGL/Problem/ProblemNoticeManagerEdit.aspx?ProNoticeId=" + table.ParentId;
}
else if (table.ApproveForm == "ProblemReply")
{
todoItems.RequestName = "安全质量检查回复单";
todoItems.PCUrl = Funs.SGGLUrl + "Customization/CNCCG/ZHGL/Problem/ProblemReplyManagerEdit.aspx?ProNoticeId=" + table.ParentId.Replace("reply", "");
}
WorkflowTodoitemsService.AddWorkflow_TodoItems(todoItems);
}
/// <summary>
/// 修改审批人员记录
/// </summary>
/// <param name="newtable"></param>
public static void UpdateProblem_NoticeApprove(Model.Problem_NoticeApprove newtable)
{
Model.Problem_NoticeApprove table = Funs.DB.Problem_NoticeApprove.FirstOrDefault(e => e.ApproveId == newtable.ApproveId);
if (table != null)
{
table.ApproveId = newtable.ApproveId;
table.ParentId = newtable.ParentId;
table.ApproveMan = newtable.ApproveMan;
table.ApproveDate = newtable.ApproveDate;
table.State = newtable.State;
table.IsAgree = newtable.IsAgree;
table.ApproveIdea = newtable.ApproveIdea;
table.ApproveType = newtable.ApproveType;
table.ApproveForm = newtable.ApproveForm;
Funs.DB.SubmitChanges();
}
WorkflowTodoitemsService.DoneWorkflow_TodoItems(table.ApproveId, table.ApproveMan);
}
/// <summary>
/// 删除记录
/// </summary>
/// <param name="parentId"></param>
public static void DeleteProblem_NoticeApproveByParentId(string parentId)
{
var q = (from x in Funs.DB.Problem_NoticeApprove where x.ParentId == parentId select x).ToList();
if (q.Count>0)
{
foreach (var item in q)
{
WorkflowTodoitemsService.DeleteWorkflow_TodoItemsByflowId(item.ApproveId);
}
Funs.DB.Problem_NoticeApprove.DeleteAllOnSubmit(q);
Funs.DB.SubmitChanges();
}
}
/// <summary>
/// 获取当前审批合同所以人员的最后一次审批记录
/// </summary>
/// <param name="ParentId"></param>
/// <returns></returns>
//public static DataTable GetFinalApproveData(string ParentId)
//{
// string strSql = @" select a.ApproveId ,a.ApproveMan, Users.PersonName,
//users.SignatureUrl,a.ApproveType,a.ApproveDate ,a.ApproveIdea,a.ApproveForm
// from Problem_NoticeApprove a "
// + @" LEFT JOIN dbo.Person_Persons AS Users ON a.ApproveMan=Users.PersonId"
// + @" where not exists (select 1 from Problem_NoticeApprove b where a.ApproveType=b.ApproveType and a.ParentId=b.ParentId and a.ApproveDate<b.ApproveDate ) and ParentId=@ParentId and a.State=1"
// + @" order by CONVERT(datetime,a.ApproveDate) ASC ";
// List<SqlParameter> listStr = new List<SqlParameter>();
// listStr.Add(new SqlParameter("@ParentId", ParentId));
// SqlParameter[] parameter = listStr.ToArray();
// DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter);
// return tb;
//}
/// <summary>
/// 获取当前审批人在审批流中的审批记录
/// </summary>
/// <param name="ParentId"></param>
/// <param name="ApproveMan"></param>
/// <returns></returns>
public static string GetApproveManIdea(string ParentId, string ApproveMan, string ApproveType)
{
string AllApproveIdea = "";
string strSql = @" select a.ApproveId ,a.ApproveMan,a.ApproveType,a.ApproveDate ,a.ApproveIdea,a.ApproveForm
from Problem_NoticeApprove a "
+ @" where ParentId=@ParentId and a.State=1 and a.ApproveMan=@ApproveMan and a.ApproveType=@ApproveType "
+ @" order by CONVERT(datetime,a.ApproveDate) desc ";
List<SqlParameter> listStr = new List<SqlParameter>();
listStr.Add(new SqlParameter("@ParentId", ParentId));
listStr.Add(new SqlParameter("@ApproveMan", ApproveMan));
listStr.Add(new SqlParameter("@ApproveType", ApproveType));
SqlParameter[] parameter = listStr.ToArray();
DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter);
foreach (DataRow dr in tb.Rows)
{
string ApproveIdea = dr["ApproveIdea"].ToString().Replace("其他会签人员已经拒绝", "");
if (ApproveIdea.Length > 4)
{
AllApproveIdea += ApproveIdea;
}
}
if (AllApproveIdea == "")
{
AllApproveIdea = "同意";
}
return AllApproveIdea;
}
/// <summary>
/// 获取当前审批合同所全部审批记录
/// </summary>
/// <param name="ParentId"></param>
/// <returns></returns>
public static DataTable GetAllApproveData(string ParentId)
{
string strSql = @" select u.UserName ApproveMan,
App.ApproveDate,
(CASE App.IsAgree WHEN '1' THEN '不同意'
WHEN '2' THEN '同意' END) AS IsAgree,
App.ApproveIdea,
App.ApproveId,
App.ApproveType
from Problem_NoticeApprove as App"
+ @" left join Sys_User AS U ON U.UserId = App.ApproveMan WHERE App.IsAgree <>0 and app.ParentId= @ParentId order by convert(datetime ,App.ApproveDate) ";
List<SqlParameter> listStr = new List<SqlParameter>();
listStr.Add(new SqlParameter("@ParentId", ParentId));
SqlParameter[] parameter = listStr.ToArray();
DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter);
return tb;
}
/// <summary>
/// 获取最后拒绝的人员
/// </summary>
/// <param name="ParentId"></param>
/// <returns></returns>
public static DataTable GetRefuseEndMan(string ParentId)
{
string strSql = @" select top 1 a.ApproveId ,a.ApproveMan,a.ApproveType,a.ApproveDate ,a.ApproveIdea,a.ApproveForm
from Problem_NoticeApprove a "
+ @" where ParentId=@ParentId and a.State=1 and a.IsAgree=1"
+ @" order by CONVERT(datetime,a.ApproveDate) desc ";
List<SqlParameter> listStr = new List<SqlParameter>();
listStr.Add(new SqlParameter("@ParentId", ParentId));
SqlParameter[] parameter = listStr.ToArray();
DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter);
return tb;
}
}
public class ApproveManModel
{
public int Number
{
get;
set;
}
public string Userid
{
get;
set;
}
public string Rolename
{
get;
set;
}
public int Level
{
get;
set;
}
}
public class PrintModel
{
public int Number
{
get;
set;
}
public string Rolename
{
get;
set;
}
public string UserName
{
get;
set;
}
public string Image
{
get;
set;
}
public string ApproveIdea
{
get;
set;
}
public string ApproveDate
{
get;
set;
}
}
}