From 96dfb77e20e6f124a13589190dd158396fb3c803 Mon Sep 17 00:00:00 2001 From: niujiyi <18272501226@163.com> Date: Wed, 29 Jul 2026 10:13:57 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=81=E4=B8=9A=E7=AB=AF-=E6=89=A7=E6=B3=95?= =?UTF-8?q?=E9=A2=84=E5=91=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AppEnforcementLawNoticeController.java | 56 ++++++++++++++++++- .../service/IEfcodeCpNoticeService.java | 5 +- .../EfcodeCpNoticeMessageServiceImpl.java | 10 ++-- .../impl/EfcodeCpNoticeServiceImpl.java | 18 ++++++ 4 files changed, 83 insertions(+), 6 deletions(-) diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/controller/app/enterprise/AppEnforcementLawNoticeController.java b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/controller/app/enterprise/AppEnforcementLawNoticeController.java index 01dcd943..8d6fff1b 100644 --- a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/controller/app/enterprise/AppEnforcementLawNoticeController.java +++ b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/controller/app/enterprise/AppEnforcementLawNoticeController.java @@ -2,14 +2,22 @@ package com.zdxt.enforcementcode.controller.app.enterprise; import java.util.List; +import cn.dev33.satoken.annotation.SaIgnore; +import com.zdxt.enforcementcode.domain.bo.EfcodeCpNoticeBo; +import com.zdxt.enforcementcode.domain.bo.EfcodeCpNoticeMessageBo; import com.zdxt.enforcementcode.domain.bo.EnforcementLawNoticeListBo; +import com.zdxt.enforcementcode.domain.vo.EfcodeCpNoticeMessageVo; +import com.zdxt.enforcementcode.domain.vo.EfcodeCpNoticeVo; import com.zdxt.enforcementcode.domain.vo.EnforcementLawNoticeListVo; import com.zdxt.enforcementcode.domain.vo.EnforcementLawNoticeVo; +import com.zdxt.enforcementcode.service.IEfcodeCpNoticeMessageService; +import com.zdxt.enforcementcode.service.IEfcodeCpNoticeService; import com.zdxt.enforcementcode.service.IEnforcementLawNoticeService; import lombok.RequiredArgsConstructor; import jakarta.servlet.http.HttpServletResponse; import jakarta.validation.constraints.*; import cn.dev33.satoken.annotation.SaCheckPermission; +import org.apache.commons.lang3.StringUtils; import org.springframework.web.bind.annotation.*; import org.springframework.validation.annotation.Validated; import org.dromara.common.idempotent.annotation.RepeatSubmit; @@ -37,7 +45,8 @@ import org.dromara.common.mybatis.core.page.TableDataInfo; public class AppEnforcementLawNoticeController extends BaseController { private final IEnforcementLawNoticeService enforcementLawNoticeService; - + private final IEfcodeCpNoticeService efcodeCpNoticeService; + private final IEfcodeCpNoticeMessageService efcodeCpNoticeMessageService; /** * 查询行政执法预告列表 @@ -109,4 +118,49 @@ public class AppEnforcementLawNoticeController extends BaseController { @PathVariable String[] ids) { return toAjax(enforcementLawNoticeService.deleteWithValidByIds(List.of(ids), true)); } + + + /** + * 查询当前企业的预告列表 + * 通过status区分tab:0=草稿, 1=待执法(已发布), 3=历史(已执行) + */ + @SaIgnore + @GetMapping("/myList") + public TableDataInfo myList(EfcodeCpNoticeBo bo, PageQuery pageQuery) { + return efcodeCpNoticeService.entQueryMyPageList(bo, pageQuery); + } + + // =================== 留言相关 =================== + + /** + * 查询某个预告的留言列表 + */ + @GetMapping("/message/list") + public R> messageList(@RequestParam String noticeId) { + EfcodeCpNoticeMessageBo bo = new EfcodeCpNoticeMessageBo(); + bo.setNoticeId(noticeId); + bo.setIsDelete(0L); + List list = efcodeCpNoticeMessageService.queryList(bo); + // 从预告中获取执法部门名称填充到消息中 + EfcodeCpNoticeVo notice = efcodeCpNoticeService.queryById(noticeId); + if (notice != null && StringUtils.isNotBlank(notice.getBureauDeptName())) { + for (EfcodeCpNoticeMessageVo msg : list) { + if (msg.getMsgFrom() != null && msg.getMsgFrom() == 0L) { + msg.setBureauDeptName(notice.getBureauDeptName()); + } + } + } + return R.ok(list); + } + + /** + * 新增留言 + */ + @SaIgnore + @PostMapping("/message") + public R addMessage(@RequestBody EfcodeCpNoticeMessageBo bo) { + + efcodeCpNoticeMessageService.insertByBo(bo); + return R.ok(); + } } diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/IEfcodeCpNoticeService.java b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/IEfcodeCpNoticeService.java index 9c20a917..f7d5be9d 100644 --- a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/IEfcodeCpNoticeService.java +++ b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/IEfcodeCpNoticeService.java @@ -70,7 +70,10 @@ public interface IEfcodeCpNoticeService { * 查询当前用户的预告列表(分页) */ TableDataInfo queryMyPageList(EfcodeCpNoticeBo bo, PageQuery pageQuery); - + /** + * 查询当前企业的预告列表(分页) + */ + TableDataInfo entQueryMyPageList(EfcodeCpNoticeBo bo, PageQuery pageQuery); /** * 保存预告(新增草稿或发布)并同步写入 notice_users 表 */ diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/EfcodeCpNoticeMessageServiceImpl.java b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/EfcodeCpNoticeMessageServiceImpl.java index b722788e..2d761dc5 100644 --- a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/EfcodeCpNoticeMessageServiceImpl.java +++ b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/EfcodeCpNoticeMessageServiceImpl.java @@ -97,6 +97,8 @@ public class EfcodeCpNoticeMessageServiceImpl implements IEfcodeCpNoticeMessageS */ @Override public Boolean insertByBo(EfcodeCpNoticeMessageBo bo) { + bo.setIsDelete(0L); + bo.setMsgFrom(1L); EfcodeCpNoticeMessage add = MapstructUtils.convert(bo, EfcodeCpNoticeMessage.class); validEntityBeforeSave(add); boolean flag = baseMapper.insert(add) > 0; @@ -160,16 +162,16 @@ public class EfcodeCpNoticeMessageServiceImpl implements IEfcodeCpNoticeMessageS if (notices.isEmpty()) { return 0L; } - List noticeIds = notices.stream().map(EfcodeCpNotice::getId).toList(); + /*List noticeIds = notices.stream().map(EfcodeCpNotice::getId).toList();*/ // 2. 统计这些预告下企业未读的消息数量(同一预告的多条未读消息只计1条) - LambdaQueryWrapper msgWrapper = Wrappers.lambdaQuery(); + /* LambdaQueryWrapper msgWrapper = Wrappers.lambdaQuery(); msgWrapper.in(EfcodeCpNoticeMessage::getNoticeId, noticeIds); msgWrapper.eq(EfcodeCpNoticeMessage::getEnterpriseViewed, 0); msgWrapper.eq(EfcodeCpNoticeMessage::getIsDelete, 0); msgWrapper.select(EfcodeCpNoticeMessage::getNoticeId); - List messages = baseMapper.selectList(msgWrapper); - return (long) messages.stream().map(EfcodeCpNoticeMessage::getNoticeId).distinct().count(); + List messages = baseMapper.selectList(msgWrapper);*/ + return (long) notices.stream().map(EfcodeCpNotice::getId).distinct().count(); } /** diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/EfcodeCpNoticeServiceImpl.java b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/EfcodeCpNoticeServiceImpl.java index 92fd899d..c9a9f6a2 100644 --- a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/EfcodeCpNoticeServiceImpl.java +++ b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/EfcodeCpNoticeServiceImpl.java @@ -92,6 +92,24 @@ public class EfcodeCpNoticeServiceImpl implements IEfcodeCpNoticeService { Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); return TableDataInfo.build(result); } + /** + * 查询当前用户的预告列表(分页) + * 过滤条件:create_by = 当前用户ID,is_delete = 0 + */ + @Override + public TableDataInfo entQueryMyPageList(EfcodeCpNoticeBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + lqw.eq(EfcodeCpNotice::getEnterpriseNumber,bo.getEnterpriseNumber()); + lqw.eq(EfcodeCpNotice::getStatus, 1L); + // 过滤已删除 + lqw.eq(EfcodeCpNotice::getIsDelete, 0); + // 按创建时间倒序 + lqw.orderByDesc(EfcodeCpNotice::getCreateTime); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + + + return TableDataInfo.build(result); + } /** * 保存预告(新增草稿或发布)并同步写入 notice_users 表