package frame.file.office; import frame.data.Entity; import frame.expression.VariantContext; import frame.file.IFileContext; import frame.file.IFileload; import frame.file.UploadResult; import frame.persist.NamedSQL; import frame.persist.SQLRunner; import frame.util.Util; public class IOHandler implements IFileload{ private String id; private String fileIoCode; private String itemId; private String sqlName; private int no; private String eventCode; private String resultCode; public IOHandler() { } @Override public void initLoad(Entity entity) { id = entity.getString("id"); fileIoCode = entity.getString("fileiocode"); itemId = entity.getString("itemid"); sqlName = entity.getString("sqlname"); sqlName = entity.getString("sqlname"); eventCode = entity.getString("eventcode"); resultCode = entity.getString("resultcode"); String noString = entity.getString("no"); if (Util.isEmptyStr(noString)) { no = Integer.parseInt(noString); } if (eventCode != null) { eventCode = eventCode.toLowerCase(); } if (resultCode != null) { resultCode = resultCode.toLowerCase(); } } public void exec(UploadResult result, IFileContext context) throws Exception { NamedSQL namedSql = NamedSQL.getInstance(sqlName); result.setWorkingSQL(namedSql); context.setParametersTo(namedSql); if ("errorcount".equalsIgnoreCase(resultCode)) { int cnt = SQLRunner.execSQL(namedSql.getSQLString()); if (cnt > 0) { result.fail("error_InvalidData", "存在不合法数据(" + cnt + ")", cnt); } } else if ("successcount".equalsIgnoreCase(resultCode)) { int cnt = SQLRunner.execSQL(namedSql.getSQLString()); result.setSuccessCount(cnt); } else { SQLRunner.execSQL(namedSql.getSQLString()); } } public boolean equalEvent(String code) { if (Util.isEmptyStr(code)) { return false; } return eventCode.equalsIgnoreCase(code); } public String getId() { return id; } public String getFileIoCode() { return fileIoCode; } public String getItemId() { return itemId; } public String getSqlName() { return sqlName; } public int getNo() { return no; } public String getEventCode() { return eventCode; } public String getResultCode() { return resultCode; } }