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; /// /// HJGL数据类型 /// public enum HJGLDateType { /// /// 全部数据 /// All, /// /// 焊工总数 /// TotalNumberOfWelders, /// /// 达因数 /// ArrivalFactor, /// /// 拍片数 /// NumberOfFilms, /// /// 缺陷分析 /// DefectAnalysis } #region 获取列表 /// /// 记录数 /// public static int count { get; set; } public static List 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(); } /// 获取分页列表 /// /// 页码 /// 每页数量 /// 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); } public static List GetProject_HJGLData_HJGLByProjectid(string Projectid) { var q = (from x in db.Project_HJGLData_HJGL where x.ProjectId == Projectid select x).ToList(); return q; } public static void AddProject_HJGLData_HJGL(Model.Project_HJGLData_HJGL newtable) { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { 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(); } } public static void UpdateProject_HJGLData_HJGL(Model.Project_HJGLData_HJGL newtable) { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { 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(); } } } public static void DeleteProject_HJGLData_HJGLById(string Id) { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { 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(); } } } /// /// 判断该项目的该日期是否统计数据 /// /// /// 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; } /// /// 根据projectid判断当天项目是否已统计数据 /// /// /// 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; } /// /// 根据projectid,获取该项目当天的统计数据 /// /// /// 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; } /// /// 统计所有在建项目数据 /// public static void StatisticalAllProjectData() { var projectlist = ProjectService.GetProjectWorkList(); foreach (var item in projectlist) { StatisticalData(item.ProjectId, HJGLDateType.All); } } /// /// 统计数据 /// /// 项目id /// 数据类型 public static void StatisticalData(string projectid, HJGLDateType hJGLDateType) { string thisUnitId = string.Empty; var thisUnit = CommonService.GetIsThisUnit(); if (thisUnit != null) { thisUnitId = thisUnit.UnitId; } 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 { table.Id = SQLHelper.GetNewID(); } table.UnitId = thisUnitId; table.CollCropCode = base_Unit.CollCropCode; table.UnitName = base_Unit.UnitName; table.ProjectId = projectid; table.ReportDate = DateTime.Now.Date; if (hJGLDateType == HJGLDateType.TotalNumberOfWelders || hJGLDateType == HJGLDateType.All) { 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) { // Project_HJGLData_DefectService.StatisticalData(projectid); } if (IsReportByToday(projectid)) { UpdateProject_HJGLData_HJGL(table); } else { AddProject_HJGLData_HJGL(table); } HJGLData_HJGLService.UpdateTodyData_State(); } /// /// 获取焊工总数 /// /// 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; } /// /// 获取总达因数 /// /// public static int GetTotalDineNum(string projectid) { int result = Convert.ToInt32((from x in Funs.DB.PW_JointInfo where x.ProjectId == projectid select x.JOT_Size).ToList().Sum()); return result; } /// /// 获取完成达因数 /// /// public static int GetCompleteDineNum(string projectid) { int result = Convert.ToInt32((from x in Funs.DB.PW_JointInfo where x.ProjectId == projectid select x.JOT_DoneDin).ToList().Sum()); return result; } /// /// 获取总片数 /// /// 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()); return result; } /// /// 获取合格片数 /// /// 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()); return result; } } }