|
|
@@ -273,7 +273,9 @@ public class WorkKnowledgeBaseShareService extends CrudService<WorkKnowledgeBase
|
|
|
for (Map<String, Object> map : list) {
|
|
|
map.put("uploadMode", entity.getUploadMode());
|
|
|
}
|
|
|
- // 处理附件url
|
|
|
+ // 处理附件url:从 work_attachment 表批量加载第一个附件的信息,替代原有 file_url 字段
|
|
|
+ fillFirstAttachmentData(list);
|
|
|
+ // 处理附件url(添加域名前缀、生成临时预览URL)
|
|
|
workattachmentService.attachmentManageByUrlOnWorkKnowledgeBaseShare(list);
|
|
|
|
|
|
// 标记当前登录用户是否已对列表中的文件审核过
|
|
|
@@ -359,7 +361,7 @@ public class WorkKnowledgeBaseShareService extends CrudService<WorkKnowledgeBase
|
|
|
public void saveShare(WorkKnowledgeBaseShareInfo shareInfo) {
|
|
|
boolean isNew = shareInfo.getIsNewRecord();
|
|
|
|
|
|
- // 从附件列表中提前提取第一个有效附件的 url,写入 file_url 字段
|
|
|
+ // 附件URL预处理(不再写入file_url字段,附件数据统一存储在work_attachment表中)
|
|
|
List<Workattachment> attachments = shareInfo.getWorkAttachments();
|
|
|
if (attachments != null) {
|
|
|
for (Workattachment attachment : attachments) {
|
|
|
@@ -368,9 +370,6 @@ public class WorkKnowledgeBaseShareService extends CrudService<WorkKnowledgeBase
|
|
|
&& StringUtils.isNotBlank(attachment.getUrl())) {
|
|
|
String url = workattachmentService.disposeUrl(attachment);
|
|
|
attachment.setUrl(url);
|
|
|
- shareInfo.setFileUrl(attachment.getUrl());
|
|
|
- shareInfo.setFileName(attachment.getAttachmentName() != null ? attachment.getAttachmentName() : "");
|
|
|
- break;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
@@ -700,6 +699,41 @@ public class WorkKnowledgeBaseShareService extends CrudService<WorkKnowledgeBase
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
+ * 批量填充每行数据的第一个附件信息(替代原有 file_url/file_name 字段)
|
|
|
+ * 从 work_attachment 表查询每个文件对应的第一个附件,将 url 和 attachmentName 写入 map
|
|
|
+ * @param list 查询结果列表(每行为 Map,包含 id 字段)
|
|
|
+ */
|
|
|
+ public void fillFirstAttachmentData(List<Map<String, Object>> list) {
|
|
|
+ if (list == null || list.isEmpty()) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ for (Map<String, Object> map : list) {
|
|
|
+ Object id = map.get("id");
|
|
|
+ if (id == null) continue;
|
|
|
+ String fileId = id.toString();
|
|
|
+ List<Workattachment> attList = workattachmentService.getListByAttachmentIdAndFlag(fileId, ATTACHMENT_FLAG);
|
|
|
+ if (attList != null && !attList.isEmpty()) {
|
|
|
+ Workattachment firstAttach = attList.get(0);
|
|
|
+ map.put("fileUrl", firstAttach.getUrl());
|
|
|
+ map.put("fileName", firstAttach.getAttachmentName());
|
|
|
+ // 附件数量
|
|
|
+ map.put("attachmentCount", attList.size());
|
|
|
+ // 所有附件名称逗号分隔展示
|
|
|
+ StringBuilder namesBuilder = new StringBuilder();
|
|
|
+ for (int i = 0; i < attList.size(); i++) {
|
|
|
+ if (i > 0) namesBuilder.append(", ");
|
|
|
+ String name = attList.get(i).getAttachmentName();
|
|
|
+ namesBuilder.append(name != null ? name : "");
|
|
|
+ }
|
|
|
+ map.put("allAttachmentNames", namesBuilder.toString());
|
|
|
+ } else {
|
|
|
+ map.put("attachmentCount", 0);
|
|
|
+ map.put("allAttachmentNames", "");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
* 发起审核:未审核(1) -> 审核中(2),清空通过/驳回统计
|
|
|
*/
|
|
|
@Transactional(readOnly = false)
|
|
|
@@ -1773,6 +1807,14 @@ public class WorkKnowledgeBaseShareService extends CrudService<WorkKnowledgeBase
|
|
|
delVal.setFileId(entity.getId());
|
|
|
delVal.preUpdate();
|
|
|
dynamicValueInfoDao.deleteByFileId(delVal);
|
|
|
+
|
|
|
+ // 同步逻辑删除关联的附件记录
|
|
|
+ List<Workattachment> attachments = workattachmentService.getListByAttachmentIdAndFlag(entity.getId(), ATTACHMENT_FLAG);
|
|
|
+ if (attachments != null) {
|
|
|
+ for (Workattachment attachment : attachments) {
|
|
|
+ workattachmentService.delete(attachment);
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
/**
|