소스 검색

feature(权限自助申请列表和撤回更新操作接口开发): 权限自助申请列表和撤回更新操作接口开发

权限自助申请列表和撤回更新操作接口开发
mazq 4 년 전
부모
커밋
f3d866c9d4

+ 68 - 10
src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/selfauth/controller/SelfAuthAppLyController.java

@@ -1,24 +1,23 @@
 package com.dragoninfo.dcuc.authweb.restcontroller.selfauth.controller;
 
 import com.alibaba.fastjson.JSON;
-import com.dragoninfo.dcuc.auth.auth.dto.AppFunAuthApplyDTO;
-import com.dragoninfo.dcuc.auth.auth.dto.AppFunAuthResultDTO;
+import com.dragoninfo.dcuc.auth.auth.dto.*;
+import com.dragoninfo.dcuc.auth.auth.enumresources.WorkFlowSourceEnum;
 import com.dragoninfo.dcuc.auth.auth.facade.IFunAuthResultFacade;
-import com.dragoninfo.dcuc.auth.auth.facade.ISelfAuthApplyFacade;
-import com.dragoninfo.dcuc.authweb.restcontroller.selfauth.vo.AppFunAuthApplyVo;
-import com.dragoninfo.dcuc.authweb.restcontroller.selfauth.vo.AppFunAuthResultVo;
+import com.dragoninfo.dcuc.auth.auth.facade.IAuthApplyFacade;
+import com.dragoninfo.dcuc.authweb.restcontroller.selfauth.vo.*;
 import com.dragoninfo.duceap.core.response.Result;
 import com.dragonsoft.duceap.base.entity.http.ResponseStatus;
 import com.dragonsoft.duceap.core.search.Searchable;
+import com.dragonsoft.duceap.core.search.enums.SearchOperator;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
-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.data.domain.Page;
+import org.springframework.web.bind.annotation.*;
 
 import java.util.List;
 import java.util.stream.Collectors;
@@ -34,11 +33,45 @@ import java.util.stream.Collectors;
 public class SelfAuthAppLyController {
 
     @Autowired
-    ISelfAuthApplyFacade selfAuthApplyFacade;
+    IAuthApplyFacade selfAuthApplyFacade;
 
     @Autowired
     IFunAuthResultFacade appFunResultFacade;
 
+    @ApiOperation(value = "权限申请单列表")
+    @ApiImplicitParam(name = "searchable", value = "searchable 查询条件flowTitle like; applyType eq ;" +
+            "createTime ge (大于等于); createTime le (小于等于)时间格式:yyyy-MM-dd")
+    @PostMapping(value = "authApplySearch")
+    public Result<List<WorkFlowViewVo>> authApplySearch(Searchable searchable) {
+        if(null == searchable) {
+            searchable = Searchable.newSearchable();
+        }
+        searchable.addSearchFilter("applySource", SearchOperator.eq, WorkFlowSourceEnum.SELF_AUTH_APPLY.getValue());
+        Page<WorkFlowViewDTO> dtoPage = selfAuthApplyFacade.authApplySearch(searchable.toSearchDTO());
+        List<WorkFlowViewVo> viewVos = dtoPage.getContent().stream().map(item -> {
+            WorkFlowViewVo viewVo = new WorkFlowViewVo();
+            BeanUtils.copyProperties(item, viewVo);
+            return viewVo;
+        }).collect(Collectors.toList());
+        return Result.success(dtoPage.getTotalElements(), viewVos);
+    }
+
+    @ApiOperation(value = "权限申请单撤销")
+    @ApiImplicitParam(name = "id", value = "工单主键")
+    @GetMapping(value = "authApplyCancel")
+    public Result authApplyCancel(@RequestParam("id") String id) {
+        selfAuthApplyFacade.authApplyCancel(id);
+        return Result.success();
+    }
+
+    @ApiOperation(value = "权限申请单删除")
+    @ApiImplicitParam(name = "id", value = "工单主键")
+    @DeleteMapping(value = "authApplyDelete")
+    public Result authApplyDelete(@RequestParam("id") String id) {
+        selfAuthApplyFacade.authApplyDelete(id);
+        return Result.success();
+    }
+
 
     @ApiOperation(value = "应用功能授权申请保存")
     @PostMapping(value = "funApplySave")
@@ -57,6 +90,31 @@ public class SelfAuthAppLyController {
         return JSON.parseObject(jsonString, AppFunAuthApplyDTO.class);
     }
 
+    @ApiOperation(value = "应用功能权限申请详情")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "id", value = "工单主键"),
+            @ApiImplicitParam(name = "needFlowInfo", value = "needFlowInfo 是否需要查询工作流相关信息")
+    })
+    @GetMapping(value = "funApplyDetail")
+    public Result<FunApplyDetailVo> funApplyDetail(@RequestParam("id") String id,
+                                 @RequestParam(value = "needFlowInfo", required = false) Boolean needFlowInfo) {
+        if(null == needFlowInfo) {
+            needFlowInfo = false;
+        }
+        FunApplyDetailDTO detailDTO = selfAuthApplyFacade.funApplyDetail(id, needFlowInfo);
+        FunApplyDetailVo detailVo = new FunApplyDetailVo();
+        BeanUtils.copyProperties(detailDTO, detailVo);
+        return Result.success(detailVo);
+    }
+
+    @ApiOperation(value = "应用功能权限申请修改")
+    @PostMapping(value = "funApplyUpdate")
+    public Result funApplyUpdate(@RequestBody AppFunApplyUpdateVo vo){
+        AppFunApplyUpdateDTO updateDTO = new AppFunApplyUpdateDTO();
+        BeanUtils.copyProperties(vo, updateDTO);
+        selfAuthApplyFacade.funApplyUpdate(updateDTO);
+        return Result.success();
+    }
 
     @ApiOperation(value = "应用功能权限结果列表")
     @ApiImplicitParam(name = "searchable", value = "searchable 查询条件")

+ 51 - 0
src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/selfauth/vo/AppFunApplyUpdateVo.java

@@ -0,0 +1,51 @@
+package com.dragoninfo.dcuc.authweb.restcontroller.selfauth.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @author mazq
+ * @date 2021/7/14
+ */
+@ApiModel("应用功能工单更新操作Vo")
+@Data
+public class AppFunApplyUpdateVo {
+
+    @ApiModelProperty(value = "工单id")
+    private String id;
+
+    @ApiModelProperty(value = "审批内容")
+    private String flowContent;
+
+    @ApiModelProperty(value = "申请理由")
+    private String applyReason;
+
+    @ApiModelProperty(value = "申请人联系方式")
+    private String applicantPhoneNo;
+
+    @ApiModelProperty(value = "权限有效起始时间(2020-01-01 00:00:00)")
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    private Date startTime;
+
+    @ApiModelProperty(value = "权限有效终止时间(2020-01-01 00:00:00)")
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    private Date endTime;
+
+    @ApiModelProperty(value = "权限有效类型 01:自定义 | 02:长期")
+    private String permissionValidType;
+
+    @ApiModelProperty(value = "操作类型 1:保存  2:提交")
+    private String operateType;
+
+    @ApiModelProperty(value = "修改后的应用菜单和功能集合")
+    private List<AppFunAuthResourceVo> resourceInfos;
+
+}

+ 6 - 6
src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/selfauth/vo/AppFunAuthResourceVo.java

@@ -18,13 +18,13 @@ public class AppFunAuthResourceVo {
     @ApiModelProperty(value = "应用名称")
     private String appName;
 
-    @ApiModelProperty(value = "功能id,多个使用','隔开")
-    private String funIds;
+    @ApiModelProperty(value = "功能id")
+    private String funId;
 
-    @ApiModelProperty(value = "功能code,多个使用','隔开")
-    private String funCodes;
+    @ApiModelProperty(value = "功能code")
+    private String funCode;
 
-    @ApiModelProperty(value = "功能名称,多个使用','隔开")
-    private String funNames;
+    @ApiModelProperty(value = "功能名称")
+    private String funName;
 
 }

+ 21 - 0
src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/selfauth/vo/FlowPictureVo.java

@@ -0,0 +1,21 @@
+package com.dragoninfo.dcuc.authweb.restcontroller.selfauth.vo;
+
+import com.alibaba.fastjson.JSONArray;
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+/**
+ * @author mazq
+ * @date 2021/7/14
+ */
+@ApiModel(value = "工作流流程图详情")
+@Data
+public class FlowPictureVo {
+
+    private JSONArray data;
+
+    private String json;
+
+    private String processDefinitionId;
+
+}

+ 17 - 0
src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/selfauth/vo/FlowStatusVo.java

@@ -0,0 +1,17 @@
+package com.dragoninfo.dcuc.authweb.restcontroller.selfauth.vo;
+
+import com.alibaba.fastjson.JSONArray;
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+/**
+ * @author mazq
+ * @date 2021/7/14
+ */
+@ApiModel(value = "工作流流程状态详情")
+@Data
+public class FlowStatusVo {
+
+    private JSONArray jsonArray;
+
+}

+ 29 - 0
src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/selfauth/vo/FunApplyDetailVo.java

@@ -0,0 +1,29 @@
+package com.dragoninfo.dcuc.authweb.restcontroller.selfauth.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author mazq
+ * @date 2021/7/14
+ */
+@ApiModel(value = "应用功能申请详情Vo")
+@Data
+public class FunApplyDetailVo {
+
+    @ApiModelProperty(value = "工单详情")
+    private WorkFlowVo workFlow;
+
+    @ApiModelProperty(value = "申请授权资源Vo集合")
+    private List<AppFunAuthResourceVo> resourceInfos;
+
+    @ApiModelProperty(value = "工作流流程图详情 由审批中心提供")
+    private FlowPictureVo flowPictureInfo;
+
+    @ApiModelProperty(value = "工作流流程状态详情 由审批中心提供")
+    private FlowStatusVo flowStatusInfo;
+
+}

+ 40 - 0
src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/selfauth/vo/WorkFlowViewVo.java

@@ -0,0 +1,40 @@
+package com.dragoninfo.dcuc.authweb.restcontroller.selfauth.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @author mazq
+ * @date 2021/7/14
+ */
+@ApiModel(value = "权限申请工单列表Vo")
+@Data
+public class WorkFlowViewVo {
+
+
+    @ApiModelProperty(value = "主键id")
+    private String id;
+
+    @ApiModelProperty(value = "审批单标题")
+    private String flowTitle;
+
+    @ApiModelProperty(value = "审批类型")
+    private String applyType;
+
+    @ApiModelProperty(value = "创建时间")
+    private Date createTime;
+
+    @ApiModelProperty(value = "当前节点")
+    private String taskName;
+
+    @ApiModelProperty(value = "是否可以编辑")
+    private Boolean showEdit;
+
+    @ApiModelProperty(value = "是否可以撤回")
+    private Boolean showRecall;
+
+
+}

+ 15 - 12
src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/selfauth/vo/WorkFlowVo.java

@@ -16,7 +16,7 @@ import java.util.Date;
 @Data
 public class WorkFlowVo {
 
-    @ApiModelProperty(value = "流程审批号(申请单号)")
+    @ApiModelProperty(value = "审批单编号(申请单号)")
     private String applicantId;
 
     @ApiModelProperty(value = "申请人身份证号")
@@ -34,25 +34,28 @@ public class WorkFlowVo {
     @ApiModelProperty(value = "申请人单位名称")
     private String applicantOrgName;
 
-    @ApiModelProperty(value = "申请内容")
-    private String applyContent;
-
-    @ApiModelProperty(value = "申请理由")
-    private String applyReason;
-
     @ApiModelProperty(value = "申请单来源平台")
     private String applySource;
 
-    @ApiModelProperty(value = "权限申请单类型")
-    private String flowType;
+    @ApiModelProperty(value = "权限申请单类型 对应类型:服务授权 功能授权  数据授权")
+    private String applyType;
+
+    @ApiModelProperty(value = "工作流标题")
+    private String flowTitle;
+
+    @ApiModelProperty(value = "审批内容")
+    private String flowContent;
+
+    @ApiModelProperty(value = "申请理由")
+    private String applyReason;
 
-    @ApiModelProperty(value = "流程标识码")
+    @ApiModelProperty(value = "流程标识码,审批中心提供")
     private String businessCode;
 
-    @ApiModelProperty(value = "流程类型")
+    @ApiModelProperty(value = "流程类型,审批中心提供,与businessCode对应取值")
     private String processType;
 
-    @ApiModelProperty(value = "流程名称")
+    @ApiModelProperty(value = "流程名称,审批中心提供,与businessCode对应取值")
     private String processName;
 
     @ApiModelProperty(value = "权限有效起始时间(2020-01-01 00:00:00)")