Browse Source

完善 system 中流程引擎的接口

master
djz236@163.com 2 years ago
parent
commit
08787dca8d
  1. 2
      yxt_supervise/supervise-flowable/supervise-flowable-api/src/main/java/com/yxt/anrui/flowable/api/flowtask/FlowTask.java
  2. 5
      yxt_supervise/supervise-flowable/supervise-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flowtask/FlowTaskService.java
  3. 4
      yxt_supervise/supervise-system/supervise-system-api/src/main/java/com/yxt/supervise/system/flow/FlowRecordVo.java
  4. 117
      yxt_supervise/supervise-system/supervise-system-api/src/main/java/com/yxt/supervise/system/flow/FlowableFallback.java
  5. 5
      yxt_supervise/supervise-system/supervise-system-api/src/main/java/com/yxt/supervise/system/flow/FlowableFeignS.java
  6. 518
      yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/flow/FlowableRest.java
  7. 647
      yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/flow/FlowableService.java
  8. 80
      yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/flow/feign/FlowDefinitionFeign.java
  9. 117
      yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/flow/feign/FlowableFeign.java
  10. 83
      yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/flow/feign/ProcessCommentFeign.java
  11. 52
      yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/flow/feign/SysFormLinkFeign.java
  12. 90
      yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/flow/feign/SysProUrlFeign.java
  13. 27
      yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/flow/feign/form/AppSysProUrlQuery.java
  14. 41
      yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/flow/feign/form/AppUrlVo.java
  15. 78
      yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/flow/feign/form/FlowDefinitionFeignBusinessStartDTO.java
  16. 53
      yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/flow/feign/form/FlowTaskVo.java
  17. 20
      yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/flow/feign/form/PcUrlVo.java
  18. 68
      yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/flow/feign/form/ProcessComment.java
  19. 68
      yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/flow/feign/form/ProcessCommentDetailsVo.java
  20. 68
      yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/flow/feign/form/ProcessCommentDto.java
  21. 66
      yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/flow/feign/form/ProcessCommentQuery.java
  22. 71
      yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/flow/feign/form/ProcessCommentVo.java
  23. 50
      yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/flow/feign/form/SysFormLinkDto.java
  24. 23
      yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/flow/feign/form/SysFormStateVo.java
  25. 62
      yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/flow/feign/form/SysProUrlDto.java
  26. 60
      yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/flow/feign/form/SysProUrlQuery.java
  27. 200
      yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/purchasingrequisition/PurchasingRequisitionRest.java
  28. 819
      yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/purchasingrequisition/PurchasingRequisitionService.java

2
yxt_supervise/supervise-flowable/supervise-flowable-api/src/main/java/com/yxt/anrui/flowable/api/flowtask/FlowTask.java

@ -96,7 +96,7 @@ public class FlowTask extends BaseEntity implements Serializable {
@ApiModelProperty("任务完成时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
private String finishTime;
private Date finishTime;
@ApiModelProperty("流程完成时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss.SSS" )

5
yxt_supervise/supervise-flowable/supervise-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flowtask/FlowTaskService.java

@ -231,7 +231,7 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
flowTask.setTaskId(histIns.getTaskId());
flowTask.setTaskName(histIns.getActivityName());
flowTask.setCreateTime(histIns.getStartTime());
flowTask.setFinishTime(histIns.getEndTime().toString());
flowTask.setFinishTime(histIns.getEndTime());
if (StringUtils.isNotBlank(histIns.getAssignee())) {
/* SysUser sysUser = sysUserService.selectUserById(Long.parseLong(histIns.getAssignee()));
flowTask.setAssigneeId(sysUser.getUserId());
@ -309,7 +309,8 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
Date startTime = histIns.getStartTime();
flowTask.setCreateTime(startTime);
Date endTime = histIns.getEndTime();
flowTask.setFinishTime(endTime==null?"":endTime.toString());
flowTask.setFinishTime(endTime);
//processInstance.get("END_TIME_") timestap类型不能转string
String end_time_ = processInstance.get("END_TIME_") == null ? "" : "end";
flowTask.setProcessEndTime(end_time_);

4
yxt_supervise/supervise-system/supervise-system-api/src/main/java/com/yxt/supervise/system/flow/FlowRecordVo.java

@ -1,8 +1,10 @@
package com.yxt.supervise.system.flow;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
@Data
public class FlowRecordVo {
private List<FlowTask> flowList = new ArrayList<>();

117
yxt_supervise/supervise-system/supervise-system-api/src/main/java/com/yxt/supervise/system/flow/FlowableFallback.java

@ -1,117 +0,0 @@
package com.yxt.supervise.system.flow;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.supervise.system.flow.app.FlowTaskDoQuery;
import com.yxt.supervise.system.flow.app.FlowTaskDoVo;
import com.yxt.supervise.system.flow.app.FlowTaskFinishVo;
import org.springframework.stereotype.Component;
import java.util.List;
@Component
public class FlowableFallback implements FlowableFeign{
/* @Override
public ResultBean businessStart(String procDefId, String userSid, Map<String, Object> variables) {
return null;
}
*/
@Override
public ResultBean processPagerList(Integer pageNum, Integer pageSize) {
return null;
}
@Override
public ResultBean myprocess( String userSid, PagerQuery<FlowTaskQuery> taskQueryPagerQuery) {
return null;
}
@Override
public ResultBean todoTaskList(String userSid, PagerQuery<TaskQuery> pQuery) {
return null;
}
@Override
public ResultBean readXml(String deployId) {
return null;
}
@Override
public ResultBean getFlowViewer(String procInsId) {
return null;
}
@Override
public ResultBean doneTaskList(String userSid, PagerQuery<TaskQuery> pQuery) {
return null;
}
@Override
public ResultBean revokeProcess(String userSid, String businessSid, FlowTaskVo flowTaskVo) {
return null;
}
@Override
public ResultBean<FlowRecordVo> flowRecord(String procInsId, String deployId) {
return null;
}
@Override
public ResultBean<List<PCHistTaskListAndCommentList>> flowRecordAndComment(String procInsId, String deployId) {
return null;
}
@Override
public ResultBean taskReject(String businessSid, FlowTaskVo flowTaskVo) {
return null;
}
@Override
public ResultBean stopProcess(FlowTaskVo flowTaskVo) {
return null;
}
@Override
public ResultBean deleteProcess(String procInsId) {
return null;
}
@Override
public ResultBean<Page<FlowTaskDto>> todoAllTaskList(String userSid, PagerQuery<FlowTaskAllQuery> pQuery) {
return null;
}
@Override
public ResultBean<Integer> getTodoNum(String userSid) {
return null;
}
@Override
public ResultBean<Integer> getTodoNum(String userSid, String orgPath) {
return null;
}
@Override
public ResultBean<Page<FlowTaskDto>> doneAllTaskList(String userSid, PagerQuery<FlowTaskAllQuery> pQuery) {
return null;
}
@Override
public ResultBean getNextTasks(String taskId) {
return null;
}
@Override
public ResultBean<PagerVo<FlowTaskDoVo>> todoApp(PagerQuery<FlowTaskDoQuery> pagerQuery) {
return null;
}
@Override
public ResultBean<PagerVo<FlowTaskFinishVo>> finishApp(PagerQuery<FlowTaskDoQuery> pagerQuery) {
return null;
}
}

5
yxt_supervise/supervise-system/supervise-system-api/src/main/java/com/yxt/supervise/system/flow/FlowableFeign.java → yxt_supervise/supervise-system/supervise-system-api/src/main/java/com/yxt/supervise/system/flow/FlowableFeignS.java

@ -19,9 +19,8 @@ import java.util.List;
@FeignClient(
contextId = "anrui-portal-flow-Flowable",
name = "anrui-portal",
path = "v1/flow",
fallback = FlowableFallback.class)
public interface FlowableFeign {
path = "v1/flow")
public interface FlowableFeignS {
/**
* 业务系统发起流程申请
*

518
yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/flow/FlowableRest.java

@ -27,8 +27,15 @@ package com.yxt.supervise.system.flow;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yxt.common.base.utils.StringUtils;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.supervise.system.flow.app.FlowTaskDoQuery;
import com.yxt.supervise.system.flow.app.FlowTaskDoVo;
import com.yxt.supervise.system.flow.app.FlowTaskFinishVo;
import com.yxt.supervise.system.flow.feign.ProcessCommentFeign;
import com.yxt.supervise.system.flow.feign.form.ProcessCommentVo;
import com.yxt.supervise.system.sysstafforg.SysStaffOrgService;
import com.yxt.supervise.system.sysstafforg.SysStaffOrgVo;
import com.yxt.supervise.system.sysuser.SysUser;
@ -37,11 +44,15 @@ import com.yxt.supervise.feign.wh.ShStorehouseFeign;
import com.yxt.supervise.feign.wh.ShStorehouseQuery;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
* Project: anrui-parent <br/>
@ -70,151 +81,244 @@ public class FlowableRest {
private SysUserService sysUserService;
@Autowired
private ShStorehouseFeign shStorehouseFeign;
// @Autowired
// private ProcessCommentFeign processCommentFeign;
///*
//
// @Override
// public ResultBean businessStart(String procDefId, String userSid, Map<String, Object> variables) {
// return flowableService.businessStart(procDefId, userSid, variables);
// }
//*/
//
// @Override
// public ResultBean processPagerList(Integer pageNum, Integer pageSize) {
// return flowableService.processPagerList(pageNum, pageSize);
// }
//
// @Override
// public ResultBean myprocess(String userSid, PagerQuery<FlowTaskQuery> taskQueryPagerQuery) {
// return flowableService.myprocess(userSid, taskQueryPagerQuery);
// }
//
// @Override
// public ResultBean todoTaskList(String userSid, PagerQuery<TaskQuery> pQuery) {
//
// SysUser sysUser = sysUserService.fetchBySid(userSid);
// String staffSid = sysUser.getStaffSid();
//
// List<SysStaffOrgVo> sysStaffOrgListByStaffSid = sysStaffOrgService.getSysStaffOrgListByStaffSid(staffSid);
// StringBuilder sb = new StringBuilder();
// for (SysStaffOrgVo s : sysStaffOrgListByStaffSid) {
// sb.append(s.getOrgSidPath());
// sb.append(",");
// }
// sb.delete(sb.length() - 1, sb.length());
// pQuery.getParams().setOrgSid(sb.toString());
// return flowableService.todoTaskList(userSid, pQuery);
// }
//
// @Override
// public ResultBean readXml(String deployId) {
// return flowableService.readXml(deployId);
// }
//
// @Override
// public ResultBean getFlowViewer(String procInsId) {
// return flowableService.getFlowViewer(procInsId);
// }
//
// @Override
// public ResultBean doneTaskList(String userSid, PagerQuery<TaskQuery> pQuery) {
// return flowableService.doneTaskList(userSid, pQuery);
// }
//
// /* @Override
// public ResultBean complete(Map<String, Object> variables) {
// return flowableService.complete(variables);
// }*/
//
// @Override
// public ResultBean revokeProcess(String userSid, String businessSid, FlowTaskVo flowTaskVo) {
// return flowableService.revokeProcess(userSid, businessSid, flowTaskVo);
// }
//
// @Override
// public ResultBean<FlowRecordVo> flowRecord(String procInsId, String deployId) {
// ResultBean<com.yxt.anrui.flowable.api.flowtask.FlowRecordVo> flowRecordVoResultBean = flowableService.flowRecord(procInsId, deployId);
// com.yxt.anrui.flowable.api.flowtask.FlowRecordVo flowRecordVo = flowRecordVoResultBean.getData();
// FlowRecordVo flowRecordVo1 = new FlowRecordVo();
// BeanUtil.copyProperties(flowRecordVo,flowRecordVo1);
// ResultBean<FlowRecordVo> resultBean = new ResultBean<FlowRecordVo>().success();
// resultBean.setData(flowRecordVo1);
// return resultBean;
// }
//
// @Override
// public ResultBean<List<PCHistTaskListAndCommentList>> flowRecordAndComment(String procInsId, String deployId) {
// ResultBean< com.yxt.anrui.flowable.api.flowtask.FlowRecordVo> flowRecordVoResultBean = flowableService.flowRecord(procInsId, deployId);
// com.yxt.anrui.flowable.api.flowtask.FlowRecordVo flowRecordVo = flowRecordVoResultBean.getData();
// // private List<com.yxt.anrui.flowable.api.flowtask.FlowTask> flowList = new ArrayList<>();
// List<PCHistTaskListAndCommentList> flowList = new ArrayList<>();
// //流转记录
// List<com.yxt.anrui.flowable.api.flowtask.FlowTask> flowList1 = flowRecordVo.getFlowList();
// flowList1.forEach(f->{
// PCHistTaskListAndCommentList a=new PCHistTaskListAndCommentList();
// a.setTime(f.getFinishTime()==null?new Date():new Date());
// Map<String, Object> stringObjectMap = BeanUtil.beanToMap(f);
// a.setFlowableRecordVo(stringObjectMap);
// a.setState(0+"");
// flowList.add(a);
// });
// //评论记录
// ResultBean<List<ProcessCommentVo>> commentList = getCommentList(procInsId,deployId);
// commentList.getData().forEach(f->{
// PCHistTaskListAndCommentList a=new PCHistTaskListAndCommentList();
// Date time = f.getTime();
// a.setTime(time);
// // f.setTitle(f.getTaskUserInfo().getAssigneeName()+"添加了评论");
// Map<String, Object> stringObjectMap = BeanUtil.beanToMap(f);
// a.setProcessCommentVo(stringObjectMap);
// a.setState(1+"");
// flowList.add(a);
// });
// flowList.sort((t1, t2) -> t2.getTime().compareTo(t1.getTime()));
// //flowRecordVo.setFlowList(flowList);
// ResultBean<List<PCHistTaskListAndCommentList>> resultBean = new ResultBean<List<PCHistTaskListAndCommentList>>().success();
// resultBean.setData(flowList);
// return resultBean;
// }
//
// public ResultBean<List<ProcessCommentVo>> getCommentList(String procInsId, String deployId) {
// ResultBean<List<ProcessCommentVo>> rb = ResultBean.fireFail();
// ResultBean<List<com.yxt.anrui.flowable.api.processcomment.ProcessCommentVo>> commentList = processCommentFeign.getCommentList(procInsId);
// List<ProcessCommentVo> list=new ArrayList<>();
// commentList.getData().forEach(f->{
// ProcessCommentVo processCommentVo = new ProcessCommentVo();
// BeanUtil.copyProperties(f,processCommentVo);
// //processCommentVo.setCreateTime(f.getTime());
// SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
// String format = sdf.format(f.getTime());
// // processCommentVo.setTime(format);
// list.add(processCommentVo);
// });
// return rb.success().setData(list);
// }
// @Override
// public ResultBean taskReject(String businessSid, FlowTaskVo flowTaskVo) {
// return flowableService.taskReject(businessSid, flowTaskVo);
// }
//
// /* @Override
// public ResultBean breakProcess(String businessSid, FlowTaskVo flowTaskVo) {
// return flowableService.breakProcess(businessSid, flowTaskVo);
// }*/
//
// @Override
// public ResultBean stopProcess(FlowTaskVo flowTaskVo) {
// flowableService.stopProcess(flowTaskVo);
// return ResultBean.fireSuccess();
// }
//
// @Override
// public ResultBean deleteProcess(String procInsId) {
// flowableService.deleteProcess(procInsId);
// return ResultBean.fireSuccess();
// }
//
@Autowired
private ProcessCommentFeign processCommentFeign;
@PostMapping("/businessStart/{procDefId}/{userSid}")
public ResultBean businessStart(@ApiParam(value = "流程定义id") @PathVariable(value = "procDefId") String procDefId,
@ApiParam(value = "用户sid") @PathVariable(value = "userSid") String userSid,
@ApiParam(value = "变量集合,json对象") @RequestBody Map<String, Object> variables) {
return flowableService.businessStart(procDefId, userSid, variables);
}
/**
* 流程定义列表 一般业务中不需要查询该列表
*
* @param pageNum 页数
* @param pageSize 容量
* @return
*/
@PostMapping("/processPagerList/{userSid}")
public ResultBean processPagerList(@ApiParam(value = "当前页码", required = true) @RequestParam("pageNum") Integer pageNum,
@ApiParam(value = "每页条数", required = true) @RequestParam("pageSize") Integer pageSize) {
return flowableService.processPagerList(pageNum, pageSize);
}
/**
* 我的流程 我发起的流程
*
* @param userSid 用户sid
* @param taskQueryPagerQuery 查询参数
* @return
*/
@PostMapping("/myprocess/{userSid}")
public ResultBean myprocess(@ApiParam(value = "用户sid") @PathVariable(value = "userSid") String userSid,
@ApiParam(value = "变量集合,json对象") @RequestBody PagerQuery<FlowTaskQuery> taskQueryPagerQuery) {
return flowableService.myprocess(userSid, taskQueryPagerQuery);
}
/**
* 待办列表
*
* @param userSid 用户sid
* @param pQuery 查询参数
* @return
*/
@PostMapping("/todoTaskList/{userSid}")
public ResultBean todoTaskList(@ApiParam(value = "用户sid") @PathVariable(value = "userSid") String userSid,
@ApiParam(value = "变量集合,json对象") @RequestBody PagerQuery<TaskQuery> pQuery) {
SysUser sysUser = sysUserService.fetchBySid(userSid);
String staffSid = sysUser.getStaffSid();
List<SysStaffOrgVo> sysStaffOrgListByStaffSid = sysStaffOrgService.getSysStaffOrgListByStaffSid(staffSid);
StringBuilder sb = new StringBuilder();
for (SysStaffOrgVo s : sysStaffOrgListByStaffSid) {
sb.append(s.getOrgSidPath());
sb.append(",");
}
sb.delete(sb.length() - 1, sb.length());
pQuery.getParams().setOrgSid(sb.toString());
return flowableService.todoTaskList(userSid, pQuery);
}
@ApiOperation(value = "读取xml文件")
@GetMapping("/readXml/{deployId}")
public ResultBean readXml(@ApiParam(value = "流程定义id") @PathVariable(value = "deployId")String deployId) {
return flowableService.readXml(deployId);
}
/**
* 生成流程图
*
* @param procInsId 任务ID
*/
@ApiOperation(value = "生成流程图")
@RequestMapping("/flowViewer/{procInsId}")
public ResultBean getFlowViewer(@PathVariable("procInsId") String procInsId) {
return flowableService.getFlowViewer(procInsId);
}
/**
* 已办任务的查询
*
* @param userSid 用户sid
* @param pQuery 查询参数
* @return
*/
@PostMapping("/doneTaskList/{userSid}")
public ResultBean doneTaskList(@ApiParam(value = "用户sid") @PathVariable(value = "userSid") String userSid,
@ApiParam(value = "变量集合,json对象") @RequestBody PagerQuery<TaskQuery> pQuery) {
return flowableService.doneTaskList(userSid, pQuery);
}
/**
* 处理待办任务
*
* @param variables 表单参数
* @return
*/
/*@ApiOperation(value = "办理(同意)")
@PostMapping("/complete")
public ResultBean complete(@ApiParam(value = "变量集合,json对象") @RequestBody Map<String, Object> variables) {
return flowableService.complete(variables);
}*/
/**
* 流程撤回
*
* @param userSid 用户sid
* @param flowTaskVo 参数 工作流任务相关--请求参数
* @return
*/
@ApiOperation(value = "撤回流程")
@PostMapping(value = "/revokeProcess/{userSid}/{businessSid}")
public ResultBean revokeProcess( @ApiParam(value = "用户sid") @PathVariable(value = "userSid") String userSid,
@ApiParam(value = "业务sid") @PathVariable(value = "businessSid") String businessSid,
@ApiParam(value = "工作流任务相关--请求参数") @RequestBody FlowTaskVo flowTaskVo) {
return flowableService.revokeProcess(userSid, businessSid, flowTaskVo);
}
/**
* 流程历史流转记录
*
* @param procInsId 流程实例id
* @param deployId 目前没用
* @return
*/
@ApiOperation(value = "流程历史流转记录")
@GetMapping(value = "/task/flowRecord/{procInsId}/{deployId}")
public ResultBean<FlowRecordVo> flowRecord(@ApiParam(value = "流程实例id") @PathVariable(value = "procInsId") String procInsId,
@ApiParam(value = "目前没用") @PathVariable(value = "deployId") String deployId) {
ResultBean<FlowRecordVo> flowRecordVoResultBean = flowableService.flowRecord(procInsId, deployId);
FlowRecordVo flowRecordVo = flowRecordVoResultBean.getData();
FlowRecordVo flowRecordVo1 = new FlowRecordVo();
BeanUtil.copyProperties(flowRecordVo,flowRecordVo1);
ResultBean<FlowRecordVo> resultBean = new ResultBean<FlowRecordVo>().success();
resultBean.setData(flowRecordVo1);
return resultBean;
}
/**
* 流程历史流转记录 包含了评论的数据
*
* @param procInsId 流程实例id
* @param deployId 目前没用
* @return
*/
@ApiOperation(value = "流程历史流转记录")
@GetMapping(value = "/task/flowRecordAndComment/{procInsId}/{deployId}")
public ResultBean<List<PCHistTaskListAndCommentList>>flowRecordAndComment(@ApiParam(value = "流程实例id") @PathVariable(value = "procInsId") String procInsId,
@ApiParam(value = "目前没用") @PathVariable(value = "deployId") String deployId) {
ResultBean< FlowRecordVo> flowRecordVoResultBean = flowableService.flowRecord(procInsId, deployId);
FlowRecordVo flowRecordVo = flowRecordVoResultBean.getData();
// private List<FlowTask> flowList = new ArrayList<>();
List<PCHistTaskListAndCommentList> flowList = new ArrayList<>();
//流转记录
List<FlowTask> flowList1 = flowRecordVo.getFlowList();
flowList1.forEach(f->{
PCHistTaskListAndCommentList a=new PCHistTaskListAndCommentList();
a.setTime(f.getFinishTime()==null?new Date():new Date());
Map<String, Object> stringObjectMap = BeanUtil.beanToMap(f);
a.setFlowableRecordVo(stringObjectMap);
a.setState(0+"");
flowList.add(a);
});
//评论记录
ResultBean<List<ProcessCommentVo>> commentList = getCommentList(procInsId,deployId);
commentList.getData().forEach(f->{
PCHistTaskListAndCommentList a=new PCHistTaskListAndCommentList();
Date time = f.getTime();
a.setTime(time);
// f.setTitle(f.getTaskUserInfo().getAssigneeName()+"添加了评论");
Map<String, Object> stringObjectMap = BeanUtil.beanToMap(f);
a.setProcessCommentVo(stringObjectMap);
a.setState(1+"");
flowList.add(a);
});
flowList.sort((t1, t2) -> t2.getTime().compareTo(t1.getTime()));
//flowRecordVo.setFlowList(flowList);
ResultBean<List<PCHistTaskListAndCommentList>> resultBean = new ResultBean<List<PCHistTaskListAndCommentList>>().success();
resultBean.setData(flowList);
return resultBean;
}
public ResultBean<List<ProcessCommentVo>> getCommentList(String procInsId, String deployId) {
ResultBean<List<ProcessCommentVo>> rb = ResultBean.fireFail();
ResultBean<List<ProcessCommentVo>> commentList = processCommentFeign.getCommentList(procInsId);
List<ProcessCommentVo> list=new ArrayList<>();
commentList.getData().forEach(f->{
ProcessCommentVo processCommentVo = new ProcessCommentVo();
BeanUtil.copyProperties(f,processCommentVo);
//processCommentVo.setCreateTime(f.getTime());
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
String format = sdf.format(f.getTime());
// processCommentVo.setTime(format);
list.add(processCommentVo);
});
return rb.success().setData(list);
}
/**
* 驳回任务
*
* @param flowTaskVo
* @return
*/
@ApiOperation(value = "驳回任务")
@PostMapping(value = "/reject/{businessSid}")
public ResultBean taskReject(@ApiParam(value = "业务sid") @PathVariable(value = "businessSid") String businessSid,
@ApiParam(value = "工作流任务相关--请求参数") @RequestBody FlowTaskVo flowTaskVo) {
return flowableService.taskReject(businessSid, flowTaskVo);
}
@ApiOperation(value = "终止任务")
@PostMapping(value = "/breakProcess/{businessSid}")
public ResultBean breakProcess(@ApiParam(value = "业务sid") @PathVariable(value = "businessSid") String businessSid,
@RequestBody FlowTaskVo flowTaskVo) {
return flowableService.breakProcess(businessSid, flowTaskVo);
}
/**
* 取消申请
*
* @param flowTaskVo
* @return
*/
@ApiOperation(value = "取消申请")
@PostMapping(value = "/task/stopProcess")
@ResponseBody
ResultBean stopProcess(@ApiParam(value = "工作流任务相关--请求参数") @RequestBody FlowTaskVo flowTaskVo) {
flowableService.stopProcess(flowTaskVo);
return ResultBean.fireSuccess();
}
public ResultBean deleteProcess(String procInsId) {
flowableService.deleteProcess(procInsId);
return ResultBean.fireSuccess();
}
/**
* 待办列表
@ -225,7 +329,8 @@ public class FlowableRest {
*/
@ApiOperation(value = "总待办列表")
@PostMapping("/todoAllTaskList/{userSid}")
public ResultBean<Page<FlowTaskDto>> todoAllTaskList(@PathVariable("userSid") String userSid, PagerQuery<FlowTaskAllQuery> pQuery) {//待办列表
public ResultBean<Page<FlowTaskDto>> todoAllTaskList(@ApiParam(value = "用户sid") @PathVariable(value = "userSid") String userSid,
@ApiParam(value = "变量集合,json对象") @RequestBody PagerQuery<FlowTaskAllQuery> pQuery){//待办列表
System.out.println("llll--userSid: "+userSid);
SysUser sysUser = sysUserService.fetchBySid(userSid);
String staffSid = sysUser.getStaffSid();
@ -248,53 +353,80 @@ public class FlowableRest {
return success;
}
//
// @Override
// public ResultBean<Integer> getTodoNum(String userSid) {
// ResultBean<Integer> rb=ResultBean.fireFail();
// if(StringUtils.isBlank(userSid)){
// return rb.setMsg("用户sid不能为空");
// }
// return flowableService.getTodoNum(userSid);
// }
// @Override
// public ResultBean<Integer> getTodoNum(String userSid,String orgPath) {
// ResultBean<Integer> rb=ResultBean.fireFail();
// if(StringUtils.isBlank(userSid)){
// return rb.setMsg("用户sid不能为空");
// }
// if(StringUtils.isBlank(orgPath)){
// return rb.setMsg("用户orgPath不能为空");
// }
// return flowableService.getTodoNum(userSid,orgPath);
// }
//
// @Override
// public ResultBean<Page<FlowTaskDto>> doneAllTaskList(String userSid, PagerQuery<FlowTaskAllQuery> pQuery) {//已办列表
// ResultBean<Page<com.yxt.anrui.flowable.api.flowtask.FlowTaskDto>> pageResultBean = flowableService.doneAllTaskList(userSid, pQuery);
// Page<FlowTaskDto> page = new Page<>();
//
// BeanUtil.copyProperties(pageResultBean.getData(),page);
//
// ResultBean< Page<FlowTaskDto>> success = new ResultBean< Page<FlowTaskDto>>().success();
// success.setData(page);
// return success;
// }
//
// @Override
// public ResultBean getNextTasks(String taskId) {
// return flowableService.getNextTasks(taskId);
// }
//
// @Override
// public ResultBean<PagerVo<FlowTaskDoVo>> todoApp(PagerQuery<FlowTaskDoQuery> pagerQuery) {
// return null;//flowableService.todoApp(pagerQuery);
// }
//
// @Override
// public ResultBean<PagerVo<FlowTaskFinishVo>> finishApp(PagerQuery<FlowTaskDoQuery> pagerQuery) {
// return null;//flowableService.finishApp(pagerQuery);
// }
@ApiOperation(value = "业务系统查询待办任务列表数量")
@GetMapping("/getTodoNum/{userSid}")
ResultBean<Integer> getTodoNum(@PathVariable(value = "userSid") String userSid){
ResultBean<Integer> rb=ResultBean.fireFail();
if(StringUtils.isBlank(userSid)){
return rb.setMsg("用户sid不能为空");
}
return flowableService.getTodoNum(userSid);
}
@ApiOperation(value = "业务系统查询待办任务列表数量")
@GetMapping("/getTodoNum/{userSid}/{orgPath}")
ResultBean<Integer> getTodoNum(@PathVariable(value = "userSid")String userSid,
@PathVariable(value = "orgPath") String orgPath) {
ResultBean<Integer> rb=ResultBean.fireFail();
if(StringUtils.isBlank(userSid)){
return rb.setMsg("用户sid不能为空");
}
if(StringUtils.isBlank(orgPath)){
return rb.setMsg("用户orgPath不能为空");
}
return flowableService.getTodoNum(userSid,orgPath);
}
/**
* 已办任务的查询
*
* @param userSid 用户sid
* @param pQuery 查询参数
* @return
*/
@ApiOperation(value = "总已办列表")
@PostMapping("/doneAllTaskList/{userSid}")
public ResultBean<Page<FlowTaskDto>> doneAllTaskList(@ApiParam(value = "用户sid") @PathVariable(value = "userSid") String userSid, @ApiParam(value = "变量集合,json对象") @RequestBody PagerQuery<FlowTaskAllQuery> pQuery){//已办列表
ResultBean<Page<FlowTaskDto>> pageResultBean = flowableService.doneAllTaskList(userSid, pQuery);
Page<FlowTaskDto> page = new Page<>();
BeanUtil.copyProperties(pageResultBean.getData(),page);
ResultBean< Page<FlowTaskDto>> success = new ResultBean< Page<FlowTaskDto>>().success();
success.setData(page);
return success;
}
/**
* 查询下一环节
*
* @param taskId 查询参数
* @return
*/
@ApiOperation(value = "查询下一环节")
@PostMapping("/getNextTasks/{taskId}")
@ResponseBody
public ResultBean getNextTasks(@ApiParam(value = "taskId") @PathVariable(value = "taskId") String taskId) {
return flowableService.getNextTasks(taskId);
}
@ApiOperation(value = "移动端总待办列表")
@PostMapping("/todoApp")
public ResultBean<PagerVo<FlowTaskDoVo>> todoApp(@RequestBody PagerQuery<FlowTaskDoQuery> pagerQuery) {
return null;//flowableService.todoApp(pagerQuery);
}
@ApiOperation(value = "移动端总已办列表")
@PostMapping("/finishedApp")
ResultBean<PagerVo<FlowTaskFinishVo>> finishApp(@RequestBody PagerQuery<FlowTaskDoQuery> pagerQuery) {
return null;//flowableService.finishApp(pagerQuery);
}
@GetMapping("/task/{userSid}")
public ResultBean<Page<FlowTaskVo>> task(@PathVariable("userSid") String userSid) {//待办列表
SysUser sysUser = sysUserService.fetchBySid(userSid);

647
yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/flow/FlowableService.java

@ -28,19 +28,18 @@ package com.yxt.supervise.system.flow;
//import cn.hutool.core.bean.BeanUtil;
//import com.alibaba.fastjson.JSON;
//import com.alibaba.fastjson.JSONObject;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
//import com.yxt.anrui.flowable.api.flow.UserAndOrgPath;
//import com.yxt.anrui.flowable.api.flowdefinition.FlowDefinitionFeign;
//import com.yxt.anrui.flowable.api.flowtask.FlowRecordVo;
//import com.yxt.anrui.flowable.api.flowtask.FlowTaskDto;
import com.yxt.common.base.config.component.FileUploadComponent;
import com.yxt.supervise.feign.flowable.*;
import com.yxt.supervise.feign.flowable.flowtask.FlowTaskFeign;
//import com.yxt.anrui.flowable.api.flowtask.LatestTaskVo;
//import com.yxt.anrui.flowable.api.sysformlink.SysFormLinkFeign;
//import com.yxt.anrui.flowable.api.sysprourl.SysProUrlFeign;
import com.yxt.supervise.feign.flowable.BusinessTaskParam;
import com.yxt.supervise.feign.flowable.BusinessTaskQuery;
import com.yxt.supervise.feign.flowable.BusinessVariables;
import com.yxt.supervise.feign.flowable.SQLOperationSymbol;
//import com.yxt.common.base.config.component.FileUploadComponent;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.ConstantUtils;
@ -48,8 +47,16 @@ import com.yxt.common.base.utils.StringUtils;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.supervise.feign.flowable.flowtask.LatestTaskVo;
import com.yxt.supervise.system.flow.feign.FlowDefinitionFeign;
import com.yxt.supervise.system.flow.feign.SysFormLinkFeign;
import com.yxt.supervise.system.flow.feign.SysProUrlFeign;
import com.yxt.supervise.system.flow.feign.form.FlowDefinitionFeignBusinessStartDTO;
import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import java.util.*;
import java.util.stream.Collectors;
@ -69,256 +76,254 @@ import java.util.stream.Collectors;
*/
@Service
public class FlowableService extends MybatisBaseService<FlowableMapper, Flowable> {
// @Autowired
// private FlowDefinitionFeign flowDefinitionFeign;
@Autowired
private FlowDefinitionFeign flowDefinitionFeign;
@Autowired
private FlowTaskFeign flowTaskFeign;
// @Autowired
// private SysFormLinkFeign sysFormLinkFeign;
// @Autowired
// private SysProUrlFeign sysProUrlFeign;
// @Autowired
// private FileUploadComponent fileUploadComponent;
///*
//
// public ResultBean businessStart(@ApiParam(value = "流程定义id") @PathVariable(value = "procDefId") String procDefId,
// @ApiParam(value = "用户sid") @PathVariable(value = "userSid") String userSid,
// @ApiParam(value = "变量集合,json对象") @RequestBody Map<String, Object> variables) {
//
// FlowDefinitionFeignBusinessStartDTO dto = new FlowDefinitionFeignBusinessStartDTO();
// dto.setProcDefId(procDefId);
// dto.setUserSid(userSid);
// dto.setVariables(variables);
// variables.put("procDefId", procDefId);
// variables.put("userSid", userSid);
// variables.put("businessSid", UUID.randomUUID().toString());
// BusinessVariables bv = BusinessVariables.builder().build();
// bv.setFormVariables(variables);
// ResultBean rb = flowDefinitionFeign.businessStart(bv);
// return rb;
// }
//*/
//
// public ResultBean myprocess(String userSid, PagerQuery<FlowTaskQuery> taskQueryPagerQuery) {
// PagerQuery<BusinessTaskQuery> pq = new PagerQuery<>();
// String days = taskQueryPagerQuery.getParams().getDays();
// String zd = taskQueryPagerQuery.getParams().getZd();
// pq.setCurrent(taskQueryPagerQuery.getCurrent());
// pq.setSize(taskQueryPagerQuery.getSize());
// BusinessTaskQuery businessTaskQuery = BusinessTaskQuery.create();
// if (StringUtils.isNotBlank(zd)) {
// BusinessTaskParam businessTaskParam = new BusinessTaskParam();
// businessTaskParam.setField("zd");
// businessTaskParam.setSqlOperationSymbol(SQLOperationSymbol.LIKE);
// businessTaskParam.setValue(zd);
// businessTaskQuery.add(businessTaskParam);
// }
// if (StringUtils.isNotBlank(days)) {
// BusinessTaskParam businessTaskParam = new BusinessTaskParam();
// businessTaskParam.setField("days");
// businessTaskParam.setSqlOperationSymbol(SQLOperationSymbol.EQUAL);
// businessTaskParam.setValue(days);
// businessTaskQuery.add(businessTaskParam);
// }
// pq.setParams(businessTaskQuery);
// return flowTaskFeign.businessMyprocess(userSid, pq);
// }
//
// public ResultBean processPagerList(Integer pageNum, Integer pageSize) {
// return flowDefinitionFeign.pagerList(pageNum, pageSize);
// }
//
// public ResultBean todoTaskList(String userSid, PagerQuery<TaskQuery> pQuery) {
// TaskQuery params = pQuery.getParams();
// if (StringUtils.isBlank(userSid)) {
// return ResultBean.fireFail().setMsg("用户SID为空");
// }
// PagerQuery<BusinessTaskQuery> taskQueryPagerQuery = new PagerQuery<>();
// taskQueryPagerQuery.setCurrent(pQuery.getCurrent()).setSize(pQuery.getSize());
//
// String orgSid = params.getOrgSid();
// String days = params.getDays();
// String processDefinitionId = params.getProcessDefinitionId();
// String startTime = params.getStartTime();
// BusinessTaskQuery taskQuery = new BusinessTaskQuery();
// List<BusinessTaskParam> taskParamList = new ArrayList<>();
// if (StringUtils.isNotBlank(days)) {
// BusinessTaskParam taskParam = new BusinessTaskParam();
// taskParam.setField("zd1");
// taskParam.setValue(days);
// taskParam.setSqlOperationSymbol(SQLOperationSymbol.EQUAL);
// taskParamList.add(taskParam);
// }
// if (StringUtils.isNotBlank(startTime)) {
// BusinessTaskParam taskParam = new BusinessTaskParam();
// taskParam.setField("startTime");
// taskParam.setValue(startTime);
// taskParam.setSqlOperationSymbol(SQLOperationSymbol.EQUAL);
// taskParamList.add(taskParam);
// }
// if (StringUtils.isNotBlank(processDefinitionId)) {
// BusinessTaskParam taskParam = new BusinessTaskParam();
// taskParam.setField("processDefinitionId");
// taskParam.setSqlOperationSymbol(SQLOperationSymbol.NONE);
// taskParam.setValue(processDefinitionId);
// taskParamList.add(taskParam);
// }
// if (StringUtils.isNotBlank(orgSid)) {
// BusinessTaskParam taskParam = new BusinessTaskParam();
// taskParam.setField(BusinessVariables.ORGPATH);
// taskParam.setSqlOperationSymbol(SQLOperationSymbol.NONE);
// taskParam.setValue(orgSid);
// taskParamList.add(taskParam);
// }
// taskQuery.setFields(taskParamList);
// taskQueryPagerQuery.setParams(taskQuery);
// return flowTaskFeign.businessTodoList(userSid, taskQueryPagerQuery);
// }
//
// public ResultBean doneTaskList(String userSid, PagerQuery<TaskQuery> pQuery) {
// TaskQuery params = pQuery.getParams();
// if (StringUtils.isBlank(userSid)) {
// return ResultBean.fireFail().setMsg("用户SID为空");
// }
// PagerQuery<BusinessTaskQuery> taskQueryPagerQuery = new PagerQuery<>();
// taskQueryPagerQuery.setCurrent(pQuery.getCurrent()).setSize(pQuery.getSize());
// String zd1 = params.getZd1();
// String processDefinitionId = params.getProcessDefinitionId();
// String startTime = params.getStartTime();
// BusinessTaskQuery taskQuery = new BusinessTaskQuery();
// List<BusinessTaskParam> taskParamList = new ArrayList<>();
// if (StringUtils.isNotBlank(zd1)) {
// BusinessTaskParam taskParam = new BusinessTaskParam();
// taskParam.setField("zd1");
// taskParam.setValue(zd1);
// taskParam.setSqlOperationSymbol(SQLOperationSymbol.EQUAL);
// taskParamList.add(taskParam);
// }
// if (StringUtils.isNotBlank(startTime)) {
// BusinessTaskParam taskParam = new BusinessTaskParam();
// taskParam.setField("startTime");
// taskParam.setValue(startTime);
// taskParam.setSqlOperationSymbol(SQLOperationSymbol.EQUAL);
// taskParamList.add(taskParam);
// }
// if (StringUtils.isNotBlank(processDefinitionId)) {
// BusinessTaskParam taskParam = new BusinessTaskParam();
// taskParam.setField("processDefinitionId");
// taskParam.setSqlOperationSymbol(SQLOperationSymbol.NONE);
// taskParam.setValue(processDefinitionId);
// taskParamList.add(taskParam);
// }
// taskQuery.setFields(taskParamList);
// taskQueryPagerQuery.setParams(taskQuery);
// return flowTaskFeign.businessDoneList(userSid, taskQueryPagerQuery);
// }
//
// /**
// * 撤回
// *
// * @param userSid
// * @param businessSid
// * @param flowTaskVo
// * @return
// */
// public ResultBean revokeProcess(String userSid, String businessSid, FlowTaskVo flowTaskVo) {
// com.yxt.anrui.flowable.api.flowtask.FlowTaskVo fl = new com.yxt.anrui.flowable.api.flowtask.FlowTaskVo();
// BeanUtil.copyProperties(flowTaskVo, fl);
// fl.setUserSid(userSid);
// ResultBean<List<LatestTaskVo>> resultBean = flowTaskFeign.revokeProcess(fl);
// if (!resultBean.getSuccess()) {
// return resultBean;
// }
// String nodeState = resultBean.getData().get(0).getName_();
// String taskDefKey = resultBean.getData().get(0).getTask_def_key_();
// String incomingSourceRef = resultBean.getData().get(0).getIncomingSourceRef();
// Map<String, Object> map = new HashMap<>();
// map.put("businessSid", businessSid);
// /* if (incomingSourceRef.contains("start")) {
// map.put("nodeState", SysFormLinkFlowStateEnum.UNCOMMITTED.getState());
// map.put("taskDefKey", taskDefKey);
// map.put("flowState", SysFormLinkFlowStateEnum.UNCOMMITTED.getCode());
// } else {*/
// map.put("nodeState", nodeState);
// map.put("taskDefKey", taskDefKey);
// map.put("flowState", nodeState);
// /* }*/
// sysFormLinkFeign.updateFiled(map);
// return new ResultBean().success();
// }
//
// /**
// * 流程历史流转记录
// *
// * @param procInsId
// * @param deployId
// * @return
// */
// public ResultBean<FlowRecordVo> flowRecord(String procInsId, String deployId) {
// ResultBean<FlowRecordVo> flowRecordVoResultBean = flowTaskFeign.businessFlowRecord(procInsId);
// return flowRecordVoResultBean;//flowTaskFeign.businessFlowRecord(procInsId, deployId);
// }
//
// /**
// * 驳回
// *
// * @param businessSid
// * @param flowTaskVo
// * @return
// */
// public ResultBean taskReject(String businessSid, FlowTaskVo flowTaskVo) {
// com.yxt.anrui.flowable.api.flowtask.FlowTaskVo fl = new com.yxt.anrui.flowable.api.flowtask.FlowTaskVo();
// BeanUtil.copyProperties(flowTaskVo, fl);
// ResultBean<List<LatestTaskVo>> resultBean = flowTaskFeign.taskReject(fl);
// if (!resultBean.getSuccess()) {
// return resultBean;
// }
// String nodeState = resultBean.getData().get(0).getName_();
// String taskDefKey = resultBean.getData().get(0).getTask_def_key_();
// String incomingSourceRef = resultBean.getData().get(0).getIncomingSourceRef();
// Map<String, Object> map = new HashMap<>();
// map.put("businessSid", businessSid);
// map.put("nodeState", nodeState);
// map.put("taskDefKey", taskDefKey);
//// if (incomingSourceRef.contains("start")) {
// map.put("flowState", nodeState);
//// }
// sysFormLinkFeign.updateFiled(map);
// return new ResultBean().success();
// }
//
// /**
// * 终止流程
// *
// * @param flowTaskVo
// * @return
// */
// /* public ResultBean breakProcess(String businessSid, FlowTaskVo flowTaskVo) {
// com.yxt.anrui.flowable.api.flowtask.FlowTaskVo fl = new com.yxt.anrui.flowable.api.flowtask.FlowTaskVo();
// BeanUtil.copyProperties(flowTaskVo, fl);
// ResultBean resultBean = flowTaskFeign.breakProcess(fl);
// if (!resultBean.getSuccess()) {
// return resultBean;
@Autowired
private SysFormLinkFeign sysFormLinkFeign;
@Autowired
private SysProUrlFeign sysProUrlFeign;
@Autowired
private FileUploadComponent fileUploadComponent;
public ResultBean businessStart(@ApiParam(value = "流程定义id") @PathVariable(value = "procDefId") String procDefId,
@ApiParam(value = "用户sid") @PathVariable(value = "userSid") String userSid,
@ApiParam(value = "变量集合,json对象") @RequestBody Map<String, Object> variables) {
FlowDefinitionFeignBusinessStartDTO dto = new FlowDefinitionFeignBusinessStartDTO();
dto.setProcDefId(procDefId);
dto.setUserSid(userSid);
dto.setVariables(variables);
variables.put("procDefId", procDefId);
variables.put("userSid", userSid);
variables.put("businessSid", UUID.randomUUID().toString());
BusinessVariables bv = BusinessVariables.builder().build();
bv.setFormVariables(variables);
ResultBean rb = flowDefinitionFeign.businessStart(bv);
return rb;
}
public ResultBean myprocess(String userSid, PagerQuery<FlowTaskQuery> taskQueryPagerQuery) {
PagerQuery<BusinessTaskQuery> pq = new PagerQuery<>();
String days = taskQueryPagerQuery.getParams().getDays();
String zd = taskQueryPagerQuery.getParams().getZd();
pq.setCurrent(taskQueryPagerQuery.getCurrent());
pq.setSize(taskQueryPagerQuery.getSize());
BusinessTaskQuery businessTaskQuery = BusinessTaskQuery.create();
if (StringUtils.isNotBlank(zd)) {
BusinessTaskParam businessTaskParam = new BusinessTaskParam();
businessTaskParam.setField("zd");
businessTaskParam.setSqlOperationSymbol(SQLOperationSymbol.LIKE);
businessTaskParam.setValue(zd);
businessTaskQuery.add(businessTaskParam);
}
if (StringUtils.isNotBlank(days)) {
BusinessTaskParam businessTaskParam = new BusinessTaskParam();
businessTaskParam.setField("days");
businessTaskParam.setSqlOperationSymbol(SQLOperationSymbol.EQUAL);
businessTaskParam.setValue(days);
businessTaskQuery.add(businessTaskParam);
}
pq.setParams(businessTaskQuery);
return flowTaskFeign.businessMyprocess(userSid, pq);
}
public ResultBean processPagerList(Integer pageNum, Integer pageSize) {
return flowDefinitionFeign.pagerList(pageNum, pageSize);
}
public ResultBean todoTaskList(String userSid, PagerQuery<TaskQuery> pQuery) {
TaskQuery params = pQuery.getParams();
if (StringUtils.isBlank(userSid)) {
return ResultBean.fireFail().setMsg("用户SID为空");
}
PagerQuery<BusinessTaskQuery> taskQueryPagerQuery = new PagerQuery<>();
taskQueryPagerQuery.setCurrent(pQuery.getCurrent()).setSize(pQuery.getSize());
String orgSid = params.getOrgSid();
String days = params.getDays();
String processDefinitionId = params.getProcessDefinitionId();
String startTime = params.getStartTime();
BusinessTaskQuery taskQuery = new BusinessTaskQuery();
List<BusinessTaskParam> taskParamList = new ArrayList<>();
if (StringUtils.isNotBlank(days)) {
BusinessTaskParam taskParam = new BusinessTaskParam();
taskParam.setField("zd1");
taskParam.setValue(days);
taskParam.setSqlOperationSymbol(SQLOperationSymbol.EQUAL);
taskParamList.add(taskParam);
}
if (StringUtils.isNotBlank(startTime)) {
BusinessTaskParam taskParam = new BusinessTaskParam();
taskParam.setField("startTime");
taskParam.setValue(startTime);
taskParam.setSqlOperationSymbol(SQLOperationSymbol.EQUAL);
taskParamList.add(taskParam);
}
if (StringUtils.isNotBlank(processDefinitionId)) {
BusinessTaskParam taskParam = new BusinessTaskParam();
taskParam.setField("processDefinitionId");
taskParam.setSqlOperationSymbol(SQLOperationSymbol.NONE);
taskParam.setValue(processDefinitionId);
taskParamList.add(taskParam);
}
if (StringUtils.isNotBlank(orgSid)) {
BusinessTaskParam taskParam = new BusinessTaskParam();
taskParam.setField(BusinessVariables.ORGPATH);
taskParam.setSqlOperationSymbol(SQLOperationSymbol.NONE);
taskParam.setValue(orgSid);
taskParamList.add(taskParam);
}
taskQuery.setFields(taskParamList);
taskQueryPagerQuery.setParams(taskQuery);
return flowTaskFeign.businessTodoList(userSid, taskQueryPagerQuery);
}
public ResultBean doneTaskList(String userSid, PagerQuery<TaskQuery> pQuery) {
TaskQuery params = pQuery.getParams();
if (StringUtils.isBlank(userSid)) {
return ResultBean.fireFail().setMsg("用户SID为空");
}
PagerQuery<BusinessTaskQuery> taskQueryPagerQuery = new PagerQuery<>();
taskQueryPagerQuery.setCurrent(pQuery.getCurrent()).setSize(pQuery.getSize());
String zd1 = params.getZd1();
String processDefinitionId = params.getProcessDefinitionId();
String startTime = params.getStartTime();
BusinessTaskQuery taskQuery = new BusinessTaskQuery();
List<BusinessTaskParam> taskParamList = new ArrayList<>();
if (StringUtils.isNotBlank(zd1)) {
BusinessTaskParam taskParam = new BusinessTaskParam();
taskParam.setField("zd1");
taskParam.setValue(zd1);
taskParam.setSqlOperationSymbol(SQLOperationSymbol.EQUAL);
taskParamList.add(taskParam);
}
if (StringUtils.isNotBlank(startTime)) {
BusinessTaskParam taskParam = new BusinessTaskParam();
taskParam.setField("startTime");
taskParam.setValue(startTime);
taskParam.setSqlOperationSymbol(SQLOperationSymbol.EQUAL);
taskParamList.add(taskParam);
}
if (StringUtils.isNotBlank(processDefinitionId)) {
BusinessTaskParam taskParam = new BusinessTaskParam();
taskParam.setField("processDefinitionId");
taskParam.setSqlOperationSymbol(SQLOperationSymbol.NONE);
taskParam.setValue(processDefinitionId);
taskParamList.add(taskParam);
}
taskQuery.setFields(taskParamList);
taskQueryPagerQuery.setParams(taskQuery);
return flowTaskFeign.businessDoneList(userSid, taskQueryPagerQuery);
}
/**
* 撤回
*
* @param userSid
* @param businessSid
* @param flowTaskVo
* @return
*/
public ResultBean revokeProcess(String userSid, String businessSid, FlowTaskVo flowTaskVo) {
FlowTaskVo fl = new FlowTaskVo();
BeanUtil.copyProperties(flowTaskVo, fl);
fl.setUserSid(userSid);
ResultBean<List<LatestTaskVo>> resultBean = flowTaskFeign.revokeProcess(fl);
if (!resultBean.getSuccess()) {
return resultBean;
}
String nodeState = resultBean.getData().get(0).getName_();
String taskDefKey = resultBean.getData().get(0).getTask_def_key_();
String incomingSourceRef = resultBean.getData().get(0).getIncomingSourceRef();
Map<String, Object> map = new HashMap<>();
map.put("businessSid", businessSid);
/* if (incomingSourceRef.contains("start")) {
map.put("nodeState", SysFormLinkFlowStateEnum.UNCOMMITTED.getState());
map.put("taskDefKey", taskDefKey);
map.put("flowState", SysFormLinkFlowStateEnum.UNCOMMITTED.getCode());
} else {*/
map.put("nodeState", nodeState);
map.put("taskDefKey", taskDefKey);
map.put("flowState", nodeState);
/* }*/
sysFormLinkFeign.updateFiled(map);
return new ResultBean().success();
}
/**
* 流程历史流转记录
*
* @param procInsId
* @param deployId
* @return
*/
public ResultBean<FlowRecordVo> flowRecord(String procInsId, String deployId) {
ResultBean<FlowRecordVo> flowRecordVoResultBean = flowTaskFeign.businessFlowRecord(procInsId);
return flowRecordVoResultBean;//flowTaskFeign.businessFlowRecord(procInsId, deployId);
}
/**
* 驳回
*
* @param businessSid
* @param flowTaskVo
* @return
*/
public ResultBean taskReject(String businessSid, FlowTaskVo flowTaskVo) {
FlowTaskVo fl = new FlowTaskVo();
BeanUtil.copyProperties(flowTaskVo, fl);
ResultBean<List<LatestTaskVo>> resultBean = flowTaskFeign.taskReject(fl);
if (!resultBean.getSuccess()) {
return resultBean;
}
String nodeState = resultBean.getData().get(0).getName_();
String taskDefKey = resultBean.getData().get(0).getTask_def_key_();
String incomingSourceRef = resultBean.getData().get(0).getIncomingSourceRef();
Map<String, Object> map = new HashMap<>();
map.put("businessSid", businessSid);
map.put("nodeState", nodeState);
map.put("taskDefKey", taskDefKey);
// if (incomingSourceRef.contains("start")) {
map.put("flowState", nodeState);
// }
// Map<String, Object> map = new HashMap<>();
// map.put("businessSid", businessSid);
// map.put("nodeState", String.valueOf(resultBean.getData()));
// map.put("taskDefKey", "Event_end");
// map.put("flowState", FlowComment.STOP.getRemark());
// sysFormLinkFeign.updateFiled(map);
// return resultBean.success();
// }*/
// public void stopProcess(FlowTaskVo flowTaskVo) {
// com.yxt.anrui.flowable.api.flowtask.FlowTaskVo fl = new com.yxt.anrui.flowable.api.flowtask.FlowTaskVo();
// BeanUtil.copyProperties(flowTaskVo, fl);
// flowTaskFeign.stopProcess(flowTaskVo.getUserSid(), fl);
// }
//
// public void deleteProcess(String procInsId) {
// flowTaskFeign.deleteProcess(procInsId);
// }
//
//
sysFormLinkFeign.updateFiled(map);
return new ResultBean().success();
}
/**
* 终止流程
*
* @param flowTaskVo
* @return
*/
public ResultBean breakProcess(String businessSid, FlowTaskVo flowTaskVo) {
FlowTaskVo fl = new FlowTaskVo();
BeanUtil.copyProperties(flowTaskVo, fl);
ResultBean resultBean = flowTaskFeign.breakProcess(fl);
if (!resultBean.getSuccess()) {
return resultBean;
}
Map<String, Object> map = new HashMap<>();
map.put("businessSid", businessSid);
map.put("nodeState", String.valueOf(resultBean.getData()));
map.put("taskDefKey", "Event_end");
map.put("flowState", "终止");
sysFormLinkFeign.updateFiled(map);
return resultBean.success();
}
public void stopProcess(FlowTaskVo flowTaskVo) {
FlowTaskVo fl = new FlowTaskVo();
BeanUtil.copyProperties(flowTaskVo, fl);
flowTaskFeign.stopProcess(flowTaskVo.getUserSid(), fl);
}
public void deleteProcess(String procInsId) {
flowTaskFeign.deleteProcess(procInsId);
}
public ResultBean<Page<FlowTaskDto>> todoAllTaskList(String userSid, PagerQuery<FlowTaskAllQuery> pQuery) {
ResultBean<Page<FlowTaskDto>> rb = new ResultBean<Page<FlowTaskDto>>().fireFail();
FlowTaskAllQuery params = pQuery.getParams();
@ -375,75 +380,75 @@ public class FlowableService extends MybatisBaseService<FlowableMapper, Flowable
taskQueryPagerQuery.setParams(taskQuery);
return flowTaskFeign.businessTodoList(userSid, taskQueryPagerQuery);
}
//
// public ResultBean<Integer> getTodoNum(String userSid) {
// return flowTaskFeign.getTodoNum(userSid);
// }
// public ResultBean<Integer> getTodoNum(String userSid,String orgPath) {
// UserAndOrgPath userAndOrgPath = new UserAndOrgPath();
// userAndOrgPath.setOrgPath(orgPath);
// userAndOrgPath.setUserSid(userSid);
// return flowTaskFeign.getTodoNum(userAndOrgPath);
// }
//
// public ResultBean getNextTasks(String taskId) {
// return flowTaskFeign.getNextTasks(taskId);
// }
//
//
// public ResultBean<Page<FlowTaskDto>> doneAllTaskList(String userSid, PagerQuery<FlowTaskAllQuery> pQuery) {
// ResultBean<Page<FlowTaskDto>> rb = new ResultBean<Page<FlowTaskDto>>().fireFail();
// FlowTaskAllQuery params = pQuery.getParams();
// if (StringUtils.isBlank(userSid)) {
// return rb.setMsg("用户SID为空");
// }
// PagerQuery<BusinessTaskQuery> taskQueryPagerQuery = new PagerQuery<>();
// taskQueryPagerQuery.setCurrent(pQuery.getCurrent()).setSize(pQuery.getSize());
// String processDefinitionId = params.getProcessDefinitionId();
// String proDefName = params.getProDefName();
// String startDate = params.getStartDate();
// String endDate = params.getEndDate();
// BusinessTaskQuery taskQuery = new BusinessTaskQuery();
// List<BusinessTaskParam> taskParamList = new ArrayList<>();
// if (StringUtils.isNotBlank(proDefName)) {
// BusinessTaskParam taskParam = new BusinessTaskParam();
// taskParam.setField("proDefName");
// taskParam.setValue(proDefName);
// taskParam.setSqlOperationSymbol(SQLOperationSymbol.LIKE);
// taskParamList.add(taskParam);
// }
// if (StringUtils.isNotBlank(startDate)) {
// BusinessTaskParam taskParam = new BusinessTaskParam();
// taskParam.setField("startDate");
// taskParam.setValue(startDate);
// taskParam.setSqlOperationSymbol(SQLOperationSymbol.GE);
// taskParamList.add(taskParam);
// }
// if (StringUtils.isNotBlank(endDate)) {
// BusinessTaskParam taskParam = new BusinessTaskParam();
// taskParam.setField("endDate");
// taskParam.setValue(endDate);
// taskParam.setSqlOperationSymbol(SQLOperationSymbol.LE);
// taskParamList.add(taskParam);
// }
// if (StringUtils.isNotBlank(processDefinitionId)) {
// BusinessTaskParam taskParam = new BusinessTaskParam();
// taskParam.setField("processDefinitionId");
// taskParam.setSqlOperationSymbol(SQLOperationSymbol.NONE);
// taskParam.setValue(processDefinitionId);
// taskParamList.add(taskParam);
// }
// taskQuery.setFields(taskParamList);
// taskQueryPagerQuery.setParams(taskQuery);
// return flowTaskFeign.businessDoneList(userSid, taskQueryPagerQuery);
// }
//
// public ResultBean readXml(String deployId) {
// return flowTaskFeign.readXml(deployId);
// }
//
// public ResultBean getFlowViewer(String procInsId) {
// return flowTaskFeign.getFlowViewer(procInsId);
// }
public ResultBean<Integer> getTodoNum(String userSid) {
return flowTaskFeign.getTodoNum(userSid);
}
public ResultBean<Integer> getTodoNum(String userSid,String orgPath) {
UserAndOrgPath userAndOrgPath = new UserAndOrgPath();
userAndOrgPath.setOrgPath(orgPath);
userAndOrgPath.setUserSid(userSid);
return flowTaskFeign.getTodoNum(userAndOrgPath);
}
public ResultBean getNextTasks(String taskId) {
return flowTaskFeign.getNextTasks(taskId);
}
public ResultBean<Page<FlowTaskDto>> doneAllTaskList(String userSid, PagerQuery<FlowTaskAllQuery> pQuery) {
ResultBean<Page<FlowTaskDto>> rb = new ResultBean<Page<FlowTaskDto>>().fireFail();
FlowTaskAllQuery params = pQuery.getParams();
if (StringUtils.isBlank(userSid)) {
return rb.setMsg("用户SID为空");
}
PagerQuery<BusinessTaskQuery> taskQueryPagerQuery = new PagerQuery<>();
taskQueryPagerQuery.setCurrent(pQuery.getCurrent()).setSize(pQuery.getSize());
String processDefinitionId = params.getProcessDefinitionId();
String proDefName = params.getProDefName();
String startDate = params.getStartDate();
String endDate = params.getEndDate();
BusinessTaskQuery taskQuery = new BusinessTaskQuery();
List<BusinessTaskParam> taskParamList = new ArrayList<>();
if (StringUtils.isNotBlank(proDefName)) {
BusinessTaskParam taskParam = new BusinessTaskParam();
taskParam.setField("proDefName");
taskParam.setValue(proDefName);
taskParam.setSqlOperationSymbol(SQLOperationSymbol.LIKE);
taskParamList.add(taskParam);
}
if (StringUtils.isNotBlank(startDate)) {
BusinessTaskParam taskParam = new BusinessTaskParam();
taskParam.setField("startDate");
taskParam.setValue(startDate);
taskParam.setSqlOperationSymbol(SQLOperationSymbol.GE);
taskParamList.add(taskParam);
}
if (StringUtils.isNotBlank(endDate)) {
BusinessTaskParam taskParam = new BusinessTaskParam();
taskParam.setField("endDate");
taskParam.setValue(endDate);
taskParam.setSqlOperationSymbol(SQLOperationSymbol.LE);
taskParamList.add(taskParam);
}
if (StringUtils.isNotBlank(processDefinitionId)) {
BusinessTaskParam taskParam = new BusinessTaskParam();
taskParam.setField("processDefinitionId");
taskParam.setSqlOperationSymbol(SQLOperationSymbol.NONE);
taskParam.setValue(processDefinitionId);
taskParamList.add(taskParam);
}
taskQuery.setFields(taskParamList);
taskQueryPagerQuery.setParams(taskQuery);
return flowTaskFeign.businessDoneList(userSid, taskQueryPagerQuery);
}
public ResultBean readXml(String deployId) {
return flowTaskFeign.readXml(deployId);
}
public ResultBean getFlowViewer(String procInsId) {
return flowTaskFeign.getFlowViewer(procInsId);
}
}

80
yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/flow/feign/FlowDefinitionFeign.java

@ -0,0 +1,80 @@
package com.yxt.supervise.system.flow.feign;
import com.yxt.common.core.result.ResultBean;
import com.yxt.supervise.feign.flowable.BusinessVariables;
import com.yxt.supervise.feign.flowable.flowtask.FlowTask;
import com.yxt.supervise.system.sysuser.SysUser;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.util.Map;
/**
* @author dimengzhe
* @date 2021/6/16 17:16
* @description 流程定义
*/
@FeignClient(
contextId = "supervise-flowable-FlowDefinition",
name = "supervise-flowable",
path = "/v1/flowable/definition")
public interface FlowDefinitionFeign {
@ApiOperation(value = "导入流程文件", notes = "上传bpmn20的xml文件")
@PostMapping("/import")
@ResponseBody
public ResultBean importFile(@RequestParam( name ="name", required = false) String name,
@RequestParam(name ="category",required = false) String category,
MultipartFile file);
@ApiOperation(value = "流程定义分页列表")
@PostMapping("/pagerList")
@ResponseBody
public ResultBean pagerList(@ApiParam(value = "当前页码", required = true) @RequestParam("pageNum") Integer pageNum,
@ApiParam(value = "每页条数", required = true) @RequestParam("pageSize") Integer pageSize);
/**
* 挂起后就不可以再开启一个流程实例了也就是 runtimeService.startProcessInstanceByKey("流程定义ID");会抛出异常
* 流程定义的挂起不影响已经启动的流程实例继续
*/
@ApiOperation(value = "激活或挂起流程定义")
@PostMapping(value = "/updateState")
public ResultBean updateState(@ApiParam(value = "1:激活,2:挂起", required = true) @RequestParam("state") Integer state,
@ApiParam(value = "流程部署ID", required = true) @RequestParam("deployId") String deployId);
@ApiOperation(value = "删除流程")
@DeleteMapping(value = "/delete")
@ResponseBody
public ResultBean delete(@ApiParam(value = "流程部署ID", required = true) @RequestParam("deployId") String deployId);
@ApiOperation(value = "读取xml文件")
@GetMapping("/readXml/{deployId}")
@ResponseBody
public ResultBean readXml(@ApiParam(value = "流程定义id") @PathVariable(value = "deployId") String deployId);
@ApiOperation(value = "指定流程办理人员列表")
@GetMapping("/userList")
@ResponseBody
public ResultBean userList(SysUser user);
@ApiOperation(value = "指定流程办理候选组(角色)")
@GetMapping("/roleList")
@ResponseBody
public ResultBean roleList();
@ApiOperation(value = "根据流程定义id启动流程实例")
@PostMapping("/start/{procDefId}")
@ResponseBody
public ResultBean start(@ApiParam(value = "流程定义id") @PathVariable(value = "procDefId") String procDefId,
@ApiParam(value = "变量集合,json对象") @RequestBody Map<String, Object> variables);
@ApiOperation(value = "业务系统发起流程根据流程定义id启动流程实例")
@PostMapping("/businessStart")
@ResponseBody
public ResultBean<FlowTask> businessStart(@ApiParam(value = "请求参数") @RequestBody
BusinessVariables dto);
}

117
yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/flow/feign/FlowableFeign.java

@ -0,0 +1,117 @@
package com.yxt.supervise.system.flow.feign;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.supervise.feign.flowable.BusinessVariables;
import com.yxt.supervise.feign.flowable.UpdateFlowFieldVo;
import com.yxt.supervise.feign.flowable.UserAndOrgPath;
import com.yxt.supervise.system.flow.FlowTaskQuery;
import com.yxt.supervise.system.flow.feign.form.FlowTaskVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;
@Api(tags = "Flowable")
@FeignClient(
contextId = "supervise-flowable-Flowable",
name = "supervise-flowable",
path = "v1/flow")
public interface FlowableFeign {
/**
* 业务系统发起流程申请
*
* @return
*/
@PostMapping("/businessStart")
public ResultBean businessStart(@RequestBody BusinessVariables bv);
/**
* 流程定义列表 一般业务中不需要查询该列表
*
* @param pageNum 页数
* @param pageSize 容量
* @return
*/
@PostMapping("/processPagerList/{userSid}")
public ResultBean processPagerList(@ApiParam(value = "当前页码", required = true) @RequestParam("pageNum") Integer pageNum,
@ApiParam(value = "每页条数", required = true) @RequestParam("pageSize") Integer pageSize);
/**
* 我的流程 我发起的流程
*
* @param userSid 用户sid
* @param taskQueryPagerQuery 查询参数
* @return
*/
@PostMapping("/myprocess/{userSid}")
public ResultBean myprocess(@ApiParam(value = "用户sid") @PathVariable(value = "userSid") String userSid,
@ApiParam(value = "变量集合,json对象") @RequestBody PagerQuery<FlowTaskQuery> taskQueryPagerQuery);
/**
* 取消申请
*
* @param flowTaskVo
* @return
*/
@ApiOperation(value = "取消申请")
@PostMapping(value = "/task/stopProcess")
@ResponseBody
ResultBean stopProcess(@ApiParam(value = "工作流任务相关--请求参数") @RequestBody FlowTaskVo flowTaskVo);
/**
* 删除流程实例
*
* @param procInsId 流程实例id
* @return
*/
@ApiOperation(value = "删除流程实例")
@DeleteMapping(value = "/task/deleteProcess/{procInsId}")
@ResponseBody
ResultBean deleteProcess(@ApiParam(value = "流程实例id") @PathVariable(value = "procInsId") String procInsId);
/**
* 创建流程实例时取下一环节的用户sid
*
* @return
*/
@ApiOperation(value = "创建流程实例时取下一环节的用户sid")
@GetMapping(value = "/getNextNodeUserSidsOfCreate")
@ResponseBody
ResultBean<UserAndOrgPath> getNextNodeUserSidsOfCreate(@RequestBody BusinessVariables bv);
/**
* 提交流程实例时取下一环节的用户sid
*
* @return
*/
@ApiOperation(value = "提交流程实例时取下一环节的用户sid")
@GetMapping(value = "/getNextNodeUserSidsOfSubmit")
@ResponseBody
ResultBean<UserAndOrgPath> getNextNodeUserSidsOfSubmit(@RequestBody BusinessVariables bv);
@ApiOperation(value = "启动流程")
@PostMapping(value = "/startProcess")
@ResponseBody
ResultBean<UpdateFlowFieldVo> startProcess(@RequestBody BusinessVariables dto);
@ApiOperation(value = "处理流程")
@PostMapping(value = "/handleProsess")
@ResponseBody
ResultBean<UpdateFlowFieldVo> handleProsess(@RequestBody BusinessVariables bv);
@ApiOperation(value = "撤回流程")
@PostMapping(value = "/revokeProcess")
@ResponseBody
ResultBean<UpdateFlowFieldVo> revokeProcess(@RequestBody FlowTaskVo fl);
@ApiOperation(value = "驳回流程")
@PostMapping(value = "/taskReject")
@ResponseBody
ResultBean<UpdateFlowFieldVo> taskReject(@RequestBody FlowTaskVo fl);
@ApiOperation(value = "终止流程")
@PostMapping(value = "/breakProcess")
@ResponseBody
ResultBean<UpdateFlowFieldVo> breakProcess(@RequestBody FlowTaskVo fl);
}

83
yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/flow/feign/ProcessCommentFeign.java

@ -0,0 +1,83 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.supervise.system.flow.feign;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.supervise.system.flow.feign.form.ProcessCommentDetailsVo;
import com.yxt.supervise.system.flow.feign.form.ProcessCommentDto;
import com.yxt.supervise.system.flow.feign.form.ProcessCommentQuery;
import com.yxt.supervise.system.flow.feign.form.ProcessCommentVo;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* Project: processcomment(流程评论) <br/>
* File: ProcessCommentFeign.java <br/>
* Class: com.yxt.anrui.flowable.api.processcomment.api.processcomment.ProcessCommentFeign <br/>
* Description: process_comment. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2023-01-30 14:40:37 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@FeignClient(
contextId = "processcomment-ProcessComment",
name = "supervise-flowable",
path = "v1/processcomment")
public interface ProcessCommentFeign {
@ApiOperation("根据条件分页查询数据的列表")
@PostMapping("/listPage")
@ResponseBody
public ResultBean<PagerVo<ProcessCommentVo>> listPage(@RequestBody PagerQuery<ProcessCommentQuery> pq);
@ApiOperation("新增或修改")
@PostMapping("/save")
@ResponseBody
public ResultBean save(@RequestBody ProcessCommentDto dto);
@ApiOperation("根据sid删除记录")
@DeleteMapping("/delBySids")
@ResponseBody
public ResultBean delBySids(@RequestBody String[] sids);
@ApiOperation("根据SID获取一条记录")
@GetMapping("/fetchDetailsBySid/{sid}")
@ResponseBody
public ResultBean<ProcessCommentDetailsVo> fetchDetailsBySid(@PathVariable("sid") String sid);
@ApiOperation("根据流程实列的id获取流程相关的评论")
@GetMapping("/getCommentList/{processId}")
@ResponseBody
ResultBean<List<ProcessCommentVo>> getCommentList(@PathVariable("processId")String processId);
}

52
yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/flow/feign/SysFormLinkFeign.java

@ -0,0 +1,52 @@
package com.yxt.supervise.system.flow.feign;
import com.yxt.common.core.result.ResultBean;
import com.yxt.supervise.system.flow.feign.form.SysFormLinkDto;
import com.yxt.supervise.system.flow.feign.form.SysFormStateVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import javax.validation.Valid;
import java.util.Map;
/**
* Project: anrui-flowable(流程引擎) <br/>
* File: SysFormLinkFeign.java <br/>
* Class: com.yxt.anrui.flowable.api.sysformlink.SysFormLinkFeign <br/>
* Description: 流程业务关联表. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2022-03-15 16:55:39 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Api(tags = "流程业务关联表")
@FeignClient(
contextId = "supervise-flowable-SysFormLink",
name = "supervise-flowable",
path = "v1/sysformlink")
public interface SysFormLinkFeign {
@ApiOperation("保存流程业务关联表(任务发起时)")
@PostMapping("/save")
ResultBean save(@Valid @RequestBody SysFormLinkDto dto);
@ApiOperation("根据业务sid查询节点状态")
@GetMapping("/selectStateByBusinessSid/{business}")
ResultBean<SysFormStateVo> selectStateByBusinessSid(@PathVariable("business") String business);
@ApiOperation("更新关联表节点状态属性")
@PostMapping("/updateFiled")
ResultBean updateFiled(@RequestBody Map<String, Object> map);
@ApiOperation("更新关联表节点状态属性")
@PostMapping("/selectByBusinessSid/{sid}")
ResultBean selectByBusinessSid(@PathVariable("sid") String sid);
}

90
yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/flow/feign/SysProUrlFeign.java

@ -0,0 +1,90 @@
package com.yxt.supervise.system.flow.feign;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.supervise.system.flow.SysProUrlVo;
import com.yxt.supervise.system.flow.feign.form.*;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.cloud.openfeign.SpringQueryMap;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import java.util.List;
@FeignClient(
contextId = "supervise-flowable-SysProUrlFeign",
name = "supervise-flowable",
path = "v1/flowable/proUrl")
public interface SysProUrlFeign {
/**
* 查询流程业务表单url对
*/
@PostMapping("/list")
public ResultBean<PagerVo<SysProUrlVo>> list(@RequestBody PagerQuery<SysProUrlQuery> pq);
/**
* 获取流程业务表单url对象
*/
@GetMapping(value = "/getSysProUrl/{formId}")
public ResultBean getSysProUrl(@PathVariable("formId") int formId);
/**
* 根据流程实例id获取form信息
*/
@GetMapping(value = "/getForm/{proId}")
public ResultBean getForm(@PathVariable("proId") String proId);
/**
* 新增流程业务表单url对象
*/
@PostMapping(value = "/add")
public ResultBean<String> add(@SpringQueryMap SysProUrlDto dto);
/**
* 删除流程业务表单url对象
*/
@DeleteMapping("/{formIds}")
public ResultBean<String> remove(@PathVariable("formIds") Long[] formIds);
@ApiOperation("pc根据流程定义id,节点id,终端及类型查询流程与业务表单url")
@PostMapping("/selectPcUrlByTaskDefKey")
ResultBean<PcUrlVo> selectPcUrlByTaskDefKey(@Valid @RequestBody SysProUrlQuery query);
@ApiOperation("app根据流程定义id,节点id,终端及类型查询流程与业务表单url")
@PostMapping("/selectAppUrlByTaskDefKey")
ResultBean<AppUrlVo> selectAppUrlByTaskDefKey(@Valid @RequestBody AppSysProUrlQuery query);
/**
* pc根据流程定义id节点id终端及类型查询流程与业务表单url
*
* @param procDefId 流程定义id
* @param taskDefKey 节点id
* @param type 类型1办理2详情
* @return
*/
@ApiOperation("查询流程与业务表单的url")
@GetMapping("/selectUrlByKey")
ResultBean<List<SysProUrlVo>> selectUrlByKey(@ApiParam(value = "流程定义id") @RequestParam(value = "procDefId") String procDefId,
@ApiParam(value = "节点id") @RequestParam(value = "taskDefKey") String taskDefKey,
@ApiParam(value = "类型:1办理,2详情") @RequestParam(value = "type") String type);
/**
* pc根据流程定义id节点id终端及类型查询流程与业务表单url
*
* @param procDefId 流程定义id
* @param taskDefKey 节点id
* @param type 类型1办理2详情
* @return
*/
@ApiOperation("查询流程与业务表单的url")
@GetMapping("/selectUrlByKeyWithTerminal")
ResultBean<SysProUrlVo> selectUrlByKey(@ApiParam(value = "流程定义id") @RequestParam(value = "procDefId") String procDefId,
@ApiParam(value = "节点id") @RequestParam(value = "taskDefKey") String taskDefKey,
@ApiParam(value = "类型:1办理,2详情") @RequestParam(value = "type") String type
,@ApiParam(value = "终端:1pc,2移动") @RequestParam(value = "terminal") String terminal);
}

27
yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/flow/feign/form/AppSysProUrlQuery.java

@ -0,0 +1,27 @@
package com.yxt.supervise.system.flow.feign.form;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* @author liuguohui
* @version 1.0
* @description
* @date 2022/03/18
*/
@Data
public class AppSysProUrlQuery extends SysProUrlQuery{
@NotBlank(message = "业务sid不能为空")
private String businessSid;
@NotBlank(message = "任务id不能为空")
private String taskId;
@NotBlank(message = "流程部署编号不能为空")
private String deployId;
@NotBlank(message = "流程实例id不能为空")
private String procInsId;
}

41
yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/flow/feign/form/AppUrlVo.java

@ -0,0 +1,41 @@
package com.yxt.supervise.system.flow.feign.form;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author liuguohui
* @version 1.0
* @description
* @date 2022/03/18
*/
@ApiModel("app端待办、已办返回url")
@Data
public class AppUrlVo implements Vo {
@ApiModelProperty(name = "app路径")
private String path;
@ApiModelProperty(name = "插件名称")
private String modulePluginName;
@ApiModelProperty(name = "插件版本")
private Integer moduleVersion;
@ApiModelProperty(name = "msgSid")
private String msgSid;
@ApiModelProperty(name = "json 串(procInsId,businessSid,deployId,taskId)")
private String json;
@ApiModelProperty(name = "类型,0.内置Activity 1.内置WebView 2.RePlugin插件")
private String type;
@ApiModelProperty(name = "跳转实体类路径")
private String moduleAction;
@ApiModelProperty(name = "moduleSid")
private String moduleSid;
}

78
yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/flow/feign/form/FlowDefinitionFeignBusinessStartDTO.java

@ -0,0 +1,78 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.supervise.system.flow.feign.form;
import io.swagger.annotations.ApiModelProperty;
import java.util.HashMap;
import java.util.Map;
/**
* Project: anrui-parent <br/>
* File: FlowDefinitionFeignDTO.java <br/>
* Class: com.yxt.anrui.flowable.api.flowdefinition.FlowDefinitionFeignDTO <br/>
* Description: <描述类的功能>. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021/10/25 上午11:47 <br/>
*
* @author popo
* @version 1.0
* @since 1.0
*/
public class FlowDefinitionFeignBusinessStartDTO {
@ApiModelProperty("流程定义id")
private String procDefId;
@ApiModelProperty("用户sid")
private String userSid;
@ApiModelProperty("流程定义id")
private Map<String, Object> variables = new HashMap<>();
public String getProcDefId() {
return procDefId;
}
public void setProcDefId(String procDefId) {
this.procDefId = procDefId;
}
public String getUserSid() {
return userSid;
}
public void setUserSid(String userSid) {
this.userSid = userSid;
}
public Map<String, Object> getVariables() {
return variables;
}
public void setVariables(Map<String, Object> variables) {
this.variables = variables;
}
}

53
yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/flow/feign/form/FlowTaskVo.java

@ -0,0 +1,53 @@
package com.yxt.supervise.system.flow.feign.form;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* <p>流程任务<p>
*
* @author XuanXuan
* @date 2021-04-03
*/
@ApiModel("工作流任务相关--请求参数")
@Data
public class FlowTaskVo {
@ApiModelProperty("任务Id")
private String taskId;
@ApiModelProperty("业务sid")
private String businessSid;
@ApiModelProperty("用户Id")
private String userId;
@ApiModelProperty("用户Sid")
private String userSid;
@ApiModelProperty("任务意见")
private String comment;
@ApiModelProperty("流程实例Id")
private String instanceId;
@ApiModelProperty("节点")
private String targetKey;
@ApiModelProperty("流程变量信息")
private Map<String, Object> values=new HashMap<>();
@ApiModelProperty("审批人")
private String assignee;
@ApiModelProperty("候选人")
private List<String> candidateUsers;
@ApiModelProperty("审批组")
private List<String> candidateGroups;
}

20
yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/flow/feign/form/PcUrlVo.java

@ -0,0 +1,20 @@
package com.yxt.supervise.system.flow.feign.form;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author liuguohui
* @version 1.0
* @description
* @date 2022/03/18
*/
@ApiModel("pc端待办、已办返回url")
@Data
public class PcUrlVo implements Vo {
@ApiModelProperty(name = "url")
private String url;
}

68
yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/flow/feign/form/ProcessComment.java

@ -0,0 +1,68 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.supervise.system.flow.feign.form;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yxt.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* Project: processcomment(流程评论) <br/>
* File: ProcessComment.java <br/>
* Class: com.yxt.anrui.flowable.api.processcomment.api.processcomment.ProcessComment <br/>
* Description: process_comment. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2023-01-30 14:40:37 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Data
@ApiModel(value = "process_comment", description = "process_comment")
@TableName("process_comment")
public class ProcessComment extends BaseEntity {
private static final long serialVersionUID = 1L;
@ApiModelProperty("评论人")
private String reviewer; // 评论人
@ApiModelProperty("评论人sid")
private String reviewerSid; // 评论人sid
@ApiModelProperty("评论时间")
private Date time; // 评论时间
@ApiModelProperty("评论内容")
private String content; // 评论内容
@ApiModelProperty("评论的流程id")
private String processId; // 评论的流程id
@ApiModelProperty("评论的流程实列的sid")
private String processInstSid; // 评论的流程实列的sid
}

68
yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/flow/feign/form/ProcessCommentDetailsVo.java

@ -0,0 +1,68 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.supervise.system.flow.feign.form;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* Project: processcomment(流程评论) <br/>
* File: ProcessCommentVo.java <br/>
* Class: com.yxt.anrui.flowable.api.processcomment.api.processcomment.ProcessCommentVo <br/>
* Description: process_comment 视图数据对象. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2023-01-30 14:40:37 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Data
@ApiModel(value = "process_comment 视图数据详情", description = "process_comment 视图数据详情")
public class ProcessCommentDetailsVo implements Vo {
private String sid; // sid
@ApiModelProperty("评论人")
private String reviewer; // 评论人
@ApiModelProperty("评论人sid")
private String reviewerSid; // 评论人sid
@ApiModelProperty("评论时间")
private Date time; // 评论时间
@ApiModelProperty("评论内容")
private String content; // 评论内容
@ApiModelProperty("评论的流程id")
private String processId; // 评论的流程id
@ApiModelProperty("评论的流程实列的sid")
private String processInstSid; // 评论的流程实列的sid
}

68
yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/flow/feign/form/ProcessCommentDto.java

@ -0,0 +1,68 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.supervise.system.flow.feign.form;
import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* Project: processcomment(流程评论) <br/>
* File: ProcessCommentDto.java <br/>
* Class: com.yxt.anrui.flowable.api.processcomment.api.processcomment.ProcessCommentDto <br/>
* Description: process_comment 数据传输对象. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2023-01-30 14:40:37 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Data
@ApiModel(value = "process_comment 数据传输对象", description = "process_comment 数据传输对象")
public class ProcessCommentDto implements Dto {
private String sid; // sid
@ApiModelProperty("评论人")
private String reviewer; // 评论人
@ApiModelProperty("评论人sid")
private String reviewerSid; // 评论人sid
@ApiModelProperty("评论时间")
private Date time; // 评论时间
@ApiModelProperty("评论内容")
private String content; // 评论内容
@ApiModelProperty("评论的流程id")
private String processId; // 评论的流程id
@ApiModelProperty("评论的流程实列的sid")
private String processInstSid; // 评论的流程实列的sid
}

66
yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/flow/feign/form/ProcessCommentQuery.java

@ -0,0 +1,66 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.supervise.system.flow.feign.form;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* Project: processcomment(流程评论) <br/>
* File: ProcessCommentQuery.java <br/>
* Class: com.yxt.anrui.flowable.api.processcomment.api.processcomment.ProcessCommentQuery <br/>
* Description: process_comment 查询条件. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2023-01-30 14:40:37 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Data
@ApiModel(value = "process_comment 查询条件", description = "process_comment 查询条件")
public class ProcessCommentQuery implements Query {
@ApiModelProperty("评论人")
private String reviewer; // 评论人
@ApiModelProperty("评论人sid")
private String reviewerSid; // 评论人sid
@ApiModelProperty("评论时间")
private Date time; // 评论时间
@ApiModelProperty("评论内容")
private String content; // 评论内容
@ApiModelProperty("评论的流程id")
private String processId; // 评论的流程id
@ApiModelProperty("评论的流程实列的sid")
private String processInstSid; // 评论的流程实列的sid
}

71
yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/flow/feign/form/ProcessCommentVo.java

@ -0,0 +1,71 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.supervise.system.flow.feign.form;
import com.yxt.common.core.vo.Vo;
import com.yxt.supervise.feign.flowable.flowtask.AppUserVo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* Project: processcomment(流程评论) <br/>
* File: ProcessCommentVo.java <br/>
* Class: com.yxt.anrui.flowable.api.processcomment.api.processcomment.ProcessCommentVo <br/>
* Description: process_comment 视图数据对象. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2023-01-30 14:40:37 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Data
@ApiModel(value = "process_comment 视图数据对象", description = "process_comment 视图数据对象")
public class ProcessCommentVo implements Vo {
private String sid; // sid
@ApiModelProperty("评论人")
private String reviewer; // 评论人
@ApiModelProperty("评论人sid")
private String reviewerSid; // 评论人sid
@ApiModelProperty("评论时间")
private Date time; // 评论时间
@ApiModelProperty("评论内容")
private String content; // 评论内容
@ApiModelProperty("评论的流程id")
private String processId; // 评论的流程id
@ApiModelProperty("评论的流程实列的sid")
private String processInstSid; // 评论的流程实列的sid
@ApiModelProperty("taskUserInfo")
private AppUserVo taskUserInfo; // AppUserVo
}

50
yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/flow/feign/form/SysFormLinkDto.java

@ -0,0 +1,50 @@
package com.yxt.supervise.system.flow.feign.form;
import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* Project: anrui-flowable(流程引擎) <br/>
* File: SysFormLinkDto.java <br/>
* Class: com.yxt.anrui.flowable.api.sysformlink.SysFormLinkDto <br/>
* Description: 流程业务关联表 数据传输对象. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2022-03-15 16:55:39 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@ApiModel(value = "流程业务关联表 数据传输对象", description = "流程业务关联表 数据传输对象")
@Data
public class SysFormLinkDto implements Dto {
@ApiModelProperty("业务sid")
@NotBlank(message = "业务sid不能为空")
private String businessSid;
@ApiModelProperty("流程实例id")
@NotBlank(message = "流程实例不能为空")
private String procInsId;
@ApiModelProperty("节点id")
private String taskDefKey;
@ApiModelProperty("节点状态")
@NotBlank(message = "节点状态不能为空")
private String nodeState;
@ApiModelProperty("状态判断:0未提交,1办理中, 2已办结, -1退回到发起人,-2终止")
private Integer flowState;
@ApiModelProperty("业务类型")
@NotBlank(message = "业务类型")
private String formType;
}

23
yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/flow/feign/form/SysFormStateVo.java

@ -0,0 +1,23 @@
package com.yxt.supervise.system.flow.feign.form;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author liuguohui
* @version 1.0
* @description
* @date 2022/03/15
*/
@ApiModel("流程状态")
@Data
public class SysFormStateVo implements Vo {
@ApiModelProperty("节点状态")
private String nodeState;
@ApiModelProperty("状态判断:0未提交,1办理中, 2已办结, -1退回到发起人,-2终止")
private Integer flowState;
}

62
yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/flow/feign/form/SysProUrlDto.java

@ -0,0 +1,62 @@
package com.yxt.supervise.system.flow.feign.form;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
/**
* <p>流程业务表单url对象<p>
*/
@ApiModel("流程业务表单url对象")
@Data
public class SysProUrlDto implements Serializable {
private static final long serialVersionUID = -2191041848170198498L;
@ApiModelProperty(value = "sid")
private String sid;
/**
* url
*/
@ApiModelProperty(value = "办理或详情的url")
private String url;
/**
* 类型办理或者详情
*/
@ApiModelProperty(value = "办理:1,详情2")
private String type;
/**
* 终端pc/mobile
*/
@ApiModelProperty(value = "pc端:1,移动端2")
private String terminal;
/**
* 名称
*/
@ApiModelProperty(value = "名称")
private String title;
/**
* 流程定义id
*/
@ApiModelProperty(value = "流程定义id")
private String proc_def_id;
/**
* 节点
*/
@ApiModelProperty(value = "节点id")
private String taskDefKey;
/**
* app插件名称模块名称
*/
@ApiModelProperty(value = "app版本sid#类型(1框架2插件)")
private String modulePluginName;
@ApiModelProperty(value = "环节名称")
private String taskName;
}

60
yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/flow/feign/form/SysProUrlQuery.java

@ -0,0 +1,60 @@
package com.yxt.supervise.system.flow.feign.form;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* 流程表单对象 sys_task_form
*
* @author XuanXuan Xuan
* @date 2021-03-30
*/
@Data
public class SysProUrlQuery implements Query {
/**
* 表单主键
*/
private String url;
/**
* 类型办理或者详情
*/
@NotBlank(message = "类型不能为空")
private String type;
/**
* 终端pc/mobile
*/
private String terminal;
/**
* 表单id
*/
private String formId;
/**
* 名称
*/
private String title;
/**
* 流程定义id
*/
@ApiModelProperty(name = "流程定义id")
@NotBlank(message = "流程定义id不能为空")
private String proc_def_id;
/**
* 节点
*/
@ApiModelProperty(name = "节点id")
@NotBlank(message = "节点id不能为空")
private String taskDefKey;
/**
* app插件名称模块名称
*/
private String modulePluginName;
}

200
yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/purchasingrequisition/PurchasingRequisitionRest.java

@ -1,100 +1,100 @@
//package com.yxt.supervise.system.purchasingrequisition;
//
//import cn.hutool.core.bean.BeanUtil;
//import com.yxt.anrui.flowable.api.utils.ProcDefEnum;
//import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables;
//import com.yxt.common.core.query.PagerQuery;
//import com.yxt.common.core.result.ResultBean;
//import com.yxt.common.core.vo.PagerVo;
//import com.yxt.supervise.system.flow.GetNodeQuery;
//import com.yxt.supervise.system.flow.GetNodeVo;
//import io.swagger.annotations.Api;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.stereotype.Controller;
//import org.springframework.web.bind.annotation.RequestMapping;
//
//import java.util.List;
//
///**
// * @Author dimengzhe
// * @Date 2023/1/30 14:23
// * @Description
// */
//@Controller
//@RequestMapping("v1/pr")
//@Api(tags = "采购信息")
//public class PurchasingRequisitionRest implements PurchasingRequisitionFeign {
//
// @Autowired
// private PurchasingRequisitionService purchasingRequisitionService;
//
// @Override
// public ResultBean<PagerVo<PurchasingRequisitionVo>> listPage(PagerQuery<PurchasingRequisitionQuery> pq) {
// ResultBean rb = ResultBean.fireFail();
// PagerVo<PurchasingRequisitionVo> pv = purchasingRequisitionService.listPageVo(pq);
// return rb.success().setData(pv);
// }
//
// @Override
// public ResultBean save(PurchasingRequisitionDto dto) {
// ResultBean rb = ResultBean.fireFail();
// purchasingRequisitionService.saveOrUpdateDto(dto);
// return rb.success();
// }
//
// @Override
// public ResultBean submit(PurchasingRequisitionDto dto) {
// ResultBean rb = ResultBean.fireFail();
// purchasingRequisitionService.submit(dto);
// return rb.success();
// }
//
// @Override
// public ResultBean delBySids(String[] sids) {
// ResultBean rb = ResultBean.fireFail();
// if (sids == null || sids.length == 0) {
// return rb.setMsg("删除失败,虚拟订单sid不能为空!");
// }
// return purchasingRequisitionService.deleteBySids(sids);
// }
//
// @Override
// public ResultBean<PurchasingRequisitionDetailsVo> fetchDetailsBySid(String sid) {
// ResultBean<PurchasingRequisitionDetailsVo> resultBean = ResultBean.fireFail();
// PurchasingRequisitionDetailsVo vo = purchasingRequisitionService.fetchDetailsBySid(sid);
// return resultBean.success().setData(vo);
// }
//
// @Override
// public ResultBean complete(PrVariables bv) {
// bv.setModelId(ProcDefEnum.PR.getProDefId());
// BusinessVariables b=new BusinessVariables();
// BeanUtil.copyProperties(bv,b);
// return purchasingRequisitionService.complete(b);
// }
//
// @Override
// public ResultBean<List<GetNodeVo>> getPreviousNodesForReject(GetNodeQuery query) {
// return purchasingRequisitionService.getPreviousNodesForReject(query);
// }
//
// @Override
// public ResultBean<List<GetNodeVo>> getNextNodesForSubmit(GetNodeQuery query) {
// return purchasingRequisitionService.getNextNodesForSubmit(query);
// }
//
// @Override
// public ResultBean taskReject(PurchasingRequisitionQuery query) {
// return purchasingRequisitionService.taskReject(query);
// }
//
// @Override
// public ResultBean revokeProcess(PurchasingRequisitionQuery query) {
// return purchasingRequisitionService.revokeProcess(query);
// }
//
// @Override
// public ResultBean breakProcess(PurchasingRequisitionQuery query) {
// return purchasingRequisitionService.breakProcess(query);
// }
//}
package com.yxt.supervise.system.purchasingrequisition;
import cn.hutool.core.bean.BeanUtil;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.supervise.feign.flowable.BusinessVariables;
import com.yxt.supervise.feign.flowable.utils.ProcDefEnum;
import com.yxt.supervise.system.flow.GetNodeQuery;
import com.yxt.supervise.system.flow.GetNodeVo;
import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import java.util.List;
/**
* @Author dimengzhe
* @Date 2023/1/30 14:23
* @Description
*/
@Controller
@RequestMapping("v1/pr")
@Api(tags = "采购信息")
public class PurchasingRequisitionRest implements PurchasingRequisitionFeign {
@Autowired
private PurchasingRequisitionService purchasingRequisitionService;
@Override
public ResultBean<PagerVo<PurchasingRequisitionVo>> listPage(PagerQuery<PurchasingRequisitionQuery> pq) {
ResultBean rb = ResultBean.fireFail();
PagerVo<PurchasingRequisitionVo> pv = purchasingRequisitionService.listPageVo(pq);
return rb.success().setData(pv);
}
@Override
public ResultBean save(PurchasingRequisitionDto dto) {
ResultBean rb = ResultBean.fireFail();
purchasingRequisitionService.saveOrUpdateDto(dto);
return rb.success();
}
@Override
public ResultBean submit(PurchasingRequisitionDto dto) {
ResultBean rb = ResultBean.fireFail();
purchasingRequisitionService.submit(dto);
return rb.success();
}
@Override
public ResultBean delBySids(String[] sids) {
ResultBean rb = ResultBean.fireFail();
if (sids == null || sids.length == 0) {
return rb.setMsg("删除失败,虚拟订单sid不能为空!");
}
return purchasingRequisitionService.deleteBySids(sids);
}
@Override
public ResultBean<PurchasingRequisitionDetailsVo> fetchDetailsBySid(String sid) {
ResultBean<PurchasingRequisitionDetailsVo> resultBean = ResultBean.fireFail();
PurchasingRequisitionDetailsVo vo = purchasingRequisitionService.fetchDetailsBySid(sid);
return resultBean.success().setData(vo);
}
@Override
public ResultBean complete(PrVariables bv) {
bv.setModelId(ProcDefEnum.PR.getProDefId());
BusinessVariables b=new BusinessVariables();
BeanUtil.copyProperties(bv,b);
return purchasingRequisitionService.complete(b);
}
@Override
public ResultBean<List<GetNodeVo>> getPreviousNodesForReject(GetNodeQuery query) {
return purchasingRequisitionService.getPreviousNodesForReject(query);
}
@Override
public ResultBean<List<GetNodeVo>> getNextNodesForSubmit(GetNodeQuery query) {
return purchasingRequisitionService.getNextNodesForSubmit(query);
}
@Override
public ResultBean taskReject(PurchasingRequisitionQuery query) {
return purchasingRequisitionService.taskReject(query);
}
@Override
public ResultBean revokeProcess(PurchasingRequisitionQuery query) {
return purchasingRequisitionService.revokeProcess(query);
}
@Override
public ResultBean breakProcess(PurchasingRequisitionQuery query) {
return purchasingRequisitionService.breakProcess(query);
}
}

819
yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/purchasingrequisition/PurchasingRequisitionService.java

@ -1,410 +1,409 @@
//package com.yxt.supervise.system.purchasingrequisition;
//
//import cn.hutool.core.bean.BeanUtil;
//import cn.hutool.core.date.DateUtil;
//import com.alibaba.fastjson.JSON;
//import com.alibaba.fastjson.JSONObject;
//import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
//import com.baomidou.mybatisplus.core.metadata.IPage;
//import com.google.common.util.concurrent.ThreadFactoryBuilder;
//import com.yxt.anrui.flowable.api.flow.FlowableFeign;
//import com.yxt.anrui.flowable.api.flow.UpdateFlowFieldVo;
//import com.yxt.anrui.flowable.api.flowtask.FlowTaskFeign;
//import com.yxt.anrui.flowable.api.flowtask.FlowTaskVo;
//import com.yxt.anrui.flowable.api.flowtask.LatestTaskVo;
//import com.yxt.anrui.flowable.api.sysformlink.SysFormLinkFeign;
//import com.yxt.anrui.flowable.api.utils.ProcDefEnum;
//import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables;
//import com.yxt.common.base.service.MybatisBaseService;
//import com.yxt.common.base.utils.PagerUtil;
//import com.yxt.common.core.query.PagerQuery;
//import com.yxt.common.core.result.ResultBean;
//import com.yxt.common.core.vo.PagerVo;
//import com.yxt.supervise.system.flow.GetNodeQuery;
//import com.yxt.supervise.system.flow.GetNodeVo;
//import com.yxt.supervise.system.region.Region;
//import com.yxt.supervise.system.region.RegionListVo;
//import com.yxt.supervise.system.sysstaffinfo.SysStaffinfoService;
//import com.yxt.supervise.system.sysuser.SysUserService;
//import com.yxt.supervise.system.sysuser.SysUserVo;
//import lombok.extern.slf4j.Slf4j;
//import org.apache.commons.lang3.StringUtils;
//import org.apache.tomcat.util.threads.ThreadPoolExecutor;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.stereotype.Service;
//
//import java.util.*;
//import java.util.concurrent.*;
//import java.util.stream.Collectors;
//
///**
// * @Author dimengzhe
// * @Date 2023/1/30 14:24
// * @Description
// */
//@Slf4j
//@Service
//public class PurchasingRequisitionService extends MybatisBaseService<PurchasingRequisitionMapper, PurchasingRequisition> {
//
// @Autowired
// private FlowTaskFeign flowTaskFeign;
//
// @Autowired
// private FlowableFeign flowableFeign;
// @Autowired
// private SysStaffinfoService sysStaffinfoService;
// @Autowired
// private SysUserService sysUserService;
// @Autowired
// private SysFormLinkFeign sysFormLinkFeign;
// public ResultBean saveOrUpdateDto(PurchasingRequisitionDto dto) {
// ResultBean rb = ResultBean.fireFail();
// String sid = dto.getSid();
// if (StringUtils.isBlank(sid)) {
// PurchasingRequisition productInformation = new PurchasingRequisition();
// BeanUtil.copyProperties(dto, productInformation, "sid");
// baseMapper.insert(productInformation);
// } else {
// PurchasingRequisition productInformation = fetchBySid(sid);
// if (productInformation == null) {
// return rb.setMsg("该商品档案不存在");
// }
// BeanUtil.copyProperties(dto, productInformation, "sid");
// baseMapper.updateById(productInformation);
// }
// return rb.success();
// }
// public ResultBean submit(PurchasingRequisitionDto dto) {
// ResultBean rb = ResultBean.fireFail();
// String sid = dto.getSid();
// String taskid="";
// if (StringUtils.isBlank(sid)) {
// PurchasingRequisition productInformation = new PurchasingRequisition();
// BeanUtil.copyProperties(dto, productInformation, "sid");
// dto.setSid(productInformation.getSid());
// baseMapper.insert(productInformation);
// } else {
// PurchasingRequisition productInformation = fetchBySid(sid);
// taskid=productInformation.getTaskId();
// if (productInformation == null) {
// return rb.setMsg("该商品档案不存在");
// }
// BeanUtil.copyProperties(dto, productInformation, "sid");
// baseMapper.updateById(productInformation);
// }
// if (StringUtils.isBlank(taskid)) {
// startProcess(dto);
// } else {
// PurchasingRequisition pr = fetchBySid(sid);
// BusinessVariables bv = new BusinessVariables();
// //流程中的参数赋值、若有网关,则赋值网关中判断的字段。
// Map<String, Object> variables = new HashMap<>();
// //用户的部门全路径sid
// bv.setOrgSidPath("fd6435f2-0005-11ec-a033-48452053aa33/3042d730-64e8-4e34-b08a-44adca4da3a5/548c9469-f5e8-4a1a-b69f-cb54b152c5d1");
// //业务sid
// bv.setBusinessSid(sid);
// //用户sid
// bv.setUserSid("0331e5b5-9d60-11ed-87ce-525401028fe7");
// //若app移动端有此功能,则传递appMap参数
// Map<String, Object> appMap = new HashMap<>();
// //需和移动端沟通业务sid保存的属性具体值:appMap中sid不是固定的。移动端提供具体字段。
// variables.put("app", appMap);
// variables.put("money", pr.getMoney());
// bv.setFormVariables(variables);
// //流程定义id
// bv.setModelId(ProcDefEnum.PR.getProDefId());
// bv.setTaskId(dto.getTaskId());
// bv.setTaskDefKey(pr.getNodeSid());
// bv.setComment(com.yxt.common.base.utils.StringUtils.isNotBlank(dto.getComment()) ? dto.getComment() : "重新提交");
// bv.setInstanceId(pr.getProcInstSid());
// //更新已选择的车架号的状态为审批中
// //System.out.println(JSON.toJSONString(bv));
// complete(bv);
// }
// return rb.success();
// }
//
// private void startProcess(PurchasingRequisitionDto dto) {
// BusinessVariables bv = new BusinessVariables();
// //流程中的参数赋值、若有网关,则赋值网关中判断的字段。
// Map<String, Object> variables = new HashMap<>();
// //用户的部门全路径sid
// bv.setOrgSidPath("fd6435f2-0005-11ec-a033-48452053aa33/3042d730-64e8-4e34-b08a-44adca4da3a5/548c9469-f5e8-4a1a-b69f-cb54b152c5d1");
// //业务sid
// bv.setBusinessSid(dto.getSid());
// //用户sid
// bv.setUserSid("0331e5b5-9d60-11ed-87ce-525401028fe7");
// bv.setFormVariables(variables);
// //若app移动端有此功能,则传递appMap参数
// Map<String, Object> appMap = new HashMap<>();
// //需和移动端沟通业务sid保存的属性具体值:appMap中sid不是固定的。移动端提供具体字段。
// variables.put("money", dto.getMoney());
// variables.put("app", appMap);
// //流程定义id
// bv.setModelId(ProcDefEnum.PR.getProDefId());
//// String nextNodeUserSids_ = "0331e5b5-9d60-11ed-87ce-525401028fe8";//sysOrganization.getManagerSid();
//// bv.setNextNodeUserSids(nextNodeUserSids_);
//
// int r = submitBusinessVehicleData(dto);
// if (r == 1) {
// ResultBean<UpdateFlowFieldVo> voResultBean = flowableFeign.startProcess(bv);
// UpdateFlowFieldVo ufVo = voResultBean.getData();
// updateFlowFiled(BeanUtil.beanToMap(ufVo));
// try {
// ThreadFactory namedThreadFactory = new ThreadFactoryBuilder()
// .setNameFormat("demo-pool-%d").build();
// ExecutorService pool = new ThreadPoolExecutor(2, 100,
// 0L, TimeUnit.MILLISECONDS,
// new LinkedBlockingQueue<Runnable>(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy());
// } catch (Exception e) {
// e.printStackTrace();
// }
// }
// if (r == 2) {
// // ToDo:驳回到发起人后再次提交
// if (StringUtils.isBlank(dto.getInstanceId())) {
// }
// bv.setTaskId(dto.getTaskId());
// bv.setTaskDefKey(dto.getTaskDefKey());
// bv.setComment(com.yxt.common.base.utils.StringUtils.isNotBlank(dto.getComment()) ? dto.getComment() : "重新提交");
// bv.setInstanceId(dto.getInstanceId());
// //更新已选择的车架号的状态为审批中
// complete(bv);
// }
// }
// /**
// * 判断提交的流程是否被允许
// *
// * @param dto
// * @return
// */
// private synchronized int submitBusinessVehicleData(PurchasingRequisitionDto dto ) {
// log.info("PurchasingRequisitionDto:{}", JSONObject.toJSONString(dto));
// int r = 0;
// if (StringUtils.isBlank(dto.getSid())&&StringUtils.isBlank(dto.getTaskId())) {
// log.info("PurchasingRequisitionDto1:{}", JSONObject.toJSONString(dto));
// r = 1;
// }else if (StringUtils.isNotBlank(dto.getSid())&&StringUtils.isBlank(dto.getTaskId())){
// log.info("PurchasingRequisitionDto2:{}", JSONObject.toJSONString(dto));
// r = 1;
// } else {
// log.info("PurchasingRequisitionDto3:{}", JSONObject.toJSONString(dto));
// r = 2;
// }
// return r;
// }
// /**
// * 更新流程相关的状态
// *
// * @param map
// * @return
// */
// private int updateFlowFiled(Map<String, Object> map) {
// return baseMapper.updateFlowFiled(map);
// }
// public ResultBean complete(BusinessVariables bv) {
// String userSid = bv.getUserSid();
// SysUserVo sysUserVo = sysUserService.fetchBySidVo(userSid);
// ResultBean rb = ResultBean.fireFail();
// PurchasingRequisition pr = fetchBySid(bv.getBusinessSid());
// Map<String, Object> variables = new HashMap<>();
// Map<String, Object> appMap = new HashMap<>();
// variables.put("money", pr.getMoney());
// variables.put("app", appMap);
// bv.setFormVariables(variables);
// bv.setOrgSidPath(sysUserVo.getOrgSidPath());
// if (bv.getTaskId().equals(pr.getTaskId())) {
// ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.handleProsess(bv);
// if (!resultBean.getSuccess()) {
// return rb.setMsg(resultBean.getMsg());
// }
// UpdateFlowFieldVo ufVo = resultBean.getData();
// updateFlowFiled(BeanUtil.beanToMap(resultBean.getData()));
// if (!"Event_end".equals(ufVo.getTaskDefKey())) {
//
// } else {
//
//
// }
// return rb.success().setData(resultBean.getData());
// } else {
// return rb.setMsg("操作失败!提交的数据不一致");
// }
// }
// public PagerVo<PurchasingRequisitionVo> listPageVo(PagerQuery<PurchasingRequisitionQuery> pq) {
// PurchasingRequisitionQuery query = pq.getParams();
// QueryWrapper<PurchasingRequisition> qw = createQueryWrapper(query);
// IPage<PurchasingRequisition> page = PagerUtil.queryToPage(pq);
// IPage<PurchasingRequisition> pagging = baseMapper.selectPage(page, qw);
// PagerVo<PurchasingRequisitionVo> p = PagerUtil.pageToVo(pagging, null);
// return p;
// }
// private QueryWrapper<PurchasingRequisition> createQueryWrapper(PurchasingRequisitionQuery query) {
// // todo: 这里根据具体业务调整查询条件
// // 多字段Like示例:qw.and(wrapper -> wrapper.like("name", query.getName()).or().like("remark", query.getName()));
// QueryWrapper<PurchasingRequisition> qw = new QueryWrapper<>();
// qw.orderByDesc("id");
// return qw;
// }
//
// public PurchasingRequisitionDetailsVo fetchDetailsBySid(String sid) {
// QueryWrapper<PurchasingRequisition> qw = new QueryWrapper<>();
// qw.eq("sid",sid);
// PurchasingRequisition purchasingRequisition = baseMapper.selectOne(qw);
// PurchasingRequisitionDetailsVo vo=new PurchasingRequisitionDetailsVo();
// BeanUtil.copyProperties(purchasingRequisition,vo);
// return vo;
// }
//
// public ResultBean<List<GetNodeVo>> getNextNodesForSubmit(GetNodeQuery query) {
// ResultBean<List<GetNodeVo>> rb = ResultBean.fireFail();
// BusinessVariables bv = new BusinessVariables();
// BeanUtil.copyProperties(query, bv);
// //流程中的参数赋值、若有网关,则赋值网关中判断的字段。
// Map<String, Object> variables = new HashMap<>();
// //根据业务sid查询排产信息
// PurchasingRequisition pr = fetchBySid(query.getBusinessSid());
// variables.put("money", pr.getMoney());
// //判断是否是储备订单,若是,则isTrue网关参数为true=============添加
// bv.setFormVariables(variables);
// bv.setModelId(ProcDefEnum.PR.getProDefId());
// ResultBean<List<Map<String, Object>>> resultBean = flowTaskFeign.getNextNodesForSubmit(bv);
// //判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给getNodeVo
// List<GetNodeVo> voList = Optional.ofNullable(resultBean.getData()).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), GetNodeVo.class)).collect(Collectors.toList());
// return rb.success().setData(voList);
// }
//
// public ResultBean revokeProcess(PurchasingRequisitionQuery query) {
// ResultBean rb = ResultBean.fireFail();
// if (StringUtils.isBlank(query.getUserSid())) {
// return rb.setMsg("参数错误:userSid");
// }
// //根据业务sid查询排产申请
// PurchasingRequisition pr = fetchBySid(query.getBusinessSid());
// String businessTaskId = pr.getTaskId();
// if (StringUtils.isNotBlank(businessTaskId)) {
// if (businessTaskId.equals(query.getTaskId())) {
// FlowTaskVo flowTaskVo = new FlowTaskVo();
// BeanUtil.copyProperties(query, flowTaskVo);
// ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.revokeProcess(flowTaskVo);
// if (!resultBean.getSuccess()) {
// return rb.setMsg(resultBean.getMsg());
// }
// updateFlowFiled(BeanUtil.beanToMap(resultBean.getData()));
// return rb.success().setData(resultBean.getData());
// }
// }
// return rb.setMsg("操作失败,提交的数据不一致!");
// }
//
// public ResultBean<List<GetNodeVo>> getPreviousNodesForReject(GetNodeQuery query) {
// ResultBean<List<GetNodeVo>> rb = new ResultBean<>();
// BusinessVariables bv = new BusinessVariables();
// BeanUtil.copyProperties(query, bv);
// bv.setModelId(ProcDefEnum.PR.getProDefId());
// ResultBean<List<Map<String, Object>>> resultBean = flowTaskFeign.getPreviousNodesForReject(bv);
// //判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给getNodeVo
// List<GetNodeVo> voList = Optional.ofNullable(resultBean.getData()).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), GetNodeVo.class)).collect(Collectors.toList());
// return rb.success().setData(voList);
// }
//
// public ResultBean taskReject(PurchasingRequisitionQuery query) {
// ResultBean rb = ResultBean.fireFail();
// String businessSid = query.getBusinessSid();
// PurchasingRequisition busVehicleApply = fetchBySid(businessSid);
// if (busVehicleApply == null) {
// return rb.setMsg("该申请不存在");
// }
// String businessTaskId = busVehicleApply.getTaskId();
// if (StringUtils.isNotBlank(businessTaskId)) {
// if (businessTaskId.equals(query.getTaskId())) {
// if (StringUtils.isBlank(query.getComment())) {
// return rb.setMsg("请填写意见");
// }
// if (StringUtils.isBlank(query.getUserSid())) {
// return rb.setMsg("参数错误:userSid");
// }
// FlowTaskVo flowTaskVo = new FlowTaskVo();
// BeanUtil.copyProperties(query, flowTaskVo);
// Map<String, Object> variables = new HashMap<>();
// Map<String, Object> appMap = new HashMap<>();
// variables.put("app", appMap);
// //根据业务sid查询排产信息
// variables.put("money", query.getMoney());
// //判断是否是储备订单,若是,则isTrue网关参数为true=============添加
// flowTaskVo.setValues(variables);
// ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.taskReject(flowTaskVo);
// if (!resultBean.getSuccess()) {
// return rb.setMsg(resultBean.getMsg());
// }
// UpdateFlowFieldVo ufVo = resultBean.getData();
// Map<String, Object> map = BeanUtil.beanToMap(ufVo);
// //更新业务中的流程相关的参数
// updateFlowFiled(map);
// //极光推送
//
// return rb.success();
// }
// }
// return rb.setMsg("操作失败!提交的数据不一致!");
// }
//
// /**
// * 终止流程
// *
// * @param query
// * @return
// */
// public ResultBean breakProcess(PurchasingRequisitionQuery query) {
// ResultBean rb = ResultBean.fireFail();
// if (StringUtils.isBlank(query.getInstanceId())) {
// return rb.setMsg("参数错误:instanceId");
// }
// if (StringUtils.isBlank(query.getUserSid())) {
// return rb.setMsg("参数错误:userSid");
// }
// if (StringUtils.isBlank(query.getComment())) {
// return rb.setMsg("请填写意见");
// }
// PurchasingRequisition pr = fetchBySid(query.getBusinessSid());
// String businessTaskId = pr.getTaskId();
// if (StringUtils.isNotBlank(businessTaskId)) {
// if (businessTaskId.equals(query.getTaskId())) {
// FlowTaskVo flowTaskVo = new FlowTaskVo();
// BeanUtil.copyProperties(query, flowTaskVo);
// ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.breakProcess(flowTaskVo);
// if (!resultBean.getSuccess()) {
// return rb.setMsg(resultBean.getMsg());
// }
// Map<String, Object> map = BeanUtil.beanToMap(resultBean.getData());
// updateFlowFiled(map);
// return rb.success().setData(resultBean.getData());
// }
// }
// return rb.setMsg("操作失败!提交的数据不一致!");
// }
//
// public ResultBean deleteBySids(String[] sids) {
// for (int i = 0; i < sids.length; i++) {
// if (checkCouldChange(sids[i])) {
// return new ResultBean().fail().setMsg("删除的数据中包含已经提交审批的数据,删除失败");
// }
// deleteBySid(sids[i]);
// }
// return new ResultBean().success().setMsg("删除成功");
// }
// /**
// * 判断是否可以更改、删除(判断节点状态)
// *
// * @param sid
// * @return
// */
// private boolean checkCouldChange(String sid) {
// PurchasingRequisition pr = fetchBySid(sid);
// // 判断是否可以更改(是否走了流程,更改了状态)
// if (StringUtils.isNotBlank(pr.getNodeState())) {
// return true;
// }
// return false;
// }
//}
package com.yxt.supervise.system.purchasingrequisition;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.google.common.util.concurrent.ThreadFactoryBuilder;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.supervise.feign.flowable.BusinessVariables;
import com.yxt.supervise.feign.flowable.UpdateFlowFieldVo;
import com.yxt.supervise.feign.flowable.flowtask.FlowTaskFeign;
import com.yxt.supervise.feign.flowable.utils.ProcDefEnum;
import com.yxt.supervise.system.flow.GetNodeQuery;
import com.yxt.supervise.system.flow.GetNodeVo;
import com.yxt.supervise.system.flow.feign.FlowableFeign;
import com.yxt.supervise.system.flow.feign.SysFormLinkFeign;
import com.yxt.supervise.system.flow.feign.form.FlowTaskVo;
import com.yxt.supervise.system.region.Region;
import com.yxt.supervise.system.region.RegionListVo;
import com.yxt.supervise.system.sysstaffinfo.SysStaffinfoService;
import com.yxt.supervise.system.sysuser.SysUserService;
import com.yxt.supervise.system.sysuser.SysUserVo;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.apache.tomcat.util.threads.ThreadPoolExecutor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.*;
import java.util.concurrent.*;
import java.util.stream.Collectors;
/**
* @Author dimengzhe
* @Date 2023/1/30 14:24
* @Description
*/
@Slf4j
@Service
public class PurchasingRequisitionService extends MybatisBaseService<PurchasingRequisitionMapper, PurchasingRequisition> {
@Autowired
private FlowTaskFeign flowTaskFeign;
@Autowired
private FlowableFeign flowableFeign;
@Autowired
private SysStaffinfoService sysStaffinfoService;
@Autowired
private SysUserService sysUserService;
@Autowired
private SysFormLinkFeign sysFormLinkFeign;
public ResultBean saveOrUpdateDto(PurchasingRequisitionDto dto) {
ResultBean rb = ResultBean.fireFail();
String sid = dto.getSid();
if (StringUtils.isBlank(sid)) {
PurchasingRequisition productInformation = new PurchasingRequisition();
BeanUtil.copyProperties(dto, productInformation, "sid");
baseMapper.insert(productInformation);
} else {
PurchasingRequisition productInformation = fetchBySid(sid);
if (productInformation == null) {
return rb.setMsg("该商品档案不存在");
}
BeanUtil.copyProperties(dto, productInformation, "sid");
baseMapper.updateById(productInformation);
}
return rb.success();
}
public ResultBean submit(PurchasingRequisitionDto dto) {
ResultBean rb = ResultBean.fireFail();
String sid = dto.getSid();
String taskid="";
if (StringUtils.isBlank(sid)) {
PurchasingRequisition productInformation = new PurchasingRequisition();
BeanUtil.copyProperties(dto, productInformation, "sid");
dto.setSid(productInformation.getSid());
baseMapper.insert(productInformation);
} else {
PurchasingRequisition productInformation = fetchBySid(sid);
taskid=productInformation.getTaskId();
if (productInformation == null) {
return rb.setMsg("该商品档案不存在");
}
BeanUtil.copyProperties(dto, productInformation, "sid");
baseMapper.updateById(productInformation);
}
if (StringUtils.isBlank(taskid)) {
startProcess(dto);
} else {
PurchasingRequisition pr = fetchBySid(sid);
BusinessVariables bv = new BusinessVariables();
//流程中的参数赋值、若有网关,则赋值网关中判断的字段。
Map<String, Object> variables = new HashMap<>();
//用户的部门全路径sid
bv.setOrgSidPath("fd6435f2-0005-11ec-a033-48452053aa33/3042d730-64e8-4e34-b08a-44adca4da3a5/548c9469-f5e8-4a1a-b69f-cb54b152c5d1");
//业务sid
bv.setBusinessSid(sid);
//用户sid
bv.setUserSid("0331e5b5-9d60-11ed-87ce-525401028fe7");
//若app移动端有此功能,则传递appMap参数
Map<String, Object> appMap = new HashMap<>();
//需和移动端沟通业务sid保存的属性具体值:appMap中sid不是固定的。移动端提供具体字段。
variables.put("app", appMap);
variables.put("money", pr.getMoney());
bv.setFormVariables(variables);
//流程定义id
bv.setModelId(ProcDefEnum.PR.getProDefId());
bv.setTaskId(dto.getTaskId());
bv.setTaskDefKey(pr.getNodeSid());
bv.setComment(com.yxt.common.base.utils.StringUtils.isNotBlank(dto.getComment()) ? dto.getComment() : "重新提交");
bv.setInstanceId(pr.getProcInstSid());
//更新已选择的车架号的状态为审批中
//System.out.println(JSON.toJSONString(bv));
complete(bv);
}
return rb.success();
}
private void startProcess(PurchasingRequisitionDto dto) {
BusinessVariables bv = new BusinessVariables();
//流程中的参数赋值、若有网关,则赋值网关中判断的字段。
Map<String, Object> variables = new HashMap<>();
//用户的部门全路径sid
bv.setOrgSidPath("fd6435f2-0005-11ec-a033-48452053aa33/3042d730-64e8-4e34-b08a-44adca4da3a5/548c9469-f5e8-4a1a-b69f-cb54b152c5d1");
//业务sid
bv.setBusinessSid(dto.getSid());
//用户sid
bv.setUserSid("0331e5b5-9d60-11ed-87ce-525401028fe7");
bv.setFormVariables(variables);
//若app移动端有此功能,则传递appMap参数
Map<String, Object> appMap = new HashMap<>();
//需和移动端沟通业务sid保存的属性具体值:appMap中sid不是固定的。移动端提供具体字段。
variables.put("money", dto.getMoney());
variables.put("app", appMap);
//流程定义id
bv.setModelId(ProcDefEnum.PR.getProDefId());
// String nextNodeUserSids_ = "0331e5b5-9d60-11ed-87ce-525401028fe8";//sysOrganization.getManagerSid();
// bv.setNextNodeUserSids(nextNodeUserSids_);
int r = submitBusinessVehicleData(dto);
if (r == 1) {
ResultBean<UpdateFlowFieldVo> voResultBean = flowableFeign.startProcess(bv);
UpdateFlowFieldVo ufVo = voResultBean.getData();
updateFlowFiled(BeanUtil.beanToMap(ufVo));
try {
ThreadFactory namedThreadFactory = new ThreadFactoryBuilder()
.setNameFormat("demo-pool-%d").build();
ExecutorService pool = new ThreadPoolExecutor(2, 100,
0L, TimeUnit.MILLISECONDS,
new LinkedBlockingQueue<Runnable>(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy());
} catch (Exception e) {
e.printStackTrace();
}
}
if (r == 2) {
// ToDo:驳回到发起人后再次提交
if (StringUtils.isBlank(dto.getInstanceId())) {
}
bv.setTaskId(dto.getTaskId());
bv.setTaskDefKey(dto.getTaskDefKey());
bv.setComment(com.yxt.common.base.utils.StringUtils.isNotBlank(dto.getComment()) ? dto.getComment() : "重新提交");
bv.setInstanceId(dto.getInstanceId());
//更新已选择的车架号的状态为审批中
complete(bv);
}
}
/**
* 判断提交的流程是否被允许
*
* @param dto
* @return
*/
private synchronized int submitBusinessVehicleData(PurchasingRequisitionDto dto ) {
log.info("PurchasingRequisitionDto:{}", JSONObject.toJSONString(dto));
int r = 0;
if (StringUtils.isBlank(dto.getSid())&&StringUtils.isBlank(dto.getTaskId())) {
log.info("PurchasingRequisitionDto1:{}", JSONObject.toJSONString(dto));
r = 1;
}else if (StringUtils.isNotBlank(dto.getSid())&&StringUtils.isBlank(dto.getTaskId())){
log.info("PurchasingRequisitionDto2:{}", JSONObject.toJSONString(dto));
r = 1;
} else {
log.info("PurchasingRequisitionDto3:{}", JSONObject.toJSONString(dto));
r = 2;
}
return r;
}
/**
* 更新流程相关的状态
*
* @param map
* @return
*/
private int updateFlowFiled(Map<String, Object> map) {
return baseMapper.updateFlowFiled(map);
}
public ResultBean complete(BusinessVariables bv) {
String userSid = bv.getUserSid();
SysUserVo sysUserVo = sysUserService.fetchBySidVo(userSid);
ResultBean rb = ResultBean.fireFail();
PurchasingRequisition pr = fetchBySid(bv.getBusinessSid());
Map<String, Object> variables = new HashMap<>();
Map<String, Object> appMap = new HashMap<>();
variables.put("money", pr.getMoney());
variables.put("app", appMap);
bv.setFormVariables(variables);
bv.setOrgSidPath(sysUserVo.getOrgSidPath());
if (bv.getTaskId().equals(pr.getTaskId())) {
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.handleProsess(bv);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
UpdateFlowFieldVo ufVo = resultBean.getData();
updateFlowFiled(BeanUtil.beanToMap(resultBean.getData()));
if (!"Event_end".equals(ufVo.getTaskDefKey())) {
} else {
}
return rb.success().setData(resultBean.getData());
} else {
return rb.setMsg("操作失败!提交的数据不一致");
}
}
public PagerVo<PurchasingRequisitionVo> listPageVo(PagerQuery<PurchasingRequisitionQuery> pq) {
PurchasingRequisitionQuery query = pq.getParams();
QueryWrapper<PurchasingRequisition> qw = createQueryWrapper(query);
IPage<PurchasingRequisition> page = PagerUtil.queryToPage(pq);
IPage<PurchasingRequisition> pagging = baseMapper.selectPage(page, qw);
PagerVo<PurchasingRequisitionVo> p = PagerUtil.pageToVo(pagging, null);
return p;
}
private QueryWrapper<PurchasingRequisition> createQueryWrapper(PurchasingRequisitionQuery query) {
// todo: 这里根据具体业务调整查询条件
// 多字段Like示例:qw.and(wrapper -> wrapper.like("name", query.getName()).or().like("remark", query.getName()));
QueryWrapper<PurchasingRequisition> qw = new QueryWrapper<>();
qw.orderByDesc("id");
return qw;
}
public PurchasingRequisitionDetailsVo fetchDetailsBySid(String sid) {
QueryWrapper<PurchasingRequisition> qw = new QueryWrapper<>();
qw.eq("sid",sid);
PurchasingRequisition purchasingRequisition = baseMapper.selectOne(qw);
PurchasingRequisitionDetailsVo vo=new PurchasingRequisitionDetailsVo();
BeanUtil.copyProperties(purchasingRequisition,vo);
return vo;
}
public ResultBean<List<GetNodeVo>> getNextNodesForSubmit(GetNodeQuery query) {
ResultBean<List<GetNodeVo>> rb = ResultBean.fireFail();
BusinessVariables bv = new BusinessVariables();
BeanUtil.copyProperties(query, bv);
//流程中的参数赋值、若有网关,则赋值网关中判断的字段。
Map<String, Object> variables = new HashMap<>();
//根据业务sid查询排产信息
PurchasingRequisition pr = fetchBySid(query.getBusinessSid());
variables.put("money", pr.getMoney());
//判断是否是储备订单,若是,则isTrue网关参数为true=============添加
bv.setFormVariables(variables);
bv.setModelId(ProcDefEnum.PR.getProDefId());
ResultBean<List<Map<String, Object>>> resultBean = flowTaskFeign.getNextNodesForSubmit(bv);
//判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给getNodeVo
List<GetNodeVo> voList = Optional.ofNullable(resultBean.getData()).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), GetNodeVo.class)).collect(Collectors.toList());
return rb.success().setData(voList);
}
public ResultBean revokeProcess(PurchasingRequisitionQuery query) {
ResultBean rb = ResultBean.fireFail();
if (StringUtils.isBlank(query.getUserSid())) {
return rb.setMsg("参数错误:userSid");
}
//根据业务sid查询排产申请
PurchasingRequisition pr = fetchBySid(query.getBusinessSid());
String businessTaskId = pr.getTaskId();
if (StringUtils.isNotBlank(businessTaskId)) {
if (businessTaskId.equals(query.getTaskId())) {
FlowTaskVo flowTaskVo = new FlowTaskVo();
BeanUtil.copyProperties(query, flowTaskVo);
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.revokeProcess(flowTaskVo);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
updateFlowFiled(BeanUtil.beanToMap(resultBean.getData()));
return rb.success().setData(resultBean.getData());
}
}
return rb.setMsg("操作失败,提交的数据不一致!");
}
public ResultBean<List<GetNodeVo>> getPreviousNodesForReject(GetNodeQuery query) {
ResultBean<List<GetNodeVo>> rb = new ResultBean<>();
BusinessVariables bv = new BusinessVariables();
BeanUtil.copyProperties(query, bv);
bv.setModelId(ProcDefEnum.PR.getProDefId());
ResultBean<List<Map<String, Object>>> resultBean = flowTaskFeign.getPreviousNodesForReject(bv);
//判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给getNodeVo
List<GetNodeVo> voList = Optional.ofNullable(resultBean.getData()).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), GetNodeVo.class)).collect(Collectors.toList());
return rb.success().setData(voList);
}
public ResultBean taskReject(PurchasingRequisitionQuery query) {
ResultBean rb = ResultBean.fireFail();
String businessSid = query.getBusinessSid();
PurchasingRequisition busVehicleApply = fetchBySid(businessSid);
if (busVehicleApply == null) {
return rb.setMsg("该申请不存在");
}
String businessTaskId = busVehicleApply.getTaskId();
if (StringUtils.isNotBlank(businessTaskId)) {
if (businessTaskId.equals(query.getTaskId())) {
if (StringUtils.isBlank(query.getComment())) {
return rb.setMsg("请填写意见");
}
if (StringUtils.isBlank(query.getUserSid())) {
return rb.setMsg("参数错误:userSid");
}
FlowTaskVo flowTaskVo = new FlowTaskVo();
BeanUtil.copyProperties(query, flowTaskVo);
Map<String, Object> variables = new HashMap<>();
Map<String, Object> appMap = new HashMap<>();
variables.put("app", appMap);
//根据业务sid查询排产信息
variables.put("money", query.getMoney());
//判断是否是储备订单,若是,则isTrue网关参数为true=============添加
flowTaskVo.setValues(variables);
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.taskReject(flowTaskVo);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
UpdateFlowFieldVo ufVo = resultBean.getData();
Map<String, Object> map = BeanUtil.beanToMap(ufVo);
//更新业务中的流程相关的参数
updateFlowFiled(map);
//极光推送
return rb.success();
}
}
return rb.setMsg("操作失败!提交的数据不一致!");
}
/**
* 终止流程
*
* @param query
* @return
*/
public ResultBean breakProcess(PurchasingRequisitionQuery query) {
ResultBean rb = ResultBean.fireFail();
if (StringUtils.isBlank(query.getInstanceId())) {
return rb.setMsg("参数错误:instanceId");
}
if (StringUtils.isBlank(query.getUserSid())) {
return rb.setMsg("参数错误:userSid");
}
if (StringUtils.isBlank(query.getComment())) {
return rb.setMsg("请填写意见");
}
PurchasingRequisition pr = fetchBySid(query.getBusinessSid());
String businessTaskId = pr.getTaskId();
if (StringUtils.isNotBlank(businessTaskId)) {
if (businessTaskId.equals(query.getTaskId())) {
FlowTaskVo flowTaskVo = new FlowTaskVo();
BeanUtil.copyProperties(query, flowTaskVo);
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.breakProcess(flowTaskVo);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
Map<String, Object> map = BeanUtil.beanToMap(resultBean.getData());
updateFlowFiled(map);
return rb.success().setData(resultBean.getData());
}
}
return rb.setMsg("操作失败!提交的数据不一致!");
}
public ResultBean deleteBySids(String[] sids) {
for (int i = 0; i < sids.length; i++) {
if (checkCouldChange(sids[i])) {
return new ResultBean().fail().setMsg("删除的数据中包含已经提交审批的数据,删除失败");
}
deleteBySid(sids[i]);
}
return new ResultBean().success().setMsg("删除成功");
}
/**
* 判断是否可以更改删除判断节点状态
*
* @param sid
* @return
*/
private boolean checkCouldChange(String sid) {
PurchasingRequisition pr = fetchBySid(sid);
// 判断是否可以更改(是否走了流程,更改了状态)
if (StringUtils.isNotBlank(pr.getNodeState())) {
return true;
}
return false;
}
}

Loading…
Cancel
Save