diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/config/service/ConfigPermissionService.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/config/service/ConfigPermissionService.java index 5507083..5669459 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/config/service/ConfigPermissionService.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/config/service/ConfigPermissionService.java @@ -16,7 +16,7 @@ import com.zt.plat.framework.common.pojo.PageResult; */ public interface ConfigPermissionService { - void savePermissionListWithAutoDelete(List list); + void savePermissionListWithAutoDelete(List list, Long delSourceId, String delSourceType, String delPermissionType); void savePermission(List insertList, List updateList, List deleteList); diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/config/service/ConfigPermissionServiceImpl.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/config/service/ConfigPermissionServiceImpl.java index c935e80..049c357 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/config/service/ConfigPermissionServiceImpl.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/config/service/ConfigPermissionServiceImpl.java @@ -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 list) { + public void savePermissionListWithAutoDelete(List list, Long delSourceId, String delSourceType, String delPermissionType) { + LambdaQueryWrapper 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 sourceIdList = list.stream().map(ConfigPermissionSaveReqVO::getSourceId).distinct().toList(); List 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 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 oldList = configPermissionMapper.selectList(queryWrapper); + wrapper.eq(ConfigPermissionDO::getPermissionType, queryDO.getPermissionType()); + List oldList = configPermissionMapper.selectList(wrapper); List insertList = new ArrayList<>(); List updateList = new ArrayList<>(); List deleteIdList = new ArrayList<>(); diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/service/ReportDocumentDataServiceImpl.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/service/ReportDocumentDataServiceImpl.java index 66b37dd..e748bf9 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/service/ReportDocumentDataServiceImpl.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/service/ReportDocumentDataServiceImpl.java @@ -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(); diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/service/ReportDocumentTypeServiceImpl.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/service/ReportDocumentTypeServiceImpl.java index 982a073..d97e22c 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/service/ReportDocumentTypeServiceImpl.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/service/ReportDocumentTypeServiceImpl.java @@ -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 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