|
@@ -32,6 +32,7 @@ import java.text.SimpleDateFormat;
|
|
|
import java.time.LocalDateTime;
|
|
|
import java.time.format.DateTimeFormatter;
|
|
|
import java.util.ArrayList;
|
|
|
+import java.util.HashMap;
|
|
|
import java.util.List;
|
|
|
|
|
|
/**
|
|
@@ -70,6 +71,9 @@ public class ArchiveOfflineVersionInfoServiceImpl extends BaseServiceImpl<Archiv
|
|
|
//导入档案文件
|
|
|
this.fileToSqlite(projectId);
|
|
|
System.out.println("导入档案文件");
|
|
|
+ //导入元数据
|
|
|
+ this.metadataToSqlite(projectId);
|
|
|
+ System.out.println("导入元数据");
|
|
|
//打包文件
|
|
|
CommonUtil.packageZip(packUrl,zipUrl);
|
|
|
System.out.println("打包文件");
|
|
@@ -89,6 +93,59 @@ public class ArchiveOfflineVersionInfoServiceImpl extends BaseServiceImpl<Archiv
|
|
|
|
|
|
}
|
|
|
|
|
|
+ public void metadataToSqlite(Long projectId) {
|
|
|
+ List<HashMap<String, Object>> list = baseMapper.getProjectAllMetadata(projectId);
|
|
|
+ if (list != null && list.size() > 0){
|
|
|
+ try {
|
|
|
+ Connection conn = data.dataSource().getConnection();
|
|
|
+ Statement statement = conn.createStatement();
|
|
|
+ statement.execute("DELETE FROM u_metadata_file");
|
|
|
+ statement.close();
|
|
|
+ //获取执行对象
|
|
|
+ String sql = "INSERT INTO u_metadata_file(id, file_id, file_key_m1, file_key_m4, file_key_m11,file_key_m13,file_key_m14,file_key_m16,file_key_m17,file_key_m18,file_key_m19,file_key_m22,file_key_m34,file_key_m36,file_key_m37,file_key_m38,file_key_m40,file_key_m41,file_key_m60)" +
|
|
|
+ "VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
|
|
|
+ PreparedStatement pstm = conn.prepareStatement(sql);
|
|
|
+ //pstm 绑定数据
|
|
|
+ int i = 0;
|
|
|
+ for (HashMap<String, Object> Map : list) {
|
|
|
+ i++;
|
|
|
+ pstm.setLong(1, (Long) Map.get("id"));
|
|
|
+ pstm.setLong(2, (Long) Map.get("file_id"));
|
|
|
+ pstm.setString(3, Map.get("file_key_m1") == null ? null : Map.get("file_key_m1")+"");
|
|
|
+ pstm.setString(4, Map.get("file_key_m4") == null ? null : Map.get("file_key_m4")+"");
|
|
|
+ pstm.setString(5, Map.get("file_key_m11") == null ? null : Map.get("file_key_m11")+"");
|
|
|
+ pstm.setString(6, Map.get("file_key_m13") == null ? null : Map.get("file_key_m13")+"");
|
|
|
+ pstm.setString(7, Map.get("file_key_m14") == null ? null : Map.get("file_key_m14")+"");
|
|
|
+ pstm.setString(8, Map.get("file_key_m16") == null ? null : Map.get("file_key_m16")+"");
|
|
|
+ pstm.setString(9, Map.get("file_key_m17") == null ? null : Map.get("file_key_m17")+"");
|
|
|
+ pstm.setString(10, Map.get("file_key_m18") == null ? null : Map.get("file_key_m18")+"");
|
|
|
+ pstm.setString(11, Map.get("file_key_m19") == null ? null : Map.get("file_key_m19")+"");
|
|
|
+ pstm.setString(12, Map.get("file_key_m22") == null ? null : Map.get("file_key_m22")+"");
|
|
|
+ pstm.setString(13, Map.get("file_key_m34") == null ? null : Map.get("file_key_m34")+"");
|
|
|
+ pstm.setString(14, Map.get("file_key_m36") == null ? null : Map.get("file_key_m36")+"");
|
|
|
+ pstm.setString(15, Map.get("file_key_m37") == null ? null : Map.get("file_key_m37")+"");
|
|
|
+ pstm.setString(16, Map.get("file_key_m38") == null ? null : Map.get("file_key_m38")+"");
|
|
|
+ pstm.setString(17, Map.get("file_key_m40") == null ? null : Map.get("file_key_m40")+"");
|
|
|
+ pstm.setString(18, Map.get("file_key_m41") == null ? null : Map.get("file_key_m41")+"");
|
|
|
+ pstm.setString(19, Map.get("file_key_m60") == null ? null : Map.get("file_key_m60")+"");
|
|
|
+ //添加批处理
|
|
|
+ pstm.addBatch();
|
|
|
+ if (i % 1000 == 0) {
|
|
|
+ pstm.executeBatch();
|
|
|
+ pstm.clearBatch();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //将批处理余下的语句执行完毕
|
|
|
+ pstm.executeBatch();
|
|
|
+ //释放资源
|
|
|
+ pstm.close();
|
|
|
+ conn.close();
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
public void fileToSqlite(Long projectId) throws Exception {
|
|
|
List<ArchiveFile> list = fileClient.getListByProjectId(projectId);
|
|
|
if (list != null && list.size() > 0) {
|