SPCResultUtils.java
package com.mycim.valueobject.spc.util;
import com.mycim.framework.utils.lang.StringUtils;
import java.util.ArrayList;
import java.util.List;
/**
* @author kang.zhang
* @since 2021-01-20
*/
public class SPCResultUtils {
private static final String JOB_ID_PREFIX = "JobID=";
private static final String JOB_NAME_PREFIX = " ( ";
private static final String JOB_NAME_SUFFIX = " ) ";
private static final String JOB_URL_PREFIX = "<a href=";
private static final String JOB_URL_SUFFIX = ">Click";
private static final String UNIT_ID_PREFIX = "[";
private static final String UNIT_ID_SUFFIX = "]";
private SPCResultUtils() {
}
public static String parseJobIdFromReasonCode(String reasonCode) {
return StringUtils.substringBefore(StringUtils.substringAfter(reasonCode, JOB_ID_PREFIX), JOB_NAME_PREFIX);
}
public static String parseJobNameFromReasonCode(String reasonCode) {
return StringUtils.substringBefore(StringUtils.substringAfter(reasonCode, JOB_NAME_PREFIX), JOB_NAME_SUFFIX);
}
public static String parseSPCUrlFromReasonCode(String reasonCode) {
return StringUtils.substringBefore(StringUtils.substringAfter(reasonCode, JOB_URL_PREFIX), JOB_URL_SUFFIX);
}
public static String parseUnitIdFromReasonCode(String reasonCode) {
return StringUtils.substringBefore(StringUtils.substringAfter(reasonCode, UNIT_ID_PREFIX), UNIT_ID_SUFFIX);
}
public static String parseSPCUrlHtmlFromReasonCode(String reasonCode) {
return StringUtils.substring(reasonCode, StringUtils.indexOf(reasonCode, JOB_URL_PREFIX));
}
public static List<String> getSPCVioRules(String reasonCode) {
List<String> vioRule = new ArrayList<String>();
String vioInfo = StringUtils.substring(reasonCode, 0, StringUtils.indexOf(reasonCode, JOB_ID_PREFIX));
if (StringUtils.isNotBlank(vioInfo)) {
String[] infos = StringUtils.split(vioInfo, ";");
for (String info : infos) {
String[] rules = StringUtils.split(StringUtils.split(info, "/")[3], "_");
for (String rule : rules) {
if (!vioRule.contains(rule)) {
vioRule.add(rule);
}
}
}
}
return vioRule;
}
public static String buildSpcNonRtResultString(String spcMessage, String jobId, String jobName, String url) {
StringBuilder reasonCode = new StringBuilder();
reasonCode.append(StringUtils.defaultString(spcMessage));
reasonCode.append(JOB_ID_PREFIX).append(StringUtils.defaultString(jobId));
reasonCode.append(JOB_NAME_PREFIX).append(StringUtils.defaultString(jobName)).append(JOB_NAME_SUFFIX);
reasonCode.append(StringUtils.defaultString(url));
return reasonCode.toString();
}
}