增加配置项表、增加文件列表默认值写入逻辑

This commit is contained in:
dxfeng 2025-04-01 19:43:51 +08:00
parent 847bf6cbfb
commit 720b2953b9
3 changed files with 79 additions and 11 deletions

View File

@ -18,4 +18,5 @@ public class FileConfig {
private String fieldName; private String fieldName;
private String fileId; private String fileId;
private String isFilled; private String isFilled;
private String isDefault;
} }

View File

@ -1,10 +1,12 @@
package com.engine.secret.service.impl; package com.engine.secret.service.impl;
import cn.hutool.core.convert.Convert;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.engine.core.impl.Service; import com.engine.core.impl.Service;
import com.engine.secret.entity.unpack.*; import com.engine.secret.entity.unpack.*;
import com.engine.secret.exception.CustomizeRunTimeException; import com.engine.secret.exception.CustomizeRunTimeException;
import com.engine.secret.service.QualificationApplicationService; import com.engine.secret.service.QualificationApplicationService;
import com.engine.secret.util.ConfigUtil;
import com.engine.secret.util.ModeUtil; import com.engine.secret.util.ModeUtil;
import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonNode; 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.collections.CollectionUtils;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import weaver.conn.RecordSet; import weaver.conn.RecordSet;
import weaver.docs.docs.DocImageManager;
import weaver.file.ImageFileManager; import weaver.file.ImageFileManager;
import weaver.formmode.IgnoreCaseHashMap; import weaver.formmode.IgnoreCaseHashMap;
import weaver.general.BaseBean; import weaver.general.BaseBean;
@ -37,12 +40,11 @@ import java.util.stream.Collectors;
*/ */
public class QualificationApplicationServiceImpl extends Service implements QualificationApplicationService { public class QualificationApplicationServiceImpl extends Service implements QualificationApplicationService {
private static String UNZIP_PWD = "zizhi102!"; private static int uploadCatalogue;
private static int UPLOAD_CATALOGUE = 122;
private static String CONFIG_TABLE_NAME = "uf_config_package"; private static final String CONFIG_TABLE_NAME = "uf_config_package";
private static String CONFIG_DETAIL_TABLE_NAME = "uf_config_package_dt1"; private static final String CONFIG_DETAIL_TABLE_NAME = "uf_config_package_dt1";
private static String FILE_DETAIL_TABLE_NAME = "uf_config_package_dt2"; private static final String FILE_DETAIL_TABLE_NAME = "uf_config_package_dt2";
BaseBean baseBean = new BaseBean(); BaseBean baseBean = new BaseBean();
@ -61,6 +63,30 @@ public class QualificationApplicationServiceImpl extends Service implements Qual
throw new CustomizeRunTimeException("文件获取失败,请确认文件是否上传"); throw new CustomizeRunTimeException("文件获取失败,请确认文件是否上传");
} }
baseBean.writeLog("imageId==" + imageId); 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<String, Object> returnMap = new HashMap<>(); Map<String, Object> returnMap = new HashMap<>();
// 根据文件id获取文件流 // 根据文件id获取文件流
ImageFileManager manager = new ImageFileManager(); ImageFileManager manager = new ImageFileManager();
@ -76,7 +102,7 @@ public class QualificationApplicationServiceImpl extends Service implements Qual
//解压文件处理压缩包 //解压文件处理压缩包
baseBean.writeLog("开始解压文件,处理压缩包"); baseBean.writeLog("开始解压文件,处理压缩包");
unzipWithPassword(tempZipFile, Paths.get("output"), UNZIP_PWD); unzipWithPassword(tempZipFile, Paths.get("output"), unzipPwd);
baseBean.writeLog("压缩包处理完成"); baseBean.writeLog("压缩包处理完成");
@ -165,6 +191,7 @@ public class QualificationApplicationServiceImpl extends Service implements Qual
*/ */
private void offline(JsonNode rootNode) throws Exception { private void offline(JsonNode rootNode) throws Exception {
List<DataConfig> dataConfigList = getDataConfig("0"); List<DataConfig> dataConfigList = getDataConfig("0");
baseBean.writeLog("dataConfigList==" + JSON.toJSONString(dataConfigList));
// 处理文件数据 // 处理文件数据
List<ApplicationResource> applicationResourceList = getApplicationResourceList(rootNode); List<ApplicationResource> applicationResourceList = getApplicationResourceList(rootNode);
@ -182,6 +209,7 @@ public class QualificationApplicationServiceImpl extends Service implements Qual
for (DataConfig dataConfig : dataConfigList) { for (DataConfig dataConfig : dataConfigList) {
String mainTableName = dataConfig.getMainTableName(); String mainTableName = dataConfig.getMainTableName();
String rootPath = dataConfig.getRootPath(); String rootPath = dataConfig.getRootPath();
baseBean.writeLog("rootPath==" + rootPath);
// 字段对照关系 // 字段对照关系
List<DataConfigDetail> fieldDetailList = dataConfig.getDetailList(); List<DataConfigDetail> fieldDetailList = dataConfig.getDetailList();
// 获取明细表相关信息 // 获取明细表相关信息
@ -371,12 +399,20 @@ public class QualificationApplicationServiceImpl extends Service implements Qual
*/ */
private void dealFileList(int mainId, List<FileConfig> fileConfigList, String tableName, boolean isDetail) throws Exception { private void dealFileList(int mainId, List<FileConfig> fileConfigList, String tableName, boolean isDetail) throws Exception {
Map<String, Object> dataMap = new IgnoreCaseHashMap<>(); Map<String, Object> dataMap = new IgnoreCaseHashMap<>();
Map<String, Object> defaultDataMap = new IgnoreCaseHashMap<>();
for (FileConfig fileConfig : fileConfigList) { for (FileConfig fileConfig : fileConfigList) {
String fieldName = fileConfig.getFieldName(); String fieldName = fileConfig.getFieldName();
// 是否更正文件 // 是否更正文件
String isFilled = fileConfig.getIsFilled(); String isFilled = fileConfig.getIsFilled();
// 文件标识ID // 文件标识ID
String fileId = fileConfig.getFileId(); String fileId = fileConfig.getFileId();
String isDefault = fileConfig.getIsDefault();
if ("1".equals(isDefault)) {
// 默认值条件直接写入表单对应的字段
defaultDataMap.put(fieldName, fileId);
continue;
}
List<ApplicationResource> applicationResources = applicationResourceMap.get(fileId); List<ApplicationResource> applicationResources = applicationResourceMap.get(fileId);
if (CollectionUtils.isEmpty(applicationResources)) { if (CollectionUtils.isEmpty(applicationResources)) {
@ -401,7 +437,7 @@ public class QualificationApplicationServiceImpl extends Service implements Qual
String fileName = resourceInfo.getFileName(); String fileName = resourceInfo.getFileName();
Integer imageFileId = imageFileMap.get(fileName); Integer imageFileId = imageFileMap.get(fileName);
// 生成文档ID // 生成文档ID
int docId = ModeUtil.createDocId(UPLOAD_CATALOGUE, imageFileId, user); int docId = ModeUtil.createDocId(uploadCatalogue, imageFileId, user);
docIds.add(docId); docIds.add(docId);
} }
dataMap.put(fieldName, StringUtils.join(docIds, ",")); dataMap.put(fieldName, StringUtils.join(docIds, ","));
@ -412,11 +448,13 @@ public class QualificationApplicationServiceImpl extends Service implements Qual
return; return;
} }
// 合并默认值数据,如果文件集合为空,则不单独插入默认值
dataMap.putAll(defaultDataMap);
baseBean.writeLog("文件插入集合dataMap==" + JSON.toJSONString(dataMap)); baseBean.writeLog("文件插入集合dataMap==" + JSON.toJSONString(dataMap));
// 根据主表明细表区分数据处理方式 // 根据主表明细表区分数据处理方式
if (isDetail) { if (isDetail) {
dataMap.put("mainid", mainId); dataMap.put("mainid", mainId);
ModeUtil.insertData(dataMap,tableName); ModeUtil.insertData(dataMap, tableName);
} else { } else {
dataMap.put("id", mainId); dataMap.put("id", mainId);
// 根据ID更新主表数据 // 根据ID更新主表数据
@ -437,7 +475,7 @@ public class QualificationApplicationServiceImpl extends Service implements Qual
// 获取离线包的先关配置 // 获取离线包的先关配置
List<DataConfig> dataConfigList = new ArrayList<>(); List<DataConfig> dataConfigList = new ArrayList<>();
RecordSet rs = new RecordSet(); 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()) { while (rs.next()) {
DataConfig dataConfig = new DataConfig(); DataConfig dataConfig = new DataConfig();
dataConfig.setId(rs.getString("id")); dataConfig.setId(rs.getString("id"));
@ -473,7 +511,7 @@ public class QualificationApplicationServiceImpl extends Service implements Qual
for (String dtName : detailNameArray) { for (String dtName : detailNameArray) {
RecordSet rs = new RecordSet(); 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()) { while (rs.next()) {
DataConfig dataConfig = new DataConfig(); DataConfig dataConfig = new DataConfig();
dataConfig.setId(rs.getString("id")); dataConfig.setId(rs.getString("id"));
@ -517,7 +555,12 @@ public class QualificationApplicationServiceImpl extends Service implements Qual
RecordSet rs = new RecordSet(); RecordSet rs = new RecordSet();
rs.executeQuery("select * from " + FILE_DETAIL_TABLE_NAME + " where mainId = ?", mainId); rs.executeQuery("select * from " + FILE_DETAIL_TABLE_NAME + " where mainId = ?", mainId);
while (rs.next()) { 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; return fileList;
} }

View File

@ -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 "";
}
}