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

104 lines
4.0 KiB
Java
Raw Permalink Normal View History

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 "";
}
}