package frame.file; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Set; import javax.servlet.http.HttpServletRequest; import frame.persist.NamedSQL; import frame.persist.SQLRunner; import frame.util.Util; public class UploadResult { private Map parameterProvider; private String id; private Boolean success; private Boolean showDetail; private List messages; private List details; private int errorCount; private int successCount; private Date begintime; private Date endtime; private String typeCode; public NamedSQL workingSQL; public UploadResult(HttpServletRequest request) { messages = new ArrayList(); details = new ArrayList(); id = Util.newShortGUID(); success = true; showDetail = false; parameterProvider = new HashMap(); parameterProvider.put("taskid", id); Set nameSet = request.getParameterMap().keySet(); for (String name : nameSet) { parameterProvider.put("@" + name, request.getParameter(name)); } } public void succeed() { success = true; errorCount = 0; successCount = 0; begintime = new Date(); } public void fail(String code, String message) { success = false; showDetail = true; messages.add(message); } public void fail(String code, String message, int count) { success = false; messages.add(message); errorCount = count; } public boolean isSuccess() { return success; } public int getErrorCount() { return errorCount; } public String getId() { return id; } public void writeBegin() throws Exception { String sql = "insert into BLUE_TT_UploadRecord (id, begintime) values ('" + id + "', GETDATE())"; SQLRunner.execSQL(sql); } public void writeEnd() throws Exception { String errorMessage = null; if (messages.size() > 0) { errorMessage = messages.get(0); } if (errorMessage != null) { if (errorMessage.length() > 254) { errorMessage = errorMessage.substring(0, 230); } errorMessage = errorMessage.replace("'", "\""); } String sql = "update BLUE_TT_UploadRecord set " + "errormessage=" + Util.quotedStr(errorMessage) + "," + "errorCount=" + errorCount + "," + "endtime=GETDATE()" + " where id=" + Util.quotedStr(id); SQLRunner.execSQL(sql); endtime = new Date(); } public int getSuccessCount() { return successCount; } public List getMessages() { return messages; } public void setSuccessCount(int cnt) { successCount = cnt; } public String getTypeCode() { return typeCode; } public void setTypeCode(String value) { typeCode = value; } public Date getBeginTime() { return begintime; } public Date getEndTime() { return endtime; } public void setWorkingSQL(NamedSQL namedSql) { workingSQL = namedSql; } public void addMessage(String message) { messages.add(message); } public void addDetail(String detail) { details.add(detail); } public Map getParameterProvider() { return parameterProvider; } }