看板质量验收数据汇总
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user