feat: 查找拆分没有图片的企标

This commit is contained in:
2024-09-12 15:38:26 +08:00
parent a534535a2e
commit 2ee479f5a4
4 changed files with 84 additions and 2 deletions
@@ -487,4 +487,15 @@ public class DocumentSplitController {
documentSplitService.disposeItemVal(isAsmsImport, serialNumber);
return Result.OK(MessageUtils.getMessage(ResultCommon.OK));
}
/**
* 标准拆分详情-查询所有拆分错误的标准
* @return
*/
@AutoLog(value = "标准拆分详情-查询所有拆分错误的标准")
@ApiOperation(value = "标准拆分详情-查询所有拆分错误的标准")
@GetMapping("/showAllBadSplit")
public Result<String> showAllBadSplit() {
return Result.OK(MessageUtils.getMessage(ResultCommon.OK), documentSplitService.showAllBadSplit());
}
}
@@ -2,9 +2,11 @@ package com.jero.modules.laws.documenttool.service;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.jero.modules.activiti.process.projectassess.entity.ProcessProjectAssessTerm;
import com.jero.modules.activiti.process.projectstandard.entity.ProcessProjectStandardTerm;
import com.jero.modules.laws.documenttool.entity.DocumentSplitInfo;
import com.jero.modules.laws.documenttool.entity.LawsDocumentSplit;
import com.jero.modules.laws.documenttool.entity.LawsDocumentSplitView;
import com.jero.modules.laws.documenttool.entity.SplitFileInfo;
import com.jero.modules.split.entity.SarFileSplitInfoEO;
@@ -21,7 +23,7 @@ import java.util.Map;
* @Date: 2023/10/12/23:03
* @Description: 文档拆分
*/
public interface IDocumentSplitService {
public interface IDocumentSplitService extends IService<LawsDocumentSplit> {
/**
* 文档拆分-分页列表查询
@@ -243,4 +245,6 @@ public interface IDocumentSplitService {
* @param ids
*/
void deleteBatchTitle(String ids);
String showAllBadSplit();
}
@@ -10,6 +10,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.common.constant.enums.LanguageEnum;
import com.jero.common.constant.enums.YesOrNoEnum;
import com.jero.common.exception.JeroBootException;
@@ -97,6 +98,7 @@ import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.support.DefaultTransactionDefinition;
import org.springframework.web.util.HtmlUtils;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
@@ -104,6 +106,7 @@ import java.io.FileOutputStream;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.concurrent.ConcurrentLinkedQueue;
import java.util.concurrent.atomic.AtomicReference;
import java.util.stream.Collectors;
@@ -115,7 +118,14 @@ import java.util.stream.Collectors;
@Service
@Transactional
@Slf4j
public class DocumentSplitServiceImpl implements IDocumentSplitService {
public class DocumentSplitServiceImpl extends ServiceImpl<DocumentSplitMapper, LawsDocumentSplit> implements IDocumentSplitService {
@Resource
private ILawsEnterpriseStandardService esService;
@Resource
private IDocumentSplitService documentSplitService;
private final DocumentSplitMapper documentSplitMapper;
private final ISarFileSplitInfoService sarFileSplitInfoService;
private final LawsCommonMapper lawsCommonMapper;
@@ -1818,4 +1828,53 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService {
queryWrapper.orderByDesc(CREATE_TIME);
return queryWrapper;
}
@Override
public String showAllBadSplit() {
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());
ConcurrentLinkedQueue<String> itemIdList = new ConcurrentLinkedQueue<>();
imageOneList.stream().parallel().forEach(one -> {
List<SarFileSplitItemsValEO> vals = valMap.get(one.getItemId());
if (vals.isEmpty()) {
return;
}
Map<Integer, List<SarFileSplitItemsValEO>> orderMap = vals.stream().collect(Collectors.groupingBy(SarFileSplitItemsValEO::getDisplaySeq));
List<SarFileSplitItemsValEO> imageList = orderMap.get(one.getDisplaySeq() - 1);
if (imageList == null || imageList.isEmpty()) {
itemIdList.add(one.getItemId());
return;
}
SarFileSplitItemsValEO image = imageList.get(0);
if (!image.getType().equals("IMG")) {
itemIdList.add(one.getItemId());
}
});
// 找到所有infoId
LambdaQueryWrapper<LawsDocumentSplit> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.in(LawsDocumentSplit::getId, itemIdList);
List<LawsDocumentSplit> documentSplistList = documentSplitService.list(lambdaQueryWrapper);
Set<String> infoIdList = documentSplistList.stream()
.map(LawsDocumentSplit::getInfoId).collect(Collectors.toSet());
// 找到所有info 并打印所有标准编号 和splitId
List<LawsEnterpriseStandard> esList = esService.list();
List<String> esStandardNoList = esList.stream().map(LawsEnterpriseStandard::getStandardNumber).collect(Collectors.toList());
LambdaQueryWrapper<SarFileSplitInfoEO> infoEOLambdaQueryWrapper = new LambdaQueryWrapper<>();
infoEOLambdaQueryWrapper.in(SarFileSplitInfoEO::getSerialNumber, esStandardNoList);
infoEOLambdaQueryWrapper.eq(SarFileSplitInfoEO::getDelFlag, YesOrNoEnum.NO.getValue());
infoEOLambdaQueryWrapper.eq(SarFileSplitInfoEO::getSplitResult, "成功");
infoEOLambdaQueryWrapper.eq(SarFileSplitInfoEO::getSplitStatus, "2");
infoEOLambdaQueryWrapper.in(SarFileSplitInfoEO::getId, infoIdList);
List<SarFileSplitInfoEO> infoList = sarFileSplitInfoService.list(infoEOLambdaQueryWrapper);
log.info("共发现{}条没有拆出图片的企标", infoList.size());
for (SarFileSplitInfoEO info : infoList) {
log.info("企标编号:{},拆分id{}", info.getSerialNumber(), info.getId());
}
return infoList.stream().map(SarFileSplitInfoEO::getId).collect(Collectors.joining(","));
}
}
@@ -1,5 +1,7 @@
package com.jero.modules.split.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.jero.modules.split.common.UploadFileInfo;
import io.swagger.annotations.*;
@@ -16,6 +18,7 @@ import java.util.List;
* <b>版权所有:<b>版权归北京卡达克数据技术中心所有。<br>
*/
@Data
@TableName("sar_file_split_items_val")
public class SarFileSplitItemsValEO implements Serializable {
private static final long serialVersionUID = 1L;
@@ -73,11 +76,13 @@ public class SarFileSplitItemsValEO implements Serializable {
* idList
*/
@ApiModelProperty("idList")
@TableField(exist = false)
private String[] idList;
/**
* 默认文件
*/
@ApiModelProperty("默认文件")
@TableField(exist = false)
private List<UploadFileInfo> defaultFileList;
/**
* 图片名称
@@ -93,15 +98,18 @@ public class SarFileSplitItemsValEO implements Serializable {
* 表格
*/
@ApiModelProperty("表格")
@TableField(exist = false)
private List<SarFileSplitItemsTableEO> tableList;
/**
* 表格
*/
@ApiModelProperty("表格")
@TableField(exist = false)
private List<List<SarFileSplitItemsTableEO>> tableListShow;
/**
* 行数
*/
@ApiModelProperty("行数")
@TableField(exist = false)
private int rowCount;
}