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 8239c107..d290fe15 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 @@ -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 showAllBadSplit() { + return Result.OK(MessageUtils.getMessage(ResultCommon.OK), documentSplitService.showAllBadSplit()); + } } 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 c862ddd5..4d122b0f 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 @@ -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 { /** * 文档拆分-分页列表查询 @@ -243,4 +245,6 @@ public interface IDocumentSplitService { * @param ids */ void deleteBatchTitle(String ids); + + String showAllBadSplit(); } 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 66981f9a..316411c2 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 @@ -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 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 list = sarFileSplitItemsValEOService.list(); + Map> valMap = list.stream().collect(Collectors.groupingBy(SarFileSplitItemsValEO::getItemId)); + List imageOneList = list.stream().filter(val -> val.getItemContent().startsWith("图1")).collect(Collectors.toList()); + ConcurrentLinkedQueue itemIdList = new ConcurrentLinkedQueue<>(); + imageOneList.stream().parallel().forEach(one -> { + List vals = valMap.get(one.getItemId()); + if (vals.isEmpty()) { + return; + } + Map> orderMap = vals.stream().collect(Collectors.groupingBy(SarFileSplitItemsValEO::getDisplaySeq)); + List 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 lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.in(LawsDocumentSplit::getId, itemIdList); + List documentSplistList = documentSplitService.list(lambdaQueryWrapper); + Set infoIdList = documentSplistList.stream() + .map(LawsDocumentSplit::getInfoId).collect(Collectors.toSet()); + + // 找到所有info 并打印所有标准编号 和splitId + List esList = esService.list(); + List esStandardNoList = esList.stream().map(LawsEnterpriseStandard::getStandardNumber).collect(Collectors.toList()); + LambdaQueryWrapper 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 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(",")); + } } diff --git a/laws-modules/src/main/java/com/jero/modules/split/entity/SarFileSplitItemsValEO.java b/laws-modules/src/main/java/com/jero/modules/split/entity/SarFileSplitItemsValEO.java index fc0ef843..1eb32b72 100644 --- a/laws-modules/src/main/java/com/jero/modules/split/entity/SarFileSplitItemsValEO.java +++ b/laws-modules/src/main/java/com/jero/modules/split/entity/SarFileSplitItemsValEO.java @@ -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; * 版权所有:版权归北京卡达克数据技术中心所有。
*/ @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 defaultFileList; /** * 图片名称 @@ -93,15 +98,18 @@ public class SarFileSplitItemsValEO implements Serializable { * 表格 */ @ApiModelProperty("表格") + @TableField(exist = false) private List tableList; /** * 表格 */ @ApiModelProperty("表格") + @TableField(exist = false) private List> tableListShow; /** * 行数 */ @ApiModelProperty("行数") + @TableField(exist = false) private int rowCount; }