SGGL_SHJ/SGGL/BLL/HSSE/CostGoods/ExpenseService.cs

178 lines
6.8 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
namespace BLL
{
/// <summary>
/// 措施费用使用计划
/// </summary>
public static class ExpenseService
{
/// <summary>
/// 根据主键获取措施费用使用计划
/// </summary>
/// <param name="expenseId"></param>
/// <returns></returns>
public static Model.CostGoods_Expense GetExpenseById(string expenseId)
{
return Funs.DB.CostGoods_Expense.FirstOrDefault(e => e.ExpenseId == expenseId);
}
/// <summary>
/// 根据主键获取措施费用使用计划
/// </summary>
/// <param name="expenseId"></param>
/// <returns></returns>
public static List<Model.CostGoods_Expense> GetExpenseList(string projectId, string unitId, int? year)
{
var getData = from x in Funs.DB.CostGoods_Expense
where x.ProjectId == projectId
select x;
if (!string.IsNullOrEmpty(unitId) && unitId != Const._Null)
{
getData = getData.Where(x => x.UnitId == unitId);
}
if (year.HasValue)
{
getData = getData.Where(x => x.Year == year);
}
return getData.OrderBy(x => x.SortIndex).ToList();
}
/// <summary>
/// 根据时间获取当期单位Id集合
/// </summary>
/// <param name="startTime"></param>
/// <param name="endTime"></param>
/// <returns></returns>
public static List<string> GetUnitIdsByTime(DateTime startTime, DateTime endTime, string projectId)
{
return (from x in Funs.DB.CostGoods_Expense
join y in Funs.DB.Sys_FlowOperate
on x.ExpenseId equals y.DataId
where x.States == BLL.Const.State_2 && x.ProjectId == projectId && y.State == BLL.Const.State_2 && y.OperaterTime >= startTime && y.OperaterTime < endTime
select x.UnitId).Distinct().ToList();
}
/// <summary>
/// 添加措施费用使用计划
/// </summary>
/// <param name="expense"></param>
public static void AddExpense(Model.CostGoods_Expense expense)
{
Model.SGGLDB db = Funs.DB;
Model.CostGoods_Expense newExpense = new Model.CostGoods_Expense
{
ExpenseId = expense.ExpenseId,
ProjectId = expense.ProjectId,
ExpenseCode = expense.ExpenseCode,
UnitId = expense.UnitId,
ReportDate = expense.ReportDate,
CreateDate = expense.CreateDate,
States = expense.States,
CompileMan = expense.CompileMan,
CompileDate = expense.CompileDate,
SortIndex = expense.SortIndex,
Year = expense.Year,
};
db.CostGoods_Expense.InsertOnSubmit(newExpense);
db.SubmitChanges();
}
/// <summary>
/// 修改措施费用使用计划
/// </summary>
/// <param name="expense"></param>
public static void UpdateExpense(Model.CostGoods_Expense expense)
{
Model.SGGLDB db = Funs.DB;
Model.CostGoods_Expense newExpense = db.CostGoods_Expense.FirstOrDefault(e => e.ExpenseId == expense.ExpenseId);
if (newExpense != null)
{
//newExpense.ProjectId = expense.ProjectId;
newExpense.ExpenseCode = expense.ExpenseCode;
newExpense.UnitId = expense.UnitId;
newExpense.States = expense.States;
newExpense.Months = expense.Months;
newExpense.ReportDate = expense.ReportDate;
newExpense.PlanCostA = expense.PlanCostA;
newExpense.PlanCostB = expense.PlanCostB;
newExpense.CompileDate = expense.CompileDate;
newExpense.CompileMan = expense.CompileMan;
//newExpense.CheckMan = expense.CheckMan;
//newExpense.CheckDate = expense.CheckDate;
//newExpense.ApproveMan = expense.ApproveMan;
// newExpense.ApproveDate = expense.ApproveDate;
newExpense.SortIndex = expense.SortIndex;
newExpense.Year = expense.Year;
db.SubmitChanges();
}
}
/// <summary>
/// 根据主键删除措施费用使用计划
/// </summary>
/// <param name="expenseId"></param>
public static void DeleteExpenseById(string expenseId)
{
Model.SGGLDB db = Funs.DB;
Model.CostGoods_Expense expense = db.CostGoods_Expense.FirstOrDefault(e => e.ExpenseId == expenseId);
if (expense != null)
{
BLL.CodeRecordsService.DeleteCodeRecordsByDataId(expenseId);
BLL.CommonService.DeleteAttachFileById(expenseId);
////删除审核流程表
BLL.CommonService.DeleteFlowOperateByID(expenseId);
db.CostGoods_Expense.DeleteOnSubmit(expense);
db.SubmitChanges();
if (expense.Year.HasValue)
{
SetSumYearExpense(expense.ProjectId, expense.Year.Value);
}
}
}
/// <summary>
/// 当前合计数
/// </summary>
/// <param name="projectId"></param>
/// <param name="Year"></param>
public static void SetSumYearExpense(string projectId, int Year)
{
var getYearEx = Funs.DB.CostGoods_Expense.FirstOrDefault(x => x.ProjectId == projectId && x.Year == Year && x.UnitId == null);
if (getYearEx != null)
{
Funs.DB.CostGoods_Expense.DeleteOnSubmit(getYearEx);
Funs.DB.SubmitChanges();
}
var getALLEx = from x in Funs.DB.CostGoods_Expense where x.ProjectId == projectId && x.Year == Year && x.UnitId != null select x;
if (getALLEx.Count() > 0)
{
Model.CostGoods_Expense newExpense = new Model.CostGoods_Expense
{
ExpenseId = SQLHelper.GetNewID(),
ProjectId = projectId,
UnitId = null,
CreateDate = DateTime.Now,
Months = DateTime.Now,
ReportDate = DateTime.Now,
CompileDate = DateTime.Now,
CheckDate = DateTime.Now,
ApproveDate = DateTime.Now,
SortIndex = 0,
Year = Year,
};
var db1 = Funs.DB;
db1.CostGoods_Expense.InsertOnSubmit(newExpense);
db1.SubmitChanges();
}
}
}
}