# 接口文档中心

系统整合了swagger,并且实现了把多个系统的代码接口归集一起实现了展示,方便前端开发人员进行查看与调用。 有效提高前端与后端的集成成本。

对于后端开发时,只需要在对应在的功能上加上代码接口注释,通过授权即可把接口暴露出来,如下:


@Slf4j
@RestController
@RequestMapping("/bpm/core/bpmTask")
@Api(tags = "流程任务")
public class BpmTaskController extends BaseController<BpmTask> {

    @Autowired
    BpmTaskService bpmTaskService;

    @Autowired
    BpmDefService bpmDefService;

    @Autowired
    BpmInstService bpmInstService;

    @Override
    public BaseService getBaseService() {
        return bpmTaskService;
    }

    @Override
    public String getComment() {
        return "流程任务";
    }


    /**
     * 获取任务所有明细
     * @param taskId
     * @return
     */
    @GetMapping("getAllDetail")
    public BpmTaskDetail getAllDetail(@RequestParam String taskId){
        BpmTaskDetail detail=new BpmTaskDetail();
        BpmTask bpmTask=bpmTaskService.get(taskId);
        detail.setBpmTask(bpmTask);

        if(StringUtils.isNotEmpty(bpmTask.getDefId())){
            UserTaskConfig userTaskConfig=(UserTaskConfig)bpmDefService.getNodeConfig(bpmTask.getDefId(),bpmTask.getKey());
            detail.setTaskConfig(userTaskConfig);
        }
        if(StringUtils.isNotEmpty(bpmTask.getInstId())){
            BpmInst bpmInst=bpmInstService.get(bpmTask.getInstId());
            detail.setBpmInst(bpmInst);
        }
        if(StringUtils.isNotEmpty(bpmTask.getDefId())){
            BpmDef bpmDef=bpmDefService.get(bpmTask.getDefId());
            ProcessConfig processConfig=(ProcessConfig) bpmDefService.getNodeConfig(bpmTask.getDefId(),bpmDef.getKey());
            detail.setProcessConfig(processConfig);
        }
        return detail;
    }

    /**
     * 任务审批/回退
     * @param cmd
     * @return
     */
    @ApiOperation("任务审批/回退")
    @PostMapping("completeTask")
    public JsonResult completeTask(@ApiParam @RequestBody ProcessNextCmd cmd){
        ProcessHandleUtil.clearProcessCmd();
        ProcessHandleUtil.setProcessCmd(cmd);
        return bpmTaskService.completeTask(cmd);
    }

    /**
     * 保存单据的数据
     * @param formDataModel
     * @return
     */
    @ApiOperation("保存单据的数据")
    @PostMapping("saveFormData")
    public JsonResult saveFormData(@ApiParam @RequestBody FormDataModel formDataModel){
        JsonResult result=new JsonResult(true,"成功保存单据数据!");
        log.info(formDataModel.toString());
        return result;
    }

    /**
     * 更新任务状态
     * @param taskId
     * @param status
     * @return
     */
    @ApiOperation("更新状态")
    @PostMapping("updateStatus")
    public JsonResult updateStatus(@ApiParam @RequestParam("taskId") String taskId,@ApiParam @RequestParam("status") String status){
        JsonResult result=new JsonResult(true,"成功更新!");
        bpmTaskService.updateStatus(taskId,status);
        return result;
    }

}

在API中心即显示: