feat(material): 支持下载多个PLM文件并打包成ZIP

This commit is contained in:
mzr 2025-09-29 20:53:14 +08:00
parent 9ab10106a0
commit 744905acca
1 changed files with 20 additions and 19 deletions

View File

@ -170,27 +170,28 @@ public class MaterialPlmDownloadAction implements ICommonAction {
logger.error("物料编码 " + materialCode + " 未查询到" + fileType + "类型文件"); logger.error("物料编码 " + materialCode + " 未查询到" + fileType + "类型文件");
return false; return false;
} }
for (int i = 0; i < jsonArray.size(); i++) {
JSONObject plmFileJson = (JSONObject) jsonArray.get(i);
String objId = plmFileJson.getString("objId");
if (objId == null || objId.isEmpty()) {
logger.error("物料编码 " + materialCode + "" + fileType + "文件ID为空");
continue;
}
JSONObject plmFileJson = jsonArray.getJSONObject(0); String name = plmFileJson.getString("name");
String objId = plmFileJson.getString("objId"); String suffix = plmFileJson.getString("suffix");
if (objId == null || objId.isEmpty()) { byte[] fileBytes = downloadPlmFileByType(objId, fileType);
logger.error("物料编码 " + materialCode + "" + fileType + "文件ID为空"); if (fileBytes.length == 0) {
return false; logger.error("物料编码 " + materialCode + "" + fileType + "文件字节流为空");
continue;
}
// 生成带类型标识的文件名避免重复
String fname = name + "_" + materialCode + "_" + getTypeName(fileType) + "_" + (index + i) + "." + suffix;
zipStream.putNextEntry(new ZipEntry(fname));
zipStream.write(fileBytes);
zipStream.closeEntry();
} }
String name = plmFileJson.getString("name");
String suffix = plmFileJson.getString("suffix");
byte[] fileBytes = downloadPlmFileByType(objId, fileType);
if (fileBytes.length == 0) {
logger.error("物料编码 " + materialCode + "" + fileType + "文件字节流为空");
return false;
}
// 生成带类型标识的文件名避免重复
String fname = name + "_" + materialCode + "_" + getTypeName(fileType) + "_" + index + "." + suffix;
zipStream.putNextEntry(new ZipEntry(fname));
zipStream.write(fileBytes);
zipStream.closeEntry();
return true; return true;
} }