ChengDa_English/SGGL/BLL/ZHGL/DataSync/ProjectDataSync/Project_HJGLData_HJGLServic...

352 lines
13 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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);
}
public static List<Model.Project_HJGLData_HJGL> 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();
}
}
}
/// <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>
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();
}
/// <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
select x.JOT_Size).ToList().Sum());
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
select x.JOT_DoneDin).ToList().Sum());
return result;
}
/// <summary>
/// 获取总片数
/// </summary>
/// <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());
return result;
}
/// <summary>
/// 获取合格片数
/// </summary>
/// <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());
return result;
}
}
}