Browse Source

审批功能联调

dev-opt
ddmte32 7 months ago
parent
commit
89bdde55df
4 changed files with 62 additions and 2 deletions
  1. +9
    -0
      ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/model/NewModelFromGitController.java
  2. +3
    -0
      ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/ModelsService.java
  3. +48
    -0
      ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ModelsServiceImpl.java
  4. +2
    -2
      ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/NewDatasetServiceImpl.java

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

@@ -4,12 +4,14 @@ import cn.hutool.core.collection.CollectionUtil;
import com.ruoyi.common.core.web.controller.BaseController;
import com.ruoyi.common.core.web.domain.AjaxResult;
import com.ruoyi.common.core.web.domain.GenericsAjaxResult;
import com.ruoyi.common.security.utils.SecurityUtils;
import com.ruoyi.platform.annotations.NeedApproval;
import com.ruoyi.platform.domain.ModelsVersion;
import com.ruoyi.platform.service.ModelsService;
import com.ruoyi.platform.vo.ModelsVo;
import com.ruoyi.platform.vo.NewDatasetVo;
import com.ruoyi.platform.vo.QueryModelMetricsVo;
import com.ruoyi.system.api.model.LoginUser;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.core.io.InputStreamResource;
@@ -176,6 +178,13 @@ public class NewModelFromGitController extends BaseController {
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(modelsService.publish(modelsVo,loginUser));
}

@PostMapping("/privateToPublic")
@ApiOperation(value = "私有库变共有库")
public AjaxResult privateToPublic(@RequestBody ModelsVo modelsVo) throws Exception {


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

@@ -7,6 +7,7 @@ import com.ruoyi.platform.domain.ModelsVersion;
import com.ruoyi.platform.vo.ModelDependency1TreeVo;
import com.ruoyi.platform.vo.ModelsVo;
import com.ruoyi.platform.vo.QueryModelMetricsVo;
import com.ruoyi.system.api.model.LoginUser;
import org.springframework.core.io.InputStreamResource;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
@@ -128,4 +129,6 @@ public interface ModelsService {
String getNextVersion(ModelsVersion modelsVersion) throws Exception;

void privateToPublic(ModelsVo modelsVo) throws Exception;

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

+ 48
- 0
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.utils.*;
import com.ruoyi.platform.vo.*;
import com.ruoyi.system.api.RemoteInfoPublishService;
import com.ruoyi.system.api.constant.Constant;
import com.ruoyi.system.api.domain.NewSysNotificationParamsVo;
import com.ruoyi.system.api.model.LoginUser;
import io.minio.messages.Item;
import org.apache.commons.io.FileUtils;
@@ -101,6 +103,12 @@ public class ModelsServiceImpl implements ModelsService {
@Resource
private AssetWorkflowDao assetWorkflowDao;

@Resource
private ApprovalInfoMapper approvalInfoMapper;

@Resource
private RemoteInfoPublishService remoteInfoPublishService;

// 固定存储桶名
@Value("${minio.dataReleaseBucketName}")
private String bucketName;
@@ -1385,6 +1393,46 @@ public class ModelsServiceImpl implements ModelsService {
gitService.updateProjectDetail(param,modelsVo.getOwner(),modelsVo.getIdentifier(),token);
}


@Override
public String publish(ModelsVo modelsVo, LoginUser loginUser) throws Exception {
Set<String> roles = loginUser.getRoles();
if (roles.contains("admin")) {
//无需审批,直接通过
return "发布成功";
}
ModelsVo modelsVotDesc = getModelDetail(modelsVo.getId(), modelsVo.getIdentifier(),modelsVo.getOwner(),modelsVo.getVersion(), false);
String username = loginUser.getUsername();
Long userid = loginUser.getUserid();
ApprovalRequest approvalRequest = new ApprovalRequest();
approvalRequest.setApplicantName(username);
approvalRequest.setType(ApprovalType.MODEL.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, modelsVotDesc.getName());
String urlFormat = StrUtil.format(urlTemplate, modelsVotDesc.getId(), modelsVotDesc.getName(), modelsVotDesc.getOwner(), modelsVotDesc.getIdentifier(), modelsVotDesc.getIsPublic());

approvalRequest.setTitle(titleFormat);
approvalRequest.setUrl(urlFormat);
approvalRequest.setContent(JSON.toJSONString(modelsVotDesc));
approvalInfoMapper.insertApproval(approvalRequest);

com.ruoyi.system.api.domain.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+数字"格式的版本号并升级
*


+ 2
- 2
ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/NewDatasetServiceImpl.java View File

@@ -66,7 +66,7 @@ public class NewDatasetServiceImpl implements NewDatasetService {
private DevEnvironmentDao devEnvironmentDao;

@Resource
private ApprovalService approvalService;
private ApprovalInfoMapper approvalInfoMapper;

@Resource
private RemoteInfoPublishService remoteInfoPublishService;
@@ -742,7 +742,7 @@ public class NewDatasetServiceImpl implements NewDatasetService {
approvalRequest.setTitle(titleFormat);
approvalRequest.setUrl(urlFormat);
approvalRequest.setContent(JSON.toJSONString(newDatasetDesc));
approvalService.submit(approvalRequest);
approvalInfoMapper.insertApproval(approvalRequest);

NewSysNotificationParamsVo paramsVo = new NewSysNotificationParamsVo();
paramsVo.setContent(titleFormat);


Loading…
Cancel
Save