This commit is contained in:
qianjiawei
2023-08-28 17:27:55 +08:00
parent 1b71afefce
commit 1c372c6d78
2 changed files with 109 additions and 0 deletions

View File

@@ -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; }
}
}

View File

@@ -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;
}
//标准差计算