27 Commits

Author SHA1 Message Date
caozehui
0fa7ec91c4 微调 2025-12-30 08:36:09 +08:00
caozehui
fdb4b7060a 暂态前后延时间 2025-12-24 14:41:47 +08:00
3f47b0f008 微调 压缩文件的编解码保持一致 2025-12-23 10:29:40 +08:00
caozehui
cb431b5af1 Merge remote-tracking branch 'origin/master'
# Conflicts:
#	entrance/src/main/resources/application.yml
2025-12-23 10:22:04 +08:00
caozehui
153428b24f 合并qr_branch分支代码 2025-12-22 10:30:56 +08:00
caozehui
d92544f7c4 Merge branch 'qr_branch'
# Conflicts:
#	detection/src/main/java/com/njcn/gather/detection/handler/SocketDevResponseService.java
#	detection/src/main/java/com/njcn/gather/detection/handler/SocketSourceResponseService.java
#	detection/src/main/java/com/njcn/gather/detection/service/impl/DetectionServiceImpl.java
#	detection/src/main/java/com/njcn/gather/report/service/impl/PqReportServiceImpl.java
#	detection/src/main/java/com/njcn/gather/report/utils/BookmarkUtil.java
#	detection/src/main/java/com/njcn/gather/report/utils/Docx4jUtil.java
#	detection/src/main/java/com/njcn/gather/result/service/impl/ResultServiceImpl.java
#	entrance/src/main/resources/application.yml
2025-12-22 08:52:13 +08:00
caozehui
3f1ae1886a Merge remote-tracking branch 'origin/qr_branch' into qr_branch 2025-12-19 16:17:40 +08:00
caozehui
af4863af65 2楼报告封面调整:装置编码改成装置编号 2025-12-19 16:17:33 +08:00
caozehui
4b7c1259a7 ICD映射上传路径微调 2025-12-16 16:18:02 +08:00
caozehui
de1496389e 微调 2025-12-11 16:19:26 +08:00
2012221b73 河北报告定制化改动 2025-12-02 13:37:35 +08:00
caozehui
f4df52dd1c 暂态只有a项时,当a相无数据时判断为不符合 2025-11-27 18:36:38 +08:00
41c557118c Merge remote-tracking branch 'origin/qr_branch' into qr_branch 2025-11-26 10:22:15 +08:00
6596a572d6 修复数模式的相序校验电流加量问题 2025-11-26 10:17:33 +08:00
caozehui
786bd5d660 报告调整 2025-11-19 13:20:35 +08:00
caozehui
21d2c2b7a7 报告调整 2025-11-19 13:20:17 +08:00
caozehui
48fa4c2390 报告日期格式根据参数动态变化 2025-11-19 10:43:52 +08:00
caozehui
9d15351fba 微调 2025-11-06 09:25:09 +08:00
caozehui
2339a006ec 补充源未知异常推送消息 2025-11-06 08:51:54 +08:00
caozehui
7fd904ab79 系数校准接收数据个数调整 2025-11-05 16:02:53 +08:00
caozehui
40cb153656 报告模板调整 2025-11-03 08:38:57 +08:00
caozehui
f922ee97aa 报告路径,报告名称修改 2025-10-30 09:06:40 +08:00
caozehui
26c5e933f5 微调 2025-10-29 09:01:45 +08:00
caozehui
c7d8fc3168 报告封面微调 2025-10-22 11:05:21 +08:00
caozehui
bb22857fc9 报告微调 2025-10-21 15:42:22 +08:00
caozehui
6ef908ff60 微调 2025-09-03 20:32:14 +08:00
caozehui
7461801657 微调 2025-09-03 16:18:52 +08:00
25 changed files with 161 additions and 83 deletions

View File

@@ -688,7 +688,7 @@ public class SocketDevResponseService {
*/ */
private Double reduceList(List<Double> valList) { private Double reduceList(List<Double> valList) {
// valList.subList(0, 5).clear(); // valList.subList(0, 5).clear();
valList.subList(valList.size() - 2, valList.size()).clear(); valList.subList(valList.size() - 2, valList.size()).clear();
return valList.stream().mapToDouble(Double::doubleValue).average().getAsDouble(); return valList.stream().mapToDouble(Double::doubleValue).average().getAsDouble();
} }

View File

@@ -809,6 +809,9 @@ public class DetectionServiceImpl {
)) ))
.collect(Collectors.toList()); .collect(Collectors.toList());
DetectionData a = setDetectionData(isQualified, dataRule, mag, fData, dur, magErrList, channelTypeAList, TYPE_A, scale); DetectionData a = setDetectionData(isQualified, dataRule, mag, fData, dur, magErrList, channelTypeAList, TYPE_A, scale);
if (CollUtil.isEmpty(mag.get(TYPE_A))) {
a.setIsData(2);
}
result.setAValue(JSON.toJSONString(a)); result.setAValue(JSON.toJSONString(a));
result.setTValue(JSON.toJSONString(a)); result.setTValue(JSON.toJSONString(a));
result.setResultFlag(a.getIsData()); result.setResultFlag(a.getIsData());
@@ -2206,32 +2209,32 @@ public class DetectionServiceImpl {
switch (dataRule) { switch (dataRule) {
case SECTION_VALUE: case SECTION_VALUE:
if (aStandardDev.size() > 2) { if (aStandardDev.size() > 2) {
aStandardDev.remove(aIdxs.get(0)); aStandardDev.remove(0);
aStandardDev.remove(aIdxs.get(aIdxs.size() - 1)); aStandardDev.remove(aStandardDev.size() - 1);
List<Double> newArray = DetectionUtil.getNewArray(aDev, aIdxs.subList(1, aIdxs.size() - 1)); List<Double> newArray = DetectionUtil.getNewArray(aDev, aIdxs.subList(1, aIdxs.size() - 1));
aDev.clear(); aDev.clear();
aDev.addAll(newArray); aDev.addAll(newArray);
} }
if (bStandardDev.size() > 2) { if (bStandardDev.size() > 2) {
bStandardDev.remove(bIdxs.get(0)); bStandardDev.remove(0);
bStandardDev.remove(bIdxs.get(bIdxs.size() - 1)); bStandardDev.remove(bStandardDev.size() - 1);
List<Double> newArray = DetectionUtil.getNewArray(bDev, bIdxs.subList(1, bIdxs.size() - 1)); List<Double> newArray = DetectionUtil.getNewArray(bDev, bIdxs.subList(1, bIdxs.size() - 1));
bDev.clear(); bDev.clear();
bDev.addAll(newArray); bDev.addAll(newArray);
} }
if (cStandardDev.size() > 2) { if (cStandardDev.size() > 2) {
cStandardDev.remove(cIdxs.get(0)); cStandardDev.remove(0);
cStandardDev.remove(cIdxs.get(cIdxs.size() - 1)); cStandardDev.remove(cStandardDev.size() - 1);
List<Double> newArray = DetectionUtil.getNewArray(cDev, cIdxs.subList(1, cIdxs.size() - 1)); List<Double> newArray = DetectionUtil.getNewArray(cDev, cIdxs.subList(1, cIdxs.size() - 1));
cDev.clear(); cDev.clear();
cDev.addAll(newArray); cDev.addAll(newArray);
} }
if (tStandardDev.size() > 2) { if (tStandardDev.size() > 2) {
tStandardDev.remove(tIdxs.get(0)); tStandardDev.remove(0);
tStandardDev.remove(tIdxs.get(tIdxs.size() - 1)); tStandardDev.remove(tStandardDev.size() - 1);
List<Double> newArray = DetectionUtil.getNewArray(tDev, tIdxs.subList(1, tIdxs.size() - 1)); List<Double> newArray = DetectionUtil.getNewArray(tDev, tIdxs.subList(1, tIdxs.size() - 1));
tDev.clear(); tDev.clear();
tDev.addAll(newArray); tDev.addAll(newArray);
@@ -2407,8 +2410,8 @@ public class DetectionServiceImpl {
switch (dataRule) { switch (dataRule) {
case SECTION_VALUE: case SECTION_VALUE:
if (value.size() > 2) { if (value.size() > 2) {
value.remove(idx.get(0)); value.remove(0);
value.remove(idx.get(idx.size() - 1)); value.remove(value.size() - 1);
List<Double> newArray = DetectionUtil.getNewArray(devMap.get(typeKey).get(key), idx.subList(1, idx.size() - 1)); List<Double> newArray = DetectionUtil.getNewArray(devMap.get(typeKey).get(key), idx.subList(1, idx.size() - 1));
devMap.get(typeKey).get(key).clear(); devMap.get(typeKey).get(key).clear();
devMap.get(typeKey).get(key).addAll(newArray); devMap.get(typeKey).get(key).addAll(newArray);

View File

@@ -336,7 +336,7 @@ public class NettyDevClientHandler extends SimpleChannelInboundHandler<String> {
devLineTestResult.setDeviceName(dev.getDevName()); devLineTestResult.setDeviceName(dev.getDevName());
Integer[] resultFlags = dev.getMonitorList().stream() Integer[] resultFlags = dev.getMonitorList().stream()
.map(monitor -> ResultEnum.NETWORK_TIMEOUT) .map(monitor -> ResultEnum.NETWORK_TIMEOUT.getValue())
.toArray(Integer[]::new); .toArray(Integer[]::new);
devLineTestResult.setChnResult(resultFlags); devLineTestResult.setChnResult(resultFlags);

View File

@@ -137,6 +137,10 @@ public class PqIcdPathServiceImpl extends ServiceImpl<PqIcdPathMapper, PqIcdPath
// String workDir = "D:\\program\\CN_Gather"; // String workDir = "D:\\program\\CN_Gather";
// 获取映射文件存放文件夹 // 获取映射文件存放文件夹
String dirPath = workDir + "\\9100"; String dirPath = workDir + "\\9100";
int index = workDir.indexOf("\\resources\\extraResources\\java");
if (index != -1) {
dirPath = workDir.substring(0, workDir.indexOf("\\resources\\extraResources\\java")) + "\\9100";
}
return dirPath; return dirPath;
} }
@@ -190,6 +194,17 @@ public class PqIcdPathServiceImpl extends ServiceImpl<PqIcdPathMapper, PqIcdPath
@Override @Override
@Transactional @Transactional
public boolean deleteIcd(List<String> ids) { public boolean deleteIcd(List<String> ids) {
List<PqIcdPath> pqIcdPaths = this.listByIds(ids);
String commInstallPath = this.getCommInstallPath();
pqIcdPaths.forEach(pqIcdPath -> {
String mappingFilePath = commInstallPath + "\\DeviceControl\\Config\\" + pqIcdPath.getName() + ".txt";
Path path = Paths.get(mappingFilePath);
File file = path.toFile();
if (file.exists()) {
file.delete();
}
});
return this.lambdaUpdate().in(PqIcdPath::getId, ids).set(PqIcdPath::getState, DataStateEnum.DELETED.getCode()).update(); return this.lambdaUpdate().in(PqIcdPath::getId, ids).set(PqIcdPath::getState, DataStateEnum.DELETED.getCode()).update();
} }

View File

@@ -1722,8 +1722,8 @@ public class AdPlanServiceImpl extends ServiceImpl<AdPlanMapper, AdPlan> impleme
String zipFileName = URLEncoder.encode(subPlan.getName() + ".zip", "UTF-8"); String zipFileName = URLEncoder.encode(subPlan.getName() + ".zip", "UTF-8");
File zipFile = FileUtil.file(tempDir, zipFileName); File zipFile = FileUtil.file(tempDir, zipFileName);
// 先将json文件添加到zip中 // 先将json文件添加到zip中使用UTF-8编码
ZipUtil.zip(jsonFile.getAbsolutePath(), zipFile.getAbsolutePath()); ZipUtil.zip(zipFile, CharsetUtil.CHARSET_UTF_8, false, jsonFile);
// 创建一个临时目录存放两个文件 // 创建一个临时目录存放两个文件
@@ -1745,8 +1745,8 @@ public class AdPlanServiceImpl extends ServiceImpl<AdPlanMapper, AdPlan> impleme
} }
// 重新创建zip文件包含所有文件 // 重新创建zip文件包含所有文件使用UTF-8编码
ZipUtil.zip(tempZipDir.getAbsolutePath(), zipFile.getAbsolutePath()); ZipUtil.zip(zipFile, CharsetUtil.CHARSET_UTF_8, false, FileUtil.file(tempZipDir));
// 删除临时目录 // 删除临时目录
FileUtil.del(tempZipDir); FileUtil.del(tempZipDir);
@@ -1780,9 +1780,9 @@ public class AdPlanServiceImpl extends ServiceImpl<AdPlanMapper, AdPlan> impleme
File zipFile = FileUtil.file(tempDir, file.getOriginalFilename()); File zipFile = FileUtil.file(tempDir, file.getOriginalFilename());
file.transferTo(zipFile); file.transferTo(zipFile);
// 解压zip文件 // 解压zip文件使用UTF-8编码
File unzipDir = FileUtil.mkdir(FileUtil.file(tempDir, "unzip")); File unzipDir = FileUtil.mkdir(FileUtil.file(tempDir, "unzip"));
ZipUtil.unzip(zipFile.getAbsolutePath(), unzipDir.getAbsolutePath()); ZipUtil.unzip(zipFile, unzipDir, CharsetUtil.CHARSET_UTF_8);
// 查找解压目录中的json文件 // 查找解压目录中的json文件
File[] files = unzipDir.listFiles(); File[] files = unzipDir.listFiles();
@@ -2100,8 +2100,8 @@ public class AdPlanServiceImpl extends ServiceImpl<AdPlanMapper, AdPlan> impleme
} }
} }
// 重新创建zip文件包含所有文件 // 重新创建zip文件包含所有文件使用UTF-8编码
ZipUtil.zip(tempZipDir.getAbsolutePath(), zipFile.getAbsolutePath()); ZipUtil.zip(zipFile, CharsetUtil.CHARSET_UTF_8, false, FileUtil.file(tempZipDir));
// 删除临时目录 // 删除临时目录
FileUtil.del(tempZipDir); FileUtil.del(tempZipDir);

View File

@@ -39,7 +39,10 @@ public enum BaseReportKeyEnum {
CREATE_DATE("createDate","生产日期"), CREATE_DATE("createDate","生产日期"),
TEMPERATURE("temp","温度"), TEMPERATURE("temp","温度"),
HUMIDITY("hum","相对湿度"), HUMIDITY("hum","相对湿度"),
DELEGATE("delegate","委托方"); DELEGATE("delegate","委托方"),
CREATEDATE("createDate","出厂日期"),
HW_VERSION("hardwareVersion","硬件版本"),
SW_VERSION("softwareVersion","软件版本");
private String key; private String key;

View File

@@ -61,6 +61,7 @@ import com.njcn.gather.report.service.IPqReportService;
import com.njcn.gather.result.service.IResultService; import com.njcn.gather.result.service.IResultService;
import com.njcn.gather.script.pojo.vo.PqScriptDtlDataVO; import com.njcn.gather.script.pojo.vo.PqScriptDtlDataVO;
import com.njcn.gather.script.service.IPqScriptDtlsService; import com.njcn.gather.script.service.IPqScriptDtlsService;
import com.njcn.gather.storage.pojo.param.SingleNonHarmParam;
import com.njcn.gather.storage.pojo.po.SimAndDigHarmonicResult; import com.njcn.gather.storage.pojo.po.SimAndDigHarmonicResult;
import com.njcn.gather.storage.pojo.po.SimAndDigNonHarmonicResult; import com.njcn.gather.storage.pojo.po.SimAndDigNonHarmonicResult;
import com.njcn.gather.storage.service.SimAndDigHarmonicService; import com.njcn.gather.storage.service.SimAndDigHarmonicService;
@@ -88,6 +89,7 @@ import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.net.ftp.FTPClient; import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPReply; import org.apache.commons.net.ftp.FTPReply;
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.docx4j.jaxb.Context; import org.docx4j.jaxb.Context;
import org.docx4j.openpackaging.packages.WordprocessingMLPackage; import org.docx4j.openpackaging.packages.WordprocessingMLPackage;
import org.docx4j.openpackaging.parts.WordprocessingML.MainDocumentPart; import org.docx4j.openpackaging.parts.WordprocessingML.MainDocumentPart;
@@ -115,6 +117,7 @@ import java.nio.file.NoSuchFileException;
import java.nio.file.Path; import java.nio.file.Path;
import java.nio.file.Paths; import java.nio.file.Paths;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.List; import java.util.List;
import java.util.*; import java.util.*;
import java.util.concurrent.CompletableFuture; import java.util.concurrent.CompletableFuture;
@@ -164,6 +167,8 @@ public class PqReportServiceImpl extends ServiceImpl<PqReportMapper, PqReport> i
@Value("${qr.gcDev.path}") @Value("${qr.gcDev.path}")
private String gcDevPath; private String gcDevPath;
@Value("${report.dateFormat}")
private String dateFormat;
private final IPqDevService iPqDevService; private final IPqDevService iPqDevService;
private final PqDevMapper pqDevMapper; private final PqDevMapper pqDevMapper;
@@ -2020,6 +2025,18 @@ public class PqReportServiceImpl extends ServiceImpl<PqReportMapper, PqReport> i
baseModelMap.put(BaseReportKeyEnum.DEV_TYPE.getKey(), devType.getName()); baseModelMap.put(BaseReportKeyEnum.DEV_TYPE.getKey(), devType.getName());
// 检测员 // 检测员
baseModelMap.put(BaseReportKeyEnum.INSPECTOR.getKey(), pqDevVO.getCheckBy() + ""); baseModelMap.put(BaseReportKeyEnum.INSPECTOR.getKey(), pqDevVO.getCheckBy() + "");
baseModelMap.put(BaseReportKeyEnum.INSPECTOR.getKey(), pqDevVO.getCheckBy() + "");
String datePattern = DatePattern.NORM_DATE_PATTERN;
if (DatePattern.CHINESE_DATE_PATTERN.equals(dateFormat)) {
datePattern = DatePattern.CHINESE_DATE_PATTERN;
}
// 出厂日期
baseModelMap.put(BaseReportKeyEnum.CREATEDATE.getKey(), pqDevVO.getCreateDate().format(DateTimeFormatter.ofPattern(datePattern)));
// 硬件版本
baseModelMap.put(BaseReportKeyEnum.HW_VERSION.getKey(), StrUtil.isNotBlank(pqDevVO.getHardwareVersion()) ? pqDevVO.getHardwareVersion() : StrUtil.EMPTY);
// 软件版本
baseModelMap.put(BaseReportKeyEnum.SW_VERSION.getKey(), StrUtil.isNotBlank(pqDevVO.getSoftwareVersion()) ? pqDevVO.getSoftwareVersion() : StrUtil.EMPTY);
// 调试日期 // 调试日期
if (pqDevVO.getCheckTime() != null) { if (pqDevVO.getCheckTime() != null) {
baseModelMap.put(BaseReportKeyEnum.TEST_DATE.getKey(), DateUtil.format(pqDevVO.getCheckTime(), DatePattern.CHINESE_DATE_PATTERN)); baseModelMap.put(BaseReportKeyEnum.TEST_DATE.getKey(), DateUtil.format(pqDevVO.getCheckTime(), DatePattern.CHINESE_DATE_PATTERN));
@@ -2160,7 +2177,19 @@ public class PqReportServiceImpl extends ServiceImpl<PqReportMapper, PqReport> i
private void dealDataModel(List<InputStream> wordFileInputStreams, DevReportParam devReportParam, PqDevVO pqDevVO) throws Exception { private void dealDataModel(List<InputStream> wordFileInputStreams, DevReportParam devReportParam, PqDevVO pqDevVO) throws Exception {
Integer devChns = pqDevVO.getDevChns(); Integer devChns = pqDevVO.getDevChns();
for (int i = 1; i <= devChns; i++) { 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();
singleNonHarmParam.setPlanCode(devReportParam.getPlanCode());
singleNonHarmParam.setDevId(pqDevVO.getId());
singleNonHarmParam.setChannelNo(i);
// 获取数据 // 获取数据
Map<String, String> dataModelMap = new HashMap<>(16); Map<String, String> dataModelMap = new HashMap<>(16);
// 读取模板文件中的占位符 // 读取模板文件中的占位符
@@ -2178,11 +2207,20 @@ public class PqReportServiceImpl extends ServiceImpl<PqReportMapper, PqReport> i
List<SimAndDigHarmonicResult> adHarmonicResultList = adHarmonicService.listAllResultData(devReportParam.getScriptId(), devReportParam.getPlanCode(), devReportParam.getDevId() + "_" + i); List<SimAndDigHarmonicResult> adHarmonicResultList = adHarmonicService.listAllResultData(devReportParam.getScriptId(), devReportParam.getPlanCode(), devReportParam.getDevId() + "_" + i);
// 填充数据 // 填充数据
int finalI = i;
indexKeysMap.forEach((index, keys) -> { indexKeysMap.forEach((index, keys) -> {
String s1 = keys.stream().findFirst().get(); 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)) { 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<SimAndDigHarmonicResult> rawData = adHarmonicService.listAllRawData(devReportParam.getScriptId(), devReportParam.getPlanCode(), devReportParam.getDevId() + "_" + finalI);
SimAndDigHarmonicResult 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 { } else {
// 非谐波类 // 非谐波类
if (DetectionCodeEnum.V_UNBAN.getCode().equals(s1) || DetectionCodeEnum.FREQ.getCode().equals(s1)) { if (DetectionCodeEnum.V_UNBAN.getCode().equals(s1) || DetectionCodeEnum.FREQ.getCode().equals(s1)) {
@@ -2250,14 +2288,14 @@ public class PqReportServiceImpl extends ServiceImpl<PqReportMapper, PqReport> i
* @param keys key * @param keys key
* @param index index * @param index index
*/ */
private void fillMapValueHarm(List<SimAndDigHarmonicResult> allHarmonicResultList, Map<String, String> dataModelMap, Set<String> keys, String index) { private void fillMapValueHarm(List<SimAndDigHarmonicResult> allHarmonicResultList, Map<String, String> dataModelMap, Set<String> keys, String index, double baseValue) {
keys.forEach(key -> { keys.forEach(key -> {
List<SimAndDigHarmonicResult> resultList = allHarmonicResultList.stream().filter(obj -> obj.getAdType().equals(key) && obj.getSort().toString().equals(index)).collect(Collectors.toList()); List<SimAndDigHarmonicResult> resultList = allHarmonicResultList.stream().filter(obj -> obj.getAdType().equals(key) && obj.getSort().toString().equals(index)).collect(Collectors.toList());
if (CollectionUtil.isNotEmpty(resultList)) { if (CollectionUtil.isNotEmpty(resultList)) {
SimAndDigHarmonicResult adHarmonicResult = resultList.get(0); SimAndDigHarmonicResult adHarmonicResult = resultList.get(0);
if (Objects.nonNull(adHarmonicResult)) { if (Objects.nonNull(adHarmonicResult)) {
if (DetectionCodeEnum.V2_50.getCode().equals(key) || DetectionCodeEnum.SV_1_49.getCode().equals(key)) { 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)) { if (DetectionCodeEnum.I2_50.getCode().equals(key) || DetectionCodeEnum.SI_1_49.getCode().equals(key)) {
fillHarm(dataModelMap, adHarmonicResult, index, key, 1, 1); fillHarm(dataModelMap, adHarmonicResult, index, key, 1, 1);

View File

@@ -146,11 +146,11 @@ public class ResultServiceImpl implements IResultService {
formContentVO.setErrorSysId(plan.getErrorSysId()); formContentVO.setErrorSysId(plan.getErrorSysId());
String scriptId = null; String scriptId = null;
if (ObjectUtil.isNotNull(plan)) { if (ObjectUtil.isNotNull(plan)) {
formContentVO.setDataRule(plan.getDataRule());
scriptId = plan.getScriptId(); scriptId = plan.getScriptId();
adPlanService.visualize(Collections.singletonList(plan)); adPlanService.visualize(Collections.singletonList(plan));
formContentVO.setScriptName(plan.getScriptId());
} }
formContentVO.setScriptName(plan.getScriptId());
formContentVO.setDataRule(plan.getDataRule());
formContentVO.setDeviceName(pqDevService.getById(queryParam.getDeviceId()).getName()); formContentVO.setDeviceName(pqDevService.getById(queryParam.getDeviceId()).getName());
List<Map<String, String>> chnList = new ArrayList<>(); List<Map<String, String>> chnList = new ArrayList<>();
@@ -983,7 +983,7 @@ public class ResultServiceImpl implements IResultService {
DictData dictData = dictDataService.getDictDataById(param.getPatternId()); DictData dictData = dictDataService.getDictDataById(param.getPatternId());
if (PatternEnum.CONTRAST.getValue().equals(dictData.getCode())) { if (PatternEnum.CONTRAST.getValue().equals(dictData.getCode())) {
this.createTempResultTable(param.getCode() + "_temp", true); this.createTempResultTable(param.getCode() + "_temp", true);
this.contrastCalculateResult(param.getPlanId(), param.getCode() + "_temp", param.getErrorSysId(), param.getDeviceId(), param.getChnNum(), param.getDataRuleId()); this.contrastCalculateResult(param.getPlanId(), param.getCode() + "_temp", param.getErrorSysId(), param.getDeviceId(), false, param.getDataRuleId());
} else { } else {
this.createTempResultTable(param.getCode() + "_temp", false); this.createTempResultTable(param.getCode() + "_temp", false);
this.simAndDigCalculateResult(param.getPlanId(), param.getScriptId(), param.getCode() + "_temp", param.getErrorSysId(), param.getDeviceId(), param.getDataRuleId()); this.simAndDigCalculateResult(param.getPlanId(), param.getScriptId(), param.getCode() + "_temp", param.getErrorSysId(), param.getDeviceId(), param.getDataRuleId());
@@ -1000,7 +1000,7 @@ public class ResultServiceImpl implements IResultService {
public void reCalculate(ResultParam.ChangeErrorSystemParam param) { public void reCalculate(ResultParam.ChangeErrorSystemParam param) {
DictData dictData = dictDataService.getDictDataById(param.getPatternId()); DictData dictData = dictDataService.getDictDataById(param.getPatternId());
if (PatternEnum.CONTRAST.getValue().equals(dictData.getCode())) { if (PatternEnum.CONTRAST.getValue().equals(dictData.getCode())) {
this.contrastCalculateResult(param.getPlanId(), param.getCode(), param.getErrorSysId(), param.getDeviceId(), param.getChnNum(), param.getDataRuleId()); this.contrastCalculateResult(param.getPlanId(), param.getCode(), param.getErrorSysId(), param.getDeviceId(), true, param.getDataRuleId());
} else { } else {
this.simAndDigCalculateResult(param.getPlanId(), param.getScriptId(), param.getCode(), param.getErrorSysId(), param.getDeviceId(), param.getDataRuleId()); this.simAndDigCalculateResult(param.getPlanId(), param.getScriptId(), param.getCode(), param.getErrorSysId(), param.getDeviceId(), param.getDataRuleId());
} }
@@ -3141,9 +3141,9 @@ public class ResultServiceImpl implements IResultService {
* @param code * @param code
* @param errorSysId * @param errorSysId
* @param deviceId * @param deviceId
* @param chnNum * @param updateResult
*/ */
private void contrastCalculateResult(String planId, String code, String errorSysId, String deviceId, String chnNum, String dataRuleId) { private void contrastCalculateResult(String planId, String code, String errorSysId, String deviceId, boolean updateResult, String dataRuleId) {
String oldCode = code.replace("_temp", ""); String oldCode = code.replace("_temp", "");
Map<String, String> devIdMapComm = new HashMap<>(); Map<String, String> devIdMapComm = new HashMap<>();
@@ -3193,28 +3193,31 @@ public class ResultServiceImpl implements IResultService {
dataRule = DictDataEnum.SECTION_VALUE; dataRule = DictDataEnum.SECTION_VALUE;
} }
pqMonitorService.lambdaUpdate().set(PqMonitor::getRecordedResult, null) if (updateResult) {
.set(PqMonitor::getRealtimeNum, null) pqMonitorService.lambdaUpdate().set(PqMonitor::getRecordedResult, null)
.set(PqMonitor::getRecordedResult, null) .set(PqMonitor::getRealtimeNum, null)
.set(PqMonitor::getRecordedNum, null) .set(PqMonitor::getRecordedResult, null)
.set(PqMonitor::getStatisticsResult, null) .set(PqMonitor::getRecordedNum, null)
.set(PqMonitor::getStatisticsNum, null) .set(PqMonitor::getStatisticsResult, null)
.set(PqMonitor::getResultType, null) .set(PqMonitor::getStatisticsNum, null)
.set(PqMonitor::getQualifiedNum, 0) .set(PqMonitor::getResultType, null)
.eq(PqMonitor::getDevId, deviceId) .set(PqMonitor::getQualifiedNum, 0)
.eq(PqMonitor::getNum, Integer.parseInt(chnNum)) .eq(PqMonitor::getDevId, deviceId)
.eq(PqMonitor::getCheckFlag, 1) // .eq(PqMonitor::getNum, Integer.parseInt(chnNum))
.update(); .eq(PqMonitor::getCheckFlag, 1)
String monitorId = deviceId + CnSocketUtil.SPLIT_TAG + chnNum; .update();
List<AdPair> adPairList = adPairService.listByDevIds(Arrays.asList(monitorId)); }
// String monitorId = deviceId + CnSocketUtil.SPLIT_TAG + chnNum;
List<AdPair> adPairList = adPairService.listByDevIds(Arrays.asList(deviceId));
Map<Integer, List<AdPair>> numAdPairsMap = adPairList.stream().collect(Collectors.groupingBy(AdPair::getNum, Collectors.toList())); Map<Integer, List<AdPair>> numAdPairsMap = adPairList.stream().collect(Collectors.groupingBy(AdPair::getNum, Collectors.toList()));
numAdPairsMap.forEach((num, pairList) -> { numAdPairsMap.forEach((num, pairList) -> {
BiMap<String, String> parsIp = HashBiMap.create();
BiMap<String, String> parsId = HashBiMap.create();
Map<String, Integer> numMap = new HashMap<>(); Map<String, Integer> numMap = new HashMap<>();
Map<String, List<AdPair>> devMonitroIdMap = pairList.stream().collect(Collectors.groupingBy(AdPair::getDevMonitorId, Collectors.toList())); Map<String, List<AdPair>> devMonitroIdMap = pairList.stream().collect(Collectors.groupingBy(AdPair::getDevMonitorId, Collectors.toList()));
devMonitroIdMap.forEach((devMonitorId, pairList1) -> { devMonitroIdMap.forEach((devMonitorId, pairList1) -> {
BiMap<String, String> parsIp = HashBiMap.create();
BiMap<String, String> parsId = HashBiMap.create();
String[] split1 = devMonitorId.split(CnSocketUtil.SPLIT_TAG); String[] split1 = devMonitorId.split(CnSocketUtil.SPLIT_TAG);
AdPair adPair = pairList1.get(0); AdPair adPair = pairList1.get(0);
String[] split2 = adPair.getStdDevMonitorId().split(CnSocketUtil.SPLIT_TAG); String[] split2 = adPair.getStdDevMonitorId().split(CnSocketUtil.SPLIT_TAG);
@@ -3225,42 +3228,40 @@ public class ResultServiceImpl implements IResultService {
numMap.put(devMonitorId, num); numMap.put(devMonitorId, num);
numMap.put(adPair.getStdDevMonitorId(), num); numMap.put(adPair.getStdDevMonitorId(), num);
devIdMapComm.put(standardDev.getIp(), standardDev.getId()); devIdMapComm.put(standardDev.getIp(), standardDev.getId());
});
List<ContrastNonHarmonicResult> devNonHarmonicRawDataList = contrastNonHarmonicService.listAllRawData(oldCode, num, null, false, null, 0, monitorId, null); List<ContrastNonHarmonicResult> devNonHarmonicRawDataList = contrastNonHarmonicService.listAllRawData(oldCode, num, null, false, null, 0, devMonitorId, null);
List<ContrastNonHarmonicResult> stdDevNonHarmonicRawDataList = contrastNonHarmonicService.listAllRawData(oldCode, num, null, false, null, 1, monitorId, null); List<ContrastNonHarmonicResult> stdDevNonHarmonicRawDataList = contrastNonHarmonicService.listAllRawData(oldCode, num, null, false, null, 1, devMonitorId, null);
List<ContrastHarmonicResult> devHarmonicRawDataList = contrastHarmonicService.listAllRawData(oldCode, num, null, false, null, 0, monitorId, null); List<ContrastHarmonicResult> devHarmonicRawDataList = contrastHarmonicService.listAllRawData(oldCode, num, null, false, null, 0, devMonitorId, null);
List<ContrastHarmonicResult> stdDevHarmonicRawDataList = contrastHarmonicService.listAllRawData(oldCode, num, null, false, null, 1, monitorId, null); List<ContrastHarmonicResult> stdDevHarmonicRawDataList = contrastHarmonicService.listAllRawData(oldCode, num, null, false, null, 1, devMonitorId, null);
List<DevData> devData = contrastToList(devNonHarmonicRawDataList, devHarmonicRawDataList, testItemMap, 0); List<DevData> devData = contrastToList(devNonHarmonicRawDataList, devHarmonicRawDataList, testItemMap, 0);
List<DevData> standardDevData = contrastToList(stdDevNonHarmonicRawDataList, stdDevHarmonicRawDataList, testItemMap, 1); List<DevData> standardDevData = contrastToList(stdDevNonHarmonicRawDataList, stdDevHarmonicRawDataList, testItemMap, 1);
if (CollUtil.isNotEmpty(devData) && CollUtil.isNotEmpty(standardDevData)) { if (CollUtil.isNotEmpty(devData) && CollUtil.isNotEmpty(standardDevData)) {
detectionServiceImpl.processing(devData, standardDevData, parsIp, devIdMapComm, testItemMap.keySet().stream().collect(Collectors.toList()), errorSysId, dataRule, numMap, code, null, finalNonWaveDataSourceEnum); detectionServiceImpl.processing(devData, standardDevData, parsIp, devIdMapComm, testItemMap.keySet().stream().collect(Collectors.toList()), errorSysId, dataRule, numMap, code, null, finalNonWaveDataSourceEnum);
parsId.forEach((devMonitorId, stdDevMonitorId) -> { if (updateResult) {
String[] split = devMonitorId.split(CnSocketUtil.SPLIT_TAG); pqMonitorService.updateMonitorResult(devMonitorId, null, finalNonWaveDataSourceEnum, num, null, oldCode);
pqMonitorService.updateMonitorResult(devMonitorId, null, finalNonWaveDataSourceEnum, num, null, oldCode); pqDevService.updateResult(split1[0], null);
pqDevService.updateResult(split[0], null); }
}); }
}
AdPlanTestConfig adPlanTestConfig = adPlanTestConfigService.getByPlanId(planId); AdPlanTestConfig adPlanTestConfig = adPlanTestConfigService.getByPlanId(planId);
for (int i = 1; i <= adPlanTestConfig.getWaveRecord(); i++) { for (int i = 1; i <= adPlanTestConfig.getWaveRecord(); i++) {
devNonHarmonicRawDataList = contrastNonHarmonicService.listAllRawData(oldCode, num, i, true, null, 0, monitorId, null); devNonHarmonicRawDataList = contrastNonHarmonicService.listAllRawData(oldCode, num, i, true, null, 0, devMonitorId, null);
stdDevNonHarmonicRawDataList = contrastNonHarmonicService.listAllRawData(oldCode, num, i, true, null, 1, monitorId, null); stdDevNonHarmonicRawDataList = contrastNonHarmonicService.listAllRawData(oldCode, num, i, true, null, 1, devMonitorId, null);
devHarmonicRawDataList = contrastHarmonicService.listAllRawData(oldCode, num, i, true, null, 0, monitorId, null); devHarmonicRawDataList = contrastHarmonicService.listAllRawData(oldCode, num, i, true, null, 0, devMonitorId, null);
stdDevHarmonicRawDataList = contrastHarmonicService.listAllRawData(oldCode, num, i, true, null, 1, monitorId, null); stdDevHarmonicRawDataList = contrastHarmonicService.listAllRawData(oldCode, num, i, true, null, 1, devMonitorId, null);
devData = contrastToList(devNonHarmonicRawDataList, devHarmonicRawDataList, testItemMap, 0); devData = contrastToList(devNonHarmonicRawDataList, devHarmonicRawDataList, testItemMap, 0);
standardDevData = contrastToList(stdDevNonHarmonicRawDataList, stdDevHarmonicRawDataList, testItemMap, 1); standardDevData = contrastToList(stdDevNonHarmonicRawDataList, stdDevHarmonicRawDataList, testItemMap, 1);
detectionServiceImpl.processing(devData, standardDevData, parsIp, devIdMapComm, testItemMap.keySet().stream().collect(Collectors.toList()), errorSysId, dataRule, numMap, oldCode, i, DataSourceEnum.WAVE_DATA); detectionServiceImpl.processing(devData, standardDevData, parsIp, devIdMapComm, testItemMap.keySet().stream().collect(Collectors.toList()), errorSysId, dataRule, numMap, oldCode, i, DataSourceEnum.WAVE_DATA);
} }
parsId.forEach((devMonitorId, stdDevMonitorId) -> { if (updateResult) {
String[] split = devMonitorId.split(CnSocketUtil.SPLIT_TAG); pqMonitorService.updateMonitorResult(devMonitorId, null, WAVE_DATA, num, adPlanTestConfig.getWaveRecord(), oldCode);
pqMonitorService.updateMonitorResult(devMonitorId, null, WAVE_DATA, num, adPlanTestConfig.getWaveRecord(), oldCode); pqDevService.updateResult(split1[0], null);
pqDevService.updateResult(split[0], null); }
}); });
}); });
} }

View File

@@ -92,6 +92,18 @@ public class PqScriptDtls implements Serializable {
@TableField("RetainTime") @TableField("RetainTime")
private Double retainTime; private Double retainTime;
/**
* 暂态前延时间S
*/
@TableField("FPreTime")
private Double fPreTime;
/**
* 暂态后延时间S
*/
@TableField("FAfterTime")
private Double fAfterTime;
/** /**
* 变动频度(次/min * 变动频度(次/min
*/ */

View File

@@ -68,14 +68,14 @@ public class PqScriptDtlsServiceImpl extends ServiceImpl<PqScriptDtlsMapper, PqS
private final static String INHARM_I = "InHarm_I"; private final static String INHARM_I = "InHarm_I";
private final static String DIP = "Dip"; private final static String DIP = "Dip";
private final static String FLICKER = "Flicker"; private final static String FLICKER = "Flicker";
@Value("${Dip.fPreTime}") // @Value("${Dip.fPreTime}")
private Double fPreTime; // private Double fPreTime;
@Value("${Dip.fRampIn}") @Value("${Dip.fRampIn}")
private Double fRampIn; private Double fRampIn;
@Value("${Dip.fRampOut}") @Value("${Dip.fRampOut}")
private Double fRampOut; private Double fRampOut;
@Value("${Dip.fAfterTime}") // @Value("${Dip.fAfterTime}")
private Double fAfterTime; // private Double fAfterTime;
@Value("${Flicker.waveFluType}") @Value("${Flicker.waveFluType}")
private String waveFluType; private String waveFluType;
@Value("${Flicker.waveType}") @Value("${Flicker.waveType}")
@@ -385,6 +385,8 @@ public class PqScriptDtlsServiceImpl extends ServiceImpl<PqScriptDtlsMapper, PqS
dip.setPhase(phase); dip.setPhase(phase);
dip.setTransValue(dipData.getFTransValue()); dip.setTransValue(dipData.getFTransValue());
dip.setRetainTime(dipData.getRetainTime()); dip.setRetainTime(dipData.getRetainTime());
dip.setFPreTime(dipData.getFPreTime());
dip.setFAfterTime(dipData.getFAfterTime());
info.add(dip); info.add(dip);
} }
} }
@@ -1054,10 +1056,10 @@ public class PqScriptDtlsServiceImpl extends ServiceImpl<PqScriptDtlsMapper, PqS
dipDataDTO.setFTransValue(0.0); dipDataDTO.setFTransValue(0.0);
dipDataDTO.setFRetainTime(0.0); dipDataDTO.setFRetainTime(0.0);
dipDataDTO.setFPreTime(fPreTime); // dipDataDTO.setFPreTime(fPreTime);
dipDataDTO.setFRampIn(fRampIn); dipDataDTO.setFRampIn(fRampIn);
dipDataDTO.setFRampOut(fRampOut); dipDataDTO.setFRampOut(fRampOut);
dipDataDTO.setFAfterTime(fAfterTime); // dipDataDTO.setFAfterTime(fAfterTime);
channelListDTO.setDipData(dipDataDTO); channelListDTO.setDipData(dipDataDTO);
@@ -1104,6 +1106,8 @@ public class PqScriptDtlsServiceImpl extends ServiceImpl<PqScriptDtlsMapper, PqS
if (CollUtil.isNotEmpty(dipList)) { if (CollUtil.isNotEmpty(dipList)) {
PqScriptDtls dip = dipList.get(0); PqScriptDtls dip = dipList.get(0);
dipDataDTO.setFTransValue(dip.getTransValue()); dipDataDTO.setFTransValue(dip.getTransValue());
dipDataDTO.setFPreTime(dip.getFPreTime());
dipDataDTO.setFAfterTime(dip.getFAfterTime());
if (devFly) { if (devFly) {
// if (isValueType) { // if (isValueType) {
dipDataDTO.setFTransValue(dip.getTransValue()); dipDataDTO.setFTransValue(dip.getTransValue());

View File

@@ -9,7 +9,7 @@ spring:
# url: jdbc:mysql://192.168.1.24:13306/pqs91002?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=Asia/Shanghai&rewriteBatchedStatements=true # url: jdbc:mysql://192.168.1.24:13306/pqs91002?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=Asia/Shanghai&rewriteBatchedStatements=true
# username: root # username: root
# password: njcnpqs # password: njcnpqs
url: jdbc:mysql://192.168.2.125:3306/pqs9100?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=Asia/Shanghai&rewriteBatchedStatements=true url: jdbc:mysql://192.168.1.24:13306/pqs9100_nx?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=Asia/Shanghai&rewriteBatchedStatements=true
username: root username: root
password: njcnpqs password: njcnpqs
#初始化建立物理连接的个数、最小、最大连接数 #初始化建立物理连接的个数、最小、最大连接数
@@ -85,6 +85,7 @@ log:
report: report:
template: D:\template template: D:\template
reportDir: D:\report reportDir: D:\report
dateFormat: yyyy年MM月dd日
data: data:
homeDir: D:\data homeDir: D:\data
qr: qr:

1
license.key Normal file
View File

@@ -0,0 +1 @@
AoNUHvLQag9nPPxWDsf5EwwBqifh5wnoFjrU01w+kIA7TPdRl0AQDBSA3IU7AY28Liubt6Rl8CsDtxEDrz8L5m0FqQrmZ1TmIJtZWbBR16NxXRgf8izM5JurYEY6ZbjU021yCu0fitxB0DJZ8LB8zfUDsV1MFGHl+yPjh4ZQrYDffID4rk/mRe/EE6F7bS19upStSOnQxVQVJSXwCVVHgsuFXqiuagM21OmxpYNjqaPnvAKoHRXTTxXn9BrSgZBocxuHB/IE+a0a+Q2eQo4RZa2IQpneEA/QIKEqezqsABxmM33duQ4eKt17hAttISV1J0R1cKpwZ4tYuSoHCuMONA==