2022-12-20 17:45:42 +08:00
|
|
|
|
using FineUIPro;
|
|
|
|
|
using System;
|
|
|
|
|
using System.Collections;
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using System.Linq;
|
|
|
|
|
using System.Text;
|
|
|
|
|
using Model;
|
|
|
|
|
using RestSharp;
|
|
|
|
|
using Newtonsoft.Json;
|
|
|
|
|
using static BLL.Project_CQMSDataService;
|
|
|
|
|
|
|
|
|
|
namespace BLL
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
public static class Project_HJGLData_HJGLService
|
|
|
|
|
{
|
|
|
|
|
public static Model.SGGLDB db = Funs.DB;
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// HJGL数据类型
|
|
|
|
|
/// </summary>
|
|
|
|
|
public enum HJGLDateType
|
|
|
|
|
{
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 全部数据
|
|
|
|
|
/// </summary>
|
|
|
|
|
All,
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 焊工总数
|
|
|
|
|
/// </summary>
|
|
|
|
|
TotalNumberOfWelders,
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 达因数
|
|
|
|
|
/// </summary>
|
|
|
|
|
ArrivalFactor,
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 拍片数
|
|
|
|
|
/// </summary>
|
|
|
|
|
NumberOfFilms,
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 缺陷分析
|
|
|
|
|
/// </summary>
|
|
|
|
|
DefectAnalysis
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#region 获取列表
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 记录数
|
|
|
|
|
/// </summary>
|
|
|
|
|
public static int count
|
|
|
|
|
{
|
|
|
|
|
get;
|
|
|
|
|
set;
|
|
|
|
|
}
|
|
|
|
|
public static List<Model.Project_HJGLData_HJGL> GetProject_HJGLData_HJGLByModle(Model.Project_HJGLData_HJGL table)
|
|
|
|
|
{
|
|
|
|
|
var q = from x in db.Project_HJGLData_HJGL
|
|
|
|
|
where
|
|
|
|
|
(string.IsNullOrEmpty(table.Id) || x.Id.Contains(table.Id)) &&
|
|
|
|
|
(string.IsNullOrEmpty(table.ProjectId) || x.Id.Contains(table.ProjectId)) &&
|
|
|
|
|
(string.IsNullOrEmpty(table.UnitId) || x.UnitId.Contains(table.UnitId)) &&
|
|
|
|
|
(string.IsNullOrEmpty(table.CollCropCode) || x.CollCropCode.Contains(table.CollCropCode)) &&
|
|
|
|
|
(string.IsNullOrEmpty(table.UnitName) || x.UnitName.Contains(table.UnitName))
|
|
|
|
|
select x
|
|
|
|
|
;
|
|
|
|
|
|
|
|
|
|
return q.ToList();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// 获取分页列表
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="PageIndex">页码</param>
|
|
|
|
|
/// <param name="PageSize">每页数量</param>
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
public static IEnumerable getListData(Model.Project_HJGLData_HJGL table, Grid Grid1)
|
|
|
|
|
{
|
|
|
|
|
var q = GetProject_HJGLData_HJGLByModle(table);
|
|
|
|
|
count = q.Count();
|
|
|
|
|
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.ProjectId,
|
|
|
|
|
x.UnitId,
|
|
|
|
|
x.CollCropCode,
|
|
|
|
|
x.UnitName,
|
|
|
|
|
x.ReportDate,
|
|
|
|
|
x.WelderNum,
|
|
|
|
|
x.TotalDineNum,
|
|
|
|
|
x.CompleteDineNum,
|
|
|
|
|
x.TotalFilmNum,
|
|
|
|
|
x.OKFilmNum,
|
|
|
|
|
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
public static Model.Project_HJGLData_HJGL GetProject_HJGLData_HJGLById(string Id)
|
|
|
|
|
{
|
|
|
|
|
return db.Project_HJGLData_HJGL.FirstOrDefault(x => x.Id == Id);
|
|
|
|
|
}
|
|
|
|
|
|
2023-11-11 16:02:42 +08:00
|
|
|
|
public static List<Model.Project_HJGLData_HJGL> GetProject_HJGLData_HJGLByProjectid(string Projectid)
|
2022-12-20 17:45:42 +08:00
|
|
|
|
{
|
2023-11-11 16:02:42 +08:00
|
|
|
|
var q = (from x in db.Project_HJGLData_HJGL
|
|
|
|
|
where x.ProjectId == Projectid
|
|
|
|
|
select x).ToList();
|
2022-12-20 17:45:42 +08:00
|
|
|
|
return q;
|
|
|
|
|
}
|
|
|
|
|
public static void AddProject_HJGLData_HJGL(Model.Project_HJGLData_HJGL newtable)
|
|
|
|
|
{
|
2023-11-11 16:02:42 +08:00
|
|
|
|
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
|
2022-12-20 17:45:42 +08:00
|
|
|
|
{
|
2023-11-11 16:02:42 +08:00
|
|
|
|
Model.Project_HJGLData_HJGL table = new Model.Project_HJGLData_HJGL
|
|
|
|
|
{
|
|
|
|
|
Id = newtable.Id,
|
|
|
|
|
ProjectId = newtable.ProjectId,
|
|
|
|
|
UnitId = newtable.UnitId,
|
|
|
|
|
CollCropCode = newtable.CollCropCode,
|
|
|
|
|
UnitName = newtable.UnitName,
|
|
|
|
|
ReportDate = newtable.ReportDate,
|
|
|
|
|
WelderNum = newtable.WelderNum,
|
|
|
|
|
TotalDineNum = newtable.TotalDineNum,
|
|
|
|
|
CompleteDineNum = newtable.CompleteDineNum,
|
|
|
|
|
TotalFilmNum = newtable.TotalFilmNum,
|
|
|
|
|
OKFilmNum = newtable.OKFilmNum,
|
|
|
|
|
};
|
|
|
|
|
db.Project_HJGLData_HJGL.InsertOnSubmit(table);
|
|
|
|
|
db.SubmitChanges();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
2022-12-20 17:45:42 +08:00
|
|
|
|
}
|
|
|
|
|
public static void UpdateProject_HJGLData_HJGL(Model.Project_HJGLData_HJGL newtable)
|
|
|
|
|
{
|
2023-11-11 16:02:42 +08:00
|
|
|
|
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
|
2022-12-20 17:45:42 +08:00
|
|
|
|
{
|
2023-11-11 16:02:42 +08:00
|
|
|
|
Model.Project_HJGLData_HJGL table = db.Project_HJGLData_HJGL.FirstOrDefault(x => x.Id == newtable.Id);
|
|
|
|
|
if (table != null)
|
|
|
|
|
{
|
|
|
|
|
table.Id = newtable.Id;
|
|
|
|
|
table.ProjectId = newtable.ProjectId;
|
|
|
|
|
table.UnitId = newtable.UnitId;
|
|
|
|
|
table.CollCropCode = newtable.CollCropCode;
|
|
|
|
|
table.UnitName = newtable.UnitName;
|
|
|
|
|
table.ReportDate = newtable.ReportDate;
|
|
|
|
|
table.WelderNum = newtable.WelderNum;
|
|
|
|
|
table.TotalDineNum = newtable.TotalDineNum;
|
|
|
|
|
table.CompleteDineNum = newtable.CompleteDineNum;
|
|
|
|
|
table.TotalFilmNum = newtable.TotalFilmNum;
|
|
|
|
|
table.OKFilmNum = newtable.OKFilmNum;
|
|
|
|
|
db.SubmitChanges();
|
|
|
|
|
}
|
2022-12-20 17:45:42 +08:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
public static void DeleteProject_HJGLData_HJGLById(string Id)
|
|
|
|
|
{
|
2023-11-11 16:02:42 +08:00
|
|
|
|
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
|
2022-12-20 17:45:42 +08:00
|
|
|
|
{
|
2023-11-11 16:02:42 +08:00
|
|
|
|
Model.Project_HJGLData_HJGL table = db.Project_HJGLData_HJGL.FirstOrDefault(x => x.Id == Id);
|
|
|
|
|
if (table != null)
|
|
|
|
|
{
|
|
|
|
|
db.Project_HJGLData_HJGL.DeleteOnSubmit(table);
|
|
|
|
|
db.SubmitChanges();
|
|
|
|
|
}
|
2022-12-20 17:45:42 +08:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 判断该项目的该日期是否统计数据
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="dateTime"></param>
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
public static bool IsReportByDate(DateTime dateTime, string projectid)
|
|
|
|
|
{
|
|
|
|
|
var result = false;
|
|
|
|
|
var q = (from x in Funs.DB.Project_HJGLData_HJGL
|
|
|
|
|
where x.ReportDate >= dateTime.Date && x.ReportDate < (dateTime.Date.AddDays(1).Date) && x.ProjectId == projectid
|
|
|
|
|
select x).ToList();
|
|
|
|
|
if (q != null && q.Count > 0)
|
|
|
|
|
{
|
|
|
|
|
result = true;
|
|
|
|
|
}
|
|
|
|
|
return result;
|
|
|
|
|
}
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 根据projectid判断当天项目是否已统计数据
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="projectid"></param>
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
public static bool IsReportByToday(string projectid)
|
|
|
|
|
{
|
|
|
|
|
var result = false;
|
|
|
|
|
var q = (from x in Funs.DB.Project_HJGLData_HJGL
|
|
|
|
|
where x.ReportDate < DateTime.Now.AddDays(1).Date && x.ReportDate >= DateTime.Now.Date && x.ProjectId == projectid
|
|
|
|
|
select x).ToList();
|
|
|
|
|
if (q != null && q.Count > 0)
|
|
|
|
|
{
|
|
|
|
|
result = true;
|
|
|
|
|
}
|
|
|
|
|
return result;
|
|
|
|
|
}
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 根据projectid,获取该项目当天的统计数据
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="projectid"></param>
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
public static Model.Project_HJGLData_HJGL getTodayProject_HJGLData_HJGL(string projectid)
|
|
|
|
|
{
|
|
|
|
|
var q = (from x in Funs.DB.Project_HJGLData_HJGL
|
|
|
|
|
where x.ReportDate < DateTime.Now.AddDays(1).Date && x.ReportDate >= DateTime.Now.Date && x.ProjectId == projectid
|
|
|
|
|
select x).FirstOrDefault();
|
|
|
|
|
return q;
|
|
|
|
|
}
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 统计所有在建项目数据
|
|
|
|
|
/// </summary>
|
|
|
|
|
public static void StatisticalAllProjectData()
|
|
|
|
|
{
|
|
|
|
|
var projectlist = ProjectService.GetProjectWorkList();
|
|
|
|
|
foreach (var item in projectlist)
|
|
|
|
|
{
|
|
|
|
|
StatisticalData(item.ProjectId, HJGLDateType.All);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 统计数据
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="projectid">项目id</param>
|
|
|
|
|
/// <param name="hJGLDateType">数据类型</param>
|
2023-11-11 16:02:42 +08:00
|
|
|
|
public static void StatisticalData(string projectid, HJGLDateType hJGLDateType)
|
2022-12-20 17:45:42 +08:00
|
|
|
|
{
|
2023-09-26 15:20:47 +08:00
|
|
|
|
string thisUnitId = string.Empty;
|
|
|
|
|
var thisUnit = CommonService.GetIsThisUnit();
|
|
|
|
|
if (thisUnit != null)
|
|
|
|
|
{
|
|
|
|
|
thisUnitId = thisUnit.UnitId;
|
|
|
|
|
}
|
2022-12-20 17:45:42 +08:00
|
|
|
|
var base_Unit = BLL.UnitService.GetUnitByUnitId(thisUnitId);
|
|
|
|
|
Model.Project_HJGLData_HJGL table = new Model.Project_HJGLData_HJGL();
|
|
|
|
|
if (IsReportByToday(projectid))
|
|
|
|
|
{
|
|
|
|
|
table = getTodayProject_HJGLData_HJGL(projectid);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
2023-11-11 16:02:42 +08:00
|
|
|
|
table.Id = SQLHelper.GetNewID();
|
2022-12-20 17:45:42 +08:00
|
|
|
|
}
|
|
|
|
|
table.UnitId = thisUnitId;
|
|
|
|
|
table.CollCropCode = base_Unit.CollCropCode;
|
|
|
|
|
table.UnitName = base_Unit.UnitName;
|
|
|
|
|
table.ProjectId = projectid;
|
|
|
|
|
table.ReportDate = DateTime.Now.Date;
|
|
|
|
|
|
2023-11-11 16:02:42 +08:00
|
|
|
|
if (hJGLDateType == HJGLDateType.TotalNumberOfWelders || hJGLDateType == HJGLDateType.All)
|
2022-12-20 17:45:42 +08:00
|
|
|
|
{
|
|
|
|
|
table.WelderNum = GetWelderNum(projectid);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
if (hJGLDateType == HJGLDateType.ArrivalFactor || hJGLDateType == HJGLDateType.All)
|
|
|
|
|
{
|
|
|
|
|
table.TotalDineNum = GetTotalDineNum(projectid);
|
|
|
|
|
table.CompleteDineNum = GetCompleteDineNum(projectid);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
if (hJGLDateType == HJGLDateType.NumberOfFilms || hJGLDateType == HJGLDateType.All)
|
|
|
|
|
{
|
|
|
|
|
table.TotalFilmNum = GetTotalFilmNum(projectid);
|
|
|
|
|
table.OKFilmNum = GetOKFilmNum(projectid);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
if (hJGLDateType == HJGLDateType.DefectAnalysis || hJGLDateType == HJGLDateType.All)
|
|
|
|
|
{
|
2023-11-11 16:02:42 +08:00
|
|
|
|
// Project_HJGLData_DefectService.StatisticalData(projectid);
|
2022-12-20 17:45:42 +08:00
|
|
|
|
}
|
2023-11-11 16:02:42 +08:00
|
|
|
|
|
2022-12-20 17:45:42 +08:00
|
|
|
|
if (IsReportByToday(projectid))
|
|
|
|
|
{
|
|
|
|
|
UpdateProject_HJGLData_HJGL(table);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
AddProject_HJGLData_HJGL(table);
|
|
|
|
|
}
|
|
|
|
|
HJGLData_HJGLService.UpdateTodyData_State();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 获取焊工总数
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
public static int GetWelderNum(string projectid)
|
|
|
|
|
{
|
|
|
|
|
int result = (from x in Funs.DB.BS_Welder
|
|
|
|
|
where x.ProjectId == projectid && x.WED_IfOnGuard == true
|
|
|
|
|
select x).Count();
|
|
|
|
|
return result;
|
|
|
|
|
}
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 获取总达因数
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
public static int GetTotalDineNum(string projectid)
|
|
|
|
|
{
|
|
|
|
|
int result = Convert.ToInt32((from x in Funs.DB.PW_JointInfo
|
|
|
|
|
where x.ProjectId == projectid
|
2023-09-26 15:20:47 +08:00
|
|
|
|
select x.JOT_Size).ToList().Sum());
|
2022-12-20 17:45:42 +08:00
|
|
|
|
return result;
|
|
|
|
|
}
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 获取完成达因数
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
public static int GetCompleteDineNum(string projectid)
|
|
|
|
|
{
|
|
|
|
|
int result = Convert.ToInt32((from x in Funs.DB.PW_JointInfo
|
|
|
|
|
where x.ProjectId == projectid
|
2023-11-11 16:02:42 +08:00
|
|
|
|
select x.JOT_DoneDin).ToList().Sum());
|
2022-12-20 17:45:42 +08:00
|
|
|
|
return result;
|
|
|
|
|
}
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 获取总片数
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
public static int GetTotalFilmNum(string projectid)
|
|
|
|
|
{
|
2023-09-26 15:20:47 +08:00
|
|
|
|
int result = Convert.ToInt32((from x in Funs.DB.CH_CheckItem
|
2023-11-11 16:02:42 +08:00
|
|
|
|
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());
|
2022-12-20 17:45:42 +08:00
|
|
|
|
return result;
|
|
|
|
|
}
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 获取合格片数
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
public static int GetOKFilmNum(string projectid)
|
|
|
|
|
{
|
2023-09-26 15:20:47 +08:00
|
|
|
|
int result = Convert.ToInt32((from x in Funs.DB.CH_CheckItem
|
2023-11-11 16:02:42 +08:00
|
|
|
|
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());
|
2022-12-20 17:45:42 +08:00
|
|
|
|
return result;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|