package com.highdatas.mdm.controller; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; import com.highdatas.mdm.entity.Flows; import com.highdatas.mdm.entity.SysMenu; import com.highdatas.mdm.pojo.ActivitiStatus; import com.highdatas.mdm.pojo.CodeMsg; import com.highdatas.mdm.pojo.Result; import com.highdatas.mdm.service.IFlowsService; import com.highdatas.mdm.service.ITUserService; import com.sun.tools.javac.jvm.Code; import org.activiti.engine.HistoryService; import org.activiti.engine.RuntimeService; import org.activiti.engine.runtime.ProcessInstance; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; import javax.servlet.http.HttpServletRequest; import java.util.List; import java.util.stream.Collectors; /** *

* 前端控制器 *

* * @author kimi * @since 2019-12-16 */ @RestController @RequestMapping("/flows") public class FlowsController { @Autowired IFlowsService flowsService; @Autowired ITUserService userService; @Autowired RuntimeService runtimeService; @RequestMapping(value = "/{pageno}", method = RequestMethod.GET) public Result> getAll(@PathVariable int pageno, HttpServletRequest request) { String pageSize = request.getParameter("pageSize"); if (StringUtils.isEmpty(pageSize)) { pageSize = "15"; } EntityWrapper flowsEntityWrapper = new EntityWrapper<>(); String userId = request.getParameter("userId"); if (!StringUtils.isEmpty(userId)) { flowsEntityWrapper.eq("user_id", userId); } String status = request.getParameter("status"); if (!StringUtils.isEmpty(status)) { flowsEntityWrapper.eq("status", status); } Integer size = Integer.valueOf(pageSize); Page page = new Page(pageno, size); Page menuPage = flowsService.selectPage(page, flowsEntityWrapper); List records = menuPage.getRecords(); List recordsStr = records.stream().map(flows -> flows.setBusinessTypeStr(flows.getBusinessType().toString()).setUserName(userService.selectById(flows.getUserId()).getUserName())).collect(Collectors.toList()); menuPage.setRecords(recordsStr); return Result.success(menuPage); } @RequestMapping(value = "close/{id}", method = RequestMethod.GET) public Result close(@PathVariable String id, HttpServletRequest request) { Flows flows = flowsService.selectById(id); if (flows == null) { return Result.error(CodeMsg.ERROR_PARAMS_NOT_MATHED); } String workflowId = flows.getWorkflowId(); ProcessInstance processInstance = runtimeService.createProcessInstanceQuery().processInstanceId(workflowId).singleResult(); if (processInstance != null) { runtimeService.deleteProcessInstance(workflowId,"终止流程"); } flows.setStatus(ActivitiStatus.close); flowsService.aduitFinish(flows); boolean update = flows.updateById(); if (update) { return Result.success(flows); }else { return Result.error(CodeMsg.UPDATE_ERROR); } } }