看板质量验收数据汇总

This commit is contained in:
2025-05-06 10:20:27 +08:00
parent 441fbf5985
commit 9957d27137
18 changed files with 2695 additions and 31 deletions
@@ -7,12 +7,14 @@ using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
namespace BLL
{
public static class CQMSDataService
{
public static SUBQHSEDB db = Funs.DB;
public static List<string> BeUnderConstructionList = ProjectService.GetProjectWorkList().Where(x => (x.ProjectAttribute == "GONGCHENG" || x.ProjectAttribute == null)).Select(x => x.ProjectId).ToList();
#region
@@ -518,6 +520,15 @@ namespace BLL
return result;
}
/// <summary>
/// 获取企业总部人数(异步)
/// </summary>
/// <returns></returns>
public static async Task<int> GetCompanyPersonNumAsync()
{
return await Task.Run(GetCompanyPersonNum);
}
/// <summary>
/// 获取分支机构人数
/// </summary>
@@ -533,5 +544,792 @@ namespace BLL
select x).Count();
return result;
}
/// <summary>
/// 获取分支机构人数(异步)
/// </summary>
/// <returns></returns>
public static async Task<int> GetBranchPersonNumAsync()
{
return await Task.Run(GetBranchPersonNum);
}
/// <summary>
/// 获取项目专职人数
/// </summary>
/// <returns></returns>
public static List<Model.OfSafetySupervisorsOutput> GetProjectPersonNum()
{
var result = (from x in Funs.DB.SitePerson_Person
join p in Funs.DB.Base_Project on x.ProjectId equals p.ProjectId into pGroup
from p in pGroup.DefaultIfEmpty()
join u in Funs.DB.Base_Unit on x.UnitId equals u.UnitId into uGroup
from u in uGroup.DefaultIfEmpty()
join y in Funs.DB.Base_WorkPost on x.WorkPostId equals y.WorkPostId
where BeUnderConstructionList.Contains(p.ProjectId) && y.IsCQMS == true && x.IsUsed == true && x.IdentityCard != null
select new Model.OfSafetySupervisorsOutput
{
ProjectId = x.ProjectId,
ProjectName = p.ProjectName,
UnitId = u.UnitId,
UnitName = u.UnitName,
Name = x.PersonName,
Sex = x.Sex == null ? "" : (x.Sex == "1" ? "男" : "女"),
IdentityCard = x.IdentityCard,
WorkPostName = PostService.GetPostNameById(x.WorkPostId),
Phone = x.Telephone
}).ToList();
result = result
.GroupBy(x => x.IdentityCard)
.Select(g => g.FirstOrDefault())
.ToList();
return result;
}
/// <summary>
/// 获取项目专职人数(异步)
/// </summary>
/// <returns></returns>
public static async Task<List<Model.OfSafetySupervisorsOutput>> GetProjectPersonNumAsync()
{
return await Task.Run(GetProjectPersonNum);
}
/// <summary>
/// 获取质量培训人次数
/// </summary>
/// <returns></returns>
public static List<Model.OfSafetySupervisorsOutput> GetTrainPersonNum()
{
var result = (from x in Funs.DB.Comprehensive_InspectionPerson
join p in Funs.DB.Base_Project on x.ProjectId equals p.ProjectId into pGroup
from p in pGroup.DefaultIfEmpty()
join u in Funs.DB.Base_Unit on x.UnitId equals u.UnitId into uGroup
from u in uGroup.DefaultIfEmpty()
join y in Funs.DB.SitePerson_Person on x.InspectionPersonId equals y.PersonId
join z in Funs.DB.Base_WorkPost on y.WorkPostId equals z.WorkPostId
where BeUnderConstructionList.Contains(p.ProjectId) && x.IsTrain == true && x.CompileDate > Const.DtmarkTime
select new Model.OfSafetySupervisorsOutput
{
ProjectId = x.ProjectId,
ProjectName = p.ProjectName,
UnitId = u.UnitId,
UnitName = u.UnitName,
Name = x.PersonName,
Sex = y.Sex == null ? "" : (y.Sex == "1" ? "男" : "女"),
IdentityCard = y.IdentityCard,
WorkPostName = PostService.GetPostNameById(y.WorkPostId),
Phone = y.Telephone
}).ToList();
return result;
}
/// <summary>
/// 获取质量培训人次数(异步)
/// </summary>
/// <returns></returns>
public static async Task<List<Model.OfSafetySupervisorsOutput>> GetTrainPersonNumAsync()
{
return await Task.Run(GetTrainPersonNum);
}
/// <summary>
/// 获取技术交底人次数
/// </summary>
/// <returns></returns>
public static int GetTechnicalDisclosePersonNum()
{
var result = (from x in Funs.DB.Comprehensive_DesignDetails
where BeUnderConstructionList.Contains(x.ProjectId) && x.CompileDate > Const.DtmarkTime
select x.JoinPersonNum).ToList().Sum(x => x.Value);
return result;
}
/// <summary>
/// 获取技术交底人次数
/// </summary>
/// <returns></returns>
public static List<Model.EduTrainOutput> GetTechnicalDisclosePerson()
{
var result = (from x in Funs.DB.Comprehensive_DesignDetails
join p in Funs.DB.Base_Project on x.ProjectId equals p.ProjectId into pGroup
from p in pGroup.DefaultIfEmpty()
where BeUnderConstructionList.Contains(p.ProjectId) && x.CompileDate > Const.DtmarkTime
select new Model.EduTrainOutput()
{
ProjectId = x.ProjectId,
ProjectName = p.ProjectName,
UnitName = "",
Id = x.DesignDetailsId,
TrainTitle = "",
TrainStartDate = null,
TrainEndDate = null,
TrainPersonNum = x.JoinPersonNum ?? 0,
}).ToList();
return result;
}
/// <summary>
/// 获取技术交底人次数(异步)
/// </summary>
/// <returns></returns>
public static async Task<List<EduTrainOutput>> GetTechnicalDisclosePersonNumAsync()
{
return await Task.Run(GetTechnicalDisclosePerson);
}
/// <summary>
/// 获取设备报验
/// </summary>
/// <returns></returns>
public static List<Model.Comprehensive_InspectionEquipment> GetComprehensive_InspectionEquipment()
{
var result = (from x in Funs.DB.Comprehensive_InspectionEquipment
where BeUnderConstructionList.Contains(x.ProjectId) && x.CompileDate > Const.DtmarkTime
select x).ToList();
return result;
}
/// <summary>
/// 获取设备报验(异步)
/// </summary>
/// <returns></returns>
public static async Task<List<Comprehensive_InspectionEquipment>> GetComprehensive_InspectionEquipmentAsync()
{
return await Task.Run(GetComprehensive_InspectionEquipment);
}
/// <summary>
/// 获取人员报验
/// </summary>
/// <returns></returns>
public static List<Model.Comprehensive_InspectionPerson> GetComprehensive_InspectionPerson()
{
var result = (from x in Funs.DB.Comprehensive_InspectionPerson
where BeUnderConstructionList.Contains(x.ProjectId) && x.CompileDate > Const.DtmarkTime
select x).ToList();
return result;
}
/// <summary>
/// 获取人员报验(异步)
/// </summary>
/// <returns></returns>
public static async Task<List<Comprehensive_InspectionPerson>> GetComprehensive_InspectionPersonAsync()
{
return await Task.Run(GetComprehensive_InspectionPerson);
}
/// <summary>
/// 获取机具报验
/// </summary>
/// <returns></returns>
public static List<Model.Comprehensive_InspectionMachine> GetComprehensive_InspectionMachine()
{
var result = (from x in Funs.DB.Comprehensive_InspectionMachine
where BeUnderConstructionList.Contains(x.ProjectId) && x.CompileDate > Const.DtmarkTime
select x).ToList();
return result;
}
/// <summary>
/// 获取机具报验(异步)
/// </summary>
/// <returns></returns>
public static async Task<List<Comprehensive_InspectionMachine>> GetComprehensive_InspectionMachineAsync()
{
return await Task.Run(GetComprehensive_InspectionMachine);
}
/// <summary>
/// 获取在用计量器具数
/// </summary>
/// <returns></returns>
public static List<Comprehensive_InspectionMachine> GetUseNum()
{
var result = (from x in Funs.DB.Comprehensive_InspectionMachine
where BeUnderConstructionList.Contains(x.ProjectId) && x.IsOnSite == true && x.InspectionType.Contains("计量") && x.CompileDate > Const.DtmarkTime
select x).ToList();
return result;
}
/// <summary>
/// 获取在用计量器具数(异步)
/// </summary>
/// <returns></returns>
public static async Task<List<Comprehensive_InspectionMachine>> GetUseNumAsync()
{
return await Task.Run(GetUseNum);
}
/// <summary>
/// 获取校准合格数
/// </summary>
/// <returns></returns>
public static List<Comprehensive_InspectionMachine> GetOkNum()
{
var result = (from x in Funs.DB.Comprehensive_InspectionMachine
where BeUnderConstructionList.Contains(x.ProjectId) && x.IsOnSite == true && x.InspectionType.Contains("计量") && x.IsCheckOK == true
&& x.CompileDate > Const.DtmarkTime
select x).ToList();
return result;
}
/// <summary>
/// 获取校准合格数(异步)
/// </summary>
/// <returns></returns>
public static async Task<List<Comprehensive_InspectionMachine>> GetOkNumAsync()
{
return await Task.Run(GetOkNum);
}
/// <summary>
/// 获取单项工程个数
/// </summary>
/// <returns></returns>
public static List<Project_Installation> GetSingleProjectNum()
{
var result = (from x in Funs.DB.Project_Installation
where BeUnderConstructionList.Contains(x.ProjectId) && x.SuperInstallationId == "0"
select x).ToList();
return result;
}
/// <summary>
/// 获取单项工程个数(异步)
/// </summary>
/// <returns></returns>
public static async Task<List<Project_Installation>> GetSingleProjectNumAsync()
{
return await Task.Run(GetSingleProjectNum);
}
/// <summary>
/// 获取单位工程个数
/// </summary>
/// <returns></returns>
public static List<WBS_UnitWork> GetUnitProjectNum()
{
var result = (from x in Funs.DB.WBS_UnitWork
where BeUnderConstructionList.Contains(x.ProjectId)
select x).ToList();
return result;
}
/// <summary>
/// 获取单位工程个数(异步)
/// </summary>
/// <returns></returns>
public static async Task<List<WBS_UnitWork>> GetUnitProjectNumAsync()
{
return await Task.Run(GetUnitProjectNum);
}
/// <summary>
/// 获取分部工程个数
/// </summary>
/// <returns></returns>
public static List<WBS_DivisionProject> GetSubProjectNum()
{
var result = (from x in Funs.DB.WBS_DivisionProject
where BeUnderConstructionList.Contains(x.ProjectId) && x.SubItemType == "1" && x.IsSelected == true
select x).ToList();
return result;
}
/// <summary>
/// 获取分部工程个数(异步)
/// </summary>
/// <returns></returns>
public static async Task<List<WBS_DivisionProject>> GetSubProjectNumAsync()
{
return await Task.Run(GetSubProjectNum);
}
/// <summary>
/// 获取分项工程个数
/// </summary>
/// <returns></returns>
public static List<WBS_DivisionProject> GetSubdivisionalWorksNum()
{
var result = (from x in Funs.DB.WBS_DivisionProject
where BeUnderConstructionList.Contains(x.ProjectId) && x.SubItemType == "3" && x.IsSelected == true
select x).ToList();
return result;
}
/// <summary>
/// 获取分项工程个数(异步)
/// </summary>
/// <returns></returns>
public static async Task<List<WBS_DivisionProject>> GetSubdivisionalWorksNumAsync()
{
return await Task.Run(GetSubdivisionalWorksNum);
}
/// <summary>
/// 获取检验批个数
/// </summary>
/// <returns></returns>
public static List<WBS_BreakdownProject> GetInspectionLotNum()
{
var result = (from x in Funs.DB.WBS_BreakdownProject
where BeUnderConstructionList.Contains(x.ProjectId) && x.IsSelected == true
select x).ToList();
return result;
}
/// <summary>
/// 获取检验批个数(异步)
/// </summary>
/// <returns></returns>
public static async Task<List<WBS_BreakdownProject>> GetInspectionLotNumAsync()
{
return await Task.Run(GetInspectionLotNum);
}
/// <summary>
/// 施工方案数量
/// </summary>
/// <returns></returns>
public static List<Solution_CQMSConstructSolution> GetConstructSolution()
{
var result = (from x in Funs.DB.Solution_CQMSConstructSolution
where BeUnderConstructionList.Contains(x.ProjectId)
select x).ToList();
return result;
}
/// <summary>
/// 施工方案数量(异步)
/// </summary>
/// <returns></returns>
public static async Task<List<Solution_CQMSConstructSolution>> GetConstructSolutionAsync()
{
return await Task.Run(GetConstructSolution);
}
/// <summary>
/// 获取质量问题
/// </summary>
/// <returns></returns>
public static List<Check_CheckControl> GetCQMSProblem()
{
var result = (from x in Funs.DB.Check_CheckControl
where BeUnderConstructionList.Contains(x.ProjectId) && x.CheckDate > Const.DtmarkTime
select x).ToList();
return result;
}
/// <summary>
/// 获取质量问题(异步)
/// </summary>
/// <returns></returns>
public static async Task<List<Check_CheckControl>> GetCQMSProblemAsync()
{
return await Task.Run(GetCQMSProblem);
}
/// <summary>
/// 获取分支机构巡检质量问题
/// </summary>
/// <returns></returns>
public static List<View_DCGL_CheckRectifyListFromSUB> GetBranchCQMSProblem()
{
var result = (from x in Funs.DB.View_DCGL_CheckRectifyListFromSUB
where BeUnderConstructionList.Contains(x.ProjectId) && x.ProblemTypes == "1" && x.CheckDate > Const.DtmarkTime
select x).ToList();
return result;
}
/// <summary>
/// 获取分支机构巡检质量问题(异步)
/// </summary>
/// <returns></returns>
public static async Task<List<View_DCGL_CheckRectifyListFromSUB>> GetBranchCQMSProblemAsync()
{
return await Task.Run(GetBranchCQMSProblem);
}
#region
/// <summary>
/// 获取关键工序验收数
/// </summary>
/// <returns></returns>
public static List<InspectionManagementOutput> GetKeyProcessNum()
{
var result = (from x in Funs.DB.ProcessControl_InspectionManagementDetail
join y in Funs.DB.WBS_BreakdownProject on x.ControlPointType equals y.BreakdownProjectId
where BeUnderConstructionList.Contains(y.ProjectId) && y.CheckAcceptType == "1" && x.CreateDate > Const.DtmarkTime
select new Model.InspectionManagementOutput()
{
ProjectId = y.ProjectId,
//ProjectName = p.ProjectName,
//UnitName = UnitService.getUnitNamesUnitIds(x.UnitIds),
Id = x.InspectionDetailId,
BreakdownCode = y.BreakdownCode,
BreakdownName = y.BreakdownName,
Basis = y.Basis,
CheckPoints = y.CheckPoints,
}).ToList();
return result;
}
/// <summary>
/// 获取关键工序验收数(异步)
/// </summary>
/// <returns></returns>
public static async Task<List<InspectionManagementOutput>> GetKeyProcessNumAsync()
{
return await Task.Run(GetKeyProcessNum);
}
/// <summary>
/// 获取关键工序验收合格数
/// </summary>
/// <returns></returns>
public static List<InspectionManagementOutput> GetKeyProcessOkNum()
{
var result = (from x in Funs.DB.ProcessControl_InspectionManagementDetail
join y in Funs.DB.WBS_BreakdownProject on x.ControlPointType equals y.BreakdownProjectId
join z in Funs.DB.ProcessControl_InspectionManagement on x.InspectionId equals z.InspectionId
where BeUnderConstructionList.Contains(y.ProjectId) && y.CheckAcceptType == "1" && z.IsOnceQualified == true && x.CreateDate > Const.DtmarkTime
select new Model.InspectionManagementOutput()
{
ProjectId = y.ProjectId,
//ProjectName = p.ProjectName,
//UnitName = UnitService.getUnitNamesUnitIds(x.UnitIds),
Id = x.InspectionDetailId,
BreakdownCode = y.BreakdownCode,
BreakdownName = y.BreakdownName,
Basis = y.Basis,
CheckPoints = y.CheckPoints,
}).ToList();
return result;
}
/// <summary>
/// 获取关键工序验收合格数(异步)
/// </summary>
/// <returns></returns>
public static async Task<List<InspectionManagementOutput>> GetKeyProcessOkNumAsync()
{
return await Task.Run(GetKeyProcessOkNum);
}
/// <summary>
/// 获取特殊过程验收数
/// </summary>
/// <returns></returns>
public static List<InspectionManagementOutput> GetSpecialProcessNum()
{
var result = (from x in Funs.DB.ProcessControl_InspectionManagementDetail
join y in Funs.DB.WBS_BreakdownProject on x.ControlPointType equals y.BreakdownProjectId
where BeUnderConstructionList.Contains(y.ProjectId) && y.CheckAcceptType == "2" && x.CreateDate > Const.DtmarkTime
select new Model.InspectionManagementOutput()
{
ProjectId = y.ProjectId,
//ProjectName = p.ProjectName,
//UnitName = UnitService.getUnitNamesUnitIds(x.UnitIds),
Id = x.InspectionDetailId,
BreakdownCode = y.BreakdownCode,
BreakdownName = y.BreakdownName,
Basis = y.Basis,
CheckPoints = y.CheckPoints,
}).ToList();
return result;
}
/// <summary>
/// 获取特殊过程验收数(异步)
/// </summary>
/// <returns></returns>
public static async Task<List<InspectionManagementOutput>> GetSpecialProcessNumAsync()
{
return await Task.Run(GetSpecialProcessNum);
}
/// <summary>
/// 获取特殊过程验收合格数
/// </summary>
/// <returns></returns>
public static List<InspectionManagementOutput> GetSpecialProcessOkNum()
{
var result = (from x in Funs.DB.ProcessControl_InspectionManagementDetail
join y in Funs.DB.WBS_BreakdownProject on x.ControlPointType equals y.BreakdownProjectId
join z in Funs.DB.ProcessControl_InspectionManagement on x.InspectionId equals z.InspectionId
where BeUnderConstructionList.Contains(y.ProjectId) && y.CheckAcceptType == "2" && z.IsOnceQualified == true && x.CreateDate > Const.DtmarkTime
select new Model.InspectionManagementOutput()
{
ProjectId = y.ProjectId,
//ProjectName = p.ProjectName,
//UnitName = UnitService.getUnitNamesUnitIds(x.UnitIds),
Id = x.InspectionDetailId,
BreakdownCode = y.BreakdownCode,
BreakdownName = y.BreakdownName,
Basis = y.Basis,
CheckPoints = y.CheckPoints,
}).ToList();
return result;
}
/// <summary>
/// 获取特殊过程验收合格数(异步)
/// </summary>
/// <returns></returns>
public static async Task<List<InspectionManagementOutput>> GetSpecialProcessOkNumAsync()
{
return await Task.Run(GetSpecialProcessOkNum);
}
/// <summary>
/// 获取隐蔽工程验收数
/// </summary>
/// <returns></returns>
public static List<InspectionManagementOutput> GetConcealedWorksNum()
{
var result = (from x in Funs.DB.ProcessControl_InspectionManagementDetail
join y in Funs.DB.WBS_BreakdownProject on x.ControlPointType equals y.BreakdownProjectId
where BeUnderConstructionList.Contains(y.ProjectId) && y.CheckAcceptType == "3" && x.CreateDate > Const.DtmarkTime
select new Model.InspectionManagementOutput()
{
ProjectId = y.ProjectId,
//ProjectName = p.ProjectName,
//UnitName = UnitService.getUnitNamesUnitIds(x.UnitIds),
Id = x.InspectionDetailId,
BreakdownCode = y.BreakdownCode,
BreakdownName = y.BreakdownName,
Basis = y.Basis,
CheckPoints = y.CheckPoints,
}).ToList();
return result;
}
/// <summary>
/// 获取隐蔽工程验收数(异步)
/// </summary>
/// <returns></returns>
public static async Task<List<InspectionManagementOutput>> GetConcealedWorksNumAsync()
{
return await Task.Run(GetConcealedWorksNum);
}
/// <summary>
/// 获取隐蔽工程验收合格数
/// </summary>
/// <returns></returns>
public static List<InspectionManagementOutput> GetConcealedWorksOkNum()
{
var result = (from x in Funs.DB.ProcessControl_InspectionManagementDetail
join y in Funs.DB.WBS_BreakdownProject on x.ControlPointType equals y.BreakdownProjectId
join z in Funs.DB.ProcessControl_InspectionManagement on x.InspectionId equals z.InspectionId
where BeUnderConstructionList.Contains(y.ProjectId) && y.CheckAcceptType == "3" && z.IsOnceQualified == true && x.CreateDate > Const.DtmarkTime
select new Model.InspectionManagementOutput()
{
ProjectId = y.ProjectId,
//ProjectName = p.ProjectName,
//UnitName = UnitService.getUnitNamesUnitIds(x.UnitIds),
Id = x.InspectionDetailId,
BreakdownCode = y.BreakdownCode,
BreakdownName = y.BreakdownName,
Basis = y.Basis,
CheckPoints = y.CheckPoints,
}).ToList();
return result;
}
/// <summary>
/// 获取隐蔽工程验收合格数(异步)
/// </summary>
/// <returns></returns>
public static async Task<List<InspectionManagementOutput>> GetConcealedWorksOkNumAsync()
{
return await Task.Run(GetConcealedWorksOkNum);
}
/// <summary>
/// 获取单位工程验收数
/// </summary>
/// <returns></returns>
public static List<InspectionManagementOutput> GetUnitProjectAcceptNum()
{
var result = (from x in Funs.DB.ProcessControl_InspectionManagementDetail
join y in Funs.DB.WBS_BreakdownProject on x.ControlPointType equals y.BreakdownProjectId
join z in Funs.DB.ProcessControl_InspectionManagement on x.InspectionId equals z.InspectionId
where BeUnderConstructionList.Contains(y.ProjectId) && y.CheckAcceptType == "4" && x.CreateDate > Const.DtmarkTime
select new Model.InspectionManagementOutput()
{
ProjectId = y.ProjectId,
//ProjectName = p.ProjectName,
//UnitName = UnitService.getUnitNamesUnitIds(x.UnitIds),
Id = x.InspectionDetailId,
BreakdownCode = y.BreakdownCode,
BreakdownName = y.BreakdownName,
Basis = y.Basis,
CheckPoints = y.CheckPoints,
}).ToList();
return result;
}
/// <summary>
/// 获取单位工程验收数(异步)
/// </summary>
/// <returns></returns>
public static async Task<List<InspectionManagementOutput>> GetUnitProjectAcceptNumAsync()
{
return await Task.Run(GetUnitProjectAcceptNum);
}
/// <summary>
/// 获取单位工程验收合格数
/// </summary>
/// <returns></returns>
public static List<InspectionManagementOutput> GetUnitProjectAcceptOKNum()
{
var result = (from x in Funs.DB.ProcessControl_InspectionManagementDetail
join y in Funs.DB.WBS_BreakdownProject on x.ControlPointType equals y.BreakdownProjectId
join z in Funs.DB.ProcessControl_InspectionManagement on x.InspectionId equals z.InspectionId
where BeUnderConstructionList.Contains(y.ProjectId) && y.CheckAcceptType == "4" && z.IsOnceQualified == true && x.CreateDate > Const.DtmarkTime
select new Model.InspectionManagementOutput()
{
ProjectId = y.ProjectId,
//ProjectName = p.ProjectName,
//UnitName = UnitService.getUnitNamesUnitIds(x.UnitIds),
Id = x.InspectionDetailId,
BreakdownCode = y.BreakdownCode,
BreakdownName = y.BreakdownName,
Basis = y.Basis,
CheckPoints = y.CheckPoints,
}).ToList();
return result;
}
/// <summary>
/// 获取单位工程验收合格数(异步)
/// </summary>
/// <returns></returns>
public static async Task<List<InspectionManagementOutput>> GetUnitProjectAcceptOKNumAsync()
{
return await Task.Run(GetUnitProjectAcceptOKNum);
}
/// <summary>
/// 获取分部工程验收数
/// </summary>
/// <returns></returns>
public static List<InspectionManagementOutput> GetSubProjectAcceptNum()
{
var result = (from x in Funs.DB.ProcessControl_InspectionManagementDetail
join y in Funs.DB.WBS_BreakdownProject on x.ControlPointType equals y.BreakdownProjectId
join z in Funs.DB.ProcessControl_InspectionManagement on x.InspectionId equals z.InspectionId
where BeUnderConstructionList.Contains(y.ProjectId) && y.CheckAcceptType == "5" && x.CreateDate > Const.DtmarkTime
select new Model.InspectionManagementOutput()
{
ProjectId = y.ProjectId,
//ProjectName = p.ProjectName,
//UnitName = UnitService.getUnitNamesUnitIds(x.UnitIds),
Id = x.InspectionDetailId,
BreakdownCode = y.BreakdownCode,
BreakdownName = y.BreakdownName,
Basis = y.Basis,
CheckPoints = y.CheckPoints,
}).ToList();
return result;
}
/// <summary>
/// 获取分部工程验收数(异步)
/// </summary>
/// <returns></returns>
public static async Task<List<InspectionManagementOutput>> GetSubProjectAcceptNumAsync()
{
return await Task.Run(GetSubProjectAcceptNum);
}
/// <summary>
/// 获取分部工程验收合格数
/// </summary>
/// <returns></returns>
public static List<InspectionManagementOutput> GetSubProjectAcceptOKNum()
{
var result = (from x in Funs.DB.ProcessControl_InspectionManagementDetail
join y in Funs.DB.WBS_BreakdownProject on x.ControlPointType equals y.BreakdownProjectId
join z in Funs.DB.ProcessControl_InspectionManagement on x.InspectionId equals z.InspectionId
where BeUnderConstructionList.Contains(y.ProjectId) && y.CheckAcceptType == "5" && z.IsOnceQualified == true && x.CreateDate > Const.DtmarkTime
select new Model.InspectionManagementOutput()
{
ProjectId = y.ProjectId,
//ProjectName = p.ProjectName,
//UnitName = UnitService.getUnitNamesUnitIds(x.UnitIds),
Id = x.InspectionDetailId,
BreakdownCode = y.BreakdownCode,
BreakdownName = y.BreakdownName,
Basis = y.Basis,
CheckPoints = y.CheckPoints,
}).ToList();
return result;
}
/// <summary>
/// 获取分部工程验收合格数(异步)
/// </summary>
/// <returns></returns>
public static async Task<List<InspectionManagementOutput>> GetSubProjectAcceptOKNumAsync()
{
return await Task.Run(GetSubProjectAcceptOKNum);
}
/// <summary>
/// 获取分项工程验收数
/// </summary>
/// <returns></returns>
public static List<InspectionManagementOutput> GetSubdivisionalWorksAcceptNum()
{
var result = (from x in Funs.DB.ProcessControl_InspectionManagementDetail
join y in Funs.DB.WBS_BreakdownProject on x.ControlPointType equals y.BreakdownProjectId
join z in Funs.DB.ProcessControl_InspectionManagement on x.InspectionId equals z.InspectionId
where BeUnderConstructionList.Contains(y.ProjectId) && y.CheckAcceptType == "6" && x.CreateDate > Const.DtmarkTime
select new Model.InspectionManagementOutput()
{
ProjectId = y.ProjectId,
//ProjectName = p.ProjectName,
//UnitName = UnitService.getUnitNamesUnitIds(x.UnitIds),
Id = x.InspectionDetailId,
BreakdownCode = y.BreakdownCode,
BreakdownName = y.BreakdownName,
Basis = y.Basis,
CheckPoints = y.CheckPoints,
}).ToList();
return result;
}
/// <summary>
/// 获取分项工程验收数(异步)
/// </summary>
/// <returns></returns>
public static async Task<List<InspectionManagementOutput>> GetSubdivisionalWorksAcceptNumAsync()
{
return await Task.Run(GetSubdivisionalWorksAcceptNum);
}
/// <summary>
/// 获取分项工程验收合格数
/// </summary>
/// <returns></returns>
public static List<InspectionManagementOutput> GetSubdivisionalWorksAcceptOKNum()
{
var result = (from x in Funs.DB.ProcessControl_InspectionManagementDetail
join y in Funs.DB.WBS_BreakdownProject on x.ControlPointType equals y.BreakdownProjectId
join z in Funs.DB.ProcessControl_InspectionManagement on x.InspectionId equals z.InspectionId
where BeUnderConstructionList.Contains(y.ProjectId) && y.CheckAcceptType == "6" && z.IsOnceQualified == true && x.CreateDate > Const.DtmarkTime
select new Model.InspectionManagementOutput()
{
ProjectId = y.ProjectId,
//ProjectName = p.ProjectName,
//UnitName = UnitService.getUnitNamesUnitIds(x.UnitIds),
Id = x.InspectionDetailId,
BreakdownCode = y.BreakdownCode,
BreakdownName = y.BreakdownName,
Basis = y.Basis,
CheckPoints = y.CheckPoints,
}).ToList();
return result;
}
/// <summary>
/// 获取分项工程验收合格数(异步)
/// </summary>
/// <returns></returns>
public static async Task<List<InspectionManagementOutput>> GetSubdivisionalWorksAcceptOKNumAsync()
{
return await Task.Run(GetSubdivisionalWorksAcceptOKNum);
}
#endregion
}
}
@@ -8,12 +8,14 @@ using System.Linq;
using Newtonsoft.Json.Linq;
using Model.Customization;
using System.Net.PeerToPeer;
using System.Threading.Tasks;
namespace BLL
{
public static class HJGLData_HJGLService
{
public static SUBQHSEDB db = Funs.DB;
public static List<string> BeUnderConstructionList = ProjectService.GetProjectWorkList().Where(x => (x.ProjectAttribute == "GONGCHENG" || x.ProjectAttribute == null)).Select(x => x.ProjectId).ToList();
#region
@@ -389,5 +391,89 @@ namespace BLL
}
}
/// <summary>
/// 获取焊工总数
/// </summary>
/// <returns></returns>
public static List<WelderOutput> GetWelderNum()
{
var result = (from x in Funs.DB.BS_Welder
where BeUnderConstructionList.Contains(x.ProjectId) && x.WED_IfOnGuard == true
select new Model.WelderOutput()
{
ProjectId = x.ProjectId,
UnitId = x.WED_Unit,
WEDCode = x.WED_Code,
WEDName = x.WED_Name
//UnitName = UnitService.getUnitNamesUnitIds(x.UnitIds),
}).ToList();
return result;
}
/// <summary>
/// 获取焊工总数(异步)
/// </summary>
/// <returns></returns>
public static async Task<List<WelderOutput>> GetWelderNumAsync()
{
return await Task.Run(GetWelderNum);
}
/// <summary>
/// 获取总达因数和完成达因数
/// </summary>
/// <returns></returns>
public static List<WeldDineOutput> GetDineInfo()
{
var result = (from x in Funs.DB.PW_JointInfo
where BeUnderConstructionList.Contains(x.ProjectId)
select new Model.WeldDineOutput()
{
Id = x.JOT_ID,
ProjectId = x.ProjectId,
Size = x.JOT_Size,
DoneDin = x.JOT_DoneDin
//UnitName = UnitService.getUnitNamesUnitIds(x.UnitIds),
}).ToList();
return result;
}
/// <summary>
/// 获取总达因数(异步)
/// </summary>
/// <returns></returns>
public static async Task<List<WeldDineOutput>> GetDineInfoAsync()
{
return await Task.Run(GetDineInfo);
}
/// <summary>
/// 获取焊接检查信息
/// </summary>
/// <returns></returns>
public static List<CHCheckItemOutput> GetCHCheckItem()
{
var result = (from x in Funs.DB.CH_CheckItem
join y in Funs.DB.CH_Check on x.CHT_CheckID equals y.CHT_CheckID
where BeUnderConstructionList.Contains(y.ProjectId)
select new Model.CHCheckItemOutput()
{
Id = x.CHT_CheckItemID,
ProjectId = y.ProjectId,
UnitId = y.UnitId,
CHT_TotalFilm = x.CHT_TotalFilm,
CHT_PassFilm = x.CHT_PassFilm
//UnitName = UnitService.getUnitNamesUnitIds(x.UnitIds),
}).ToList();
return result;
}
/// <summary>
/// 获取焊接检查信息(异步)
/// </summary>
/// <returns></returns>
public static async Task<List<CHCheckItemOutput>> GetCHCheckItemAsync()
{
return await Task.Run(GetCHCheckItem);
}
}
}
+256 -1
View File
@@ -1,4 +1,5 @@
using Model;
using Model.Enums;
using System;
using System.Collections.Generic;
using System.Linq;
@@ -15,6 +16,8 @@ namespace BLL
/// </summary>
private List<string> _beUnderConstructionList;
private HSSEData_HSSE _hsseData;
private CQMSData_CQMS _cqmsData;
private HJGLData_HJGL _hjglData;
private string _unitId;
private int _unitType;
@@ -49,7 +52,10 @@ namespace BLL
_beUnderConstructionList = new List<string>() { projectId };
}
/// <summary>
/// 安全数据
/// </summary>
/// <returns></returns>
public async Task<HSSEData_HSSE> GetHsseDataAsync()
{
try
@@ -379,5 +385,254 @@ namespace BLL
}).ToList();
return result;
}
/// <summary>
/// 质量数据
/// </summary>
/// <returns></returns>
public async Task<CQMSData_CQMS> GetCqmsDataAsync()
{
try
{
// 并行执行异步方法
var companyPersonNumTask = CQMSDataService.GetCompanyPersonNumAsync(); //获取企业总部人数
var branchPersonNumTask = CQMSDataService.GetBranchPersonNumAsync(); //获取分支机构人数
var projectPersonNumTask = CQMSDataService.GetProjectPersonNumAsync(); //获取项目专职人数
var trainPersonNumTask = CQMSDataService.GetTrainPersonNumAsync(); //获取质量培训人次数
var technicalDisclosePersonTask = CQMSDataService.GetTechnicalDisclosePersonNumAsync(); //获取技术交底人次数
var inspectionEquipmentTask = CQMSDataService.GetComprehensive_InspectionEquipmentAsync(); //获取设备报验
var inspectionPersonTask = CQMSDataService.GetComprehensive_InspectionPersonAsync(); //获取人员报验
var inspectionMachineTask = CQMSDataService.GetComprehensive_InspectionMachineAsync(); //获取机具报验
var useNumTask = CQMSDataService.GetUseNumAsync(); //获取在用计量器具数
var okNumTask = CQMSDataService.GetOkNumAsync(); //获取校准合格数
var singleProjectNumTask = CQMSDataService.GetSingleProjectNumAsync(); //获取单项工程个数
var unitProjectNumTask = CQMSDataService.GetUnitProjectNumAsync(); //获取单位工程个数
var subProjectNuTask = CQMSDataService.GetSubProjectNumAsync(); //获取分部工程个数
var subdivisionalWorksNuTask = CQMSDataService.GetSubdivisionalWorksNumAsync(); //获取分项工程个数
var inspectionLotNumTask = CQMSDataService.GetInspectionLotNumAsync(); //获取检验批个数
var constructSolutionTask = CQMSDataService.GetConstructSolutionAsync(); //施工方案数量
var cqmsProblemTask = CQMSDataService.GetCQMSProblemAsync(); //获取企业级、项目级质量问题
//质量验收数据
var keyProcessNumTask = CQMSDataService.GetKeyProcessNumAsync(); //获取关键工序验收数
var keyProcessOKNumTask = CQMSDataService.GetKeyProcessOkNumAsync(); //获取关键工序验收合格数
var specialProcessNumTask = CQMSDataService.GetSpecialProcessNumAsync(); //获取特殊过程验收数
var specialProcessOKNumTask = CQMSDataService.GetSpecialProcessOkNumAsync(); //获取特殊过程验收合格数
var concealedWorksNumTask = CQMSDataService.GetConcealedWorksNumAsync(); //获取隐蔽工程验收数
var concealedWorksOKNumTask = CQMSDataService.GetConcealedWorksOkNumAsync(); //获取隐蔽工程验收合格数
var unitProjectAcceptNumTask = CQMSDataService.GetUnitProjectAcceptNumAsync(); //获取单位工程验收数
var unitProjectAcceptOKNumTask = CQMSDataService.GetUnitProjectAcceptOKNumAsync(); //获取单位工程验收合格数
var subProjectAcceptNumTask = CQMSDataService.GetSubProjectAcceptNumAsync(); //获取分部工程验收数
var subProjectAcceptOKNumTask = CQMSDataService.GetSubProjectAcceptOKNumAsync(); //获取分部工程验收合格数
var subdivisionalWorksAcceptNumTask = CQMSDataService.GetSubdivisionalWorksAcceptNumAsync(); //获取分项工程验收数
var subdivisionalWorksAcceptOKNumTask = CQMSDataService.GetSubdivisionalWorksAcceptOKNumAsync(); //获取分项工程验收合格数
// 等待所有异步方法执行完成
await Task.WhenAll(
companyPersonNumTask, branchPersonNumTask, projectPersonNumTask,
trainPersonNumTask, technicalDisclosePersonTask,
inspectionEquipmentTask, inspectionPersonTask, inspectionMachineTask,
useNumTask, okNumTask,
singleProjectNumTask, unitProjectNumTask, subProjectNuTask, subdivisionalWorksNuTask, inspectionLotNumTask,
constructSolutionTask,
cqmsProblemTask,
keyProcessNumTask, keyProcessOKNumTask, specialProcessNumTask, specialProcessOKNumTask, concealedWorksNumTask, concealedWorksOKNumTask,
unitProjectAcceptNumTask, unitProjectAcceptOKNumTask, subProjectAcceptNumTask, subProjectAcceptOKNumTask, subdivisionalWorksAcceptNumTask, subdivisionalWorksAcceptOKNumTask
);
// 统一获取异步方法的返回值
var companyPersonNum = await companyPersonNumTask;
var branchPersonNum = await branchPersonNumTask;
var projectPersonNumList = await projectPersonNumTask;
var trainPersonNumList = await trainPersonNumTask;
var technicalDisclosePersonList = await technicalDisclosePersonTask;
var inspectionEquipmentList = await inspectionEquipmentTask;
var inspectionPersonList = await inspectionPersonTask;
var inspectionMachineList = await inspectionMachineTask;
var useNum = await useNumTask;
var okNum = await okNumTask;
var singleProjectNum = await singleProjectNumTask;
var unitProjectNum = await unitProjectNumTask;
var subProjectNum = await subProjectNuTask;
var subdivisionalWorksNum = await subdivisionalWorksNuTask;
var inspectionLotNum = await inspectionLotNumTask;
var constructSolutionList = await constructSolutionTask;
var cqmsProblemList = await cqmsProblemTask;
var keyProcessNum = await keyProcessNumTask;
var keyProcessOKNum = await keyProcessOKNumTask;
var specialProcessNum = await specialProcessNumTask;
var specialProcessOKNum = await specialProcessOKNumTask;
var concealedWorksNum = await concealedWorksNumTask;
var concealedWorksOKNum = await concealedWorksOKNumTask;
var unitProjectAcceptNum = await unitProjectAcceptNumTask;
var unitProjectAcceptOKNum = await unitProjectAcceptOKNumTask;
var subProjectAcceptNum = await subProjectAcceptNumTask;
var subProjectAcceptOKNum = await subProjectAcceptOKNumTask;
var subdivisionalWorksAcceptNum = await subdivisionalWorksAcceptNumTask;
var subdivisionalWorksAcceptOKNum = await subdivisionalWorksAcceptOKNumTask;
if (_unitType == 1 || _unitType == 3)
{
projectPersonNumList = projectPersonNumList.Where(x => _beUnderConstructionList.Contains(x.ProjectId)).ToList();
trainPersonNumList = trainPersonNumList.Where(x => _beUnderConstructionList.Contains(x.ProjectId)).ToList();
technicalDisclosePersonList = technicalDisclosePersonList.Where(x => _beUnderConstructionList.Contains(x.ProjectId)).ToList();
inspectionEquipmentList = inspectionEquipmentList.Where(x => _beUnderConstructionList.Contains(x.ProjectId)).ToList();
inspectionPersonList = inspectionPersonList.Where(x => _beUnderConstructionList.Contains(x.ProjectId)).ToList();
inspectionMachineList = inspectionMachineList.Where(x => _beUnderConstructionList.Contains(x.ProjectId)).ToList();
useNum = useNum.Where(x => _beUnderConstructionList.Contains(x.ProjectId)).ToList();
okNum = okNum.Where(x => _beUnderConstructionList.Contains(x.ProjectId)).ToList();
singleProjectNum = singleProjectNum.Where(x => _beUnderConstructionList.Contains(x.ProjectId)).ToList();
unitProjectNum = unitProjectNum.Where(x => _beUnderConstructionList.Contains(x.ProjectId)).ToList();
subProjectNum = subProjectNum.Where(x => _beUnderConstructionList.Contains(x.ProjectId)).ToList();
subdivisionalWorksNum = subdivisionalWorksNum.Where(x => _beUnderConstructionList.Contains(x.ProjectId)).ToList();
inspectionLotNum = inspectionLotNum.Where(x => _beUnderConstructionList.Contains(x.ProjectId)).ToList();
constructSolutionList = constructSolutionList.Where(x => _beUnderConstructionList.Contains(x.ProjectId)).ToList();
cqmsProblemList = cqmsProblemList.Where(x => _beUnderConstructionList.Contains(x.ProjectId)).ToList();
keyProcessNum = keyProcessNum.Where(x => _beUnderConstructionList.Contains(x.ProjectId)).ToList();
keyProcessOKNum = keyProcessOKNum.Where(x => _beUnderConstructionList.Contains(x.ProjectId)).ToList();
specialProcessNum = specialProcessNum.Where(x => _beUnderConstructionList.Contains(x.ProjectId)).ToList();
specialProcessOKNum = specialProcessOKNum.Where(x => _beUnderConstructionList.Contains(x.ProjectId)).ToList();
concealedWorksNum = concealedWorksNum.Where(x => _beUnderConstructionList.Contains(x.ProjectId)).ToList();
concealedWorksOKNum = concealedWorksOKNum.Where(x => _beUnderConstructionList.Contains(x.ProjectId)).ToList();
unitProjectAcceptNum = unitProjectAcceptNum.Where(x => _beUnderConstructionList.Contains(x.ProjectId)).ToList();
unitProjectAcceptOKNum = unitProjectAcceptOKNum.Where(x => _beUnderConstructionList.Contains(x.ProjectId)).ToList();
subProjectAcceptNum = subProjectAcceptNum.Where(x => _beUnderConstructionList.Contains(x.ProjectId)).ToList();
subProjectAcceptOKNum = subProjectAcceptOKNum.Where(x => _beUnderConstructionList.Contains(x.ProjectId)).ToList();
subdivisionalWorksAcceptNum = subdivisionalWorksAcceptNum.Where(x => _beUnderConstructionList.Contains(x.ProjectId)).ToList();
subdivisionalWorksAcceptOKNum = subdivisionalWorksAcceptOKNum.Where(x => _beUnderConstructionList.Contains(x.ProjectId)).ToList();
}
// 构造结果对象
var table = new CQMSData_CQMS
{
CompanyPersonNum = companyPersonNum,//
BranchPersonNum = branchPersonNum,//
ProjectPersonNum = projectPersonNumList.Count(),
TrainPersonNum = trainPersonNumList.Count(),
TechnicalDisclosePersonNum = technicalDisclosePersonList.Sum(x => x.TrainPersonNum),
EquipmentInspectionNum = inspectionEquipmentList.Count(),
EquipmentInspectionQualifiedNum = inspectionEquipmentList.Where(x => x.SamplingResult == "1").Count(),
PersonInspectionNum = inspectionPersonList.Count(),
PersonInspectionQualifiedNum = inspectionPersonList.Where(x => x.IsOnSite.HasValue && x.IsOnSite == true).Count(),
MachineInspectionNum = inspectionMachineList.Count(),
MachineInspectionQualifiedNum = inspectionMachineList.Where(x => x.IsCheckOK.HasValue && x.IsCheckOK == true).Count(),
MaterialInspectionNum = 0,
MaterialInspectionQualifiedNum = 0,
UseNum = useNum.Count(),
OKNum = okNum.Count(),
SingleProjectNum = singleProjectNum.Count(),
UnitProjectNum = unitProjectNum.Count(),
SubProjectNum = subProjectNum.Count(),
SubdivisionalWorksNum = subdivisionalWorksNum.Count(),
InspectionLotNum = inspectionLotNum.Count(),
ConstructSolutionNum = constructSolutionList.Count(),
ConstructSolutionProjectApproveNum = constructSolutionList.Where(x => x.State == "1").Count(),
ConstructSolutionUnitApproveNum = 0,//
SpecialEquipmentQualityAssuranceSystemNum = 0,//
DesignDetailsNum = technicalDisclosePersonList.Sum(x => x.TrainPersonNum),
ProblemNum = cqmsProblemList.Count(),
ProblemCompletedNum = cqmsProblemList.Where(x => x.State == "7").Count(),
ProblemNotCompletedNum = cqmsProblemList.Where(x => x.State != "7").Count(),
KeyProcessNum = keyProcessNum.Count(),
KeyProcessOKNum = keyProcessOKNum.Count(),
SpecialProcessNum = specialProcessNum.Count(),
SpecialProcessOKNum = specialProcessOKNum.Count(),
ConcealedWorksNum = concealedWorksNum.Count(),
ConcealedWorksOKNum = concealedWorksOKNum.Count(),
UnitProjectAcceptNum = unitProjectAcceptNum.Count(),
UnitProjectAcceptOKNum = unitProjectAcceptOKNum.Count(),
SubProjectAcceptNum = subProjectAcceptNum.Count(),
SubProjectAcceptOKNum = subProjectAcceptOKNum.Count(),
SubdivisionalWorksAcceptNum = subdivisionalWorksAcceptNum.Count(),
SubdivisionalWorksAcceptOKNum = subdivisionalWorksAcceptOKNum.Count()
};
_cqmsData = table;
return _cqmsData;
}
catch (Exception ex)
{
throw;
}
}
/// <summary>
/// 焊接数据
/// </summary>
/// <returns></returns>
public async Task<HJGLData_HJGL> GetHjglDataAsync()
{
try
{
// 并行执行异步方法
var welderNumTask = HJGLData_HJGLService.GetWelderNumAsync(); //获取焊工总数
var dineInfoListTask = HJGLData_HJGLService.GetDineInfoAsync(); //获达因数信息
var chCheckItemListTask = HJGLData_HJGLService.GetCHCheckItemAsync(); //获取焊接检查信息
// 等待所有异步方法执行完成
await Task.WhenAll(
welderNumTask,
dineInfoListTask,
chCheckItemListTask
);
// 统一获取异步方法的返回值
var welderNum = await welderNumTask;
var dineInfoList = await dineInfoListTask;
var chCheckItemList = await chCheckItemListTask;
if (_unitType == 1 || _unitType == 3)
{
welderNum = welderNum.Where(x => _beUnderConstructionList.Contains(x.ProjectId)).ToList();
dineInfoList = dineInfoList.Where(x => _beUnderConstructionList.Contains(x.ProjectId)).ToList();
chCheckItemList = chCheckItemList.Where(x => _beUnderConstructionList.Contains(x.ProjectId)).ToList();
}
// 构造结果对象
var table = new HJGLData_HJGL
{
WelderNum = welderNum.Count(),
TotalDineNum = Convert.ToInt32(dineInfoList.Sum(x => x.Size)),
CompleteDineNum = Convert.ToInt32(dineInfoList.Sum(x => x.DoneDin)),
TotalFilmNum = Convert.ToInt32(chCheckItemList.Sum(x => x.CHT_TotalFilm)),
OKFilmNum = Convert.ToInt32(chCheckItemList.Sum(x => x.CHT_PassFilm))
};
_hjglData = table;
return _hjglData;
}
catch (Exception ex)
{
throw;
}
}
/// <summary>
/// 焊接缺陷分析
/// </summary>
/// <returns></returns>
public List<AnalysisData> GetDefectAnalysis()
{
var db = Funs.DB;
var list = (from item in db.CH_CheckItem
join check in db.CH_Check on item.CHT_CheckID equals check.CHT_CheckID
where _beUnderConstructionList.Contains(check.ProjectId)
group item by item.DefectType into g
select new AnalysisData
{
name = Enum.GetName(typeof(DefectTypeEnums), g.Key),
value = g.Count()
}).ToList();
return list;
}
}
}