341 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			C#
		
	
	
	
			
		
		
	
	
			341 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			C#
		
	
	
	
| 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)
 | ||
|         {
 | ||
| 
 | ||
|             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)
 | ||
|         {
 | ||
| 
 | ||
|             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)
 | ||
|         {
 | ||
| 
 | ||
|             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 = BLL.Const.UnitId_CD;
 | ||
|             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(x=>x.Value));
 | ||
|             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(x => x.Value));
 | ||
|             return result;
 | ||
|         }
 | ||
|         /// <summary>
 | ||
|         /// 获取总片数
 | ||
|         /// </summary>
 | ||
|         /// <returns></returns>
 | ||
|         public static int GetTotalFilmNum(string projectid)
 | ||
|         {
 | ||
|             int result = (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(x => x.Value);
 | ||
|             return result;
 | ||
|         }
 | ||
|         /// <summary>
 | ||
|         /// 获取合格片数
 | ||
|         /// </summary>
 | ||
|         /// <returns></returns>
 | ||
|         public static int GetOKFilmNum(string projectid)
 | ||
|         {
 | ||
|             int result = (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(x => x.Value);
 | ||
|             return result;
 | ||
|         }
 | ||
| 
 | ||
|     }
 | ||
| } |