集团数据对接

This commit is contained in:
2025-06-26 14:16:26 +08:00
parent c4f1ae6768
commit fa41b65ed4
6 changed files with 240 additions and 84 deletions
+154 -61
View File
@@ -249,6 +249,67 @@ namespace BLL
return responeData;
}
public static HJGLData StatisticalData()
{
var data = new HJGLData();
var thisUnitId = string.Empty;
var thisUnit = CommonService.GetIsThisUnit();
if (thisUnit != null) thisUnitId = thisUnit.UnitId;
var baseUnit = UnitService.GetUnitByUnitId(thisUnitId);
var ProjectData = (from x in Funs.DB.Project_HJGLData_HJGL
where x.ReportDate < DateTime.Now.AddDays(1).Date && x.ReportDate >= DateTime.Now.Date
select x).ToList();
Project_HJGLData_HJGLService.StatisticalAllProjectData();
Project_HJGLData_DefectService.StatisticalAllProjectData();
var table = new HJGLData_HJGL
{
UnitId = thisUnitId,
CollCropCode = baseUnit.CollCropCode,
UnitName = baseUnit.UnitName,
ReportDate = DateTime.Now.Date,
WelderNum = ProjectData.Sum(x => x.WelderNum),
TotalDineNum = ProjectData.Sum(x => x.TotalDineNum),
CompleteDineNum = ProjectData.Sum(x => x.CompleteDineNum),
TotalFilmNum = ProjectData.Sum(x => x.TotalFilmNum),
OKFilmNum = ProjectData.Sum(x => x.OKFilmNum),
CreateMan = Const.sysglyId,
CreateDate = DateTime.Now
};
if (IsReportByToday())
{
table.Id = GetTodayData().Id;
table.State = Const.CNCEC_State_1;
UpdateHJGLData_HJGL(table);
}
else
{
table.Id = SQLHelper.GetNewID();
table.State = Const.CNCEC_State_0;
AddHJGLData_HJGL(table);
}
var item = new HJGLDataItem();
item.CollCropCode = table.CollCropCode;
item.CompleteDineNum = table.CompleteDineNum;
item.Id = table.Id;
item.OKFilmNum = table.OKFilmNum;
item.ReportDate = table.ReportDate.Value.ToShortDateString();
item.TotalDineNum = table.TotalDineNum;
item.TotalFilmNum = table.TotalFilmNum;
item.UnitId = table.UnitId;
item.WelderNum = table.WelderNum;
item.HJGLDataDefectItems = Project_HJGLData_DefectService.getTodayProject_HJGLData_Defect();
var hJGLDataItems = new List<HJGLDataItem>();
hJGLDataItems.Add(item);
data.HJGLDataItems = hJGLDataItems;
return data;
}
public static async Task<HJGLData> StatisticalDataAsync()
{
var data = new HJGLData();
@@ -256,23 +317,30 @@ namespace BLL
var thisUnit = CommonService.GetIsThisUnit();
if (thisUnit != null) thisUnitId = thisUnit.UnitId;
var baseUnit = UnitService.GetUnitByUnitId(thisUnitId);
Project_HJGLData_HJGLService.StatisticalAllProjectData();
Project_HJGLData_DefectService.StatisticalAllProjectData();
// 并行执行异步方法
var welderNumTask = HJGLData_HJGLService.GetWelderNumAsync(); //获取焊工总数
var dineInfoListTask = HJGLData_HJGLService.GetDineInfoAsync(); //获达因数信息
var chCheckItemListTask = HJGLData_HJGLService.GetCHCheckItemAsync(); //获取焊接检查信息
var projectHJGLDataListTask = HJGLData_HJGLService.GetProjectHJGLDataAsync(); //获取焊接检查信息
//// 并行执行异步方法
//var welderNumTask = HJGLData_HJGLService.GetWelderNumAsync(); //获取焊工总数
//var dineInfoListTask = HJGLData_HJGLService.GetDineInfoAsync(); //获达因数信息
//var chCheckItemListTask = HJGLData_HJGLService.GetCHCheckItemAsync(); //获取焊接检查信息
// 等待所有异步方法执行完成
await Task.WhenAll(
welderNumTask,
dineInfoListTask,
chCheckItemListTask
projectHJGLDataListTask
//welderNumTask,
//dineInfoListTask,
//chCheckItemListTask
);
// 统一获取异步方法的返回值
var welderNum = await welderNumTask;
var dineInfoList = await dineInfoListTask;
var chCheckItemList = await chCheckItemListTask;
var projectHJGLDataList = await projectHJGLDataListTask;
//var welderNum = await welderNumTask;
//var dineInfoList = await dineInfoListTask;
//var chCheckItemList = await chCheckItemListTask;
var table = new HJGLData_HJGL
@@ -281,67 +349,71 @@ namespace BLL
CollCropCode = baseUnit.CollCropCode,
UnitName = baseUnit.UnitName,
ReportDate = DateTime.Now.Date,
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)),
WelderNum = projectHJGLDataList.Sum(x => x.WelderNum),
TotalDineNum = projectHJGLDataList.Sum(x => x.TotalDineNum),
CompleteDineNum = projectHJGLDataList.Sum(x => x.CompleteDineNum),
TotalFilmNum = projectHJGLDataList.Sum(x => x.TotalFilmNum),
OKFilmNum = projectHJGLDataList.Sum(x => x.OKFilmNum),
//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)),
CreateMan = Const.sysglyId,
CreateDate = DateTime.Now
};
//Project_HJGLData_HJGLService.DeleteProject_HJGLData_HJGLByDate(DateTime.Now.Date);
//// 预先对 dineInfoList 和 chCheckItemList 按 ProjectId 进行分组
//var dineInfoDict = dineInfoList
// .Where(x => BeUnderConstructionList.Contains(x.ProjectId))
// .GroupBy(x => x.ProjectId)
// .ToDictionary(g => g.Key, g => new
// {
// TotalDineNum = g.Sum(x => x.Size),
// CompleteDineNum = g.Sum(x => x.DoneDin)
// });
Project_HJGLData_HJGLService.DeleteProject_HJGLData_HJGLByDate(DateTime.Now.Date);
// 预先对 dineInfoList 和 chCheckItemList 按 ProjectId 进行分组
var dineInfoDict = dineInfoList
.Where(x => BeUnderConstructionList.Contains(x.ProjectId))
.GroupBy(x => x.ProjectId)
.ToDictionary(g => g.Key, g => new
{
TotalDineNum = g.Sum(x => x.Size),
CompleteDineNum = g.Sum(x => x.DoneDin)
});
//var chCheckItemDict = chCheckItemList
// .Where(x => BeUnderConstructionList.Contains(x.ProjectId))
// .GroupBy(x => x.ProjectId)
// .ToDictionary(g => g.Key, g => new
// {
// TotalFilmNum = g.Sum(x => x.CHT_TotalFilm),
// OKFilmNum = g.Sum(x => x.CHT_PassFilm)
// });
var chCheckItemDict = chCheckItemList
.Where(x => BeUnderConstructionList.Contains(x.ProjectId))
.GroupBy(x => x.ProjectId)
.ToDictionary(g => g.Key, g => new
{
TotalFilmNum = g.Sum(x => x.CHT_TotalFilm),
OKFilmNum = g.Sum(x => x.CHT_PassFilm)
});
//foreach (var projectid in BeUnderConstructionList)
//{
// // 获取焊工数量
// int welderCount = welderNum.Count(x => x.ProjectId == projectid);
foreach (var projectid in BeUnderConstructionList)
{
// 获取焊工数量
int welderCount = welderNum.Count(x => x.ProjectId == projectid);
// // 获取达因信息
// var dineInfo = dineInfoDict.TryGetValue(projectid, out var dineData)
// ? dineData
// : new { TotalDineNum = (double?)0, CompleteDineNum = (double?)0 };
// 获取达因信息
var dineInfo = dineInfoDict.TryGetValue(projectid, out var dineData)
? dineData
: new { TotalDineNum = (double?)0, CompleteDineNum = (double?)0 };
// // 获取拍片信息
// var chCheckItem = chCheckItemDict.TryGetValue(projectid, out var checkData)
// ? checkData
// : new { TotalFilmNum = (int?)0, OKFilmNum = (int?)0 };
// 获取拍片信息
var chCheckItem = chCheckItemDict.TryGetValue(projectid, out var checkData)
? checkData
: new { TotalFilmNum = (int?)0, OKFilmNum = (int?)0 };
// var projectCqmsData = new Project_HJGLData_HJGL()
// {
// Id = SQLHelper.GetNewID(),
// ProjectId = projectid,
// UnitId = thisUnitId,
// CollCropCode = baseUnit.CollCropCode,
// UnitName = baseUnit.UnitName,
// ReportDate = DateTime.Now.Date,
// WelderNum = welderCount,
// TotalDineNum = Convert.ToInt32(dineInfo.TotalDineNum),
// CompleteDineNum = Convert.ToInt32(dineInfo.CompleteDineNum),
// TotalFilmNum = chCheckItem.TotalFilmNum,
// OKFilmNum = chCheckItem.OKFilmNum,
// };
var projectCqmsData = new Project_HJGLData_HJGL()
{
Id = SQLHelper.GetNewID(),
ProjectId = projectid,
UnitId = thisUnitId,
CollCropCode = baseUnit.CollCropCode,
UnitName = baseUnit.UnitName,
ReportDate = DateTime.Now.Date,
WelderNum = welderCount,
TotalDineNum = Convert.ToInt32(dineInfo.TotalDineNum),
CompleteDineNum = Convert.ToInt32(dineInfo.CompleteDineNum),
TotalFilmNum = chCheckItem.TotalFilmNum,
OKFilmNum = chCheckItem.OKFilmNum,
};
Project_HJGLData_HJGLService.AddProject_HJGLData_HJGL(projectCqmsData);
}
// Project_HJGLData_HJGLService.AddProject_HJGLData_HJGL(projectCqmsData);
//}
if (IsReportByToday())
@@ -451,6 +523,7 @@ namespace BLL
{
return await Task.Run(GetDineInfo);
}
/// <summary>
/// 获取焊接检查信息
/// </summary>
@@ -479,5 +552,25 @@ namespace BLL
{
return await Task.Run(GetCHCheckItem);
}
/// <summary>
/// 获取项目焊接信息
/// </summary>
/// <returns></returns>
public static List<Project_HJGLData_HJGL> GetProjectHJGLData()
{
var result = (from x in Funs.DB.Project_HJGLData_HJGL
where BeUnderConstructionList.Contains(x.ProjectId) && x.ReportDate < DateTime.Now.AddDays(1).Date && x.ReportDate >= DateTime.Now.Date
select x).ToList();
return result;
}
/// <summary>
/// 获取项目焊接信息(异步)
/// </summary>
/// <returns></returns>
public static async Task<List<Project_HJGLData_HJGL>> GetProjectHJGLDataAsync()
{
return await Task.Run(GetProjectHJGLData);
}
}
}
@@ -1809,7 +1809,7 @@ namespace BLL
join y in Funs.DB.QualityAudit_PersonQuality on x.PersonId equals y.PersonId
join m in Funs.DB.Base_WorkPost on p.WorkPostId equals m.WorkPostId into mGroup
from m in mGroup.DefaultIfEmpty()
where BeUnderConstructionList.Contains(p.ProjectId) && p.IsUsed == true && m.PostType == Const.PostType_2 && (x.LimitDate == null || x.LimitDate < DateTime.Now)
where BeUnderConstructionList.Contains(p.ProjectId) && p.IsUsed == true && m.PostType == Const.PostType_2 && (x.LimitDate == null || x.LimitDate > DateTime.Now)
select new Model.OfSafetySupervisorsOutput
{
ProjectId = p.ProjectId,
@@ -320,6 +320,27 @@ namespace BLL
public static int GetTotalDineNum(string projectid)
{
int result = 0;
var getD1 = from x in Funs.DB.HJGL_FL_TotalQuantity
where x.ProjectId == projectid
select x;
if (getD1.Count() > 0)
{
foreach (var item in getD1)
{
result += Funs.GetNewIntOrZero(item.TotalWeldQuantity.Split('.')[0]);
}
}
else
{
var getD2 = (from x in Funs.DB.HJGL_FL_Data
where x.ProjectId == projectid
orderby x.CompileDate descending
select x).FirstOrDefault();
if (getD2 != null)
{
result = Funs.GetNewIntOrZero(getD2.TotalWeldQuantity.Split('.')[0]);
}
}
return result;
}
/// <summary>
@@ -329,6 +350,27 @@ namespace BLL
public static int GetCompleteDineNum(string projectid)
{
int result = 0;
var getD1 = from x in Funs.DB.HJGL_FL_TotalQuantity
where x.ProjectId == projectid
select x;
if (getD1.Count() > 0)
{
foreach (var item in getD1)
{
result += Funs.GetNewIntOrZero(item.TotalCompleted.Split('.')[0]);
}
}
else
{
var getD2 = (from x in Funs.DB.HJGL_FL_Data
where x.ProjectId == projectid
orderby x.CompileDate descending
select x).FirstOrDefault();
if (getD2 != null)
{
result = Funs.GetNewIntOrZero(getD2.TotalCompleted.Split('.')[0]);
}
}
return result;
}
/// <summary>
@@ -337,10 +379,20 @@ namespace BLL
/// <returns></returns>
public static int GetTotalFilmNum(string projectid)
{
int result = Convert.ToInt32((from x in Funs.DB.CH_CheckItem
join y in Funs.DB.CH_Check on x.CHT_CheckID equals y.CHT_CheckID
where y.ProjectId == projectid
select x.CHT_TotalFilm).ToList().Sum());
//int result = Convert.ToInt32((from x in Funs.DB.CH_CheckItem
// join y in Funs.DB.CH_Check on x.CHT_CheckID equals y.CHT_CheckID
// where y.ProjectId == projectid
// select x.CHT_TotalFilm).ToList().Sum());
int result = 0;
var getD2 = (from x in Funs.DB.HJGL_FL_Data
where x.ProjectId == projectid
orderby x.CompileDate descending
select x).FirstOrDefault();
if (getD2 != null)
{
result = Funs.GetNewIntOrZero(getD2.OneTimeFilmAmount.Split('.')[0]);
}
return result;
}
/// <summary>
@@ -349,10 +401,19 @@ namespace BLL
/// <returns></returns>
public static int GetOKFilmNum(string projectid)
{
int result = Convert.ToInt32((from x in Funs.DB.CH_CheckItem
join y in Funs.DB.CH_Check on x.CHT_CheckID equals y.CHT_CheckID
where y.ProjectId == projectid
select x.CHT_PassFilm).ToList().Sum());
//int result = Convert.ToInt32((from x in Funs.DB.CH_CheckItem
// join y in Funs.DB.CH_Check on x.CHT_CheckID equals y.CHT_CheckID
// where y.ProjectId == projectid
// select x.CHT_PassFilm).ToList().Sum());
int result = 0;
var getD2 = (from x in Funs.DB.HJGL_FL_Data
where x.ProjectId == projectid
orderby x.CompileDate descending
select x).FirstOrDefault();
if (getD2 != null)
{
result = Funs.GetNewIntOrZero(getD2.OneTimeFilmQualifiedAmount.Split('.')[0]);
}
return result;
}
@@ -1504,7 +1504,7 @@ namespace BLL
{
var result = (from x in Funs.DB.Solution_LargerHazard
where x.ProjectId == projectid && x.IsSuperLargerHazard == false && x.RecordTime > Const.DtmarkTime
select x.OperativesNum).ToList().Sum(x => x.Value);
select x).ToList().Sum(x => x.OperativesNum ?? 0);
return result;
}
@@ -1567,7 +1567,7 @@ namespace BLL
{
var result =
(from x in Funs.DB.Solution_LargerHazard
where x.ProjectId == projectid && x.IsSuperLargerHazard == true && x.RecordTime > Const.DtmarkTime
where x.ProjectId == projectid && x.IsSuperLargerHazard == true && x.OperativesNum != null && x.RecordTime > Const.DtmarkTime
select x.OperativesNum).ToList().Sum(x => x.Value);
return result;
}