法规清单详情修改

This commit is contained in:
梁琦涛
2024-07-03 11:59:55 +08:00
parent 4f076a9713
commit f65356dec8
5 changed files with 215 additions and 12 deletions
@@ -0,0 +1,139 @@
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.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 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;
@Api(tags = "外部标准库-市场法规清单详情")
@RestController
@RequestMapping("/laws/marketStandardDetail")
@Slf4j
public class MarketStandardDetailController {
@Resource
private ILawsMarketStandardService marketStandardService;
/**
* 查看
*
* @param marketStandardDetail
* @return
*/
@AutoLog(value = "外部标准库-市场法规清单-查看")
@ApiOperation(value = "外部标准库-市场法规清单-查看", notes = "外部标准库-市场法规清单-查看")
@GetMapping(value = "/detail")
@ApiOperationSupport(order = 2)
@RequiresPermissions("marketStandard:detail")
public Result<MarketStandardDetailVO> detail(LawsMarketStandardDetail marketStandardDetail) {
MarketStandardDetailVO result = marketStandardService.detail(marketStandardDetail);
return Result.OK(result);
}
/**
* 导出excel
*/
@AutoLog(value = "外部标准库-市场法规清单-导出")
@ApiOperation(value = "外部标准库-市场法规清单-导出", notes = "外部标准库-市场法规清单-导出")
@ApiOperationSupport(order = 3)
@RequiresPermissions("marketStandard:export")
@GetMapping(value = "/exportXls", produces = "application/zip")
public void exportXls(HttpServletResponse response, LawsMarketStandard LawsMarketStandard, HttpServletRequest req) {
marketStandardService.export(response, LawsMarketStandard, "市场法规清单", "市场法规清单", req);
}
/**
* 批量删除
*
* @param map
* @return
*/
@AutoLog(value = "外部标准库-市场法规清单-批量删除")
@ApiOperation(value = "外部标准库-市场法规清单-批量删除", notes = "外部标准库-市场法规清单-批量删除")
@ApiOperationSupport(order = 4)
@PostMapping(value = "/deleteBatch")
@RequiresPermissions("marketStandard:deleteBatch")
public Result<T> deleteBatch(@RequestBody Map<String, String> map) {
if (!map.containsKey("ids") || StringUtils.isEmpty(map.get("ids"))) {
return Result.error("请选择数据!");
}
this.marketStandardService.deleteByIds(Arrays.asList(map.get("ids").split(",")));
return Result.OK("批量删除成功!");
}
/**
* 新增
*
* @param marketStandardDetailVO
* @return
*/
@AutoLog(value = "外部标准库-市场法规清单-新增")
@ApiOperation(value = "外部标准库-市场法规清单-新增", notes = "外部标准库-市场法规清单-新增")
@ApiOperationSupport(order = 5)
@PostMapping(value = "/add")
@RequiresPermissions("marketStandard:add")
public Result<T> add(@RequestBody MarketStandardDetailVO marketStandardDetailVO) {
this.marketStandardService.add(marketStandardDetailVO);
return Result.OK("新增成功!");
}
/**
* 编辑
*
* @param marketStandardDetailVO
* @return
*/
@AutoLog(value = "外部标准库-市场法规清单-编辑")
@ApiOperation(value = "外部标准库-市场法规清单-编辑", notes = "外部标准库-市场法规清单-编辑")
@ApiOperationSupport(order = 6)
@PostMapping(value = "/edit")
@RequiresPermissions("marketStandard:edit")
public Result<T> edit(@RequestBody MarketStandardDetailVO marketStandardDetailVO) {
this.marketStandardService.edit(marketStandardDetailVO);
return Result.OK("修改成功!");
}
/**
* 导入
*
* @param file
* @return
*/
@AutoLog(value = "外部标准库-市场法规清单-导入")
@ApiOperation(value = "外部标准库-市场法规清单-导入", notes = "外部标准库-市场法规清单-导入")
@ApiOperationSupport(order = 7)
@PostMapping(value = "/importExcel")
@RequiresPermissions("marketStandard:importExcel")
public Result<T> importExcel(@RequestParam("file") @ApiParam("文件") MultipartFile file) {
List<String> errorMessages = marketStandardService.importExcel(file);
if (!errorMessages.isEmpty()) {
return Result.error(MessageUtils.getMessage(ResultCommon.IMPORT_ERROR));
}
return Result.OK();
}
}
@@ -95,7 +95,6 @@ public class LawsMarketStandard implements Serializable {
/**
* 清单版本
*/
@Dict(dicCode = "manifest_version")
@ApiModelProperty(value = "清单版本")
private String manifestVersion;
@@ -154,4 +153,4 @@ public class LawsMarketStandard implements Serializable {
@TableField(exist = false)
private static final long serialVersionUID = 1L;
}
}
@@ -12,7 +12,7 @@ import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
/**
*
*
* @TableName laws_market_standard_detail
*/
@TableName(value ="laws_market_standard_detail")
@@ -207,4 +207,11 @@ public class LawsMarketStandardDetail implements Serializable {
@TableField(exist = false)
private static final long serialVersionUID = 1L;
}
/**
* 清单版本
*/
@ApiModelProperty(value = "清单版本")
@TableField(exist = false)
private String manifestVersion;
}
@@ -5,14 +5,21 @@ 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.exception.JeroBootException;
import com.jero.common.system.vo.LoginUser;
import com.jero.modules.laws.marketStandard.constans.MarketStandardConstants;
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.mapper.LawsMarketStandardMapper;
import com.jero.modules.laws.marketStandard.service.ILawsMarketStandardDetailService;
import com.jero.modules.laws.marketStandard.service.ILawsMarketStandardService;
import com.jero.modules.laws.marketStandard.mapper.LawsMarketStandardMapper;
import com.jero.modules.system.entity.SysRole;
import com.jero.modules.system.service.ISysRoleService;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
@@ -22,6 +29,8 @@ import javax.servlet.http.HttpServletResponse;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
/**
* @author ThinkBook
@@ -34,9 +43,21 @@ public class LawsMarketStandardServiceImpl extends ServiceImpl<LawsMarketStandar
@Resource
private LawsMarketStandardMapper marketStandardMapper;
@Resource
private ILawsMarketStandardDetailService lawsMarketStandardDetailService;
@Resource
private ISysRoleService sysRoleService;
/**
* 法规管理员
*/
@Value("${sys_role.laws_admin}")
private String lawsAdmin;
/**
* 超级管理员
*/
@Value("${sys_role.super_admin}")
private String superAdmin;
@Override
public IPage<LawsMarketStandard> queryPage(LawsMarketStandard marketStandard, Integer pageNo, Integer pageSize) {
@@ -118,6 +139,21 @@ public class LawsMarketStandardServiceImpl extends ServiceImpl<LawsMarketStandar
String ids = marketStandardDetail.getManifestId();
List<String> idList = Arrays.asList(ids.split(","));
LawsMarketStandard manifest = getById(idList.get(0));
// 清单版本不为空,查询指定版本
if(!StringUtils.isBlank(marketStandardDetail.getManifestVersion())){
LambdaQueryWrapper<LawsMarketStandard> queryLawsMarketStandard = new LambdaQueryWrapper<>();
queryLawsMarketStandard.eq(LawsMarketStandard::getManifestVersion,marketStandardDetail.getManifestVersion());
queryLawsMarketStandard.eq(LawsMarketStandard::getManifestNo,manifest.getManifestNo());
manifest = getOne(queryLawsMarketStandard,false);
if(Objects.isNull(manifest)){
throw new JeroBootException("市场法规清单不存在");
}
idList = new ArrayList<>();
idList.add(manifest.getId());
}
result.setManifest(manifest);
// 列表数据
LambdaQueryWrapper<LawsMarketStandardDetail> wrapper = new LambdaQueryWrapper<>();
wrapper.like(StringUtils.isNotBlank(marketStandardDetail.getStandardNumber()),
@@ -132,14 +168,29 @@ public class LawsMarketStandardServiceImpl extends ServiceImpl<LawsMarketStandar
if (idList.size() > 1) {
return result;
}
LawsMarketStandard manifest = getById(idList.get(0));
result.setManifest(manifest);
// TODO 历史版本信息
result.setHistoryVersions(new ArrayList<>());
// 历史版本信息
// 只允许法规管理员和超级管理员查看历史版本数据
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
if(StringUtils.isBlank(sysUser.getRoleIds())){
return result;
}
if(!Arrays.asList(sysUser.getRoleIds().split(",")).contains(lawsAdmin)
&& !Arrays.asList(sysUser.getRoleIds().split(",")).contains(superAdmin)){
return result;
}
LambdaQueryWrapper<LawsMarketStandard> queryManifestNo = new LambdaQueryWrapper<>();
queryManifestNo.select(LawsMarketStandard::getManifestVersion);
queryManifestNo.isNotNull(LawsMarketStandard::getManifestNo);
queryManifestNo.eq(LawsMarketStandard::getManifestNo,manifest.getManifestNo());
queryManifestNo.orderByDesc(LawsMarketStandard::getManifestVersion);
List<LawsMarketStandard> listManifestNo = list(queryManifestNo);
if(!CollectionUtils.isEmpty(listManifestNo)){
result.setHistoryVersions(listManifestNo.stream().map(LawsMarketStandard::getManifestVersion).collect(Collectors.toList()));
}
return result;
}
}