SGGL_SHJ/SGGL/BLL/CQMS/Check/SpotCheckDetailService.cs

496 lines
25 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
namespace BLL
{
public class SpotCheckDetailService
{
/// <summary>
/// 获取实体验收记录明细
/// </summary>
/// <param name="satartRowIndex"></param>
/// <param name="maximumRows"></param>
/// <returns></returns>
public static IEnumerable getListData(string SpotCheckCode)
{
return from x in Funs.DB.Check_SpotCheckDetail
where x.SpotCheckCode == SpotCheckCode
select new
{
x.SpotCheckDetailId,
x.SpotCheckCode,
x.ControlItemAndCycleId,
x.IsOnesOK,
x.IsOK,
x.ConfirmDate,
};
}
/// <summary>
/// 添加实体验收记录明细
/// </summary>
/// <param name="SpotCheckDetail"></param>
public static void AddSpotCheckDetail(Model.Check_SpotCheckDetail SpotCheckDetail)
{
Model.SGGLDB db = Funs.DB;
Model.Check_SpotCheckDetail newSpotCheckDetail = new Model.Check_SpotCheckDetail();
newSpotCheckDetail.SpotCheckDetailId = SpotCheckDetail.SpotCheckDetailId;
newSpotCheckDetail.SpotCheckCode = SpotCheckDetail.SpotCheckCode;
newSpotCheckDetail.ControlItemAndCycleId = SpotCheckDetail.ControlItemAndCycleId;
newSpotCheckDetail.WorkPackageId = WorkPackageService.getWorkPageIdsByControlItemAndCycle(null, SpotCheckDetail.ControlItemAndCycleId);
newSpotCheckDetail.IsOnesOK = SpotCheckDetail.IsOnesOK;
newSpotCheckDetail.IsOK = SpotCheckDetail.IsOK;
newSpotCheckDetail.ConfirmDate = SpotCheckDetail.ConfirmDate;
newSpotCheckDetail.RectifyDescription = SpotCheckDetail.RectifyDescription;
newSpotCheckDetail.CreateDate = SpotCheckDetail.CreateDate;
db.Check_SpotCheckDetail.InsertOnSubmit(newSpotCheckDetail);
db.SubmitChanges();
}
public static void AddSpotCheckDetailForApi(Model.Check_SpotCheckDetail SpotCheckDetail)
{
using (var db = new Model.SGGLDB(Funs.ConnString))
{
Model.Check_SpotCheckDetail newSpotCheckDetail = new Model.Check_SpotCheckDetail();
newSpotCheckDetail.SpotCheckDetailId = SpotCheckDetail.SpotCheckDetailId;
newSpotCheckDetail.SpotCheckCode = SpotCheckDetail.SpotCheckCode;
newSpotCheckDetail.ControlItemAndCycleId = SpotCheckDetail.ControlItemAndCycleId;
newSpotCheckDetail.WorkPackageId = WorkPackageService.getWorkPageIdsByControlItemAndCycle(null, SpotCheckDetail.ControlItemAndCycleId);
newSpotCheckDetail.IsOnesOK = SpotCheckDetail.IsOnesOK;
newSpotCheckDetail.IsOK = SpotCheckDetail.IsOK;
newSpotCheckDetail.ConfirmDate = SpotCheckDetail.ConfirmDate;
newSpotCheckDetail.RectifyDescription = SpotCheckDetail.RectifyDescription;
newSpotCheckDetail.CreateDate = SpotCheckDetail.CreateDate;
db.Check_SpotCheckDetail.InsertOnSubmit(newSpotCheckDetail);
db.SubmitChanges();
}
}
/// <summary>
/// 修改实体验收记录明细
/// </summary>
/// <param name="SpotCheckDetail"></param>
public static void UpdateSpotCheckDetail(Model.Check_SpotCheckDetail SpotCheckDetail)
{
using (var db = new Model.SGGLDB(Funs.ConnString))
{
Model.Check_SpotCheckDetail newSpotCheckDetail = db.Check_SpotCheckDetail.FirstOrDefault(e => e.SpotCheckDetailId == SpotCheckDetail.SpotCheckDetailId);
if (newSpotCheckDetail != null)
{
newSpotCheckDetail.SpotCheckCode = SpotCheckDetail.SpotCheckCode;
newSpotCheckDetail.ControlItemAndCycleId = SpotCheckDetail.ControlItemAndCycleId;
newSpotCheckDetail.WorkPackageId = WorkPackageService.getWorkPageIdsByControlItemAndCycle(null, SpotCheckDetail.ControlItemAndCycleId);
newSpotCheckDetail.IsOnesOK = SpotCheckDetail.IsOnesOK;
newSpotCheckDetail.IsOK = SpotCheckDetail.IsOK;
newSpotCheckDetail.ConfirmDate = SpotCheckDetail.ConfirmDate;
newSpotCheckDetail.RectifyDescription = SpotCheckDetail.RectifyDescription;
newSpotCheckDetail.IsDataOK = SpotCheckDetail.IsDataOK;
newSpotCheckDetail.DataConfirmDate = SpotCheckDetail.DataConfirmDate;
newSpotCheckDetail.State = SpotCheckDetail.State;
newSpotCheckDetail.HandleMan = SpotCheckDetail.HandleMan;
newSpotCheckDetail.IsShow = SpotCheckDetail.IsShow;
db.SubmitChanges();
}
}
}
/// <summary>
/// 根据实体验收记录明细Id删除一个实体验收记录信息明细
/// </summary>
/// <param name="SpotCheckDetailId"></param>
public static void DeleteSpotCheckDetail(string SpotCheckDetailId)
{
Model.SGGLDB db = Funs.DB;
Model.Check_SpotCheckDetail SpotCheckDetail = db.Check_SpotCheckDetail.First(e => e.SpotCheckDetailId == SpotCheckDetailId);
db.Check_SpotCheckDetail.DeleteOnSubmit(SpotCheckDetail);
db.SubmitChanges();
}
public static void DeleteSpotCheckDetailForApi(string SpotCheckDetailId)
{
using (var db = new Model.SGGLDB(Funs.ConnString))
{
Model.Check_SpotCheckDetail SpotCheckDetail = db.Check_SpotCheckDetail.First(e => e.SpotCheckDetailId == SpotCheckDetailId);
db.Check_SpotCheckDetail.DeleteOnSubmit(SpotCheckDetail);
db.SubmitChanges();
}
}
/// <summary>
/// 根据实体验收记录主表删除所有实体验收记录信息明细
/// </summary>
/// <param name="DrawingAuditId"></param>
public static void DeleteAllSpotCheckDetail(string SpotCheckCode)
{
Model.SGGLDB db = Funs.DB;
var q = (from x in db.Check_SpotCheckDetail where x.SpotCheckCode == SpotCheckCode select x).ToList();
db.Check_SpotCheckDetail.DeleteAllOnSubmit(q);
db.SubmitChanges();
}
/// <summary>
/// 根据实体验收记录明细Id获取一个实体验收记录信息明细
/// </summary>
/// <param name="SpotCheckDetailId"></param>
public static Model.Check_SpotCheckDetail GetSpotCheckDetail(string SpotCheckDetailId)
{
return Funs.DB.Check_SpotCheckDetail.FirstOrDefault(e => e.SpotCheckDetailId == SpotCheckDetailId);
}
/// <summary>
/// 根据实体验收记录Id获取一个实体验收记录信息明细
/// </summary>
/// <param name="SpotCheckDetailId"></param>
public static Model.Check_SpotCheckDetail GetSpotCheckDetailBySoptCheckCode(string SpotCheckCode)
{
return Funs.DB.Check_SpotCheckDetail.FirstOrDefault(e => e.SpotCheckCode == SpotCheckCode);
}
/// <summary>
/// 根据实体验收记录Id获取一个不合格实体验收记录信息明细
/// </summary>
/// <param name="SpotCheckDetailId"></param>
public static Model.Check_SpotCheckDetail GetNotOKSpotCheckDetailBySoptCheckCode(string SpotCheckCode)
{
return Funs.DB.Check_SpotCheckDetail.FirstOrDefault(e => e.SpotCheckCode == SpotCheckCode && (e.IsOK == null || e.IsOK == false));
}
/// <summary>
/// 根据实体验收记录主键获取所有实体验收记录信息明细
/// </summary>
/// <param name="SpotCheckCode"></param>
public static List<Model.Check_SpotCheckDetail> GetSpotCheckDetails(string SpotCheckCode)
{
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
{
return (from x in db.Check_SpotCheckDetail
join y in db.WBS_ControlItemAndCycle
on x.ControlItemAndCycleId equals y.ControlItemAndCycleId
where x.SpotCheckCode == SpotCheckCode
orderby y.WorkPackageId
select x).ToList();
}
}
public static List<Model.Check_SpotCheckDetail> GetSpotCheckDetailsForApi(string SpotCheckCode)
{
using (var db = new Model.SGGLDB(Funs.ConnString))
{
return (from x in db.Check_SpotCheckDetail
join y in db.WBS_ControlItemAndCycle
on x.ControlItemAndCycleId equals y.ControlItemAndCycleId
where x.SpotCheckCode == SpotCheckCode
orderby y.WorkPackageId
select x).ToList();
}
}
/// <summary>
/// 根据实体验收记录主键获取所有实体合格实体验收记录信息明细
/// </summary>
/// <param name="SpotCheckCode"></param>
public static List<Model.Check_SpotCheckDetail> GetOKSpotCheckDetails(string SpotCheckCode)
{
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
{
return (from x in db.Check_SpotCheckDetail
join y in db.WBS_ControlItemAndCycle
on x.ControlItemAndCycleId equals y.ControlItemAndCycleId
where x.SpotCheckCode == SpotCheckCode && x.IsOK == true
orderby y.WorkPackageId
select x).ToList();
}
}
public static List<Model.Check_SpotCheckDetail> GetOKSpotCheckDetailsForApi(string SpotCheckCode)
{
using (var db = new Model.SGGLDB(Funs.ConnString))
{
return (from x in db.Check_SpotCheckDetail
join y in db.WBS_ControlItemAndCycle
on x.ControlItemAndCycleId equals y.ControlItemAndCycleId
where x.SpotCheckCode == SpotCheckCode && x.IsOK == true
orderby y.WorkPackageId
select x).ToList();
}
}
/// <summary>
/// 根据实体验收记录主键获取所有实体合格并且有资料表格需要上传的实体验收记录信息明细
/// </summary>
/// <param name="SpotCheckCode"></param>
public static List<Model.Check_SpotCheckDetail> GetShowSpotCheckDetails(string SpotCheckCode)
{
using (var db = new Model.SGGLDB(Funs.ConnString))
{
return (from x in db.Check_SpotCheckDetail
join y in db.WBS_ControlItemAndCycle
on x.ControlItemAndCycleId equals y.ControlItemAndCycleId
where x.SpotCheckCode == SpotCheckCode && x.IsOK == true && x.IsShow == true
orderby y.WorkPackageId
select x).ToList();
}
}
/// <summary>
/// 根据单位工程Id获取所有工序验收记录信息明细
/// </summary>
/// <param name="SpotCheckCode"></param>
public static List<Model.View_Check_SoptCheckDetail> GetViewSpotCheckDetailsByUnitWorkIdAndDate(string unitWorkId, DateTime endDate, string isDataOK)
{
if (string.IsNullOrEmpty(isDataOK)) //不按资料合格统计
{
return (from x in Funs.DB.View_Check_SoptCheckDetail
where x.UnitWorkId == unitWorkId && x.IsOK == true && x.SpotCheckDate <= endDate
select x).ToList();
}
else //按资料合格统计
{
return (from x in Funs.DB.View_Check_SoptCheckDetail
where x.UnitWorkId == unitWorkId && x.IsOK == true && (x.IsDataOK == "1" || x.IsDataOK == "2") && x.SpotCheckDate <= endDate
select x).ToList();
}
}
/// <summary>
/// 根据项目Id获取所有工序验收记录信息明细
/// </summary>
/// <param name="SpotCheckCode"></param>
public static List<Model.View_Check_SoptCheckDetail> GetViewSpotCheckDetailsByProjectIdAndDate(string projectId, DateTime endDate, string isDataOK)
{
if (string.IsNullOrEmpty(isDataOK)) //不按资料合格统计
{
return (from x in Funs.DB.View_Check_SoptCheckDetail
where x.ProjectId == projectId && x.IsOK == true && x.SpotCheckDate <= endDate
select x).ToList();
}
else //按资料合格统计
{
return (from x in Funs.DB.View_Check_SoptCheckDetail
where x.ProjectId == projectId && x.IsOK == true && (x.IsDataOK == "1" || x.IsDataOK == "2") && x.SpotCheckDate <= endDate
select x).ToList();
}
}
/// <summary>
/// 根据工作包主键获取所有实体验收记录信息明细
/// </summary>
/// <param name="SpotCheckCode"></param>
public static List<Model.Check_SpotCheckDetail> GetSpotCheckDetailsByControlItemAndCycleId(string controlItemAndCycleId)
{
return (from x in Funs.DB.Check_SpotCheckDetail
where x.ControlItemAndCycleId == controlItemAndCycleId && x.IsOK == true
select x).ToList();
}
/// <summary>
/// 根据工作包主键获取所有工序验收记录信息明细
/// </summary>
/// <param name="SpotCheckCode"></param>
public static List<Model.Check_SpotCheckDetail> GetSpotCheckDetailsByControlItemAndCycleIds(List<string> controlItemAndCycleId)
{
return (from x in Funs.DB.Check_SpotCheckDetail
where controlItemAndCycleId.Contains(x.ControlItemAndCycleId) && x.IsOK == true
select x).ToList();
}
/// 根据时间段获取实体验收记录明细集合
/// </summary>
/// <param name="startTime">开始时间</param>
/// <param name="endTime">结束时间</param>
/// <param name="projectType">工程类型</param>
public static List<Model.Check_SpotCheckDetail> GetOKSpotCheckDetailListByTime(string projectId, DateTime startTime, DateTime endTime)
{
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
{
return (from x in db.Check_SpotCheckDetail
join y in db.Check_SpotCheck
on x.SpotCheckCode equals y.SpotCheckCode
where y.ProjectId == projectId && y.SpotCheckDate >= startTime && y.SpotCheckDate < endTime && x.IsOK == true
select x).ToList();
}
}
/// <summary>
/// 根据时间段获取实体验收记录明细集合
/// </summary>
/// <param name="startTime">开始时间</param>
/// <param name="endTime">结束时间</param>
/// <param name="projectType">工程类型</param>
public static List<Model.Check_SpotCheckDetail> GetTotalOKSpotCheckDetailListByTime(string projectId, DateTime endTime)
{
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
{
return (from x in db.Check_SpotCheckDetail
join y in db.Check_SpotCheck
on x.SpotCheckCode equals y.SpotCheckCode
where y.ProjectId == projectId && y.SpotCheckDate < endTime && x.IsOK == true
select x).ToList();
}
}
public static void UpdateSpotCheckDetailForApi(Model.Check_SpotCheckDetail SpotCheckDetail)
{
using (var db = new Model.SGGLDB(Funs.ConnString))
{
Model.Check_SpotCheckDetail newSpotCheckDetail = db.Check_SpotCheckDetail.First(e => e.SpotCheckDetailId == SpotCheckDetail.SpotCheckDetailId);
if (!string.IsNullOrEmpty(SpotCheckDetail.SpotCheckCode))
newSpotCheckDetail.SpotCheckCode = SpotCheckDetail.SpotCheckCode;
if (!string.IsNullOrEmpty(SpotCheckDetail.ControlItemAndCycleId))
newSpotCheckDetail.ControlItemAndCycleId = SpotCheckDetail.ControlItemAndCycleId;
newSpotCheckDetail.WorkPackageId = WorkPackageService.getWorkPageIdsByControlItemAndCycle(null, SpotCheckDetail.ControlItemAndCycleId);
if (SpotCheckDetail.IsOnesOK.HasValue)
newSpotCheckDetail.IsOnesOK = SpotCheckDetail.IsOnesOK;
if (SpotCheckDetail.IsOK.HasValue)
newSpotCheckDetail.IsOK = SpotCheckDetail.IsOK;
if (SpotCheckDetail.ConfirmDate.HasValue)
newSpotCheckDetail.ConfirmDate = SpotCheckDetail.ConfirmDate;
if (!string.IsNullOrEmpty(SpotCheckDetail.RectifyDescription))
newSpotCheckDetail.RectifyDescription = SpotCheckDetail.RectifyDescription;
if (SpotCheckDetail.IsShow.HasValue)
newSpotCheckDetail.IsShow = SpotCheckDetail.IsShow;
if (!string.IsNullOrEmpty(SpotCheckDetail.State))
newSpotCheckDetail.State = SpotCheckDetail.State;
newSpotCheckDetail.HandleMan = SpotCheckDetail.HandleMan;
db.SubmitChanges();
}
}
/// 质量验收(本月合格)
/// </summary>
/// <param name="startTime">开始时间</param>
/// <param name="endTime">结束时间</param>
public static List<Model.View_Check_SoptCheckDetail> GetOKSpotCheckDetailListByTime1(string projectId, DateTime startTime, DateTime endTime)
{
return (from x in Funs.DB.View_Check_SoptCheckDetail
where x.ProjectId == projectId && !x.ControlPoint.Contains("C") && x.SpotCheckDate >= startTime && x.SpotCheckDate < endTime && x.IsOK == true
select x).ToList();
}
/// 质量验收(本月全部)
/// </summary>
/// <param name="startTime">开始时间</param>
/// <param name="endTime">结束时间</param>
public static List<Model.View_Check_SoptCheckDetail> GetAllSpotCheckDetailListByTime(string projectId, DateTime startTime, DateTime endTime)
{
return (from x in Funs.DB.View_Check_SoptCheckDetail
where x.ProjectId == projectId && !x.ControlPoint.Contains("C") && x.SpotCheckDate >= startTime && x.SpotCheckDate < endTime && x.IsOK != null
select x).ToList();
}
/// 质量验收累计合格(累计合格)
/// </summary>
/// <param name="startTime">开始时间</param>
/// <param name="endTime">结束时间</param>
public static List<Model.View_Check_SoptCheckDetail> GetTotalOKSpotCheckDetailListByTime1(string projectId, DateTime endTime)
{
return (from x in Funs.DB.View_Check_SoptCheckDetail
where x.ProjectId == projectId && !x.ControlPoint.Contains("C") && x.SpotCheckDate < endTime && x.IsOK == true
select x).ToList();
}
/// 质量验收累计合格(累计全部)
/// </summary>
/// <param name="startTime">开始时间</param>
/// <param name="endTime">结束时间</param>
public static List<Model.View_Check_SoptCheckDetail> GetTotalAllSpotCheckDetailListByTime(string projectId, DateTime endTime)
{
return (from x in Funs.DB.View_Check_SoptCheckDetail
where x.ProjectId == projectId && !x.ControlPoint.Contains("C") && x.SpotCheckDate < endTime && x.IsOK != null
select x).ToList();
}
/// <summary>
/// 质量记录本月同步率(资料本月合格)
/// </summary>
/// <param name="startTime">开始时间</param>
/// <param name="endTime">结束时间</param>
public static List<Model.View_Check_SoptCheckDetail> GetMonthDataOkSpotCheckDetailListByTime(string projectId, DateTime startTime, DateTime endTime)
{
return (from x in Funs.DB.View_Check_SoptCheckDetail
where x.ProjectId == projectId && !x.ControlPoint.Contains("C") && x.SpotCheckDate >= startTime && x.SpotCheckDate < endTime && x.IsDataOK == "1"
select x).ToList();
}
/// <summary>
/// 质量记录本月同步率(资料累计合格)
/// </summary>
/// <param name="startTime">开始时间</param>
/// <param name="endTime">结束时间</param>
/// <param name="projectType">工程类型</param>
public static List<Model.View_Check_SoptCheckDetail> GetAllDataOkSpotCheckDetailListByTime(string projectId, DateTime endTime)
{
return (from x in Funs.DB.View_Check_SoptCheckDetail
where x.ProjectId == projectId && !x.ControlPoint.Contains("C") && x.SpotCheckDate < endTime && x.IsDataOK == "1"
select x).ToList();
}
/// <summary>
/// 根据单位工程Id获取所有工序验收记录信息明细
/// </summary>
/// <param name="SpotCheckCode"></param>
public static List<Model.View_Check_SoptCheckDetail> GetViewSpotCheckDetailsByUnitWorkIdsAndDate(string[] unitWorkIds, DateTime endDate, string isDataOK)
{
if (string.IsNullOrEmpty(isDataOK)) //不按资料合格统计
{
return (from x in Funs.DB.View_Check_SoptCheckDetail
where unitWorkIds.Contains(x.UnitWorkId) && x.IsOK == true && x.SpotCheckDate <= endDate
select x).ToList();
}
else //按资料合格统计
{
return (from x in Funs.DB.View_Check_SoptCheckDetail
where unitWorkIds.Contains(x.UnitWorkId) && x.IsOK == true && (x.IsDataOK == "1" || x.IsDataOK == "2") && x.SpotCheckDate <= endDate
select x).ToList();
}
}
/// <summary>
/// 质量验收总数(项目id为空时获取公司级质量验收总数)
/// </summary>
/// <param name="id"></param>
public static double GetCQMSCheckCount(string projectId, DateTime endTime)
{
List<Model.View_Check_SoptCheckDetail> totalCheckLists = new List<Model.View_Check_SoptCheckDetail>();
if (!string.IsNullOrEmpty(projectId))
{
totalCheckLists = (from x in Funs.DB.View_Check_SoptCheckDetail
where x.ProjectId == projectId && !x.ControlPoint.Contains("C") && x.SpotCheckDate < endTime && x.IsOK != null
select x).ToList();
}
else
{
totalCheckLists = (from x in Funs.DB.View_Check_SoptCheckDetail
where !x.ControlPoint.Contains("C") && x.SpotCheckDate < endTime && x.IsOK != null
select x).ToList();
}
return totalCheckLists.Count();
}
/// <summary>
/// 质量验收合格率(项目id为空时获取公司级质量验收合格率)
/// </summary>
/// <param name="id"></param>
public static double GetCQMSCheckRate(string projectId, DateTime endTime)
{
List<Model.View_Check_SoptCheckDetail> totalCheckLists = new List<Model.View_Check_SoptCheckDetail>();
if (!string.IsNullOrEmpty(projectId))
{
totalCheckLists = (from x in Funs.DB.View_Check_SoptCheckDetail
where x.ProjectId == projectId && !x.ControlPoint.Contains("C") && x.SpotCheckDate < endTime && x.IsOK != null
select x).ToList();
}
else
{
totalCheckLists = (from x in Funs.DB.View_Check_SoptCheckDetail
where !x.ControlPoint.Contains("C") && x.SpotCheckDate < endTime && x.IsOK != null
select x).ToList();
}
int a = totalCheckLists.Where(x => x.IsOK == true).Count();
double result = 0;
if (a > 0 && totalCheckLists.Count > 0)
{
var b = Convert.ToDouble(totalCheckLists.Count);
result = Convert.ToDouble(decimal.Round(decimal.Parse((a / b * 100).ToString()), 1));
}
return result;
}
}
}