SGGL_SHJ/SGGL/BLL/ProjectData/ProjectUnitService.cs

310 lines
12 KiB
C#

namespace BLL
{
using Model;
using System.Collections.Generic;
using System.Linq;
public static class ProjectUnitService
{
public static Model.SGGLDB db = Funs.DB;
/// <summary>
///获取项目单位信息
/// </summary>
/// <returns></returns>
public static Model.Project_ProjectUnit GetProjectUnitById(string projectUnitId)
{
return Funs.DB.Project_ProjectUnit.FirstOrDefault(e => e.ProjectUnitId == projectUnitId);
}
/// <summary>
///获取项目单位信息
/// </summary>
/// <returns></returns>
public static Model.Project_ProjectUnit GetProjectUnitByUnitIdProjectId(string projectId, string unitId)
{
return Funs.DB.Project_ProjectUnit.FirstOrDefault(e => e.ProjectId == projectId && e.UnitId == unitId);
}
/// <summary>
///获取项目单位信息
/// </summary>
/// <returns></returns>
public static List<Model.Project_ProjectUnit> GetProjectUnitListByProjectId(string projectId)
{
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
{
return (from x in db.Project_ProjectUnit
join y in db.Base_Unit on x.UnitId equals y.UnitId
where x.ProjectId == projectId
orderby x.UnitType, y.UnitCode
descending
select x).ToList();
}
}
/// <summary>
/// 根据项目及单位类型获取单位信息
/// </summary>
/// <returns></returns>
public static List<Model.Project_ProjectUnit> GetProjectUnitListByProjectIdUnitType(string projectId, string unitType)
{
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
{
return (from x in db.Project_ProjectUnit
join y in db.Base_Unit on x.UnitId equals y.UnitId
where x.ProjectId == projectId && x.UnitType == unitType
orderby x.UnitType, y.UnitCode descending
select x).ToList();
}
}
/// <summary>
/// 增加项目单位信息
/// </summary>
/// <returns></returns>
public static void AddProjectUnit(Project_ProjectUnit projectUnit)
{
SGGLDB db = Funs.DB;
Project_ProjectUnit newProjectUnit = new Project_ProjectUnit
{
ProjectUnitId = SQLHelper.GetNewID(),
ProjectId = projectUnit.ProjectId,
UnitId = projectUnit.UnitId,
UnitType = projectUnit.UnitType,
InTime = projectUnit.InTime,
OutTime = projectUnit.OutTime,
PlanCostA = projectUnit.PlanCostA,
PlanCostB = projectUnit.PlanCostB,
ContractRange = projectUnit.ContractRange,
RealNamePushTime = projectUnit.RealNamePushTime,
IsSynchro = projectUnit.IsSynchro,
};
db.Project_ProjectUnit.InsertOnSubmit(newProjectUnit);
db.SubmitChanges();
}
/// <summary>
///修改项目单位信息
/// </summary>
/// <param name="projectUnit"></param>
public static void UpdateProjectUnit(Model.Project_ProjectUnit projectUnit)
{
Model.SGGLDB db = Funs.DB;
Model.Project_ProjectUnit newProjectUnit = db.Project_ProjectUnit.FirstOrDefault(e => e.ProjectUnitId == projectUnit.ProjectUnitId);
if (newProjectUnit != null)
{
newProjectUnit.UnitType = projectUnit.UnitType;
newProjectUnit.InTime = projectUnit.InTime;
newProjectUnit.OutTime = projectUnit.OutTime;
newProjectUnit.PlanCostA = projectUnit.PlanCostA;
newProjectUnit.PlanCostB = projectUnit.PlanCostB;
newProjectUnit.ContractRange = projectUnit.ContractRange;
newProjectUnit.RealNamePushTime = projectUnit.RealNamePushTime;
newProjectUnit.IsSynchro = projectUnit.IsSynchro;
db.SubmitChanges();
}
}
/// <summary>
/// 根据项目单位Id删除一个项目单位信息
/// </summary>
/// <param name="projectUnitId"></param>
public static void DeleteProjectProjectUnitById(string projectUnitId)
{
Model.SGGLDB db = Funs.DB;
Model.Project_ProjectUnit delProjectUnit = db.Project_ProjectUnit.FirstOrDefault(e => e.ProjectUnitId == projectUnitId);
if (delProjectUnit != null)
{
db.Project_ProjectUnit.DeleteOnSubmit(delProjectUnit);
db.SubmitChanges();
}
}
/// <summary>
///获取当前人单位是否 施工工分包单位且非本单位
/// </summary>
/// <returns></returns>
public static bool GetProjectUnitTypeByProjectIdUnitId(string projectId, string unitId)
{
bool isShow = false;
if (unitId != Const.UnitId_SEDIN)
{
var pUnit = Funs.DB.Project_ProjectUnit.FirstOrDefault(e => e.ProjectId == projectId && e.UnitId == unitId);
if (pUnit != null)
{
if (pUnit.UnitType == Const.ProjectUnitType_2 || pUnit.UnitType == Const.ProjectUnitType_0)
{
isShow = true;
}
}
}
return isShow;
}
#region
/// <summary>
/// 项目类型单位表下拉框
/// </summary>
/// <param name="dropName">下拉框名字</param>
/// <param name="isShowPlease">是否显示请选择</param>
public static void InitUnitDropDownList(FineUIPro.DropDownList dropName, string projectId, string unitType, bool isShowPlease)
{
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
{
var pUnit = (from x in db.Project_ProjectUnit
join y in db.Base_Unit on x.UnitId equals y.UnitId
where x.ProjectId == projectId && x.UnitType == unitType
orderby y.UnitCode
select y).ToList();
dropName.DataValueField = "UnitId";
dropName.DataTextField = "UnitName";
dropName.DataSource = pUnit;
dropName.DataBind();
if (isShowPlease)
{
Funs.FineUIPleaseSelect(dropName);
}
}
}
#endregion
/// <summary>
/// 根据项目Id删除项目单位
/// </summary>
/// <param name="projectId"></param>
public static void DeleteProjectUnitByProjectId(string projectId)
{
var q = (from x in db.Project_ProjectUnit where x.ProjectId == projectId select x).ToList();
if (q != null)
{
db.Project_ProjectUnit.DeleteAllOnSubmit(q);
db.SubmitChanges();
}
}
public static List<Model.Project_ProjectUnit> GetProjectUnitListByProjectIdForApi(string projectId, string unitType, string name)
{
Model.SGGLDB db = Funs.DB;
string[] types = unitType.Split(',');
return (from x in db.Project_ProjectUnit
join y in db.Base_Unit on x.UnitId equals y.UnitId
where x.ProjectId == projectId
where unitType == "" || types.Contains(x.UnitType)
where name == "" || y.UnitName.Contains(name)
orderby x.UnitType, y.UnitCode
select x).ToList();
}
#region
/// <summary>
///获取项目单位信息
/// </summary>
/// <returns></returns>
public static Model.Project_ProjectUnitItem GetProjectUnitItemById(string ProjectUnitItemId)
{
return Funs.DB.Project_ProjectUnitItem.FirstOrDefault(e => e.ProjectUnitItemId == ProjectUnitItemId);
}
/// <summary>
///
/// </summary>
/// <param name="ProjectId"></param>
/// <param name="UnitId"></param>
/// <returns></returns>
public static List<Model.Project_ProjectUnitItem> GetProjectUnitItemList(string ProjectId, string UnitId)
{
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
{
var getData = from x in db.Project_ProjectUnitItem where x.ProjectId == ProjectId && x.UnitId == UnitId select x;
return getData.ToList();
}
}
/// <summary>
/// 获取 总HSE费用
/// </summary>
/// <param name="ProjectId"></param>
/// <param name="UnitId"></param>
/// <returns></returns>
public static decimal GetSumHSECost(string ProjectId, string UnitId)
{
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
{
decimal sumCost = 0;
var getData = from x in db.Project_ProjectUnitItem where x.ProjectId == ProjectId && x.UnitId == UnitId select x;
if (getData.Count() > 0)
{
sumCost = getData.Sum(x => x.HSEMoney ?? 0);
}
return sumCost;
}
}
/// <summary>
/// 增加项目单位信息
/// </summary>
/// <returns></returns>
public static void AddProjectUnitItem(Project_ProjectUnitItem projectUnit)
{
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
{
Project_ProjectUnitItem newProjectUnit = new Project_ProjectUnitItem
{
ProjectUnitItemId = SQLHelper.GetNewID(),
ProjectId = projectUnit.ProjectId,
UnitId = projectUnit.UnitId,
ContractNum = projectUnit.ContractNum,
TotalMoney = projectUnit.TotalMoney,
HSEMoney = projectUnit.HSEMoney,
CompileManId = projectUnit.CompileManId,
CompileDate = projectUnit.CompileDate,
};
db.Project_ProjectUnitItem.InsertOnSubmit(newProjectUnit);
db.SubmitChanges();
}
}
/// <summary>
///修改项目单位信息
/// </summary>
/// <param name="projectUnit"></param>
public static void UpdateProjectUnitItem(Model.Project_ProjectUnitItem projectUnit)
{
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
{
Model.Project_ProjectUnitItem newProjectUnit = db.Project_ProjectUnitItem.FirstOrDefault(e => e.ProjectUnitItemId == projectUnit.ProjectUnitItemId);
if (newProjectUnit != null)
{
newProjectUnit.ContractNum = projectUnit.ContractNum;
newProjectUnit.TotalMoney = projectUnit.TotalMoney;
newProjectUnit.HSEMoney = projectUnit.HSEMoney;
db.SubmitChanges();
}
}
}
/// <summary>
/// 根据项目单位Id删除一个项目单位信息
/// </summary>
/// <param name="projectUnitId"></param>
public static void DeleteProjectUnitItemById(string ProjectUnitItemId)
{
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
{
Model.Project_ProjectUnitItem delProjectUnit = db.Project_ProjectUnitItem.FirstOrDefault(e => e.ProjectUnitItemId == ProjectUnitItemId);
if (delProjectUnit != null)
{
db.Project_ProjectUnitItem.DeleteOnSubmit(delProjectUnit);
db.SubmitChanges();
}
}
}
#endregion
}
}