feat(文档拆分): 批量拆分

This commit is contained in:
yjz
2024-02-23 10:48:44 +08:00
parent 17e8ad3f75
commit 427df4d803
4 changed files with 61 additions and 1 deletions
@@ -1,5 +1,6 @@
package com.jero.modules.laws.documenttool.controller;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import com.github.xiaoymin.knife4j.annotations.ApiSupport;
@@ -149,6 +150,22 @@ public class DocumentSplitController {
return Result.OK(MessageUtils.getMessage(ResultCommon.OK));
}
/**
* 批量拆分
*
* @param jsonObject
* @return
*/
@AutoLog(value = "标准拆分-批量拆分")
@ApiOperation(value="标准拆分-批量拆分", notes="标准拆分-批量拆分")
@PostMapping(value = "/batchSplit")
// @RequiresPermissions("split:sarFileSplitInfo:splitFile")
@ApiOperationSupport(order = 6)
public Result<T> batchSplit(@ApiParam("文件id") @RequestBody JSONObject jsonObject) {
documentSplitService.batchSplit(jsonObject);
return Result.OK(MessageUtils.getMessage(ResultCommon.OK));
}
/**
* 发布
*
@@ -70,4 +70,8 @@ public class SplitFileInfo {
@TableField(exist = false)
@ApiModelProperty(value = "标准名称")
private String standardName;
@TableField(exist = false)
@ApiModelProperty(value = "ids 查询用")
private String ids;
}
@@ -1,5 +1,6 @@
package com.jero.modules.laws.documenttool.service;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.jero.modules.activiti.process.projectassess.entity.ProcessProjectAssessTerm;
import com.jero.modules.activiti.process.projectstandard.entity.ProcessProjectStandardTerm;
@@ -210,5 +211,9 @@ public interface IDocumentSplitService {
*/
void isHorizontalOverstep(String ids);
/**
* 文档拆分-批量拆分
* @param jsonObject
*/
void batchSplit(JSONObject jsonObject);
}
@@ -4,6 +4,7 @@ import cn.hutool.core.collection.CollStreamUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.text.CharSequenceUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
@@ -1260,6 +1261,9 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService {
queryWrapper.likeLeft("file_name", ".docx");
queryWrapper.isNotNull("o.standard_id");
queryWrapper.orderByDesc(CREATE_TIME);
if (StringUtils.isNotBlank(splitFileInfo.getIds())){
queryWrapper.in("o.id", Arrays.asList(splitFileInfo.getIds().split(",")));
}
return documentSplitMapper.querySplitFileInfoByPage(queryWrapper, new Page<>(pageNo, pageSize));
}
@@ -1307,6 +1311,36 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService {
}
}
@Override
public void batchSplit(JSONObject jsonObject) {
// 获取拆分所选文件
SplitFileInfo splitFileInfo = new SplitFileInfo();
splitFileInfo.setIds(jsonObject.getString("ids"));
IPage<SplitFileInfo> splitFileInfoIPage = querySplitFileInfoByPage(splitFileInfo, 1, 10);
List<SplitFileInfo> list = splitFileInfoIPage.getRecords();
// 异常信息
List<String> errorList = new ArrayList<>();
// 拆分
for (SplitFileInfo fileInfo : list) {
SarFileSplitInfoEO sarFileSplitInfoEO = new SarFileSplitInfoEO();
sarFileSplitInfoEO.setFileId(fileInfo.getId());
sarFileSplitInfoEO.setFileName(fileInfo.getFileName());
sarFileSplitInfoEO.setFileType(fileInfo.getStandardFileType());
sarFileSplitInfoEO.setSerialNumber(fileInfo.getStandardNumber());
sarFileSplitInfoEO.setStandardId(fileInfo.getStandardId());
sarFileSplitInfoEO.setTitle(fileInfo.getStandardName());
try {
add(sarFileSplitInfoEO);
}catch (JeroBootException e){
errorList.add("标准编号为:" + fileInfo.getStandardNumber() + " " + e.getMessage());
}
}
if (!errorList.isEmpty()){
throw new JeroBootException(String.join("<br/>", errorList));
}
}
private void manageData(Map<String, Object> resultMap, StringBuilder fieldsBuilder, List<String> valuesList) {
// 所有key(字段名)
resultMap.forEach((k, v) -> {