From 720b2953b9b0afc6997cb6b57d40b9bcfe240069 Mon Sep 17 00:00:00 2001 From: dxfeng Date: Tue, 1 Apr 2025 19:43:51 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E9=85=8D=E7=BD=AE=E9=A1=B9?= =?UTF-8?q?=E8=A1=A8=E3=80=81=E5=A2=9E=E5=8A=A0=E6=96=87=E4=BB=B6=E5=88=97?= =?UTF-8?q?=E8=A1=A8=E9=BB=98=E8=AE=A4=E5=80=BC=E5=86=99=E5=85=A5=E9=80=BB?= =?UTF-8?q?=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../secret/entity/unpack/FileConfig.java | 1 + .../QualificationApplicationServiceImpl.java | 65 +++++++++++++++---- src/com/engine/secret/util/ConfigUtil.java | 24 +++++++ 3 files changed, 79 insertions(+), 11 deletions(-) create mode 100644 src/com/engine/secret/util/ConfigUtil.java diff --git a/src/com/engine/secret/entity/unpack/FileConfig.java b/src/com/engine/secret/entity/unpack/FileConfig.java index 93b10d2..b7149d2 100644 --- a/src/com/engine/secret/entity/unpack/FileConfig.java +++ b/src/com/engine/secret/entity/unpack/FileConfig.java @@ -18,4 +18,5 @@ public class FileConfig { private String fieldName; private String fileId; private String isFilled; + private String isDefault; } diff --git a/src/com/engine/secret/service/impl/QualificationApplicationServiceImpl.java b/src/com/engine/secret/service/impl/QualificationApplicationServiceImpl.java index ef8e82f..549b6db 100644 --- a/src/com/engine/secret/service/impl/QualificationApplicationServiceImpl.java +++ b/src/com/engine/secret/service/impl/QualificationApplicationServiceImpl.java @@ -1,10 +1,12 @@ package com.engine.secret.service.impl; +import cn.hutool.core.convert.Convert; import com.alibaba.fastjson.JSON; import com.engine.core.impl.Service; import com.engine.secret.entity.unpack.*; import com.engine.secret.exception.CustomizeRunTimeException; import com.engine.secret.service.QualificationApplicationService; +import com.engine.secret.util.ConfigUtil; import com.engine.secret.util.ModeUtil; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.JsonNode; @@ -15,6 +17,7 @@ import net.lingala.zip4j.model.FileHeader; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang.StringUtils; import weaver.conn.RecordSet; +import weaver.docs.docs.DocImageManager; import weaver.file.ImageFileManager; import weaver.formmode.IgnoreCaseHashMap; import weaver.general.BaseBean; @@ -37,12 +40,11 @@ import java.util.stream.Collectors; */ public class QualificationApplicationServiceImpl extends Service implements QualificationApplicationService { - private static String UNZIP_PWD = "zizhi102!"; - private static int UPLOAD_CATALOGUE = 122; + private static int uploadCatalogue; - private static String CONFIG_TABLE_NAME = "uf_config_package"; - private static String CONFIG_DETAIL_TABLE_NAME = "uf_config_package_dt1"; - private static String FILE_DETAIL_TABLE_NAME = "uf_config_package_dt2"; + private static final String CONFIG_TABLE_NAME = "uf_config_package"; + private static final String CONFIG_DETAIL_TABLE_NAME = "uf_config_package_dt1"; + private static final String FILE_DETAIL_TABLE_NAME = "uf_config_package_dt2"; BaseBean baseBean = new BaseBean(); @@ -61,6 +63,30 @@ public class QualificationApplicationServiceImpl extends Service implements Qual throw new CustomizeRunTimeException("文件获取失败,请确认文件是否上传"); } baseBean.writeLog("imageId==" + imageId); + + // docId 转为换imageFileId + DocImageManager imgManger = new DocImageManager(); + imgManger.setDocid(Integer.parseInt(imageId)); + imgManger.selectDocImageInfo(); + imgManger.next(); + String imageFileId = imgManger.getImagefileid(); + baseBean.writeLog("imageFileId==" + imageFileId); + if (StringUtils.isBlank(imageFileId) || "-1".equals(imageFileId)) { + throw new CustomizeRunTimeException("文件获取失败,请确认文件是否上传,imageFileId=[" + imageFileId + "]"); + } + + + // 初始化配置 + String unzipPwd = ConfigUtil.getConfig("UNZIP_PWD"); + baseBean.writeLog("unzipPwd==" + unzipPwd); + + String uploadCatalogueStr = ConfigUtil.getConfig("UPLOAD_CATALOGUE"); + if (StringUtils.isBlank(uploadCatalogueStr)) { + throw new CustomizeRunTimeException("未获取到解析文件目录设置,检查配置[uf_config]"); + } + uploadCatalogue = Convert.toInt(uploadCatalogueStr, -1); + baseBean.writeLog("uploadCatalogue==" + uploadCatalogue); + Map returnMap = new HashMap<>(); // 根据文件id获取文件流 ImageFileManager manager = new ImageFileManager(); @@ -76,7 +102,7 @@ public class QualificationApplicationServiceImpl extends Service implements Qual //解压文件,处理压缩包 baseBean.writeLog("开始解压文件,处理压缩包"); - unzipWithPassword(tempZipFile, Paths.get("output"), UNZIP_PWD); + unzipWithPassword(tempZipFile, Paths.get("output"), unzipPwd); baseBean.writeLog("压缩包处理完成"); @@ -165,6 +191,7 @@ public class QualificationApplicationServiceImpl extends Service implements Qual */ private void offline(JsonNode rootNode) throws Exception { List dataConfigList = getDataConfig("0"); + baseBean.writeLog("dataConfigList==" + JSON.toJSONString(dataConfigList)); // 处理文件数据 List applicationResourceList = getApplicationResourceList(rootNode); @@ -182,6 +209,7 @@ public class QualificationApplicationServiceImpl extends Service implements Qual for (DataConfig dataConfig : dataConfigList) { String mainTableName = dataConfig.getMainTableName(); String rootPath = dataConfig.getRootPath(); + baseBean.writeLog("rootPath==" + rootPath); // 字段对照关系 List fieldDetailList = dataConfig.getDetailList(); // 获取明细表相关信息 @@ -371,12 +399,20 @@ public class QualificationApplicationServiceImpl extends Service implements Qual */ private void dealFileList(int mainId, List fileConfigList, String tableName, boolean isDetail) throws Exception { Map dataMap = new IgnoreCaseHashMap<>(); + Map defaultDataMap = new IgnoreCaseHashMap<>(); for (FileConfig fileConfig : fileConfigList) { String fieldName = fileConfig.getFieldName(); // 是否更正文件 String isFilled = fileConfig.getIsFilled(); // 文件标识ID String fileId = fileConfig.getFileId(); + String isDefault = fileConfig.getIsDefault(); + if ("1".equals(isDefault)) { + // 默认值条件,直接写入表单对应的字段 + defaultDataMap.put(fieldName, fileId); + continue; + } + List applicationResources = applicationResourceMap.get(fileId); if (CollectionUtils.isEmpty(applicationResources)) { @@ -401,7 +437,7 @@ public class QualificationApplicationServiceImpl extends Service implements Qual String fileName = resourceInfo.getFileName(); Integer imageFileId = imageFileMap.get(fileName); // 生成文档ID - int docId = ModeUtil.createDocId(UPLOAD_CATALOGUE, imageFileId, user); + int docId = ModeUtil.createDocId(uploadCatalogue, imageFileId, user); docIds.add(docId); } dataMap.put(fieldName, StringUtils.join(docIds, ",")); @@ -412,11 +448,13 @@ public class QualificationApplicationServiceImpl extends Service implements Qual return; } + // 合并默认值数据,如果文件集合为空,则不单独插入默认值 + dataMap.putAll(defaultDataMap); baseBean.writeLog("文件插入集合,dataMap==" + JSON.toJSONString(dataMap)); // 根据主表、明细表,区分数据处理方式 if (isDetail) { dataMap.put("mainid", mainId); - ModeUtil.insertData(dataMap,tableName); + ModeUtil.insertData(dataMap, tableName); } else { dataMap.put("id", mainId); // 根据ID更新主表数据 @@ -437,7 +475,7 @@ public class QualificationApplicationServiceImpl extends Service implements Qual // 获取离线包的先关配置 List dataConfigList = new ArrayList<>(); RecordSet rs = new RecordSet(); - rs.executeQuery("select * from " + CONFIG_TABLE_NAME + " where main_table is not null and main_table !='' and source_type = ?", type); + rs.executeQuery("select * from uf_config_package where main_table is not null and source_type = ?", type); while (rs.next()) { DataConfig dataConfig = new DataConfig(); dataConfig.setId(rs.getString("id")); @@ -473,7 +511,7 @@ public class QualificationApplicationServiceImpl extends Service implements Qual for (String dtName : detailNameArray) { RecordSet rs = new RecordSet(); - rs.executeQuery("select * from " + CONFIG_TABLE_NAME + " where (main_table is null or main_table ='') and detail_tables = ? and source_type = ?", dtName, type); + rs.executeQuery("select * from " + CONFIG_TABLE_NAME + " where main_table is null and detail_tables = ? and source_type = ?", dtName, type); while (rs.next()) { DataConfig dataConfig = new DataConfig(); dataConfig.setId(rs.getString("id")); @@ -517,7 +555,12 @@ public class QualificationApplicationServiceImpl extends Service implements Qual RecordSet rs = new RecordSet(); rs.executeQuery("select * from " + FILE_DETAIL_TABLE_NAME + " where mainId = ?", mainId); while (rs.next()) { - fileList.add(FileConfig.builder().fieldName(rs.getString("field_name")).fileId(rs.getString("file_id")).isFilled(rs.getString("file_type")).build()); + fileList.add(FileConfig.builder() + .fieldName(rs.getString("field_name")) + .fileId(rs.getString("file_id")) + .isFilled(rs.getString("file_type")) + .isDefault(rs.getString("is_default")) + .build()); } return fileList; } diff --git a/src/com/engine/secret/util/ConfigUtil.java b/src/com/engine/secret/util/ConfigUtil.java new file mode 100644 index 0000000..30f830d --- /dev/null +++ b/src/com/engine/secret/util/ConfigUtil.java @@ -0,0 +1,24 @@ +package com.engine.secret.util; + +import org.apache.commons.lang.StringUtils; +import weaver.conn.RecordSet; + +/** + * @author:dxfeng + * @createTime: 2025/03/31 + * @version: 1.0 + */ +public class ConfigUtil { + public static String getConfig(String name) { + if (StringUtils.isBlank(name)) { + return ""; + } + RecordSet rs = new RecordSet(); + rs.executeQuery("select value from uf_config where name = ?",name.trim()); + if(rs.next()){ + return rs.getString("value").trim(); + } + return ""; + } + +}