fix:报告配置、权限细节调整

This commit is contained in:
FCL
2025-11-19 17:31:36 +08:00
parent 3c70d53533
commit 3028d478fe
4 changed files with 34 additions and 8 deletions

View File

@@ -16,7 +16,7 @@ import com.zt.plat.framework.common.pojo.PageResult;
*/
public interface ConfigPermissionService {
void savePermissionListWithAutoDelete(List<ConfigPermissionSaveReqVO> list);
void savePermissionListWithAutoDelete(List<ConfigPermissionSaveReqVO> list, Long delSourceId, String delSourceType, String delPermissionType);
void savePermission(List<ConfigPermissionDO> insertList, List<ConfigPermissionDO> updateList, List<Long> deleteList);

View File

@@ -37,10 +37,27 @@ public class ConfigPermissionServiceImpl implements ConfigPermissionService {
private ConfigPermissionMapper configPermissionMapper;
//保存权限配置,自动判断删除
/***
* 保存权限,并判断删除
* @param list 传入的权限列表
* 如果list为空则按delSourceId、delSourceType、delPermissionType 删除
*
* */
@Override
@Transactional(rollbackFor = Exception.class)
public void savePermissionListWithAutoDelete(List<ConfigPermissionSaveReqVO> list) {
public void savePermissionListWithAutoDelete(List<ConfigPermissionSaveReqVO> list, Long delSourceId, String delSourceType, String delPermissionType) {
LambdaQueryWrapper<ConfigPermissionDO> wrapper = new LambdaQueryWrapper<>();
//如果传入权限列表为空则按sourceId、 sourceType、 delPermissionType删除
if(list == null || list.isEmpty()){
if(delSourceId != null && !ObjectUtils.isEmpty(delSourceType)){
wrapper.eq(ConfigPermissionDO::getSourceId, delSourceId);
wrapper.eq(ConfigPermissionDO::getSourceType, delSourceType);
if(delPermissionType != null)
wrapper.eq(ConfigPermissionDO::getPermissionType, delPermissionType);
configPermissionMapper.delete( wrapper);
}
return;
}
//检查数据避免误处理按sourceId、sourceType检查
List<Long> sourceIdList = list.stream().map(ConfigPermissionSaveReqVO::getSourceId).distinct().toList();
List<String> sourceTypeList = list.stream().map(ConfigPermissionSaveReqVO::getSourceType).distinct().toList();
@@ -48,13 +65,13 @@ public class ConfigPermissionServiceImpl implements ConfigPermissionService {
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())
wrapper.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);
wrapper.eq(ConfigPermissionDO::getPermissionType, queryDO.getPermissionType());
List<ConfigPermissionDO> oldList = configPermissionMapper.selectList(wrapper);
List<ConfigPermissionSaveReqVO> insertList = new ArrayList<>();
List<ConfigPermissionSaveReqVO> updateList = new ArrayList<>();
List<Long> deleteIdList = new ArrayList<>();

View File

@@ -407,6 +407,7 @@ public class ReportDocumentDataServiceImpl implements ReportDocumentDataService
t.put("sampleNameCode", sampleNameCode);
t.put("sampleName", sampleName);
t.put("sampleCode", sampleCode);
t.put("remark", remark);
for(ConfigReportFieldDO fieldDO : fieldList){
String fieldName = fieldDO.getFieldName();
String field = fieldDO.getField();

View File

@@ -11,6 +11,7 @@ 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.enums.QmsPermissionConstant;
import com.zt.plat.module.system.api.permission.PermissionApi;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Service;
@@ -43,7 +44,9 @@ public class ReportDocumentTypeServiceImpl implements ReportDocumentTypeService
//处理权限
List<ConfigPermissionSaveReqVO> primissionList = reqVo.getPermissionList();
configPermissionService.savePermissionListWithAutoDelete(primissionList);
if(reqVo.getId() != null){
configPermissionService.savePermissionListWithAutoDelete(primissionList, reqVo.getMainId(), QmsPermissionConstant.REPORT_DOCUMENT_TYPE_START, null);
}
if("1".equals(newVersionFlag))
return saveWithNewVersion(reqVo);
if(reqVo.getId() == null){
@@ -52,6 +55,11 @@ public class ReportDocumentTypeServiceImpl implements ReportDocumentTypeService
reportDocumentTypeMapper.insert(typeDO);
Long id = typeDO.getId();
typeDO.setMainId(id);
for(ConfigPermissionSaveReqVO permission : primissionList)
permission.setSourceId( id);
configPermissionService.savePermissionListWithAutoDelete(primissionList, id, QmsPermissionConstant.REPORT_DOCUMENT_TYPE_START, null);
this.reportDocumentTypeMapper.updateById(typeDO);
}
else