Commit 475fc1bc by 赵剑炜

增加一个转发的接口

parent 3639d5a5
......@@ -19,10 +19,11 @@ public class HttpStatus
*/
public static final int ERROR = 99500;
/**
* 没有操作权限
*/
public static final int NO_PERMISSION = 10001;
public static final int NO_PERMISSION = 100001;
/**
* 没有该账户信息
......@@ -35,6 +36,19 @@ public class HttpStatus
public static final int PAGE_NOTFOUND = 100003;
/**
* 流程启动失败
*/
public static final int PROCESS_START_ERROR = 100004;
/**
* 流程已经结束
*/
public static final int PROCESS_WAS_END = 100005;
/**
*没有运行时的任务实例,请确认!
*/
public static final int NO_SUCH_PROCESS = 100006;
/**
* 请求数据超时
*/
public static final int TIMEOUT = 19996;
......
......@@ -12,17 +12,33 @@ public class ReturnMsg {
public static final String PASS = "操作成功";
/**
* 操作成功
*/
public static final String NO_SUCH_PROCESS = "没有运行时的任务实例";
/**
* 操作失败
*/
public static final String ERROR = "操作失败";
/**
* 操作失败
*/
public static final String PROCESS_WAS_END = "当前任务已经结束";
/**
* 未查询到相关数据
*/
public static final String NO_DATA = "未查询到相关数据";
/**
* 未查询到相关数据
*/
public static final String PROCESS_START_ERROR = "启动流程失败";
/**
* 请求数据不合法
*/
public static final String DATA_ILLEGAL = "请求数据不合法";
}
......@@ -10,7 +10,6 @@ import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.junmp.junmpProcess.common.R;
import com.junmp.junmpProcess.common.Result;
import com.junmp.junmpProcess.doc.BpmnDoc;
import com.junmp.junmpProcess.dto.ApplyDTO;
import com.junmp.junmpProcess.dto.HandleDataDTO;
import com.junmp.junmpProcess.dto.StartProcessInstanceDTO;
......@@ -21,10 +20,10 @@ import com.junmp.junmpProcess.entity.ProcessTemplates;
import com.junmp.junmpProcess.exception.WorkFlowException;
import com.junmp.junmpProcess.service.Repository.ProcessTemplateService;
import com.junmp.junmpProcess.utils.BpmnConvert;
import com.junmp.junmpProcess.vo.HistoryProcessInstanceVO;
import com.junmp.junmpProcess.vo.ProcessVO;
import com.junmp.junmpProcess.vo.TaskVO;
import com.junmp.junmpProcess.vo.UpdateProcessVO;
import com.junmp.junmpProcess.vo.*;
import com.junmp.jyzb.utils.HttpStatus;
import com.junmp.jyzb.utils.ResponseResult;
import com.junmp.jyzb.utils.ReturnMsg;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.SneakyThrows;
......@@ -56,17 +55,17 @@ import java.util.Map;
@RestController
@RequestMapping("/Process")
@Api(tags = "流程表单方法")
public class BpmnController implements BpmnDoc {
public class BpmnController {
@Autowired
private ProcessTemplateService processTemplateService;
@Autowired
private WorkProcessService WorkProcessService;
@Override
@ApiOperation("创建流程和表单")
@PostMapping(value = "create")
public Result<String> create(@RequestBody ProcessVO processVO) throws JsonProcessingException {
public ResponseResult create(@RequestBody ProcessVO processVO) throws JsonProcessingException {
return WorkProcessService.createBpmn(processVO);
}
......@@ -75,35 +74,44 @@ public class BpmnController implements BpmnDoc {
*/
@ApiOperation("修改表单")
@PutMapping("updateForm")
public Object updateForm(@RequestBody UpdateProcessVO process) throws JsonProcessingException {
public ResponseResult updateForm(@RequestBody UpdateProcessVO process) throws JsonProcessingException {
return WorkProcessService.updateForm(process);
}
/**
* 编辑表单
*/
@ApiOperation("轉交")
@PutMapping("turn")
public ResponseResult turn(@RequestBody TurnVo turns) {
return WorkProcessService.turn(turns);
}
@ApiOperation("通过流程定义id启动流程")
@PostMapping("start")
public Result<Object> start(@RequestBody StartProcessInstanceDTO startProcessInstanceDTO) {
public ResponseResult start(@RequestBody StartProcessInstanceDTO startProcessInstanceDTO) {
return WorkProcessService.start(startProcessInstanceDTO);
}
@ApiOperation("查看我发起的流程")
@PostMapping("applyList")
public Result<Page<HistoryProcessInstanceVO>> applyList(@RequestBody ApplyDTO ApplyDTO) {
public ResponseResult applyList(@RequestBody ApplyDTO ApplyDTO) {
return WorkProcessService.applyList(ApplyDTO);
}
@ApiOperation("查看我的待办")
@PostMapping("toDoList")
public Result<Page<TaskVO>> toDoList(@RequestBody TaskDTO taskDTO){
public ResponseResult toDoList(@RequestBody TaskDTO taskDTO){
return WorkProcessService.toDoList(taskDTO);
}
@ApiOperation("同意按钮")
@PostMapping("agree")
public Result<Page<TaskVO>> agree(@RequestBody HandleDataDTO handleDataDTO){
public ResponseResult agree(@RequestBody HandleDataDTO handleDataDTO){
return WorkProcessService.agree(handleDataDTO);
}
@ApiOperation("拒绝按钮")
@PostMapping("refuse")
public Result<Page<TaskVO>> refuse(@RequestBody HandleDataDTO handleDataDTO){
public ResponseResult refuse(@RequestBody HandleDataDTO handleDataDTO){
return WorkProcessService.refuse(handleDataDTO);
}
/**
* 查询表单模板数据
......@@ -113,10 +121,10 @@ public class BpmnController implements BpmnDoc {
*/
@ApiOperation("根据ID获取表单信息")
@PostMapping(value = "getFormTemplateById")
public Object getFormTemplateById(String templateId) {
public ResponseResult getFormTemplateById(String templateId) {
ProcessTemplates processTemplates = processTemplateService.getById(templateId);
processTemplates.setFormId(processTemplates.getTemplateId());
return R.ok(processTemplates);
return new ResponseResult(HttpStatus.SUCCESS, ReturnMsg.PASS,processTemplates);
}
/**
......@@ -125,8 +133,8 @@ public class BpmnController implements BpmnDoc {
* @return 模板详情数据
*/
@ApiOperation("获取全部可用的表单和审核流")
@PostMapping(value = "getFormList")
public Object getFormList( ) {
@GetMapping(value = "getFormList")
public ResponseResult getFormList( ) {
return WorkProcessService.getFormList();
}
......@@ -138,10 +146,7 @@ public class BpmnController implements BpmnDoc {
*/
@ApiOperation("通过模板id查看流程信息")
@GetMapping("getFormDetail")
public Result<ProcessTemplates> getFormDetail(@RequestParam("templateId") String templateId){
public ResponseResult getFormDetail(@RequestParam("templateId") String templateId){
return WorkProcessService.getFormDetail(templateId);
}
}
package com.junmp.junmpProcess.controller;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import com.junmp.junmpProcess.common.Result;
import com.junmp.junmpProcess.dto.ApplyDTO;
import com.junmp.junmpProcess.dto.HandleDataDTO;
import com.junmp.junmpProcess.dto.StartProcessInstanceDTO;
import com.junmp.junmpProcess.dto.TaskDTO;
import com.junmp.junmpProcess.entity.ProcessTemplates;
import com.junmp.junmpProcess.service.Bussiness.WorkProcessService;
import com.junmp.junmpProcess.vo.HandleDataVO;
import com.junmp.junmpProcess.vo.HistoryProcessInstanceVO;
import com.junmp.junmpProcess.vo.MultiVO;
import com.junmp.junmpProcess.vo.TaskVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Map;
@Slf4j
@RestController
@RequestMapping("/MainProcess")
@Api(tags = "和Flowable有关的接口")
public class MainProcessController {
@Autowired
private WorkProcessService ProcessService;
@ApiOperation(value = "通过模板id查看流程信息 会附带流程定义id", notes = "获取所有Demo数据列表")
@GetMapping(value = "process/detail")
public Result<ProcessTemplates> detail(@RequestParam("templateId") String templateId) {
return ProcessService.detail(templateId);
}
@ApiOperation("新建流程")
@PostMapping("process/create")
public Result<Object> create(@RequestBody StartProcessInstanceDTO startProcessInstanceDTO) {
return ProcessService.start(startProcessInstanceDTO);
}
@ApiOperation("通过流程定义id启动流程")
@PostMapping("process/start")
public Result<Object> start(@RequestBody StartProcessInstanceDTO startProcessInstanceDTO) {
return ProcessService.start(startProcessInstanceDTO);
}
@ApiOperation("查看我发起的流程")
@PostMapping("process/applyList")
public Result<Page<HistoryProcessInstanceVO>> applyList(@RequestBody ApplyDTO applyDTO) {
return ProcessService.applyList(applyDTO);
}
@ApiOperation("查看我的待办")
@PostMapping("process/toDoList")
public Result<Page<TaskVO>> toDoList(@RequestBody TaskDTO taskDTO) {
return ProcessService.toDoList(taskDTO);
}
@ApiOperation("查看我的已办")
@PostMapping("process/doneList")
public Result<Page<TaskVO>> doneList(@RequestBody TaskDTO taskDTO) {
return ProcessService.doneList(taskDTO);
}
@ApiOperation("同意按钮")
@PostMapping("/agree")
public Result agree(@RequestBody HandleDataDTO handleDataDTO) {
return ProcessService.agree(handleDataDTO);
}
@ApiOperation("委派按钮")
@PostMapping("/delegateTask")
public Result delegateTask(@RequestBody HandleDataDTO handleDataDTO) {
return ProcessService.delegateTask(handleDataDTO);
}
@ApiOperation("委派人完成的按钮")
@PostMapping("/resolveTask")
public Result resolveTask(@RequestBody HandleDataDTO handleDataDTO) {
return ProcessService.resolveTask(handleDataDTO);
}
@ApiOperation("拒绝按钮")
@PostMapping("/refuse")
public Result refuse(@RequestBody HandleDataDTO handleDataDTO) {
return ProcessService.refuse(handleDataDTO);
}
@ApiOperation("撤销按钮")
@PostMapping("/revoke")
public Result revoke(@RequestBody HandleDataDTO handleDataDTO) {
return ProcessService.revoke(handleDataDTO);
}
@ApiOperation("转办按钮")
@PostMapping("/assignee")
public Result assignee(@RequestBody HandleDataDTO handleDataDTO) {
return ProcessService.assignee(handleDataDTO);
}
@ApiOperation("退回按钮")
@PostMapping("/rollback")
public Result rollback(@RequestBody HandleDataDTO handleDataDTO) {
return ProcessService.rollback(handleDataDTO);
}
@ApiOperation("加签按钮")
@PostMapping("/addMulti")
public Result addMulti(@RequestBody HandleDataDTO handleDataDTO) {
return ProcessService.addMulti(handleDataDTO);
}
@ApiOperation("查到签上的人")
@PostMapping("/queryMultiUsersInfo")
public Result<List<MultiVO>> queryMultiUsersInfo(@RequestBody Map<String, Object> map) {
return ProcessService.queryMultiUsersInfo(map);
}
@ApiOperation("减签按钮")
@PostMapping("/deleteMulti")
public Result deleteMulti(@RequestBody List<String> executionIds) {
return ProcessService.deleteMulti(executionIds);
}
@ApiOperation("评论按钮")
@PostMapping("/comments")
public Result comments(@RequestBody HandleDataDTO handleDataDTO) {
return ProcessService.comments(handleDataDTO);
}
@ApiOperation("通过流程实例id查看详情")
@PostMapping("process/instanceInfo")
public Result<HandleDataVO> instanceInfo(@RequestBody HandleDataDTO HandleDataDTO) {
return ProcessService.instanceInfo(HandleDataDTO);
}
// @ApiOperation("上传文件")
// @PostMapping("upLoadFile")
// public Result<AttachmentVO> upLoadFile(@RequestParam("file") MultipartFile file, HttpServletRequest request){
// return ProcessService.upLoadFile(file,request);
// }
// @ApiOperation("下载文件")
// @PostMapping("downLoadFile")
// public void downLoadFile(@RequestParam("name") String name){
// ProcessService.downLoadFile(name);
// }
}
//package com.junmp.junmpProcess.controller;
//
//import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
//import com.junmp.jyzb.utils.ResponseResult;
//import io.swagger.annotations.Api;
//import io.swagger.annotations.ApiOperation;
//import lombok.extern.slf4j.Slf4j;
//import com.junmp.junmpProcess.common.Result;
//import com.junmp.junmpProcess.dto.ApplyDTO;
//import com.junmp.junmpProcess.dto.HandleDataDTO;
//import com.junmp.junmpProcess.dto.StartProcessInstanceDTO;
//import com.junmp.junmpProcess.dto.TaskDTO;
//import com.junmp.junmpProcess.entity.ProcessTemplates;
//import com.junmp.junmpProcess.service.Bussiness.WorkProcessService;
//import com.junmp.junmpProcess.vo.HandleDataVO;
//import com.junmp.junmpProcess.vo.HistoryProcessInstanceVO;
//import com.junmp.junmpProcess.vo.MultiVO;
//import com.junmp.junmpProcess.vo.TaskVO;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.web.bind.annotation.*;
//
//import java.util.List;
//import java.util.Map;
//
//@Slf4j
//@RestController
//@RequestMapping("/MainProcess")
//@Api(tags = "和Flowable有关的接口")
//public class MainProcessController {
//
// @Autowired
// private WorkProcessService ProcessService;
//
//
// @ApiOperation(value = "通过模板id查看流程信息 会附带流程定义id", notes = "获取所有Demo数据列表")
// @GetMapping(value = "process/detail")
// public Result<ProcessTemplates> detail(@RequestParam("templateId") String templateId) {
// return ProcessService.detail(templateId);
// }
//
// @ApiOperation("新建流程")
// @PostMapping("process/create")
// public Result<Object> create(@RequestBody StartProcessInstanceDTO startProcessInstanceDTO) {
// return ProcessService.start(startProcessInstanceDTO);
// }
//
// @ApiOperation("通过流程定义id启动流程")
// @PostMapping("process/start")
// public Result<Object> start(@RequestBody StartProcessInstanceDTO startProcessInstanceDTO) {
// return ProcessService.start(startProcessInstanceDTO);
// }
//
// @ApiOperation("查看我发起的流程")
// @PostMapping("process/applyList")
// public Result<Page<HistoryProcessInstanceVO>> applyList(@RequestBody ApplyDTO applyDTO) {
// return ProcessService.applyList(applyDTO);
// }
//
// @ApiOperation("查看我的待办")
// @PostMapping("process/toDoList")
// public Result<Page<TaskVO>> toDoList(@RequestBody TaskDTO taskDTO) {
// return ProcessService.toDoList(taskDTO);
// }
//
// @ApiOperation("查看我的已办")
// @PostMapping("process/doneList")
// public Result<Page<TaskVO>> doneList(@RequestBody TaskDTO taskDTO) {
// return ProcessService.doneList(taskDTO);
// }
//
// @ApiOperation("同意按钮")
// @PostMapping("/agree")
// public Result agree(@RequestBody HandleDataDTO handleDataDTO) {
// return ProcessService.agree(handleDataDTO);
// }
//
// @ApiOperation("委派按钮")
// @PostMapping("/delegateTask")
// public Result delegateTask(@RequestBody HandleDataDTO handleDataDTO) {
// return ProcessService.delegateTask(handleDataDTO);
//
// }
//
// @ApiOperation("委派人完成的按钮")
// @PostMapping("/resolveTask")
// public Result resolveTask(@RequestBody HandleDataDTO handleDataDTO) {
// return ProcessService.resolveTask(handleDataDTO);
// }
//
//
// @ApiOperation("拒绝按钮")
// @PostMapping("/refuse")
// public ResponseResult refuse(@RequestBody HandleDataDTO handleDataDTO) {
// return ProcessService.refuse(handleDataDTO);
// }
//
// @ApiOperation("撤销按钮")
// @PostMapping("/revoke")
// public Result revoke(@RequestBody HandleDataDTO handleDataDTO) {
// return ProcessService.revoke(handleDataDTO);
// }
//
//
// @ApiOperation("转办按钮")
// @PostMapping("/assignee")
// public Result assignee(@RequestBody HandleDataDTO handleDataDTO) {
// return ProcessService.assignee(handleDataDTO);
// }
//
//
// @ApiOperation("退回按钮")
// @PostMapping("/rollback")
// public Result rollback(@RequestBody HandleDataDTO handleDataDTO) {
// return ProcessService.rollback(handleDataDTO);
// }
//
//
// @ApiOperation("加签按钮")
// @PostMapping("/addMulti")
// public Result addMulti(@RequestBody HandleDataDTO handleDataDTO) {
// return ProcessService.addMulti(handleDataDTO);
// }
//
//
// @ApiOperation("查到签上的人")
// @PostMapping("/queryMultiUsersInfo")
// public Result<List<MultiVO>> queryMultiUsersInfo(@RequestBody Map<String, Object> map) {
// return ProcessService.queryMultiUsersInfo(map);
// }
//
// @ApiOperation("减签按钮")
// @PostMapping("/deleteMulti")
// public Result deleteMulti(@RequestBody List<String> executionIds) {
// return ProcessService.deleteMulti(executionIds);
// }
//
//
// @ApiOperation("评论按钮")
// @PostMapping("/comments")
// public Result comments(@RequestBody HandleDataDTO handleDataDTO) {
// return ProcessService.comments(handleDataDTO);
// }
//
// @ApiOperation("通过流程实例id查看详情")
// @PostMapping("process/instanceInfo")
// public Result<HandleDataVO> instanceInfo(@RequestBody HandleDataDTO HandleDataDTO) {
// return ProcessService.instanceInfo(HandleDataDTO);
// }
//// @ApiOperation("上传文件")
//// @PostMapping("upLoadFile")
//// public Result<AttachmentVO> upLoadFile(@RequestParam("file") MultipartFile file, HttpServletRequest request){
//// return ProcessService.upLoadFile(file,request);
//// }
//// @ApiOperation("下载文件")
//// @PostMapping("downLoadFile")
//// public void downLoadFile(@RequestParam("name") String name){
//// ProcessService.downLoadFile(name);
//// }
//}
//
package com.junmp.junmpProcess.doc;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.junmp.junmpProcess.common.Result;
import com.junmp.junmpProcess.vo.ProcessVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@Api(value = "bpmn接口", tags = "bpmn接口")
public interface BpmnDoc {
/**
* bpmn划线
*/
@ApiOperation(value = "bpmn划线", tags = "bpmn划线")
Result<String> create(ProcessVO processVO) throws JsonProcessingException;
}
......@@ -10,6 +10,7 @@ import com.junmp.junmpProcess.dto.StartProcessInstanceDTO;
import com.junmp.junmpProcess.dto.TaskDTO;
import com.junmp.junmpProcess.entity.ProcessTemplates;
import com.junmp.junmpProcess.vo.*;
import com.junmp.jyzb.utils.ResponseResult;
import org.springframework.web.bind.annotation.RequestBody;
import java.util.List;
......@@ -22,13 +23,14 @@ public interface WorkProcessService {
*
* @return
*/
Result<String> createBpmn(ProcessVO processVO) throws JsonProcessingException;
ResponseResult createBpmn(ProcessVO processVO) throws JsonProcessingException;
/**
* 编辑表单
*
* @return
*/
Object updateForm(UpdateProcessVO process) throws JsonProcessingException;
ResponseResult updateForm(UpdateProcessVO process) throws JsonProcessingException;
ResponseResult turn(TurnVo turns);
/**
* @Author: Zhaojw
......@@ -37,14 +39,14 @@ public interface WorkProcessService {
* @Params:
* @Return
*/
Result<ProcessTemplates> getFormDetail(String templateId);
ResponseResult getFormDetail(String templateId);
/**
* 获取用户可见表单
*
* @return
*/
Object getFormList();
ResponseResult getFormList();
/**
......@@ -59,21 +61,21 @@ public interface WorkProcessService {
*
* @return
*/
Result<Object> start(StartProcessInstanceDTO startProcessInstanceDTO);
ResponseResult start(StartProcessInstanceDTO startProcessInstanceDTO);
/**
* 查看我发起的流程
*
* @return
*/
Result<Page<HistoryProcessInstanceVO>> applyList(ApplyDTO applyDTO);
ResponseResult applyList(ApplyDTO applyDTO);
/**
* 查看我的待办
*
* @return
*/
Result<Page<TaskVO>> toDoList(TaskDTO taskDTO);
ResponseResult toDoList(TaskDTO taskDTO);
/**
* 查看我的已办
......@@ -87,7 +89,7 @@ public interface WorkProcessService {
*
* @return
*/
Result agree(HandleDataDTO handleDataDTO);
ResponseResult agree(HandleDataDTO handleDataDTO);
/**
* 委派
......@@ -108,7 +110,7 @@ public interface WorkProcessService {
*
* @return
*/
Result refuse(HandleDataDTO handleDataDTO);
ResponseResult refuse(HandleDataDTO handleDataDTO);
/**
* 撤销按钮
......
......@@ -24,6 +24,9 @@ import com.junmp.junmpProcess.service.Repository.ProcessTemplateService;
import com.junmp.junmpProcess.utils.IdWorker;
import com.junmp.junmpProcess.utils.SpringContextHolder;
import com.junmp.junmpProcess.vo.*;
import com.junmp.jyzb.utils.HttpStatus;
import com.junmp.jyzb.utils.ResponseResult;
import com.junmp.jyzb.utils.ReturnMsg;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.time.DateFormatUtils;
import org.flowable.bpmn.BpmnAutoLayout;
......@@ -54,6 +57,8 @@ import com.junmp.junmpProcess.common.WorkFlowConstants;
import com.junmp.junmpProcess.dto.json.flowJson.FlowChildNode;
import com.junmp.junmpProcess.dto.json.flowJson.Inout;
import com.junmp.junmpProcess.entity.ProcessTemplates;
import org.flowable.task.service.impl.persistence.entity.TaskEntity;
import org.flowable.task.service.impl.persistence.entity.TaskEntityImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
......@@ -87,7 +92,61 @@ public class WorkProcessServiceImpl implements WorkProcessService {
private IdWorker idWorker;
public Object getFormList()
/**
* 创建子任务
*
* @param ptask 创建子任务
* @param assignee 子任务的执行人
* @return
*/
protected TaskEntity createSubTask(TaskEntity ptask, String ptaskId, String assignee) {
TaskEntity task = null;
if (ptask != null) {
//1.生成子任务
task = (TaskEntity) taskService.newTask(UUID.randomUUID().toString());
task.setCategory(ptask.getCategory());
task.setDescription(ptask.getDescription());
task.setTenantId(ptask.getTenantId());
task.setAssignee(assignee);
task.setName(ptask.getName());
task.setParentTaskId(ptaskId);
task.setProcessDefinitionId(ptask.getProcessDefinitionId());
task.setProcessInstanceId(ptask.getProcessInstanceId());
task.setTaskDefinitionKey(ptask.getTaskDefinitionKey());
task.setTaskDefinitionId(ptask.getTaskDefinitionId());
task.setPriority(ptask.getPriority());
task.setCreateTime(new Date());
taskService.saveTask(task);
}
return task;
}
public ResponseResult turn(TurnVo turns)
{
TaskEntityImpl currTask = (TaskEntityImpl) taskService.createTaskQuery().taskId(turns.getTaskId()).singleResult();
if (currTask != null) {
//1.生成历史记录
TaskEntity task =this.createSubTask(currTask,currTask.getId(),turns.getUserId());
//2.添加审批意见
// this.addComment(task.getId(), turnTaskVo.getUserCode(), turnTaskVo.getProcessInstanceId(), CommentTypeEnum.ZB.toString(), turnTaskVo.getMessage());
taskService.saveTask(task);
taskService.complete(task.getId());
//3.转办
taskService.setAssignee(turns.getTaskId(), turns.getUserId());
String[] assigneeList=turns.getAssigneeList();
for (String owner :assigneeList
) {
taskService.setOwner(turns.getTaskId(), owner);
}
return new ResponseResult(HttpStatus.SUCCESS,ReturnMsg.PASS,"转办成功");
} else {
return new ResponseResult(HttpStatus.NO_SUCH_PROCESS,ReturnMsg.PASS,"没有运行时的任务实例,请确认!");
}
}
public ResponseResult getFormList()
{
TemplateGroupMapper templateGroupMapper = SpringContextHolder.getBean(TemplateGroupMapper.class);
List<TemplateGroupBo> allformAndGroups = templateGroupMapper.getAllFormAndGroups();
......@@ -118,7 +177,6 @@ public class WorkProcessServiceImpl implements WorkProcessService {
}
templates.add(TemplateGroupVo.Template.builder()
.formId(v.getTemplateId())
.tgId(v.getId())
.remark(v.getRemark())
.formName(v.getFormName())
.isStop(v.getIsStop())
......@@ -128,11 +186,11 @@ public class WorkProcessServiceImpl implements WorkProcessService {
.build());
}
});
results.add(TemplateGroupVo.builder().id(key).name(val.get(0).getGroupName()).items(templates).build());
results.add(TemplateGroupVo.builder().items(templates).build());
});
return R.ok(results);
return new ResponseResult(HttpStatus.SUCCESS,ReturnMsg.PASS,results.get(0));
}
public Result<String> createBpmn(ProcessVO processVO) throws JsonProcessingException {
public ResponseResult createBpmn(ProcessVO processVO) throws JsonProcessingException {
//流程定义
ObjectMapper objectMapper = new ObjectMapper();
JsonNode processJsonNode = objectMapper.readTree(processVO.getProcessJson());
......@@ -157,7 +215,9 @@ public class WorkProcessServiceImpl implements WorkProcessService {
.addBpmnModel(processVO.getFormName()+".bpmn20.xml", bpmnModel)
.name(processVO.getFormName())
.deploy();
return Result.OK(deploy.getId());
return new ResponseResult(HttpStatus.SUCCESS,ReturnMsg.PASS,deploy.getId());
}
......@@ -169,7 +229,7 @@ public class WorkProcessServiceImpl implements WorkProcessService {
*/
@Transactional
public Object updateForm(UpdateProcessVO process) throws JsonProcessingException {
public ResponseResult updateForm(UpdateProcessVO process) throws JsonProcessingException {
ObjectMapper objectMapper = new ObjectMapper();
JsonNode processJsonNode = objectMapper.readTree(process.getProcessJson());
JsonNode formJsonNode = objectMapper.readTree(process.getFormJson());
......@@ -186,12 +246,12 @@ public class WorkProcessServiceImpl implements WorkProcessService {
.addBpmnModel(process.getFormName()+".bpmn20.xml", bpmnModel)
.name(process.getFormName())
.deploy();
return new ResponseResult(HttpStatus.SUCCESS,ReturnMsg.PASS,"");
return R.ok("发布更新后的表单成功");
}
@Override
public Result<ProcessTemplates> getFormDetail(String templateId) {
public ResponseResult getFormDetail(String templateId) {
ProcessTemplates processTemplates = processTemplateService.getById(templateId);
processTemplates.setLogo(processTemplates.getIcon());
processTemplates.setFormId(processTemplates.getTemplateId());
......@@ -202,7 +262,8 @@ public class WorkProcessServiceImpl implements WorkProcessService {
throw new WorkFlowException("该流程暂未接入Flowable,请重试");
}
processTemplates.setProcessDefinitionId(processDefinition.getId());
return Result.OK(processTemplates);
return new ResponseResult(HttpStatus.SUCCESS,ReturnMsg.PASS,processTemplates);
}
/**
......@@ -267,21 +328,7 @@ public class WorkProcessServiceImpl implements WorkProcessService {
ExclusiveGateway endGateway = new ExclusiveGateway();
endGateway.setId(endId);
process.addFlowElement(endGateway);
// 绘制分支
// List<JsonNode> branches = node.get("FlowConditionNodes");
// 针对 gateway 空任务分支 添加条件表达式
// for (FlowConditionNodes branch : branches) {
// String expression = branch.getConditionGroup();
// if (branch.getChildNode()==null) {
// // 没有子流程,直接绘制结束线
// process.addFlowElement(createSequenceFlow(startId, endId, expression));
// } else {
// // 有子流程,递归绘制子流程
// drawNode(process, branch.getChildNode(), startId, endId, expression);
// }
// }
// int和out不一样
return new Inout(startId, endId);
}
......@@ -397,32 +444,16 @@ public class WorkProcessServiceImpl implements WorkProcessService {
List<SequenceFlow> sequenceFlows = Lists.newArrayList();
Map<String, ChildNode> childNodeMap = new HashMap<>();
bpmnModel.setTargetNamespace(groupId + "");
// ExtensionAttribute extensionAttribute=new ExtensionAttribute();
// extensionAttribute.setName("Junmp");
// extensionAttribute.setNamespace("http://flowable.org/bpmn");
// extensionAttribute.setValue(jsonObject.toJSONString());
Process process = new Process();
process.setId(WorkFlowConstants.PROCESS_PREFIX);
// process.setName(formName);
// process.setDocumentation(remark);
// process.addAttribute(extensionAttribute);
bpmnModel.addProcess(process);
StartEvent startEvent = createStartEvent();
process.addFlowElement(startEvent);
String lastNode = null;
// try {
// lastNode = create(startEvent.getId(), childNode,process,bpmnModel,sequenceFlows,childNodeMap);
// } catch (InvocationTargetException e) {
// e.printStackTrace();
// throw new WorkFlowException("操作失败");
// } catch (IllegalAccessException e) {
// e.printStackTrace();
// throw new WorkFlowException("操作失败");
// }
EndEvent endEvent = createEndEvent();
process.addFlowElement(endEvent);
// process.addFlowElement(connect(lastNode, endEvent.getId(),sequenceFlows,childNodeMap,process));
List<FlowableListener> executionListeners = new ArrayList<>();
FlowableListener flowableListener = new FlowableListener();
flowableListener.setEvent(ExecutionListener.EVENTNAME_END);
......@@ -445,14 +476,12 @@ public class WorkProcessServiceImpl implements WorkProcessService {
@Override
public Result<ProcessTemplates> detail(String templateId) {
ProcessTemplates processTemplates = processTemplateService.getById(templateId);
// processTemplates.setLogo(processTemplates.getIcon());
processTemplates.setFormId(processTemplates.getTemplateId());
processTemplates.setFormName(processTemplates.getFormName());
ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery().processDefinitionKey(PROCESS_PREFIX + templateId).latestVersion().singleResult();
if (processDefinition == null) {
throw new WorkFlowException("该流程暂未接入Flowable,请重试");
}
// processTemplates.setProcessDefinitionId(processDefinition.getId());
return Result.OK(processTemplates);
}
......@@ -463,7 +492,7 @@ public class WorkProcessServiceImpl implements WorkProcessService {
* @return
*/
@Override
public Result<Object> start(StartProcessInstanceDTO processInstanceDto) {
public ResponseResult start(StartProcessInstanceDTO processInstanceDto) {
try {
......@@ -495,38 +524,19 @@ public class WorkProcessServiceImpl implements WorkProcessService {
taskService.complete(task.getId());
}
return new ResponseResult(HttpStatus.SUCCESS,ReturnMsg.PASS,processInstance.getId());
// ProcessInstance processInstance = processInstanceBuilder
// .variable("initiator",startUserInfo.getUserId()).start();
// .
// Authentication.setAuthenticatedUserId(startUserInfo.getUserId());
// Map<String,Object> processVariables= new HashMap<>();
// processVariables.put(FORM_VAR,formData);
// processVariables.put(PROCESS_STATUS,BUSINESS_STATUS_1);
// processVariables.put(START_USER_INFO,JSONObject.toJSONString(startUserInfo));
// ArrayList<JunmpUserInfo> userInfos = CollUtil.newArrayList(startUserInfo);
// processVariables.put("root",JSONObject.toJSONString(userInfos));
// Map formValue = JSONObject.parseObject(formData.toJSONString(), new TypeReference<Map>() {
// });
// processVariables.putAll(formValue);
// ProcessInstanceBuilder processInstanceBuilder = runtimeService.createProcessInstanceBuilder();
// ProcessInstance processInstance = processInstanceBuilder
// .processDefinitionId(processInstanceDto.getProcessDefinitionId())
// .variables(processVariables)
// .businessStatus(BUSINESS_STATUS_1)
// .start();
return Result.OK(processInstance.getId());
}
catch (Exception e){
Throwable cause = e.getCause();
if(cause instanceof WorkFlowException){
WorkFlowException workFlowException=(WorkFlowException)cause;
return Result.error(workFlowException.getMessage());
return new ResponseResult(HttpStatus.PROCESS_START_ERROR,ReturnMsg.PROCESS_START_ERROR,workFlowException.getMessage());
}
e.printStackTrace();
return Result.error("启动流程失败");
return new ResponseResult(HttpStatus.PROCESS_START_ERROR,ReturnMsg.PROCESS_START_ERROR,"");
}
}
......@@ -536,7 +546,7 @@ public class WorkProcessServiceImpl implements WorkProcessService {
* @return
*/
@Override
public Result<Page<HistoryProcessInstanceVO>> applyList(ApplyDTO applyDTO) {
public ResponseResult applyList(ApplyDTO applyDTO) {
List<HistoricProcessInstance> historicProcessInstances =
historyService.createHistoricProcessInstanceQuery()
.includeProcessVariables()
......@@ -578,7 +588,7 @@ public class WorkProcessServiceImpl implements WorkProcessService {
page.setCurrent(applyDTO.getPageNo());
page.setSize(applyDTO.getPageSize());
page.setTotal(count);
return Result.OK(page);
return new ResponseResult(HttpStatus.SUCCESS,ReturnMsg.PASS,page);
}
/**
......@@ -587,7 +597,7 @@ public class WorkProcessServiceImpl implements WorkProcessService {
* @return
*/
@Override
public Result<Page<TaskVO>> toDoList(TaskDTO taskDTO) {
public ResponseResult toDoList(TaskDTO taskDTO) {
List<Task> tasks = taskService.createTaskQuery().taskAssignee(taskDTO.getCurrentUserInfo().getUserId())
.includeProcessVariables()
.orderByTaskCreateTime().desc()
......@@ -597,13 +607,13 @@ public class WorkProcessServiceImpl implements WorkProcessService {
Page<TaskVO> page =new Page<>();
List<String> taskIds= new ArrayList<>();
for (Task task : tasks) {
Map<String, Object> processVariables = task.getProcessVariables();
}
// List<String> taskIds= new ArrayList<>();
// for (Task task : tasks) {
// Map<String, Object> processVariables = task.getProcessVariables();
// }
Map<Long, JunmpUserInfo> collect=new HashMap<>();
// Map<Long, JunmpUserInfo> collect=new HashMap<>();
for (Task task : tasks) {
ProcessInstance processInstance = runtimeService.createProcessInstanceQuery().processInstanceId(task.getProcessInstanceId()).singleResult();
BpmnModel bpmnModel = repositoryService.getBpmnModel(task.getProcessDefinitionId());
......@@ -623,13 +633,13 @@ public class WorkProcessServiceImpl implements WorkProcessService {
taskVO.setDelegationState(delegationState);
}
taskVOS.add(taskVO);
}
page.setRecords(taskVOS);
page.setCurrent(taskDTO.getPageNo());
page.setSize(taskDTO.getPageSize());
page.setTotal(count);
return Result.OK(page);
return new ResponseResult(HttpStatus.SUCCESS,ReturnMsg.PASS,page);
}
/**
......@@ -686,7 +696,7 @@ public class WorkProcessServiceImpl implements WorkProcessService {
}
@Override
public Result agree(HandleDataDTO handleDataDTO) {
public ResponseResult agree(HandleDataDTO handleDataDTO) {
UserInfo currentUserInfo = handleDataDTO.getCurrentUserInfo();
List<AttachmentDTO> attachments = handleDataDTO.getAttachments();
String comments = handleDataDTO.getComments();
......@@ -736,11 +746,12 @@ public class WorkProcessServiceImpl implements WorkProcessService {
}
return Result.OK();
return new ResponseResult(HttpStatus.SUCCESS,ReturnMsg.PASS,"");
}
else {
return new ResponseResult(HttpStatus.PROCESS_WAS_END,ReturnMsg.PROCESS_WAS_END,"");
return Result.error("当前任务已结束");
}
......@@ -822,7 +833,7 @@ public class WorkProcessServiceImpl implements WorkProcessService {
}
@Override
public Result refuse(HandleDataDTO handleDataDTO) {
public ResponseResult refuse(HandleDataDTO handleDataDTO) {
UserInfo currentUserInfo = handleDataDTO.getCurrentUserInfo();
Authentication.setAuthenticatedUserId(currentUserInfo.getId());
List<AttachmentDTO> attachments = handleDataDTO.getAttachments();
......@@ -852,7 +863,8 @@ public class WorkProcessServiceImpl implements WorkProcessService {
taskService.addComment(task.getId(), task.getProcessInstanceId(), "sign", handleDataDTO.getSignInfo());
}
runtimeService.deleteProcessInstance(task.getProcessInstanceId(), "拒绝");
return Result.OK();
return new ResponseResult(HttpStatus.SUCCESS, ReturnMsg.PASS,"");
}
@Override
......
......@@ -9,7 +9,9 @@ import org.flowable.bpmn.BpmnAutoLayout;
import org.flowable.bpmn.converter.BpmnXMLConverter;
import org.flowable.bpmn.model.*;
import org.flowable.bpmn.model.Process;
import org.flowable.engine.TaskService;
import org.flowable.engine.delegate.ExecutionListener;
import org.flowable.task.service.impl.persistence.entity.TaskEntity;
import org.springframework.beans.factory.annotation.Autowired;
import javax.annotation.Resource;
......
......@@ -18,10 +18,6 @@ import java.util.List;
@AllArgsConstructor
public class TemplateGroupVo {
private Integer id;
private String name;
private List<Template> items;
@Data
......@@ -32,19 +28,9 @@ public class TemplateGroupVo {
private String formId;
private String processDefinitionId;
private Integer tgId;
private String formName;
private String icon;
private Boolean isStop;
private String remark;
private JSONObject logo;
private String background;
private String updated;
private String templateId;
}
......
package com.junmp.junmpProcess.vo;
import lombok.Data;
@Data
public class TurnVo {
private String taskId;
private String userId;
private String[] assigneeList;
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论