|
@@ -19,60 +19,75 @@ import java.util.Map;
|
|
|
@Slf4j
|
|
|
public class QCCatalogue {
|
|
|
|
|
|
- protected String status = "-1";
|
|
|
- protected String info = "";
|
|
|
- private Map<String, String> resultDetail = Maps.newHashMap();
|
|
|
- private String className = this.getClass().getSimpleName();
|
|
|
-
|
|
|
- public QCCatalogue() {
|
|
|
- CatalogueUtil.qcCatalogueMap.put(className, this);
|
|
|
- }
|
|
|
+ protected ThreadLocal<String> status = new ThreadLocal<String>();
|
|
|
+ protected ThreadLocal<String> info = new ThreadLocal<String>();
|
|
|
|
|
|
public void execute(InputInfo inputInfo, OutputInfo outputInfo) {
|
|
|
if (outputInfo.getResult().get(className) != null) {
|
|
|
return;
|
|
|
}
|
|
|
- precondExecute(inputInfo, outputInfo);
|
|
|
+ if (!precondExecute(inputInfo, outputInfo)) {
|
|
|
+ variablePreset("-2", "");
|
|
|
+ return;
|
|
|
+ }
|
|
|
try {
|
|
|
+ variablePreset("-1", "");
|
|
|
start(inputInfo, outputInfo);
|
|
|
} catch (Exception e) {
|
|
|
- propertiesClear();
|
|
|
+ variablePreset("-1", "");
|
|
|
log.info(e.getMessage());
|
|
|
}
|
|
|
insertOpt(outputInfo);
|
|
|
}
|
|
|
|
|
|
- protected void start(InputInfo inputInfo, OutputInfo outputInfo) throws ParseException {
|
|
|
- }
|
|
|
-
|
|
|
private void insertOpt(OutputInfo outputInfo) {
|
|
|
- resultDetail.put("info", info);
|
|
|
- resultDetail.put("status", status);
|
|
|
+ Map<String, String> resultDetail = Maps.newHashMap();
|
|
|
+ resultDetail.put("info", info.get());
|
|
|
+ resultDetail.put("status", status.get());
|
|
|
outputInfo.getResult().put(className, resultDetail);
|
|
|
- propertiesClear();
|
|
|
+ status.remove();
|
|
|
+ info.remove();
|
|
|
}
|
|
|
|
|
|
- private void propertiesClear() {
|
|
|
- status = "-1";
|
|
|
- info = "";
|
|
|
+ private void variablePreset(String arg0, String arg1) {
|
|
|
+ status.set(arg0);
|
|
|
+ info.set(arg1);
|
|
|
}
|
|
|
|
|
|
- //前置条件运行
|
|
|
- private void precondExecute(InputInfo inputInfo, OutputInfo outputInfo) {
|
|
|
+ //前置条件运行 true通过,false不通过
|
|
|
+ private boolean precondExecute(InputInfo inputInfo, OutputInfo outputInfo) {
|
|
|
Map<String, String> catalogueMap = inputInfo.getInputCatalogueMap().get(className);
|
|
|
if (catalogueMap == null) {
|
|
|
- return;
|
|
|
+ return true;
|
|
|
}
|
|
|
String precond = catalogueMap.get("precond");
|
|
|
if (StringUtil.isBlank(precond)) {
|
|
|
- return;
|
|
|
+ return true;
|
|
|
}
|
|
|
- for (String i : precond.split(",")) {
|
|
|
- QCCatalogue qCCatalogue = CatalogueUtil.qcCatalogueMap.get(i);
|
|
|
+ boolean flag = true;
|
|
|
+ String[] codes = precond.split(",");
|
|
|
+ for (String code : codes) {
|
|
|
+ QCCatalogue qCCatalogue = CatalogueUtil.qcCatalogueMap.get(code);
|
|
|
if (qCCatalogue != null) {
|
|
|
qCCatalogue.execute(inputInfo, outputInfo);
|
|
|
}
|
|
|
}
|
|
|
+ for (String code : codes) {
|
|
|
+ if (!outputInfo.getResult().get(code).get("status").equals("0")) {
|
|
|
+ flag = false;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return flag;
|
|
|
+ }
|
|
|
+
|
|
|
+ private String className = this.getClass().getSimpleName();
|
|
|
+
|
|
|
+ public QCCatalogue() {
|
|
|
+ CatalogueUtil.qcCatalogueMap.put(className, this);
|
|
|
+ }
|
|
|
+
|
|
|
+ protected void start(InputInfo inputInfo, OutputInfo outputInfo) throws ParseException {
|
|
|
}
|
|
|
|
|
|
}
|