|
|
|
|
@@ -1,10 +1,7 @@
|
|
|
|
|
package com.cnbm.qualityPlanning.common;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import com.cnbm.qualityPlanning.entity.ControlLimit;
|
|
|
|
|
import com.cnbm.qualityPlanning.entity.ControlLimitDetail;
|
|
|
|
|
import com.cnbm.qualityPlanning.entity.Point;
|
|
|
|
|
import com.cnbm.qualityPlanning.entity.XbarSPoint;
|
|
|
|
|
import com.cnbm.qualityPlanning.entity.*;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import java.util.*;
|
|
|
|
|
@@ -66,28 +63,51 @@ public class StatisticalControlledTest {
|
|
|
|
|
}
|
|
|
|
|
public static List<Point> createData2(){
|
|
|
|
|
XbarSPoint point = new XbarSPoint(1, new Double(2.5));
|
|
|
|
|
point.setS(new Double(2.5));
|
|
|
|
|
XbarSPoint point2 = new XbarSPoint(2, new Double(2.5));
|
|
|
|
|
point2.setS(new Double(2.5));
|
|
|
|
|
XbarSPoint point3 = new XbarSPoint(3, new Double(2.5));
|
|
|
|
|
point3.setS(new Double(2.5));
|
|
|
|
|
XbarSPoint point4 = new XbarSPoint(4, new Double(2.5));
|
|
|
|
|
point4.setS(new Double(2.5));
|
|
|
|
|
XbarSPoint point5 = new XbarSPoint(5, new Double(2.5));
|
|
|
|
|
point5.setS(new Double(2.5));
|
|
|
|
|
XbarSPoint point6 = new XbarSPoint(6, new Double(2.5));
|
|
|
|
|
point6.setS(new Double(2.5));
|
|
|
|
|
XbarSPoint point7 = new XbarSPoint(7, new Double(2.5));
|
|
|
|
|
point7.setS(new Double(2.5));
|
|
|
|
|
XbarSPoint point8 = new XbarSPoint(8, new Double(2));
|
|
|
|
|
point8.setS(new Double(2));
|
|
|
|
|
XbarSPoint point9 = new XbarSPoint(9, new Double(2.5));
|
|
|
|
|
point9.setS(new Double(2.5));
|
|
|
|
|
XbarSPoint point10 = new XbarSPoint(10, new Double(2.5));
|
|
|
|
|
point10.setS(new Double(2.5));
|
|
|
|
|
XbarSPoint point11 = new XbarSPoint(11, new Double(2.5));
|
|
|
|
|
point11.setS(new Double(2.5));
|
|
|
|
|
XbarSPoint point12 = new XbarSPoint(12, new Double(2.5));
|
|
|
|
|
point12.setS(new Double(2.5));
|
|
|
|
|
XbarSPoint point13 = new XbarSPoint(13,new Double(2.5));
|
|
|
|
|
point13.setS(new Double(2.5));
|
|
|
|
|
XbarSPoint point14 = new XbarSPoint(14,new Double(2.5));
|
|
|
|
|
point14.setS(new Double(2.5));
|
|
|
|
|
XbarSPoint point15 = new XbarSPoint(15,new Double(2.5));
|
|
|
|
|
point15.setS(new Double(2.5));
|
|
|
|
|
XbarSPoint point16 = new XbarSPoint(16,new Double(2));
|
|
|
|
|
point16.setS(new Double(2));
|
|
|
|
|
XbarSPoint point17 = new XbarSPoint(17,new Double(2.5));
|
|
|
|
|
point17.setS(new Double(2.5));
|
|
|
|
|
XbarSPoint point18 = new XbarSPoint(18,new Double(2.5));
|
|
|
|
|
point18.setS(new Double(2.5));
|
|
|
|
|
XbarSPoint point19 = new XbarSPoint(19,new Double(2.5));
|
|
|
|
|
point19.setS(new Double(2.5));
|
|
|
|
|
XbarSPoint point20 = new XbarSPoint(20,new Double(2.5));
|
|
|
|
|
point20.setS(new Double(2.5));
|
|
|
|
|
XbarSPoint point21 = new XbarSPoint(21,new Double(2.5));
|
|
|
|
|
point21.setS(new Double(2.5));
|
|
|
|
|
XbarSPoint point22 = new XbarSPoint(22,new Double(2.5));
|
|
|
|
|
point22.setS(new Double(2.5));
|
|
|
|
|
XbarSPoint point23 = new XbarSPoint(23,new Double(2.5));
|
|
|
|
|
point23.setS(new Double(2.5));
|
|
|
|
|
List<Point> list = new ArrayList<>();
|
|
|
|
|
list.add(point);
|
|
|
|
|
list.add(point2);
|
|
|
|
|
@@ -114,10 +134,107 @@ public class StatisticalControlledTest {
|
|
|
|
|
list.add(point23);
|
|
|
|
|
return list;
|
|
|
|
|
}
|
|
|
|
|
public static List<XbarSPoint> createData3(){
|
|
|
|
|
XbarSPoint point = new XbarSPoint(1, new Double(2.5));
|
|
|
|
|
point.setS(new Double(0.5));
|
|
|
|
|
point.setXbar(new Double(2.5));
|
|
|
|
|
XbarSPoint point2 = new XbarSPoint(2, new Double(2.5));
|
|
|
|
|
point2.setS(new Double(0.5));
|
|
|
|
|
point2.setXbar(new Double(2.5));
|
|
|
|
|
XbarSPoint point3 = new XbarSPoint(3, new Double(2.5));
|
|
|
|
|
point3.setS(new Double(0.5));
|
|
|
|
|
point3.setXbar(new Double(2.5));
|
|
|
|
|
XbarSPoint point4 = new XbarSPoint(4, new Double(2.5));
|
|
|
|
|
point4.setS(new Double(0.5));
|
|
|
|
|
point4.setXbar(new Double(2.5));
|
|
|
|
|
XbarSPoint point5 = new XbarSPoint(5, new Double(2.5));
|
|
|
|
|
point5.setS(new Double(0.5));
|
|
|
|
|
point5.setXbar(new Double(2.5));
|
|
|
|
|
XbarSPoint point6 = new XbarSPoint(6, new Double(2.5));
|
|
|
|
|
point6.setS(new Double(5));
|
|
|
|
|
point6.setXbar(new Double(5));
|
|
|
|
|
XbarSPoint point7 = new XbarSPoint(7, new Double(2.5));
|
|
|
|
|
point7.setS(new Double(20.5));
|
|
|
|
|
point7.setXbar(new Double(20.5));
|
|
|
|
|
XbarSPoint point8 = new XbarSPoint(8, new Double(2));
|
|
|
|
|
point8.setS(new Double(2));
|
|
|
|
|
point8.setXbar(new Double(2.5));
|
|
|
|
|
XbarSPoint point9 = new XbarSPoint(9, new Double(2.5));
|
|
|
|
|
point9.setS(new Double(2.5));
|
|
|
|
|
point9.setXbar(new Double(2.5));
|
|
|
|
|
XbarSPoint point10 = new XbarSPoint(10, new Double(2.5));
|
|
|
|
|
point10.setS(new Double(2.5));
|
|
|
|
|
point10.setXbar(new Double(2.5));
|
|
|
|
|
XbarSPoint point11 = new XbarSPoint(11, new Double(2.5));
|
|
|
|
|
point11.setS(new Double(2.5));
|
|
|
|
|
point11.setXbar(new Double(2.5));
|
|
|
|
|
XbarSPoint point12 = new XbarSPoint(12, new Double(2.5));
|
|
|
|
|
point12.setS(new Double(2.5));
|
|
|
|
|
point12.setXbar(new Double(2.5));
|
|
|
|
|
XbarSPoint point13 = new XbarSPoint(13,new Double(2.5));
|
|
|
|
|
point13.setS(new Double(30.5));
|
|
|
|
|
point13.setXbar(new Double(30.5));
|
|
|
|
|
XbarSPoint point14 = new XbarSPoint(14,new Double(2.5));
|
|
|
|
|
point14.setS(new Double(2.5));
|
|
|
|
|
point14.setXbar(new Double(2.5));
|
|
|
|
|
XbarSPoint point15 = new XbarSPoint(15,new Double(2.5));
|
|
|
|
|
point15.setS(new Double(7));
|
|
|
|
|
point15.setXbar(new Double(2.5));
|
|
|
|
|
XbarSPoint point16 = new XbarSPoint(16,new Double(2));
|
|
|
|
|
point16.setS(new Double(7));
|
|
|
|
|
point16.setXbar(new Double(2.5));
|
|
|
|
|
XbarSPoint point17 = new XbarSPoint(17,new Double(2.5));
|
|
|
|
|
point17.setS(new Double(7));
|
|
|
|
|
point17.setXbar(new Double(2.5));
|
|
|
|
|
XbarSPoint point18 = new XbarSPoint(18,new Double(2.5));
|
|
|
|
|
point18.setS(new Double(7));
|
|
|
|
|
point18.setXbar(new Double(2.5));
|
|
|
|
|
XbarSPoint point19 = new XbarSPoint(19,new Double(2.5));
|
|
|
|
|
point19.setS(new Double(7));
|
|
|
|
|
point19.setXbar(new Double(2.5));
|
|
|
|
|
XbarSPoint point20 = new XbarSPoint(20,new Double(2.5));
|
|
|
|
|
point20.setS(new Double(7));
|
|
|
|
|
point20.setXbar(new Double(2.5));
|
|
|
|
|
XbarSPoint point21 = new XbarSPoint(21,new Double(2.5));
|
|
|
|
|
point21.setS(new Double(7));
|
|
|
|
|
point21.setXbar(new Double(2.5));
|
|
|
|
|
XbarSPoint point22 = new XbarSPoint(22,new Double(2.5));
|
|
|
|
|
point22.setS(new Double(7));
|
|
|
|
|
point22.setXbar(new Double(2.5));
|
|
|
|
|
XbarSPoint point23 = new XbarSPoint(23,new Double(2.5));
|
|
|
|
|
point23.setS(new Double(7));
|
|
|
|
|
point23.setXbar(new Double(2.5));
|
|
|
|
|
List<XbarSPoint> list = new ArrayList<>();
|
|
|
|
|
list.add(point);
|
|
|
|
|
list.add(point2);
|
|
|
|
|
list.add(point3);
|
|
|
|
|
list.add(point4);
|
|
|
|
|
list.add(point5);
|
|
|
|
|
list.add(point6);
|
|
|
|
|
list.add(point7);
|
|
|
|
|
list.add(point8);
|
|
|
|
|
list.add(point9);
|
|
|
|
|
list.add(point10);
|
|
|
|
|
list.add(point11);
|
|
|
|
|
list.add(point12);
|
|
|
|
|
list.add(point13);
|
|
|
|
|
list.add(point14);
|
|
|
|
|
list.add(point15);
|
|
|
|
|
list.add(point16);
|
|
|
|
|
list.add(point17);
|
|
|
|
|
list.add(point18);
|
|
|
|
|
list.add(point19);
|
|
|
|
|
list.add(point20);
|
|
|
|
|
list.add(point21);
|
|
|
|
|
list.add(point22);
|
|
|
|
|
list.add(point23);
|
|
|
|
|
return list;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static void main(String[] args) {
|
|
|
|
|
// List<Point> list = createData();
|
|
|
|
|
List<Point> list = createData2();
|
|
|
|
|
|
|
|
|
|
ControlLimit controlLimit = new ControlLimit(new Double(12),new Double(3),new Double(1));
|
|
|
|
|
System.out.println("controlLimit : "+controlLimit.toString());
|
|
|
|
|
//
|
|
|
|
|
@@ -154,8 +271,8 @@ public class StatisticalControlledTest {
|
|
|
|
|
// System.out.println();
|
|
|
|
|
|
|
|
|
|
//TEST FOR RULE8
|
|
|
|
|
Boolean aBoolean8 = rule8(list, controlLimit,8);
|
|
|
|
|
System.out.println();
|
|
|
|
|
// Boolean aBoolean8 = rule8(list, controlLimit,8);
|
|
|
|
|
// System.out.println();
|
|
|
|
|
|
|
|
|
|
// int[] array={1,2,3,4,5,6};
|
|
|
|
|
// int[] ret=new int[3];
|
|
|
|
|
@@ -172,7 +289,7 @@ public class StatisticalControlledTest {
|
|
|
|
|
* 存在满足rule1的点 => true
|
|
|
|
|
* 不存在满足rule1的点 => false
|
|
|
|
|
* */
|
|
|
|
|
private static Boolean rule1(List<Point> data, ControlLimit controlLimit){
|
|
|
|
|
public static Boolean rule1(List<Point> data, ControlLimit controlLimit){
|
|
|
|
|
Boolean flag = false;
|
|
|
|
|
for(Point i:data){
|
|
|
|
|
if(i.getValueForInterpretation() > controlLimit.getUCL() || i.getValueForInterpretation() < controlLimit.getLCL()){
|
|
|
|
|
@@ -198,7 +315,7 @@ public class StatisticalControlledTest {
|
|
|
|
|
* 存在满足rule2的点 => true
|
|
|
|
|
* 不存在满足rule2的点 => false
|
|
|
|
|
* */
|
|
|
|
|
private static Boolean rule2(List<Point> data, ControlLimit controlLimit,Integer n){
|
|
|
|
|
public static Boolean rule2(List<Point> data, ControlLimit controlLimit,Integer n){
|
|
|
|
|
Boolean result = false;
|
|
|
|
|
|
|
|
|
|
List<Point> upList = new ArrayList<>();
|
|
|
|
|
@@ -300,7 +417,7 @@ public class StatisticalControlledTest {
|
|
|
|
|
* 存在满足rule3的点 => true
|
|
|
|
|
* 不存在满足rule3的点 => false
|
|
|
|
|
* */
|
|
|
|
|
private static Boolean rule3(List<Point> data, Integer n){
|
|
|
|
|
public static Boolean rule3(List<Point> data, Integer n){
|
|
|
|
|
|
|
|
|
|
//递增情况
|
|
|
|
|
Integer upi = 0;
|
|
|
|
|
@@ -362,7 +479,7 @@ public class StatisticalControlledTest {
|
|
|
|
|
* 存在满足rule4的点 => true
|
|
|
|
|
* 不存在满足rule4的点 => false
|
|
|
|
|
* */
|
|
|
|
|
private static Boolean rule4(List<Point> data, Integer n){
|
|
|
|
|
public static Boolean rule4(List<Point> data, Integer n){
|
|
|
|
|
if(n<=2){
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
@@ -499,7 +616,7 @@ public class StatisticalControlledTest {
|
|
|
|
|
* 存在满足rule5的点 => true
|
|
|
|
|
* 不存在满足rule5的点 => false
|
|
|
|
|
* */
|
|
|
|
|
private static Boolean rule5(List<Point> data,ControlLimit controlLimit, Integer m, Integer n){
|
|
|
|
|
public static Boolean rule5(List<Point> data,ControlLimit controlLimit, Integer m, Integer n){
|
|
|
|
|
Boolean result = false;
|
|
|
|
|
Integer upi = 0;
|
|
|
|
|
List<Point> upforMarkKey = new ArrayList<>();
|
|
|
|
|
@@ -572,7 +689,7 @@ public class StatisticalControlledTest {
|
|
|
|
|
* 存在满足rule6的点 => true
|
|
|
|
|
* 不存在满足rule6的点 => false
|
|
|
|
|
* */
|
|
|
|
|
private static Boolean rule6(List<Point> data,ControlLimit controlLimit, Integer m, Integer n){
|
|
|
|
|
public static Boolean rule6(List<Point> data,ControlLimit controlLimit, Integer m, Integer n){
|
|
|
|
|
Boolean result = false;
|
|
|
|
|
Integer upi = 0;
|
|
|
|
|
List<Point> upforMarkKey = new ArrayList<>();
|
|
|
|
|
@@ -649,7 +766,7 @@ public class StatisticalControlledTest {
|
|
|
|
|
* 存在满足rule7的点 => true
|
|
|
|
|
* 不存在满足rule7的点 => false
|
|
|
|
|
* */
|
|
|
|
|
private static Boolean rule7(List<Point> data,ControlLimit controlLimit, Integer n){
|
|
|
|
|
public static Boolean rule7(List<Point> data,ControlLimit controlLimit, Integer n){
|
|
|
|
|
|
|
|
|
|
Boolean result = false;
|
|
|
|
|
|
|
|
|
|
@@ -715,7 +832,7 @@ public class StatisticalControlledTest {
|
|
|
|
|
* 存在满足rule8的点 => true
|
|
|
|
|
* 不存在满足rule8的点 => false
|
|
|
|
|
* */
|
|
|
|
|
private static Boolean rule8(List<Point> data,ControlLimit controlLimit, Integer n){
|
|
|
|
|
public static Boolean rule8(List<Point> data,ControlLimit controlLimit, Integer n){
|
|
|
|
|
|
|
|
|
|
Boolean result = true;
|
|
|
|
|
//Integer upi = 0;
|
|
|
|
|
|