Browse Source

模型发布审批功能

dev-opt
ddmte32 7 months ago
parent
commit
56803efea6
3 changed files with 59 additions and 3 deletions
  1. +9
    -1
      ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/model/NewModelFromGitController.java
  2. +3
    -1
      ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/ModelsService.java
  3. +47
    -1
      ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ModelsServiceImpl.java

+ 9
- 1
ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/model/NewModelFromGitController.java View File

@@ -4,11 +4,12 @@ import cn.hutool.core.collection.CollectionUtil;
import com.ruoyi.common.core.web.controller.BaseController; import com.ruoyi.common.core.web.controller.BaseController;
import com.ruoyi.common.core.web.domain.AjaxResult; import com.ruoyi.common.core.web.domain.AjaxResult;
import com.ruoyi.common.core.web.domain.GenericsAjaxResult; import com.ruoyi.common.core.web.domain.GenericsAjaxResult;
import com.ruoyi.platform.annotations.NeedApproval;
import com.ruoyi.common.security.utils.SecurityUtils;
import com.ruoyi.platform.domain.ModelsVersion; import com.ruoyi.platform.domain.ModelsVersion;
import com.ruoyi.platform.service.ModelsService; import com.ruoyi.platform.service.ModelsService;
import com.ruoyi.platform.vo.ModelsVo; import com.ruoyi.platform.vo.ModelsVo;
import com.ruoyi.platform.vo.QueryModelMetricsVo; import com.ruoyi.platform.vo.QueryModelMetricsVo;
import com.ruoyi.system.api.model.LoginUser;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.springframework.core.io.InputStreamResource; import org.springframework.core.io.InputStreamResource;
@@ -174,4 +175,11 @@ public class NewModelFromGitController extends BaseController {
public AjaxResult unpraise(@PathVariable("id") Integer id) throws Exception { public AjaxResult unpraise(@PathVariable("id") Integer id) throws Exception {
return AjaxResult.success(this.modelsService.unpraise(id)); return AjaxResult.success(this.modelsService.unpraise(id));
} }

@PostMapping("/publish")
@ApiOperation(value = "发布")
public AjaxResult publish(@RequestBody ModelsVo modelsVo) throws Exception {
LoginUser loginUser = SecurityUtils.getLoginUser();
return AjaxResult.success(this.modelsService.publish(modelsVo,loginUser));
}
} }

+ 3
- 1
ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/ModelsService.java View File

@@ -1,12 +1,12 @@
package com.ruoyi.platform.service; package com.ruoyi.platform.service;




import com.ruoyi.platform.domain.ModelDependency1;
import com.ruoyi.platform.domain.Models; import com.ruoyi.platform.domain.Models;
import com.ruoyi.platform.domain.ModelsVersion; import com.ruoyi.platform.domain.ModelsVersion;
import com.ruoyi.platform.vo.ModelDependency1TreeVo; import com.ruoyi.platform.vo.ModelDependency1TreeVo;
import com.ruoyi.platform.vo.ModelsVo; import com.ruoyi.platform.vo.ModelsVo;
import com.ruoyi.platform.vo.QueryModelMetricsVo; import com.ruoyi.platform.vo.QueryModelMetricsVo;
import com.ruoyi.system.api.model.LoginUser;
import org.springframework.core.io.InputStreamResource; import org.springframework.core.io.InputStreamResource;
import org.springframework.data.domain.Page; import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.PageRequest;
@@ -126,4 +126,6 @@ public interface ModelsService {
List<ModelsVo> convert(List<Map<String, Object>> lst, String modelTopic, String modelTagName, String modelTypeName); List<ModelsVo> convert(List<Map<String, Object>> lst, String modelTopic, String modelTagName, String modelTypeName);


String getNextVersion(ModelsVersion modelsVersion) throws Exception; String getNextVersion(ModelsVersion modelsVersion) throws Exception;

String publish(ModelsVo modelsVo, LoginUser loginUser) throws Exception;
} }

+ 47
- 1
ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ModelsServiceImpl.java View File

@@ -13,7 +13,9 @@ import com.ruoyi.platform.mapper.*;
import com.ruoyi.platform.service.*; import com.ruoyi.platform.service.*;
import com.ruoyi.platform.utils.*; import com.ruoyi.platform.utils.*;
import com.ruoyi.platform.vo.*; import com.ruoyi.platform.vo.*;
import com.ruoyi.system.api.RemoteInfoPublishService;
import com.ruoyi.system.api.constant.Constant; import com.ruoyi.system.api.constant.Constant;
import com.ruoyi.system.api.domain.NewSysNotificationParamsVo;
import com.ruoyi.system.api.model.LoginUser; import com.ruoyi.system.api.model.LoginUser;
import io.minio.messages.Item; import io.minio.messages.Item;
import org.apache.commons.io.FileUtils; import org.apache.commons.io.FileUtils;
@@ -43,7 +45,6 @@ import java.nio.file.Files;
import java.nio.file.Path; import java.nio.file.Path;
import java.nio.file.Paths; import java.nio.file.Paths;
import java.util.*; import java.util.*;
import java.util.concurrent.CompletableFuture;
import java.util.regex.Matcher; import java.util.regex.Matcher;
import java.util.regex.Pattern; import java.util.regex.Pattern;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@@ -98,6 +99,12 @@ public class ModelsServiceImpl implements ModelsService {
@Resource @Resource
private DVCUtils dvcUtils; private DVCUtils dvcUtils;


@Resource
private ApprovalService approvalService;

@Resource
private RemoteInfoPublishService remoteInfoPublishService;

@Resource @Resource
private AssetWorkflowDao assetWorkflowDao; private AssetWorkflowDao assetWorkflowDao;


@@ -1355,6 +1362,45 @@ public class ModelsServiceImpl implements ModelsService {
return incrementVersion(versionList); return incrementVersion(versionList);
} }


@Override
public String publish(ModelsVo modelsVo, LoginUser loginUser) throws Exception {
Set<String> roles = loginUser.getRoles();
if (roles.contains("admin")) {
//无需审批,直接通过
return "发布成功";
}
ModelsVo modelDetail = getModelDetail(modelsVo.getId(), modelsVo.getIdentifier(), modelsVo.getOwner(), null, false);
String username = loginUser.getUsername();
Long userid = loginUser.getUserid();
ApprovalRequest approvalRequest = new ApprovalRequest();
approvalRequest.setApplicantName(username);
approvalRequest.setType(ApprovalType.DATASET.getCode());
approvalRequest.setApplicantId(userid);
approvalRequest.setApproverId(1L);
approvalRequest.setStatus(ApprovalStatus.PENDING.getCode());

String titleTemplate = "{}发布的模型<b>\"{}\"</b>需要审核,请查看";
String urlTemplate = "/dataset/model/info/{}?name={}&owner={}&identifier={}&is_public={}";

String titleFormat = StrUtil.format(titleTemplate, username, modelDetail.getName());
String urlFormat = StrUtil.format(urlTemplate, modelDetail.getId(), modelDetail.getName(), modelDetail.getOwner(), modelDetail.getIdentifier(), modelDetail.getIsPublic());

approvalRequest.setTitle(titleFormat);
approvalRequest.setUrl(urlFormat);
approvalRequest.setContent(JSON.toJSONString(modelDetail));
approvalService.submit(approvalRequest);

NewSysNotificationParamsVo paramsVo = new NewSysNotificationParamsVo();
paramsVo.setContent(titleFormat);
paramsVo.setReceivers("1");
paramsVo.setSender(userid);
paramsVo.setType(2);
paramsVo.setNotification_url("/system/approval");
remoteInfoPublishService.pushSysInfo(paramsVo);

return "发布成功,待管理员审核";
}

/** /**
* 从Map列表中提取"v+数字"格式的版本号并升级 * 从Map列表中提取"v+数字"格式的版本号并升级
* *


Loading…
Cancel
Save