P15GEN2\59518
2024-05-29 d4210c7c4b04abde20037ea8aa0f54ef8a2649aa
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
package foundation.io.engine;
 
import java.io.File;
 
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
 
import foundation.dao.DataReader;
import foundation.io.FileRepository;
import foundation.io.define.DataIO;
import foundation.io.define.IOSpeedMode;
import foundation.io.object.FileItemAgent;
import foundation.io.object.UploadReader;
import foundation.token.IUser;
 
public class FileProcessor {
 
    protected static Logger logger;
    
    private int batchCount;
    
    private File uploadFile;
    private IWorkBookReader workBookReader;
    
    private File downloadFile;
    private IWorkBookWriter workBookWriter;
    
    
    static {
        logger = LogManager.getLogger(FileProcessor.class);
    }
    
    public FileProcessor(int batchCount) {
        this.batchCount = batchCount;
    }
    
    public File openUploadFile(DataReader dataReader, IOSpeedMode bigDataMode) throws Exception {
        UploadReader uploadReader = new UploadReader(dataReader);
        FileItemAgent fileForm = uploadReader.getFistFileItem();
        
        if (fileForm == null) {
            throw new Exception("can not open upload file: no file");
        }
        
        IUser user = dataReader.getUser();
        uploadFile = FileRepository.createImportTempFile(user, fileForm);
        
        if (!uploadFile.exists()) {
            throw new Exception("upload file not exists: " + uploadFile);
        }
        
        workBookReader = IWorkBookReader.newInstance(uploadFile, bigDataMode, batchCount); 
    
        return uploadFile;
    }
 
    public File openDownloadFile(DataReader dataReader, DataIO dataIO, IOSpeedMode bigDataMode) throws Exception {
        IUser user = dataReader.getUser();
        
        downloadFile = FileRepository.createExportTempFile(user, dataIO.getTemplateName(), dataIO.getToName());
        
        if (downloadFile == null || !downloadFile.exists()) {
            throw new Exception("download file not exists: " + downloadFile);
        }
        
        workBookWriter = IWorkBookWriter.newInstance(downloadFile, bigDataMode, batchCount);
        return downloadFile;
    }
    
    public ISheetReader openSheetReader(DataIO dataIO) throws Exception {
        ISheetReader sheetReader = workBookReader.openSheetReader(dataIO);
        return sheetReader;
    }
 
    public ISheetWriter openSheetWriter(DataIO dataIO) {
        ISheetWriter sheetWriter = workBookWriter.openSheetWriter(dataIO);
        return sheetWriter;
    }
 
    public void close() {
        //1. 
        if (workBookReader != null) {
            workBookReader.close();
        }
        
        //2.
        if (workBookWriter != null && !workBookWriter.close) {
            workBookWriter.close();
        }        
    }
    
    public String getUploadFileName() {
        return uploadFile.getName();
    }
    
    public File getDownloadFile() {
        return downloadFile;
    }
 
    public String getDownloadFileName() {
        return downloadFile.getName();
    }
 
    public void closeReader() {
        // TODO Auto-generated method stub
        
    }
 
}