From 86533217888aba5d6c922c545497c90d08bb9a1e Mon Sep 17 00:00:00 2001 From: sunzheng Date: Wed, 9 Oct 2024 09:42:03 +0800 Subject: [PATCH] =?UTF-8?q?update:=E4=BF=AE=E6=94=B9=E6=B3=95=E8=A7=84?= =?UTF-8?q?=E9=87=8A=E7=96=91=E5=BA=93=E6=9F=A5=E8=AF=A2=E5=8D=95=E4=B8=AA?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...RegulationsQuestionLibraryServiceImpl.java | 89 +++++++------------ 1 file changed, 32 insertions(+), 57 deletions(-) diff --git a/laws-modules/src/main/java/com/jero/modules/laws/businessSupport/service/impl/LawsRegulationsQuestionLibraryServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/laws/businessSupport/service/impl/LawsRegulationsQuestionLibraryServiceImpl.java index 9af5cc6d..54785399 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/businessSupport/service/impl/LawsRegulationsQuestionLibraryServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/businessSupport/service/impl/LawsRegulationsQuestionLibraryServiceImpl.java @@ -1,6 +1,5 @@ package com.jero.modules.laws.businessSupport.service.impl; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -8,7 +7,6 @@ import com.jero.common.api.vo.Result; import com.jero.common.api.vo.ResultCommon; import com.jero.common.exception.JeroBootException; import com.jero.common.system.vo.LoginUser; -import com.jero.modules.activiti.process.standardinterpret.entity.ProcessStandardInterpretClause; import com.jero.modules.activiti.process.standardinterpret.service.StandardInterpretFlowService; import com.jero.modules.laws.businessSupport.entity.LawsRegulationsQuestionLibrary; import com.jero.modules.laws.businessSupport.mapper.LawsRegulationsQuestionLibraryMapper; @@ -16,9 +14,10 @@ import com.jero.modules.laws.businessSupport.service.ILawsRegulationsQuestionLib import com.jero.modules.laws.businessSupport.vo.RegulationVo; import com.jero.modules.laws.businessSupport.vo.StandardVo; import com.jero.modules.laws.common.constant.FieldCommon; +import com.jero.modules.laws.documenttool.entity.LawsDocumentSplit; import com.jero.modules.laws.documenttool.entity.LawsSplitByStandardNumber; +import com.jero.modules.laws.documenttool.mapper.DocumentSplitMapper; import com.jero.modules.laws.documenttool.service.IDocumentSplitService; -import com.jero.modules.split.entity.SarFileSplitInfoEO; import com.jero.modules.split.service.ISarFileSplitInfoService; import org.apache.commons.lang3.StringUtils; import org.apache.shiro.SecurityUtils; @@ -26,7 +25,6 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.util.*; -import java.util.stream.Collectors; /** *

@@ -48,6 +46,8 @@ public class LawsRegulationsQuestionLibraryServiceImpl extends ServiceImpl queryPage(LawsRegulationsQuestionLibrary lawsRegulationsQuestionLibrary, Integer pageNo, Integer pageSize) { @@ -142,77 +142,52 @@ public class LawsRegulationsQuestionLibraryServiceImpl extends ServiceImpl standardNumberMap = new HashMap<>(); + String regulationId = lawsRegulationsQuestionLibrary.getRegulationId(); + String regulationNumber = lawsRegulationsQuestionLibrary.getRegulationNumber(); + Map standardNumberMap = new HashMap<>(); List standardList = new ArrayList<>(); List regulationList = new ArrayList<>(); - // 按照发布稿>TBT通报文件>报批>送审稿>征求意见稿>草案顺序找拆分数据 - List typeOrder = Arrays.asList("publish_of_original", "tbt_file", "draft_for_review", "draft_for_approval", "draft_for_comment", "draft", "other_file"); if (StringUtils.isNotBlank(standardNumber) && StringUtils.isNotBlank(standardId)) { List standardIds = Arrays.asList(standardId.split(",")); List standardNumbers = Arrays.asList(standardNumber.split(",")); for (int i = 0; i < standardIds.size(); i++) { - List splitInfoList = sarFileSplitInfoService.list( - new LambdaQueryWrapper().eq(SarFileSplitInfoEO::getStandardId, standardIds.get(i)) - ); - splitInfoList.sort(Comparator.comparingInt(e -> typeOrder.indexOf(e.getFileType()))); - SarFileSplitInfoEO sarFileSplitInfoEO = splitInfoList.isEmpty() ? null : splitInfoList.get(0); - if (!Objects.isNull(sarFileSplitInfoEO)) { - StandardVo standardVo = new StandardVo(); - standardVo.setStandardId(standardIds.get(i)); - standardVo.setFileType(sarFileSplitInfoEO.getFileType()); - standardVo.setStandardNumber(standardNumbers.get(i)); - // 将 standardId 作为 key,jsonObject 作为 value 放入 Map - standardNumberMap.put(standardNumbers.get(i), standardVo); - standardList.add(standardVo); - } + StandardVo standardVo = new StandardVo(); + standardVo.setStandardId(standardIds.get(i)); + standardVo.setStandardNumber(standardNumbers.get(i)); + standardList.add(standardVo); + standardNumberMap.put(standardNumbers.get(i), standardIds.get(i)); } } lawsRegulationsQuestionLibrary.setStandardList(standardList); - String regulationNumber = lawsRegulationsQuestionLibrary.getRegulationNumber(); - Map> keyValueMap = new HashMap<>(); - if (StringUtils.isNotBlank(regulationNumber)) { - List standardIds = Arrays.asList(regulationNumber.split(",")); - for (String s : standardIds) { + if (StringUtils.isNotBlank(regulationId) && StringUtils.isNotBlank(regulationNumber)) { + List regulationIdList = Arrays.asList(regulationId.split(",")); + List regulationNumberList = Arrays.asList(regulationNumber.split(",")); + for (int i = 0; i < regulationNumberList.size(); i++) { + RegulationVo regulationVo = new RegulationVo(); + String regulationId1 = regulationIdList.get(i); + String number = regulationNumberList.get(i); + LawsDocumentSplit lawsDocumentSplit = documentSplitMapper.selectById(regulationId1); + regulationVo.setId(regulationId1); + regulationVo.setItemNum(lawsDocumentSplit.getItemNum()); + regulationVo.setItemTitle(lawsDocumentSplit.getItemTitle()); + regulationVo.setTitleTranslation(lawsDocumentSplit.getTitleTranslation()); + regulationVo.setItemContent(lawsDocumentSplit.getItemContent()); + regulationVo.setTranslation(lawsDocumentSplit.getTranslation()); // 找到最后一个空格的位置 - int lastSpaceIndex = s.lastIndexOf(" "); + int lastSpaceIndex = number.lastIndexOf(" "); // 确保空格存在并且位置不在字符串的开始或结束 - if (lastSpaceIndex != -1 && lastSpaceIndex < s.length() - 1) { - String key = s.substring(0, lastSpaceIndex); // 空格前的部分作为key - String value = s.substring(lastSpaceIndex + 1); // 空格后的部分作为value - // 如果key已存在,则追加value到该key的value列表中 - keyValueMap.computeIfAbsent(key, k -> new ArrayList<>()).add(value); - } - } - } - for (Map.Entry> entry : keyValueMap.entrySet()) { - String key = entry.getKey(); // 获取key - List values = entry.getValue(); // 获取value(List) - StandardVo standardVo = standardNumberMap.get(key); - if (!Objects.isNull(standardVo)) { - List clauseList = standardInterpretFlowService.getClauseList(standardVo.getStandardId(), standardVo.getFileType()); - // 过滤clauseList,只保留itemNum包含values中任意一个值的条目 - List filteredClauseList = clauseList.stream() - .filter(clause -> values.stream().anyMatch(value -> value.equals(clause.getItemNum()))) // 过滤条件 - .collect(Collectors.toList()); - for (ProcessStandardInterpretClause processStandardInterpretClause : filteredClauseList) { - RegulationVo regulationVo = new RegulationVo(); - regulationVo.setStandardId(standardVo.getStandardId()); - regulationVo.setStandardNumber(standardVo.getStandardNumber()); - regulationVo.setItemNum(processStandardInterpretClause.getItemNum()); - regulationVo.setItemTitle(processStandardInterpretClause.getItemTitle()); - regulationVo.setTitleTranslation(processStandardInterpretClause.getTitleTranslation()); - regulationVo.setItemContent(processStandardInterpretClause.getItemContent()); - regulationVo.setTranslation(processStandardInterpretClause.getTranslation()); - regulationList.add(regulationVo); + if (lastSpaceIndex != -1 && lastSpaceIndex < number.length() - 1) { + String key = number.substring(0, lastSpaceIndex); + regulationVo.setStandardNumber(key); + regulationVo.setStandardId(standardNumberMap.get(key)); } + regulationList.add(regulationVo); } lawsRegulationsQuestionLibrary.setRegulationList(regulationList); } return lawsRegulationsQuestionLibrary; } - - private void setResultData(List pageList) { LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); pageList.forEach(lawsRegulationsQuestionLibrary -> {