Merge branch 'test' of https://git.will-way.cn/zgty/zt-qms into test
This commit is contained in:
@@ -81,6 +81,7 @@ public interface ErrorCodeConstants {
|
||||
ErrorCode CONFIG_QC_STANDARD_SAMPLE_NOT_EXISTS = new ErrorCode(1_032_050_000, "质控与定值样关系不存在");
|
||||
ErrorCode CONFIG_QC_SAMPLE_METHOD_PARAMETER_NOT_EXISTS = new ErrorCode(1_032_050_000, "质控样检测方法参数配置不存在");
|
||||
ErrorCode CONFIG_PERMISSION_NOT_EXISTS = new ErrorCode(1_032_050_000, "权限配置不存在");
|
||||
ErrorCode CONFIG_PERMISSION_DUPLICATE = new ErrorCode(1_032_050_000, "权限配置数据有误");
|
||||
ErrorCode CONFIG_WAREHOUSE_LOCATION_NOT_EXISTS = new ErrorCode(1_032_050_000, "存放位置不存在");
|
||||
|
||||
/*=================================bus 检验业务 1_032_100_000 ~ 1_032_149_999==================================*/
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
package com.zt.plat.module.qms.enums;
|
||||
|
||||
/**
|
||||
* 权限模块常量
|
||||
*/
|
||||
public interface QmsPermissionConstant {
|
||||
//目标权限类型-角色
|
||||
String TARGET_TYPE_ROLE = "role";
|
||||
|
||||
//目标权限类型-用户
|
||||
String TARGET_TYPE_USER = "user";
|
||||
|
||||
//目标权限类型-部门
|
||||
String TARGET_TYPE_DEPT = "dept";
|
||||
|
||||
//目标权限类型-自定义
|
||||
String TARGET_TYPE_CUSTOM = "custom";
|
||||
|
||||
//======================各业务模块权限常量=============================
|
||||
//报告发起权限
|
||||
String REPORT_DOCUMENT_TYPE_START = "report_document_type_start";
|
||||
|
||||
}
|
||||
@@ -97,8 +97,7 @@ public class ConfigPermissionController implements BusinessControllerMarker {
|
||||
@Operation(summary = "导出权限配置,通用权限配置 Excel")
|
||||
@PreAuthorize("@ss.hasPermission('qms:config-permission:export')")
|
||||
@ApiAccessLog(operateType = EXPORT)
|
||||
public void exportConfigPermissionExcel(@Valid ConfigPermissionPageReqVO pageReqVO,
|
||||
HttpServletResponse response) throws IOException {
|
||||
public void exportConfigPermissionExcel(@Valid ConfigPermissionPageReqVO pageReqVO, HttpServletResponse response) throws IOException {
|
||||
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
|
||||
List<ConfigPermissionDO> list = configPermissionService.getConfigPermissionPage(pageReqVO).getList();
|
||||
// 导出 Excel
|
||||
|
||||
@@ -21,6 +21,9 @@ public class ConfigPermissionPageReqVO extends PageParam {
|
||||
@Schema(description = "关联id", example = "20071")
|
||||
private Long targetId;
|
||||
|
||||
@Schema(description = "关联name", example = "1")
|
||||
private String targetName;
|
||||
|
||||
@Schema(description = "关联数据类型", example = "1")
|
||||
private String targetType;
|
||||
|
||||
|
||||
@@ -27,6 +27,10 @@ public class ConfigPermissionRespVO {
|
||||
@ExcelProperty("关联id")
|
||||
private Long targetId;
|
||||
|
||||
@Schema(description = "关联name", example = "1")
|
||||
@ExcelProperty("关联name")
|
||||
private String targetName;
|
||||
|
||||
@Schema(description = "关联数据类型", example = "1")
|
||||
@ExcelProperty("关联数据类型")
|
||||
private String targetType;
|
||||
|
||||
@@ -19,6 +19,9 @@ public class ConfigPermissionSaveReqVO {
|
||||
@Schema(description = "关联id", example = "20071")
|
||||
private Long targetId;
|
||||
|
||||
@Schema(description = "关联name", example = "1")
|
||||
private String targetName;
|
||||
|
||||
@Schema(description = "关联数据类型", example = "1")
|
||||
private String targetType;
|
||||
|
||||
|
||||
@@ -43,6 +43,9 @@ public class ConfigPermissionDO extends BusinessBaseDO {
|
||||
*/
|
||||
@TableField("TGT_ID")
|
||||
private Long targetId;
|
||||
|
||||
@TableField("TGT_NAME")
|
||||
private String targetName;
|
||||
/**
|
||||
* 关联数据类型
|
||||
*/
|
||||
|
||||
@@ -16,6 +16,19 @@ import com.zt.plat.framework.common.pojo.PageResult;
|
||||
*/
|
||||
public interface ConfigPermissionService {
|
||||
|
||||
void savePermissionListWithAutoDelete(List<ConfigPermissionSaveReqVO> list);
|
||||
|
||||
void savePermission(List<ConfigPermissionDO> insertList, List<ConfigPermissionDO> updateList, List<Long> deleteList);
|
||||
|
||||
void insertPermission(List<ConfigPermissionDO> insertList);
|
||||
|
||||
void updatePermission(List<ConfigPermissionDO> updateList);
|
||||
|
||||
void deletePermission(List<Long> deleteList);
|
||||
|
||||
List<ConfigPermissionDO> getPermissionList(Long sourceId, String sourceType, String permissionType);
|
||||
|
||||
|
||||
/**
|
||||
* 创建权限配置,通用权限配置
|
||||
*
|
||||
|
||||
@@ -1,11 +1,14 @@
|
||||
package com.zt.plat.module.qms.business.config.service;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.zt.plat.module.qms.business.config.controller.vo.ConfigPermissionPageReqVO;
|
||||
import com.zt.plat.module.qms.business.config.controller.vo.ConfigPermissionRespVO;
|
||||
import com.zt.plat.module.qms.business.config.controller.vo.ConfigPermissionSaveReqVO;
|
||||
import org.springframework.stereotype.Service;
|
||||
import jakarta.annotation.Resource;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.util.ObjectUtils;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
|
||||
import java.util.*;
|
||||
@@ -17,6 +20,7 @@ import com.zt.plat.framework.common.util.object.BeanUtils;
|
||||
import com.zt.plat.module.qms.business.config.dal.mapper.ConfigPermissionMapper;
|
||||
|
||||
import static com.zt.plat.framework.common.exception.util.ServiceExceptionUtil.exception;
|
||||
import static com.zt.plat.framework.common.exception.util.ServiceExceptionUtil.exception0;
|
||||
import static com.zt.plat.framework.common.util.collection.CollectionUtils.convertList;
|
||||
import static com.zt.plat.module.qms.enums.ErrorCodeConstants.*;
|
||||
|
||||
@@ -32,6 +36,106 @@ public class ConfigPermissionServiceImpl implements ConfigPermissionService {
|
||||
@Resource
|
||||
private ConfigPermissionMapper configPermissionMapper;
|
||||
|
||||
|
||||
//保存权限配置,自动判断删除
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void savePermissionListWithAutoDelete(List<ConfigPermissionSaveReqVO> list) {
|
||||
//检查数据,避免误处理:按sourceId、sourceType检查
|
||||
List<Long> sourceIdList = list.stream().map(ConfigPermissionSaveReqVO::getSourceId).distinct().toList();
|
||||
List<String> sourceTypeList = list.stream().map(ConfigPermissionSaveReqVO::getSourceType).distinct().toList();
|
||||
List<String> permissionTypeList = list.stream().map(ConfigPermissionSaveReqVO::getPermissionType).distinct().toList();
|
||||
if (sourceIdList.size() > 1 || sourceTypeList.size() > 1 || permissionTypeList.size() > 1) {
|
||||
throw exception0(CONFIG_PERMISSION_DUPLICATE.getCode(), "权限保存失败,提交的权限数据存在不一致的情况,请刷新后重试,或联系管理员处理");
|
||||
}
|
||||
LambdaQueryWrapper<ConfigPermissionDO> queryWrapper = new LambdaQueryWrapper<>();
|
||||
ConfigPermissionSaveReqVO queryDO = list.get(0);
|
||||
queryWrapper.eq(ConfigPermissionDO::getSourceId, queryDO.getSourceId())
|
||||
.eq(ConfigPermissionDO::getSourceType, queryDO.getSourceType());
|
||||
if(!ObjectUtils.isEmpty(queryDO.getPermissionType()))
|
||||
queryWrapper.eq(ConfigPermissionDO::getPermissionType, queryDO.getPermissionType());
|
||||
List<ConfigPermissionDO> oldList = configPermissionMapper.selectList(queryWrapper);
|
||||
List<ConfigPermissionSaveReqVO> insertList = new ArrayList<>();
|
||||
List<ConfigPermissionSaveReqVO> updateList = new ArrayList<>();
|
||||
List<Long> deleteIdList = new ArrayList<>();
|
||||
for (ConfigPermissionSaveReqVO newObj : list) {
|
||||
boolean exist = false;
|
||||
for (ConfigPermissionDO old : oldList) {
|
||||
if (old.getId().equals(newObj.getId())) {
|
||||
exist = true;
|
||||
if (!old.equals(newObj)) {
|
||||
updateList.add(newObj);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!exist) {
|
||||
insertList.add(newObj);
|
||||
}
|
||||
}
|
||||
for (ConfigPermissionDO old : oldList) {
|
||||
boolean exist = false;
|
||||
for (ConfigPermissionSaveReqVO newObj : list) {
|
||||
if (old.getId().equals(newObj.getId())) {
|
||||
exist = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!exist) {
|
||||
deleteIdList.add(old.getId());
|
||||
}
|
||||
}
|
||||
List<ConfigPermissionDO> list1 = new ArrayList<>();
|
||||
if(!insertList.isEmpty()){
|
||||
list1 = BeanUtils.toBean(insertList, ConfigPermissionDO.class);
|
||||
configPermissionMapper.insertBatch(list1);
|
||||
}
|
||||
if(!updateList.isEmpty()){
|
||||
list1 = BeanUtils.toBean(updateList, ConfigPermissionDO.class);
|
||||
configPermissionMapper.updateBatch(list1);
|
||||
}
|
||||
if(!deleteIdList.isEmpty())
|
||||
configPermissionMapper.deleteByIds(deleteIdList);
|
||||
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void savePermission(List<ConfigPermissionDO> insertList, List<ConfigPermissionDO> updateList, List<Long> deleteList) {
|
||||
this.insertPermission(insertList);
|
||||
this.updatePermission(updateList);
|
||||
this.deletePermission(deleteList);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void insertPermission(List<ConfigPermissionDO> insertList) {
|
||||
configPermissionMapper.insertBatch(insertList);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void updatePermission(List<ConfigPermissionDO> updateList) {
|
||||
configPermissionMapper.updateBatch(updateList);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void deletePermission(List<Long> deleteList) {
|
||||
configPermissionMapper.deleteByIds(deleteList);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ConfigPermissionDO> getPermissionList(Long sourceId, String sourceType, String permissionType) {
|
||||
LambdaQueryWrapper<ConfigPermissionDO> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(ConfigPermissionDO::getSourceId, sourceId)
|
||||
.eq(ConfigPermissionDO::getSourceType, sourceType);
|
||||
if(!ObjectUtils.isEmpty(permissionType))
|
||||
queryWrapper.eq(ConfigPermissionDO::getPermissionType, permissionType);
|
||||
return configPermissionMapper.selectList(queryWrapper);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ConfigPermissionRespVO createConfigPermission(ConfigPermissionSaveReqVO createReqVO) {
|
||||
// 插入
|
||||
|
||||
@@ -8,9 +8,13 @@ import com.zt.plat.framework.common.pojo.PageResult;
|
||||
import com.zt.plat.framework.common.pojo.vo.BatchDeleteReqVO;
|
||||
import com.zt.plat.framework.common.util.object.BeanUtils;
|
||||
import com.zt.plat.framework.excel.core.util.ExcelUtils;
|
||||
import com.zt.plat.module.qms.business.config.controller.vo.ConfigPermissionRespVO;
|
||||
import com.zt.plat.module.qms.business.config.dal.dataobject.ConfigPermissionDO;
|
||||
import com.zt.plat.module.qms.business.config.service.ConfigPermissionService;
|
||||
import com.zt.plat.module.qms.business.reportdoc.controller.vo.*;
|
||||
import com.zt.plat.module.qms.business.reportdoc.dal.dataobject.ReportDocumentTypeDO;
|
||||
import com.zt.plat.module.qms.business.reportdoc.service.ReportDocumentTypeService;
|
||||
import com.zt.plat.module.qms.enums.QmsPermissionConstant;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.Parameter;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
@@ -34,8 +38,8 @@ import static com.zt.plat.framework.common.pojo.CommonResult.success;
|
||||
public class ReportDocumentTypeController implements BusinessControllerMarker {
|
||||
|
||||
|
||||
@Resource
|
||||
private ReportDocumentTypeService reportDocumentTypeService;
|
||||
@Resource private ReportDocumentTypeService reportDocumentTypeService;
|
||||
@Resource private ConfigPermissionService configPermissionService;
|
||||
|
||||
@PostMapping("/save")
|
||||
@Operation(summary = "更新报告类型配置")
|
||||
@@ -67,8 +71,13 @@ public class ReportDocumentTypeController implements BusinessControllerMarker {
|
||||
@Parameter(name = "id", description = "编号", required = true, example = "1024")
|
||||
//@PreAuthorize("@ss.hasPermission('qms:report-document-type:query')")
|
||||
public CommonResult<ReportDocumentTypeRespVO> getReportDocumentType(@RequestParam("id") Long id) {
|
||||
ReportDocumentTypeDO reportDocumentType = reportDocumentTypeService.getReportDocumentType(id);
|
||||
return success(BeanUtils.toBean(reportDocumentType, ReportDocumentTypeRespVO.class));
|
||||
ReportDocumentTypeDO reportDocumentTypeDO = reportDocumentTypeService.getReportDocumentType(id);
|
||||
Long mainId = reportDocumentTypeDO.getMainId();
|
||||
List<ConfigPermissionDO> permissionList = configPermissionService.getPermissionList(mainId, QmsPermissionConstant.REPORT_DOCUMENT_TYPE_START, "");
|
||||
List<ConfigPermissionRespVO> permissionRespVOList= BeanUtils.toBean(permissionList, ConfigPermissionRespVO.class);
|
||||
ReportDocumentTypeRespVO reportDocumentTypeRespVO = BeanUtils.toBean(reportDocumentTypeDO, ReportDocumentTypeRespVO.class);
|
||||
reportDocumentTypeRespVO.setPermissionList(permissionRespVOList);
|
||||
return success(reportDocumentTypeRespVO);
|
||||
}
|
||||
|
||||
@GetMapping("/page")
|
||||
|
||||
@@ -2,11 +2,14 @@ package com.zt.plat.module.qms.business.reportdoc.controller.vo;
|
||||
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import com.zt.plat.module.qms.business.config.controller.vo.ConfigPermissionRespVO;
|
||||
import com.zt.plat.module.qms.business.config.controller.vo.ConfigPermissionSaveReqVO;
|
||||
import com.zt.plat.module.qms.core.aspect.annotation.Dict;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
|
||||
@Schema(description = "管理后台 - 报告类型配置 Response VO")
|
||||
@Data
|
||||
@@ -89,4 +92,8 @@ public class ReportDocumentTypeRespVO {
|
||||
@Schema(description = "前端组件(移动端)")
|
||||
@ExcelProperty("前端组件(移动端)")
|
||||
private String pageComponentMobile;
|
||||
|
||||
//===========扩展字段=======================
|
||||
@Schema(description = "权限列表")
|
||||
List<ConfigPermissionRespVO> permissionList;
|
||||
}
|
||||
@@ -1,11 +1,14 @@
|
||||
package com.zt.plat.module.qms.business.reportdoc.controller.vo;
|
||||
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import com.zt.plat.module.qms.business.config.controller.vo.ConfigPermissionSaveReqVO;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import jakarta.validation.constraints.NotEmpty;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Schema(description = "管理后台 - 报告类型配置新增/修改 Request VO")
|
||||
@Data
|
||||
public class ReportDocumentTypeSaveReqVO {
|
||||
@@ -72,4 +75,9 @@ public class ReportDocumentTypeSaveReqVO {
|
||||
|
||||
@Schema(description = "前端组件(移动端)")
|
||||
private String pageComponentMobile;
|
||||
|
||||
//===========扩展字段=======================
|
||||
@Schema(description = "权限列表")
|
||||
List<ConfigPermissionSaveReqVO> permissionList;
|
||||
|
||||
}
|
||||
@@ -4,12 +4,15 @@ import cn.hutool.core.collection.CollUtil;
|
||||
import com.zt.plat.framework.common.pojo.CommonResult;
|
||||
import com.zt.plat.framework.common.pojo.PageResult;
|
||||
import com.zt.plat.framework.common.util.object.BeanUtils;
|
||||
import com.zt.plat.module.qms.business.config.controller.vo.ConfigPermissionSaveReqVO;
|
||||
import com.zt.plat.module.qms.business.config.dal.dataobject.ConfigPermissionDO;
|
||||
import com.zt.plat.module.qms.business.config.service.ConfigPermissionService;
|
||||
import com.zt.plat.module.qms.business.reportdoc.controller.vo.*;
|
||||
import com.zt.plat.module.qms.business.reportdoc.dal.mapper.ReportDocumentTypeMapper;
|
||||
import com.zt.plat.module.qms.business.reportdoc.dal.dataobject.ReportDocumentTypeDO;
|
||||
import com.zt.plat.module.qms.common.data.controller.vo.DataCollectionFieldSaveReqVO;
|
||||
import jakarta.annotation.Resource;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
|
||||
import java.util.List;
|
||||
@@ -26,12 +29,17 @@ import static com.zt.plat.module.qms.enums.ErrorCodeConstants.REPORT_DOCUMENT_TY
|
||||
@Validated
|
||||
public class ReportDocumentTypeServiceImpl implements ReportDocumentTypeService {
|
||||
|
||||
@Resource
|
||||
private ReportDocumentTypeMapper reportDocumentTypeMapper;
|
||||
@Resource private ReportDocumentTypeMapper reportDocumentTypeMapper;
|
||||
@Resource private ConfigPermissionService configPermissionService;
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public CommonResult<String> save(ReportDocumentTypeSaveReqVO reqVo) {
|
||||
String newVersionFlag = reqVo.getNewVersionFlag();
|
||||
|
||||
//处理权限
|
||||
List<ConfigPermissionSaveReqVO> primissionList = reqVo.getPermissionList();
|
||||
configPermissionService.savePermissionListWithAutoDelete(primissionList);
|
||||
if("1".equals(newVersionFlag))
|
||||
return saveWithNewVersion(reqVo);
|
||||
if(reqVo.getId() == null){
|
||||
@@ -48,6 +56,7 @@ public class ReportDocumentTypeServiceImpl implements ReportDocumentTypeService
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public CommonResult<String> saveWithNewVersion(ReportDocumentTypeSaveReqVO reqV) {
|
||||
ReportDocumentTypeDO documentTypeDO = BeanUtils.toBean(reqV, ReportDocumentTypeDO.class);
|
||||
documentTypeDO.setCurrentFlag(0);
|
||||
@@ -120,6 +129,10 @@ public class ReportDocumentTypeServiceImpl implements ReportDocumentTypeService
|
||||
|
||||
@Override
|
||||
public PageResult<ReportDocumentTypeDO> getReportDocumentTypePage(ReportDocumentTypePageReqVO pageReqVO) {
|
||||
//查询权限
|
||||
|
||||
|
||||
|
||||
return reportDocumentTypeMapper.selectPage(pageReqVO);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user