1
This commit is contained in:
@@ -107,4 +107,34 @@ namespace Tnb.QcMgr.Entities
|
|||||||
public float? clmr { get; set; }
|
public float? clmr { get; set; }
|
||||||
public float? lclmr { 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.DynamicApiController;
|
||||||
using JNPF.FriendlyException;
|
using JNPF.FriendlyException;
|
||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
|
using Spire.Xls.Core;
|
||||||
using SqlSugar;
|
using SqlSugar;
|
||||||
using Tnb.QcMgr.Entities;
|
using Tnb.QcMgr.Entities;
|
||||||
using Tnb.QcMgr.Entities.Entity;
|
using Tnb.QcMgr.Entities.Entity;
|
||||||
@@ -255,6 +256,84 @@ namespace Tnb.QcMgr
|
|||||||
});
|
});
|
||||||
return XMRchart;
|
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;
|
return null;
|
||||||
}
|
}
|
||||||
//标准差计算
|
//标准差计算
|
||||||
|
|||||||
Reference in New Issue
Block a user