diff --git a/ym-common/src/main/java/com/cnbm/common/spc/util/DataUtils.java b/ym-common/src/main/java/com/cnbm/common/spc/util/DataUtils.java index 15ac26e..4f64b95 100644 --- a/ym-common/src/main/java/com/cnbm/common/spc/util/DataUtils.java +++ b/ym-common/src/main/java/com/cnbm/common/spc/util/DataUtils.java @@ -23,6 +23,8 @@ public class DataUtils { } + + public List> split(List value) { List> result = new ArrayList<>(); diff --git a/ym-influx/src/main/java/Main2.java b/ym-influx/src/main/java/Main2.java index 2c908e4..c6fd727 100644 --- a/ym-influx/src/main/java/Main2.java +++ b/ym-influx/src/main/java/Main2.java @@ -1,14 +1,8 @@ import com.cnbm.influx.config.InfluxClient; -import com.cnbm.influx.template.Event; -import com.influxdb.client.InfluxDBClient; -import com.influxdb.client.InfluxDBClientFactory; -import com.influxdb.client.WriteApi; import com.influxdb.client.domain.WritePrecision; import com.influxdb.client.write.Point; import java.time.Instant; -import java.util.ArrayList; -import java.util.List; /** * @Desc: "" diff --git a/ym-influx/src/main/java/com/cnbm/influx/Main.java b/ym-influx/src/main/java/com/cnbm/influx/Main.java index 1a6fbbb..8396ab7 100644 --- a/ym-influx/src/main/java/com/cnbm/influx/Main.java +++ b/ym-influx/src/main/java/com/cnbm/influx/Main.java @@ -1,21 +1,15 @@ package com.cnbm.influx; -import com.cnbm.influx.config.InfluxClient; import com.cnbm.influx.param.QueryDataParam; import com.cnbm.influx.param.PageInfo; import com.cnbm.influx.param.Range; -import com.cnbm.influx.param.Tag; -import com.cnbm.influx.template.Event; import com.influxdb.client.*; -import com.influxdb.client.domain.WritePrecision; -import com.influxdb.client.write.Point; import com.influxdb.query.FluxRecord; import com.influxdb.query.FluxTable; import java.text.SimpleDateFormat; -import java.time.Instant; import java.util.*; /** @@ -131,6 +125,8 @@ public class Main { // |> filter(fn: (r) => r["argName"] == "arg4") // |> drop(columns: ["transationId"]) // |> sort(columns: ["_time"], desc: true) + +// |> timeShift(duration: 12h) //用于时区转换 // 取前10条数据 // |> limit(n: 10, offset: 0) // @@ -142,31 +138,31 @@ public class Main { - QueryDataParam queryDataParam = new QueryDataParam(); - queryDataParam.setBucket("qgs-bucket"); - queryDataParam.setRange(new Range(getDate().toInstant(),new Date().toInstant())); - queryDataParam.setMeasurement("WeightHeiHei"); - queryDataParam.setTag(new Tag("argName","LTWeight")); -// queryDataParam.setDropedTagName("transationId"); - List dropNames = new ArrayList<>(); - dropNames.add("transationId"); - dropNames.add("inspectionSheetId"); - dropNames.add("batchNum"); - queryDataParam.setDropedTagNames(dropNames); - queryDataParam.setPageInfo(new PageInfo(1,10000)); - - List tables = query(queryDataParam,influxDBClient); - List records1 = tables.get(0).getRecords(); -// List> lists = Utils.fixedGroup(records1, 10); - - for (FluxTable fluxTable : tables) { - List records = fluxTable.getRecords(); - for (FluxRecord fluxRecord : records) { - Instant timms = fluxRecord.getTime(); - System.out.println("time: "+fluxRecord.getTime() +" key:"+fluxRecord.getField()+" value: " + fluxRecord.getValueByKey("_value")+" measurement: " + fluxRecord.getMeasurement()); - - } - } +// QueryDataParam queryDataParam = new QueryDataParam(); +// queryDataParam.setBucket("qgs-bucket"); +// queryDataParam.setRange(new Range(getDate().toInstant(),new Date().toInstant())); +// queryDataParam.setMeasurement("WeightHeiHei"); +// queryDataParam.setTag(new Tag("argName","LTWeight")); +//// queryDataParam.setDropedTagName("transationId"); +// List dropNames = new ArrayList<>(); +// dropNames.add("transationId"); +// dropNames.add("inspectionSheetId"); +// dropNames.add("batchNum"); +// queryDataParam.setDropedTagNames(dropNames); +// queryDataParam.setPageInfo(new PageInfo(1,10000)); +// +// List tables = query(queryDataParam,influxDBClient); +// List records1 = tables.get(0).getRecords(); +//// List> lists = Utils.fixedGroup(records1, 10); +// +// for (FluxTable fluxTable : tables) { +// List records = fluxTable.getRecords(); +// for (FluxRecord fluxRecord : records) { +// Instant timms = fluxRecord.getTime(); +// System.out.println("time: "+fluxRecord.getTime() +" key:"+fluxRecord.getField()+" value: " + fluxRecord.getValueByKey("_value")+" measurement: " + fluxRecord.getMeasurement()); +// +// } +// } influxDBClient.close(); } @@ -221,4 +217,6 @@ public class Main { return tables; } + + } diff --git a/ym-influx/src/main/java/com/cnbm/influx/config/InfluxClient.java b/ym-influx/src/main/java/com/cnbm/influx/config/InfluxClient.java index 6f04fae..be3628b 100644 --- a/ym-influx/src/main/java/com/cnbm/influx/config/InfluxClient.java +++ b/ym-influx/src/main/java/com/cnbm/influx/config/InfluxClient.java @@ -77,12 +77,24 @@ public enum InfluxClient { } public void insert(Event event, String measurement){ - Point point = Point.measurement(measurement) - .addTag("transationId", event.getTransationId()) - .addTag("inspectionSheetId", event.getInspectionSheetId()) - .addTag("argName", event.getArgName()) - .addField("argValue", event.getArgValue()) - .time(event.getTime().toEpochMilli(), WritePrecision.MS); + + Point point = null; + if(event.getBatchNum()==null){ + point = Point.measurement(measurement) + .addTag("transationId", event.getTransationId()) + .addTag("inspectionSheetId", event.getInspectionSheetId()) + .addTag("argName", event.getArgName()) + .addField("argValue", event.getArgValue()) + .time(event.getTime().toEpochMilli(), WritePrecision.MS); + }else { + point = Point.measurement(measurement) + .addTag("transationId", event.getTransationId()) + //.addTag("inspectionSheetId", event.getInspectionSheetId()) + .addTag("batchNum", event.getBatchNum().toString()) + .addTag("argName", event.getArgName()) + .addField("argValue", event.getArgValue()) + .time(event.getTime().toEpochMilli(), WritePrecision.MS); + } writeApi.writePoint(point); } @@ -103,7 +115,7 @@ public enum InfluxClient { }else { point = Point.measurement(measurement) .addTag("transationId", event.getTransationId()) - .addTag("inspectionSheetId", event.getInspectionSheetId()) + //.addTag("inspectionSheetId", event.getInspectionSheetId()) .addTag("batchNum", event.getBatchNum().toString()) .addTag("argName", event.getArgName()) .addField("argValue", event.getArgValue()) @@ -130,6 +142,8 @@ public enum InfluxClient { flux += "|> range(start: "+range.getBegin()+",stop:"+range.getEnd()+")"; flux += "|> filter(fn: (r) => r[\"_measurement\"] == \""+measurement+"\")"; flux += "|> filter(fn: (r) => r[\""+tagName+"\"] == \""+tagValue+"\")"; + //调整时区,查询出的结果 +8个小时 + flux += "|> timeShift(duration: 8h)"; for(String dropName:dropedTagNames){ flux += "|> drop(columns: [\""+dropName+"\"])"; } @@ -154,6 +168,7 @@ public enum InfluxClient { flux += "|> range(start: "+range.getBegin()+",stop:"+range.getEnd()+")"; flux += "|> filter(fn: (r) => r[\"_measurement\"] == \""+measurement+"\")"; flux += "|> filter(fn: (r) => r[\""+tagName+"\"] == \""+tagValue+"\")"; + flux += "|> timeShift(duration: 8h)"; flux += "|> group(columns: [\""+groupName+"\"], mode: \"except\")"; for(String dropName:dropedTagNames){ flux += "|> drop(columns: [\""+dropName+"\"])"; @@ -178,6 +193,7 @@ public enum InfluxClient { flux += "|> range(start: "+range.getBegin()+",stop:"+range.getEnd()+")"; flux += "|> filter(fn: (r) => r[\"_measurement\"] == \""+measurement+"\")"; flux += "|> filter(fn: (r) => r[\""+tagName+"\"] == \""+tagValue+"\")"; + flux += "|> timeShift(duration: 8h)"; for(String dropName:dropedTagNames){ flux += "|> drop(columns: [\""+dropName+"\"])"; } @@ -205,4 +221,4 @@ public enum InfluxClient { // } return queryApi.query(flux); } -} +} \ No newline at end of file diff --git a/ym-influx/src/main/java/com/cnbm/influx/config/Main.java b/ym-influx/src/main/java/com/cnbm/influx/config/Main.java new file mode 100644 index 0000000..b61870a --- /dev/null +++ b/ym-influx/src/main/java/com/cnbm/influx/config/Main.java @@ -0,0 +1,78 @@ +package com.cnbm.influx.config; + +import com.cnbm.common.spc.util.DataUtils; +import com.cnbm.influx.param.PageInfo; +import com.cnbm.influx.param.QueryDataParam; +import com.cnbm.influx.param.Range; +import com.cnbm.influx.param.Tag; +import com.cnbm.influx.template.Event; +import com.influxdb.client.InfluxDBClient; +import com.influxdb.client.InfluxDBClientFactory; +import com.influxdb.client.WriteApi; +import com.influxdb.client.domain.WritePrecision; +import com.influxdb.client.write.Point; +import com.influxdb.query.FluxTable; + +import java.time.Instant; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +/** + * @Desc: "" + * @Author: caixiang + * @DATE: 2022/11/30 16:56 + */ +public class Main { + public static void main(String[] args) throws InterruptedException { + //方式一 +// char[] token = "lkBsC27QZr1W50BSPlGxpTqNNpwuUk5uz1dZZRPSPbCG5VmNDDUo8P3UkZIhGWwfJwkuz6ZGZ7Et4_KBaG3gHw==".toCharArray(); +// String org = "qgs"; +// String bucket = "qgs-bucket"; +// InfluxDBClient influxDBClient = InfluxDBClientFactory.create("http://192.168.0.170:8086", token, org, bucket); +// +// +// WriteApi writeApi = influxDBClient.makeWriteApi(); +// +// +// +// Point point2 = Point.measurement("FORUPDATE") +// .addTag("transationId", "222312") +// .addTag("argName", "forUpdate") +// .addField("argValue", 4D) +// .time(Instant.now().toEpochMilli(), WritePrecision.MS); +// List list = new ArrayList<>(); +// list.add(point2); +// +// writeApi.writePoints(list); + + + //方式二 + Event event = new Event(); + + event.setTime(new Date().toInstant()); + event.setTransationId("2344"); + event.setBatchNum("22"); + event.setArgName("forUpdate"); + event.setArgValue("124.1"); + InfluxClient.Client.insert(event,"FORUPDATE"); +// Thread.sleep(50000); +// +// event.setArgValue(333.3); +// InfluxClient.Client.insert(event,"FORUPDATE"); + + + QueryDataParam queryDataParam = new QueryDataParam(); + queryDataParam.setBucket("qgs-bucket"); + queryDataParam.setMeasurement("FORUPDATE"); + List dropNames = new ArrayList<>(); + dropNames.add("transationId"); + dropNames.add("inspectionSheetId"); + queryDataParam.setDropedTagNames(dropNames); + queryDataParam.setTag(new Tag("argName","forUpdate")); + queryDataParam.setRange(new Range(DataUtils.getBeforeDate(999).toInstant(),DataUtils.getAfterDate(999).toInstant())); + queryDataParam.setPageInfo(new PageInfo(1,10)); + List query = InfluxClient.Client.query(queryDataParam); + System.out.println(); + } +} diff --git a/ym-influx/src/main/java/com/cnbm/influx/controller/S7DemoController.java b/ym-influx/src/main/java/com/cnbm/influx/controller/S7DemoController.java index 838bc47..bf0c388 100644 --- a/ym-influx/src/main/java/com/cnbm/influx/controller/S7DemoController.java +++ b/ym-influx/src/main/java/com/cnbm/influx/controller/S7DemoController.java @@ -1,8 +1,6 @@ package com.cnbm.influx.controller; import com.cnbm.common.spc.util.DataUtils; -import com.cnbm.common.utils.Result; -import com.cnbm.common.vo.R; import com.cnbm.influx.config.InfluxClient; import com.cnbm.influx.param.PageInfo; import com.cnbm.influx.param.QueryDataParam; @@ -19,7 +17,6 @@ import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import java.text.DateFormat; import java.time.Instant; import java.util.ArrayList; import java.util.Date; @@ -40,11 +37,19 @@ public class S7DemoController { for(int i=0;i<999;i++){ Thread.sleep(10); Event event = new Event(); - event.setTime(Instant.now()); + event.setTime(DataUtils.getAfterDate(i).toInstant()); event.setTransationId("asas"+i); - event.setArgName("LTWeight"); - Double d = r.nextDouble() * 2.5 + 66; - event.setArgValue(d); + event.setArgName("failDay"); + + int i1 = r.nextInt(10); + if(i1<4){ + event.setArgValue("0"); + }else { + event.setArgValue("1"); + } + +// Double d = r.nextDouble() * 2.5 + 66; +// event.setArgValue(d); list.add(event); } @@ -63,8 +68,8 @@ public class S7DemoController { event.setTransationId("forbatch"+i); event.setArgName("LTWeight"); Double d = r.nextDouble() * 2.5 + 66; - event.setArgValue(d); - event.setBatchNum(4); + event.setArgValue(d.toString()); + event.setBatchNum(4+""); event.setInspectionSheetId(i+""); list.add(event); } @@ -86,14 +91,44 @@ public class S7DemoController { event.setArgName("LTWeight"); Double d = r.nextDouble() * 2.5 + 66; event.setInspectionSheetId(j+""); - event.setArgValue(d); - event.setBatchNum(i); + event.setArgValue(d.toString()); + event.setBatchNum(i+""); list.add(event); } } InfluxClient.Client.batchInsert(list,"WeightHei"); } + @PostMapping("/insertAndQuery") + public void insertAndQuery() throws InterruptedException { + Event event = new Event(); + + event.setTime(new Date().toInstant()); + event.setTransationId("2344"); + event.setBatchNum("22"); + event.setArgName("forUpdate"); + event.setArgValue("124.1"); + InfluxClient.Client.insert(event,"FORUPDATEEEE"); +// Thread.sleep(50000); +// +// event.setArgValue(333.3); +// InfluxClient.Client.insert(event,"FORUPDATE"); + + + QueryDataParam queryDataParam = new QueryDataParam(); + queryDataParam.setBucket("qgs-bucket"); + queryDataParam.setMeasurement("FORUPDATEEEE"); + List dropNames = new ArrayList<>(); + dropNames.add("transationId"); + dropNames.add("inspectionSheetId"); + queryDataParam.setDropedTagNames(dropNames); + queryDataParam.setTag(new Tag("argName","forUpdate")); + queryDataParam.setRange(new Range(DataUtils.getBeforeDate(999).toInstant(),DataUtils.getAfterDate(999).toInstant())); + queryDataParam.setPageInfo(new PageInfo(1,10)); + List query = InfluxClient.Client.query(queryDataParam); + System.out.println(); + } + @PostMapping("/insertBatchJYDForTest") @@ -109,13 +144,13 @@ public class S7DemoController { event.setArgName("LostDays"); int i1 = r.nextInt(10); if(i1<4){ - event.setArgValue(new Double(0)); + event.setArgValue("0"); }else { - event.setArgValue(new Double(1)); + event.setArgValue("1"); } event.setInspectionSheetId(i+""); - event.setBatchNum(i); + event.setBatchNum(i+""); list.add(event); } InfluxClient.Client.batchInsert(list,"Weights"); @@ -139,10 +174,10 @@ public class S7DemoController { // event.setArgValue(new Double(1)); // } Double d = r.nextDouble() * 2.5 + 66; - event.setArgValue(d); + event.setArgValue(d.toString()); event.setInspectionSheetId(i+""); - event.setBatchNum(i); + event.setBatchNum(i+""); list.add(event); } InfluxClient.Client.batchInsert(list,"Weights"); @@ -227,7 +262,7 @@ public class S7DemoController { event.setTime(Instant.now()); event.setTransationId("asasd11"); event.setArgName("argName11"); - event.setArgValue(900001d); + event.setArgValue("900001"); Point asProcessCompleteEvent = insert(event, "ASProcessCompleteEvent"); InfluxClient.Client.insert(event,"ASProcessCompleteEvent"); } diff --git a/ym-influx/src/main/java/com/cnbm/influx/template/Event.java b/ym-influx/src/main/java/com/cnbm/influx/template/Event.java index d7ed0ae..1d6205d 100644 --- a/ym-influx/src/main/java/com/cnbm/influx/template/Event.java +++ b/ym-influx/src/main/java/com/cnbm/influx/template/Event.java @@ -17,14 +17,18 @@ public class Event { private Instant time; - private String inspectionSheetId; - private String transationId; private String argName; - private Double argValue; + private String argValue; - //批次号,可选的 - private Integer batchNum; + private String BatchNum; + + private String InspectionSheetId; + + public Event() { + BatchNum = "1"; + InspectionSheetId = "1"; + } } \ No newline at end of file diff --git a/ym-process-inspection/src/main/java/com/cnbm/processInspection/controller/ProcessInspectionController.java b/ym-process-inspection/src/main/java/com/cnbm/processInspection/controller/ProcessInspectionController.java index 3a0209f..14d8f12 100644 --- a/ym-process-inspection/src/main/java/com/cnbm/processInspection/controller/ProcessInspectionController.java +++ b/ym-process-inspection/src/main/java/com/cnbm/processInspection/controller/ProcessInspectionController.java @@ -70,8 +70,8 @@ public class ProcessInspectionController { XbarSGraphData xbarSGraphData = new XbarSGraphData( meanStandardDeviationGraph.getMsdGraphEntity()==null?null:meanStandardDeviationGraph.getMsdGraphEntity(), - meanStandardDeviationGraph.getXbarCL()==null?null:meanStandardDeviationGraph.getXbarCL(), - meanStandardDeviationGraph.getSCL()==null?null:meanStandardDeviationGraph.getSCL(), + meanStandardDeviationGraph.getXbarCL()==null?null:new ControlLimitDetail(meanStandardDeviationGraph.getXbarCL().getUCL(), meanStandardDeviationGraph.getXbarCL().getCL(), meanStandardDeviationGraph.getXbarCL().getLCL()), + meanStandardDeviationGraph.getSCL()==null?null:new ControlLimitDetail(meanStandardDeviationGraph.getSCL().getUCL(), meanStandardDeviationGraph.getSCL().getCL(), meanStandardDeviationGraph.getSCL().getLCL()), 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()) @@ -112,8 +112,6 @@ public class ProcessInspectionController { 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); @@ -142,8 +140,8 @@ public class ProcessInspectionController { XMRGraphData xmrGraphData = new XMRGraphData( xmrGraph.getXmrGraphEntity()==null?null:xmrGraph.getXmrGraphEntity(), - xmrGraph.getXCL()==null?null:xmrGraph.getXCL(), - xmrGraph.getRSCL()==null?null:xmrGraph.getRSCL(), + xmrGraph.getXCL()==null?null:new ControlLimitDetail(xmrGraph.getXCL().getUCL(), xmrGraph.getXCL().getCL(), xmrGraph.getXCL().getLCL()), + xmrGraph.getRSCL()==null?null:new ControlLimitDetail(xmrGraph.getRSCL().getUCL(), xmrGraph.getRSCL().getCL(), xmrGraph.getRSCL().getLCL()), 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()) @@ -198,14 +196,14 @@ public class ProcessInspectionController { productFeatures.setUsl(new Float(66)); productFeatures.setLsl(new Float(69)); - productFeatures.setName("LTWeight"); + productFeatures.setName("failDay"); NPGraph npGraph = new NPGraph(productFeatures); QueryDataGroupByTimeParam queryDataParam = new QueryDataGroupByTimeParam(); queryDataParam.setMeasurement(Constant.measurement); - queryDataParam.setRange(new Range(DataUtils.getBeforeDate(999).toInstant(), DataUtils.getAfterDate(999).toInstant() )); - queryDataParam.setTimeType(1); + queryDataParam.setRange(new Range(DataUtils.getBeforeDate(9999).toInstant(), DataUtils.getAfterDate(9999).toInstant() )); + queryDataParam.setTimeType(2); npGraph.initialDate(queryDataParam); NPGraphData npGraph1 = new NPGraphData( @@ -328,8 +326,8 @@ public class ProcessInspectionController { XbarSGraphData xbarSGraphData = new XbarSGraphData( meanStandardDeviationGraph.getMsdGraphEntity()==null?null:meanStandardDeviationGraph.getMsdGraphEntity(), - meanStandardDeviationGraph.getXbarCL()==null?null:meanStandardDeviationGraph.getXbarCL(), - meanStandardDeviationGraph.getSCL()==null?null:meanStandardDeviationGraph.getSCL(), + meanStandardDeviationGraph.getXbarCL()==null?null:new ControlLimitDetail(meanStandardDeviationGraph.getXbarCL().getUCL(), meanStandardDeviationGraph.getXbarCL().getCL(), meanStandardDeviationGraph.getXbarCL().getLCL()), + meanStandardDeviationGraph.getSCL()==null?null:new ControlLimitDetail(meanStandardDeviationGraph.getSCL().getUCL(), meanStandardDeviationGraph.getSCL().getCL(), meanStandardDeviationGraph.getSCL().getLCL()), 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()) @@ -389,8 +387,8 @@ public class ProcessInspectionController { XMRGraphData xmrGraphData = new XMRGraphData( xmrGraph.getXmrGraphEntity()==null?null:xmrGraph.getXmrGraphEntity(), - xmrGraph.getXCL()==null?null:xmrGraph.getXCL(), - xmrGraph.getRSCL()==null?null:xmrGraph.getRSCL(), + xmrGraph.getXCL()==null?null:new ControlLimitDetail(xmrGraph.getXCL().getUCL(), xmrGraph.getXCL().getCL(), xmrGraph.getXCL().getLCL()), + xmrGraph.getRSCL()==null?null:new ControlLimitDetail(xmrGraph.getRSCL().getUCL(), xmrGraph.getRSCL().getCL(), xmrGraph.getRSCL().getLCL()), 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()) diff --git a/ym-process-inspection/src/main/java/com/cnbm/processInspection/dto/XMRGraphData.java b/ym-process-inspection/src/main/java/com/cnbm/processInspection/dto/XMRGraphData.java index cce81e8..c21053d 100644 --- a/ym-process-inspection/src/main/java/com/cnbm/processInspection/dto/XMRGraphData.java +++ b/ym-process-inspection/src/main/java/com/cnbm/processInspection/dto/XMRGraphData.java @@ -3,6 +3,7 @@ package com.cnbm.processInspection.dto; import com.cnbm.common.spc.math.StandardDiviation; import com.cnbm.processInspection.graphAnalyzed.forMeterage.xmr.XMRGraphEntity; import com.cnbm.qualityPlanning.entity.ControlLimit; +import com.cnbm.qualityPlanning.entity.ControlLimitDetail; import com.cnbm.qualityPlanning.entity.ProcessCapability; import com.cnbm.qualityPlanning.entity.SpecificationLimit; import io.swagger.annotations.ApiModel; @@ -20,9 +21,9 @@ public class XMRGraphData { @ApiModelProperty(value = "控制图list数据") private XMRGraphEntity xmrGraphEntity; @ApiModelProperty(value = "xbar控制图 控制限") - private ControlLimit XBarCL; + private ControlLimitDetail XBarCL; @ApiModelProperty(value = "R控制图 控制限") - private ControlLimit RCL; + private ControlLimitDetail RCL; @ApiModelProperty(value = "工艺规格限") private SpecificationLimit SL; @@ -34,7 +35,7 @@ public class XMRGraphData { private StandardDiviation standardDiviation; - public XMRGraphData(XMRGraphEntity xmrGraphEntity, ControlLimit xBarCL, ControlLimit rCL, SpecificationLimit sl, ProcessCapability processCapability, StandardDiviation standardDiviation){ + public XMRGraphData(XMRGraphEntity xmrGraphEntity, ControlLimitDetail xBarCL, ControlLimitDetail rCL, SpecificationLimit sl, ProcessCapability processCapability, StandardDiviation standardDiviation){ this.xmrGraphEntity = xmrGraphEntity; this.XBarCL = xBarCL; this.RCL = rCL; diff --git a/ym-process-inspection/src/main/java/com/cnbm/processInspection/dto/XbarSGraphData.java b/ym-process-inspection/src/main/java/com/cnbm/processInspection/dto/XbarSGraphData.java index 3cb827c..38338ea 100644 --- a/ym-process-inspection/src/main/java/com/cnbm/processInspection/dto/XbarSGraphData.java +++ b/ym-process-inspection/src/main/java/com/cnbm/processInspection/dto/XbarSGraphData.java @@ -3,6 +3,7 @@ package com.cnbm.processInspection.dto; import com.cnbm.common.spc.math.StandardDiviation; import com.cnbm.processInspection.graphAnalyzed.forMeterage.ms.MSDGraphEntity; import com.cnbm.qualityPlanning.entity.ControlLimit; +import com.cnbm.qualityPlanning.entity.ControlLimitDetail; import com.cnbm.qualityPlanning.entity.ProcessCapability; import com.cnbm.qualityPlanning.entity.SpecificationLimit; import io.swagger.annotations.ApiModel; @@ -20,9 +21,9 @@ public class XbarSGraphData { @ApiModelProperty(value = "控制图list数据") private MSDGraphEntity msdGraphEntity; @ApiModelProperty(value = "xbar控制图 控制限") - private ControlLimit XBarCL; + private ControlLimitDetail XBarCL; @ApiModelProperty(value = "s控制图 控制限") - private ControlLimit SCL; + private ControlLimitDetail SCL; @ApiModelProperty(value = "工艺规格限") private SpecificationLimit SL; @@ -34,7 +35,7 @@ public class XbarSGraphData { private StandardDiviation standardDiviation; - public XbarSGraphData(MSDGraphEntity msdGraphEntity,ControlLimit xBarCL,ControlLimit sCL,SpecificationLimit sl,ProcessCapability processCapability,StandardDiviation standardDiviation){ + public XbarSGraphData(MSDGraphEntity msdGraphEntity,ControlLimitDetail xBarCL,ControlLimitDetail sCL,SpecificationLimit sl,ProcessCapability processCapability,StandardDiviation standardDiviation){ this.msdGraphEntity = msdGraphEntity; this.XBarCL = xBarCL; this.SCL = sCL; diff --git a/ym-process-inspection/src/main/java/com/cnbm/processInspection/graphAnalyzed/forCount/c/CGraph.java b/ym-process-inspection/src/main/java/com/cnbm/processInspection/graphAnalyzed/forCount/c/CGraph.java index a18d5d3..c17458b 100644 --- a/ym-process-inspection/src/main/java/com/cnbm/processInspection/graphAnalyzed/forCount/c/CGraph.java +++ b/ym-process-inspection/src/main/java/com/cnbm/processInspection/graphAnalyzed/forCount/c/CGraph.java @@ -8,7 +8,6 @@ import com.cnbm.influx.param.QueryDataGroupByTimeParam; import com.cnbm.influx.param.Tag; import com.cnbm.qualityPlanning.entity.CPoint; import com.cnbm.qualityPlanning.entity.ControlLimit; -import com.cnbm.qualityPlanning.entity.PPoint; import com.cnbm.qualityPlanning.entity.SpecificationLimit; import com.influxdb.query.FluxRecord; import com.influxdb.query.FluxTable; diff --git a/ym-process-inspection/src/main/java/com/cnbm/processInspection/graphAnalyzed/forCount/np/NPGraph.java b/ym-process-inspection/src/main/java/com/cnbm/processInspection/graphAnalyzed/forCount/np/NPGraph.java index e70a802..207e680 100644 --- a/ym-process-inspection/src/main/java/com/cnbm/processInspection/graphAnalyzed/forCount/np/NPGraph.java +++ b/ym-process-inspection/src/main/java/com/cnbm/processInspection/graphAnalyzed/forCount/np/NPGraph.java @@ -1,22 +1,15 @@ package com.cnbm.processInspection.graphAnalyzed.forCount.np; import com.cnbm.basic.entity.ProductFeatures; -import com.cnbm.common.spc.math.StandardDiviation; import com.cnbm.common.spc.util.DataUtils; import com.cnbm.influx.config.InfluxClient; import com.cnbm.influx.constant.Constant; import com.cnbm.influx.param.QueryDataGroupByTimeParam; -import com.cnbm.influx.param.QueryDataParam; import com.cnbm.influx.param.Tag; -import com.cnbm.processInspection.controlCoefficientConstant.XBarRCoefficients; -import com.cnbm.processInspection.dto.InterpretationListArg; -import com.cnbm.processInspection.dto.InterpretationListArgForCount; -import com.cnbm.qualityPlanning.common.StatisticalControlledTest; import com.cnbm.qualityPlanning.entity.*; import com.influxdb.query.FluxRecord; import com.influxdb.query.FluxTable; import lombok.Data; -import org.omg.CORBA.PRIVATE_MEMBER; import java.util.ArrayList; import java.util.List; diff --git a/ym-process-inspection/src/main/java/com/cnbm/processInspection/graphAnalyzed/forCount/p/PGraph.java b/ym-process-inspection/src/main/java/com/cnbm/processInspection/graphAnalyzed/forCount/p/PGraph.java index 978572e..e622c33 100644 --- a/ym-process-inspection/src/main/java/com/cnbm/processInspection/graphAnalyzed/forCount/p/PGraph.java +++ b/ym-process-inspection/src/main/java/com/cnbm/processInspection/graphAnalyzed/forCount/p/PGraph.java @@ -7,7 +7,6 @@ import com.cnbm.influx.constant.Constant; import com.cnbm.influx.param.QueryDataGroupByTimeParam; import com.cnbm.influx.param.Tag; import com.cnbm.qualityPlanning.entity.ControlLimit; -import com.cnbm.qualityPlanning.entity.NPPoint; import com.cnbm.qualityPlanning.entity.PPoint; import com.cnbm.qualityPlanning.entity.SpecificationLimit; import com.influxdb.query.FluxRecord; @@ -15,7 +14,6 @@ import com.influxdb.query.FluxTable; import lombok.Data; import java.util.ArrayList; -import java.util.Date; import java.util.List; /** diff --git a/ym-process-inspection/src/main/java/com/cnbm/processInspection/graphAnalyzed/forCount/u/UGraph.java b/ym-process-inspection/src/main/java/com/cnbm/processInspection/graphAnalyzed/forCount/u/UGraph.java index 70ede0c..890f0fd 100644 --- a/ym-process-inspection/src/main/java/com/cnbm/processInspection/graphAnalyzed/forCount/u/UGraph.java +++ b/ym-process-inspection/src/main/java/com/cnbm/processInspection/graphAnalyzed/forCount/u/UGraph.java @@ -7,7 +7,6 @@ import com.cnbm.influx.constant.Constant; import com.cnbm.influx.param.QueryDataGroupByTimeParam; import com.cnbm.influx.param.Tag; import com.cnbm.qualityPlanning.entity.ControlLimit; -import com.cnbm.qualityPlanning.entity.PPoint; import com.cnbm.qualityPlanning.entity.SpecificationLimit; import com.cnbm.qualityPlanning.entity.UPoint; import com.influxdb.query.FluxRecord; diff --git a/ym-process-inspection/src/main/java/com/cnbm/processInspection/service/impl/InspectionSheetServiceImpl.java b/ym-process-inspection/src/main/java/com/cnbm/processInspection/service/impl/InspectionSheetServiceImpl.java index 69bdd99..6332f40 100644 --- a/ym-process-inspection/src/main/java/com/cnbm/processInspection/service/impl/InspectionSheetServiceImpl.java +++ b/ym-process-inspection/src/main/java/com/cnbm/processInspection/service/impl/InspectionSheetServiceImpl.java @@ -3,8 +3,6 @@ package com.cnbm.processInspection.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; -import com.cnbm.basic.dto.ProductFactoryRelationDTO; -import com.cnbm.basic.dto.ProductFeaturesDTO; import com.cnbm.basic.entity.Machine; import com.cnbm.basic.entity.Product; import com.cnbm.basic.entity.Shift; @@ -16,9 +14,6 @@ import com.cnbm.basic.service.impl.WorkingProcedureServiceImpl; import com.cnbm.common.page.PageData; import com.cnbm.common.service.impl.CrudServiceImpl; import com.cnbm.common.utils.ConvertUtils; -import com.cnbm.common.validator.ValidatorUtils; -import com.cnbm.common.validator.group.AddGroup; -import com.cnbm.common.validator.group.DefaultGroup; import com.cnbm.influx.config.InfluxClient; import com.cnbm.influx.param.QueryDataParam; import com.cnbm.influx.param.Range; @@ -28,7 +23,6 @@ import com.cnbm.processInspection.dto.InspectionSheetDTO; import com.cnbm.processInspection.entity.InspectionSheet; import com.cnbm.processInspection.mapper.InspectionSheetMapper; import com.cnbm.processInspection.service.IInspectionSheetService; -import com.fasterxml.jackson.core.JsonProcessingException; import com.influxdb.query.FluxTable; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -193,7 +187,7 @@ public class InspectionSheetServiceImpl extends CrudServiceImpl data,Integer m,Integer n){ + if(data.size() == 0 || data.size() == 1){ + return; + } + //开始 Stack stack = new Stack(); int seqNum = 0; @@ -655,6 +659,8 @@ public class StatisticalControlledTest { seqNum++; } //判断最后一次情况 + Integer nowi = i>= data.size()?(i-1):i; + i = nowi; Boolean sequence = ((stack.peek().getPosition()+1) == data.get(i).getPosition()); if( sequence ){ stack.push(data.get(i)); @@ -793,6 +799,9 @@ public class StatisticalControlledTest { // return result; // } private static void rule6Core(List data,Integer m,Integer n){ + if(data.size() == 0 || data.size() == 1){ + return; + } //开始 Stack stack = new Stack(); int seqNum = 0; @@ -824,6 +833,8 @@ public class StatisticalControlledTest { seqNum++; } //判断最后一次情况 + Integer nowi = i>= data.size()?(i-1):i; + i = nowi; Boolean sequence = ((stack.peek().getPosition()+1) == data.get(i).getPosition()); if( sequence ){ stack.push(data.get(i)); @@ -951,6 +962,9 @@ public class StatisticalControlledTest { // return result; // } private static void rule7Core(List data,Integer n){ + if(data.size() == 0 || data.size() == 1){ + return; + } //开始 Stack stack = new Stack(); int i = 0; @@ -980,6 +994,8 @@ public class StatisticalControlledTest { } //判断最后一次情况 + Integer nowi = i>= data.size()?(i-1):i; + i = nowi; Boolean sequence = ((stack.peek().getPosition()+1) == data.get(i).getPosition()); if( sequence ){ stack.push(data.get(i)); @@ -1101,6 +1117,9 @@ public class StatisticalControlledTest { // return result; // } private static void rule8Core(List data,Integer n){ + if(data.size() == 0 || data.size() == 1){ + return; + } //开始 Stack stack = new Stack(); int i = 0; @@ -1130,6 +1149,8 @@ public class StatisticalControlledTest { } //判断最后一次情况 + Integer nowi = i>= data.size()?(i-1):i; + i = nowi; Boolean sequence = ((stack.peek().getPosition()+1) == data.get(i).getPosition()); if( sequence ){ stack.push(data.get(i)); diff --git a/ym-quality-planning/src/main/java/com/cnbm/qualityPlanning/common/test/MainRule5TEST.java b/ym-quality-planning/src/main/java/com/cnbm/qualityPlanning/common/test/MainRule5TEST.java index 79c4e4a..26d58a8 100644 --- a/ym-quality-planning/src/main/java/com/cnbm/qualityPlanning/common/test/MainRule5TEST.java +++ b/ym-quality-planning/src/main/java/com/cnbm/qualityPlanning/common/test/MainRule5TEST.java @@ -45,7 +45,10 @@ public class MainRule5TEST { seqNum++; } //判断最后一次情况 - Boolean sequence = ((stack.peek().getPosition()+1) == upforMarkKey.get(i).getPosition()); + Integer nowi = i>= upforMarkKey.size()?(i-1):i; + i = nowi; + Integer c = (stack.peek().getPosition()+1); + Boolean sequence = ( c == upforMarkKey.get(i).getPosition()); if( sequence ){ stack.push(upforMarkKey.get(i)); seqNum++; @@ -92,19 +95,19 @@ public class MainRule5TEST { upforMarkKey.add(point1); - upforMarkKey.add(point2); - upforMarkKey.add(point3); - upforMarkKey.add(point4); - upforMarkKey.add(point5); - upforMarkKey.add(point6); - upforMarkKey.add(point7); - upforMarkKey.add(point8); - upforMarkKey.add(point9); - upforMarkKey.add(point10); - upforMarkKey.add(point11); - upforMarkKey.add(point12); - upforMarkKey.add(point13); - upforMarkKey.add(point14); +// upforMarkKey.add(point2); +// upforMarkKey.add(point3); +// upforMarkKey.add(point4); +// upforMarkKey.add(point5); +// upforMarkKey.add(point6); +// upforMarkKey.add(point7); +// upforMarkKey.add(point8); +// upforMarkKey.add(point9); +// upforMarkKey.add(point10); +// upforMarkKey.add(point11); +// upforMarkKey.add(point12); +// upforMarkKey.add(point13); +// upforMarkKey.add(point14); rule5Core(upforMarkKey); diff --git a/ym-quality-planning/src/main/java/com/cnbm/qualityPlanning/entity/ControlLimitDetail.java b/ym-quality-planning/src/main/java/com/cnbm/qualityPlanning/entity/ControlLimitDetail.java index 8759c82..3ac0e62 100644 --- a/ym-quality-planning/src/main/java/com/cnbm/qualityPlanning/entity/ControlLimitDetail.java +++ b/ym-quality-planning/src/main/java/com/cnbm/qualityPlanning/entity/ControlLimitDetail.java @@ -1,6 +1,8 @@ package com.cnbm.qualityPlanning.entity; +import cn.hutool.core.util.NumberUtil; import lombok.Data; +import org.springframework.util.NumberUtils; /** * @Desc: "" @@ -27,19 +29,19 @@ public class ControlLimitDetail { this.CL = CL; this.LCL = LCL; Double agv1 = (this.UCL-this.CL)/3; - this.UC[0] = this.CL; - this.UC[1] = this.CL+agv1; - this.UB[0] = this.UC[1]; - this.UB[1] = this.UB[0]+agv1; - this.UA[0] = this.UB[1]; - this.UA[1] = this.UA[0]+agv1; + this.UC[0] = NumberUtil.round(this.CL,4).doubleValue(); + this.UC[1] = NumberUtil.round(this.CL+agv1,4).doubleValue(); + this.UB[0] = NumberUtil.round(this.UC[1],4).doubleValue(); + this.UB[1] = NumberUtil.round(this.UB[0]+agv1,4).doubleValue(); + this.UA[0] = NumberUtil.round(this.UB[1],4).doubleValue(); + this.UA[1] = NumberUtil.round(this.UA[0]+agv1,4).doubleValue(); Double agv2 = (this.CL-this.LCL)/3; - this.LC[0] = this.CL-agv2; - this.LC[1] = this.CL; - this.LB[0] = this.LC[0]-agv2; - this.LB[1] = this.LC[0]; - this.LA[0] = this.LB[0]-agv2; - this.LA[1] = this.LB[0]; + this.LC[0] = NumberUtil.round(this.CL-agv2,4).doubleValue(); + this.LC[1] = NumberUtil.round(this.CL,4).doubleValue(); + this.LB[0] = NumberUtil.round(this.LC[0]-agv2,4).doubleValue(); + this.LB[1] = NumberUtil.round(this.LC[0],4).doubleValue(); + this.LA[0] = NumberUtil.round(this.LB[0]-agv2,4).doubleValue(); + this.LA[1] = NumberUtil.round(this.LB[0],4).doubleValue(); } }