422 lines
15 KiB
C#
422 lines
15 KiB
C#
using BLL;
|
|
using Newtonsoft.Json;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Web;
|
|
using System.Web.UI;
|
|
using System.Web.UI.WebControls;
|
|
|
|
namespace FineUIPro.Web.common
|
|
{
|
|
public partial class main_new1 : PageBase
|
|
{
|
|
/// <summary>
|
|
/// 页面加载
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
protected void Page_Load(object sender, EventArgs e)
|
|
{
|
|
if (!IsPostBack)
|
|
{
|
|
//质量问题治理数据
|
|
getProblemNums();
|
|
|
|
//质量验收图表
|
|
getInspectionManagementInfo();
|
|
|
|
//NCR数据图表
|
|
getNcrInfo();
|
|
|
|
//资质预警
|
|
getEarlyWarningCounts();
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 获取企业总部人数
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
public static int GetCompanyPersonNum()
|
|
{
|
|
string unitId = string.Empty;
|
|
var thisUnit = CommonService.GetIsThisUnit();
|
|
if (thisUnit != null)
|
|
{
|
|
unitId = thisUnit.UnitId;
|
|
}
|
|
int result = (from x in Funs.DB.Person_CompanyBranchPerson
|
|
where x.IsOnJob == true && x.UnitId == unitId
|
|
select x).Count();
|
|
return result;
|
|
}
|
|
/// <summary>
|
|
/// 获取分支机构人数
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
public static int GetBranchPersonNum()
|
|
{
|
|
string unitId = string.Empty;
|
|
var thisUnit = CommonService.GetIsThisUnit();
|
|
if (thisUnit != null)
|
|
{
|
|
unitId = thisUnit.UnitId;
|
|
}
|
|
int result = (from x in Funs.DB.Person_CompanyBranchPerson
|
|
where x.IsOnJob == true && x.UnitId != unitId
|
|
select x).Count();
|
|
return result;
|
|
}
|
|
/// <summary>
|
|
/// 获取项目部人数
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
public static int GetProjectPersonNum()
|
|
{
|
|
int result = (from x in Funs.DB.SitePerson_Person
|
|
join y in Funs.DB.Base_WorkPost on x.WorkPostId equals y.WorkPostId
|
|
where y.IsCQMS == true && x.IsUsed == true
|
|
select x).Count();
|
|
return result;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 获取在用计量器具数
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
public static int GetUseNum()
|
|
{
|
|
int result = (from x in Funs.DB.Comprehensive_InspectionMachine
|
|
where x.IsOnSite == true && x.InspectionType.Contains("计量")
|
|
select x).Count();
|
|
return result;
|
|
}
|
|
/// <summary>
|
|
/// 获取校准合格数
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
public static int GetOKNum()
|
|
{
|
|
int result = (from x in Funs.DB.Comprehensive_InspectionMachine
|
|
where x.IsOnSite == true && x.InspectionType.Contains("计量") && x.IsCheckOK == true
|
|
select x).Count();
|
|
return result;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 机械预警
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
public static int GetJxyjNum() {
|
|
int result = 0;
|
|
//机具报验的到期提醒和过期提醒记录数加一起
|
|
//机具报验的到期提醒数
|
|
var num1 = Funs.DB.Comprehensive_InspectionMachine.Where(x => x.IsOnSite == true && DateTime.Now < x.NextTestDate
|
|
&& ((DateTime)x.NextTestDate).AddDays(-15) < DateTime.Now).Count();
|
|
//过期提醒记录数
|
|
var num2 = Funs.DB.Comprehensive_InspectionMachine.Where(x => x.IsOnSite == true && x.NextTestDate<DateTime.Now).Count();
|
|
result = num1 + num2;
|
|
return result;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 获取质量培训人次数
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
public static int GetTrainPersonNum()
|
|
{
|
|
DateTime date = DateTime.Now.AddDays(-1);
|
|
int result = (from x in Funs.DB.Comprehensive_InspectionPerson
|
|
where x.IsTrain == true && x.CompileDate.Value.Year == date.Year && x.CompileDate.Value.Month == date.Month && x.CompileDate.Value.Day == date.Day
|
|
select x).Count();
|
|
return result;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 获取技术交底人次数
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
public static int GetTechnicalDisclosePersonNum()
|
|
{
|
|
DateTime date = DateTime.Now.AddDays(-1);
|
|
var result = (from x in Funs.DB.Comprehensive_DesignDetails
|
|
where x.DetailsDate.Value.Year == date.Year && x.DetailsDate.Value.Month == date.Month && x.DetailsDate.Value.Day == date.Day
|
|
select x.JoinPersonNum).ToList().Sum(x => x.Value);
|
|
var q = Funs.GetNewIntOrZero(result.ToString());
|
|
return q;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 资质预警
|
|
/// </summary>
|
|
private void getEarlyWarningCounts()
|
|
{
|
|
int allCount = 0;
|
|
var getPersonQualitys = from x in Funs.DB.QualityAudit_PersonQuality
|
|
join y in Funs.DB.SitePerson_Person on x.PersonId equals y.PersonId
|
|
where x.LimitDate.HasValue && x.LimitDate < DateTime.Now
|
|
select x;
|
|
//// 预警人数
|
|
allCount = getPersonQualitys.Count();
|
|
this.spanQualityChartAnalysis.InnerHtml = allCount.ToString();
|
|
}
|
|
|
|
#region 质量问题治理数据
|
|
|
|
/// <summary>
|
|
/// 获取整改完成数
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
public static int GetProblemCompletedNum()
|
|
{
|
|
int result = (from x in Funs.DB.Check_CheckControl
|
|
where x.CheckDate <= DateTime.Now && x.State == "7"
|
|
select x).Count();
|
|
return result;
|
|
}
|
|
/// <summary>
|
|
/// 获取未整改数
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
public static int GetProblemNotCompletedNum()
|
|
{
|
|
int result = (from x in Funs.DB.Check_CheckControl
|
|
where x.CheckDate <= DateTime.Now && x.State != "7"
|
|
select x).Count();
|
|
return result;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 整改率
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
public static string GetProblemZgl()
|
|
{
|
|
string zgl = String.Format("{0:N2}", 100.0 * GetProblemCompletedNum() / (GetProblemCompletedNum() + GetProblemNotCompletedNum()));
|
|
return zgl + "%";
|
|
}
|
|
|
|
/// <summary>
|
|
/// 质量问题治理数据
|
|
/// </summary>
|
|
protected string ProblemNum;
|
|
protected void getProblemNums()
|
|
{
|
|
var num1 = GetProblemNum();
|
|
var num2 = GetProblemCompletedNum();
|
|
var num3 = GetProblemNotCompletedNum();
|
|
ProblemNum = "'" + num1 + "'," +
|
|
"'" + num2 + "'," +
|
|
"'" + num3 + "'," +
|
|
"'" + String.Format("{0:N2}", 100.0 * num2 / (num2 + num3)) + "'";
|
|
}
|
|
|
|
/// 获取问题个数
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
public static int GetProblemNum()
|
|
{
|
|
int result = (from x in Funs.DB.Check_CheckControl
|
|
where x.CheckDate <= DateTime.Now
|
|
select x).Count();
|
|
return result;
|
|
}
|
|
#endregion
|
|
|
|
/// <summary>
|
|
/// 获取焊工总数
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
public static int GetWelderNum()
|
|
{
|
|
int result = (from x in Funs.DB.BS_Welder
|
|
where x.WED_IfOnGuard == true
|
|
select x).Count();
|
|
return result;
|
|
}
|
|
/// <summary>
|
|
/// 获取总达因数
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
public static int GetTotalDineNum()
|
|
{
|
|
int result = 0;
|
|
var getD1 = from x in Funs.DB.HJGL_FL_TotalQuantity
|
|
select x;
|
|
if (getD1.Count() > 0)
|
|
{
|
|
foreach (var item in getD1)
|
|
{
|
|
result += Funs.GetNewIntOrZero(item.TotalWeldQuantity.Split('.')[0]);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
var getD2 = (from x in Funs.DB.HJGL_FL_Data
|
|
orderby x.CompileDate descending
|
|
select x).FirstOrDefault();
|
|
if (getD2 != null)
|
|
{
|
|
result = Funs.GetNewIntOrZero(getD2.TotalWeldQuantity.Split('.')[0]);
|
|
}
|
|
}
|
|
return result;
|
|
}
|
|
/// <summary>
|
|
/// 获取完成达因数
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
public static int GetCompleteDineNum()
|
|
{
|
|
int result = 0;
|
|
|
|
var getD1 = from x in Funs.DB.HJGL_FL_TotalQuantity
|
|
|
|
select x;
|
|
if (getD1.Count() > 0)
|
|
{
|
|
foreach (var item in getD1)
|
|
{
|
|
result += Funs.GetNewIntOrZero(item.TotalCompleted.Split('.')[0]);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
var getD2 = (from x in Funs.DB.HJGL_FL_Data
|
|
orderby x.CompileDate descending
|
|
select x).FirstOrDefault();
|
|
if (getD2 != null)
|
|
{
|
|
result = Funs.GetNewIntOrZero(getD2.TotalCompleted.Split('.')[0]);
|
|
}
|
|
|
|
}
|
|
return result;
|
|
}
|
|
/// <summary>
|
|
/// 获取总片数
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
public static int GetTotalFilmNum()
|
|
{
|
|
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
|
|
select x.CHT_TotalFilm).ToList().Sum());
|
|
return result;
|
|
}
|
|
/// <summary>
|
|
/// 获取合格片数
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
public static int GetOKFilmNum()
|
|
{
|
|
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
|
|
select x.CHT_PassFilm).ToList().Sum());
|
|
return result;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 一次拍片合格率
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
public static string GetOKFilmHgl()
|
|
{
|
|
string zgl = "0";
|
|
if (GetOKFilmNum()>0)
|
|
{
|
|
zgl = String.Format("{0:N2}", 100.0 * GetOKFilmNum() / GetTotalFilmNum());
|
|
}
|
|
return zgl + "%";
|
|
|
|
}
|
|
|
|
#region 质量验收数据
|
|
//专业
|
|
protected string InspectionManagementZy;
|
|
//总计
|
|
protected string InspectionManagementSumCount;
|
|
//合格
|
|
protected string InspectionManagementOkCount;
|
|
//一次验收合格率
|
|
protected string InspectionManagementOneOkCount;
|
|
private void getInspectionManagementInfo() {
|
|
|
|
var q = (from x in Funs.DB.Base_CNProfessional where x.CNProfessionalId != BLL.Const.CNProfessionalConstructId orderby x.SortIndex select x).ToList();
|
|
foreach (var item in q)
|
|
{
|
|
//获取专业
|
|
InspectionManagementZy += "'" + item.ProfessionalName + "',";
|
|
//根据专业获取总计
|
|
var num1 = (from x in Funs.DB.ProcessControl_InspectionManagementDetail
|
|
join y in Funs.DB.ProcessControl_InspectionManagement on x.InspectionId equals y.InspectionId
|
|
where y.CNProfessionalId == item.CNProfessionalId
|
|
select x).ToList().Count;
|
|
InspectionManagementSumCount += "'"+ num1 + "',";
|
|
|
|
//根据专业获取合格数
|
|
var num2 = (from x in Funs.DB.ProcessControl_InspectionManagementDetail
|
|
join y in Funs.DB.ProcessControl_InspectionManagement on x.InspectionId equals y.InspectionId
|
|
where y.CNProfessionalId == item.CNProfessionalId && y.IsOnceQualified==true
|
|
select x).ToList().Count;
|
|
InspectionManagementOkCount += "'" + num2 + "',";
|
|
|
|
//一次验收合格率
|
|
var hgl = "0";
|
|
if (num1>0)
|
|
{
|
|
hgl+= String.Format("{0:N2}", 100.0 * num2 / num1);
|
|
}
|
|
InspectionManagementOneOkCount += "'" + hgl + "',";
|
|
}
|
|
InspectionManagementZy = InspectionManagementZy.TrimEnd(',');
|
|
InspectionManagementSumCount = InspectionManagementSumCount.TrimEnd(',');
|
|
InspectionManagementOkCount = InspectionManagementOkCount.TrimEnd(',');
|
|
InspectionManagementOneOkCount = InspectionManagementOneOkCount.TrimEnd(',');
|
|
|
|
}
|
|
#endregion
|
|
|
|
#region NCR数据
|
|
//整改闭环项
|
|
protected string ncrZgbhx;
|
|
//未整改完成项
|
|
protected string ncrwZgbhx;
|
|
//整改率
|
|
protected string ncrZgl="0%";
|
|
|
|
//图表数据
|
|
//专业
|
|
protected string ncrZy;
|
|
protected string ncrCount;
|
|
private void getNcrInfo()
|
|
{
|
|
//闭环项 有完成日期的
|
|
var num1 = Funs.DB.Comprehensive_NCRManagement.Where(x => x.CompleteDate != null).Count();
|
|
var num2 = Funs.DB.Comprehensive_NCRManagement.Where(x => x.CompleteDate == null).Count();
|
|
ncrZgbhx = num1.ToString();
|
|
ncrwZgbhx = num2.ToString();
|
|
if ((num1 + num2) >0)
|
|
{
|
|
ncrZgl= String.Format("{0:N2}", 100.0 * num1 / (num1 + num2))+"%";
|
|
}
|
|
|
|
//加载专业
|
|
var list = (from x in Funs.DB.Base_CNProfessional where x.CNProfessionalId != BLL.Const.CNProfessionalConstructId orderby x.SortIndex select x).ToList();
|
|
foreach (var item in list)
|
|
{
|
|
ncrZy += "'"+item.ProfessionalName+"',";
|
|
//根据专业加载数据量
|
|
var num3= Funs.DB.Comprehensive_NCRManagement.Where(x => x.CNProfessionalId==item.CNProfessionalId).Count();
|
|
ncrCount += "'"+num3+"',";
|
|
}
|
|
ncrZy = ncrZy.TrimEnd(',');
|
|
ncrCount = ncrCount.TrimEnd(',');
|
|
|
|
}
|
|
#endregion
|
|
|
|
|
|
}
|
|
} |