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

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 fileId;
private String isFilled;
private String isDefault;
}

View File

@ -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<String, Object> 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<DataConfig> dataConfigList = getDataConfig("0");
baseBean.writeLog("dataConfigList==" + JSON.toJSONString(dataConfigList));
// 处理文件数据
List<ApplicationResource> 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<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 {
Map<String, Object> dataMap = new IgnoreCaseHashMap<>();
Map<String, Object> 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<ApplicationResource> 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<DataConfig> 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;
}

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