| @@ -4,7 +4,6 @@ import com.ruoyi.common.core.constant.SecurityConstants; | |||||
| import com.ruoyi.common.core.constant.ServiceNameConstants; | import com.ruoyi.common.core.constant.ServiceNameConstants; | ||||
| import com.ruoyi.common.core.domain.R; | import com.ruoyi.common.core.domain.R; | ||||
| import com.ruoyi.system.api.domain.NewSysNotificationParamsVo; | import com.ruoyi.system.api.domain.NewSysNotificationParamsVo; | ||||
| import com.ruoyi.system.api.domain.SysUser; | |||||
| import com.ruoyi.system.api.factory.RemoteInfoPublishFallbackFactory; | import com.ruoyi.system.api.factory.RemoteInfoPublishFallbackFactory; | ||||
| import com.ruoyi.system.api.model.LoginUser; | import com.ruoyi.system.api.model.LoginUser; | ||||
| import org.springframework.cloud.openfeign.FeignClient; | import org.springframework.cloud.openfeign.FeignClient; | ||||
| @@ -15,7 +14,7 @@ import org.springframework.web.bind.annotation.*; | |||||
| * | * | ||||
| * @author ruoyi | * @author ruoyi | ||||
| */ | */ | ||||
| @FeignClient(contextId = "remoteUserService", value = ServiceNameConstants.SYSTEM_SERVICE, fallbackFactory = RemoteInfoPublishFallbackFactory.class) | |||||
| @FeignClient(contextId = "remoteSysGnsWriterService", value = ServiceNameConstants.SYS_NOTIFICATION_WRITER, fallbackFactory = RemoteInfoPublishFallbackFactory.class) | |||||
| public interface RemoteInfoPublishService | public interface RemoteInfoPublishService | ||||
| { | { | ||||
| /** | /** | ||||
| @@ -24,6 +23,6 @@ public interface RemoteInfoPublishService | |||||
| * @param newSysNotificationParamsVo 系统通知 | * @param newSysNotificationParamsVo 系统通知 | ||||
| * @return 结果 | * @return 结果 | ||||
| */ | */ | ||||
| @PostMapping("/gns/notification/gitlink") | |||||
| @PostMapping("/notification/gitlink") | |||||
| public R<LoginUser> pushSysInfo(NewSysNotificationParamsVo newSysNotificationParamsVo); | public R<LoginUser> pushSysInfo(NewSysNotificationParamsVo newSysNotificationParamsVo); | ||||
| } | } | ||||
| @@ -23,4 +23,9 @@ public class ServiceNameConstants | |||||
| public static final String FILE_SERVICE = "ruoyi-file"; | public static final String FILE_SERVICE = "ruoyi-file"; | ||||
| public static final String MANAGEMENT_SERVICE = "management-platform"; | public static final String MANAGEMENT_SERVICE = "management-platform"; | ||||
| /** | |||||
| * 系统通知 | |||||
| */ | |||||
| public static final String SYS_NOTIFICATION_WRITER = "microservices-gns-writer"; | |||||
| } | } | ||||
| @@ -1,18 +1,18 @@ | |||||
| package com.ruoyi.platform.controller.approval; | package com.ruoyi.platform.controller.approval; | ||||
| import com.ruoyi.common.core.domain.R; | |||||
| import com.ruoyi.common.core.web.domain.AjaxResult; | import com.ruoyi.common.core.web.domain.AjaxResult; | ||||
| import com.ruoyi.common.security.utils.SecurityUtils; | |||||
| import com.ruoyi.platform.domain.ApprovalRequest; | import com.ruoyi.platform.domain.ApprovalRequest; | ||||
| import com.ruoyi.platform.service.ApprovalService; | import com.ruoyi.platform.service.ApprovalService; | ||||
| import com.ruoyi.platform.vo.NewDatasetVo; | |||||
| 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.web.bind.annotation.PostMapping; | |||||
| import org.springframework.web.bind.annotation.RequestBody; | |||||
| import org.springframework.web.bind.annotation.RequestMapping; | |||||
| import org.springframework.web.bind.annotation.RestController; | |||||
| import org.springframework.web.bind.annotation.*; | |||||
| import javax.annotation.Resource; | import javax.annotation.Resource; | ||||
| import java.util.List; | |||||
| @RestController | @RestController | ||||
| @RequestMapping("sysApproval") | @RequestMapping("sysApproval") | ||||
| @@ -22,12 +22,99 @@ public class SysApprovalController { | |||||
| @Resource | @Resource | ||||
| private ApprovalService approvalService; | private ApprovalService approvalService; | ||||
| @PostMapping("/publish") | |||||
| public AjaxResult publish(@RequestBody ApprovalRequest approvalRequest) { | |||||
| approvalService.publish(approvalRequest); | |||||
| /** | |||||
| * 申请人提交审批 | |||||
| * @param approvalRequest | |||||
| * @return | |||||
| */ | |||||
| @PostMapping("/submit") | |||||
| public AjaxResult submit(@RequestBody ApprovalRequest approvalRequest) { | |||||
| approvalService.submit(approvalRequest); | |||||
| return AjaxResult.success("审批完成"); | |||||
| } | |||||
| /** | |||||
| * 获取申请人申请列表 | |||||
| * @return | |||||
| */ | |||||
| @GetMapping("/my-apply") | |||||
| public R<List<ApprovalRequest>> getMyApplyList() { | |||||
| LoginUser loginUser = SecurityUtils.getLoginUser(); | |||||
| return R.ok(approvalService.getMyApplyList(loginUser)); | |||||
| } | |||||
| /** | |||||
| * 获取申请人已申请列表 | |||||
| * @return | |||||
| */ | |||||
| @GetMapping("/my-applied") | |||||
| public R<List<ApprovalRequest>> getMyAppliedList() { | |||||
| LoginUser loginUser = SecurityUtils.getLoginUser(); | |||||
| return R.ok(approvalService.getMyAppliedList(loginUser)); | |||||
| } | |||||
| /** | |||||
| * 获取申请人被拒绝列表 | |||||
| * @return | |||||
| */ | |||||
| @GetMapping("/my-rejected") | |||||
| public R<List<ApprovalRequest>> getMyRejectedList() { | |||||
| LoginUser loginUser = SecurityUtils.getLoginUser(); | |||||
| return R.ok(approvalService.getMyRejectedList(loginUser)); | |||||
| } | |||||
| /** | |||||
| * 审批人审批 | |||||
| * @param approval | |||||
| * @return | |||||
| */ | |||||
| @PostMapping("/approve") | |||||
| public AjaxResult approve(@RequestBody ApprovalRequest approval) { | |||||
| approvalService.approve(approval); | |||||
| return AjaxResult.success("审批完成"); | return AjaxResult.success("审批完成"); | ||||
| } | } | ||||
| /** | |||||
| * 审批人 | |||||
| * @param approval | |||||
| * @return | |||||
| */ | |||||
| @PostMapping("/reject") | |||||
| public AjaxResult reject(@RequestBody ApprovalRequest approval) { | |||||
| approvalService.reject(approval); | |||||
| return AjaxResult.success("审批完成"); | |||||
| } | |||||
| /** | |||||
| * 获取审批人审批列表 | |||||
| * @return | |||||
| */ | |||||
| @GetMapping("/my-approve") | |||||
| public R<List<ApprovalRequest>> getMyApproveList() { | |||||
| LoginUser loginUser = SecurityUtils.getLoginUser(); | |||||
| return R.ok(approvalService.getMyApproveList(loginUser)); | |||||
| } | |||||
| /** | |||||
| * 获取审批人待审批列表 | |||||
| * @return | |||||
| */ | |||||
| @GetMapping("/to-approve") | |||||
| public R<List<ApprovalRequest>> getToApproveList() { | |||||
| LoginUser loginUser = SecurityUtils.getLoginUser(); | |||||
| return R.ok(approvalService.getToApproveList(loginUser)); | |||||
| } | |||||
| /** | |||||
| * 获取审批人已审批列表 | |||||
| * @return | |||||
| */ | |||||
| @GetMapping("/approved") | |||||
| public R<List<ApprovalRequest>> getApprovedList() { | |||||
| LoginUser loginUser = SecurityUtils.getLoginUser(); | |||||
| return R.ok(approvalService.getApprovedList(loginUser)); | |||||
| } | |||||
| /** | /** | ||||
| * 新增审批单 | * 新增审批单 | ||||
| * | * | ||||
| @@ -0,0 +1,35 @@ | |||||
| package com.ruoyi.platform.domain; | |||||
| import com.fasterxml.jackson.databind.PropertyNamingStrategy; | |||||
| import com.fasterxml.jackson.databind.annotation.JsonNaming; | |||||
| import io.swagger.annotations.ApiModel; | |||||
| import io.swagger.annotations.ApiModelProperty; | |||||
| import lombok.Data; | |||||
| import java.util.Date; | |||||
| @Data | |||||
| @JsonNaming(PropertyNamingStrategy.SnakeCaseStrategy.class) | |||||
| @ApiModel(description = "审批") | |||||
| public class ApplyRequest { | |||||
| @ApiModelProperty(name = "status", value = "审批状态:0待审批;1已通过;2未通过") | |||||
| private Integer status; | |||||
| @ApiModelProperty(name = "applicantId",value = "申请人ID") | |||||
| private Long applicantId; | |||||
| @ApiModelProperty(name = "applicantTime",value = "申请时间") | |||||
| private Date applicantTime; | |||||
| @ApiModelProperty(name = "title",value = "审批标题") | |||||
| private String title; | |||||
| @ApiModelProperty(name = "type",value = "审批类型") | |||||
| private String type; | |||||
| @ApiModelProperty(name = "url",value = "内容详情链接") | |||||
| private String url; | |||||
| } | |||||
| @@ -0,0 +1,31 @@ | |||||
| package com.ruoyi.platform.domain; | |||||
| import com.fasterxml.jackson.databind.PropertyNamingStrategy; | |||||
| import com.fasterxml.jackson.databind.annotation.JsonNaming; | |||||
| import io.swagger.annotations.ApiModel; | |||||
| import io.swagger.annotations.ApiModelProperty; | |||||
| import lombok.Data; | |||||
| import java.util.Date; | |||||
| @Data | |||||
| @JsonNaming(PropertyNamingStrategy.SnakeCaseStrategy.class) | |||||
| @ApiModel(description = "审批") | |||||
| public class Approval { | |||||
| @ApiModelProperty(name = "status", value = "审批状态:0待审批;1已通过;2未通过") | |||||
| private Integer status; | |||||
| @ApiModelProperty(name = "result",value = "审批结果") | |||||
| private String result; | |||||
| @ApiModelProperty(name = "content",value = "审批内容") | |||||
| private String content; | |||||
| @ApiModelProperty(name = "approverId",value = "审批人ID") | |||||
| private Long approverId; | |||||
| @ApiModelProperty(name = "approverTime",value = "审批时间") | |||||
| private Date approverTime; | |||||
| } | |||||
| @@ -28,6 +28,9 @@ public class ApprovalRequest { | |||||
| @ApiModelProperty(name = "applicantId",value = "申请人ID") | @ApiModelProperty(name = "applicantId",value = "申请人ID") | ||||
| private Long applicantId; | private Long applicantId; | ||||
| @ApiModelProperty(name = "applicantName",value = "申请人名称") | |||||
| private String applicantName; | |||||
| @ApiModelProperty(name = "applicantTime",value = "申请时间") | @ApiModelProperty(name = "applicantTime",value = "申请时间") | ||||
| private Date applicantTime; | private Date applicantTime; | ||||
| @@ -4,13 +4,16 @@ package com.ruoyi.platform.domain; | |||||
| public enum ApprovalStatus { | public enum ApprovalStatus { | ||||
| PENDING(0,"待审批"), | PENDING(0,"待审批"), | ||||
| APPROVED(1,"已通过"), | APPROVED(1,"已通过"), | ||||
| REJECTED(2,"未通过"), | |||||
| REJECTED(2,"未通过") | |||||
| ; | ; | ||||
| private String description; | private String description; | ||||
| private Integer code; | private Integer code; | ||||
| ApprovalStatus(Integer code,String description) {} | |||||
| ApprovalStatus(Integer code,String description) { | |||||
| this.code = code; | |||||
| this.description = description; | |||||
| } | |||||
| public Integer getCode() { | public Integer getCode() { | ||||
| return code; | return code; | ||||
| @@ -18,6 +21,13 @@ public enum ApprovalStatus { | |||||
| public String getDescription() { | public String getDescription() { | ||||
| return description; | return description; | ||||
| } | } | ||||
| public static String getDescription(Integer code) { | |||||
| for (ApprovalStatus approvalStatus : ApprovalStatus.values()) { | |||||
| if (approvalStatus.getCode().equals(code)) { | |||||
| return approvalStatus.getDescription(); | |||||
| } | |||||
| } | |||||
| return null; | |||||
| } | |||||
| } | } | ||||
| @@ -0,0 +1,32 @@ | |||||
| package com.ruoyi.platform.domain; | |||||
| public enum ApprovalType { | |||||
| DATASET("DATASET","数据集"), | |||||
| MODEL("MODEL","模型") | |||||
| ; | |||||
| private String description; | |||||
| private String code; | |||||
| ApprovalType(String code, String description) { | |||||
| this.description = description; | |||||
| this.code = code; | |||||
| } | |||||
| public String getCode() { | |||||
| return code; | |||||
| } | |||||
| public String getDescription() { | |||||
| return description; | |||||
| } | |||||
| public static String getDescription(String code) { | |||||
| for (ApprovalType approvalType : ApprovalType.values()) { | |||||
| if (approvalType.getCode().equals(code)) { | |||||
| return approvalType.getDescription(); | |||||
| } | |||||
| } | |||||
| return null; | |||||
| } | |||||
| } | |||||
| @@ -0,0 +1,30 @@ | |||||
| package com.ruoyi.platform.mapper; | |||||
| import com.ruoyi.platform.domain.ApprovalRequest; | |||||
| import feign.Param; | |||||
| import java.util.List; | |||||
| /** | |||||
| * 参数配置 数据层 | |||||
| * | |||||
| * @author ruoyi | |||||
| */ | |||||
| public interface ApprovalInfoMapper | |||||
| { | |||||
| /** | |||||
| * 新增参数配置 | |||||
| * | |||||
| * @param approvalRequest 参数配置信息 | |||||
| * @return 结果 | |||||
| */ | |||||
| public int insertApproval(ApprovalRequest approvalRequest); | |||||
| public int updateApproval(ApprovalRequest approvalRequest); | |||||
| List<ApprovalRequest> selectMyApplyList(@Param("applicantId") Long userid,@Param("status") Integer status); | |||||
| List<ApprovalRequest> selectMyApproveList(@Param("approverId") Long userid,@Param("status") List<Integer> statusList); | |||||
| } | |||||
| @@ -1,11 +1,30 @@ | |||||
| package com.ruoyi.platform.service; | package com.ruoyi.platform.service; | ||||
| import com.ruoyi.platform.domain.ApprovalRequest; | import com.ruoyi.platform.domain.ApprovalRequest; | ||||
| import com.ruoyi.system.api.model.LoginUser; | |||||
| import java.util.List; | |||||
| public interface ApprovalService { | public interface ApprovalService { | ||||
| void publish(ApprovalRequest approvalRequest); | |||||
| void submit(ApprovalRequest approvalRequest); | |||||
| void add(ApprovalRequest approvalRequest); | void add(ApprovalRequest approvalRequest); | ||||
| void approve(ApprovalRequest approval); | |||||
| void reject(ApprovalRequest approval); | |||||
| List<ApprovalRequest> getMyAppliedList(LoginUser loginUser); | |||||
| List<ApprovalRequest> getMyRejectedList(LoginUser loginUser); | |||||
| List<ApprovalRequest> getMyApplyList(LoginUser loginUser); | |||||
| List<ApprovalRequest> getMyApproveList(LoginUser loginUser); | |||||
| List<ApprovalRequest> getToApproveList(LoginUser loginUser); | |||||
| List<ApprovalRequest> getApprovedList(LoginUser loginUser); | |||||
| } | } | ||||
| @@ -1,48 +1,150 @@ | |||||
| package com.ruoyi.platform.service.impl; | package com.ruoyi.platform.service.impl; | ||||
| import cn.hutool.core.bean.BeanUtil; | import cn.hutool.core.bean.BeanUtil; | ||||
| import com.alibaba.fastjson.JSON; | |||||
| import com.ruoyi.platform.domain.ApprovalRequest; | |||||
| import com.ruoyi.platform.domain.ApprovalStatus; | |||||
| import com.ruoyi.platform.domain.Models; | |||||
| import cn.hutool.core.collection.ListUtil; | |||||
| import cn.hutool.core.util.StrUtil; | |||||
| import com.ruoyi.platform.domain.*; | |||||
| import com.ruoyi.platform.mapper.ApprovalInfoMapper; | |||||
| import com.ruoyi.platform.service.ApprovalService; | import com.ruoyi.platform.service.ApprovalService; | ||||
| import com.ruoyi.platform.service.ModelsService; | import com.ruoyi.platform.service.ModelsService; | ||||
| import com.ruoyi.platform.service.NewDatasetService; | import com.ruoyi.platform.service.NewDatasetService; | ||||
| import com.ruoyi.platform.vo.NewDatasetVo; | import com.ruoyi.platform.vo.NewDatasetVo; | ||||
| import com.ruoyi.system.api.RemoteInfoPublishService; | |||||
| import com.ruoyi.system.api.domain.NewSysNotificationParamsVo; | import com.ruoyi.system.api.domain.NewSysNotificationParamsVo; | ||||
| import com.ruoyi.system.api.model.LoginUser; | |||||
| import org.slf4j.Logger; | import org.slf4j.Logger; | ||||
| import org.slf4j.LoggerFactory; | import org.slf4j.LoggerFactory; | ||||
| import org.springframework.stereotype.Service; | import org.springframework.stereotype.Service; | ||||
| import javax.annotation.Resource; | import javax.annotation.Resource; | ||||
| import java.util.List; | |||||
| @Service | @Service | ||||
| public class ApprovalServiceImpl implements ApprovalService { | public class ApprovalServiceImpl implements ApprovalService { | ||||
| private static final Logger logger = LoggerFactory.getLogger(ApprovalServiceImpl.class); | private static final Logger logger = LoggerFactory.getLogger(ApprovalServiceImpl.class); | ||||
| // @Resource | |||||
| // private NewDatasetService newDatasetService; | |||||
| // | |||||
| // @Resource | |||||
| // private ModelsService modelsService; | |||||
| @Resource | @Resource | ||||
| private NewDatasetService newDatasetService; | |||||
| private ApprovalInfoMapper approvalInfoMapper; | |||||
| @Resource | @Resource | ||||
| private ModelsService modelsService; | |||||
| private RemoteInfoPublishService infoPublishService; | |||||
| @Override | |||||
| public void submit(ApprovalRequest approvalRequest) { | |||||
| approvalInfoMapper.insertApproval(approvalRequest); | |||||
| } | |||||
| @Override | @Override | ||||
| public void publish(ApprovalRequest approvalRequest) { | |||||
| //推送结果给申请人 | |||||
| public void add(ApprovalRequest approvalRequest) { | |||||
| } | |||||
| @Override | |||||
| public void approve(ApprovalRequest approval) { | |||||
| approval.setStatus(ApprovalStatus.APPROVED.getCode()); | |||||
| //更改审批单状态 | |||||
| approvalInfoMapper.updateApproval(approval); | |||||
| //推送消息给申请人 | |||||
| NewSysNotificationParamsVo newSysNotificationParamsVo = new NewSysNotificationParamsVo(); | NewSysNotificationParamsVo newSysNotificationParamsVo = new NewSysNotificationParamsVo(); | ||||
| newSysNotificationParamsVo.setContent(JSON.toJSONString(approvalRequest)); | |||||
| newSysNotificationParamsVo.setSender(approvalRequest.getApproverId()); | |||||
| newSysNotificationParamsVo.setReceivers(approvalRequest.getApplicantId().toString()); | |||||
| String applyContentTemplate="<b>您</b>发布的{}<b>\"{}\"</b>{}审核已通过"; | |||||
| String appContentFormat = StrUtil.format(applyContentTemplate,ApprovalType.getDescription(approval.getType()) | |||||
| ,getModelNameByType(approval.getContent(),approval.getType())); | |||||
| newSysNotificationParamsVo.setType(2); | newSysNotificationParamsVo.setType(2); | ||||
| newSysNotificationParamsVo.setSender(approval.getApplicantId()); | |||||
| newSysNotificationParamsVo.setNotification_url(approval.getUrl()); | |||||
| newSysNotificationParamsVo.setReceivers(approval.getApproverId().toString()); | |||||
| newSysNotificationParamsVo.setContent(appContentFormat); | |||||
| infoPublishService.pushSysInfo(newSysNotificationParamsVo); | |||||
| //推送消息给审批人 | |||||
| NewSysNotificationParamsVo approveParamsVo = new NewSysNotificationParamsVo(); | |||||
| String contentTemplate="<b>{}</b>发布的{}<b>\"{}\"</b>{}审核已通过"; | |||||
| String contentFormat = StrUtil.format(contentTemplate,approval.getApplicantName(),ApprovalType.getDescription(approval.getType()) | |||||
| ,getModelNameByType(approval.getContent(),approval.getType())); | |||||
| approveParamsVo.setType(2); | |||||
| approveParamsVo.setContent(contentFormat); | |||||
| approveParamsVo.setSender(approval.getApproverId()); | |||||
| approveParamsVo.setNotification_url(approval.getUrl()); | |||||
| approveParamsVo.setReceivers(approval.getApplicantId().toString()); | |||||
| infoPublishService.pushSysInfo(newSysNotificationParamsVo); | |||||
| //审批通过,更改状态 | //审批通过,更改状态 | ||||
| updateStatus(approvalRequest); | |||||
| updateStatus(approval); | |||||
| } | } | ||||
| @Override | @Override | ||||
| public void add(ApprovalRequest approvalRequest) { | |||||
| public void reject(ApprovalRequest approval) { | |||||
| approval.setStatus(ApprovalStatus.APPROVED.getCode()); | |||||
| //更改审批单状态 | |||||
| approvalInfoMapper.updateApproval(approval); | |||||
| //推送消息给申请人 | |||||
| NewSysNotificationParamsVo newSysNotificationParamsVo = new NewSysNotificationParamsVo(); | |||||
| String applyContentTemplate="<b>您</b>发布的{}<b>\"{}\"</b>{}审核未通过"; | |||||
| String appContentFormat = StrUtil.format(applyContentTemplate,ApprovalType.getDescription(approval.getType()) | |||||
| ,getModelNameByType(approval.getContent(),approval.getType())); | |||||
| newSysNotificationParamsVo.setType(2); | |||||
| newSysNotificationParamsVo.setSender(approval.getApplicantId()); | |||||
| newSysNotificationParamsVo.setNotification_url(approval.getUrl()); | |||||
| newSysNotificationParamsVo.setReceivers(approval.getApproverId().toString()); | |||||
| newSysNotificationParamsVo.setContent(appContentFormat); | |||||
| infoPublishService.pushSysInfo(newSysNotificationParamsVo); | |||||
| //推送消息给审批人 | |||||
| NewSysNotificationParamsVo approveParamsVo = new NewSysNotificationParamsVo(); | |||||
| String contentTemplate="<b>{}</b>发布的{}<b>\"{}\"</b>{}审核未通过"; | |||||
| String contentFormat = StrUtil.format(contentTemplate,approval.getApplicantName(),ApprovalType.getDescription(approval.getType()) | |||||
| ,getModelNameByType(approval.getContent(),approval.getType())); | |||||
| approveParamsVo.setType(2); | |||||
| approveParamsVo.setContent(contentFormat); | |||||
| approveParamsVo.setSender(approval.getApproverId()); | |||||
| approveParamsVo.setNotification_url(approval.getUrl()); | |||||
| approveParamsVo.setReceivers(approval.getApplicantId().toString()); | |||||
| infoPublishService.pushSysInfo(newSysNotificationParamsVo); | |||||
| } | |||||
| @Override | |||||
| public List<ApprovalRequest> getMyAppliedList(LoginUser loginUser) { | |||||
| return approvalInfoMapper.selectMyApplyList(loginUser.getUserid(), ApprovalStatus.PENDING.getCode()); | |||||
| } | |||||
| @Override | |||||
| public List<ApprovalRequest> getMyRejectedList(LoginUser loginUser) { | |||||
| return approvalInfoMapper.selectMyApplyList(loginUser.getUserid(), ApprovalStatus.REJECTED.getCode()); | |||||
| } | |||||
| @Override | |||||
| public List<ApprovalRequest> getMyApplyList(LoginUser loginUser) { | |||||
| return approvalInfoMapper.selectMyApplyList(loginUser.getUserid(), null); | |||||
| } | |||||
| @Override | |||||
| public List<ApprovalRequest> getMyApproveList(LoginUser loginUser) { | |||||
| return approvalInfoMapper.selectMyApproveList(loginUser.getUserid(), null); | |||||
| } | |||||
| @Override | |||||
| public List<ApprovalRequest> getToApproveList(LoginUser loginUser) { | |||||
| return approvalInfoMapper.selectMyApproveList(loginUser.getUserid(), ListUtil.toList(ApprovalStatus.PENDING.getCode())); | |||||
| } | |||||
| @Override | |||||
| public List<ApprovalRequest> getApprovedList(LoginUser loginUser) { | |||||
| return approvalInfoMapper.selectMyApproveList(loginUser.getUserid(), ListUtil.toList(ApprovalStatus.REJECTED.getCode(), ApprovalStatus.APPROVED.getCode())); | |||||
| } | } | ||||
| private void updateStatus(ApprovalRequest approvalRequest) { | private void updateStatus(ApprovalRequest approvalRequest) { | ||||
| @@ -52,16 +154,28 @@ public class ApprovalServiceImpl implements ApprovalService { | |||||
| case "DATASET": | case "DATASET": | ||||
| NewDatasetVo dataset = BeanUtil.toBean(content, NewDatasetVo.class); | NewDatasetVo dataset = BeanUtil.toBean(content, NewDatasetVo.class); | ||||
| try { | try { | ||||
| newDatasetService.updateVersionDesc(dataset); | |||||
| }catch (Exception e){ | |||||
| // newDatasetService.updateVersionDesc(dataset); | |||||
| } catch (Exception e) { | |||||
| logger.error(e.getMessage()); | logger.error(e.getMessage()); | ||||
| } | } | ||||
| break; | break; | ||||
| case "MODEL": | case "MODEL": | ||||
| Models models = BeanUtil.toBean(content, Models.class); | Models models = BeanUtil.toBean(content, Models.class); | ||||
| modelsService.update(models); | |||||
| // modelsService.update(models); | |||||
| break; | break; | ||||
| } | } | ||||
| } | } | ||||
| } | } | ||||
| private String getModelNameByType(String content,String type) { | |||||
| if (ApprovalType.DATASET.getCode().equals(type)) { | |||||
| NewDatasetVo newDatasetVo = BeanUtil.toBean(content, NewDatasetVo.class); | |||||
| return newDatasetVo.getName(); | |||||
| } | |||||
| if (ApprovalType.MODEL.getCode().equals(type)) { | |||||
| Models models = BeanUtil.toBean(content, Models.class); | |||||
| return models.getName(); | |||||
| } | |||||
| return null; | |||||
| } | |||||
| } | } | ||||
| @@ -1,5 +1,6 @@ | |||||
| package com.ruoyi.platform.service.impl; | package com.ruoyi.platform.service.impl; | ||||
| import cn.hutool.core.date.DateUtil; | |||||
| import cn.hutool.core.util.IdUtil; | import cn.hutool.core.util.IdUtil; | ||||
| import cn.hutool.core.util.StrUtil; | import cn.hutool.core.util.StrUtil; | ||||
| import com.alibaba.fastjson2.JSON; | import com.alibaba.fastjson2.JSON; | ||||
| @@ -7,11 +8,13 @@ import com.ruoyi.common.core.utils.DateUtils; | |||||
| import com.ruoyi.common.security.utils.SecurityUtils; | import com.ruoyi.common.security.utils.SecurityUtils; | ||||
| import com.ruoyi.platform.domain.*; | import com.ruoyi.platform.domain.*; | ||||
| import com.ruoyi.platform.mapper.*; | import com.ruoyi.platform.mapper.*; | ||||
| import com.ruoyi.platform.service.ApprovalService; | |||||
| import com.ruoyi.platform.service.DatasetTempStorageService; | import com.ruoyi.platform.service.DatasetTempStorageService; | ||||
| import com.ruoyi.platform.service.GitService; | import com.ruoyi.platform.service.GitService; | ||||
| import com.ruoyi.platform.service.NewDatasetService; | import com.ruoyi.platform.service.NewDatasetService; | ||||
| 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.model.LoginUser; | import com.ruoyi.system.api.model.LoginUser; | ||||
| import org.apache.commons.io.FileUtils; | import org.apache.commons.io.FileUtils; | ||||
| @@ -64,6 +67,12 @@ public class NewDatasetServiceImpl implements NewDatasetService { | |||||
| @Resource | @Resource | ||||
| private DevEnvironmentDao devEnvironmentDao; | private DevEnvironmentDao devEnvironmentDao; | ||||
| @Resource | |||||
| private ApprovalService approvalService; | |||||
| @Resource | |||||
| private RemoteInfoPublishService remoteInfoPublishService; | |||||
| @Value("${spring.redis.host}") | @Value("${spring.redis.host}") | ||||
| private String redisHost; | private String redisHost; | ||||
| @Value("${spring.redis.port}") | @Value("${spring.redis.port}") | ||||
| @@ -717,19 +726,30 @@ public class NewDatasetServiceImpl implements NewDatasetService { | |||||
| String username = loginUser.getUsername(); | String username = loginUser.getUsername(); | ||||
| Long userid = loginUser.getUserid(); | Long userid = loginUser.getUserid(); | ||||
| ApprovalRequest approvalRequest = new ApprovalRequest(); | ApprovalRequest approvalRequest = new ApprovalRequest(); | ||||
| approvalRequest.setType("DATASET"); | |||||
| approvalRequest.setApplicantName(username); | |||||
| approvalRequest.setType(ApprovalType.DATASET.getCode()); | |||||
| approvalRequest.setApplicantId(userid); | approvalRequest.setApplicantId(userid); | ||||
| approvalRequest.setContent(JSON.toJSONString(datasetVo)); | |||||
| approvalRequest.setStatus(ApprovalStatus.PENDING.getCode()); | approvalRequest.setStatus(ApprovalStatus.PENDING.getCode()); | ||||
| String title = username + "发布的数据集\"" + datasetVo.getIdentifier() + "\"需要审核,请查看"; | |||||
| approvalRequest.setTitle(title); | |||||
| String titleTemplate="<b>{}</b>发布的数据集<b>\"{}\"</b>需要审核,请查看"; | |||||
| String urlTemplate = "/dataset/dataset/info/{}?name={}&owner={}&identifier={}&is_public={}"; | |||||
| String titleFormat = StrUtil.format(titleTemplate, username,datasetVo.getIdentifier()); | |||||
| String urlFormat = StrUtil.format(urlTemplate, datasetVo.getId(), datasetVo.getName(), datasetVo.getOwner(), datasetVo.getIdentifier(), datasetVo.getIsPublic()); | |||||
| approvalRequest.setTitle(titleFormat); | |||||
| approvalRequest.setUrl(urlFormat); | |||||
| // approvalRequest.setApplicantTime(new Date()); | |||||
| approvalRequest.setContent(JSON.toJSONString(datasetVo)); | |||||
| approvalService.submit(approvalRequest); | |||||
| NewSysNotificationParamsVo paramsVo = new NewSysNotificationParamsVo(); | NewSysNotificationParamsVo paramsVo = new NewSysNotificationParamsVo(); | ||||
| paramsVo.setContent(title); | |||||
| paramsVo.setReceivers("1313"); | |||||
| paramsVo.setContent(titleFormat); | |||||
| paramsVo.setReceivers("1"); | |||||
| paramsVo.setSender(userid); | paramsVo.setSender(userid); | ||||
| paramsVo.setType(2); | paramsVo.setType(2); | ||||
| paramsVo.setNotification_url("/system/approval"); | paramsVo.setNotification_url("/system/approval"); | ||||
| // remoteInfoPublishService.pushSysInfo(paramsVo); | |||||
| return "发布成功"; | return "发布成功"; | ||||
| } | } | ||||
| @@ -0,0 +1,139 @@ | |||||
| <?xml version="1.0" encoding="UTF-8" ?> | |||||
| <!DOCTYPE mapper | |||||
| PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" | |||||
| "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> | |||||
| <mapper namespace="com.ruoyi.platform.mapper.ApprovalInfoMapper"> | |||||
| <resultMap type="com.ruoyi.platform.domain.ApprovalRequest" id="SysConfigResult"> | |||||
| <id property="id" column="id" /> | |||||
| <result property="status" column="status" /> | |||||
| <result property="result" column="result" /> | |||||
| <result property="content" column="content" /> | |||||
| <result property="applicantId" column="applicant_id" /> | |||||
| <result property="applicantTime" column="applicant_time" jdbcType="TIMESTAMP" /> | |||||
| <result property="applicantName" column="applicant_name" /> | |||||
| <result property="approverId" column="approver_id" /> | |||||
| <result property="approverTime" column="approver_time" jdbcType="TIMESTAMP" /> | |||||
| <result property="title" column="title" /> | |||||
| <result property="type" column="type" /> | |||||
| <result property="url" column="url" /> | |||||
| </resultMap> | |||||
| <sql id="selectApprovalRequestVo"> | |||||
| select id, status, result, content, applicant_id, applicant_time,applicant_name, approver_id, approver_time, title, type ,url | |||||
| from approval_info | |||||
| </sql> | |||||
| <insert id="insertApproval" parameterType="com.ruoyi.platform.domain.ApprovalRequest" useGeneratedKeys="true" keyProperty="id"> | |||||
| insert into approval_info( | |||||
| <if test="status != null ">status,</if> | |||||
| <if test="result != null and result != ''">result,</if> | |||||
| <if test="content != null and content != ''">content,</if> | |||||
| <if test="applicantTime != null">applicant_time,</if> | |||||
| <if test="applicantId != null and applicantId != ''">applicant_id,</if> | |||||
| <if test="approverId != null and approverId != ''">approverId,</if> | |||||
| <if test="title != null and title != ''">title,</if> | |||||
| <if test="type != null and type != ''">type,</if> | |||||
| <if test="url != null and url != ''">url,</if> | |||||
| approver_time | |||||
| )values( | |||||
| <if test="status != null">#{status},</if> | |||||
| <if test="result != null and result != ''">#{result},</if> | |||||
| <if test="content != null and content != ''">#{content},</if> | |||||
| <if test="applicantId != null and applicantId != ''">#{applicantId},</if> | |||||
| <if test="approverId != null and approverId != ''">#{approverId},</if> | |||||
| <if test="approverTime != null">#{approverTime},</if> | |||||
| <if test="title != null and title != ''">#{title},</if> | |||||
| <if test="type != null and type != ''">#{type},</if> | |||||
| <if test="url != null and url != ''">#{url},</if> | |||||
| sysdate() | |||||
| ) | |||||
| </insert> | |||||
| <!-- <insert id="insertApproval" parameterType="com.ruoyi.platform.domain.ApprovalRequest" useGeneratedKeys="true" keyProperty="id">--> | |||||
| <!-- insert into approval_info (--> | |||||
| <!-- <if test="status != null and status != '' ">status,</if>--> | |||||
| <!-- <if test="result != null and result != '' ">result,</if>--> | |||||
| <!-- <if test="content != null and content != '' ">content,</if>--> | |||||
| <!-- <if test="applicantId != null and applicantId != '' ">applicant_id,</if>--> | |||||
| <!-- <if test="applicantTime != null ">applicant_time,</if>--> | |||||
| <!-- <if test="applicantName != null and applicantName != ''">applicant_name,</if>--> | |||||
| <!-- <if test="approverId != null and approverId != ''">approver_id,</if>--> | |||||
| <!-- <if test="approverTime != null ">approver_time,</if>--> | |||||
| <!-- <if test="title != null and title != ''">title,</if>--> | |||||
| <!-- <if test="type != null and type != ''">type,</if>--> | |||||
| <!-- <if test="url != null and url != ''">url,</if>--> | |||||
| <!-- )values(--> | |||||
| <!-- <if test="status != null and status != ''">#{status},</if>--> | |||||
| <!-- <if test="result != null and result != ''">#{result},</if>--> | |||||
| <!-- <if test="content != null and content != ''">#{content},</if>--> | |||||
| <!-- <if test="applicantId != null and applicantId != ''">#{applicantId},</if>--> | |||||
| <!-- <if test="applicantTime != null ">#{applicantTime},</if>--> | |||||
| <!-- <if test="applicantName != null and applicantName != ''">#{applicantName},</if>--> | |||||
| <!-- <if test="approverId != null and approverId != ''">#{approverId},</if>--> | |||||
| <!-- <if test="approverTime != null ">#{approverTime},</if>--> | |||||
| <!-- <if test="title != null and title != ''">#{title},</if>--> | |||||
| <!-- <if test="type != null and type != ''">#{type},</if>--> | |||||
| <!-- <if test="url != null and url != ''">#{url},</if>--> | |||||
| <!-- )--> | |||||
| <!-- </insert>--> | |||||
| <update id="updateApproval" parameterType="com.ruoyi.platform.domain.ApprovalRequest"> | |||||
| update approval_info | |||||
| <set> | |||||
| <if test="status != null and status != ''">status = #{status},</if> | |||||
| <if test="result != null and result != ''">result = #{result},</if> | |||||
| <if test="content != null and content != ''">content = #{content},</if> | |||||
| <if test="applicantId != null and applicantId != ''">applicant_id = #{applicantId},</if> | |||||
| <if test="applicantTime != null ">applicant_time = #{applicantTime},</if> | |||||
| <if test="applicantName != null and applicantName != ''">applicant_name = #{applicantName},</if> | |||||
| <if test="approverId != null">approver_id = #{approverId},</if> | |||||
| <if test="approverTime != null">approver_time = #{approverTime},</if> | |||||
| <if test="title != null">title = #{title},</if> | |||||
| <if test="type != null">type = #{type},</if> | |||||
| <if test="url != null">url = #{url},</if> | |||||
| </set> | |||||
| where id = #{id} | |||||
| </update> | |||||
| <select id="selectMyApplyList" resultMap="SysConfigResult"> | |||||
| <include refid="selectApprovalRequestVo"/> | |||||
| <where> | |||||
| <if test="applicantId != null and applicantId != ''"> | |||||
| AND applicant_id = #{applicantId} | |||||
| </if> | |||||
| <if test="status != null and status != ''"> | |||||
| AND status = #{status} | |||||
| </if> | |||||
| </where> | |||||
| </select> | |||||
| <select id="selectMyApproveList" resultMap="SysConfigResult"> | |||||
| <include refid="selectApprovalRequestVo"/> | |||||
| <where> | |||||
| <if test="approverId != null and approverId != ''"> | |||||
| AND approver_id = #{approverId} | |||||
| </if> | |||||
| <if test="status != null and status != ''"> | |||||
| AND status in | |||||
| <foreach collection="array" item="status" open="(" separator="," close=")"> | |||||
| #{status} | |||||
| </foreach> | |||||
| </if> | |||||
| </where> | |||||
| </select> | |||||
| <delete id="deleteConfigById" parameterType="Long"> | |||||
| delete from sys_config where config_id = #{configId} | |||||
| </delete> | |||||
| <delete id="deleteConfigByIds" parameterType="Long"> | |||||
| delete from sys_config where config_id in | |||||
| <foreach item="configId" collection="array" open="(" separator="," close=")"> | |||||
| #{configId} | |||||
| </foreach> | |||||
| </delete> | |||||
| </mapper> | |||||