1
This commit is contained in:
@@ -107,4 +107,34 @@ namespace Tnb.QcMgr.Entities
|
||||
public float? clmr { get; set; }
|
||||
public float? lclmr { get; set; }
|
||||
}
|
||||
public class Pchart
|
||||
{
|
||||
public float? p { get; set; }
|
||||
public float? n { get; set; }
|
||||
public float? ucl { get; set; }
|
||||
public float? cl { get; set; }
|
||||
public float? lcl { get; set; }
|
||||
}
|
||||
public class Uchart
|
||||
{
|
||||
public float? u { get; set; }
|
||||
public float? n { get; set; }
|
||||
public float? ucl { get; set; }
|
||||
public float? cl { get; set; }
|
||||
public float? lcl { get; set; }
|
||||
}
|
||||
public class NPchart
|
||||
{
|
||||
public float? np { get; set; }
|
||||
public float? ucl { get; set; }
|
||||
public float? cl { get; set; }
|
||||
public float? lcl { get; set; }
|
||||
}
|
||||
public class Cchart
|
||||
{
|
||||
public float? c { get; set; }
|
||||
public float? ucl { get; set; }
|
||||
public float? cl { get; set; }
|
||||
public float? lcl { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,6 +11,7 @@ using JNPF.DependencyInjection;
|
||||
using JNPF.DynamicApiController;
|
||||
using JNPF.FriendlyException;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Spire.Xls.Core;
|
||||
using SqlSugar;
|
||||
using Tnb.QcMgr.Entities;
|
||||
using Tnb.QcMgr.Entities.Entity;
|
||||
@@ -255,6 +256,84 @@ namespace Tnb.QcMgr
|
||||
});
|
||||
return XMRchart;
|
||||
}
|
||||
if (QcSpcH.graphtype == "P图")
|
||||
{
|
||||
List<Pchart> pcharts = new List<Pchart>();
|
||||
foreach (var QcSpcD in QcSpcDs)
|
||||
{
|
||||
Pchart pchart = new Pchart();
|
||||
pchart.p = QcSpcD.defectivenum / QcSpcD.checknum;
|
||||
pchart.n = QcSpcD.checknum;
|
||||
|
||||
pcharts.Add(pchart);
|
||||
}
|
||||
var pAverage = (pcharts.Select(p => p.n * p.p).Sum()) / (pcharts.Select(p => p.n).Sum());
|
||||
var nAverage = pcharts.Select(p => p.n).Average();
|
||||
pcharts.ForEach(p =>
|
||||
{
|
||||
p.cl = pAverage;
|
||||
p.ucl = pAverage + (float)(3 * Math.Sqrt((double)(pAverage * (1 - pAverage))!) / Math.Sqrt((double)nAverage!));
|
||||
p.lcl = pAverage - (float)(3 * Math.Sqrt((double)(pAverage * (1 - pAverage))!) / Math.Sqrt((double)nAverage!)) < 0 ? 0 : pAverage - (float)(3 * Math.Sqrt((double)(pAverage * (1 - pAverage))!) / Math.Sqrt((double)nAverage!));
|
||||
});
|
||||
return pcharts;
|
||||
}
|
||||
if (QcSpcH.graphtype == "U图")
|
||||
{
|
||||
List<Uchart> ucharts = new List<Uchart>();
|
||||
foreach (var QcSpcD in QcSpcDs)
|
||||
{
|
||||
Uchart uchart = new Uchart();
|
||||
uchart.u = QcSpcD.defectivenum / QcSpcD.checknum;
|
||||
uchart.n = QcSpcD.checknum;
|
||||
ucharts.Add(uchart);
|
||||
}
|
||||
var uAverage = (ucharts.Select(p => p.u).Sum()) / (ucharts.Count());
|
||||
var nAverage = ucharts.Select(p => p.n).Average();
|
||||
ucharts.ForEach(p =>
|
||||
{
|
||||
p.cl = uAverage;
|
||||
p.ucl = uAverage + (float)(3 * Math.Sqrt((double)(uAverage / nAverage)!));
|
||||
p.lcl = uAverage - (float)(3 * Math.Sqrt((double)(uAverage / nAverage)!)) < 0 ? 0 : uAverage - (float)(3 * Math.Sqrt((double)(uAverage / nAverage)!));
|
||||
});
|
||||
return ucharts;
|
||||
}
|
||||
if (QcSpcH.graphtype == "nP图")
|
||||
{
|
||||
List<NPchart> npcharts = new List<NPchart>();
|
||||
foreach (var QcSpcD in QcSpcDs)
|
||||
{
|
||||
NPchart npchart = new NPchart();
|
||||
npchart.np = QcSpcD.defectivenum;
|
||||
npcharts.Add(npchart);
|
||||
}
|
||||
var npAverage = (npcharts.Select(p => p.np).Sum()) / (npcharts.Count());
|
||||
var pAverage = npcharts.Select(p => p.np).Sum() / (npcharts.Count() * QcSpcH.subcapacity);
|
||||
npcharts.ForEach(p =>
|
||||
{
|
||||
p.cl = npAverage;
|
||||
p.ucl = npAverage + (float)(3 * Math.Sqrt((double)(npAverage * (1 - pAverage))!));
|
||||
p.lcl = npAverage - (float)(3 * Math.Sqrt((double)(npAverage * (1 - pAverage))!)) < 0 ? 0 : npAverage - (float)(3 * Math.Sqrt((double)(npAverage * (1 - pAverage))!));
|
||||
});
|
||||
return npcharts;
|
||||
}
|
||||
if (QcSpcH.graphtype == "C图")
|
||||
{
|
||||
List<Cchart> ccharts = new List<Cchart>();
|
||||
foreach (var QcSpcD in QcSpcDs)
|
||||
{
|
||||
Cchart cchart = new Cchart();
|
||||
cchart.c = QcSpcD.defectivenum;
|
||||
ccharts.Add(cchart);
|
||||
}
|
||||
var cAverage = (ccharts.Select(p => p.c).Sum()) / (ccharts.Count());
|
||||
ccharts.ForEach(p =>
|
||||
{
|
||||
p.cl = cAverage;
|
||||
p.ucl = cAverage + (float)(3 * Math.Sqrt((double)cAverage!));
|
||||
p.lcl = cAverage - (float)(3 * Math.Sqrt((double)cAverage!)) < 0 ? 0 : cAverage - (float)(3 * Math.Sqrt((double)cAverage!));
|
||||
});
|
||||
return ccharts;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
//标准差计算
|
||||
|
||||
Reference in New Issue
Block a user