From 58c0e4f4aa3ca645b941ed2194732f477d738002 Mon Sep 17 00:00:00 2001 From: sunzheng Date: Fri, 27 Sep 2024 14:54:53 +0800 Subject: [PATCH] =?UTF-8?q?update:=E6=B3=95=E8=A7=84=E9=87=8A=E7=96=91?= =?UTF-8?q?=E5=BA=93=E6=8C=89id=E6=9F=A5=E8=AF=A2=E8=BF=94=E5=9B=9E?= =?UTF-8?q?=E6=A0=87=E5=87=86=E5=88=97=E8=A1=A8=E5=92=8C=E6=9D=A1=E6=AC=BE?= =?UTF-8?q?=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../LawsRegulationsQuestionLibrary.java | 18 ++-- ...RegulationsQuestionLibraryServiceImpl.java | 89 +++++++++++++++++-- .../laws/businessSupport/vo/RegulationVo.java | 30 +++++++ .../laws/businessSupport/vo/StandardVo.java | 17 ++++ 4 files changed, 144 insertions(+), 10 deletions(-) create mode 100644 laws-modules/src/main/java/com/jero/modules/laws/businessSupport/vo/RegulationVo.java create mode 100644 laws-modules/src/main/java/com/jero/modules/laws/businessSupport/vo/StandardVo.java diff --git a/laws-modules/src/main/java/com/jero/modules/laws/businessSupport/entity/LawsRegulationsQuestionLibrary.java b/laws-modules/src/main/java/com/jero/modules/laws/businessSupport/entity/LawsRegulationsQuestionLibrary.java index e9a2e5f7..60560b03 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/businessSupport/entity/LawsRegulationsQuestionLibrary.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/businessSupport/entity/LawsRegulationsQuestionLibrary.java @@ -1,13 +1,13 @@ package com.jero.modules.laws.businessSupport.entity; import com.baomidou.mybatisplus.annotation.*; - -import java.time.LocalDateTime; import java.io.Serializable; import java.util.Date; - +import java.util.List; import com.fasterxml.jackson.annotation.JsonFormat; import com.jero.common.aspect.annotation.Dict; +import com.jero.modules.laws.businessSupport.vo.RegulationVo; +import com.jero.modules.laws.businessSupport.vo.StandardVo; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -43,8 +43,8 @@ public class LawsRegulationsQuestionLibrary implements Serializable { @ApiModelProperty(value = "标准编号") private String standardNumber; - @ApiModelProperty(value = "标准名称") - private String standardName; + @ApiModelProperty(value = "标准id") + private String standardId; @ApiModelProperty(value = "条款号") private String regulationNumber; @@ -109,5 +109,13 @@ public class LawsRegulationsQuestionLibrary implements Serializable { @TableField(exist = false) private String releaseEndTime; + @ApiModelProperty(value = "标准列表") + @TableField(exist = false) + private List standardList; + + @ApiModelProperty(value = "条款列表") + @TableField(exist = false) + private List regulationList; + } 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 1f83cc36..0ca7304a 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,5 +1,6 @@ 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; @@ -7,19 +8,23 @@ 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; import com.jero.modules.laws.businessSupport.service.ILawsRegulationsQuestionLibraryService; +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.split.entity.SarFileSplitInfoEO; +import com.jero.modules.split.service.ISarFileSplitInfoService; import org.apache.commons.lang3.StringUtils; import org.apache.shiro.SecurityUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; -import java.util.Arrays; -import java.util.Date; -import java.util.List; -import java.util.Objects; +import java.util.*; +import java.util.stream.Collectors; /** *

@@ -35,7 +40,10 @@ public class LawsRegulationsQuestionLibraryServiceImpl extends ServiceImpl queryPage(LawsRegulationsQuestionLibrary lawsRegulationsQuestionLibrary, Integer pageNo, Integer pageSize) { @@ -122,9 +130,80 @@ public class LawsRegulationsQuestionLibraryServiceImpl extends ServiceImpl 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); + } + } + } + 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) { + // 找到最后一个空格的位置 + int lastSpaceIndex = s.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); + } + } + lawsRegulationsQuestionLibrary.setRegulationList(regulationList); + } return lawsRegulationsQuestionLibrary; } + + private void setResultData(List pageList) { LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); pageList.forEach(lawsRegulationsQuestionLibrary -> { diff --git a/laws-modules/src/main/java/com/jero/modules/laws/businessSupport/vo/RegulationVo.java b/laws-modules/src/main/java/com/jero/modules/laws/businessSupport/vo/RegulationVo.java new file mode 100644 index 00000000..f6d5fb91 --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/laws/businessSupport/vo/RegulationVo.java @@ -0,0 +1,30 @@ +package com.jero.modules.laws.businessSupport.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class RegulationVo { + + @ApiModelProperty(value = "标准id") + private String standardId; + + @ApiModelProperty(value = "标准编号") + private String standardNumber; + + @ApiModelProperty(value = "条款号") + private String itemNum; + + @ApiModelProperty(value = "条款标题") + private String itemTitle; + + @ApiModelProperty(value = "译文标题") + private String titleTranslation; + + @ApiModelProperty(value = "条款内容") + private String itemContent; + + @ApiModelProperty(value = "译文") + private String translation; + +} diff --git a/laws-modules/src/main/java/com/jero/modules/laws/businessSupport/vo/StandardVo.java b/laws-modules/src/main/java/com/jero/modules/laws/businessSupport/vo/StandardVo.java new file mode 100644 index 00000000..2ef5c8fb --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/laws/businessSupport/vo/StandardVo.java @@ -0,0 +1,17 @@ +package com.jero.modules.laws.businessSupport.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class StandardVo { + + @ApiModelProperty(value = "标准id") + private String standardId; + + @ApiModelProperty(value = "文本状态") + private String fileType; + + @ApiModelProperty(value = "标准编号") + private String standardNumber; +}