david-PC\david
2018-06-12 a9631bf0505ac256d276b060dc05d99ea971d877
修改了Engine的流程(第一次)
3个文件已删除
3个文件已修改
849 ■■■■■ 已修改文件
source/my/frame/src/frame/file/FileIOContainer.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
source/my/frame/src/frame/file/LoadError.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
source/my/frame/src/frame/file/office/Engine.java 62 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
source/my/frame/src/frame/file/office/LoadManager.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
source/my/frame/src/frame/file/office/excel/ExcelLoader.java 480 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
source/my/frame/src/frame/file/office/excel/ExcelLoaders.java 277 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
source/my/frame/src/frame/file/FileIOContainer.java
@@ -15,6 +15,7 @@
public class FileIOContainer {
    public static boolean Debug = true;
    private static FileIOContainer instance;
    private static Object locker = new Object();
@@ -58,6 +59,12 @@
         return instance.fileIOMap.get(ioCode);
     }
     
     public static void tryLoad() throws Exception {
         if (Debug) {
             load();
         }
     }
     public static void load() throws Exception {
         getInstance(); 
         NamedSQL namedSQL;
source/my/frame/src/frame/file/LoadError.java
File was deleted
source/my/frame/src/frame/file/office/Engine.java
@@ -22,10 +22,16 @@
import frame.call.writer.JsonWriter;
import frame.config.Configer;
import frame.data.DataContext;
import frame.file.FileIO;
import frame.file.FileIOContainer;
import frame.file.FileIOErrorType;
import frame.file.FileIOException;
import frame.file.FileIOItem;
import frame.file.UploadResult;
import frame.file.db.DataBaseTranslator;
import frame.file.office.excel.DownloadResult;
import frame.file.office.excel.ExcelLoader;
import frame.file.office.excel.ExcelReader;
import frame.file.office.excel.ExcelReaders;
import frame.file.office.excel.ExcelWriter;
import frame.file.processor.Monitor;
import frame.upload.FileItem;
@@ -39,14 +45,14 @@
    private static Engine instance;
    private static Object locker = new Object();
    private Logger logger;
    private ExcelLoader excelLoader;
    private ExcelReader excelLoader;
    
    private static int MAX_CACHE_SIZE = 30 * 1024 * 1024;
    private static int MAX_FILE_SIZE = 100 * 1024 * 1024;
    
    private Engine() {
        logger = LoggerFactory.getLogger(this.getClass());
        excelLoader = new ExcelLoader(logger);
        excelLoader = new ExcelReader(logger);
        
    }
@@ -102,19 +108,28 @@
        }
    }
    public static UploadResult upload(String iocode, File file, HttpServletRequest request) throws Exception {
    public static UploadResult upload(String ioCode, File file, HttpServletRequest request) throws Exception {
        UploadResult result = new UploadResult(request);
       
        result.writeBegin();
        try {
            //1. prepare
            getInstance();
            FileIOContainer.load();
            
            //2.
            if (Util.isEmptyStr(ioCode)) {
                throw new FileIOException(FileIOErrorType.FileIOCodeIsNull, "file io code is null");
            }
            
            LoadManager manager = new LoadManager(result, iocode);
            manager.setRequest(request);
            instance.excelLoader.loadFiles(result, iocode, loadUploadFileList);
//            instance.excelLoader.loadOneFile(result, iocode, file);
            FileIO fileIO = FileIOContainer.get(ioCode);
            if (fileIO == null) {
                throw new FileIOException(FileIOErrorType.FileIONotExists, "fileio not exists: " + ioCode);
            }
            //3.
            instance.doUpload(fileIO);
        }
        catch (Exception e){
            result.fail("error", e.getMessage());
@@ -126,6 +141,37 @@
        return result;
    }
    private void doUpload(FileIO fileIO) {
        ExcelReaders excelLoaders = new ExcelReaders(request);
        //1. fire begin event
        fileIO.execHandlers(result, "begin");
        //2. file to tempt table
        List<FileIOItem> importList = fileIO.getItemList(FileIOTypeCode.Import);
        for (FileIOItem fileIOItem : importList) {
            fileIOItem.execHandlers(result, "begin");
            excelLoaders.loadOneItem(fileIOItem);
            fileIOItem.execHandlers(result, "end");
        }
        //3. fire after tempt tables
        fileIO.execHandlers(result, "after-temp");
        //4. tempt table to standard table
        List<FileIOItem> dbList = fileIO.getItemList(FileIOTypeCode.Db);
        for (FileIOItem fileIOItem : dbList) {
            fileIOItem.execHandlers(result, "begin");
            DataBaseTranslator.translate(result, fileIOItem);
            fileIOItem.execHandlers(result, "end");
        }
         //5. fire end event
        fileIO.execHandlers(result, "end");
    }
    private static List<FileItem> loadUploadFile(HttpServletRequest request) throws FileUploadException {
        
        DiskFileItemFactory diskFileFactory = new DiskFileItemFactory();
source/my/frame/src/frame/file/office/LoadManager.java
@@ -8,17 +8,17 @@
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.file.office.excel.ExcelReaders;
import frame.util.Util;
public class LoadManager {
    private boolean isSuccess;
    private Logger logger;
    private String ioCode;
@@ -71,7 +71,7 @@
            throw new Exception("excelLoaders request is null");
        }
        
        ExcelLoaders excelLoaders = new ExcelLoaders(request);
        ExcelReaders excelLoaders = new ExcelReaders(request);
        
        isSuccess = excelLoaders.load(result, fileIO);
        
source/my/frame/src/frame/file/office/excel/ExcelLoader.java
File was deleted
source/my/frame/src/frame/file/office/excel/ExcelLoaders.java
File was deleted