SGGL_JT/SUBQHSE/BLL/HSSE/Check/ViolationPersonService.cs

265 lines
12 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace BLL
{
/// <summary>
/// 违规人员记录
/// </summary>
public static class ViolationPersonService
{
public static Model.SUBQHSEDB db = Funs.DB;
/// <summary>
/// 根据主键获取违规人员记录
/// </summary>
/// <param name="violationPersonId"></param>
/// <returns></returns>
public static Model.Check_ViolationPerson GetViolationPersonById(string violationPersonId)
{
return Funs.DB.Check_ViolationPerson.FirstOrDefault(e => e.ViolationPersonId == violationPersonId);
}
/// <summary>
/// 获取一段时间内人员违规人员次数
/// </summary>
/// <param name="startTime">开始时间</param>
/// <param name="endTime">结束时间</param>
/// <param name="handleStep">违规类型</param>
/// <returns></returns>
public static int GetViolationPersonNum(DateTime startTime, DateTime endTime, string handleStep, string projectId)
{
return (from x in Funs.DB.Check_ViolationPerson where x.ViolationDate >= startTime && x.ViolationDate < endTime && x.HandleStep == handleStep && x.ProjectId == projectId && x.States == BLL.Const.State_2 select x).Count();
}
/// <summary>
/// 添加违规人员记录
/// </summary>
/// <param name="violationPerson"></param>
public static void AddViolationPerson(Model.Check_ViolationPerson violationPerson)
{
Model.SUBQHSEDB db = Funs.DB;
Model.Check_ViolationPerson newViolationPerson = new Model.Check_ViolationPerson
{
ViolationPersonId = violationPerson.ViolationPersonId,
ProjectId = violationPerson.ProjectId,
ViolationPersonCode = violationPerson.ViolationPersonCode,
UnitId = violationPerson.UnitId,
PersonId = violationPerson.PersonId,
WorkPostId = violationPerson.WorkPostId,
ViolationDate = violationPerson.ViolationDate,
ViolationName = violationPerson.ViolationName,
ViolationType = violationPerson.ViolationType,
CompileMan = violationPerson.CompileMan
};
newViolationPerson.ViolationDate = violationPerson.ViolationDate;
newViolationPerson.States = violationPerson.States;
newViolationPerson.HandleStep = violationPerson.HandleStep;
newViolationPerson.ViolationDef = violationPerson.ViolationDef;
db.Check_ViolationPerson.InsertOnSubmit(newViolationPerson);
db.SubmitChanges();
CodeRecordsService.InsertCodeRecordsByMenuIdProjectIdUnitId(Const.ProjectViolationPersonMenuId, violationPerson.ProjectId, null, violationPerson.ViolationPersonId, violationPerson.CompileDate);
}
/// <summary>
/// 修改违规人员记录
/// </summary>
/// <param name="violationPerson"></param>
public static void UpdateViolationPerson(Model.Check_ViolationPerson violationPerson)
{
Model.SUBQHSEDB db = Funs.DB;
Model.Check_ViolationPerson newViolationPerson = db.Check_ViolationPerson.FirstOrDefault(e => e.ViolationPersonId == violationPerson.ViolationPersonId);
if (newViolationPerson != null)
{
//newViolationPerson.ProjectId = violationPerson.ProjectId;
newViolationPerson.ViolationPersonCode = violationPerson.ViolationPersonCode;
newViolationPerson.UnitId = violationPerson.UnitId;
newViolationPerson.PersonId = violationPerson.PersonId;
newViolationPerson.WorkPostId = violationPerson.WorkPostId;
newViolationPerson.ViolationDate = violationPerson.ViolationDate;
newViolationPerson.ViolationName = violationPerson.ViolationName;
newViolationPerson.ViolationType = violationPerson.ViolationType;
newViolationPerson.CompileMan = violationPerson.CompileMan;
newViolationPerson.ViolationDate = violationPerson.ViolationDate;
newViolationPerson.States = violationPerson.States;
newViolationPerson.HandleStep = violationPerson.HandleStep;
newViolationPerson.ViolationDef = violationPerson.ViolationDef;
db.SubmitChanges();
}
}
/// <summary>
/// 根据主键删除违规人员记录
/// </summary>
/// <param name="violationPersonId"></param>
public static void DeleteViolationPersonById(string violationPersonId)
{
Model.SUBQHSEDB db = Funs.DB;
Model.Check_ViolationPerson violationPerson = db.Check_ViolationPerson.FirstOrDefault(e => e.ViolationPersonId == violationPersonId);
if (violationPerson != null)
{
CodeRecordsService.DeleteCodeRecordsByDataId(violationPersonId);
CommonService.DeleteFlowOperateByID(violationPersonId);
db.Check_ViolationPerson.DeleteOnSubmit(violationPerson);
db.SubmitChanges();
}
}
#region api
/// <summary>
/// 列表
/// </summary>
/// <param name="projectId"></param>
/// <param name="EqName"></param>
/// <param name="State"></param>
/// <returns></returns>
public static List<Model.ViolationPersonItem> getList(string projectId)
{
using (Model.SUBQHSEDB db = new Model.SUBQHSEDB(Funs.ConnString))
{
var list = (from x in db.Check_ViolationPerson
join a in db.Base_Unit on x.UnitId equals a.UnitId
into bn
from a in bn.DefaultIfEmpty()
join c in db.SitePerson_Person on x.PersonId equals c.PersonId
into su
from c in su.DefaultIfEmpty()
join b in db.Base_WorkPost on x.WorkPostId equals b.WorkPostId
into bw
from b in bw.DefaultIfEmpty()
where x.ProjectId == projectId
select new Model.ViolationPersonItem
{
ViolationPersonId = x.ViolationPersonId,
ViolationPersonCode =x.ViolationPersonCode,
ProjectId = x.ProjectId,
UnitId = x.UnitId,
UnitName = a.UnitName,
PersonId = x.PersonId,
PersonName = c.PersonName,
WorkPostId=x.WorkPostId,
WorkPostName=b.WorkPostName,
ViolationName=x.ViolationName,
ViolationNameC=db.Sys_Const.FirstOrDefault(sc=> sc.GroupId== "ViolationName" && sc.ConstValue==x.ViolationName).ConstText,
ViolationType = x.ViolationType,
ViolationTypeC= x.ViolationName=="1"?
db.Sys_Const.FirstOrDefault(sc => sc.GroupId == "ViolationType" && sc.ConstValue == x.ViolationType).ConstText:
db.Sys_Const.FirstOrDefault(sc => sc.GroupId == "ViolationTypeOther" && sc.ConstValue == x.ViolationType).ConstText,
ViolationDate= string.Format("{0:yyyy-MM-dd}", x.ViolationDate),
HandleStep=x.HandleStep,
HandleStepName= db.Sys_Const.FirstOrDefault(sc => sc.GroupId == "ViolationPersonHandleStep" && sc.ConstValue == x.ViolationName).ConstText,
ViolationDef=x.ViolationDef
}
).ToList();
return list;
}
}
/// <summary>
/// 加载详细
/// </summary>
/// <param name="Id"></param>
/// <returns></returns>
public static Model.ViolationPersonItem getDetail(string Id)
{
using (Model.SUBQHSEDB db = new Model.SUBQHSEDB(Funs.ConnString))
{
var list = (from x in db.Check_ViolationPerson
join a in db.Base_Unit on x.UnitId equals a.UnitId
into bn
from a in bn.DefaultIfEmpty()
join c in db.SitePerson_Person on x.PersonId equals c.PersonId
into su
from c in su.DefaultIfEmpty()
join b in db.Base_WorkPost on x.WorkPostId equals b.WorkPostId
into bw
from b in bw.DefaultIfEmpty()
where x.ViolationPersonId == Id
select new Model.ViolationPersonItem
{
ViolationPersonId = x.ViolationPersonId,
ViolationPersonCode = x.ViolationPersonCode,
ProjectId = x.ProjectId,
UnitId = x.UnitId,
UnitName = a.UnitName,
PersonId = x.PersonId,
PersonName = c.PersonName,
WorkPostId = x.WorkPostId,
WorkPostName = b.WorkPostName,
ViolationName = x.ViolationName,
ViolationNameC = db.Sys_Const.FirstOrDefault(sc => sc.GroupId == "ViolationName" && sc.ConstValue == x.ViolationName).ConstText,
ViolationType = x.ViolationType,
ViolationTypeC = x.ViolationName == "1" ?
db.Sys_Const.FirstOrDefault(sc => sc.GroupId == "ViolationType" && sc.ConstValue == x.ViolationType).ConstText :
db.Sys_Const.FirstOrDefault(sc => sc.GroupId == "ViolationTypeOther" && sc.ConstValue == x.ViolationType).ConstText,
ViolationDate = string.Format("{0:yyyy-MM-dd}", x.ViolationDate),
HandleStep = x.HandleStep,
HandleStepName = db.Sys_Const.FirstOrDefault(sc => sc.GroupId == "ViolationPersonHandleStep" && sc.ConstValue == x.HandleStep).ConstText,
ViolationDef = x.ViolationDef
}
).FirstOrDefault();
return list;
}
}
/// <summary>
/// 编辑
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
public static string SaveOrEdit(Model.ViolationPersonItem model)
{
using (Model.SUBQHSEDB db = new Model.SUBQHSEDB(Funs.ConnString))
{
Model.Check_ViolationPerson result = new Model.Check_ViolationPerson();
result.ViolationPersonId = model.ViolationPersonId;
result.ProjectId = model.ProjectId;
result.ViolationPersonCode = model.ViolationPersonCode;
result.UnitId = model.UnitId;
result.PersonId = model.PersonId;
result.WorkPostId = model.WorkPostId;
result.ViolationDate = Funs.GetNewDateTime(model.ViolationDate);
result.ViolationName = model.ViolationName;
result.ViolationType = model.ViolationType;
result.States = "2";
result.CompileMan = model.CompileMan;
result.HandleStep = model.HandleStep;
result.ViolationDef = model.ViolationDef;
if (string.IsNullOrEmpty(result.ViolationPersonId))
{
result.ViolationPersonId = Guid.NewGuid().ToString();
AddViolationPerson(result);
}
else
{
UpdateViolationPerson(result);
}
return "编辑成功";
}
}
#endregion
}
}