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