提交代码
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
using FineUIPro;
|
||||
using FineUIPro;
|
||||
using Model;
|
||||
using Newtonsoft.Json;
|
||||
using System;
|
||||
@@ -6,13 +6,16 @@ using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using Model;
|
||||
using System.Net.PeerToPeer;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace BLL
|
||||
{
|
||||
public static class HJGLData_HJGLService
|
||||
{
|
||||
public static SGGLDB db = Funs.DB;
|
||||
public static List<string> BeUnderConstructionList = ProjectService.GetProjectWorkList().Select(x => x.ProjectId).ToList();
|
||||
|
||||
#region 获取列表
|
||||
|
||||
@@ -49,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 获取列表
|
||||
@@ -91,8 +94,8 @@ namespace BLL
|
||||
};
|
||||
db.HJGLData_HJGL.InsertOnSubmit(table);
|
||||
db.SubmitChanges();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public static void DeleteHJGLData_HJGLById(string Id)
|
||||
@@ -106,7 +109,7 @@ namespace BLL
|
||||
db.SubmitChanges();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
public static HJGLData_HJGL GetHJGLData_HJGLById(string Id)
|
||||
@@ -155,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>
|
||||
@@ -185,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;
|
||||
|
||||
}
|
||||
@@ -212,10 +219,10 @@ namespace BLL
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
APICommonService.SaveSysHttpLog("GetCNCEC_16TodayHJGLData_HJGL", baseurl, e.ToString());
|
||||
|
||||
APICommonService.SaveSysHttpLog("GetCNCEC_16TodayHJGLData_HJGL", baseurl, e.ToString(), "Request|Post");
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
var json = JsonConvert.DeserializeObject(response) as JObject;
|
||||
if (json != null && json["code"]?.ToString() == "1")
|
||||
@@ -223,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);
|
||||
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)
|
||||
@@ -244,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,
|
||||
@@ -259,7 +266,7 @@ namespace BLL
|
||||
CreateMan = Const.sysglyId,
|
||||
CreateDate = DateTime.Now
|
||||
};
|
||||
return result;
|
||||
return result;
|
||||
}
|
||||
public static void UpdateTodyData_State()
|
||||
{
|
||||
@@ -275,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;
|
||||
}
|
||||
@@ -289,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;
|
||||
}
|
||||
@@ -304,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;
|
||||
@@ -364,7 +439,7 @@ namespace BLL
|
||||
}
|
||||
|
||||
public static void UpdateHJGLData_HJGL(HJGLData_HJGL newtable)
|
||||
{
|
||||
{
|
||||
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
|
||||
{
|
||||
var table = db.HJGLData_HJGL.FirstOrDefault(x => x.Id == newtable.Id);
|
||||
@@ -385,8 +460,86 @@ namespace BLL
|
||||
table.CreateDate = newtable.CreateDate;
|
||||
db.SubmitChanges();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 获取焊工总数
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public static List<WelderOutput> GetWelderNum()
|
||||
{
|
||||
var result = (from x in Funs.DB.SitePerson_Person
|
||||
where BeUnderConstructionList.Contains(x.ProjectId) && x.WorkPostId == Const.WorkPost_Welder && x.States == "1"
|
||||
select new Model.WelderOutput()
|
||||
{
|
||||
ProjectId = x.ProjectId,
|
||||
UnitId = x.UnitId,
|
||||
WEDCode = x.CardNo,
|
||||
WEDName = x.PersonName
|
||||
//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 IEnumerable<WeldDineOutput> GetDineInfo()
|
||||
{
|
||||
var result = (from x in Funs.DB.HJGL_WeldJoint
|
||||
where BeUnderConstructionList.Contains(x.ProjectId)
|
||||
group x by x.ProjectId into g
|
||||
select new Model.WeldDineOutput()
|
||||
{
|
||||
ProjectId = g.Key,
|
||||
Size = g.Sum(x => x.Size),
|
||||
DoneDin = g.Sum(x => x.Dia)
|
||||
});
|
||||
return result;
|
||||
}
|
||||
public static async Task<IEnumerable<WeldDineOutput>> GetDineInfoAsync()
|
||||
{
|
||||
return await Task.Run(GetDineInfo);
|
||||
}
|
||||
/// <summary>
|
||||
/// 获取焊接检查信息
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public static List<CHCheckItemOutput> GetCHCheckItem()
|
||||
{
|
||||
var result = (from x in Funs.DB.HJGL_Batch_NDEItem
|
||||
join y in Funs.DB.HJGL_Batch_NDE on x.NDEID equals y.NDEID
|
||||
where BeUnderConstructionList.Contains(y.ProjectId)
|
||||
select new Model.CHCheckItemOutput()
|
||||
{
|
||||
Id = x.NDEItemID,
|
||||
ProjectId = y.ProjectId,
|
||||
UnitId = y.UnitId,
|
||||
CHT_TotalFilm = x.TotalFilm,
|
||||
CHT_PassFilm = x.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);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user