feat: 标准重新拆分

This commit is contained in:
2024-09-16 13:16:54 +08:00
parent 5c27be3034
commit 484cffe49c
3 changed files with 36 additions and 14 deletions
@@ -162,7 +162,7 @@ public class DocumentSplitController {
@RequiresPermissions("split:sarFileSplitInfo:splitFile")
@ApiOperationSupport(order = 6)
public Result<T> batchSplit(@ApiParam("文件id") @RequestBody JSONObject jsonObject) {
documentSplitService.batchSplit(jsonObject);
documentSplitService.batchSplit(jsonObject, null);
return Result.OK(MessageUtils.getMessage(ResultCommon.OK));
}
@@ -494,8 +494,8 @@ public class DocumentSplitController {
*/
@AutoLog(value = "标准拆分详情-查询所有拆分错误的标准")
@ApiOperation(value = "标准拆分详情-查询所有拆分错误的标准")
@GetMapping("/showAllBadSplit")
public Result<String> showAllBadSplit() {
return Result.OK(MessageUtils.getMessage(ResultCommon.OK), documentSplitService.showAllBadSplit());
@GetMapping("/fixAllBadSplit")
public Result<String> fixAllBadSplit() {
return Result.OK(MessageUtils.getMessage(ResultCommon.OK), documentSplitService.fixAllBadSplit());
}
}
@@ -224,7 +224,7 @@ public interface IDocumentSplitService extends IService<LawsDocumentSplit> {
* 文档拆分-批量拆分
* @param jsonObject
*/
void batchSplit(JSONObject jsonObject);
void batchSplit(JSONObject jsonObject, String author);
/**
* 重新处理条文详情
@@ -246,5 +246,5 @@ public interface IDocumentSplitService extends IService<LawsDocumentSplit> {
*/
void deleteBatchTitle(String ids);
String showAllBadSplit();
String fixAllBadSplit();
}
@@ -475,7 +475,7 @@ public class DocumentSplitServiceImpl extends ServiceImpl<DocumentSplitMapper, L
// 企标权限校验
enterpriseCheck(sarFileSplitInfoEO);
// 唯一校验
uniqueCheck(sarFileSplitInfoEO);
// uniqueCheck(sarFileSplitInfoEO);
// 保存文本拆分数据
saveDocumentSplitInfo(sarFileSplitInfoEO);
//拆分
@@ -1461,8 +1461,7 @@ public class DocumentSplitServiceImpl extends ServiceImpl<DocumentSplitMapper, L
}
@Override
@Transactional(noRollbackFor = {JeroBootException.class})
public void batchSplit(JSONObject jsonObject) {
public void batchSplit(JSONObject jsonObject, String author) {
// 获取拆分所选文件
SplitFileInfo splitFileInfo = new SplitFileInfo();
splitFileInfo.setIds(jsonObject.getString("ids"));
@@ -1487,6 +1486,7 @@ public class DocumentSplitServiceImpl extends ServiceImpl<DocumentSplitMapper, L
sarFileSplitInfoEO.setSerialNumber(fileInfo.getStandardNumber());
sarFileSplitInfoEO.setStandardId(fileInfo.getStandardId());
sarFileSplitInfoEO.setTitle(fileInfo.getStandardName());
sarFileSplitInfoEO.setAuthor(author);
try {
add(sarFileSplitInfoEO);
// 更新标准拆分状态
@@ -1616,8 +1616,12 @@ public class DocumentSplitServiceImpl extends ServiceImpl<DocumentSplitMapper, L
String infoId = UUID.randomUUID().toString().replace("-", "");
sarFileSplitInfoEO.setId(infoId);
sarFileSplitInfoEO.setSplitResult("成功");
sarFileSplitInfoEO.setSplitStatus(SplitEnum.SPLIT_STATUS1.getValue());
sarFileSplitInfoEO.setAuthor(sysUser.getId());
sarFileSplitInfoEO.setSplitStatus(SplitEnum.SPLIT_STATUS2.getValue());
if (StringUtils.isBlank(sarFileSplitInfoEO.getAuthor())) {
sarFileSplitInfoEO.setAuthor(sysUser.getId());
} else {
sarFileSplitInfoEO.setAuthor(sarFileSplitInfoEO.getAuthor());
}
sarFileSplitInfoEO.setCreateTime(now);
sarFileSplitInfoEO.setUpdateTime(now);
sarFileSplitInfoService.save(sarFileSplitInfoEO);
@@ -1832,7 +1836,7 @@ public class DocumentSplitServiceImpl extends ServiceImpl<DocumentSplitMapper, L
@Override
public String showAllBadSplit() {
public String fixAllBadSplit() {
List<SarFileSplitItemsValEO> list = sarFileSplitItemsValEOService.list();
Map<String, List<SarFileSplitItemsValEO>> valMap = list.stream().collect(Collectors.groupingBy(SarFileSplitItemsValEO::getItemId));
List<SarFileSplitItemsValEO> imageOneList = list.stream().filter(val -> val.getItemContent().startsWith("图1")).collect(Collectors.toList());
@@ -1870,11 +1874,29 @@ public class DocumentSplitServiceImpl extends ServiceImpl<DocumentSplitMapper, L
infoEOLambdaQueryWrapper.eq(SarFileSplitInfoEO::getSplitResult, "成功");
infoEOLambdaQueryWrapper.eq(SarFileSplitInfoEO::getSplitStatus, "2");
infoEOLambdaQueryWrapper.in(SarFileSplitInfoEO::getId, infoIdList);
// infoEOLambdaQueryWrapper.eq(SarFileSplitInfoEO::getId, "19e6041480f8469bb9c2e09487ed8770");
List<SarFileSplitInfoEO> infoList = sarFileSplitInfoService.list(infoEOLambdaQueryWrapper);
log.info("共发现{}条没有拆出图片的企标", infoList.size());
// 开始重新拆分
int count = 1;
List<String> failedList = new ArrayList<>();
for (SarFileSplitInfoEO info : infoList) {
log.info("企标编号:{},拆分id{}", info.getSerialNumber(), info.getId());
try {
log.info("正在处理第{}条,企标编号{}", count, info.getSerialNumber());
String fileId = info.getFileId();
String infoId = info.getId();
String author = info.getAuthor();
// 删除拆分记录
sarFileSplitInfoService.deleteByIds(Collections.singletonList(infoId));
// 重新拆分
JSONObject jsonObject = new JSONObject();
jsonObject.put("ids", fileId);
documentSplitService.batchSplit(jsonObject, author);
log.info("第{}条处理完毕", count++);
} catch (Exception e) {
failedList.add(info.getId());
}
}
return infoList.stream().map(SarFileSplitInfoEO::getId).collect(Collectors.joining(","));
return failedList.size() + "条企标拆分失败";
}
}