Compare commits

...

2 Commits

Author SHA1 Message Date
mzr 2b301aa939 MyHelper优化 2025-08-08 18:37:43 +08:00
mzr e53a7fa44e refactor(uapbd): 优化材料下载功能
- 在 MaterialPlmDownloadAction 中添加日志记录,便于调试和监控
- 更新 GetPlmFileUtil 类中的文件下载逻辑,提高代码可读性和性能
- 修复 zip压缩包创建过程中的潜在资源泄漏问题
2025-08-08 18:18:01 +08:00
3 changed files with 15 additions and 34 deletions

View File

@ -1,10 +1,13 @@
package nccloud.web.uapbd.material.action;
import nc.bs.logging.Logger;
import nc.bs.uapbd.util.GetPlmFileUtil;
import nccloud.baseapp.core.log.NCCForUAPLogger;
import nccloud.framework.core.io.WebFile;
import nccloud.framework.web.action.itf.ICommonAction;
import nccloud.framework.web.container.IRequest;
import java.util.Arrays;
import java.util.Map;
/**
@ -21,11 +24,13 @@ public class MaterialPlmDownloadAction implements ICommonAction {
try {
Map<String, String[]> params_1 = request.readParameters();
String[] pks = params_1.get("materialCode"); // »ñÈ¡ËùÓÐ pk
String materialCode = "101092250323,101092250323";
NCCForUAPLogger.debug("获取所有 pk:" + Arrays.toString(pks));
String materialCode = "101092250323,101092250321,101092250322";
String[] materialCodeArr = materialCode.split(",", -1);
GetPlmFileUtil fileUtil = new GetPlmFileUtil();
files = fileUtil.getPlmFiles(materialCodeArr);
} catch (Exception e) {
Logger.error("MaterialPlmDownloadAction-exp:" + e.getMessage());
throw new RuntimeException(e);
}
return files;

View File

@ -88,8 +88,8 @@ public class GetPlmFileUtil {
String objId = plmFileJson.getString("objId");
String fname = plmFileJson.getString("fname");
byte[] pdfBytes = this.doDownloadPlmFile(objId);
InputStream ins = new ByteArrayInputStream(pdfBytes);
byte[] fileBytes = this.doDownloadPlmFile(objId);
InputStream ins = new ByteArrayInputStream(fileBytes);
file = new WebFile(fname, ins);
} else {
@ -98,29 +98,14 @@ public class GetPlmFileUtil {
ByteArrayOutputStream zipOut = new ByteArrayOutputStream();
ZipOutputStream zipStream = new ZipOutputStream(zipOut);
try {
// int i=0;
for (String materialCode : materialCodeArr) {
JSONObject plmFileJson = this.getPlmFile(materialCode);
String objId = plmFileJson.getString("objId");
String fname = plmFileJson.getString("fname");
byte[] pdfBytes =this.doDownloadPlmFile(objId);
InputStream ins = new ByteArrayInputStream(pdfBytes);
// InputStream ins = this.doDownloadPlmFile(objId);
try {
byte[] bytes = parseFileStream(ins);
zipStream.putNextEntry(new ZipEntry(fname+""));
// i++;
zipStream.write(bytes);
byte[] fileBytes = this.doDownloadPlmFile(objId);
zipStream.putNextEntry(new ZipEntry(fname));
zipStream.write(fileBytes);
zipStream.closeEntry();
} finally {
if (ins != null) {
try {
ins.close();
} catch (IOException e) {
logger.error("Failed to close input stream: " + e.getMessage());
}
}
}
}
zipStream.finish();
} finally {
@ -289,16 +274,6 @@ public class GetPlmFileUtil {
byte[] responseString = httpClient.execute(get, response -> EntityUtils.toByteArray(response.getEntity()));
get.releaseConnection();
return responseString;
// // 执行请求并返回文件流
// return httpClient.execute(httpGet, response -> {
// // 检查响应状态
// int statusCode = response.getStatusLine().getStatusCode();
// if (statusCode >= 200 && statusCode < 300) {
// return response.getEntity().getContent();
// } else {
// throw new IOException("HTTP request failed with status code: " + statusCode);
// }
// });
}
/**

View File

@ -39,9 +39,10 @@ public class MyHelper {
sqlBuilder.append(pkField, pk);
Object o = dao.executeQuery(sqlBuilder.toString(), new ColumnProcessor());
if (o == null) {
throw new BusinessException("未查询到编码信息sql【" + sqlBuilder + "");
Logger.info("未查询到编码信息sql【" + sqlBuilder + "");
// throw new BusinessException("未查询到编码信息sql【" + sqlBuilder + "");
}
return o.toString();
return String.valueOf(o);
}
/**