Browse Source

企业端-执法预告

dev
niujiyi 1 month ago
parent
commit
96dfb77e20
  1. 56
      zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/controller/app/enterprise/AppEnforcementLawNoticeController.java
  2. 5
      zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/IEfcodeCpNoticeService.java
  3. 10
      zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/EfcodeCpNoticeMessageServiceImpl.java
  4. 18
      zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/EfcodeCpNoticeServiceImpl.java

56
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区分tab0=草稿, 1=待执法(已发布), 3=历史(已执行)
*/
@SaIgnore
@GetMapping("/myList")
public TableDataInfo<EfcodeCpNoticeVo> myList(EfcodeCpNoticeBo bo, PageQuery pageQuery) {
return efcodeCpNoticeService.entQueryMyPageList(bo, pageQuery);
}
// =================== 留言相关 ===================
/**
* 查询某个预告的留言列表
*/
@GetMapping("/message/list")
public R<List<EfcodeCpNoticeMessageVo>> messageList(@RequestParam String noticeId) {
EfcodeCpNoticeMessageBo bo = new EfcodeCpNoticeMessageBo();
bo.setNoticeId(noticeId);
bo.setIsDelete(0L);
List<EfcodeCpNoticeMessageVo> 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<Void> addMessage(@RequestBody EfcodeCpNoticeMessageBo bo) {
efcodeCpNoticeMessageService.insertByBo(bo);
return R.ok();
}
}

5
zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/IEfcodeCpNoticeService.java

@ -70,7 +70,10 @@ public interface IEfcodeCpNoticeService {
* 查询当前用户的预告列表分页
*/
TableDataInfo<EfcodeCpNoticeVo> queryMyPageList(EfcodeCpNoticeBo bo, PageQuery pageQuery);
/**
* 查询当前企业的预告列表分页
*/
TableDataInfo<EfcodeCpNoticeVo> entQueryMyPageList(EfcodeCpNoticeBo bo, PageQuery pageQuery);
/**
* 保存预告新增草稿或发布并同步写入 notice_users
*/

10
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<String> noticeIds = notices.stream().map(EfcodeCpNotice::getId).toList();
/*List<String> noticeIds = notices.stream().map(EfcodeCpNotice::getId).toList();*/
// 2. 统计这些预告下企业未读的消息数量(同一预告的多条未读消息只计1条)
LambdaQueryWrapper<EfcodeCpNoticeMessage> msgWrapper = Wrappers.lambdaQuery();
/* LambdaQueryWrapper<EfcodeCpNoticeMessage> msgWrapper = Wrappers.lambdaQuery();
msgWrapper.in(EfcodeCpNoticeMessage::getNoticeId, noticeIds);
msgWrapper.eq(EfcodeCpNoticeMessage::getEnterpriseViewed, 0);
msgWrapper.eq(EfcodeCpNoticeMessage::getIsDelete, 0);
msgWrapper.select(EfcodeCpNoticeMessage::getNoticeId);
List<EfcodeCpNoticeMessage> messages = baseMapper.selectList(msgWrapper);
return (long) messages.stream().map(EfcodeCpNoticeMessage::getNoticeId).distinct().count();
List<EfcodeCpNoticeMessage> messages = baseMapper.selectList(msgWrapper);*/
return (long) notices.stream().map(EfcodeCpNotice::getId).distinct().count();
}
/**

18
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<EfcodeCpNoticeVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
* 查询当前用户的预告列表分页
* 过滤条件create_by = 当前用户IDis_delete = 0
*/
@Override
public TableDataInfo<EfcodeCpNoticeVo> entQueryMyPageList(EfcodeCpNoticeBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<EfcodeCpNotice> lqw = buildQueryWrapper(bo);
lqw.eq(EfcodeCpNotice::getEnterpriseNumber,bo.getEnterpriseNumber());
lqw.eq(EfcodeCpNotice::getStatus, 1L);
// 过滤已删除
lqw.eq(EfcodeCpNotice::getIsDelete, 0);
// 按创建时间倒序
lqw.orderByDesc(EfcodeCpNotice::getCreateTime);
Page<EfcodeCpNoticeVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
* 保存预告新增草稿或发布并同步写入 notice_users

Loading…
Cancel
Save