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.配置节点



