diff --git a/detection/src/main/java/com/njcn/gather/detection/handler/SocketDevResponseService.java b/detection/src/main/java/com/njcn/gather/detection/handler/SocketDevResponseService.java index 2f9ebd86..ac3f037e 100644 --- a/detection/src/main/java/com/njcn/gather/detection/handler/SocketDevResponseService.java +++ b/detection/src/main/java/com/njcn/gather/detection/handler/SocketDevResponseService.java @@ -628,7 +628,7 @@ public class SocketDevResponseService { private void assemblyEntity(List deList, DevXiNumData.F F, DevXiNumData.GF startF, CoefficientVO coefficientVO, CoefficientVO.DevParameter devParameter) { //表示接收完成,必须保证3个数 - if (deList.size() >= 3) { + if (deList.size() >= 7) { List aList = deList.stream().map(it -> it.getSqlData().get(0).getList().getA()).collect(Collectors.toList()); List bList = deList.stream().map(it -> it.getSqlData().get(0).getList().getB()).collect(Collectors.toList()); List cList = deList.stream().map(it -> it.getSqlData().get(0).getList().getC()).collect(Collectors.toList()); @@ -703,7 +703,7 @@ public class SocketDevResponseService { */ private Double reduceList(List valList) { // valList.subList(0, 5).clear(); - // valList.subList(valList.size() - 3, valList.size() - 1).clear(); + valList.subList(valList.size() - 2, valList.size()).clear(); return valList.stream().mapToDouble(Double::doubleValue).average().getAsDouble(); } diff --git a/detection/src/main/java/com/njcn/gather/detection/handler/SocketSourceResponseService.java b/detection/src/main/java/com/njcn/gather/detection/handler/SocketSourceResponseService.java index f6b90485..79fa09ce 100644 --- a/detection/src/main/java/com/njcn/gather/detection/handler/SocketSourceResponseService.java +++ b/detection/src/main/java/com/njcn/gather/detection/handler/SocketSourceResponseService.java @@ -1,6 +1,5 @@ package com.njcn.gather.detection.handler; -import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSON; import com.njcn.gather.detection.pojo.enums.SourceOperateCodeEnum; @@ -135,16 +134,13 @@ public class SocketSourceResponseService { CnSocketUtil.quitSendSource(param); WebServiceManager.sendMsg(param.getUserPageId(), JSON.toJSONString(socketDataMsg)); break; - case UNKNOWN_ERROR: - CnSocketUtil.quitSendSource(param); - WebServiceManager.sendMsg(param.getUserPageId(), JSON.toJSONString(socketDataMsg)); - break; case UNABLE_TO_RESPOND: CnSocketUtil.quitSendSource(param); WebServiceManager.sendMsg(param.getUserPageId(), JSON.toJSONString(socketDataMsg)); break; default: CnSocketUtil.sendUnSocket(param.getUserPageId()); + WebServiceManager.sendMsg(param.getUserPageId(), JSON.toJSONString(socketDataMsg)); break; } } @@ -198,8 +194,10 @@ public class SocketSourceResponseService { DevPhaseSequenceParam phaseSequenceParam = new DevPhaseSequenceParam(); phaseSequenceParam.setMoniterIdList(monitorIdList); phaseSequenceParam.setDataType(Arrays.asList("real$VRMS", "real$IRMS")); - phaseSequenceParam.setReadCount(3); - phaseSequenceParam.setIgnoreCount(4); + // 读取3次数据用于系数计算 + phaseSequenceParam.setReadCount(7); //3 + // 忽略前4次数据,等待测量稳定 + phaseSequenceParam.setIgnoreCount(3); //4 socketMsg.setData(JSON.toJSONString(phaseSequenceParam)); SocketManager.sendMsg(s, JSON.toJSONString(socketMsg)); diff --git a/detection/src/main/java/com/njcn/gather/report/pojo/enums/BaseReportKeyEnum.java b/detection/src/main/java/com/njcn/gather/report/pojo/enums/BaseReportKeyEnum.java index 53d2a24e..2cc2f0c6 100644 --- a/detection/src/main/java/com/njcn/gather/report/pojo/enums/BaseReportKeyEnum.java +++ b/detection/src/main/java/com/njcn/gather/report/pojo/enums/BaseReportKeyEnum.java @@ -32,7 +32,10 @@ public enum BaseReportKeyEnum { YEAR_MONTH_DAY("year-month-day","年-月-日"), TEMPERATURE("temp","温度"), HUMIDITY("hum","相对湿度"), - DELEGATE("delegate","委托方"); + DELEGATE("delegate","委托方"), + CREATEDATE("createDate","出厂日期"), + HW_VERSION("hardwareVersion","硬件版本"), + SW_VERSION("softwareVersion","软件版本"); private String key; diff --git a/detection/src/main/java/com/njcn/gather/report/service/impl/PqReportServiceImpl.java b/detection/src/main/java/com/njcn/gather/report/service/impl/PqReportServiceImpl.java index c6db00f0..881647b9 100644 --- a/detection/src/main/java/com/njcn/gather/report/service/impl/PqReportServiceImpl.java +++ b/detection/src/main/java/com/njcn/gather/report/service/impl/PqReportServiceImpl.java @@ -100,6 +100,7 @@ import java.math.RoundingMode; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; +import java.time.format.DateTimeFormatter; import java.util.List; import java.util.*; import java.util.concurrent.CompletableFuture; @@ -157,6 +158,9 @@ public class PqReportServiceImpl extends ServiceImpl i @Value("${qr.gcDev.path}") private String gcDevPath; + @Value("${report.dateFormat}") + private String dateFormat; + private final IPqDevService iPqDevService; private final PqDevMapper pqDevMapper; @@ -1406,11 +1410,24 @@ public class PqReportServiceImpl extends ServiceImpl i baseModelMap.put(prefix + BaseReportKeyEnum.DEV_TYPE.getKey() + suffix, devType.getName()); // 检测员 baseModelMap.put(prefix + BaseReportKeyEnum.INSPECTOR.getKey() + suffix, pqDevVO.getCheckBy() + ""); + String datePattern = DatePattern.NORM_DATE_PATTERN; + if (DatePattern.CHINESE_DATE_PATTERN.equals(dateFormat)) { + datePattern = DatePattern.CHINESE_DATE_PATTERN; + } + + + // 出厂日期 + baseModelMap.put(prefix + BaseReportKeyEnum.CREATEDATE.getKey() + suffix, pqDevVO.getCreateDate().format(DateTimeFormatter.ofPattern(datePattern))); + // 硬件版本 + baseModelMap.put(prefix + BaseReportKeyEnum.HW_VERSION.getKey() + suffix, StrUtil.isNotBlank(pqDevVO.getHardwareVersion()) ? pqDevVO.getHardwareVersion() : StrUtil.EMPTY); + // 软件版本 + baseModelMap.put(prefix + BaseReportKeyEnum.SW_VERSION.getKey() + suffix, StrUtil.isNotBlank(pqDevVO.getSoftwareVersion()) ? pqDevVO.getSoftwareVersion() : StrUtil.EMPTY); + // 调试日期 if (pqDevVO.getCheckTime() != null) { - baseModelMap.put(prefix + BaseReportKeyEnum.TEST_DATE.getKey() + suffix, DateUtil.format(pqDevVO.getCheckTime(), DatePattern.CHINESE_DATE_PATTERN)); + baseModelMap.put(prefix + BaseReportKeyEnum.TEST_DATE.getKey() + suffix, DateUtil.format(pqDevVO.getCheckTime(), datePattern)); } else { - baseModelMap.put(prefix + BaseReportKeyEnum.TEST_DATE.getKey() + suffix, DateUtil.format(new Date(), DatePattern.CHINESE_DATE_PATTERN)); + baseModelMap.put(prefix + BaseReportKeyEnum.TEST_DATE.getKey() + suffix, DateUtil.format(new Date(), datePattern)); } // 装置编码 baseModelMap.put(prefix + BaseReportKeyEnum.DEV_CODE.getKey() + suffix, pqDevVO.getCreateId()); @@ -1450,15 +1467,14 @@ public class PqReportServiceImpl extends ServiceImpl i // 样品编号 baseModelMap.put(prefix + BaseReportKeyEnum.SAMPLE_ID.getKey() + suffix, StrUtil.isEmpty(pqDevVO.getSampleId()) ? StrPool.TAB : pqDevVO.getSampleId()); // 收样日期 - baseModelMap.put(prefix + BaseReportKeyEnum.ARRIVED_DATE.getKey() + suffix, Objects.isNull(pqDevVO.getArrivedDate()) ? StrPool.TAB : String.valueOf(pqDevVO.getArrivedDate())); + baseModelMap.put(prefix + BaseReportKeyEnum.ARRIVED_DATE.getKey() + suffix, Objects.isNull(pqDevVO.getArrivedDate()) ? StrPool.TAB : pqDevVO.getArrivedDate().format(DateTimeFormatter.ofPattern(datePattern))); // 检测日期 - baseModelMap.put(prefix + BaseReportKeyEnum.TEST_DATE.getKey() + suffix, Objects.isNull(pqDevVO.getCheckTime()) ? StrPool.TAB : String.valueOf(pqDevVO.getCheckTime()).substring(0, 10)); baseModelMap.put(prefix + BaseReportKeyEnum.TEMPERATURE.getKey() + suffix, Objects.isNull(pqDevVO.getTemperature()) ? StrPool.TAB : pqDevVO.getTemperature().toString()); baseModelMap.put(prefix + BaseReportKeyEnum.HUMIDITY.getKey() + suffix, Objects.isNull(pqDevVO.getHumidity()) ? StrPool.TAB : pqDevVO.getHumidity().toString()); baseModelMap.put(prefix + BaseReportKeyEnum.YEAR.getKey() + suffix, DateUtil.format(new Date(), DatePattern.NORM_YEAR_PATTERN)); baseModelMap.put(prefix + BaseReportKeyEnum.MONTH.getKey() + suffix, DateUtil.format(new Date(), DatePattern.SIMPLE_MONTH_PATTERN).substring(4)); baseModelMap.put(prefix + BaseReportKeyEnum.DAY.getKey() + suffix, DateUtil.format(new Date(), DatePattern.PURE_DATE_PATTERN).substring(6)); - baseModelMap.put(prefix + BaseReportKeyEnum.YEAR_MONTH_DAY.getKey() + suffix, DateUtil.format(new Date(), DatePattern.NORM_DATE_PATTERN)); + baseModelMap.put(prefix + BaseReportKeyEnum.YEAR_MONTH_DAY.getKey() + suffix, DateUtil.format(new Date(), datePattern)); return baseModelMap; } @@ -1474,7 +1490,12 @@ public class PqReportServiceImpl extends ServiceImpl i //String scriptId = adPlan.getScriptId(); Integer devChns = pqDevVO.getDevChns(); for (int i = 1; i <= devChns; i++) { - ClassPathResource resource = new ClassPathResource("/model/report_table.docx"); + String path = "/model/report_table.docx"; + DevType devType = devTypeService.getById(pqDevVO.getDevType()); + if (devType.getName().equals("PQ-COM")) { + path = "/model/report_table - PQ-COM.docx"; + } + ClassPathResource resource = new ClassPathResource(path); XWPFDocument dataModelDocumentTemp = new XWPFDocument(resource.getInputStream()); SingleNonHarmParam singleNonHarmParam = new SingleNonHarmParam(); @@ -1502,11 +1523,20 @@ public class PqReportServiceImpl extends ServiceImpl i List adHarmonicResultList = adHarmonicService.listAllResultData(devReportParam.getScriptId(), devReportParam.getPlanCode(), devReportParam.getDevId() + "_" + i); // 填充数据 + int finalI = i; indexKeysMap.forEach((index, keys) -> { String s1 = keys.stream().findFirst().get(); // 谐波类 if (DetectionCodeEnum.V2_50.getCode().equals(s1) || DetectionCodeEnum.I2_50.getCode().equals(s1) || DetectionCodeEnum.SV_1_49.getCode().equals(s1) || DetectionCodeEnum.SI_1_49.getCode().equals(s1)) { - fillMapValueHarm(adHarmonicResultList, dataModelMap, keys, index); + // 查找一下U1 + double u1 = 57.74; + List rawData = adHarmonicService.listAllRawData(devReportParam.getScriptId(), devReportParam.getPlanCode(), devReportParam.getDevId() + "_" + finalI); + AdHarmonicResult adHarmonicResult = rawData.stream().filter(obj -> obj.getAdType().equals(DetectionCodeEnum.V2_50.getCode())).sorted((obj1, obj2) -> obj2.getTimeId().compareTo(obj1.getTimeId())).findFirst().orElse(null); + if (ObjectUtil.isNotNull(adHarmonicResult)) { + String aValue1 = adHarmonicResult.getAValue1(); + u1 = Double.parseDouble(aValue1); + } + fillMapValueHarm(adHarmonicResultList, dataModelMap, keys, index, u1); } else { // 非谐波类 if (DetectionCodeEnum.V_UNBAN.getCode().equals(s1) || DetectionCodeEnum.FREQ.getCode().equals(s1)) { @@ -1574,14 +1604,14 @@ public class PqReportServiceImpl extends ServiceImpl i * @param keys * @param index */ - private void fillMapValueHarm(List allHarmonicResultList, Map dataModelMap, Set keys, String index) { + private void fillMapValueHarm(List allHarmonicResultList, Map dataModelMap, Set keys, String index, double baseValue) { keys.forEach(key -> { List resultList = allHarmonicResultList.stream().filter(obj -> obj.getAdType().equals(key) && obj.getSort().toString().equals(index)).collect(Collectors.toList()); if (CollectionUtil.isNotEmpty(resultList)) { AdHarmonicResult adHarmonicResult = resultList.get(0); if (Objects.nonNull(adHarmonicResult)) { if (DetectionCodeEnum.V2_50.getCode().equals(key) || DetectionCodeEnum.SV_1_49.getCode().equals(key)) { - fillHarm(dataModelMap, adHarmonicResult, index, key, 57.74, 100); + fillHarm(dataModelMap, adHarmonicResult, index, key, baseValue, 100); } if (DetectionCodeEnum.I2_50.getCode().equals(key) || DetectionCodeEnum.SI_1_49.getCode().equals(key)) { fillHarm(dataModelMap, adHarmonicResult, index, key, 1, 1); diff --git a/detection/src/main/java/com/njcn/gather/result/service/impl/ResultServiceImpl.java b/detection/src/main/java/com/njcn/gather/result/service/impl/ResultServiceImpl.java index 59df73fc..165f6aa5 100644 --- a/detection/src/main/java/com/njcn/gather/result/service/impl/ResultServiceImpl.java +++ b/detection/src/main/java/com/njcn/gather/result/service/impl/ResultServiceImpl.java @@ -353,7 +353,7 @@ public class ResultServiceImpl implements IResultService { unit = ResultUnitEnum.V_ABSOLUTELY.getUnit(); } List v = scriptDtlIndexList.stream().filter(x -> "VOL".equals(x.getValueType())).collect(Collectors.toList()); - dtlType.setScriptTypeName(dictTree.getName() + "=" + v.get(0).getValue().intValue() + unit); + dtlType.setScriptTypeName(dictTree.getName() + "=" + v.get(0).getValue() + unit); break; /** * 电流 @@ -367,7 +367,7 @@ public class ResultServiceImpl implements IResultService { unitI = ResultUnitEnum.I_ABSOLUTELY.getUnit(); } List I = scriptDtlIndexList.stream().filter(x -> "CUR".equals(x.getValueType())).collect(Collectors.toList()); - dtlType.setScriptTypeName(dictTree.getName() + "=" + I.get(0).getValue().intValue() + unitI); + dtlType.setScriptTypeName(dictTree.getName() + "=" + I.get(0).getValue() + unitI); break; /** * 谐波电压 @@ -392,7 +392,7 @@ public class ResultServiceImpl implements IResultService { + "次" + dictTree.getName()); // + "(含有率为GB/T)" } else { //叠加5%的2次谐波电压 - dtlType.setScriptTypeName("叠加" + hv.get(0).getValue().intValue() + ResultUnitEnum.HV.getUnit() + "的" + hv.get(0).getHarmNum().intValue() + "次" + dictTree.getName()); + dtlType.setScriptTypeName("叠加" + hv.get(0).getValue() + ResultUnitEnum.HV.getUnit() + "的" + hv.get(0).getHarmNum().intValue() + "次" + dictTree.getName()); } break; /** @@ -426,7 +426,7 @@ public class ResultServiceImpl implements IResultService { dtlType.setScriptTypeName(a.toString()); } else { //叠加5%的2次谐波电压 - dtlType.setScriptTypeName("叠加" + harmInNumList.get(0).getValue().intValue() + ResultUnitEnum.HV.getUnit() + "的" + harmInNumList.get(0).getHarmNum() + "次" + dictTree.getName()); + dtlType.setScriptTypeName("叠加" + harmInNumList.get(0).getValue() + ResultUnitEnum.HV.getUnit() + "的" + harmInNumList.get(0).getHarmNum() + "次" + dictTree.getName()); } break; @@ -483,7 +483,7 @@ public class ResultServiceImpl implements IResultService { }); } else { PqScriptDtls dtls = harmNumVMap.entrySet().iterator().next().getValue().get(0); - a.append(dtls.getValue().intValue() + ResultUnitEnum.HV.getUnit() + "的" + dtls.getHarmNum().intValue() + ResultUnitEnum.HV.getName()); + a.append(dtls.getValue() + ResultUnitEnum.HV.getUnit() + "的" + dtls.getHarmNum().intValue() + ResultUnitEnum.HV.getName()); } a.append(","); if (harmNumIMap.size() > 1) { @@ -502,7 +502,7 @@ public class ResultServiceImpl implements IResultService { }); } else { PqScriptDtls dtls = harmNumIMap.entrySet().iterator().next().getValue().get(0); - a.append(dtls.getValue().intValue() + ResultUnitEnum.HI.getUnit() + "的" + dtls.getHarmNum().intValue() + "次" + ResultUnitEnum.HI.getName()); + a.append(dtls.getValue() + ResultUnitEnum.HI.getUnit() + "的" + dtls.getHarmNum().intValue() + "次" + ResultUnitEnum.HI.getName()); } dtlType.setScriptTypeName(a.toString()); break; diff --git a/detection/src/main/java/com/njcn/gather/script/service/impl/PqScriptDtlsServiceImpl.java b/detection/src/main/java/com/njcn/gather/script/service/impl/PqScriptDtlsServiceImpl.java index 4de1e1f2..77a351ff 100644 --- a/detection/src/main/java/com/njcn/gather/script/service/impl/PqScriptDtlsServiceImpl.java +++ b/detection/src/main/java/com/njcn/gather/script/service/impl/PqScriptDtlsServiceImpl.java @@ -1032,11 +1032,12 @@ public class PqScriptDtlsServiceImpl extends ServiceImpl