Răsfoiți Sursa

feat: 增加适配任务审批请求

黄资权 1 an în urmă
părinte
comite
995abdb7d5

+ 2 - 2
approve-api/src/main/java/com/dragonsoft/dcuc/approve/enumresources/ApproveTypeEnum.java

@@ -30,12 +30,12 @@ public enum ApproveTypeEnum implements ICodeEnum {
     /**
      * 业务任务
      */
-    BUSINESS("04", "业务任务"),
+    TASK("04", "业务任务"),
 
     /**
      * 其他
      */
-    OTHER("05", "其他");
+    OTHER("99", "其他");
 
     public final String value;
     public final String label;

+ 5 - 1
approve-api/src/main/java/com/dragonsoft/dcuc/approve/enumresources/BizTypeEnum.java

@@ -15,7 +15,11 @@ public enum BizTypeEnum implements ICodeEnum {
     /**
      * 权限
      */
-    AUTH("auth", "权限");
+    AUTH("auth", "权限"),
+    /**
+     * 任务
+     */
+    TASK("task", "任务");
 
     private final String value;
 

+ 7 - 0
approve-api/src/main/java/com/dragonsoft/dcuc/approve/enumresources/FlowTypeEnum.java

@@ -29,6 +29,11 @@ public enum FlowTypeEnum implements ICodeEnum {
      * 数据授权
      */
     DATA_AUTH("DATA_AUTH", "数据授权工作单", "资源资源"),
+
+    /**
+     * 业务任务
+     */
+    TASK("TASK", "业务任务", "任务"),
     /**
      * 其他
      */
@@ -86,6 +91,8 @@ public enum FlowTypeEnum implements ICodeEnum {
                 return ApproveTypeEnum.SERVICE;
             case APP_FUN_AUTH:
                 return ApproveTypeEnum.APP_FUNCTION;
+            case TASK:
+                return ApproveTypeEnum.TASK;
             case OTHER:
                 return ApproveTypeEnum.OTHER;
             default:

+ 1 - 1
approve-api/src/main/java/com/dragonsoft/dcuc/approve/model/req/v3/ZeroTrustApproveAuthInfoVO.java

@@ -17,7 +17,7 @@ import java.io.Serializable;
  * @author huangzqa
  * @date 2023/11/27
  */
-@ApiModel("创建审批请求")
+@ApiModel("权限审批请求信息")
 @Setter
 @Getter
 @ToString

+ 32 - 0
approve-api/src/main/java/com/dragonsoft/dcuc/approve/model/req/v3/ZeroTrustApproveTaskInfoVO.java

@@ -0,0 +1,32 @@
+package com.dragonsoft.dcuc.approve.model.req.v3;
+
+import com.dragonsoft.dcuc.approve.model.req.ResourceInfoReqVO;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+import lombok.ToString;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ *
+ * </p>
+ *
+ * @author huangzqa
+ * @date 2024/03/01
+ */
+@ApiModel("任务审批请求信息")
+@Setter
+@Getter
+@ToString
+public class ZeroTrustApproveTaskInfoVO implements Serializable {
+
+    @ApiModelProperty("警情编号")
+    private String jqbh;
+
+    @ApiModelProperty("案件编号")
+    private String ajbh;
+
+}

+ 44 - 2
approve-core-service/src/main/java/com/dragonsoft/dcuc/approve/business/api/impl/ApiV3ApproveBusinessImpl.java

@@ -16,6 +16,7 @@ import com.dragonsoft.dcuc.approve.model.req.ApprovalInfoReqVO;
 import com.dragonsoft.dcuc.approve.model.req.ResourceInfoReqVO;
 import com.dragonsoft.dcuc.approve.model.req.v3.ZeroTrustApproveAuthInfoVO;
 import com.dragonsoft.dcuc.approve.model.req.v3.ZeroTrustApproveCreateReqV3VO;
+import com.dragonsoft.dcuc.approve.model.req.v3.ZeroTrustApproveTaskInfoVO;
 import com.dragonsoft.dcuc.approve.model.resp.bim.ZeroTrustAppItemUserTokenInfoRespVO;
 import com.dragonsoft.dcuc.approve.model.resp.bim.ZeroTrustAppTokenInfoRespVO;
 import com.dragonsoft.dcuc.approve.model.vo.dcuc.ApiPoliceResultVo;
@@ -23,6 +24,7 @@ import com.dragonsoft.dcuc.approve.model.vo.dcuc.UserContactVo;
 import com.dragonsoft.duceap.base.entity.http.ResponseDTO;
 import com.dragonsoft.duceap.base.entity.http.ResponseStatus;
 import com.dragonsoft.duceap.base.entity.security.SecurityUser;
+import com.dragonsoft.duceap.base.exception.ApplicationException;
 import com.dragonsoft.duceap.base.utils.UserContextUtils;
 import com.dragonsoft.duceap.commons.util.date.DateConst;
 import com.dragonsoft.duceap.commons.util.date.DateUtils;
@@ -198,13 +200,29 @@ public class ApiV3ApproveBusinessImpl implements IApiV3ApproveBusiness {
         if (ObjectUtil.isNotNull(bizTypeObject)) {
             bizTypeEnum = EnumUtils.enumOf(BizTypeEnum.class, bizTypeObject.toString());
         }
-        if (bizTypeEnum == null) {
+        if (bizTypeObject == null) {
             return ResponseUtil.dtoFail("请传入业务类型");
         }
-        if (!bizTypeEnum.equals(BizTypeEnum.AUTH)) {
+        if (ObjectUtil.isNull(bizTypeEnum)) {
             return ResponseUtil.dtoFail(String.format("暂不支持该业务类型:%s", bizTypeObject));
         }
 
+        if (bizTypeEnum.equals(BizTypeEnum.AUTH)) {
+            return parseAuthApprovalInfoReqVO(approvalInfoReqVO, bizData);
+        } else if (bizTypeEnum.equals(BizTypeEnum.TASK)) {
+            return parseTaskApprovalInfoReqVO(approvalInfoReqVO, bizData);
+        }
+        throw new ApplicationException(String.format("暂无适配业务类型:%s", bizTypeEnum));
+    }
+
+    /**
+     * 转化权限类型
+     *
+     * @param approvalInfoReqVO 请求信息
+     * @param bizData           业务数据
+     * @return 转化后的数据
+     */
+    protected ResponseDTO<ApprovalInfoReqVO> parseAuthApprovalInfoReqVO(ApprovalInfoReqVO approvalInfoReqVO, final Map<String, Object> bizData) {
         final Object content = getBizData(bizData, ReqBizDataEnum.BIZ_CONTENT);
         final ZeroTrustApproveAuthInfoVO zeroTrustApproveAuthInfoVO = new ZeroTrustApproveAuthInfoVO();
         BeanUtil.copyProperties(content, zeroTrustApproveAuthInfoVO);
@@ -220,4 +238,28 @@ public class ApiV3ApproveBusinessImpl implements IApiV3ApproveBusiness {
         return ResponseUtil.newInstance(approvalInfoReqVO);
     }
 
+
+    /**
+     * 转化任务类型
+     *
+     * @param approvalInfoReqVO 请求信息
+     * @param bizData           业务数据
+     * @return 转化后的数据
+     */
+    protected ResponseDTO<ApprovalInfoReqVO> parseTaskApprovalInfoReqVO(ApprovalInfoReqVO approvalInfoReqVO, final Map<String, Object> bizData) {
+        final Object content = getBizData(bizData, ReqBizDataEnum.BIZ_CONTENT);
+        final ZeroTrustApproveTaskInfoVO zeroTrustApproveTaskInfoVO = new ZeroTrustApproveTaskInfoVO();
+        BeanUtil.copyProperties(content, zeroTrustApproveTaskInfoVO);
+        String jqbh = zeroTrustApproveTaskInfoVO.getJqbh();
+        String ajbh = zeroTrustApproveTaskInfoVO.getAjbh();
+        if (StrUtil.isAllBlank(jqbh, ajbh)) {
+            return ResponseUtil.dtoFail("警情编号、案件编号其中一个必填");
+        }
+        //todo 校验警情编号是否存在
+        //todo 校验案件编号是否存在
+
+        approvalInfoReqVO.setFlowType(FlowTypeEnum.TASK.getValue());
+
+        return ResponseUtil.newInstance(approvalInfoReqVO);
+    }
 }