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); } /// /// 获取未审批记录 /// /// 父级主键 /// public static List 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; } /// /// 获取所有审批记录 /// /// 父级主键 /// public static List GetAllProblem_NoticeApproveByParentId(string parentId) { var q = (from x in Funs.DB.Problem_NoticeApprove where x.ParentId == parentId select x).ToList(); return q; } /// /// 根据parentid 获取每个审批组的最后一条记录 /// /// /// public static List 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; } /// ///获取当前人员的所有审批信息 /// /// /// /// public static List 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; } /// /// 获取当前人员的最后一次审批信息 /// /// /// /// 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 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; } /// /// 获取当前人员正在审批的信息 /// /// /// /// 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); } /// /// 判断当前人员是否是审批相关人员 /// /// /// /// 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; } /// /// 添加审批人员记录 /// /// 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); } /// /// 修改审批人员记录 /// /// 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); } /// /// 删除记录 /// /// 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(); } } /// /// 获取当前审批合同所以人员的最后一次审批记录 /// /// /// //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 listStr = new List(); // listStr.Add(new SqlParameter("@ParentId", ParentId)); // SqlParameter[] parameter = listStr.ToArray(); // DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter); // return tb; //} /// /// 获取当前审批人在审批流中的审批记录 /// /// /// /// 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 listStr = new List(); 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; } /// /// 获取当前审批合同所全部审批记录 /// /// /// 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 listStr = new List(); listStr.Add(new SqlParameter("@ParentId", ParentId)); SqlParameter[] parameter = listStr.ToArray(); DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter); return tb; } /// /// 获取最后拒绝的人员 /// /// /// 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 listStr = new List(); 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; } } }