From 07e28eb177a4e385152492b52e0477c6f76c3edf Mon Sep 17 00:00:00 2001 From: buaixuexideshitongxue <2936013465@qq.com> Date: Fri, 23 Jan 2026 11:27:20 +0800 Subject: [PATCH] =?UTF-8?q?=E7=A6=81=E9=97=AD=E7=AE=A1=E7=90=86=E6=A8=A1?= =?UTF-8?q?=E5=9D=97=EF=BC=8C=E5=AF=B9=E6=95=B0=E6=8D=AE=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E6=98=AF=E5=90=A6=E5=85=B3=E8=81=94=E9=97=AE=E9=A2=98=E7=8A=B6?= =?UTF-8?q?=E6=80=81=EF=BC=8C=E5=A6=82=E5=B7=B2=E5=85=B3=E8=81=94=E9=97=AE?= =?UTF-8?q?=E9=A2=98=EF=BC=8C=E6=94=AF=E6=8C=81=E6=9F=A5=E7=9C=8B=E9=97=AE?= =?UTF-8?q?=E9=A2=98=E8=AF=A6=E6=83=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../supervision/pojo/vo/ConfinementVo.java | 4 +++ .../service/ConfinementService.java | 35 ++++++++++++++++--- 2 files changed, 35 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/biutag/supervision/pojo/vo/ConfinementVo.java b/src/main/java/com/biutag/supervision/pojo/vo/ConfinementVo.java index c160662..ba232f3 100644 --- a/src/main/java/com/biutag/supervision/pojo/vo/ConfinementVo.java +++ b/src/main/java/com/biutag/supervision/pojo/vo/ConfinementVo.java @@ -1,6 +1,7 @@ package com.biutag.supervision.pojo.vo; import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.constraints.NotBlank; import lombok.Data; @@ -91,4 +92,7 @@ public class ConfinementVo { private String roleId; private String userId; + + @Schema(description = "问题ID") + private String negativeId; } diff --git a/src/main/java/com/biutag/supervision/service/ConfinementService.java b/src/main/java/com/biutag/supervision/service/ConfinementService.java index 01e20a1..c13c7c9 100644 --- a/src/main/java/com/biutag/supervision/service/ConfinementService.java +++ b/src/main/java/com/biutag/supervision/service/ConfinementService.java @@ -10,21 +10,25 @@ import com.biutag.supervision.constants.AppConstants; import com.biutag.supervision.constants.enums.RoleCodeEnum; import com.biutag.supervision.mapper.ConfinementMapper; import com.biutag.supervision.pojo.entity.Confinement; +import com.biutag.supervision.pojo.entity.NegativeBlame; import com.biutag.supervision.pojo.model.UserAuth; import com.biutag.supervision.pojo.param.ConfinementQueryParam; +import com.biutag.supervision.pojo.param.negativeBlame.NegativeBlameConfinementQueryParam; import com.biutag.supervision.pojo.vo.ConfinementExcelVo; import com.biutag.supervision.pojo.vo.ConfinementVo; +import com.biutag.supervision.repository.negativeBlame.NegativeBlameResourceService; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; -import java.util.ArrayList; -import java.util.List; +import java.util.*; +import java.util.stream.Collectors; @RequiredArgsConstructor @Service public class ConfinementService extends ServiceImpl { private final SupDepartService departService; + private final NegativeBlameResourceService negativeBlameResourceService; public Page page(ConfinementQueryParam param) { QueryWrapper queryWrapper = new QueryWrapper<>(); @@ -57,8 +61,31 @@ public class ConfinementService extends ServiceImpl confinementVoPage = baseMapper.queryPage(Page.of(param.getCurrent(), param.getSize()), queryWrapper); + List records = confinementVoPage.getRecords(); + if (CollectionUtils.isNotEmpty(records)){ + // 所有的禁闭ID + Set confinementIdList = records.stream().map(ConfinementVo::getId).collect(Collectors.toSet()); + // 去negativeBlame中找negativeId + NegativeBlameConfinementQueryParam negativeBlameQueryParam = new NegativeBlameConfinementQueryParam(); + negativeBlameQueryParam.setConfinementIds(confinementIdList); + negativeBlameQueryParam.setLeadConfinementIds(confinementIdList); + List negativeBlames = negativeBlameResourceService.queryConfinement(negativeBlameQueryParam); + // confinementId --- negativeId + Map negativeIdMap = new HashMap<>(); + for (NegativeBlame nb : negativeBlames) { + if (StrUtil.isNotBlank(nb.getNegativeId())) { + if (StrUtil.isNotBlank(nb.getConfinementId())) { + negativeIdMap.putIfAbsent(nb.getConfinementId(), nb.getNegativeId()); + } + if (StrUtil.isNotBlank(nb.getLeadConfinementId())) { + negativeIdMap.putIfAbsent(nb.getLeadConfinementId(), nb.getNegativeId()); + } + } + } + records.forEach(one -> one.setNegativeId(negativeIdMap.get(one.getId()))); + } + return confinementVoPage; }