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

319 lines
14 KiB
C#

using System.Collections;
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 const string Invoice_Input = "Invoice_Input";
public const string Invoice_Output = "Invoice_Output";
public static Model.PHTGL_Approve GetPHTGL_ApproveById(string ApproveId)
{
return Funs.DB.PHTGL_Approve.FirstOrDefault(e => e.ApproveId == ApproveId);
}
/// <summary>
/// 获取未审批记录
/// </summary>
/// <param name="contractId"></param>
/// <returns></returns>
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="contractId"></param>
/// <param name="approveMan"></param>
/// <returns></returns>
public static bool IsApprovingMan(string contractId, string approveMan)
{
bool IsExit = false;
var q = (from x in Funs.DB.PHTGL_Approve where x.ContractId == contractId && x.ApproveMan == approveMan && x.State == 0 select x).ToList();
if (q.Count > 0)
{
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 != "" && x.State == 0 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;
//}
public static IEnumerable GetAllApproveData(string contractId)
{
var result = (from x in Funs.DB.PHTGL_Approve
join u in Funs.DB.Person_Persons on x.ApproveMan equals u.PersonId
where x.IsAgree != 0 && x.ContractId == contractId
orderby x.ApproveDate
select new
{
ApproveMan = u.PersonName,
x.ApproveDate,
IsAgree = x.IsAgree == 1 ? "不同意" : "同意",
x.ApproveIdea,
x.ApproveId,
x.ApproveType,
x.ApproveForm
}
).ToList();
return result;
}
public static IEnumerable GetAllApproveData(string contractId, string aproveForm)
{
var result = (from x in Funs.DB.PHTGL_Approve
join u in Funs.DB.Person_Persons on x.ApproveMan equals u.PersonId
where x.IsAgree != 0 && x.ContractId == contractId
orderby x.ApproveDate
select new
{
ApproveMan = u.PersonName,
x.ApproveDate,
IsAgree = x.IsAgree == 1 ? "不同意" : "同意",
x.ApproveIdea,
x.ApproveId,
x.ApproveType,
x.ApproveForm
}
).ToList();
if (!string.IsNullOrEmpty(aproveForm))
{
result = result.Where(x => x.ApproveForm == aproveForm).ToList();
}
return result;
}
/// <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;
}
}
}