From af85e49d14f86b8232859b24a9d0a61f9ceeb024 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A2=81=E7=90=A6=E6=B6=9B?= Date: Fri, 12 Jul 2024 17:04:01 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B8=82=E5=9C=BA=E6=B3=95=E8=A7=84=E6=B8=85?= =?UTF-8?q?=E5=8D=95=E6=B7=BB=E5=8A=A0=E5=AF=BC=E5=87=BA=E6=8C=89=E9=92=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/MarketStandardController.java | 5 -- .../MarketStandardDetailController.java | 19 +++- .../LawsMarketStandardDetailMapper.java | 26 ++++++ .../xml/LawsMarketStandardDetailMapper.xml | 14 +++ .../ILawsMarketStandardDetailService.java | 9 ++ .../LawsMarketStandardDetailServiceImpl.java | 87 ++++++++++++++++--- .../impl/LawsMarketStandardServiceImpl.java | 9 ++ 7 files changed, 152 insertions(+), 17 deletions(-) diff --git a/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/controller/MarketStandardController.java b/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/controller/MarketStandardController.java index 5be5fa8b..57338932 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/controller/MarketStandardController.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/controller/MarketStandardController.java @@ -3,30 +3,25 @@ package com.jero.modules.laws.marketStandard.controller; import com.baomidou.mybatisplus.core.metadata.IPage; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import com.jero.common.api.vo.Result; -import com.jero.common.api.vo.ResultCommon; import com.jero.common.aspect.annotation.AutoLog; import com.jero.common.aspect.annotation.Translation; -import com.jero.common.util.MessageUtils; import com.jero.modules.laws.marketStandard.entity.LawsMarketStandard; import com.jero.modules.laws.marketStandard.entity.LawsMarketStandardDetail; import com.jero.modules.laws.marketStandard.entity.MarketStandardDetailVO; import com.jero.modules.laws.marketStandard.service.ILawsMarketStandardService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiParam; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.apache.poi.ss.formula.functions.T; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.web.bind.annotation.*; -import org.springframework.web.multipart.MultipartFile; import org.springframework.web.servlet.ModelAndView; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.util.Arrays; -import java.util.List; import java.util.Map; diff --git a/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/controller/MarketStandardDetailController.java b/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/controller/MarketStandardDetailController.java index e2f56a09..ebe335c4 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/controller/MarketStandardDetailController.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/controller/MarketStandardDetailController.java @@ -14,6 +14,7 @@ import org.apache.commons.lang3.StringUtils; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.servlet.ModelAndView; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; @@ -22,7 +23,7 @@ import java.util.List; import java.util.Map; -@Api(tags = "外部标准库-市场法规清单详情") +@Api(tags = "市场法规清单-市场法规清单详情") @RestController @RequestMapping("/laws/marketStandardDetail") @Slf4j @@ -216,4 +217,20 @@ public class MarketStandardDetailController { lawsMarketStandardDetailService.downloadTemplate(response); } + + /** + * 导出 + * + * @param marketStandardDetail + * @return + */ + @AutoLog(value = "外部标准库-市场法规清单-导出") + @ApiOperation(value = "外部标准库-市场法规清单-导出", notes = "外部标准库-市场法规清单-导出") + @GetMapping(value = "/export") + @ApiOperationSupport(order = 2) + @RequiresPermissions("marketStandard:detail") + public ModelAndView export(LawsMarketStandardDetail marketStandardDetail, HttpServletRequest request) { + return lawsMarketStandardDetailService.export(marketStandardDetail,request); + } + } diff --git a/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/mapper/LawsMarketStandardDetailMapper.java b/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/mapper/LawsMarketStandardDetailMapper.java index 7fb3e71a..2dacf92b 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/mapper/LawsMarketStandardDetailMapper.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/mapper/LawsMarketStandardDetailMapper.java @@ -1,7 +1,13 @@ package com.jero.modules.laws.marketStandard.mapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Constants; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.jero.modules.laws.marketStandard.entity.LawsMarketStandard; import com.jero.modules.laws.marketStandard.entity.LawsMarketStandardDetail; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; import java.util.List; @@ -19,6 +25,26 @@ public interface LawsMarketStandardDetailMapper extends BaseMapper getStandardData(List listNum); + + /** + * 分页 + * @param page + * @param queryWrapper + * @param listIds + * @return + */ + IPage pageList(Page page, + @Param(Constants.WRAPPER) QueryWrapper queryWrapper, + @Param("listIds") List listIds); + + /** + * 列表 + * @param queryWrapper + * @param listIds + * @return + */ + List pageList(@Param(Constants.WRAPPER) QueryWrapper queryWrapper, + @Param("listIds") List listIds); } diff --git a/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/mapper/xml/LawsMarketStandardDetailMapper.xml b/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/mapper/xml/LawsMarketStandardDetailMapper.xml index d52eb449..e6c73249 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/mapper/xml/LawsMarketStandardDetailMapper.xml +++ b/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/mapper/xml/LawsMarketStandardDetailMapper.xml @@ -17,4 +17,18 @@ #{item} + diff --git a/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/service/ILawsMarketStandardDetailService.java b/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/service/ILawsMarketStandardDetailService.java index 81b58a28..1b605824 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/service/ILawsMarketStandardDetailService.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/service/ILawsMarketStandardDetailService.java @@ -5,6 +5,7 @@ import com.jero.modules.laws.marketStandard.entity.LawsMarketStandardDetail; import com.baomidou.mybatisplus.extension.service.IService; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -102,4 +103,12 @@ public interface ILawsMarketStandardDetailService extends IService queryById(String id); + + /** + * 导出详情 + * @param marketStandardDetail + * @param request + * @return + */ + ModelAndView export(LawsMarketStandardDetail marketStandardDetail, HttpServletRequest request); } diff --git a/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/service/impl/LawsMarketStandardDetailServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/service/impl/LawsMarketStandardDetailServiceImpl.java index 085bd18d..98205d63 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/service/impl/LawsMarketStandardDetailServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/service/impl/LawsMarketStandardDetailServiceImpl.java @@ -3,10 +3,12 @@ package com.jero.modules.laws.marketStandard.service.impl; import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.jero.common.api.vo.Result; import com.jero.common.exception.JeroBootException; +import com.jero.common.system.base.controller.JeroController; import com.jero.common.system.query.QueryGenerator; import com.jero.common.system.vo.LoginUser; import com.jero.common.util.ImportExcelUtil; @@ -19,11 +21,15 @@ import com.jero.modules.laws.marketStandard.mapper.LawsMarketStandardDetailMappe import com.jero.modules.laws.marketStandard.service.ILawsMarketStandardDetailService; import com.jero.modules.laws.marketStandard.service.ILawsMarketStandardService; import com.jero.modules.laws.utils.ValidUtil; +import com.jero.modules.quartz.entity.QuartzJob; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.apache.shiro.SecurityUtils; import org.jeecgframework.poi.excel.ExcelImportUtil; +import org.jeecgframework.poi.excel.def.NormalExcelConstants; +import org.jeecgframework.poi.excel.entity.ExportParams; import org.jeecgframework.poi.excel.entity.ImportParams; +import org.jeecgframework.poi.excel.view.JeecgEntityExcelView; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.springframework.beans.factory.annotation.Value; @@ -31,6 +37,7 @@ import org.springframework.core.io.ClassPathResource; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.servlet.ModelAndView; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; @@ -81,22 +88,28 @@ public class LawsMarketStandardDetailServiceImpl extends ServiceImpl(pageNo, pageSize)); } - LawsMarketStandard lawsMarketStandardOld = marketStandardService.getById(manifestId); - if(Objects.isNull(lawsMarketStandardOld)){ + List listLawsMarketStandardOld = marketStandardService + .listByIds(Arrays.asList(manifestId.split(","))); + if(CollectionUtils.isEmpty(listLawsMarketStandardOld)){ return Result.error(NOT_DATA); } - // 已发布的清单所有人都可以查看,未发布的数据只能作者和管理管查看、编辑、删除 - LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); - if(!Arrays.asList(sysUser.getRoleIds().split(",")).contains(lawsAdmin) + for (LawsMarketStandard lawsMarketStandard : listLawsMarketStandardOld) { + // 已发布的清单所有人都可以查看,未发布的数据只能作者和管理管查看、编辑、删除 + LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + if(!Arrays.asList(sysUser.getRoleIds().split(",")).contains(lawsAdmin) && !Arrays.asList(sysUser.getRoleIds().split(",")).contains(superAdmin) - && !Objects.equals(lawsMarketStandardOld.getAuthor(),sysUser.getId()) - && !Objects.equals(lawsMarketStandardOld.getManifestStatus(), MarketStandardConstants.MANIFEST_STATUS_PUBLISH)){ - return Result.error("没有权限"); + && !Objects.equals(lawsMarketStandard.getAuthor(),sysUser.getId()) + && !Objects.equals(lawsMarketStandard.getManifestStatus(), + MarketStandardConstants.MANIFEST_STATUS_PUBLISH)){ + return Result.error("没有权限"); + } } + String manifestVersion = marketStandardDetail.getManifestVersion(); if(!StringUtils.isBlank(marketStandardDetail.getManifestVersion())){ LambdaQueryWrapper queryLawsMarketStandard = new LambdaQueryWrapper<>(); - queryLawsMarketStandard.eq(LawsMarketStandard::getVersionFlag,lawsMarketStandardOld.getVersionFlag()); + queryLawsMarketStandard.eq(LawsMarketStandard::getVersionFlag, + listLawsMarketStandardOld.get(0).getVersionFlag()); queryLawsMarketStandard.eq(LawsMarketStandard::getManifestVersion,manifestVersion); LawsMarketStandard lawsMarketStandard = marketStandardService.getOne(queryLawsMarketStandard,false); if(Objects.isNull(lawsMarketStandard)){ @@ -109,9 +122,9 @@ public class LawsMarketStandardDetailServiceImpl extends ServiceImpl queryWrapper = QueryGenerator.initQueryWrapper(marketStandardDetail, request.getParameterMap()); queryWrapper.in("manifest_id",listIds); - queryWrapper.orderByDesc("create_time"); Page page = new Page<>(pageNo, pageSize); - return Result.OK(page(page, queryWrapper)); + IPage res = lawsMarketStandardDetailMapper.pageList(page, queryWrapper, listIds); + return Result.OK(res); } @Override @@ -504,6 +517,58 @@ public class LawsMarketStandardDetailServiceImpl extends ServiceImpl listLawsMarketStandardOld = marketStandardService + .listByIds(Arrays.asList(manifestId.split(","))); + if(CollectionUtils.isEmpty(listLawsMarketStandardOld)){ + throw new JeroBootException(NOT_DATA); + } + for (LawsMarketStandard lawsMarketStandard : listLawsMarketStandardOld) { + // 已发布的清单所有人都可以查看,未发布的数据只能作者和管理管查看、编辑、删除 + LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + if(!Arrays.asList(sysUser.getRoleIds().split(",")).contains(lawsAdmin) + && !Arrays.asList(sysUser.getRoleIds().split(",")).contains(superAdmin) + && !Objects.equals(lawsMarketStandard.getAuthor(),sysUser.getId()) + && !Objects.equals(lawsMarketStandard.getManifestStatus(), + MarketStandardConstants.MANIFEST_STATUS_PUBLISH)){ + throw new JeroBootException("没有权限"); + } + } + + String manifestVersion = marketStandardDetail.getManifestVersion(); + if(!StringUtils.isBlank(marketStandardDetail.getManifestVersion())){ + LambdaQueryWrapper queryLawsMarketStandard = new LambdaQueryWrapper<>(); + queryLawsMarketStandard.eq(LawsMarketStandard::getVersionFlag, + listLawsMarketStandardOld.get(0).getVersionFlag()); + queryLawsMarketStandard.eq(LawsMarketStandard::getManifestVersion,manifestVersion); + LawsMarketStandard lawsMarketStandard = marketStandardService.getOne(queryLawsMarketStandard,false); + if(Objects.isNull(lawsMarketStandard)){ + throw new JeroBootException(manifestVersion + "版本不存在"); + } + manifestId = lawsMarketStandard.getId(); + } + List listIds = Arrays.asList(manifestId.split(",")); + marketStandardDetail.setManifestId(null); + QueryWrapper queryWrapper = + QueryGenerator.initQueryWrapper(marketStandardDetail, request.getParameterMap()); + queryWrapper.in("manifest_id",listIds); + List res = lawsMarketStandardDetailMapper.pageList(queryWrapper, listIds); + + // Step.2 AutoPoi 导出Excel + ModelAndView mv = new ModelAndView(new JeecgEntityExcelView()); + // 导出文件名称 + mv.addObject(JeroController.FILE_NAME, "市场法规清单"); + mv.addObject(JeroController.CLASS, QuartzJob.class); + mv.addObject(JeroController.PARAMS, new ExportParams("市场法规清单", "", "")); + mv.addObject(NormalExcelConstants.DATA_LIST, res); + return mv; + } } diff --git a/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/service/impl/LawsMarketStandardServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/service/impl/LawsMarketStandardServiceImpl.java index d19590b4..5ae40b38 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/service/impl/LawsMarketStandardServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/service/impl/LawsMarketStandardServiceImpl.java @@ -89,6 +89,15 @@ public class LawsMarketStandardServiceImpl extends ServiceImpl{ for (int i1 = 0; i1 < str.length; i1++) {