diff --git a/laws-modules/src/main/java/com/jero/modules/laws/documenttool/controller/DocumentSplitController.java b/laws-modules/src/main/java/com/jero/modules/laws/documenttool/controller/DocumentSplitController.java index c2615717..3d82654e 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/documenttool/controller/DocumentSplitController.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/documenttool/controller/DocumentSplitController.java @@ -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 batchSplit(@ApiParam("文件id") @RequestBody JSONObject jsonObject) { + documentSplitService.batchSplit(jsonObject); + return Result.OK(MessageUtils.getMessage(ResultCommon.OK)); + } + /** * 发布 * diff --git a/laws-modules/src/main/java/com/jero/modules/laws/documenttool/entity/SplitFileInfo.java b/laws-modules/src/main/java/com/jero/modules/laws/documenttool/entity/SplitFileInfo.java index 36d79262..4c2cc73d 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/documenttool/entity/SplitFileInfo.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/documenttool/entity/SplitFileInfo.java @@ -70,4 +70,8 @@ public class SplitFileInfo { @TableField(exist = false) @ApiModelProperty(value = "标准名称") private String standardName; + + @TableField(exist = false) + @ApiModelProperty(value = "ids 查询用") + private String ids; } diff --git a/laws-modules/src/main/java/com/jero/modules/laws/documenttool/service/IDocumentSplitService.java b/laws-modules/src/main/java/com/jero/modules/laws/documenttool/service/IDocumentSplitService.java index 13d74fc4..98382df8 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/documenttool/service/IDocumentSplitService.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/documenttool/service/IDocumentSplitService.java @@ -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); } diff --git a/laws-modules/src/main/java/com/jero/modules/laws/documenttool/service/impl/DocumentSplitServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/laws/documenttool/service/impl/DocumentSplitServiceImpl.java index a994e4e7..b5a1d81a 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/documenttool/service/impl/DocumentSplitServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/documenttool/service/impl/DocumentSplitServiceImpl.java @@ -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 splitFileInfoIPage = querySplitFileInfoByPage(splitFileInfo, 1, 10); + List list = splitFileInfoIPage.getRecords(); + // 异常信息 + List 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("
", errorList)); + } + } + private void manageData(Map resultMap, StringBuilder fieldsBuilder, List valuesList) { // 所有key(字段名) resultMap.forEach((k, v) -> {