1. 业务开发

将文章增加审批功能
1、业务表增加 progress_status 字段
2、审批配置类编写及文章增加审核相关接口
3、@Progress 注解

1.1. 增加 progress_status 字段

在文章表增加 progress_status 字段

ALTER TABLE 业务表名 ADD COLUMN `progress_status`  varchar(50)  DEFAULT NULL COMMENT '进度状态' ;

progress_status对应的是progress_progress表中的progress_status字段

1.2. 审批配置类编写

/**
 * 审批配置管理控制层
 * 历史修订:<br/>
 */
@Api(value = "审批配置接口")
@Controller("approvalConfigAction")
@RequestMapping("/${ms.manager.path}/approval/config")
public class ConfigAction extends BaseAction{

      //具体审批配置增删改查业务代码实现

      /**
       * 审批流程可以在progress_progress_log表中获取
       * data_id对应关联业务的业务ID
       */
      @ApiOperation(value = "根据DataId,方案,栏目ID获取未审核的进度日志信息")
      @ApiImplicitParams({
              @ApiImplicitParam(name = "schemeName", value = "方案名称", required =true,paramType="query"),
              @ApiImplicitParam(name = "dataId", value = "编号", required =true,paramType="query")
      })
      @GetMapping("/getProgressLog")
      @ResponseBody
      public ResultData getProgressLog(HttpServletResponse response,HttpServletRequest request){
          //根据DataId,方案,栏目ID获取未审核的进度日志信息
      }

      /**
       * 审核日志
       * @param progressLog 进度日志实体
       */
      @PostMapping("/approval")
      @ResponseBody
      @LogAnn(title = "审核日志", businessType = BusinessTypeEnum.INSERT)
      @RequiresPermissions("approval:config:approval")
      public ResultData approval(@ModelAttribute @ApiIgnore ProgressLogEntity progressLog, HttpServletResponse response, HttpServletRequest request) {
             //修改审批日志的progress_status用来表示审核后的状态
      }


}

1.3. 文章类增加审核相关接口

/**
 * 提交审核
 */
@ApiImplicitParams({
    @ApiImplicitParam(name = "dataId", value = "文章ID", required = true, paramType = "query"),
    @ApiImplicitParam(name = "schemeName", value = "方案名称", required = true, paramType = "query"),
})
@PostMapping("/submit")
@ResponseBody
@RequiresPermissions("cms:content:submit")
public ResultData submit(String schemeName, String dataId, HttpServletResponse response, HttpServletRequest request) {
    //在progress_progress_log表中插入一条新的数据用来表示文章已进入审核状态
}


/**
 * 根据方案名称获取文章
 * @return
 */
@ApiOperation(value = "根据方案名称获取文章")
@GetMapping("/auditList")
@ResponseBody
public ResultData auditList(@ModelAttribute @ApiIgnore ContentBean content, HttpServletResponse response, HttpServletRequest request) {
    if (StringUtils.isEmpty(content.getSchemeName())) {
        return ResultData.build().error();
    }
    BasicUtil.startPage();
    // 根据审批配置进行权限过滤相关代码
    List<ContentEntity> contentList = contentBiz.list(queryWrapper);
    return ResultData.build().success(new EUListBean(contentList, (int) BasicUtil.endPage(contentList).getTotal()));
}

1.4. @Progress注解

可以快速的开发审批方面的业务

/**
 * 审批注解,在需要审核的方法上使用
 */
public @interface Progress {
    /**
     * 进度的方案名称
     * @return
     */
    String schemeName() ;
}

1.5. ProgressUtil方法

/**
* 完成进度,自动完成所有有进度的节点
* @param dataId  业务id
* @param sName 方案名称
* @param operator 操作人
*/
public static void complete(String dataId, String sName, String operator)


/**
* 获取当前进度
*
* @param dataId 业务id
* @param sName  方案名
* @return 当前进度数
*/
public static Integer getProgress(String dataId, String sName)

/**
* 获取所有节点日志
*
* @param dataId 业务id
* @param sName  方案名
* @return 日志实体数组
*/
public static List<ProgressLogEntity> queryProgressLog(String dataId, String sName)

1.6. 方案进度配置

使用流程:

1.新增方案

[!tip] 递增代表所有进度节点共享100%进度,等值递增进度至100%;赋值代表每个节点所指进度值不同,可以从第一个节点的10%进度跳转至第二个节点的80%进度。

2.增加方案对应的进度节点

3.配置节点

进度节点编辑

Copyright © mingsoft.net 2012-2022 all right reserved,powered by Gitbook该文件修订时间: 2023-11-08 16:23:08

results matching ""

    No results matching ""

    results matching ""

      No results matching ""