BpmFlowCollectController.java 5.62 KB
package com.hotent.runtime.controller;


import com.hotent.base.annotation.ApiGroup;
import com.hotent.base.constants.ApiGroupConsts;
import com.hotent.base.query.PageBean;
import com.hotent.base.query.PageList;
import com.hotent.base.query.QueryField;
import com.hotent.base.query.QueryFilter;
import com.hotent.bpm.persistence.model.DefaultBpmDefinition;
import com.hotent.uc.api.impl.util.ContextUtil;
import io.swagger.annotations.Api;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import com.hotent.base.model.CommonResult;
import com.hotent.base.util.StringUtil;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.web.bind.annotation.RestController;
import com.hotent.base.controller.BaseController;
import com.hotent.runtime.model.BpmFlowCollect;
import com.hotent.runtime.manager.BpmFlowCollectManager;

import java.util.List;
import java.util.Map;

/**
 * 流程收藏记录 前端控制器
 *
 * @company 广州宏天软件股份有限公司
 * @author zengst
 * @since 2021-09-24
 */
@RestController
@RequestMapping("/bpmFlowCollect/v1/")
@Api(tags = "流程收藏")
@ApiGroup(group= {ApiGroupConsts.GROUP_BPM})
public class BpmFlowCollectController extends BaseController<BpmFlowCollectManager, BpmFlowCollect> {

	/**
	 * 根据id获取流程收藏记录数据详情
	 * @param id
	 * @return
	 * @throws Exception 
	 * ModelAndView
	 */
	@GetMapping(value="/getDetail", produces = {"application/json; charset=utf-8"})
	@ApiOperation(value="根据id获取流程收藏记录数据详情",httpMethod = "GET",notes = "根据id获取流程收藏记录数据详情")
	public CommonResult<BpmFlowCollect> getDetail(@ApiParam(name="id",value="业务对象主键", required = true)@RequestParam(required=true) String id) throws Exception{
		return CommonResult.<BpmFlowCollect>ok().value(baseService.getDetail(id));
	}
    /**
	 * 新增,更新流程收藏记录
	 * @param bpmFlowCollect
	 * @throws Exception 
	 * @return
	 * @exception 
	 */
	@PostMapping(value="/save", produces = {"application/json; charset=utf-8"})
	@ApiOperation(value = "新增,更新流程收藏记录数据", httpMethod = "POST", notes = "新增,更新流程收藏记录数据")
	public CommonResult<String> save(@ApiParam(name="BpmFlowCollect",value="流程收藏记录对象", required = true)@RequestBody BpmFlowCollect bpmFlowCollect) throws Exception{
		String msg = StringUtil.isEmpty(bpmFlowCollect.getId()) ? "添加流程收藏记录成功" : "更新流程收藏记录成功";
		baseService.createOrUpdate(bpmFlowCollect);
		return CommonResult.<String>ok().message(msg);
	}

	@PostMapping(value = "bookmark", produces = {"application/json; charset=utf-8"})
	@ApiOperation(value = "收藏流程", httpMethod = "POST", notes = "收藏流程")
	public CommonResult<String> bookmark(@ApiParam(name = "defKey", value = "流程定义key", required = true) @RequestBody String defKey) {
		baseService.bookmark(defKey);
		return new CommonResult<>(true, "收藏成功");
	}

	@PostMapping(value = "cancel", produces = {"application/json; charset=utf-8"})
	@ApiOperation(value = "取消收藏流程", httpMethod = "POST", notes = "取消收藏流程")
	public CommonResult<String> cancel(@ApiParam(name = "defKey", value = "流程定义key", required = true) @RequestBody String defKey) {
		baseService.cancel(defKey);
		return new CommonResult<>(true, "取消收藏成功");
	}

	@PostMapping(value = "myCollect", produces = {"application/json; charset=utf-8"})
	@ApiOperation(value = "获取我收藏的流程", httpMethod = "POST", notes = "获取我收藏的流程")
	public CommonResult<PageList<DefaultBpmDefinition>> myCollection(@ApiParam(name = "queryFilter", required = true, value = "通用查询条件") @RequestBody QueryFilter<DefaultBpmDefinition> queryFilter)throws Exception {
		return new CommonResult<>(true, "获取成功", baseService.myCollectFlow(queryFilter));
	}

    @GetMapping(value = "myCollectShowButton", produces = {"application/json; charset=utf-8"})
    @ApiOperation(value = "获取我收藏的流程时,是否有未配置移动表单", httpMethod = "GET", notes = "获取我收藏的流程时,是否有未配置移动表单")
    public CommonResult<Boolean> myCollectShowButton() throws Exception {
        QueryFilter<DefaultBpmDefinition> queryFilter = QueryFilter.build();
        queryFilter.addQueryField(new QueryField("SUPPORT_MOBILE_",0));
        queryFilter.setPageBean(new PageBean(1,0));
        PageList<DefaultBpmDefinition> queryList = baseService.myCollectFlow(queryFilter);
        return CommonResult.success(queryList.getTotal() > Long.valueOf("0"));
    }

	@PostMapping(value = "myCollectCount", produces = {"application/json; charset=utf-8"})
	@ApiOperation(value = "获取我的收藏分类数量", httpMethod = "GET", notes = "获取我的收藏分类数量")
	public List<Map<String, Object>> myCollectCount(@ApiParam(required = true, name = "queryFilter", value = "查询参数对象") @RequestBody QueryFilter queryFilter) {
		return baseService.getCollectCountByUserId(queryFilter, ContextUtil.getCurrentUserId());
	}

	@GetMapping(value = "myCollectDefKeys", produces = {"application/json; charset=utf-8"})
	@ApiOperation(value = "获取我收藏的流程key集合", httpMethod = "GET", notes = "获取我收藏的流程key集合")
	public CommonResult<List<String>> myCollectDefKeys() {
		return new CommonResult<>(true, "获取成功", baseService.getMyCollectDefKeys());
	}



}