修改判读方案算法

This commit is contained in:
caixiang
2022-11-29 11:11:07 +08:00
parent a2d91083f2
commit 650e9a2324
9 changed files with 872 additions and 316 deletions

View File

@@ -21,6 +21,7 @@ import com.cnbm.processInspection.graphAnalyzed.forCount.u.UGraph;
import com.cnbm.processInspection.graphAnalyzed.forMeterage.mr.MeanRGraph;
import com.cnbm.processInspection.graphAnalyzed.forMeterage.ms.MeanStandardDeviationGraph;
import com.cnbm.processInspection.graphAnalyzed.forMeterage.xmr.XMRGraph;
import com.cnbm.qualityPlanning.entity.ControlLimitDetail;
import com.influxdb.query.FluxRecord;
import com.influxdb.query.FluxTable;
import org.slf4j.Logger;
@@ -48,11 +49,11 @@ public class ProcessInspectionController {
@PostMapping("/XbarSGraphTest")
public R<XbarSGraphData> xbarSGraphTest() throws Exception {
ProductFeatures productFeatures = new ProductFeatures();
productFeatures.setSl(new Float(5));
productFeatures.setUsl(new Float(10));
productFeatures.setLsl(new Float(1));
productFeatures.setSl(new Float(65));
productFeatures.setUsl(new Float(66));
productFeatures.setLsl(new Float(69));
productFeatures.setName("LostDays");
productFeatures.setName("LTWeight");
productFeatures.setSampleSize(10);
MeanStandardDeviationGraph meanStandardDeviationGraph = new MeanStandardDeviationGraph(productFeatures);
//判读方案
@@ -68,12 +69,12 @@ public class ProcessInspectionController {
meanStandardDeviationGraph.initialDate(queryDataParam);
XbarSGraphData xbarSGraphData = new XbarSGraphData(
meanStandardDeviationGraph.getMsdGraphEntity(),
meanStandardDeviationGraph.getXbarCL(),
meanStandardDeviationGraph.getSCL(),
meanStandardDeviationGraph.getSpecificationLimit(),
meanStandardDeviationGraph.getProcessCapacity(),
new StandardDiviation(meanStandardDeviationGraph.getXigma(),meanStandardDeviationGraph.getTotalXigma())
meanStandardDeviationGraph.getMsdGraphEntity()==null?null:meanStandardDeviationGraph.getMsdGraphEntity(),
meanStandardDeviationGraph.getXbarCL()==null?null:meanStandardDeviationGraph.getXbarCL(),
meanStandardDeviationGraph.getSCL()==null?null:meanStandardDeviationGraph.getSCL(),
meanStandardDeviationGraph.getSpecificationLimit()==null?null:meanStandardDeviationGraph.getSpecificationLimit(),
meanStandardDeviationGraph.getProcessCapacity()==null?null:meanStandardDeviationGraph.getProcessCapacity(),
(meanStandardDeviationGraph.getXigma()==null||meanStandardDeviationGraph.getTotalXigma()==null)?null:new StandardDiviation(meanStandardDeviationGraph.getXigma(),meanStandardDeviationGraph.getTotalXigma())
);
return R.ok("成功",xbarSGraphData);
@@ -83,11 +84,11 @@ public class ProcessInspectionController {
public R<XbarRGraphData> XbarRGraphTest() throws Exception {
//todo SL/USL/LSL 和 sampleSize 需要从外面传过来。
ProductFeatures productFeatures = new ProductFeatures();
productFeatures.setSl(new Float(5));
productFeatures.setUsl(new Float(10));
productFeatures.setLsl(new Float(1));
productFeatures.setSl(new Float(65));
productFeatures.setUsl(new Float(66));
productFeatures.setLsl(new Float(69));
productFeatures.setName("LostDays");
productFeatures.setName("LTWeight");
productFeatures.setSampleSize(10);
MeanRGraph meanRGraph = new MeanRGraph(productFeatures);
//判读方案
@@ -103,12 +104,16 @@ public class ProcessInspectionController {
meanRGraph.initialDate(queryDataParam);
XbarRGraphData xbarSGraphData = new XbarRGraphData(
meanRGraph.getMrGraphEntity(),
meanRGraph.getXbarCL(),
meanRGraph.getRCL(),
meanRGraph.getSpecificationLimit(),
meanRGraph.getProcessCapacity(),
new StandardDiviation(meanRGraph.getXigma(),meanRGraph.getTotalXigma())
meanRGraph.getMrGraphEntity()==null?null:meanRGraph.getMrGraphEntity(),
meanRGraph.getXbarCL()==null?null:new ControlLimitDetail(meanRGraph.getXbarCL().getUCL(), meanRGraph.getXbarCL().getCL(), meanRGraph.getXbarCL().getLCL()),
meanRGraph.getRCL()==null?null:new ControlLimitDetail(meanRGraph.getRCL().getUCL(), meanRGraph.getRCL().getCL(), meanRGraph.getRCL().getLCL()),
meanRGraph.getSpecificationLimit()==null?null:meanRGraph.getSpecificationLimit(),
meanRGraph.getProcessCapacity()==null?null:meanRGraph.getProcessCapacity(),
(meanRGraph.getXigma()==null||meanRGraph.getTotalXigma()==null)?null:new StandardDiviation(meanRGraph.getXigma(),meanRGraph.getTotalXigma())
);
return R.ok("成功",xbarSGraphData);
@@ -116,11 +121,11 @@ public class ProcessInspectionController {
@PostMapping("/XMRGraphTest")
public R<XMRGraphData> XMRGraphTest() throws Exception {
ProductFeatures productFeatures = new ProductFeatures();
productFeatures.setSl(new Float(5));
productFeatures.setUsl(new Float(10));
productFeatures.setLsl(new Float(1));
productFeatures.setSl(new Float(65));
productFeatures.setUsl(new Float(66));
productFeatures.setLsl(new Float(69));
productFeatures.setName("LostDays");
productFeatures.setName("LTWeight");
productFeatures.setSampleSize(1);
XMRGraph xmrGraph = new XMRGraph(productFeatures);
//判读方案
@@ -136,12 +141,13 @@ public class ProcessInspectionController {
xmrGraph.initialDate(queryDataParam);
XMRGraphData xmrGraphData = new XMRGraphData(
xmrGraph.getXmrGraphEntity(),
xmrGraph.getXCL(),
xmrGraph.getRSCL(),
xmrGraph.getSpecificationLimit(),
xmrGraph.getProcessCapacity(),
new StandardDiviation(xmrGraph.getXigma(),xmrGraph.getTotalXigma())
xmrGraph.getXmrGraphEntity()==null?null:xmrGraph.getXmrGraphEntity(),
xmrGraph.getXCL()==null?null:xmrGraph.getXCL(),
xmrGraph.getRSCL()==null?null:xmrGraph.getRSCL(),
xmrGraph.getSpecificationLimit()==null?null:xmrGraph.getSpecificationLimit(),
xmrGraph.getProcessCapacity()==null?null:xmrGraph.getProcessCapacity(),
(xmrGraph.getXigma()==null||xmrGraph.getTotalXigma()==null)?null:new StandardDiviation(xmrGraph.getXigma(),xmrGraph.getTotalXigma())
);
return R.ok("成功",xmrGraphData);
@@ -188,11 +194,11 @@ public class ProcessInspectionController {
@PostMapping("/NPGraphTest")
public R<NPGraphData> NPGraphTest() throws Exception {
ProductFeatures productFeatures = new ProductFeatures();
productFeatures.setSl(new Float(5));
productFeatures.setUsl(new Float(10));
productFeatures.setLsl(new Float(1));
productFeatures.setSl(new Float(65));
productFeatures.setUsl(new Float(66));
productFeatures.setLsl(new Float(69));
productFeatures.setName("LostDays");
productFeatures.setName("LTWeight");
NPGraph npGraph = new NPGraph(productFeatures);
@@ -203,9 +209,9 @@ public class ProcessInspectionController {
npGraph.initialDate(queryDataParam);
NPGraphData npGraph1 = new NPGraphData(
npGraph.getList(),
npGraph.getSpecificationLimit(),
npGraph.getArgName()
npGraph.getList()==null?null:npGraph.getList(),
npGraph.getSpecificationLimit()==null?null:npGraph.getSpecificationLimit(),
npGraph.getArgName()==null?null:npGraph.getArgName()
);
return R.ok("成功",npGraph1);
@@ -213,11 +219,11 @@ public class ProcessInspectionController {
@PostMapping("/PGraphTest")
public R<PGraphData> PGraphTest() throws Exception {
ProductFeatures productFeatures = new ProductFeatures();
productFeatures.setSl(new Float(5));
productFeatures.setUsl(new Float(10));
productFeatures.setLsl(new Float(1));
productFeatures.setSl(new Float(65));
productFeatures.setUsl(new Float(66));
productFeatures.setLsl(new Float(69));
productFeatures.setName("LostDays");
productFeatures.setName("LTWeight");
PGraph pGraph = new PGraph(productFeatures);
@@ -228,9 +234,9 @@ public class ProcessInspectionController {
pGraph.initialDate(queryDataParam);
PGraphData npGraph1 = new PGraphData(
pGraph.getList(),
pGraph.getSpecificationLimit(),
pGraph.getArgName()
pGraph.getList()==null?null:pGraph.getList(),
pGraph.getSpecificationLimit()==null?null:pGraph.getSpecificationLimit(),
pGraph.getArgName()==null?null:pGraph.getArgName()
);
return R.ok("成功",npGraph1);
@@ -238,11 +244,11 @@ public class ProcessInspectionController {
@PostMapping("/CGraphTest")
public R<CGraphData> CGraphTest() throws Exception {
ProductFeatures productFeatures = new ProductFeatures();
productFeatures.setSl(new Float(5));
productFeatures.setUsl(new Float(10));
productFeatures.setLsl(new Float(1));
productFeatures.setSl(new Float(65));
productFeatures.setUsl(new Float(66));
productFeatures.setLsl(new Float(69));
productFeatures.setName("LostDays");
productFeatures.setName("LTWeight");
CGraph cGraph = new CGraph(productFeatures);
@@ -255,9 +261,9 @@ public class ProcessInspectionController {
cGraph.initialDate(queryDataParam);
CGraphData npGraph1 = new CGraphData(
cGraph.getList(),
cGraph.getSpecificationLimit(),
cGraph.getArgName()
cGraph.getList()==null?null:cGraph.getList(),
cGraph.getSpecificationLimit()==null?null:cGraph.getSpecificationLimit(),
cGraph.getArgName()==null?null:cGraph.getArgName()
);
return R.ok("成功",npGraph1);
@@ -266,11 +272,11 @@ public class ProcessInspectionController {
@PostMapping("/UGraphTest")
public R<UGraphData> UGraphTest() throws Exception {
ProductFeatures productFeatures = new ProductFeatures();
productFeatures.setSl(new Float(5));
productFeatures.setUsl(new Float(10));
productFeatures.setLsl(new Float(1));
productFeatures.setSl(new Float(65));
productFeatures.setUsl(new Float(66));
productFeatures.setLsl(new Float(69));
productFeatures.setName("LostDays");
productFeatures.setName("LTWeight");
UGraph uGraph = new UGraph(productFeatures);
@@ -281,9 +287,9 @@ public class ProcessInspectionController {
uGraph.initialDate(queryDataParam);
UGraphData npGraph1 = new UGraphData(
uGraph.getList(),
uGraph.getSpecificationLimit(),
uGraph.getArgName()
uGraph.getList()==null?null:uGraph.getList(),
uGraph.getSpecificationLimit()==null?null:uGraph.getSpecificationLimit(),
uGraph.getArgName()==null?null:uGraph.getArgName()
);
return R.ok("成功",npGraph1);
@@ -321,12 +327,12 @@ public class ProcessInspectionController {
meanStandardDeviationGraph.initialDate(queryDataParam);
XbarSGraphData xbarSGraphData = new XbarSGraphData(
meanStandardDeviationGraph.getMsdGraphEntity(),
meanStandardDeviationGraph.getXbarCL(),
meanStandardDeviationGraph.getSCL(),
meanStandardDeviationGraph.getSpecificationLimit(),
meanStandardDeviationGraph.getProcessCapacity(),
new StandardDiviation(meanStandardDeviationGraph.getXigma(),meanStandardDeviationGraph.getTotalXigma())
meanStandardDeviationGraph.getMsdGraphEntity()==null?null:meanStandardDeviationGraph.getMsdGraphEntity(),
meanStandardDeviationGraph.getXbarCL()==null?null:meanStandardDeviationGraph.getXbarCL(),
meanStandardDeviationGraph.getSCL()==null?null:meanStandardDeviationGraph.getSCL(),
meanStandardDeviationGraph.getSpecificationLimit()==null?null:meanStandardDeviationGraph.getSpecificationLimit(),
meanStandardDeviationGraph.getProcessCapacity()==null?null:meanStandardDeviationGraph.getProcessCapacity(),
(meanStandardDeviationGraph.getXigma()==null||meanStandardDeviationGraph.getTotalXigma()==null)?null:new StandardDiviation(meanStandardDeviationGraph.getXigma(),meanStandardDeviationGraph.getTotalXigma())
);
return R.ok("成功",xbarSGraphData);
@@ -348,13 +354,18 @@ public class ProcessInspectionController {
queryDataParam.setRange(new Range(graphArg.getBegin().toInstant(), graphArg.getEnd().toInstant()));
meanRGraph.initialDate(queryDataParam);
XbarRGraphData xbarSGraphData = new XbarRGraphData(
meanRGraph.getMrGraphEntity(),
meanRGraph.getXbarCL(),
meanRGraph.getRCL(),
meanRGraph.getSpecificationLimit(),
meanRGraph.getProcessCapacity(),
new StandardDiviation(meanRGraph.getXigma(),meanRGraph.getTotalXigma())
meanRGraph.getMrGraphEntity()==null?null:meanRGraph.getMrGraphEntity(),
meanRGraph.getXbarCL()==null?null:new ControlLimitDetail(meanRGraph.getXbarCL().getUCL(), meanRGraph.getXbarCL().getCL(), meanRGraph.getXbarCL().getLCL()),
meanRGraph.getRCL()==null?null:new ControlLimitDetail(meanRGraph.getRCL().getUCL(), meanRGraph.getRCL().getCL(), meanRGraph.getRCL().getLCL()),
meanRGraph.getSpecificationLimit()==null?null:meanRGraph.getSpecificationLimit(),
meanRGraph.getProcessCapacity()==null?null:meanRGraph.getProcessCapacity(),
(meanRGraph.getXigma()==null||meanRGraph.getTotalXigma()==null)?null:new StandardDiviation(meanRGraph.getXigma(),meanRGraph.getTotalXigma())
);
return R.ok("成功",xbarSGraphData);
@@ -377,12 +388,13 @@ public class ProcessInspectionController {
xmrGraph.initialDate(queryDataParam);
XMRGraphData xmrGraphData = new XMRGraphData(
xmrGraph.getXmrGraphEntity(),
xmrGraph.getXCL(),
xmrGraph.getRSCL(),
xmrGraph.getSpecificationLimit(),
xmrGraph.getProcessCapacity(),
new StandardDiviation(xmrGraph.getXigma(),xmrGraph.getTotalXigma())
xmrGraph.getXmrGraphEntity()==null?null:xmrGraph.getXmrGraphEntity(),
xmrGraph.getXCL()==null?null:xmrGraph.getXCL(),
xmrGraph.getRSCL()==null?null:xmrGraph.getRSCL(),
xmrGraph.getSpecificationLimit()==null?null:xmrGraph.getSpecificationLimit(),
xmrGraph.getProcessCapacity()==null?null:xmrGraph.getProcessCapacity(),
(xmrGraph.getXigma()==null||xmrGraph.getTotalXigma()==null)?null:new StandardDiviation(xmrGraph.getXigma(),xmrGraph.getTotalXigma())
);
return R.ok("成功",xmrGraphData);
@@ -402,9 +414,9 @@ public class ProcessInspectionController {
npGraph.initialDate(queryDataParam);
NPGraphData npGraph1 = new NPGraphData(
npGraph.getList(),
npGraph.getSpecificationLimit(),
npGraph.getArgName()
npGraph.getList()==null?null:npGraph.getList(),
npGraph.getSpecificationLimit()==null?null:npGraph.getSpecificationLimit(),
npGraph.getArgName()==null?null:npGraph.getArgName()
);
return R.ok("成功",npGraph1);
}
@@ -423,9 +435,9 @@ public class ProcessInspectionController {
pGraph.initialDate(queryDataParam);
PGraphData npGraph1 = new PGraphData(
pGraph.getList(),
pGraph.getSpecificationLimit(),
pGraph.getArgName()
pGraph.getList()==null?null:pGraph.getList(),
pGraph.getSpecificationLimit()==null?null:pGraph.getSpecificationLimit(),
pGraph.getArgName()==null?null:pGraph.getArgName()
);
return R.ok("成功",npGraph1);
}
@@ -443,9 +455,9 @@ public class ProcessInspectionController {
cGraph.initialDate(queryDataParam);
CGraphData npGraph1 = new CGraphData(
cGraph.getList(),
cGraph.getSpecificationLimit(),
cGraph.getArgName()
cGraph.getList()==null?null:cGraph.getList(),
cGraph.getSpecificationLimit()==null?null:cGraph.getSpecificationLimit(),
cGraph.getArgName()==null?null:cGraph.getArgName()
);
return R.ok("成功",npGraph1);
}
@@ -464,9 +476,9 @@ public class ProcessInspectionController {
uGraph.initialDate(queryDataParam);
UGraphData uGraphData = new UGraphData(
uGraph.getList(),
uGraph.getSpecificationLimit(),
uGraph.getArgName()
uGraph.getList()==null?null:uGraph.getList(),
uGraph.getSpecificationLimit()==null?null:uGraph.getSpecificationLimit(),
uGraph.getArgName()==null?null:uGraph.getArgName()
);
return R.ok("成功",uGraphData);
}

View File

@@ -2,13 +2,15 @@ package com.cnbm.processInspection.dto;
import com.cnbm.common.spc.math.StandardDiviation;
import com.cnbm.processInspection.graphAnalyzed.forMeterage.mr.MRGraphEntity;
import com.cnbm.qualityPlanning.entity.ControlLimit;
import com.cnbm.qualityPlanning.entity.ProcessCapability;
import com.cnbm.qualityPlanning.entity.SpecificationLimit;
import com.cnbm.qualityPlanning.entity.*;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
import java.util.Stack;
/**
* @Desc: ""
* @Author: caixiang
@@ -20,9 +22,11 @@ public class XbarRGraphData {
@ApiModelProperty(value = "控制图list数据")
private MRGraphEntity mrGraphEntity;
@ApiModelProperty(value = "xbar控制图 控制限")
private ControlLimit XBarCL;
private ControlLimitDetail XBarCL;
@ApiModelProperty(value = "R控制图 控制限")
private ControlLimit RCL;
private ControlLimitDetail RCL;
@ApiModelProperty(value = "工艺规格限")
private SpecificationLimit SL;
@@ -34,12 +38,14 @@ public class XbarRGraphData {
private StandardDiviation standardDiviation;
public XbarRGraphData(MRGraphEntity mrGraphEntity, ControlLimit xBarCL, ControlLimit rCL, SpecificationLimit sl, ProcessCapability processCapability, StandardDiviation standardDiviation){
public XbarRGraphData(MRGraphEntity mrGraphEntity, ControlLimitDetail xBarCLDetail , ControlLimitDetail rCLDetail, SpecificationLimit sl, ProcessCapability processCapability, StandardDiviation standardDiviation){
this.mrGraphEntity = mrGraphEntity;
this.XBarCL = xBarCL;
this.RCL = rCL;
this.XBarCL = xBarCLDetail;
this.RCL = rCLDetail;
this.SL = sl;
this.processCapability = processCapability;
this.standardDiviation = standardDiviation;
}
}

View File

@@ -107,6 +107,9 @@ public class MeanRGraph {
queryDataParam.setTag(new Tag("argName",argName));
List<FluxTable> query = InfluxClient.Client.query(queryDataParam);
if(query.size() == 0){
return;
}
//1. 先从fluxdb 里面提取原始数据
List<Double> originData = new ArrayList<>();
for (FluxTable fluxTable : query) {
@@ -217,6 +220,9 @@ public class MeanRGraph {
* 注意:此函数 要在 initialDate()函数执行之后
* */
public ControlLimit getXbarCL(){
if(this.mrGraphEntity == null){
return null;
}
return new ControlLimit(
(this.mrGraphEntity.getXbarbar() + a2*this.mrGraphEntity.getRbar()),
this.mrGraphEntity.getXbarbar(),
@@ -229,6 +235,9 @@ public class MeanRGraph {
* 注意:此函数 要在 initialDate()函数执行之后
* */
public ControlLimit getRCL(){
if(this.mrGraphEntity==null){
return null;
}
return new ControlLimit(
( d4 * this.mrGraphEntity.getRbar() ) ,
this.mrGraphEntity.getRbar() ,
@@ -241,6 +250,10 @@ public class MeanRGraph {
* 注意:此函数 要在 initialDate()函数执行之后
* */
public ProcessCapability getProcessCapacity(){
if(this.miu==null || this.xigma==null || this.specificationLimit==null){
return null;
}
SpecificationLimit sp = this.specificationLimit;
List<String> warming = new ArrayList<>();
Float usl = sp.getUSL();