SGGL_SHJ/SGGL/BLL/PHTGL/ContractCompile/PHTGL_ApproveService.cs

300 lines
12 KiB
C#

using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
namespace BLL
{
public static class PHTGL_ApproveService
{
public const string ActionPlanReview = "ActionPlanReview";
public const string ApproveUserReview = "ApproveUserReview";
public const string BidDocumentsReview = "BidDocumentsReview";
public const string SetSubReview = "SetSubReview";
public const string ContractReview = "ContractReview";
public const string ContractReview_Countersign = "ContractReview_Countersign";
public static Model.PHTGL_Approve GetPHTGL_ApproveById(string ApproveId)
{
return Funs.DB.PHTGL_Approve.FirstOrDefault(e => e.ApproveId == ApproveId);
}
public static List<Model.PHTGL_Approve> GetPHTGL_ApproveByContractId(string contractId)
{
var q = (from x in Funs.DB.PHTGL_Approve where x.ContractId == contractId && x.State == 0 select x).ToList();
return q;
}
/// <summary>
///获取当前人员的所有审批信息
/// </summary>
/// <param name="contractId"></param>
/// <param name="approveMan"></param>
/// <returns></returns>
public static List<Model.PHTGL_Approve> GetListPHTGL_ApproveByUserId(string contractId, string approveMan)
{
var q = (from x in Funs.DB.PHTGL_Approve where x.ContractId == contractId && x.ApproveMan == approveMan select x).ToList();
return q;
}
public static Model.PHTGL_Approve GetPHTGL_ApproveByContractIdandUserId(string contractId, string UserID)
{
var q=(from x in Funs.DB.PHTGL_Approve where x.ContractId==contractId && x.ApproveMan==UserID orderby x.ApproveDate descending select x ).FirstOrDefault();
//return Funs.DB.PHTGL_Approve.FirstOrDefault(e => e.ContractId == contractId && e.ApproveMan == UserID );
return q;
}
public static Model.PHTGL_Approve GetPHTGL_ApproveByContractIdAndType(string contractId, string approveType)
{
return Funs.DB.PHTGL_Approve.FirstOrDefault(e => e.ContractId == contractId && e.ApproveType == approveType);
}
/// <summary>
/// 获取当前人员正在审批的信息
/// </summary>
/// <param name="contractId"></param>
/// <param name="approveMan"></param>
/// <returns></returns>
public static Model.PHTGL_Approve GetPHTGL_ApproveByUserId(string contractId, string approveMan)
{
return Funs.DB.PHTGL_Approve.FirstOrDefault(e => e.ContractId == contractId && e.ApproveMan == approveMan && e.State == 0);
}
/// <summary>
/// 判断当前人员是否是审批相关人员
/// </summary>
/// <param name="contractId"></param>
/// <param name="approveMan"></param>
/// <returns></returns>
public static bool IsApproveMan(string contractId, string approveMan)
{
bool IsExit = false;
var q = (from x in Funs.DB.PHTGL_Approve where x.ContractId == contractId && x.ApproveMan == approveMan select x).ToList();
if (q != null)
{
IsExit = true;
}
return IsExit;
}
/// <summary>
/// 添加审批人员记录
/// </summary>
/// <param name="newtable"></param>
public static void AddPHTGL_Approve(Model.PHTGL_Approve newtable)
{
Model.PHTGL_Approve table = new Model.PHTGL_Approve();
table.ApproveId = newtable.ApproveId;
table.ContractId = newtable.ContractId;
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;
table.IsPushOa = newtable.IsPushOa;
Funs.DB.PHTGL_Approve.InsertOnSubmit(table);
Funs.DB.SubmitChanges();
}
/// <summary>
/// 修改审批人员记录
/// </summary>
/// <param name="newtable"></param>
public static void UpdatePHTGL_Approve(Model.PHTGL_Approve newtable)
{
Model.PHTGL_Approve table = Funs.DB.PHTGL_Approve.FirstOrDefault(e => e.ApproveId == newtable.ApproveId);
if (table != null)
{
table.ApproveId = newtable.ApproveId;
table.ContractId = newtable.ContractId;
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;
table.IsPushOa = newtable.IsPushOa;
Funs.DB.SubmitChanges();
}
}
/// <summary>
/// 删除记录
/// </summary>
/// <param name="contractId"></param>
public static void DeletePHTGL_ApproveBycontractId(string contractId)
{
var q = (from x in Funs.DB.PHTGL_Approve where x.ContractId == contractId select x).ToList();
if (q != null)
{
Funs.DB.PHTGL_Approve.DeleteAllOnSubmit(q);
Funs.DB.SubmitChanges();
}
}
/// <summary>
/// 获取未推送oa 的审批记录
/// </summary>
/// <returns></returns>
public static List<Model.PHTGL_Approve> GetApproves_NopushOa()
{
var q = (from x in Funs.DB.PHTGL_Approve where x.IsPushOa == 0 && x.ApproveMan != "" select x).ToList();
return q;
}
/// <summary>
/// 获取当前审批合同所以人员的最后一次审批记录
/// </summary>
/// <param name="ContractId"></param>
/// <returns></returns>
public static DataTable GetFinalApproveData(string ContractId)
{
string strSql = @" select a.ApproveId ,a.ApproveMan, Users.PersonName,
users.SignatureUrl,a.ApproveType,a.ApproveDate ,a.ApproveIdea,a.ApproveForm
from PHTGL_Approve a "
+ @" LEFT JOIN dbo.Person_Persons AS Users ON a.ApproveMan=Users.PersonId"
+ @" where not exists (select 1 from PHTGL_Approve b where a.ApproveType=b.ApproveType and a.ContractId=b.ContractId and a.ApproveDate<b.ApproveDate ) and ContractId=@ContractId and a.State=1"
+ @" order by CONVERT(datetime,a.ApproveDate) ASC ";
List<SqlParameter> listStr = new List<SqlParameter>();
listStr.Add(new SqlParameter("@ContractId", ContractId));
SqlParameter[] parameter = listStr.ToArray();
DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter);
return tb;
}
/// <summary>
/// 获取当前审批人在审批流中的审批记录
/// </summary>
/// <param name="ContractId"></param>
/// <param name="ApproveMan"></param>
/// <returns></returns>
public static string GetApproveManIdea(string ContractId, string ApproveMan, string ApproveType)
{
string AllApproveIdea = "";
string strSql = @" select a.ApproveId ,a.ApproveMan,a.ApproveType,a.ApproveDate ,a.ApproveIdea,a.ApproveForm
from PHTGL_Approve a "
+ @" where ContractId=@ContractId 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("@ContractId", ContractId));
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="ContractId"></param>
/// <returns></returns>
public static DataTable GetAllApproveData(string ContractId)
{
string strSql = @" select u.PersonName as ApproveMan,
App.ApproveDate,
(CASE App.IsAgree WHEN '1' THEN '不同意'
WHEN '2' THEN '同意' END) AS IsAgree,
App.ApproveIdea,
App.ApproveId,
App.ApproveType
from PHTGL_Approve as App"
+ @" left join Person_Persons AS U ON U.PersonId = App.ApproveMan WHERE 1=1 and App.IsAgree <>0 and app.ContractId= @ContractId order by convert(datetime ,App.ApproveDate) ";
List<SqlParameter> listStr = new List<SqlParameter>();
listStr.Add(new SqlParameter("@ContractId", ContractId));
SqlParameter[] parameter = listStr.ToArray();
DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter);
return tb;
}
/// <summary>
/// 获取最后拒绝的人员
/// </summary>
/// <param name="ContractId"></param>
/// <returns></returns>
public static DataTable GetRefuseEndMan(string ContractId)
{
string strSql = @" select top 1 a.ApproveId ,a.ApproveMan,a.ApproveType,a.ApproveDate ,a.ApproveIdea,a.ApproveForm
from PHTGL_Approve a "
+ @" where ContractId=@ContractId 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("@ContractId", ContractId));
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 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;
}
}
}