mark for pull
This commit is contained in:
36
ym-process-inspection/pom.xml
Normal file
36
ym-process-inspection/pom.xml
Normal file
@@ -0,0 +1,36 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<parent>
|
||||
<artifactId>ym-pass</artifactId>
|
||||
<groupId>com.cnbm</groupId>
|
||||
<version>1.0-SNAPSHOT</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<artifactId>ym-process-inspection</artifactId>
|
||||
|
||||
<properties>
|
||||
<maven.compiler.source>8</maven.compiler.source>
|
||||
<maven.compiler.target>8</maven.compiler.target>
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>com.cnbm</groupId>
|
||||
<artifactId>ym-influx</artifactId>
|
||||
<version>1.0-SNAPSHOT</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.cnbm</groupId>
|
||||
<artifactId>ym-baisc</artifactId>
|
||||
<version>1.0-SNAPSHOT</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.cnbm</groupId>
|
||||
<artifactId>ym-common</artifactId>
|
||||
<version>1.0-SNAPSHOT</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</project>
|
||||
@@ -0,0 +1,261 @@
|
||||
package com.cnbm.processInspection.controlCoefficientConstant;
|
||||
|
||||
/**
|
||||
* @Desc: " "x bar - R" 控制系数 "
|
||||
* @Author: caixiang
|
||||
* @DATE: 2022/6/30 10:44
|
||||
*/
|
||||
public class XBarRCoefficients {
|
||||
public static Double getA2(Integer sampleSize){
|
||||
if(sampleSize<=1){
|
||||
return null;
|
||||
}
|
||||
Double res = null;
|
||||
switch(sampleSize){
|
||||
//P92
|
||||
case 2:
|
||||
res = new Double(1.880);
|
||||
break;
|
||||
case 3:
|
||||
res = new Double(1.023);
|
||||
break;
|
||||
case 4:
|
||||
res = new Double(0.729);
|
||||
break;
|
||||
case 5:
|
||||
res = new Double(0.577);
|
||||
break;
|
||||
case 6:
|
||||
res = new Double(0.483);
|
||||
break;
|
||||
case 7:
|
||||
res = new Double(0.419);
|
||||
break;
|
||||
case 8:
|
||||
res = new Double(0.373);
|
||||
break;
|
||||
case 9:
|
||||
res = new Double(0.337);
|
||||
break;
|
||||
case 10:
|
||||
res = new Double(0.308);
|
||||
break;
|
||||
case 11:
|
||||
res = new Double(0.285);
|
||||
break;
|
||||
case 12:
|
||||
res = new Double(0.266);
|
||||
break;
|
||||
case 13:
|
||||
res = new Double(0.249);
|
||||
break;
|
||||
case 14:
|
||||
res = new Double(0.235);
|
||||
break;
|
||||
case 15:
|
||||
res = new Double(0.223);
|
||||
break;
|
||||
case 16:
|
||||
res = new Double(0.212);
|
||||
break;
|
||||
case 17:
|
||||
res = new Double(0.203);
|
||||
break;
|
||||
case 18:
|
||||
res = new Double(0.194);
|
||||
break;
|
||||
case 19:
|
||||
res = new Double(0.187);
|
||||
break;
|
||||
case 20:
|
||||
res = new Double(0.180);
|
||||
break;
|
||||
case 21:
|
||||
res = new Double(0.173);
|
||||
break;
|
||||
case 22:
|
||||
res = new Double(0.167);
|
||||
break;
|
||||
case 23:
|
||||
res = new Double(0.162);
|
||||
break;
|
||||
case 24:
|
||||
res = new Double(0.157);
|
||||
break;
|
||||
//大于等于25 都是用0.153
|
||||
default :
|
||||
res = new Double(0.153);
|
||||
break;
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
||||
public static Double getD3(Integer sampleSize){
|
||||
if(sampleSize<=1){
|
||||
return null;
|
||||
}
|
||||
Double res = null;
|
||||
switch(sampleSize){
|
||||
//P92
|
||||
case 2:
|
||||
res = new Double(0);
|
||||
break;
|
||||
case 3:
|
||||
res = new Double(0);
|
||||
break;
|
||||
case 4:
|
||||
res = new Double(0);
|
||||
break;
|
||||
case 5:
|
||||
res = new Double(0);
|
||||
break;
|
||||
case 6:
|
||||
res = new Double(0);
|
||||
break;
|
||||
case 7:
|
||||
res = new Double(0.076);
|
||||
break;
|
||||
case 8:
|
||||
res = new Double(0.136);
|
||||
break;
|
||||
case 9:
|
||||
res = new Double(0.184);
|
||||
break;
|
||||
case 10:
|
||||
res = new Double(0.223);
|
||||
break;
|
||||
case 11:
|
||||
res = new Double(0.256);
|
||||
break;
|
||||
case 12:
|
||||
res = new Double(0.283);
|
||||
break;
|
||||
case 13:
|
||||
res = new Double(0.307);
|
||||
break;
|
||||
case 14:
|
||||
res = new Double(0.328);
|
||||
break;
|
||||
case 15:
|
||||
res = new Double(0.347);
|
||||
break;
|
||||
case 16:
|
||||
res = new Double(0.363);
|
||||
break;
|
||||
case 17:
|
||||
res = new Double(0.378);
|
||||
break;
|
||||
case 18:
|
||||
res = new Double(0.391);
|
||||
break;
|
||||
case 19:
|
||||
res = new Double(0.403);
|
||||
break;
|
||||
case 20:
|
||||
res = new Double(0.415);
|
||||
break;
|
||||
case 21:
|
||||
res = new Double(0.425);
|
||||
break;
|
||||
case 22:
|
||||
res = new Double(0.434);
|
||||
break;
|
||||
case 23:
|
||||
res = new Double(0.443);
|
||||
break;
|
||||
case 24:
|
||||
res = new Double(0.451);
|
||||
break;
|
||||
//大于等于25 都是用0.459
|
||||
default :
|
||||
res = new Double(0.459);
|
||||
break;
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
||||
public static Double getD4(Integer sampleSize){
|
||||
if(sampleSize<=1){
|
||||
return null;
|
||||
}
|
||||
Double res = null;
|
||||
switch(sampleSize){
|
||||
//P92
|
||||
case 2:
|
||||
res = new Double(3.267);
|
||||
break;
|
||||
case 3:
|
||||
res = new Double(2.574);
|
||||
break;
|
||||
case 4:
|
||||
res = new Double(2.282);
|
||||
break;
|
||||
case 5:
|
||||
res = new Double(2.114);
|
||||
break;
|
||||
case 6:
|
||||
res = new Double(2.004);
|
||||
break;
|
||||
case 7:
|
||||
res = new Double(1.924);
|
||||
break;
|
||||
case 8:
|
||||
res = new Double(1.864);
|
||||
break;
|
||||
case 9:
|
||||
res = new Double(1.816);
|
||||
break;
|
||||
case 10:
|
||||
res = new Double(1.777);
|
||||
break;
|
||||
case 11:
|
||||
res = new Double(1.744);
|
||||
break;
|
||||
case 12:
|
||||
res = new Double(1.717);
|
||||
break;
|
||||
case 13:
|
||||
res = new Double(1.693);
|
||||
break;
|
||||
case 14:
|
||||
res = new Double(1.672);
|
||||
break;
|
||||
case 15:
|
||||
res = new Double(1.653);
|
||||
break;
|
||||
case 16:
|
||||
res = new Double(1.637);
|
||||
break;
|
||||
case 17:
|
||||
res = new Double(1.622);
|
||||
break;
|
||||
case 18:
|
||||
res = new Double(1.608);
|
||||
break;
|
||||
case 19:
|
||||
res = new Double(1.597);
|
||||
break;
|
||||
case 20:
|
||||
res = new Double(1.585);
|
||||
break;
|
||||
case 21:
|
||||
res = new Double(1.575);
|
||||
break;
|
||||
case 22:
|
||||
res = new Double(1.566);
|
||||
break;
|
||||
case 23:
|
||||
res = new Double(1.557);
|
||||
break;
|
||||
case 24:
|
||||
res = new Double(1.548);
|
||||
break;
|
||||
//大于等于25 都是用1.541
|
||||
default :
|
||||
res = new Double(1.541);
|
||||
break;
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,258 @@
|
||||
package com.cnbm.processInspection.controlCoefficientConstant;
|
||||
|
||||
/**
|
||||
* 均值-标准差 控制图 常数系数
|
||||
* @Desc: " "x bar - s" 控制系数 "
|
||||
* @Author: caixiang
|
||||
* @DATE: 2022/6/30 10:44
|
||||
*/
|
||||
public class XBarSCoefficients {
|
||||
public static Double getAS(Integer sampleSize){
|
||||
if(sampleSize<=1){
|
||||
return null;
|
||||
}
|
||||
Double res = null;
|
||||
switch(sampleSize){
|
||||
case 2:
|
||||
res = new Double(2.659);
|
||||
break;
|
||||
case 3:
|
||||
res = new Double(1.954);
|
||||
break;
|
||||
case 4:
|
||||
res = new Double(1.628);
|
||||
break;
|
||||
case 5:
|
||||
res = new Double(1.427);
|
||||
break;
|
||||
case 6:
|
||||
res = new Double(1.287);
|
||||
break;
|
||||
case 7:
|
||||
res = new Double(1.182);
|
||||
break;
|
||||
case 8:
|
||||
res = new Double(1.099);
|
||||
break;
|
||||
case 9:
|
||||
res = new Double(1.032);
|
||||
break;
|
||||
case 10:
|
||||
res = new Double(0.975);
|
||||
break;
|
||||
case 11:
|
||||
res = new Double(0.972);
|
||||
break;
|
||||
case 12:
|
||||
res = new Double(0.866);
|
||||
break;
|
||||
case 13:
|
||||
res = new Double(0.850);
|
||||
break;
|
||||
case 14:
|
||||
res = new Double(0.817);
|
||||
break;
|
||||
case 15:
|
||||
res = new Double(0.789);
|
||||
break;
|
||||
case 16:
|
||||
res = new Double(0.763);
|
||||
break;
|
||||
case 17:
|
||||
res = new Double(0.739);
|
||||
break;
|
||||
case 18:
|
||||
res = new Double(0.718);
|
||||
break;
|
||||
case 19:
|
||||
res = new Double(0.698);
|
||||
break;
|
||||
case 20:
|
||||
res = new Double(0.680);
|
||||
break;
|
||||
case 21:
|
||||
res = new Double(0.663);
|
||||
break;
|
||||
case 22:
|
||||
res = new Double(0.647);
|
||||
break;
|
||||
case 23:
|
||||
res = new Double(0.633);
|
||||
break;
|
||||
case 24:
|
||||
res = new Double(0.619);
|
||||
break;
|
||||
//大于等于25 都是用0.606
|
||||
default :
|
||||
res = new Double(0.606);
|
||||
break;
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
||||
public static Double getBU(Integer sampleSize){
|
||||
if(sampleSize<=1){
|
||||
return null;
|
||||
}
|
||||
Double res = null;
|
||||
switch(sampleSize){
|
||||
case 2:
|
||||
res = new Double(3.267);
|
||||
break;
|
||||
case 3:
|
||||
res = new Double(2.568);
|
||||
break;
|
||||
case 4:
|
||||
res = new Double(2.266);
|
||||
break;
|
||||
case 5:
|
||||
res = new Double(2.089);
|
||||
break;
|
||||
case 6:
|
||||
res = new Double(1.970);
|
||||
break;
|
||||
case 7:
|
||||
res = new Double(1.882);
|
||||
break;
|
||||
case 8:
|
||||
res = new Double(1.815);
|
||||
break;
|
||||
case 9:
|
||||
res = new Double(1.761);
|
||||
break;
|
||||
case 10:
|
||||
res = new Double(1.716);
|
||||
break;
|
||||
case 11:
|
||||
res = new Double(1.679);
|
||||
break;
|
||||
case 12:
|
||||
res = new Double(1.646);
|
||||
break;
|
||||
case 13:
|
||||
res = new Double(1.618);
|
||||
break;
|
||||
case 14:
|
||||
res = new Double(1.594);
|
||||
break;
|
||||
case 15:
|
||||
res = new Double(1.572);
|
||||
break;
|
||||
case 16:
|
||||
res = new Double(1.552);
|
||||
break;
|
||||
case 17:
|
||||
res = new Double(1.534);
|
||||
break;
|
||||
case 18:
|
||||
res = new Double(1.518);
|
||||
break;
|
||||
case 19:
|
||||
res = new Double(1.503);
|
||||
break;
|
||||
case 20:
|
||||
res = new Double(1.490);
|
||||
break;
|
||||
case 21:
|
||||
res = new Double(1.477);
|
||||
break;
|
||||
case 22:
|
||||
res = new Double(1.466);
|
||||
break;
|
||||
case 23:
|
||||
res = new Double(1.455);
|
||||
break;
|
||||
case 24:
|
||||
res = new Double(1.445);
|
||||
break;
|
||||
//大于等于25 都是用1.435
|
||||
default :
|
||||
res = new Double(1.435);
|
||||
break;
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
||||
public static Double getBL(Integer sampleSize){
|
||||
if(sampleSize<=1){
|
||||
return null;
|
||||
}
|
||||
Double res = null;
|
||||
switch(sampleSize){
|
||||
case 2:
|
||||
res = new Double(0);
|
||||
break;
|
||||
case 3:
|
||||
res = new Double(0);
|
||||
break;
|
||||
case 4:
|
||||
res = new Double(0);
|
||||
break;
|
||||
case 5:
|
||||
res = new Double(0);
|
||||
break;
|
||||
case 6:
|
||||
res = new Double(0.030);
|
||||
break;
|
||||
case 7:
|
||||
res = new Double(0.118);
|
||||
break;
|
||||
case 8:
|
||||
res = new Double(0.185);
|
||||
break;
|
||||
case 9:
|
||||
res = new Double(0.239);
|
||||
break;
|
||||
case 10:
|
||||
res = new Double(0.284);
|
||||
break;
|
||||
case 11:
|
||||
res = new Double(0.321);
|
||||
break;
|
||||
case 12:
|
||||
res = new Double(0.354);
|
||||
break;
|
||||
case 13:
|
||||
res = new Double(0.382);
|
||||
break;
|
||||
case 14:
|
||||
res = new Double(0.406);
|
||||
break;
|
||||
case 15:
|
||||
res = new Double(0.428);
|
||||
break;
|
||||
case 16:
|
||||
res = new Double(0.448);
|
||||
break;
|
||||
case 17:
|
||||
res = new Double(0.466);
|
||||
break;
|
||||
case 18:
|
||||
res = new Double(0.482);
|
||||
break;
|
||||
case 19:
|
||||
res = new Double(0.497);
|
||||
break;
|
||||
case 20:
|
||||
res = new Double(0.510);
|
||||
break;
|
||||
case 21:
|
||||
res = new Double(0.523);
|
||||
break;
|
||||
case 22:
|
||||
res = new Double(0.534);
|
||||
break;
|
||||
case 23:
|
||||
res = new Double(0.545);
|
||||
break;
|
||||
case 24:
|
||||
res = new Double(0.555);
|
||||
break;
|
||||
//大于等于25 都是用0.565
|
||||
default :
|
||||
res = new Double(0.565);
|
||||
break;
|
||||
}
|
||||
return res;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,46 @@
|
||||
package com.cnbm.processInspection.graphAnalyzed;
|
||||
|
||||
import com.cnbm.processInspection.controlCoefficientConstant.XBarSCoefficients;
|
||||
|
||||
/**
|
||||
* @Desc: ""
|
||||
* @Author: caixiang
|
||||
* @DATE: 2022/7/20 14:26
|
||||
*
|
||||
* 步骤:
|
||||
* ① 先读mysql表,查询 product_features 表,先读到 sample_size(样本量)
|
||||
* ② 再依据 influx.argName == mysql.product_feature.name && 时间段 查询所有的 参数数据
|
||||
* ③ 拿到参数数据后,分组 整合成List<Point>,
|
||||
* 计算控制限
|
||||
* 计算 母体 的 \sigma 、 bar{x} 。。。
|
||||
* 计算CPK 、CPU 、CPL这些
|
||||
* ④ 如果配置了判读方案,还要 调用 StatisticalControlledTest Function 检验。
|
||||
* ⑤
|
||||
*/
|
||||
|
||||
public class MeanStandardDeviationGraph {
|
||||
private Double sbar;
|
||||
private Double xbarbar;
|
||||
private Double as;
|
||||
private Double bu;
|
||||
private Double bl;
|
||||
private Integer sampleSize;
|
||||
private String argName;
|
||||
|
||||
MeanStandardDeviationGraph(Integer sampleSize){
|
||||
this.sampleSize = sampleSize;
|
||||
this.as = XBarSCoefficients.getAS(sampleSize);
|
||||
this.bu = XBarSCoefficients.getBU(sampleSize);
|
||||
this.bl = XBarSCoefficients.getBU(sampleSize);
|
||||
}
|
||||
|
||||
/**
|
||||
* name : 初始化数据函数
|
||||
* desc : 从influxdb 里面读取数据,然后 加工处理成 我需要的
|
||||
* 步骤:
|
||||
* ①
|
||||
* */
|
||||
public void initialDate(){
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user