This commit is contained in:
geh
2025-06-18 16:17:36 +08:00
parent 4926935d71
commit 0cb37e2c02
21 changed files with 2751 additions and 692 deletions
+133 -67
View File
@@ -52,22 +52,22 @@ namespace BLL
if (count == 0) return null;
// q = SortConditionHelper.SortingAndPaging(q, Grid1.SortField, Grid1.SortDirection, Grid1.PageIndex, Grid1.PageSize);
return from x in q
select new
{
x.Id,
x.UnitId,
x.CollCropCode,
x.UnitName,
x.ReportDate,
x.WelderNum,
x.TotalDineNum,
x.CompleteDineNum,
x.TotalFilmNum,
x.OKFilmNum,
x.State,
x.CreateDate,
x.CreateMan
};
select new
{
x.Id,
x.UnitId,
x.CollCropCode,
x.UnitName,
x.ReportDate,
x.WelderNum,
x.TotalDineNum,
x.CompleteDineNum,
x.TotalFilmNum,
x.OKFilmNum,
x.State,
x.CreateDate,
x.CreateMan
};
}
#endregion
@@ -94,8 +94,8 @@ namespace BLL
};
db.HJGLData_HJGL.InsertOnSubmit(table);
db.SubmitChanges();
}
}
}
public static void DeleteHJGLData_HJGLById(string Id)
@@ -109,7 +109,7 @@ namespace BLL
db.SubmitChanges();
}
}
}
public static HJGLData_HJGL GetHJGLData_HJGLById(string Id)
@@ -158,23 +158,27 @@ namespace BLL
return data;
}
public static HJGLData GetTodayHJGLData_HJGL()
public static async Task<HJGLData> GetTodayHJGLData_HJGLAsync()
{
var data = new HJGLData();
if (CommonService.GetIsThisUnit().CollCropCode== "91410200170644116B")
if (CommonService.GetIsThisUnit().CollCropCode == "91410200170644116B")
{
return GetELECLTodayHJGLData_HJGL();
return GetELECLTodayHJGLData_HJGL();
}
if (CommonService.GetIsThisUnit().CollCropCode == "914200001775697881")
if (CommonService.GetIsThisUnit().CollCropCode == "914200001775697881")
{
return GetCNCEC_16TodayHJGLData_HJGL();
}
var q = GetTodayData();
/* var q = GetTodayData();
if (q != null && q.State == Const.CNCEC_State_S)
data = StatisticalData();
else
data = StatisticalData();
data = StatisticalData();*/
var modelTask = StatisticalDataAsync();
var model = await modelTask;
data = model;
return data;
}
/// <summary>
@@ -188,11 +192,11 @@ namespace BLL
string token = Const.sysglyId;
string response = Funs.RequestPost(baseurl, token, "");
var json = JsonConvert.DeserializeObject(response) as JObject;
if (json != null && json["code"]?.ToString()=="1")
if (json != null && json["code"]?.ToString() == "1")
{
var str = json["data"]?.ToString();
if (str != null) data = JsonConvert.DeserializeObject<HJGLData>(str);
}
if (str != null) data = JsonConvert.DeserializeObject<HJGLData>(str);
}
return data;
}
@@ -216,9 +220,9 @@ namespace BLL
catch (Exception e)
{
APICommonService.SaveSysHttpLog("GetCNCEC_16TodayHJGLData_HJGL", baseurl, e.ToString(), "Request|Post");
}
}
var json = JsonConvert.DeserializeObject(response) as JObject;
if (json != null && json["code"]?.ToString() == "1")
@@ -226,14 +230,14 @@ namespace BLL
var str = json["data"]?.ToString();
if (str != null) data = JsonConvert.DeserializeObject<HJGLData>(str);
}
APICommonService.SaveSysHttpLog("GetCNCEC_16TodayHJGLData_HJGL", baseurl, response, "Request|Post" );
APICommonService.SaveSysHttpLog("GetCNCEC_16TodayHJGLData_HJGL", baseurl, response, "Request|Post");
return data;
}
public static HJGLData_HJGL GetTodayData()
{
var q = (from x in Funs.DB.HJGLData_HJGL
where x.ReportDate < DateTime.Now.AddDays(1).Date && x.ReportDate >= DateTime.Now.Date
select x).FirstOrDefault();
where x.ReportDate < DateTime.Now.AddDays(1).Date && x.ReportDate >= DateTime.Now.Date
select x).FirstOrDefault();
return q;
}
public static HJGLData_HJGL GetSubUnitHjglDataByDate(string Unitid, DateTime? reportdate)
@@ -247,7 +251,7 @@ namespace BLL
var baseUnit = UnitService.GetUnitByUnitId(Unitid);
var ProjectData = (from x in Funs.DB.Project_HJGLData_HJGL
where x.ReportDate == reportdate && projectlist.Select(e => e.ProjectId).Contains(x.ProjectId)
select x).ToList();
select x).ToList();
result = new HJGLData_HJGL
{
UnitId = Unitid,
@@ -262,7 +266,7 @@ namespace BLL
CreateMan = Const.sysglyId,
CreateDate = DateTime.Now
};
return result;
return result;
}
public static void UpdateTodyData_State()
{
@@ -278,8 +282,8 @@ namespace BLL
{
var result = false;
var q = (from x in Funs.DB.HJGLData_HJGL
where x.ReportDate >= dateTime.Date && x.ReportDate < dateTime.Date.AddDays(1).Date
select x).ToList();
where x.ReportDate >= dateTime.Date && x.ReportDate < dateTime.Date.AddDays(1).Date
select x).ToList();
if (q != null && q.Count > 0) result = true;
return result;
}
@@ -292,8 +296,8 @@ namespace BLL
{
var result = false;
var q = (from x in Funs.DB.HJGLData_HJGL
where x.ReportDate < DateTime.Now.AddDays(1).Date && x.ReportDate >= DateTime.Now.Date
select x).ToList();
where x.ReportDate < DateTime.Now.AddDays(1).Date && x.ReportDate >= DateTime.Now.Date
select x).ToList();
if (q.Count > 0) result = true;
return result;
}
@@ -307,33 +311,101 @@ namespace BLL
return responeData;
}
public static HJGLData StatisticalData()
public static async Task<HJGLData> StatisticalDataAsync()
{
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 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;
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),
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)
});
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);
// 获取达因信息
var dineInfo = dineInfoDict.TryGetValue(projectid, out var dineData)
? dineData
: new { TotalDineNum = (decimal ?)0, CompleteDineNum = (decimal?)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,
};
Project_HJGLData_HJGLService.AddProject_HJGLData_HJGL(projectCqmsData);
}
if (IsReportByToday())
{
table.Id = GetTodayData().Id;
@@ -367,7 +439,7 @@ namespace BLL
}
public static void UpdateHJGLData_HJGL(HJGLData_HJGL newtable)
{
{
using (Model.SUBQHSEDB db = new Model.SUBQHSEDB(Funs.ConnString))
{
var table = db.HJGLData_HJGL.FirstOrDefault(x => x.Id == newtable.Id);
@@ -388,11 +460,11 @@ namespace BLL
table.CreateDate = newtable.CreateDate;
db.SubmitChanges();
}
}
}
}
/// <summary>
/// 获取焊工总数
/// </summary>
@@ -424,29 +496,23 @@ namespace BLL
/// 获取总达因数和完成达因数
/// </summary>
/// <returns></returns>
public static List<WeldDineOutput> GetDineInfo()
public static IEnumerable<WeldDineOutput> GetDineInfo()
{
var result = (from x in Funs.DB.PW_JointInfo
where BeUnderConstructionList.Contains(x.ProjectId)
group x by x.ProjectId into g
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();
ProjectId = g.Key,
Size = g.Sum(x => x.JOT_Size),
DoneDin = g.Sum(x => x.JOT_DoneDin)
});
return result;
}
/// <summary>
/// 获取总达因数(异步)
/// </summary>
/// <returns></returns>
public static async Task<List<WeldDineOutput>> GetDineInfoAsync()
}
public static async Task<IEnumerable<WeldDineOutput>> GetDineInfoAsync()
{
return await Task.Run(GetDineInfo);
}
/// <summary>
/// 获取焊接检查信息
/// </summary>