diff --git a/.gitignore b/.gitignore index f4173a6f..9708f767 100644 --- a/.gitignore +++ b/.gitignore @@ -85,3 +85,30 @@ /outbridge/target/classes/com/sdm/outbridge/secondDao/LyricVAttachmentConfigMapper.class /outbridge/target/classes/com/sdm/outbridge/service/impl/lyric/LyricVAttachmentConfigServiceImpl.class /outbridge/target/classes/com/sdm/outbridge/service/lyric/LyricVAttachmentConfigService.class +/job/target/classes/bin/65/log.sh +/job/target/classes/bin/65/restart.sh +/job/target/classes/bin/65/start.sh +/job/target/classes/bin/65/status.sh +/job/target/classes/bin/65/stop.sh +/job/target/classes/bin/100/log.sh +/job/target/classes/bin/100/restart.sh +/job/target/classes/bin/100/start.sh +/job/target/classes/bin/100/status.sh +/job/target/classes/bin/100/stop.sh +/job/target/classes/bin/190/log.sh +/job/target/classes/bin/190/restart.sh +/job/target/classes/bin/190/start.sh +/job/target/classes/bin/190/status.sh +/job/target/classes/bin/190/stop.sh +/job/target/classes/com/sdm/job/config/XxlJobConfig.class +/job/target/classes/com/sdm/job/schedule/DataSchedule.class +/job/target/classes/com/sdm/job/schedule/PbsSchedule.class +/job/target/classes/com/sdm/job/schedule/ProjectSchedule.class +/job/target/classes/com/sdm/job/JobApplication.class +/job/target/classes/application.yml +/job/target/classes/application-dev-65.yml +/job/target/classes/application-dev-100.yml +/job/target/classes/application-dev-190.yml +/job/target/classes/application-local.yml +/job/target/classes/application-lyric.yml +/job/target/classes/logback.xml diff --git a/1-sql/2026-04-14/simulation_parameter_library_category_object b/1-sql/2026-04-14/simulation_parameter_library_category_object new file mode 100644 index 00000000..b8bbdd0e --- /dev/null +++ b/1-sql/2026-04-14/simulation_parameter_library_category_object @@ -0,0 +1,3 @@ +ALTER TABLE spdm_baseline.simulation_parameter_library_category_object MODIFY COLUMN file_id bigint NULL COMMENT '文件ID,关联file_metadata_info文件表id'; + +ALTER TABLE spdm_baseline.simulation_parameter_library_category_object MODIFY COLUMN file_name varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '文件名'; diff --git a/common/src/main/java/com/sdm/common/entity/req/data/UploadFilesReq.java b/common/src/main/java/com/sdm/common/entity/req/data/UploadFilesReq.java index 0a71d5de..2d28b5a3 100644 --- a/common/src/main/java/com/sdm/common/entity/req/data/UploadFilesReq.java +++ b/common/src/main/java/com/sdm/common/entity/req/data/UploadFilesReq.java @@ -62,10 +62,10 @@ public class UploadFilesReq { @Schema(description = "加密密钥") private String encryptKey; - @Schema(description = "文件夹id") + @Schema(description = "父文件夹id") private Long dirId; - @Schema(description = "节点id") + @Schema(description = "父节点id") private String uuid; @Schema(description = "文件名") diff --git a/data/src/main/java/com/sdm/data/controller/SimulationParameterLibraryController.java b/data/src/main/java/com/sdm/data/controller/SimulationParameterLibraryController.java index bfc9c790..146b9357 100644 --- a/data/src/main/java/com/sdm/data/controller/SimulationParameterLibraryController.java +++ b/data/src/main/java/com/sdm/data/controller/SimulationParameterLibraryController.java @@ -3,8 +3,10 @@ package com.sdm.data.controller; import com.sdm.common.common.SdmResponse; import com.sdm.common.log.annotation.SysLog; +import com.sdm.data.model.req.QuerySimulationParamLibraryPermissionReq; import com.sdm.data.model.req.SimulationParamLibraryReq; import com.sdm.data.model.req.SimulationParameterLibraryCategoryObjectReq; +import com.sdm.data.model.req.UpdateSimulationParamLibraryPermissionReq; import com.sdm.data.model.req.UpdateSimulationParameterReq; import com.sdm.data.model.resp.SimulationParameterLibraryCategoryObjectResp; import com.sdm.data.service.ISimulationParameterLibraryService; @@ -13,6 +15,7 @@ import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.MediaType; +import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; /** @@ -123,4 +126,23 @@ public class SimulationParameterLibraryController { return simulationParameterLibraryService.updateSimulationParameterValues(req); } + /** + * 更新仿真参数库权限(最终映射到最底层关联文件) + */ + @SysLog("更新仿真参数库权限") + @PostMapping("/updatePermission") + @Operation(summary = "更新仿真参数库权限", description = "按库/分类/对象更新权限,最终更新关联文件权限") + public SdmResponse updatePermission(@RequestBody @Validated UpdateSimulationParamLibraryPermissionReq req) { + return simulationParameterLibraryService.updateSimulationParameterPermission(req); + } + + /** + * 查询仿真参数库权限(最终映射到最底层关联文件权限) + */ + @PostMapping("/queryPermission") + @Operation(summary = "查询仿真参数库权限", description = "按库/分类/对象查询权限,最终查询关联文件真实权限") + public SdmResponse queryPermission(@RequestBody @Validated QuerySimulationParamLibraryPermissionReq req) { + return simulationParameterLibraryService.querySimulationParameterPermission(req); + } + } \ No newline at end of file diff --git a/data/src/main/java/com/sdm/data/model/req/QuerySimulationParamLibraryPermissionReq.java b/data/src/main/java/com/sdm/data/model/req/QuerySimulationParamLibraryPermissionReq.java new file mode 100644 index 00000000..90c21b3e --- /dev/null +++ b/data/src/main/java/com/sdm/data/model/req/QuerySimulationParamLibraryPermissionReq.java @@ -0,0 +1,15 @@ +package com.sdm.data.model.req; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Data +@Schema(description = "查询仿真参数库权限请求参数") +public class QuerySimulationParamLibraryPermissionReq { + + @Schema(description = "仿真参数库类型:1-库,2-分类,3-参数对象", requiredMode = Schema.RequiredMode.REQUIRED) + private Integer type; + + @Schema(description = "仿真参数库主键ID(库ID/分类ID/参数对象ID)", requiredMode = Schema.RequiredMode.REQUIRED) + private Long id; +} diff --git a/data/src/main/java/com/sdm/data/model/req/UpdateSimulationParamLibraryPermissionReq.java b/data/src/main/java/com/sdm/data/model/req/UpdateSimulationParamLibraryPermissionReq.java new file mode 100644 index 00000000..df5fe840 --- /dev/null +++ b/data/src/main/java/com/sdm/data/model/req/UpdateSimulationParamLibraryPermissionReq.java @@ -0,0 +1,20 @@ +package com.sdm.data.model.req; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.Map; + +@Data +@Schema(description = "更新仿真参数库权限请求参数") +public class UpdateSimulationParamLibraryPermissionReq { + + @Schema(description = "仿真参数库类型:1-库,2-分类,3-参数对象", requiredMode = Schema.RequiredMode.REQUIRED) + private Integer type; + + @Schema(description = "仿真参数库主键ID(库ID/分类ID/参数对象ID)", requiredMode = Schema.RequiredMode.REQUIRED) + private Long id; + + @Schema(description = "用户权限,key:用户ID,value:权限值", requiredMode = Schema.RequiredMode.REQUIRED) + private Map userPermissions; +} diff --git a/data/src/main/java/com/sdm/data/service/ISimulationParameterLibraryService.java b/data/src/main/java/com/sdm/data/service/ISimulationParameterLibraryService.java index 72846e60..7b977f7f 100644 --- a/data/src/main/java/com/sdm/data/service/ISimulationParameterLibraryService.java +++ b/data/src/main/java/com/sdm/data/service/ISimulationParameterLibraryService.java @@ -3,11 +3,12 @@ package com.sdm.data.service; import com.sdm.common.common.SdmResponse; import com.sdm.data.model.entity.SimulationParameterLibrary; import com.baomidou.mybatisplus.extension.service.IService; +import com.sdm.data.model.req.QuerySimulationParamLibraryPermissionReq; import com.sdm.data.model.req.SimulationParamLibraryReq; import com.sdm.data.model.req.SimulationParameterLibraryCategoryObjectReq; +import com.sdm.data.model.req.UpdateSimulationParamLibraryPermissionReq; import com.sdm.data.model.req.UpdateSimulationParameterReq; import com.sdm.data.model.resp.SimulationParameterLibraryCategoryObjectResp; -import org.springframework.web.bind.annotation.RequestBody; /** *

@@ -68,4 +69,14 @@ public interface ISimulationParameterLibraryService extends IService integerSdmResponse = dataFileService.uploadSimulationParamFile(fileToUpload); - Long fileId = integerSdmResponse.getData(); - + UploadFilesReq uploadFilesReq = new UploadFilesReq(); + uploadFilesReq.setFile(fileToUpload); + uploadFilesReq.setUuid(String.valueOf(simulationParameterLibraryCategoryObject.getId())); + uploadFilesReq.setFileName(fileName); + SdmResponse sdmResponse = dataFileService.uploadFiles(uploadFilesReq); + if (!sdmResponse.isSuccess()) { + return SdmResponse.failed("仿真参数库文件对象上传失败"); + } + Long fileId = ((JSONObject)sdmResponse.getData()).getLong("fileId"); simulationParameterLibraryCategoryObject.setFileId(fileId); - simulationParameterLibraryCategoryObject.setCreatorId(ThreadLocalContext.getUserId()); - simulationParameterLibraryCategoryObjectService.save(simulationParameterLibraryCategoryObject); + simulationParameterLibraryCategoryObjectService.updateById(simulationParameterLibraryCategoryObject); // 上传了文件才需要审批 if (isApprove) { @@ -241,6 +291,25 @@ public class SimulationParameterLibraryServiceImpl extends ServiceImpl> simulationParameterTree; + if(id == null){ + simulationParameterTree = dataFileService.listDir(DirTypeEnum.SIMULATION_PARAMETER_DIR.getValue(), null); + } else { + FileMetadataInfo simulationParameterLibraryFile = fileMetadataInfoService.lambdaQuery() + .eq(FileMetadataInfo::getTenantId, ThreadLocalContext.getTenantId()) + .eq(FileMetadataInfo::getRelatedResourceUuidOwnType, String.valueOf(type)) + .eq(FileMetadataInfo::getRelatedResourceUuid, id) + .one(); + + simulationParameterTree = dataFileService.listDir(DirTypeEnum.SIMULATION_PARAMETER_DIR.getValue(), simulationParameterLibraryFile.getId()); + } + + Map uuidToPermissionMap = new HashMap<>(); + if(simulationParameterTree.isSuccess()){ + uuidToPermissionMap = simulationParameterTree.getData().stream().collect(Collectors.toMap(FileMetadataInfoResp::getRelatedResourceUuid, FileMetadataInfoResp::getPermissionValue)); + } + List jsonObjects = new ArrayList<>(); if (id == null) { // 获取所有仿真参数库 @@ -253,15 +322,16 @@ public class SimulationParameterLibraryServiceImpl extends ServiceImpl userIdsSet = new HashSet<>(userIds); Map longStringMap = userNameCacheService.batchGetUserNames(userIdsSet); - simulationParameterLibraries.forEach(simulationParameterLibrary -> { + for (SimulationParameterLibrary simulationParameterLibrary : simulationParameterLibraries) { JSONObject jsonObject = new JSONObject(); jsonObject.put("id", simulationParameterLibrary.getId()); jsonObject.put("type", SimulationParameterDataTypeEnum.LIBRARY.getValue()); jsonObject.put("name", simulationParameterLibrary.getParameterLibraryName()); - jsonObject.put("createName",longStringMap.get(simulationParameterLibrary.getCreatorId())); + jsonObject.put("createName", longStringMap.get(simulationParameterLibrary.getCreatorId())); jsonObject.put("createTime", simulationParameterLibrary.getCreateTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); + jsonObject.put("permissionValue", uuidToPermissionMap.getOrDefault(String.valueOf(simulationParameterLibrary.getId()), 0)); jsonObjects.add(jsonObject); - }); + } return SdmResponse.success(jsonObjects); } @@ -283,15 +353,16 @@ public class SimulationParameterLibraryServiceImpl extends ServiceImpl longStringMap = userNameCacheService.batchGetUserNames(userIdsSet); - simulationParameterLibraryCategories.forEach(simulationParameterLibraryCategory -> { + for (SimulationParameterLibraryCategory simulationParameterLibraryCategory : simulationParameterLibraryCategories) { JSONObject jsonObject = new JSONObject(); jsonObject.put("id", simulationParameterLibraryCategory.getId()); jsonObject.put("type", SimulationParameterDataTypeEnum.CATEGORY.getValue()); jsonObject.put("name", simulationParameterLibraryCategory.getParameterLibraryCategoryName()); - jsonObject.put("createName",longStringMap.get(simulationParameterLibraryCategory.getCreatorId())); + jsonObject.put("createName", longStringMap.get(simulationParameterLibraryCategory.getCreatorId())); jsonObject.put("createTime", simulationParameterLibraryCategory.getCreateTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); + jsonObject.put("permissionValue", uuidToPermissionMap.getOrDefault(String.valueOf(simulationParameterLibraryCategory.getId()), 0)); jsonObjects.add(jsonObject); - }); + } return SdmResponse.success(jsonObjects); } } @@ -327,6 +398,7 @@ public class SimulationParameterLibraryServiceImpl extends ServiceImpl objectList) { ApprovalParamContentsModel contentsModel = new ApprovalParamContentsModel(); contentsModel.setApproveAction(ApproveFileActionENUM.DELETE.getCode()); @@ -457,28 +545,62 @@ public class SimulationParameterLibraryServiceImpl extends ServiceImpl getSimulationParameterLibraryCategoryObject(Long ObjectId) { SimulationParameterLibraryCategoryObjectResp resp = getSimulationParameterLibraryCategoryObjectInner(ObjectId); @@ -638,16 +760,20 @@ public class SimulationParameterLibraryServiceImpl extends ServiceImpl