package frame.file.office; import java.util.List; import javax.servlet.http.HttpServletRequest; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import frame.file.FileIO; import frame.file.FileIOContainer; import frame.file.FileIOItem; import frame.file.UploadResult; import frame.file.db.DataBaseTranslator; import frame.file.office.excel.ExcelHandler; import frame.file.office.excel.ExcelLoaders; import frame.util.Util; public class LoadManager { private boolean isSuccess; private Logger logger; private String ioCode; private FileIO fileIO; private UploadResult result; private HttpServletRequest request; public LoadManager(UploadResult result) { this.result = result; this.logger = LoggerFactory.getLogger(this.getClass()); } public LoadManager(UploadResult result, String ioCode) { this.result = result; this.ioCode = ioCode; fileIO = FileIOContainer.get(ioCode); this.logger = LoggerFactory.getLogger(this.getClass()); } public boolean execute() throws Exception { boolean isSuccess = true; if (fileIO == null) { if (Util.isEmptyStr(ioCode)) { result.fail("error_IONotExist", "上载定义没有配置"); throw new Exception("no iocode "); } else { fileIO = FileIOContainer.get(ioCode); if (fileIO == null) { result.fail("error_IONotExist", "上载定义没有配置"); throw new Exception("no iocode mapping in FileioContainer"); } doExecute(); } } else { doExecute(); } return isSuccess; } private void doExecute() throws Exception { //TODO 处理前事件 fileIO.execHandlers(result, "begin"); if (request ==null) { logger.error("excelLoaders request is null"); throw new Exception("excelLoaders request is null"); } ExcelLoaders excelLoaders = new ExcelLoaders(request); isSuccess = excelLoaders.load(result, fileIO); List dbList = fileIO.getItemList(FileIOTypeCode.Db); for (FileIOItem fileIOItem : dbList) { isSuccess = DataBaseTranslator.translate(result,fileIOItem); } List outputList = fileIO.getItemList(FileIOTypeCode.Output); //4. after save fileIO.execHandlers(result, "end"); } public String getIoCode() { return ioCode; } public void setIoCode(String ioCode) { this.ioCode = ioCode; } public void setRequest(HttpServletRequest request) { this.request = request; } }