package foundation.io.define;
|
|
import org.apache.logging.log4j.LogManager;
|
import org.apache.logging.log4j.Logger;
|
|
import foundation.dao.DataWriter;
|
import foundation.data.entity.Entity;
|
import foundation.io.object.IOActionType;
|
import foundation.monitor.Progressor;
|
import foundation.persist.NamedSQL;
|
|
|
public class IOWorkStep {
|
|
protected static Logger logger;
|
private String id;
|
private String name;
|
private String title;
|
private String sqlName;
|
private NamedSQL namdSql;
|
private String codeRule;
|
private String defaultValue;
|
private int no;
|
private boolean active;
|
|
static {
|
logger = LogManager.getLogger(IOWorkStep.class);
|
}
|
|
public IOWorkStep() {
|
|
}
|
|
public void load(Entity entity) throws Exception {
|
id = entity.getString("id");
|
name = entity.getString("name");
|
title = entity.getString("title");
|
sqlName = entity.getString("sql_name");
|
namdSql = NamedSQL.getInstance(sqlName);
|
no = entity.getInteger("order_no", 0);
|
active = entity.getBoolean("is_active", true);
|
defaultValue = entity.getString("default_value");
|
}
|
|
public void load(Entity entity, int orderNo) throws Exception {
|
// 从 data field中加载的step
|
id = entity.getString("id");
|
name = entity.getString("source_dataname");
|
title = "更新" + entity.getString("label_chinese");
|
sqlName = "update" + entity.getString("field_name");
|
String originalDataName = entity.getString("original_dataname");
|
|
IOActionType actionType = IOActionType.parse(originalDataName);
|
if (actionType == IOActionType.State) {
|
namdSql = NamedSQL.getInstance("importStateTemplate");
|
namdSql.setParam("mapping", entity.getString("mapping_sql"));
|
namdSql.setParam("field", entity.getString("field_name"));
|
namdSql.setParam("original_field", entity.getString("original_field"));
|
}
|
else if (actionType == IOActionType.Code) {
|
namdSql = NamedSQL.getInstance("importCodeTemplate");
|
namdSql.setParam("field", entity.getString("field_name"));
|
}
|
else if (actionType == IOActionType.Dictionary) {
|
namdSql = NamedSQL.getInstance("importSetDictionaryTemplate");
|
namdSql.setParam("field", entity.getString("field_name"));
|
|
String dictionaryKey = entity.getString("options_key");
|
namdSql.setParam("dictionaryKey", dictionaryKey);
|
}
|
else {
|
namdSql = NamedSQL.getInstance("importDatanameTemplate");
|
namdSql.setParam("mapping", entity.getString("mapping_sql"));
|
namdSql.setParam("field", entity.getString("field_name"));
|
namdSql.setParam("original_field", entity.getString("original_field"));
|
namdSql.setDataName(sqlName);
|
}
|
|
no = orderNo;
|
active = true;
|
}
|
|
public void exec(IOSQLContext context, Progressor progressor, DataWriter dataWriter) throws Exception {
|
progressor.appendLine("运行 Action:" + title + "(" + name + ")");
|
|
NamedSQL namedSql = NamedSQL.getInstance(sqlName);
|
context.setParametersTo(namedSql);
|
namedSql.setParam("defaultValue", defaultValue);
|
namedSql.execute();
|
}
|
|
public void exec(IOSQLContext context) throws Exception {
|
logger.debug("运行 Action:" + title + "(" + name + ")");
|
|
NamedSQL namedSql = NamedSQL.getInstance(sqlName);
|
context.setParametersTo(namedSql);
|
namedSql.execute();
|
}
|
|
public String getId() {
|
return id;
|
}
|
|
public String getName() {
|
return name;
|
}
|
|
public String getSqlName() {
|
return sqlName;
|
}
|
|
public int getNo() {
|
return no;
|
}
|
|
public boolean isActive() {
|
return active;
|
}
|
|
public String getCodeRule() {
|
return codeRule;
|
}
|
|
}
|