优化文件上传逻辑,只有解析到的文件才会上传
This commit is contained in:
parent
33c4884972
commit
0b0e82d81f
|
|
@ -1,6 +1,8 @@
|
|||
package com.engine.secret.service;
|
||||
|
||||
import com.fasterxml.jackson.databind.JsonNode;
|
||||
import net.lingala.zip4j.ZipFile;
|
||||
import net.lingala.zip4j.model.FileHeader;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
|
|
@ -20,13 +22,13 @@ public interface UnpackZipService {
|
|||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
Map<String, Object> registerAcceptance(String requestId, JsonNode rootNode, Map<String, Integer> imageFileMap) throws Exception;
|
||||
Map<String, Object> registerAcceptance(ZipFile zipFile, String requestId, JsonNode rootNode, Map<String, FileHeader> imageFileMap) throws Exception;
|
||||
|
||||
/**
|
||||
* 材料补正
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
Map<String, Object> reviewResubmittedMaterials(String requestId, JsonNode rootNode, Map<String, Integer> imageFileMap);
|
||||
Map<String, Object> reviewResubmittedMaterials(ZipFile zipFile, String requestId, JsonNode rootNode, Map<String, FileHeader> imageFileMap);
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -48,17 +48,19 @@ public class OfflineZipUnpackServiceImpl extends Service implements UnpackZipSer
|
|||
|
||||
Map<String, Map<String, ResourceInfo>> resourceInfoMap;
|
||||
|
||||
Map<String, Integer> imageFileMap;
|
||||
Map<String, FileHeader> fileHeaderMap;
|
||||
|
||||
String relatedFlowId;
|
||||
|
||||
Map<String, Object> returnMap = new HashMap<>();
|
||||
ZipFile zipFile;
|
||||
|
||||
@Override
|
||||
public Map<String, Object> registerAcceptance(String requestId, JsonNode rootNode, Map<String, Integer> imageFileMap) {
|
||||
public Map<String, Object> registerAcceptance(ZipFile zipFile, String requestId, JsonNode rootNode, Map<String, FileHeader> imageFileMap) {
|
||||
try {
|
||||
this.imageFileMap = imageFileMap;
|
||||
this.fileHeaderMap = imageFileMap;
|
||||
this.relatedFlowId = requestId;
|
||||
this.zipFile = zipFile;
|
||||
// 构建流程表单反填字段
|
||||
buildFormFields(rootNode);
|
||||
// 插入建模表单数据,写入文件数据
|
||||
|
|
@ -71,11 +73,12 @@ public class OfflineZipUnpackServiceImpl extends Service implements UnpackZipSer
|
|||
}
|
||||
|
||||
@Override
|
||||
public Map<String, Object> reviewResubmittedMaterials(String requestId, JsonNode rootNode, Map<String, Integer> imageFileMap) {
|
||||
public Map<String, Object> reviewResubmittedMaterials(ZipFile zipFile, String requestId, JsonNode rootNode, Map<String, FileHeader> imageFileMap) {
|
||||
// TODO 逻辑待完善
|
||||
try {
|
||||
this.imageFileMap = imageFileMap;
|
||||
this.fileHeaderMap = imageFileMap;
|
||||
this.relatedFlowId = requestId;
|
||||
this.zipFile = zipFile;
|
||||
// 写入补正文件数据
|
||||
updateCorrectedMaterials(rootNode);
|
||||
} catch (Exception e) {
|
||||
|
|
@ -173,7 +176,6 @@ public class OfflineZipUnpackServiceImpl extends Service implements UnpackZipSer
|
|||
private void updateFileList(int mainId, List<FileConfig> fileConfigList, String tableName, boolean isDetail) throws Exception {
|
||||
Map<String, Object> dataMap = new IgnoreCaseHashMap<>();
|
||||
|
||||
//StringBuilder whereSql = new StringBuilder(" where 1=1 ");
|
||||
String fileTypeField = "";
|
||||
String fileTypeValue = "";
|
||||
for (FileConfig fileConfig : fileConfigList) {
|
||||
|
|
@ -222,7 +224,7 @@ public class OfflineZipUnpackServiceImpl extends Service implements UnpackZipSer
|
|||
continue;
|
||||
}
|
||||
String fileName = resourceInfo.getFileName();
|
||||
Integer imageFileId = imageFileMap.get(fileName);
|
||||
int imageFileId = generateImageFileId(zipFile, fileHeaderMap.get(fileName), fileName);
|
||||
// 生成文档ID
|
||||
int docId = ModeUtil.createDocId(uploadCatalogue, imageFileId, user);
|
||||
docIds.add(docId);
|
||||
|
|
@ -564,7 +566,8 @@ public class OfflineZipUnpackServiceImpl extends Service implements UnpackZipSer
|
|||
continue;
|
||||
}
|
||||
String fileName = resourceInfo.getFileName();
|
||||
Integer imageFileId = imageFileMap.get(fileName);
|
||||
int imageFileId = generateImageFileId(zipFile, fileHeaderMap.get(fileName), fileName);
|
||||
|
||||
// 生成文档ID
|
||||
int docId = ModeUtil.createDocId(uploadCatalogue, imageFileId, user);
|
||||
docIds.add(docId);
|
||||
|
|
|
|||
|
|
@ -43,13 +43,13 @@ public class QualificationApplicationServiceImpl extends Service implements Qual
|
|||
|
||||
BaseBean baseBean = new BaseBean();
|
||||
|
||||
Map<String, Integer> imageFileMap;
|
||||
Map<String, FileHeader> fileHeaderMap;
|
||||
|
||||
|
||||
@Override
|
||||
public Map<String, Object> parsingFiles(Map<String, Object> param) {
|
||||
try {
|
||||
Map<String, Object> returnMap = new HashMap<>();
|
||||
Map<String, Object> returnMap;
|
||||
|
||||
String docId = Util.null2String(param.get("docId"));
|
||||
String requestId = Util.null2String(param.get("requestId"));
|
||||
|
|
@ -125,7 +125,8 @@ public class QualificationApplicationServiceImpl extends Service implements Qual
|
|||
// 遍历 ZIP 内文件(可选)
|
||||
List<FileHeader> fileHeaders = zipFile.getFileHeaders();
|
||||
|
||||
imageFileMap = new HashMap<>();
|
||||
//imageFileMap = new HashMap<>();
|
||||
fileHeaderMap = new HashMap<>();
|
||||
for (FileHeader header : fileHeaders) {
|
||||
if (header.isDirectory()) {
|
||||
continue;
|
||||
|
|
@ -135,30 +136,28 @@ public class QualificationApplicationServiceImpl extends Service implements Qual
|
|||
String fileName = (lastSlashIndex != -1)
|
||||
? fullPath.substring(lastSlashIndex + 1)
|
||||
: fullPath;
|
||||
baseBean.writeLog("文件名称: " + fileName);
|
||||
|
||||
// 上传文件
|
||||
int imageFileId = generateImageFileId(zipFile, header, fileName);
|
||||
imageFileMap.put(fileName, imageFileId);
|
||||
fileHeaderMap.put(fileName,header);
|
||||
}
|
||||
|
||||
|
||||
baseBean.writeLog("fileHeaders.size==" + fileHeaders.size());
|
||||
baseBean.writeLog("imageFileMap.size==" + imageFileMap.size());
|
||||
baseBean.writeLog("imageFileMap==" + JSON.toJSONString(imageFileMap));
|
||||
baseBean.writeLog("fileHeaderMap.size==" + fileHeaderMap.size());
|
||||
baseBean.writeLog("fileHeaderMap==" + JSON.toJSONString(fileHeaderMap));
|
||||
|
||||
|
||||
// 获取数据文件,用于后续数据解析
|
||||
Integer dataJsonImageId = imageFileMap.get("(database)data.json");
|
||||
String jsonFileName="(database)data.json";
|
||||
FileHeader fileHeader = fileHeaderMap.get(jsonFileName);
|
||||
int dataJsonImageId = generateImageFileId(zipFile, fileHeader, jsonFileName);
|
||||
|
||||
if (dataJsonImageId != null && dataJsonImageId > 0) {
|
||||
if (dataJsonImageId > 0) {
|
||||
// 离线端方式
|
||||
JsonNode rootNode = parseJsonContent(dataJsonImageId);
|
||||
OfflineZipUnpackServiceImpl offlineZipUnpackService = ServiceUtil.getService(OfflineZipUnpackServiceImpl.class, user);
|
||||
if ("true".equals(isCorrection)) {
|
||||
return offlineZipUnpackService.reviewResubmittedMaterials(requestId, rootNode, imageFileMap);
|
||||
return offlineZipUnpackService.reviewResubmittedMaterials(zipFile,requestId, rootNode, fileHeaderMap);
|
||||
}
|
||||
return offlineZipUnpackService.registerAcceptance(requestId, rootNode, imageFileMap);
|
||||
return offlineZipUnpackService.registerAcceptance(zipFile,requestId, rootNode, fileHeaderMap);
|
||||
}
|
||||
|
||||
// TODO 兼容其他方式
|
||||
|
|
|
|||
Loading…
Reference in New Issue