认证-参数清单-删除 变更 配置权限限制

This commit is contained in:
liyawei
2022-06-14 20:09:34 +08:00
parent c3795dfbfe
commit 8d3fc11dbf
9 changed files with 122 additions and 21 deletions
@@ -10,6 +10,7 @@ import com.jero.common.system.base.controller.JeroController;
import com.jero.modules.cert.collect.entity.ParamsManifestEO;
import com.jero.modules.cert.collect.service.IParamsManifestEOService;
import com.jero.modules.cert.collect.vo.ParamsManifestHistoryVO;
import com.jero.modules.cert.collect.vo.ParamsManifestVO;
import com.jero.modules.cert.template.entity.ParamsTemplateEO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@@ -40,6 +41,7 @@ public class ParamsManifestEOController extends JeroController<ParamsManifestEO,
@Autowired
private IParamsManifestEOService paramsManifestEOService;
/**
/**
* 分页列表查询
*
@@ -153,8 +155,8 @@ public class ParamsManifestEOController extends JeroController<ParamsManifestEO,
@ApiOperation(value="参数清单-通过id删除", notes="参数清单-通过id删除")
@GetMapping(value = "/delete")
// @RequiresPermissions("params:manifest:delete")
public Result<?> delete(@RequestParam(name="id",required=true) String id) {
boolean isSuccess = paramsManifestEOService.deleteById(id);
public Result<?> delete(@RequestParam(name="id",required=true) String id, @RequestParam(name="cut",required=true) String cut) {
boolean isSuccess = paramsManifestEOService.deleteById(id, cut);
if (isSuccess) {
return Result.OK("删除成功!");
} else {
@@ -165,15 +167,18 @@ public class ParamsManifestEOController extends JeroController<ParamsManifestEO,
/**
* 批量删除
*
* @param ids
* @param paramsManifestVO
* @return
*/
@AutoLog(value = "参数清单-批量删除")
@ApiOperation(value="参数清单-批量删除", notes="参数清单-批量删除")
@PostMapping(value = "/deleteBatch")
// @RequiresPermissions("params:manifest:deleteBatch")
public Result<?> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
boolean isSuccess = paramsManifestEOService.deleteByIds(Arrays.asList(ids.split(",")));
public Result<?> deleteBatch(@RequestBody ParamsManifestVO paramsManifestVO) {
if (StringUtils.isEmpty(paramsManifestVO.getIds()) || StringUtils.isEmpty(paramsManifestVO.getCut())) {
return Result.error("参数不能为空!");
}
boolean isSuccess = paramsManifestEOService.deleteByIds(Arrays.asList(paramsManifestVO.getIds().split(",")), paramsManifestVO.getCut());
if (isSuccess) {
return Result.OK("批量删除成功!");
} else {
@@ -191,8 +196,8 @@ public class ParamsManifestEOController extends JeroController<ParamsManifestEO,
@ApiOperation(value="参数清单-变更扩展", notes="参数清单-变更扩展")
@GetMapping(value = "/changeExtension")
// @RequiresPermissions("params:manifest:change")
public Result<?> changeExtension(@RequestParam(name="id",required=true) String id) {
boolean isSuccess = paramsManifestEOService.changeExtension(id);
public Result<?> changeExtension(@RequestParam(name="id",required=true) String id, @RequestParam(name="cut",required=true) String cut) {
boolean isSuccess = paramsManifestEOService.changeExtension(id, cut);
if(isSuccess) {
return Result.OK("变更扩展成功!");
} else {
@@ -98,4 +98,7 @@ public class ParamsManifestEO implements Serializable {
@TableField(exist = false)
private String paramsTemplateName;
@TableField(exist = false)
private Boolean configFlag; // true-可添加配置;false-不可添加配置
}
@@ -93,6 +93,8 @@ public interface IParamsCollectManifestEOService extends IService<ParamsCollectM
Map<String, Object> isCollectFinished(String paramsManifestId);
boolean getManifestConfigFlag(String paramsManifestId);
// 退回
boolean goBack(ParamsCollectManifestVO paramsCollectManifestVO);
@@ -39,7 +39,7 @@ public interface IParamsManifestEOService extends IService<ParamsManifestEO> {
* @param id
* @return
*/
boolean deleteById(String id);
boolean deleteById(String id, String cut);
/**
* 批量删除
@@ -47,7 +47,7 @@ public interface IParamsManifestEOService extends IService<ParamsManifestEO> {
* @param ids
* @return
*/
boolean deleteByIds(List<String> ids);
boolean deleteByIds(List<String> ids, String cut);
/**
* 通过id查询
@@ -72,7 +72,7 @@ public interface IParamsManifestEOService extends IService<ParamsManifestEO> {
IPage pageInfo(IPage page, ParamsManifestEO paramsManifestEO);
boolean changeExtension(String id);
boolean changeExtension(String id, String cut);
List<ParamsManifestHistoryVO> getHistoryVersionList(String title);
@@ -896,6 +896,20 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl<ParamsCollec
return map;
}
@Override
public boolean getManifestConfigFlag(String paramsManifestId) {
LambdaQueryWrapper<ParamsCollectManifestEO> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(ParamsCollectManifestEO::getParamsManifestId, paramsManifestId);
List<ParamsCollectManifestEO> list = list(queryWrapper);
int number = (int) list.stream().filter(e->CollectManifestStateEnum.WAIT_COLLECT.getValue().equals(e.getState())
|| CollectManifestStateEnum.CHANGE.getValue().equals(e.getState())).count();
if (number == list.size() && list.size() > 0) {
return true;
} else {
return false;
}
}
@Override
public boolean goBack(ParamsCollectManifestVO paramsCollectManifestVO) {
String paramsCollectManifestIds = paramsCollectManifestVO.getIds();
@@ -3,13 +3,17 @@ package com.jero.modules.cert.collect.service.impl;
import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.common.constant.enums.CutEnum;
import com.jero.common.exception.JeroBootException;
import com.jero.common.system.vo.LoginUser;
import com.jero.modules.cert.collect.entity.ParamsCollectManifestEO;
import com.jero.modules.cert.collect.entity.ParamsConfigEO;
import com.jero.modules.cert.collect.enums.CollectManifestStateEnum;
import com.jero.modules.cert.collect.enums.ConfigLockEnum;
import com.jero.modules.cert.collect.mapper.ParamsCollectManifestEOMapper;
import com.jero.modules.cert.collect.mapper.ParamsConfigDataEOMapper;
import com.jero.modules.cert.collect.mapper.ParamsConfigEOMapper;
import com.jero.modules.cert.collect.service.IParamsCollectManifestEOService;
import com.jero.modules.cert.collect.service.IParamsConfigEOService;
import com.jero.modules.cert.collect.vo.ParamsConfigVO;
import org.apache.commons.lang3.StringUtils;
@@ -42,6 +46,9 @@ public class ParamsConfigEOServiceImpl extends ServiceImpl<ParamsConfigEOMapper,
@Autowired
private ParamsCollectManifestEOMapper paramsCollectManifestEOMapper;
@Autowired
private IParamsCollectManifestEOService paramsCollectManifestEOService;
/**
* 保存
*
@@ -68,15 +75,16 @@ public class ParamsConfigEOServiceImpl extends ServiceImpl<ParamsConfigEOMapper,
ind++;
}
ParamsCollectManifestEO paramsCollectManifestEO = new ParamsCollectManifestEO();
paramsCollectManifestEO.setParamsManifestId(paramsManifestId);
List<ParamsCollectManifestEO> paramsCollectManifestEOList = paramsCollectManifestEOMapper.listInfo(paramsCollectManifestEO);
// 删除的配置
String deleteConfigIds = paramsConfigVO.getDeleteConfigIds();
if (StringUtils.isNotBlank(deleteConfigIds)) {
List<String> deleteConfigIdList = Arrays.asList(deleteConfigIds.split(","));
paramsConfigEOMapper.deleteBatchIds(deleteConfigIdList);
// TODO 级联删除配置数据
ParamsCollectManifestEO paramsCollectManifestEO = new ParamsCollectManifestEO();
paramsCollectManifestEO.setParamsManifestId(paramsManifestId);
List<ParamsCollectManifestEO> paramsCollectManifestEOList = paramsCollectManifestEOMapper.listInfo(paramsCollectManifestEO);
// 级联删除配置数据
if (CollectionUtil.isNotEmpty(paramsCollectManifestEOList)) {
String paramsCollectManifestIds = paramsCollectManifestEOList.stream()
.map(ParamsCollectManifestEO::getId).collect(Collectors.joining(","));
@@ -85,10 +93,30 @@ public class ParamsConfigEOServiceImpl extends ServiceImpl<ParamsConfigEOMapper,
}
// 新增的配置
if (CollectionUtil.isNotEmpty(addConfigList)) {
// 判断是否可新增配置,清单参数项状态为 待发起、变更时,可添加配置
boolean configFlag = paramsCollectManifestEOService.getManifestConfigFlag(paramsManifestId);
if (!configFlag) {
if (CutEnum.CN.getValue().equals(paramsConfigVO.getCut())) {
throw new JeroBootException("当前不可添加配置!");
} else {
throw new JeroBootException("Currently not available to add a configuration!");
}
}
addConfigList.forEach(paramsConfigEO -> {
paramsConfigEO.setParamsManifestId(paramsManifestId);
});
// saveBatch(addConfigList);
// 修改所有参数项状态为:待发起收集
if (CollectionUtil.isNotEmpty(paramsCollectManifestEOList)) {
List<ParamsCollectManifestEO> updateCollectManifestEOList = new ArrayList<>();
paramsCollectManifestEOList.forEach(collectManifestEO -> {
ParamsCollectManifestEO updateCollectManifestEO = new ParamsCollectManifestEO();
updateCollectManifestEO.setId(collectManifestEO.getId());
updateCollectManifestEO.setState(CollectManifestStateEnum.WAIT_COLLECT.getValue());
updateCollectManifestEOList.add(updateCollectManifestEO);
});
paramsCollectManifestEOService.updateBatchById(updateCollectManifestEOList);
}
}
// 修改的配置
if (CollectionUtil.isNotEmpty(updateConfigList)) {
@@ -7,6 +7,7 @@ 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.constant.enums.CutEnum;
import com.jero.common.exception.JeroBootException;
import com.jero.modules.cert.collect.entity.ParamsCollectManifestEO;
import com.jero.modules.cert.collect.entity.ParamsConfigDataEO;
@@ -168,7 +169,17 @@ public class ParamsManifestEOServiceImpl extends ServiceImpl<ParamsManifestEOMap
* @return
*/
@Override
public boolean deleteById(String id) {
public boolean deleteById(String id, String cut) {
// 判断清单收集状态,已完成状态才可删除
Map<String, Object> map = paramsCollectManifestEOService.isCollectFinished(id);
Boolean finish = (Boolean) map.get("finish");
if (!finish) {
if (CutEnum.CN.getValue().equals(cut)) {
throw new JeroBootException("清单收集中,无法删除!");
} else {
throw new JeroBootException("Manifest collection, and cannot be deleted!");
}
}
// 关联删除配置
LambdaQueryWrapper<ParamsConfigEO> configEOQueryWrapper = new LambdaQueryWrapper<>();
configEOQueryWrapper.eq(ParamsConfigEO::getParamsManifestId, id);
@@ -194,8 +205,21 @@ public class ParamsManifestEOServiceImpl extends ServiceImpl<ParamsManifestEOMap
* @return
*/
@Override
public boolean deleteByIds(List<String> ids) {
public boolean deleteByIds(List<String> ids, String cut) {
// 判断清单收集状态,已完成状态才可删除
ids.forEach(id-> {
Map<String, Object> map = paramsCollectManifestEOService.isCollectFinished(id);
Boolean finish = (Boolean) map.get("finish");
if (!finish) {
ParamsManifestEO manifestEO = getById(id);
if (CutEnum.CN.getValue().equals(cut)) {
throw new JeroBootException("清单:" + manifestEO.getTitle() + "收集中,无法删除!");
} else {
throw new JeroBootException("Manifest " + manifestEO.getTitle() + "collection, and cannot be deleted!");
}
}
});
// 关联删除配置
LambdaQueryWrapper<ParamsConfigEO> configEOQueryWrapper = new LambdaQueryWrapper<>();
configEOQueryWrapper.in(ParamsConfigEO::getParamsManifestId, ids);
@@ -279,6 +303,10 @@ public class ParamsManifestEOServiceImpl extends ServiceImpl<ParamsManifestEOMap
}
}
// 添加配置标识,清单参数项状态为 待发起、变更时,可添加配置
boolean configFlag = paramsCollectManifestEOService.getManifestConfigFlag(manifestEO.getId());
manifestEO.setConfigFlag(configFlag);
});
return rows;
@@ -295,23 +323,40 @@ public class ParamsManifestEOServiceImpl extends ServiceImpl<ParamsManifestEOMap
* @return
*/
@Override
public boolean changeExtension(String id) {
public boolean changeExtension(String id, String cut) {
// 变更扩展时,将历史清单数据 连同历史参数项收集数据 备份到相关历史表中
paramsManifestHistoryEOService.addForChangeExtension(id);
// 将模板最新版本和项目中参数项进行比对
ParamsManifestEO paramsManifestEO = getById(id);
if (paramsManifestEO.getState().equals(ManifestStateEnum.COLLECTING.getValue())) {
throw new JeroBootException("清单收集中,无法发起变更!");
Map<String, Object> map = paramsCollectManifestEOService.isCollectFinished(id);
Boolean finish = (Boolean) map.get("finish");
if (!finish) {
if (CutEnum.CN.getValue().equals(cut)) {
throw new JeroBootException("清单收集中,无法发起变更!");
} else {
throw new JeroBootException("Manifest collection, and cannot be initiated change!");
}
}
// if (paramsManifestEO.getState().equals(ManifestStateEnum.COLLECTING.getValue())) {
// throw new JeroBootException("清单收集中,无法发起变更!");
// }
// 查询项目引用的模板是否是最新版本
Integer newestVersion = paramsInfoPublishEOService.getNewestVersionByParamsTemplateId(paramsManifestEO.getParamsTemplateId());
if (newestVersion == null) {
throw new JeroBootException("查询不到模板最新发布版本!");
if (CutEnum.CN.getValue().equals(cut)) {
throw new JeroBootException("查询不到模板最新发布版本!");
} else {
throw new JeroBootException("Can not find the latest template!");
}
}
if (newestVersion == paramsManifestEO.getParamsTemplatePublishVersion()) {
throw new JeroBootException("当前已是模板最新发布版本!");
if (CutEnum.CN.getValue().equals(cut)) {
throw new JeroBootException("当前已是模板最新发布版本!");
} else {
throw new JeroBootException("This is the latest template!");
}
}
// 查询最新版模板参数项
@@ -16,4 +16,5 @@ public class ParamsConfigVO {
private String paramsManifestId;
private String deleteConfigIds;
private List<ParamsConfigEO> paramsConfigEOList;
private String cut;
}
@@ -18,4 +18,7 @@ public class ParamsManifestVO {
private String paramsTemplateName;
private String paramsTemplateId;
private Integer paramsTemplatePublishVersion;
private String ids;
private String cut;
}