Files
UniversalTestSoftware/client/script/check/Check_12ddd0fdb0dc4312975a9007d9ad3f79.java

104 lines
4.0 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
package com.cbsd.client.check;
import com.cbsd.client.check.ICheckInterface;
import java.util.List;
import java.util.Map;
public class Check_12ddd0fdb0dc4312975a9007d9ad3f79 implements ICheckInterface {
/**
* 检查
* @param originalCommand 原始指令数据
* @param preTreatmentCommand 预处理指令数据,若无预处理,则为原始指令数据
* @param repeatCount 重复次数
* @param hitCount 命中次数
* @param latestHitTime 最后命中时间
* @param dataMap 数据集合key为协议字段属性名labelvalue为物理值
* @return 日志信息列表
*/
@Override
public List<String> check(String originalCommand, String preTreatmentCommand, int repeatCount, int hitCount, String latestHitTime, Map<String, String> dataMap) {
java.util.List<String> result = new java.util.ArrayList<>();
String commandPart = "";
//指令内容的后两位
if (originalCommand != null && originalCommand.length() >= 2) {
commandPart = originalCommand.substring(originalCommand.length() - 2);
} else if (originalCommand != null) {
// 如果指令长度不足2位用0补齐
commandPart = String.format("%2s", originalCommand).replace(' ', '0');
} else {
commandPart = "00";
}
String preCommandPart = "";
if (originalCommand != null && preTreatmentCommand.length() >= 2) {
preCommandPart = preTreatmentCommand.substring(preTreatmentCommand.length() - 2);
} else if (preTreatmentCommand != null) {
// 如果指令长度不足2位用0补齐
preCommandPart = String.format("%2s", preTreatmentCommand).replace(' ', '0');
} else {
preCommandPart = "00";
}
String repeatCountStr = String.format("%02d", repeatCount % 100);
String hitCountStr = String.format("%02d", hitCount % 100);
String dataMapPart = "00"; // 默认值
if (dataMap != null && !dataMap.isEmpty()) {
// 遍历dataMap的所有值拼接成一个字符串
StringBuilder allValues = new StringBuilder();
for (Map.Entry<String, String> entry : dataMap.entrySet()) {
String value = entry.getValue();
if (value != null) {
allValues.append(value);
}
}
String allValuesStr = allValues.toString();
if (allValuesStr.length() >= 2) {
// 取最后2位
dataMapPart = allValuesStr.substring(0, 2);
} else if (allValuesStr.length() == 1) {
// 如果只有1位前面补0
dataMapPart = "0" + allValuesStr;
}
// 如果为空,保持默认值"00"
}
if (latestHitTime != null && latestHitTime.length() >= 19) {
// 提取所有数字字符
StringBuilder numbers = new StringBuilder();
for (int i = 0; i < latestHitTime.length(); i++) {
char c = latestHitTime.charAt(i);
if (Character.isDigit(c)) {
numbers.append(c);
}
}
// 检查是否提取到了足够的数字至少14位yyyyMMddHHmmss
if (numbers.length() >= 14) {
// 取前14位数字年月日时分秒
String timeDigits = numbers.substring(6, 14);
// 在最前面补两个0形成8字节16个字符的十六进制表示
result.add("检查脚本0----" + preCommandPart + hitCountStr + repeatCountStr +dataMapPart + timeDigits);
return result;
}
}
// 如果latestHitTime格式不正确返回默认值
result.add("检查脚本1----" + commandPart + "00000000");
return result;
}
/**
* 描述
*
* @return 描述内容
*/
@Override
public String comment() {
return "";
}
}