From ea962b905de4fa65d62349ed95c5fec527b4f8cd Mon Sep 17 00:00:00 2001 From: niujiyi <18272501226@163.com> Date: Thu, 28 May 2026 20:24:06 +0800 Subject: [PATCH] =?UTF-8?q?=E6=89=A7=E6=B3=95=E7=AB=AF-=E8=AE=A1=E5=88=92?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...nforcementInspectionProgramController.java | 2 + .../EnforcementCarouselBannerController.java | 21 ++-- .../bo/EnforcementInspectionProgramBo.java | 28 ++++- .../domain/bo/EnforcementRegistrationBo.java | 2 +- .../vo/EnforcementCarouselBannerVo.java | 20 +++- .../vo/EnforcementEducationServicesVo.java | 8 ++ .../EnforcementCarouselBannerServiceImpl.java | 111 +++++++++++++++++- ...forcementEducationServicesServiceImpl.java | 39 +++++- ...forcementInspectionProgramServiceImpl.java | 4 +- 9 files changed, 214 insertions(+), 21 deletions(-) diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/controller/app/enforcement/AppEnforcementInspectionProgramController.java b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/controller/app/enforcement/AppEnforcementInspectionProgramController.java index e1f1074b..5521e7d3 100644 --- a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/controller/app/enforcement/AppEnforcementInspectionProgramController.java +++ b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/controller/app/enforcement/AppEnforcementInspectionProgramController.java @@ -1,6 +1,7 @@ package com.zdxt.enforcementcode.controller.app.enforcement; import cn.dev33.satoken.annotation.SaCheckPermission; +import cn.dev33.satoken.annotation.SaIgnore; import com.zdxt.enforcementcode.domain.bo.EnforcementInspectionProgramBo; import com.zdxt.enforcementcode.domain.vo.EnforcementInspectionProgramVo; import com.zdxt.enforcementcode.service.IEnforcementInspectionProgramService; @@ -60,6 +61,7 @@ public class AppEnforcementInspectionProgramController extends BaseController { /** * 执法端-查询执法检查计划列表(支持复杂查询条件) */ + @SaIgnore @GetMapping("/selectInspectionProgramList") public TableDataInfo selectInspectionProgramList(EnforcementInspectionProgramBo bo, PageQuery pageQuery) { return enforcementInspectionProgramService.selectEnforcementInspectionProgramPage(bo, pageQuery); diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/controller/web/supervision/EnforcementCarouselBannerController.java b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/controller/web/supervision/EnforcementCarouselBannerController.java index 17471c9b..d22e03b0 100644 --- a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/controller/web/supervision/EnforcementCarouselBannerController.java +++ b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/controller/web/supervision/EnforcementCarouselBannerController.java @@ -41,6 +41,7 @@ public class EnforcementCarouselBannerController extends BaseController { * 查询轮播公告信息列表 */ @SaCheckPermission("enforcementcode:carouselBanner:list") + @SaIgnore @GetMapping("/list") public TableDataInfo list(EnforcementCarouselBannerBo bo, PageQuery pageQuery) { return enforcementCarouselBannerService.queryPageList(bo, pageQuery); @@ -63,16 +64,16 @@ public class EnforcementCarouselBannerController extends BaseController { * @param id 主键 */ @SaCheckPermission("enforcementcode:carouselBanner:query") - @GetMapping("/{id}") - public R getInfo(@NotNull(message = "主键不能为空") - @PathVariable String id) { + @SaIgnore + @GetMapping("/details") + public R getInfo(String id) { return R.ok(enforcementCarouselBannerService.queryById(id)); } /** * 新增轮播公告信息 */ - //@SaCheckPermission("enforcementcode:carouselBanner:add") + @SaCheckPermission("enforcementcode:carouselBanner:add") @Log(title = "轮播公告信息", businessType = BusinessType.INSERT) @SaIgnore @PostMapping("/add") @@ -85,9 +86,9 @@ public class EnforcementCarouselBannerController extends BaseController { */ @SaCheckPermission("enforcementcode:carouselBanner:edit") @Log(title = "轮播公告信息", businessType = BusinessType.UPDATE) - @RepeatSubmit() - @PutMapping() - public R edit(@Validated(EditGroup.class) @RequestBody EnforcementCarouselBannerBo bo) { + @SaIgnore + @PostMapping("/edit") + public R edit(@RequestBody EnforcementCarouselBannerBo bo) { return toAjax(enforcementCarouselBannerService.updateByBo(bo)); } @@ -97,10 +98,10 @@ public class EnforcementCarouselBannerController extends BaseController { * @param ids 主键串 */ @SaCheckPermission("enforcementcode:carouselBanner:remove") + @SaIgnore @Log(title = "轮播公告信息", businessType = BusinessType.DELETE) - @DeleteMapping("/{ids}") - public R remove(@NotEmpty(message = "主键不能为空") - @PathVariable String[] ids) { + @GetMapping("/remove") + public R remove(String[] ids) { return toAjax(enforcementCarouselBannerService.deleteWithValidByIds(List.of(ids), true)); } } diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/bo/EnforcementInspectionProgramBo.java b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/bo/EnforcementInspectionProgramBo.java index 506bd25e..28dbd773 100644 --- a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/bo/EnforcementInspectionProgramBo.java +++ b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/bo/EnforcementInspectionProgramBo.java @@ -1,6 +1,8 @@ package com.zdxt.enforcementcode.domain.bo; import com.zdxt.enforcementcode.domain.EnforcementInspectionProgram; +import com.zdxt.enforcementcode.domain.ZdxtFile; +import com.zdxt.enforcementcode.domain.vo.ZdxtFileVo; import org.dromara.common.mybatis.core.domain.BaseEntity; import org.dromara.common.core.validate.AddGroup; import org.dromara.common.core.validate.EditGroup; @@ -105,8 +107,32 @@ public class EnforcementInspectionProgramBo extends BaseEntity { */ private Long quarter; - private List fileList; + private List fileList; + /** + * 搜索文本 + */ + private String searchText; + + /** + * 搜索类型 plan 或 notice + */ + private String searchType; + + /** + * 日期类型 + */ + private Integer dateType; + + /** + * 日期搜索 + */ + private String dateSearch; + + /** + * 数据范围ID + */ + private String dataScopeId; /** * 文件对象 diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/bo/EnforcementRegistrationBo.java b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/bo/EnforcementRegistrationBo.java index b3de5aab..d3af80ba 100644 --- a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/bo/EnforcementRegistrationBo.java +++ b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/bo/EnforcementRegistrationBo.java @@ -193,7 +193,7 @@ public class EnforcementRegistrationBo extends BaseEntity { private String checkCss; /** - * + *原因 */ private String enforceReason; diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/vo/EnforcementCarouselBannerVo.java b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/vo/EnforcementCarouselBannerVo.java index 8de47495..3efcf579 100644 --- a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/vo/EnforcementCarouselBannerVo.java +++ b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/vo/EnforcementCarouselBannerVo.java @@ -12,7 +12,7 @@ import lombok.Data; import java.io.Serial; import java.io.Serializable; import java.util.Date; - +import java.util.List; /** @@ -47,6 +47,12 @@ public class EnforcementCarouselBannerVo implements Serializable { @ExcelProperty(value = "发布平台 0-全部 1-企业端 2-执法端 3-监督端") private Long targetPlatform; + /** + * 发布平台标签(字典翻译) + */ + @ExcelProperty(value = "发布平台名称") + private String targetPlatformLabel; + /** * 橱窗/轮播位,如“橱窗1” */ @@ -96,6 +102,12 @@ public class EnforcementCarouselBannerVo implements Serializable { @ExcelProperty(value = "状态 1-待发布 2-已发布 3-已下架") private Long status; + /** + * 状态名称(字典翻译) + */ + @ExcelProperty(value = "状态名称") + private String statusLabel; + /** * 类型 0-富文本 1-外部链接 */ @@ -138,5 +150,9 @@ public class EnforcementCarouselBannerVo implements Serializable { @ExcelProperty(value = "备注") private String remark; - + /** + * 附件信息 + */ + @ExcelProperty(value = "附件信息") + private List fileList; } diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/vo/EnforcementEducationServicesVo.java b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/vo/EnforcementEducationServicesVo.java index 9ae7c411..10530b34 100644 --- a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/vo/EnforcementEducationServicesVo.java +++ b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/vo/EnforcementEducationServicesVo.java @@ -96,6 +96,14 @@ public class EnforcementEducationServicesVo implements Serializable { @ExcelProperty(value = "状态 1-待发布 2-已发布 3-已下架") private Integer status; + /** + * 状态名称(字典翻译) + */ + @ExcelProperty(value = "状态名称") + private String statusLabel; + + + /** * 浏览次数 */ diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/EnforcementCarouselBannerServiceImpl.java b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/EnforcementCarouselBannerServiceImpl.java index ccb32dba..5e5e0829 100644 --- a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/EnforcementCarouselBannerServiceImpl.java +++ b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/EnforcementCarouselBannerServiceImpl.java @@ -2,7 +2,10 @@ package com.zdxt.enforcementcode.service.impl; import com.zdxt.enforcementcode.domain.bean.EnforcementCarouselBanner; import com.zdxt.enforcementcode.domain.bo.ZdxtFileBo; +import com.zdxt.enforcementcode.domain.vo.EnforcementEducationServicesVo; +import com.zdxt.enforcementcode.domain.vo.ZdxtFileVo; import com.zdxt.enforcementcode.service.IZdxtFileService; +import org.dromara.common.core.service.DictService; import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.StringUtils; import org.dromara.common.mybatis.core.page.TableDataInfo; @@ -35,6 +38,7 @@ public class EnforcementCarouselBannerServiceImpl implements IEnforcementCarouse private final EnforcementCarouselBannerMapper baseMapper; private final IZdxtFileService zdxtFileService; + private final DictService dictService; /** * 查询轮播公告信息 @@ -44,9 +48,59 @@ public class EnforcementCarouselBannerServiceImpl implements IEnforcementCarouse */ @Override public EnforcementCarouselBannerVo queryById(String id){ - return baseMapper.selectVoById(id); + EnforcementCarouselBannerVo vo= baseMapper.selectVoById(id); + if (vo != null) { + // 回显附件信息 + ZdxtFileBo fileBo = new ZdxtFileBo(); + fileBo.setBusinessId(id); + List fileList = zdxtFileService.queryList(fileBo); + vo.setFileList(fileList); + + // 设置字典标签 + setDictLabels(vo); + } + + return vo; + } + + /** + * 为单条记录设置字典标签 + * + * @param vo 记录对象 + */ + private void setDictLabels(EnforcementCarouselBannerVo vo) { + if (vo == null) { + return; + } + + // 发布平台标签 + if (vo.getTargetPlatform() != null) { + String targetPlatformLabel = dictService.getDictLabel("web_publishing_platform", vo.getTargetPlatform().toString()); + vo.setTargetPlatformLabel(targetPlatformLabel); + } + + //状态标签 + if(vo.getStatus()!=null){ + String statusLabel = dictService.getDictLabel("web_status", vo.getStatus().toString()); + vo.setStatusLabel(statusLabel); + } + + } + + /** + * 为列表设置字典标签 + * + * @param records 记录列表 + */ + private void setDictLabels(List records) { + if (records == null || records.isEmpty()) { + return; + } + + records.forEach(this::setDictLabels); + } /** * 分页查询轮播公告信息列表 * @@ -58,6 +112,12 @@ public class EnforcementCarouselBannerServiceImpl implements IEnforcementCarouse public TableDataInfo queryPageList(EnforcementCarouselBannerBo bo, PageQuery pageQuery) { LambdaQueryWrapper lqw = buildQueryWrapper(bo); Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + + // 为每条记录设置字典标签和已读状态 + if (result.getRecords() != null && !result.getRecords().isEmpty()) { + setDictLabels(result.getRecords()); + } + return TableDataInfo.build(result); } @@ -156,14 +216,59 @@ public class EnforcementCarouselBannerServiceImpl implements IEnforcementCarouse public Boolean updateByBo(EnforcementCarouselBannerBo bo) { EnforcementCarouselBanner update = MapstructUtils.convert(bo, EnforcementCarouselBanner.class); validEntityBeforeSave(update); - return baseMapper.updateById(update) > 0; + + boolean flag = baseMapper.updateById(update) > 0; + + if (flag && bo.getId() != null) { + // 判断附件是否需要修改,附件有值也需要更新 + if (bo.getFileList() != null) { + // 先删除旧附件 + deleteOldAttachments(bo.getId()); + // 再保存新附件 + if (!bo.getFileList().isEmpty()) { + saveAttachmentFiles(bo.getFileList(), bo.getId()); + } + } + } + + return flag; + } + + /** + * 删除旧附件 + * + * @param businessId 业务ID + */ + private void deleteOldAttachments(String businessId) { + ZdxtFileBo queryBo = new ZdxtFileBo(); + queryBo.setBusinessId(businessId); + List oldFiles = zdxtFileService.queryList(queryBo); + + if (oldFiles != null && !oldFiles.isEmpty()) { + List ids = oldFiles.stream() + .map(ZdxtFileVo::getGuid) + .toList(); + zdxtFileService.deleteWithValidByIds(ids, false); + log.info("成功删除旧附件: businessId={}, 数量={}", businessId, ids.size()); + } } /** * 保存前的数据校验 */ private void validEntityBeforeSave(EnforcementCarouselBanner entity){ - //TODO 做一些数据校验,如唯一约束 + if (entity.getCarouselPosition() == null) { + throw new IllegalArgumentException("轮播位置不能为空"); + } + if (entity.getTargetPlatform() == null) { + throw new IllegalArgumentException("目标平台不能为空"); + } + if (entity.getDisplayDays() == null) { + throw new IllegalArgumentException("显示天数不能为空"); + } + if (StringUtils.isBlank(entity.getLinkUrl())) { + throw new IllegalArgumentException("跳转链接不能为空"); + } } /** diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/EnforcementEducationServicesServiceImpl.java b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/EnforcementEducationServicesServiceImpl.java index 24512374..84f72337 100644 --- a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/EnforcementEducationServicesServiceImpl.java +++ b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/EnforcementEducationServicesServiceImpl.java @@ -155,6 +155,12 @@ public class EnforcementEducationServicesServiceImpl implements IEnforcementEduc String targetPlatformLabel = dictService.getDictLabel("web_publishing_platform", vo.getTargetPlatform().toString()); vo.setTargetPlatformLabel(targetPlatformLabel); } + + //状态标签 + if(vo.getStatus()!=null){ + String statusLabel = dictService.getDictLabel("web_status", vo.getStatus().toString()); + vo.setStatusLabel(statusLabel); + } } /** @@ -304,7 +310,24 @@ public class EnforcementEducationServicesServiceImpl implements IEnforcementEduc return flag; } - + /** + * 删除旧附件 + * + * @param businessId 业务ID + */ + private void deleteOldAttachments(String businessId) { + ZdxtFileBo queryBo = new ZdxtFileBo(); + queryBo.setBusinessId(businessId); + List oldFiles = zdxtFileService.queryList(queryBo); + + if (oldFiles != null && !oldFiles.isEmpty()) { + List ids = oldFiles.stream() + .map(ZdxtFileVo::getGuid) + .toList(); + zdxtFileService.deleteWithValidByIds(ids, false); + log.info("成功删除旧附件: businessId={}, 数量={}", businessId, ids.size()); + } + } /** * 批量保存附件信息 * @@ -337,7 +360,19 @@ public class EnforcementEducationServicesServiceImpl implements IEnforcementEduc public Boolean updateByBo(EnforcementEducationServicesBo bo) { EnforcementEducationServices update = MapstructUtils.convert(bo, EnforcementEducationServices.class); validEntityBeforeSave(update); - return baseMapper.updateById(update) > 0; + boolean flag = baseMapper.updateById(update)>0; + if (flag && bo.getId() != null) { + // 判断附件是否需要修改,附件有值也需要更新 + if (bo.getFileList() != null) { + // 先删除旧附件 + deleteOldAttachments(bo.getId()); + // 再保存新附件 + if (!bo.getFileList().isEmpty()) { + saveAttachmentFiles(bo.getFileList(), bo.getId()); + } + } + } + return flag; } /** diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/EnforcementInspectionProgramServiceImpl.java b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/EnforcementInspectionProgramServiceImpl.java index f6096bbc..bb98d114 100644 --- a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/EnforcementInspectionProgramServiceImpl.java +++ b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/EnforcementInspectionProgramServiceImpl.java @@ -285,11 +285,11 @@ public class EnforcementInspectionProgramServiceImpl implements IEnforcementInsp ZdxtFile zdxtFile = new ZdxtFile(); zdxtFile.setGuid(IdUtil.simpleUUID()); zdxtFile.setBusinessId(add.getId()); - zdxtFile.setUploadPath(file.getFileUrl()); + zdxtFile.setUploadPath(file.getUploadPath()); zdxtFile.setFileName(file.getFileName()); // 从文件路径中截取文件名称 - String fileUrl = file.getFileUrl(); + String fileUrl = file.getUploadPath(); String fileSaveName = null; if (fileUrl != null && !fileUrl.isEmpty()) { // 处理 URL 路径或文件路径