diff --git a/tool-tech-admin/src/main/java/com/rzdata/web/controller/tool/AttachmentController.java b/tool-tech-admin/src/main/java/com/rzdata/web/controller/tool/AttachmentController.java index 614ebb0..1dab487 100644 --- a/tool-tech-admin/src/main/java/com/rzdata/web/controller/tool/AttachmentController.java +++ b/tool-tech-admin/src/main/java/com/rzdata/web/controller/tool/AttachmentController.java @@ -38,7 +38,6 @@ public class AttachmentController extends BaseController /** * 查询附件列表 */ - @PreAuthorize("@ss.hasPermi('system:attachment:list')") @GetMapping("/list") public TableDataInfo list(Attachment attachment) { @@ -50,7 +49,6 @@ public class AttachmentController extends BaseController /** * 导出附件列表 */ - @PreAuthorize("@ss.hasPermi('system:attachment:export')") @Log(title = "附件", businessType = BusinessType.EXPORT) @PostMapping("/export") public void export(HttpServletResponse response, Attachment attachment) @@ -63,7 +61,6 @@ public class AttachmentController extends BaseController /** * 获取附件详细信息 */ - @PreAuthorize("@ss.hasPermi('system:attachment:query')") @GetMapping(value = "/{id}") public AjaxResult getInfo(@PathVariable("id") String id) { @@ -73,7 +70,6 @@ public class AttachmentController extends BaseController /** * 新增附件 */ - @PreAuthorize("@ss.hasPermi('system:attachment:add')") @Log(title = "附件", businessType = BusinessType.INSERT) @PostMapping public AjaxResult add(@RequestBody Attachment attachment) @@ -84,7 +80,6 @@ public class AttachmentController extends BaseController /** * 修改附件 */ - @PreAuthorize("@ss.hasPermi('system:attachment:edit')") @Log(title = "附件", businessType = BusinessType.UPDATE) @PutMapping public AjaxResult edit(@RequestBody Attachment attachment) @@ -95,7 +90,6 @@ public class AttachmentController extends BaseController /** * 删除附件 */ - @PreAuthorize("@ss.hasPermi('system:attachment:remove')") @Log(title = "附件", businessType = BusinessType.DELETE) @DeleteMapping("/{ids}") public AjaxResult remove(@PathVariable String[] ids) diff --git a/tool-tech-admin/src/main/java/com/rzdata/web/controller/tool/ToolController.java b/tool-tech-admin/src/main/java/com/rzdata/web/controller/tool/ToolController.java index 32a687e..7d17169 100644 --- a/tool-tech-admin/src/main/java/com/rzdata/web/controller/tool/ToolController.java +++ b/tool-tech-admin/src/main/java/com/rzdata/web/controller/tool/ToolController.java @@ -1,6 +1,5 @@ package com.rzdata.web.controller.tool; -import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.BooleanUtil; import cn.hutool.core.util.IdUtil; import com.blueland.bpmclient.model.ProcessInstanceModel; @@ -170,17 +169,16 @@ public class ToolController extends BaseController if (add) { tTool.setProcInstId(processInstanceModel.getProcInstId()); toolService.insertTool(tTool); - //保存文档和附件 - toolService.addDocAndAtt(tTool); - + //保存附件 + toolService.addFileList(tTool); //记录申请数据 toolService.recordToolApply(tTool); } else if (BooleanUtil.isTrue(tTool.getEditStatus())){ toolService.updateTool(tTool); - //删除文档和附件 - toolService.deleteDocAndAtt(tTool); - //保存文档和附件 - toolService.addDocAndAtt(tTool); + //删除附件 + toolService.delFile(tTool); + //保存附件 + toolService.addFileList(tTool); } else { Tool tool = new Tool(); tool.setToolId(tTool.getToolId()); diff --git a/tool-tech-admin/src/main/java/com/rzdata/web/domain/Attachment.java b/tool-tech-admin/src/main/java/com/rzdata/web/domain/Attachment.java index 4561dbe..f51155a 100644 --- a/tool-tech-admin/src/main/java/com/rzdata/web/domain/Attachment.java +++ b/tool-tech-admin/src/main/java/com/rzdata/web/domain/Attachment.java @@ -65,12 +65,10 @@ public class Attachment extends BaseEntity private String del; /** 创建时间 */ - @JsonFormat(pattern = "yyyy-MM-dd") @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd") private Date createDate; /** 更新时间 */ - @JsonFormat(pattern = "yyyy-MM-dd") @Excel(name = "更新时间", width = 30, dateFormat = "yyyy-MM-dd") private Date updateDate; @@ -80,4 +78,7 @@ public class Attachment extends BaseEntity private Date failureTime; private List businessIds; + + /** 文件名称 **/ + private String fileName; } diff --git a/tool-tech-admin/src/main/java/com/rzdata/web/domain/DownloadCount.java b/tool-tech-admin/src/main/java/com/rzdata/web/domain/DownloadCount.java index ba94060..0411827 100644 --- a/tool-tech-admin/src/main/java/com/rzdata/web/domain/DownloadCount.java +++ b/tool-tech-admin/src/main/java/com/rzdata/web/domain/DownloadCount.java @@ -21,8 +21,14 @@ public class DownloadCount extends BaseEntity private String id; /** 工具id */ - @Excel(name = "工具id") - private String toolId; + @Excel(name = "业务id") + private String businessId; + /** 业务类型 */ + private String businessType; + /** 附件id */ + private String attId; + /** 附件名称 */ + private String attName; /** 创建人id */ @Excel(name = "创建人id") diff --git a/tool-tech-admin/src/main/java/com/rzdata/web/domain/Tool.java b/tool-tech-admin/src/main/java/com/rzdata/web/domain/Tool.java index adb0d61..f098ea1 100644 --- a/tool-tech-admin/src/main/java/com/rzdata/web/domain/Tool.java +++ b/tool-tech-admin/src/main/java/com/rzdata/web/domain/Tool.java @@ -104,6 +104,7 @@ public class Tool extends BaseEntity private List excludeFields; private List documentList; + private List attachmentList; /** 工具类型名称 **/ diff --git a/tool-tech-admin/src/main/java/com/rzdata/web/mapper/AttachmentMapper.java b/tool-tech-admin/src/main/java/com/rzdata/web/mapper/AttachmentMapper.java index 298ac70..f288efc 100644 --- a/tool-tech-admin/src/main/java/com/rzdata/web/mapper/AttachmentMapper.java +++ b/tool-tech-admin/src/main/java/com/rzdata/web/mapper/AttachmentMapper.java @@ -1,6 +1,7 @@ package com.rzdata.web.mapper; import com.rzdata.web.domain.Attachment; +import org.apache.ibatis.annotations.Param; import java.util.List; @@ -68,4 +69,6 @@ public interface AttachmentMapper public int deleteAttachmentByIds(String[] ids); public int deleteAttachmentByBusinessId(List list); + + int batchInsert(@Param("attachmentList") List attachmentList); } diff --git a/tool-tech-admin/src/main/java/com/rzdata/web/service/IAttachmentService.java b/tool-tech-admin/src/main/java/com/rzdata/web/service/IAttachmentService.java index 808c432..4b2f2b1 100644 --- a/tool-tech-admin/src/main/java/com/rzdata/web/service/IAttachmentService.java +++ b/tool-tech-admin/src/main/java/com/rzdata/web/service/IAttachmentService.java @@ -67,4 +67,11 @@ public interface IAttachmentService * @return 结果 */ public int deleteAttachmentById(String id); + + /** + * 批量插入 + * @param batch + * @return + */ + public int batchInsert(List batch); } diff --git a/tool-tech-admin/src/main/java/com/rzdata/web/service/IToolService.java b/tool-tech-admin/src/main/java/com/rzdata/web/service/IToolService.java index dbd3e41..6823579 100644 --- a/tool-tech-admin/src/main/java/com/rzdata/web/service/IToolService.java +++ b/tool-tech-admin/src/main/java/com/rzdata/web/service/IToolService.java @@ -69,13 +69,13 @@ public interface IToolService * 删除文档和附件 * @param tool */ - public void deleteDocAndAtt(Tool tool); + public void delFile(Tool tool); /** * 新增文档和附件 * @param tool */ - public void addDocAndAtt(Tool tool); + public void addFileList(Tool tool); void recordToolApply(Tool tool); diff --git a/tool-tech-admin/src/main/java/com/rzdata/web/service/impl/AttachmentServiceImpl.java b/tool-tech-admin/src/main/java/com/rzdata/web/service/impl/AttachmentServiceImpl.java index 3b33e73..71f5e3c 100644 --- a/tool-tech-admin/src/main/java/com/rzdata/web/service/impl/AttachmentServiceImpl.java +++ b/tool-tech-admin/src/main/java/com/rzdata/web/service/impl/AttachmentServiceImpl.java @@ -114,4 +114,9 @@ public class AttachmentServiceImpl implements IAttachmentService { return attachmentMapper.deleteAttachmentById(id); } + + @Override + public int batchInsert(List batch) { + return attachmentMapper.batchInsert(batch); + } } diff --git a/tool-tech-admin/src/main/java/com/rzdata/web/service/impl/ToolServiceImpl.java b/tool-tech-admin/src/main/java/com/rzdata/web/service/impl/ToolServiceImpl.java index 636e25e..602a620 100644 --- a/tool-tech-admin/src/main/java/com/rzdata/web/service/impl/ToolServiceImpl.java +++ b/tool-tech-admin/src/main/java/com/rzdata/web/service/impl/ToolServiceImpl.java @@ -16,10 +16,7 @@ import com.rzdata.common.utils.SecurityUtils; import com.rzdata.system.service.ISysDeptService; import com.rzdata.system.service.ISysDictTypeService; import com.rzdata.system.service.ISysUserService; -import com.rzdata.web.domain.Document; -import com.rzdata.web.domain.Tool; -import com.rzdata.web.domain.ToolApply; -import com.rzdata.web.domain.TzMessage; +import com.rzdata.web.domain.*; import com.rzdata.web.domain.bo.BpmClientInputModelBo; import com.rzdata.web.mapper.ToolMapper; import com.rzdata.web.service.*; @@ -28,10 +25,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.concurrent.atomic.AtomicInteger; import java.util.stream.Collectors; @@ -143,37 +137,42 @@ public class ToolServiceImpl implements IToolService tool.setUpdateBy(SecurityUtils.getUserId().toString()); tool.setUpdateTime(DateUtils.getNowDate()); int result = toolMapper.updateTool(tool); - deleteDocAndAtt(tool); - addDocAndAtt(tool); + delFile(tool); + addFileList(tool); return result; } @Override @Transactional(rollbackFor = Exception.class) - public void deleteDocAndAtt(Tool tool) { - List documentList = tool.getDocumentList(); - if(CollUtil.isEmpty(documentList)){ - return; - } - //先删除,后新增 - List docIds = documentList.stream().map(Document::getDocId).collect(Collectors.toList()); - iAttachmentService.deleteAttachmentByBusinessId(docIds); - documentService.batchDeleteById(docIds); + public void delFile(Tool tool) { + List toolIds = Collections.singletonList(tool.getToolId()); + iAttachmentService.deleteAttachmentByBusinessId(toolIds); } @Override @Transactional(rollbackFor = Exception.class) - public void addDocAndAtt(Tool tool) { - List documentList = tool.getDocumentList(); - if(CollUtil.isEmpty(documentList)){ + public void addFileList(Tool tool) { + List attachmentList = tool.getAttachmentList(); + if(CollUtil.isEmpty(attachmentList)){ return; } - //新增 - for (Document document : documentList) { - document.setToolId(tool.getToolId()); - document.setDocStatus(Constants.DOC_STATUS_SHZ); - documentService.saveDocument(document); + for (Attachment attachment : attachmentList) { + attachment.setId(String.valueOf(snowflake.nextId())); + attachment.setBusinessId(tool.getToolId()); + attachment.setBizType(Constants.ATT_TYPE_TOOL); + attachment.setDel(Constants.STR_ZERO); + attachment.setCreateBy(String.valueOf(SecurityUtils.getLoginUser().getUserId())); + attachment.setCreateDate(new Date()); } + // 使用AtomicInteger来跟踪索引 + AtomicInteger counter = new AtomicInteger(0); + // 使用Stream API进行分组 + Map> grouped = attachmentList.stream() + .collect(Collectors.groupingBy( + e -> counter.getAndIncrement() / 500 + )); + // 对每个子列表进行批量插入 + grouped.values().forEach(batch -> iAttachmentService.batchInsert(batch)); } @Override diff --git a/tool-tech-admin/src/main/resources/mapper/AttachmentMapper.xml b/tool-tech-admin/src/main/resources/mapper/AttachmentMapper.xml index 7a27c95..0faba97 100644 --- a/tool-tech-admin/src/main/resources/mapper/AttachmentMapper.xml +++ b/tool-tech-admin/src/main/resources/mapper/AttachmentMapper.xml @@ -21,10 +21,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + - select id, biz_type, file_url, file_old_name, file_new_name, suffix_type, file_size, business_id, sorts, remark, del, create_by, create_date, update_by, update_date, failure_time from t_attachment + select id, biz_type, file_url, file_old_name, file_new_name, suffix_type, + file_size, business_id, sorts, remark, del, create_by, create_date, + update_by, update_date, failure_time, file_old_name as file_name + from t_attachment select - tdc.tool_id,tl.tool_code,tl.tool_name,sum(1) as tool_down_num + tdc.business_id,tdc.att_name,tl.tool_code,tl.tool_name,sum(1) as tool_down_num from t_download_count tdc - left join t_tool tl on tdc.tool_id = tl.tool_id + left join t_tool tl on tdc.business_id = tl.tool_id + and business_type = 'tool' AND date_format(tdc.create_time,'%y%m%d') >= date_format(#{params.beginTime},'%y%m%d') @@ -42,7 +47,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" AND tl.tool_name like concat('%', #{toolName}, '%') - group by tdc.tool_id,tl.tool_code,tl.tool_name + group by tdc.business_id,tdc.att_name,tl.tool_code,tl.tool_name select - tdc.tool_id,su.nick_name,tdc.create_time,sum(1) as tool_down_num + tdc.business_id,tdc.att_name,su.nick_name,tdc.create_time,sum(1) as tool_down_num from t_download_count tdc left join sys_user su on tdc.create_by_id = su.user_id - - AND tool_id = #{toolId} + + AND business_id = #{businessId} group by su.nick_name diff --git a/tool-tech-common/src/main/java/com/rzdata/common/constant/Constants.java b/tool-tech-common/src/main/java/com/rzdata/common/constant/Constants.java index 2873d2b..2d0ed14 100644 --- a/tool-tech-common/src/main/java/com/rzdata/common/constant/Constants.java +++ b/tool-tech-common/src/main/java/com/rzdata/common/constant/Constants.java @@ -192,6 +192,8 @@ public class Constants /** 文档-doc **/ public static final String DOC_TYPE_DOC = "doc"; + /** 工具状态 **/ + public static final String ATT_TYPE_TOOL = "tool"; public static final String STR_ZERO = "0";