diff --git a/yxt_supervise/supervise-flowable/supervise-flowable-api/src/main/java/com/yxt/anrui/flowable/api/flowtask/FlowTask.java b/yxt_supervise/supervise-flowable/supervise-flowable-api/src/main/java/com/yxt/anrui/flowable/api/flowtask/FlowTask.java index 57a8205e..e35f1ed7 100644 --- a/yxt_supervise/supervise-flowable/supervise-flowable-api/src/main/java/com/yxt/anrui/flowable/api/flowtask/FlowTask.java +++ b/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" ) diff --git a/yxt_supervise/supervise-flowable/supervise-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flowtask/FlowTaskService.java b/yxt_supervise/supervise-flowable/supervise-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flowtask/FlowTaskService.java index 84ffe63e..b3a5f0d7 100644 --- a/yxt_supervise/supervise-flowable/supervise-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flowtask/FlowTaskService.java +++ b/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 flowList = new ArrayList<>(); diff --git a/yxt_supervise/supervise-system/supervise-system-api/src/main/java/com/yxt/supervise/system/flow/FlowableFallback.java b/yxt_supervise/supervise-system/supervise-system-api/src/main/java/com/yxt/supervise/system/flow/FlowableFallback.java deleted file mode 100644 index c1edc9c2..00000000 --- a/yxt_supervise/supervise-system/supervise-system-api/src/main/java/com/yxt/supervise/system/flow/FlowableFallback.java +++ /dev/null @@ -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 variables) { - return null; - } -*/ - @Override - public ResultBean processPagerList(Integer pageNum, Integer pageSize) { - return null; - } - - @Override - public ResultBean myprocess( String userSid, PagerQuery taskQueryPagerQuery) { - return null; - } - @Override - public ResultBean todoTaskList(String userSid, PagerQuery 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 pQuery) { - return null; - } - - - @Override - public ResultBean revokeProcess(String userSid, String businessSid, FlowTaskVo flowTaskVo) { - return null; - } - - @Override - public ResultBean flowRecord(String procInsId, String deployId) { - return null; - } - - @Override - public ResultBean> 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> todoAllTaskList(String userSid, PagerQuery pQuery) { - return null; - } - - @Override - public ResultBean getTodoNum(String userSid) { - return null; - } - - @Override - public ResultBean getTodoNum(String userSid, String orgPath) { - return null; - } - - @Override - public ResultBean> doneAllTaskList(String userSid, PagerQuery pQuery) { - return null; - } - - @Override - public ResultBean getNextTasks(String taskId) { - return null; - } - - @Override - public ResultBean> todoApp(PagerQuery pagerQuery) { - return null; - } - - @Override - public ResultBean> finishApp(PagerQuery pagerQuery) { - return null; - } - - -} diff --git a/yxt_supervise/supervise-system/supervise-system-api/src/main/java/com/yxt/supervise/system/flow/FlowableFeign.java b/yxt_supervise/supervise-system/supervise-system-api/src/main/java/com/yxt/supervise/system/flow/FlowableFeignS.java similarity index 98% rename from yxt_supervise/supervise-system/supervise-system-api/src/main/java/com/yxt/supervise/system/flow/FlowableFeign.java rename to yxt_supervise/supervise-system/supervise-system-api/src/main/java/com/yxt/supervise/system/flow/FlowableFeignS.java index 151c1f98..ec0cbfc4 100644 --- a/yxt_supervise/supervise-system/supervise-system-api/src/main/java/com/yxt/supervise/system/flow/FlowableFeign.java +++ b/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 { /** * 业务系统发起流程申请 * diff --git a/yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/flow/FlowableRest.java b/yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/flow/FlowableRest.java index 35bfd013..22ee79db 100644 --- a/yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/flow/FlowableRest.java +++ b/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
@@ -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 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 taskQueryPagerQuery) { -// return flowableService.myprocess(userSid, taskQueryPagerQuery); -// } -// -// @Override -// public ResultBean todoTaskList(String userSid, PagerQuery pQuery) { -// -// SysUser sysUser = sysUserService.fetchBySid(userSid); -// String staffSid = sysUser.getStaffSid(); -// -// List 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 pQuery) { -// return flowableService.doneTaskList(userSid, pQuery); -// } -// -// /* @Override -// public ResultBean complete(Map variables) { -// return flowableService.complete(variables); -// }*/ -// -// @Override -// public ResultBean revokeProcess(String userSid, String businessSid, FlowTaskVo flowTaskVo) { -// return flowableService.revokeProcess(userSid, businessSid, flowTaskVo); -// } -// -// @Override -// public ResultBean flowRecord(String procInsId, String deployId) { -// ResultBean flowRecordVoResultBean = flowableService.flowRecord(procInsId, deployId); -// com.yxt.anrui.flowable.api.flowtask.FlowRecordVo flowRecordVo = flowRecordVoResultBean.getData(); -// FlowRecordVo flowRecordVo1 = new FlowRecordVo(); -// BeanUtil.copyProperties(flowRecordVo,flowRecordVo1); -// ResultBean resultBean = new ResultBean().success(); -// resultBean.setData(flowRecordVo1); -// return resultBean; -// } -// -// @Override -// public ResultBean> 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 flowList = new ArrayList<>(); -// List flowList = new ArrayList<>(); -// //流转记录 -// List flowList1 = flowRecordVo.getFlowList(); -// flowList1.forEach(f->{ -// PCHistTaskListAndCommentList a=new PCHistTaskListAndCommentList(); -// a.setTime(f.getFinishTime()==null?new Date():new Date()); -// Map stringObjectMap = BeanUtil.beanToMap(f); -// a.setFlowableRecordVo(stringObjectMap); -// a.setState(0+""); -// flowList.add(a); -// }); -// //评论记录 -// ResultBean> 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 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> resultBean = new ResultBean>().success(); -// resultBean.setData(flowList); -// return resultBean; -// } -// -// public ResultBean> getCommentList(String procInsId, String deployId) { -// ResultBean> rb = ResultBean.fireFail(); -// ResultBean> commentList = processCommentFeign.getCommentList(procInsId); -// List 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 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 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 pQuery) { + + SysUser sysUser = sysUserService.fetchBySid(userSid); + String staffSid = sysUser.getStaffSid(); + + List 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 pQuery) { + return flowableService.doneTaskList(userSid, pQuery); + } + /** + * 处理待办任务 + * + * @param variables 表单参数 + * @return + */ + /*@ApiOperation(value = "办理(同意)") + @PostMapping("/complete") + public ResultBean complete(@ApiParam(value = "变量集合,json对象") @RequestBody Map 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 flowRecord(@ApiParam(value = "流程实例id") @PathVariable(value = "procInsId") String procInsId, + @ApiParam(value = "目前没用") @PathVariable(value = "deployId") String deployId) { + ResultBean flowRecordVoResultBean = flowableService.flowRecord(procInsId, deployId); + FlowRecordVo flowRecordVo = flowRecordVoResultBean.getData(); + FlowRecordVo flowRecordVo1 = new FlowRecordVo(); + BeanUtil.copyProperties(flowRecordVo,flowRecordVo1); + ResultBean resultBean = new ResultBean().success(); + resultBean.setData(flowRecordVo1); + return resultBean; + } + + /** + * 流程历史流转记录 包含了评论的数据 + * + * @param procInsId 流程实例id + * @param deployId 目前没用 + * @return + */ + @ApiOperation(value = "流程历史流转记录") + @GetMapping(value = "/task/flowRecordAndComment/{procInsId}/{deployId}") + public ResultBean>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 flowList = new ArrayList<>(); + List flowList = new ArrayList<>(); + //流转记录 + List flowList1 = flowRecordVo.getFlowList(); + flowList1.forEach(f->{ + PCHistTaskListAndCommentList a=new PCHistTaskListAndCommentList(); + a.setTime(f.getFinishTime()==null?new Date():new Date()); + Map stringObjectMap = BeanUtil.beanToMap(f); + a.setFlowableRecordVo(stringObjectMap); + a.setState(0+""); + flowList.add(a); + }); + //评论记录 + ResultBean> 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 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> resultBean = new ResultBean>().success(); + resultBean.setData(flowList); + return resultBean; + } + + public ResultBean> getCommentList(String procInsId, String deployId) { + ResultBean> rb = ResultBean.fireFail(); + ResultBean> commentList = processCommentFeign.getCommentList(procInsId); + List 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> todoAllTaskList(@PathVariable("userSid") String userSid, PagerQuery pQuery) {//待办列表 + public ResultBean> todoAllTaskList(@ApiParam(value = "用户sid") @PathVariable(value = "userSid") String userSid, + @ApiParam(value = "变量集合,json对象") @RequestBody PagerQuery 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 getTodoNum(String userSid) { -// ResultBean rb=ResultBean.fireFail(); -// if(StringUtils.isBlank(userSid)){ -// return rb.setMsg("用户sid不能为空"); -// } -// return flowableService.getTodoNum(userSid); -// } -// @Override -// public ResultBean getTodoNum(String userSid,String orgPath) { -// ResultBean 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> doneAllTaskList(String userSid, PagerQuery pQuery) {//已办列表 -// ResultBean> pageResultBean = flowableService.doneAllTaskList(userSid, pQuery); -// Page page = new Page<>(); -// -// BeanUtil.copyProperties(pageResultBean.getData(),page); -// -// ResultBean< Page> success = new ResultBean< Page>().success(); -// success.setData(page); -// return success; -// } -// -// @Override -// public ResultBean getNextTasks(String taskId) { -// return flowableService.getNextTasks(taskId); -// } -// -// @Override -// public ResultBean> todoApp(PagerQuery pagerQuery) { -// return null;//flowableService.todoApp(pagerQuery); -// } -// -// @Override -// public ResultBean> finishApp(PagerQuery pagerQuery) { -// return null;//flowableService.finishApp(pagerQuery); -// } + + + @ApiOperation(value = "业务系统查询待办任务列表数量") + @GetMapping("/getTodoNum/{userSid}") + ResultBean getTodoNum(@PathVariable(value = "userSid") String userSid){ + ResultBean rb=ResultBean.fireFail(); + if(StringUtils.isBlank(userSid)){ + return rb.setMsg("用户sid不能为空"); + } + return flowableService.getTodoNum(userSid); + } + + @ApiOperation(value = "业务系统查询待办任务列表数量") + @GetMapping("/getTodoNum/{userSid}/{orgPath}") + ResultBean getTodoNum(@PathVariable(value = "userSid")String userSid, + @PathVariable(value = "orgPath") String orgPath) { + ResultBean 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> doneAllTaskList(@ApiParam(value = "用户sid") @PathVariable(value = "userSid") String userSid, @ApiParam(value = "变量集合,json对象") @RequestBody PagerQuery pQuery){//已办列表 + ResultBean> pageResultBean = flowableService.doneAllTaskList(userSid, pQuery); + Page page = new Page<>(); + + BeanUtil.copyProperties(pageResultBean.getData(),page); + + ResultBean< Page> success = new ResultBean< Page>().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> todoApp(@RequestBody PagerQuery pagerQuery) { + return null;//flowableService.todoApp(pagerQuery); + } + + @ApiOperation(value = "移动端总已办列表") + @PostMapping("/finishedApp") + ResultBean> finishApp(@RequestBody PagerQuery pagerQuery) { + return null;//flowableService.finishApp(pagerQuery); + } @GetMapping("/task/{userSid}") public ResultBean> task(@PathVariable("userSid") String userSid) {//待办列表 SysUser sysUser = sysUserService.fetchBySid(userSid); diff --git a/yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/flow/FlowableService.java b/yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/flow/FlowableService.java index eda2d8a5..5084eab0 100644 --- a/yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/flow/FlowableService.java +++ b/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 { -// @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 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 taskQueryPagerQuery) { -// PagerQuery 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 pQuery) { -// TaskQuery params = pQuery.getParams(); -// if (StringUtils.isBlank(userSid)) { -// return ResultBean.fireFail().setMsg("用户SID为空"); -// } -// PagerQuery 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 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 pQuery) { -// TaskQuery params = pQuery.getParams(); -// if (StringUtils.isBlank(userSid)) { -// return ResultBean.fireFail().setMsg("用户SID为空"); -// } -// PagerQuery 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 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> 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 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 flowRecord(String procInsId, String deployId) { -// ResultBean 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> 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 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 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 taskQueryPagerQuery) { + PagerQuery 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 pQuery) { + TaskQuery params = pQuery.getParams(); + if (StringUtils.isBlank(userSid)) { + return ResultBean.fireFail().setMsg("用户SID为空"); + } + PagerQuery 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 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 pQuery) { + TaskQuery params = pQuery.getParams(); + if (StringUtils.isBlank(userSid)) { + return ResultBean.fireFail().setMsg("用户SID为空"); + } + PagerQuery 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 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> 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 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 flowRecord(String procInsId, String deployId) { + ResultBean 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> 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 map = new HashMap<>(); + map.put("businessSid", businessSid); + map.put("nodeState", nodeState); + map.put("taskDefKey", taskDefKey); +// if (incomingSourceRef.contains("start")) { + map.put("flowState", nodeState); // } -// Map 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 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> todoAllTaskList(String userSid, PagerQuery pQuery) { ResultBean> rb = new ResultBean>().fireFail(); FlowTaskAllQuery params = pQuery.getParams(); @@ -375,75 +380,75 @@ public class FlowableService extends MybatisBaseService getTodoNum(String userSid) { -// return flowTaskFeign.getTodoNum(userSid); -// } -// public ResultBean 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> doneAllTaskList(String userSid, PagerQuery pQuery) { -// ResultBean> rb = new ResultBean>().fireFail(); -// FlowTaskAllQuery params = pQuery.getParams(); -// if (StringUtils.isBlank(userSid)) { -// return rb.setMsg("用户SID为空"); -// } -// PagerQuery 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 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 getTodoNum(String userSid) { + return flowTaskFeign.getTodoNum(userSid); + } + public ResultBean 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> doneAllTaskList(String userSid, PagerQuery pQuery) { + ResultBean> rb = new ResultBean>().fireFail(); + FlowTaskAllQuery params = pQuery.getParams(); + if (StringUtils.isBlank(userSid)) { + return rb.setMsg("用户SID为空"); + } + PagerQuery 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 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); + } } diff --git a/yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/flow/feign/FlowDefinitionFeign.java b/yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/flow/feign/FlowDefinitionFeign.java new file mode 100644 index 00000000..a2d9a02f --- /dev/null +++ b/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 variables); + + @ApiOperation(value = "业务系统发起流程根据流程定义id启动流程实例") + @PostMapping("/businessStart") + @ResponseBody + public ResultBean businessStart(@ApiParam(value = "请求参数") @RequestBody + BusinessVariables dto); +} \ No newline at end of file diff --git a/yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/flow/feign/FlowableFeign.java b/yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/flow/feign/FlowableFeign.java new file mode 100644 index 00000000..a4a5fe9d --- /dev/null +++ b/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 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 getNextNodeUserSidsOfCreate(@RequestBody BusinessVariables bv); + /** + * 提交流程实例时取下一环节的用户sid + * + * @return + */ + @ApiOperation(value = "提交流程实例时取下一环节的用户sid") + @GetMapping(value = "/getNextNodeUserSidsOfSubmit") + @ResponseBody + ResultBean getNextNodeUserSidsOfSubmit(@RequestBody BusinessVariables bv); + + @ApiOperation(value = "启动流程") + @PostMapping(value = "/startProcess") + @ResponseBody + ResultBean startProcess(@RequestBody BusinessVariables dto); + + @ApiOperation(value = "处理流程") + @PostMapping(value = "/handleProsess") + @ResponseBody + ResultBean handleProsess(@RequestBody BusinessVariables bv); + + @ApiOperation(value = "撤回流程") + @PostMapping(value = "/revokeProcess") + @ResponseBody + ResultBean revokeProcess(@RequestBody FlowTaskVo fl); + + @ApiOperation(value = "驳回流程") + @PostMapping(value = "/taskReject") + @ResponseBody + ResultBean taskReject(@RequestBody FlowTaskVo fl); + + @ApiOperation(value = "终止流程") + @PostMapping(value = "/breakProcess") + @ResponseBody + ResultBean breakProcess(@RequestBody FlowTaskVo fl); +} diff --git a/yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/flow/feign/ProcessCommentFeign.java b/yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/flow/feign/ProcessCommentFeign.java new file mode 100644 index 00000000..3c5c528c --- /dev/null +++ b/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(流程评论)
+ * File: ProcessCommentFeign.java
+ * Class: com.yxt.anrui.flowable.api.processcomment.api.processcomment.ProcessCommentFeign
+ * Description: process_comment.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2023-01-30 14:40:37
+ * + * @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> listPage(@RequestBody PagerQuery 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 fetchDetailsBySid(@PathVariable("sid") String sid); + @ApiOperation("根据流程实列的id获取流程相关的评论") + @GetMapping("/getCommentList/{processId}") + @ResponseBody + ResultBean> getCommentList(@PathVariable("processId")String processId); +} \ No newline at end of file diff --git a/yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/flow/feign/SysFormLinkFeign.java b/yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/flow/feign/SysFormLinkFeign.java new file mode 100644 index 00000000..56c04c8c --- /dev/null +++ b/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(流程引擎)
+ * File: SysFormLinkFeign.java
+ * Class: com.yxt.anrui.flowable.api.sysformlink.SysFormLinkFeign
+ * Description: 流程业务关联表.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2022-03-15 16:55:39
+ * + * @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 selectStateByBusinessSid(@PathVariable("business") String business); + + @ApiOperation("更新关联表节点状态属性") + @PostMapping("/updateFiled") + ResultBean updateFiled(@RequestBody Map map); + + @ApiOperation("更新关联表节点状态属性") + @PostMapping("/selectByBusinessSid/{sid}") + ResultBean selectByBusinessSid(@PathVariable("sid") String sid); +} \ No newline at end of file diff --git a/yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/flow/feign/SysProUrlFeign.java b/yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/flow/feign/SysProUrlFeign.java new file mode 100644 index 00000000..2485d066 --- /dev/null +++ b/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> list(@RequestBody PagerQuery 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 add(@SpringQueryMap SysProUrlDto dto); + + /** + * 删除流程业务表单url对象 + */ + @DeleteMapping("/{formIds}") + public ResultBean remove(@PathVariable("formIds") Long[] formIds); + + @ApiOperation("pc根据流程定义id,节点id,终端及类型查询流程与业务表单url") + @PostMapping("/selectPcUrlByTaskDefKey") + ResultBean selectPcUrlByTaskDefKey(@Valid @RequestBody SysProUrlQuery query); + + @ApiOperation("app根据流程定义id,节点id,终端及类型查询流程与业务表单url") + @PostMapping("/selectAppUrlByTaskDefKey") + ResultBean 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> 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 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); + +} diff --git a/yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/flow/feign/form/AppSysProUrlQuery.java b/yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/flow/feign/form/AppSysProUrlQuery.java new file mode 100644 index 00000000..abb0919f --- /dev/null +++ b/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; +} diff --git a/yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/flow/feign/form/AppUrlVo.java b/yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/flow/feign/form/AppUrlVo.java new file mode 100644 index 00000000..5a92fc42 --- /dev/null +++ b/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; +} diff --git a/yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/flow/feign/form/FlowDefinitionFeignBusinessStartDTO.java b/yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/flow/feign/form/FlowDefinitionFeignBusinessStartDTO.java new file mode 100644 index 00000000..fe040dfc --- /dev/null +++ b/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
+ * File: FlowDefinitionFeignDTO.java
+ * Class: com.yxt.anrui.flowable.api.flowdefinition.FlowDefinitionFeignDTO
+ * Description: <描述类的功能>.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2021/10/25 上午11:47
+ * + * @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 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 getVariables() { + return variables; + } + + public void setVariables(Map variables) { + this.variables = variables; + } +} diff --git a/yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/flow/feign/form/FlowTaskVo.java b/yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/flow/feign/form/FlowTaskVo.java new file mode 100644 index 00000000..2f09b678 --- /dev/null +++ b/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; + +/** + *

流程任务

+ * + * @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 values=new HashMap<>(); + + @ApiModelProperty("审批人") + private String assignee; + + @ApiModelProperty("候选人") + private List candidateUsers; + + @ApiModelProperty("审批组") + private List candidateGroups; + + + +} diff --git a/yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/flow/feign/form/PcUrlVo.java b/yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/flow/feign/form/PcUrlVo.java new file mode 100644 index 00000000..ccf53987 --- /dev/null +++ b/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; +} diff --git a/yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/flow/feign/form/ProcessComment.java b/yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/flow/feign/form/ProcessComment.java new file mode 100644 index 00000000..35049052 --- /dev/null +++ b/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(流程评论)
+ * File: ProcessComment.java
+ * Class: com.yxt.anrui.flowable.api.processcomment.api.processcomment.ProcessComment
+ * Description: process_comment.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2023-01-30 14:40:37
+ * + * @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 + +} diff --git a/yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/flow/feign/form/ProcessCommentDetailsVo.java b/yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/flow/feign/form/ProcessCommentDetailsVo.java new file mode 100644 index 00000000..96bc5dc5 --- /dev/null +++ b/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(流程评论)
+ * File: ProcessCommentVo.java
+ * Class: com.yxt.anrui.flowable.api.processcomment.api.processcomment.ProcessCommentVo
+ * Description: process_comment 视图数据对象.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2023-01-30 14:40:37
+ * + * @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 + +} \ No newline at end of file diff --git a/yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/flow/feign/form/ProcessCommentDto.java b/yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/flow/feign/form/ProcessCommentDto.java new file mode 100644 index 00000000..d3dceaa8 --- /dev/null +++ b/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(流程评论)
+ * File: ProcessCommentDto.java
+ * Class: com.yxt.anrui.flowable.api.processcomment.api.processcomment.ProcessCommentDto
+ * Description: process_comment 数据传输对象.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2023-01-30 14:40:37
+ * + * @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 + +} \ No newline at end of file diff --git a/yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/flow/feign/form/ProcessCommentQuery.java b/yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/flow/feign/form/ProcessCommentQuery.java new file mode 100644 index 00000000..acc40016 --- /dev/null +++ b/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(流程评论)
+ * File: ProcessCommentQuery.java
+ * Class: com.yxt.anrui.flowable.api.processcomment.api.processcomment.ProcessCommentQuery
+ * Description: process_comment 查询条件.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2023-01-30 14:40:37
+ * + * @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 + +} diff --git a/yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/flow/feign/form/ProcessCommentVo.java b/yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/flow/feign/form/ProcessCommentVo.java new file mode 100644 index 00000000..1ec4b799 --- /dev/null +++ b/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(流程评论)
+ * File: ProcessCommentVo.java
+ * Class: com.yxt.anrui.flowable.api.processcomment.api.processcomment.ProcessCommentVo
+ * Description: process_comment 视图数据对象.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2023-01-30 14:40:37
+ * + * @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 + +} diff --git a/yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/flow/feign/form/SysFormLinkDto.java b/yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/flow/feign/form/SysFormLinkDto.java new file mode 100644 index 00000000..a0e2f313 --- /dev/null +++ b/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(流程引擎)
+ * File: SysFormLinkDto.java
+ * Class: com.yxt.anrui.flowable.api.sysformlink.SysFormLinkDto
+ * Description: 流程业务关联表 数据传输对象.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2022-03-15 16:55:39
+ * + * @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; +} \ No newline at end of file diff --git a/yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/flow/feign/form/SysFormStateVo.java b/yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/flow/feign/form/SysFormStateVo.java new file mode 100644 index 00000000..5aff66d7 --- /dev/null +++ b/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; +} diff --git a/yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/flow/feign/form/SysProUrlDto.java b/yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/flow/feign/form/SysProUrlDto.java new file mode 100644 index 00000000..bba5853b --- /dev/null +++ b/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; + +/** + *

流程业务表单url对象

+ */ +@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; + +} diff --git a/yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/flow/feign/form/SysProUrlQuery.java b/yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/flow/feign/form/SysProUrlQuery.java new file mode 100644 index 00000000..d6b7e72d --- /dev/null +++ b/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; +} diff --git a/yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/purchasingrequisition/PurchasingRequisitionRest.java b/yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/purchasingrequisition/PurchasingRequisitionRest.java index 1c5c8a63..98c899e0 100644 --- a/yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/purchasingrequisition/PurchasingRequisitionRest.java +++ b/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> listPage(PagerQuery pq) { -// ResultBean rb = ResultBean.fireFail(); -// PagerVo 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 fetchDetailsBySid(String sid) { -// ResultBean 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> getPreviousNodesForReject(GetNodeQuery query) { -// return purchasingRequisitionService.getPreviousNodesForReject(query); -// } -// -// @Override -// public ResultBean> 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> listPage(PagerQuery pq) { + ResultBean rb = ResultBean.fireFail(); + PagerVo 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 fetchDetailsBySid(String sid) { + ResultBean 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> getPreviousNodesForReject(GetNodeQuery query) { + return purchasingRequisitionService.getPreviousNodesForReject(query); + } + + @Override + public ResultBean> 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); + } +} diff --git a/yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/purchasingrequisition/PurchasingRequisitionService.java b/yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/purchasingrequisition/PurchasingRequisitionService.java index f7689ce1..d56a54bf 100644 --- a/yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/purchasingrequisition/PurchasingRequisitionService.java +++ b/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 { -// -// @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 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 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 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 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 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(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 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 variables = new HashMap<>(); -// Map 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 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 listPageVo(PagerQuery pq) { -// PurchasingRequisitionQuery query = pq.getParams(); -// QueryWrapper qw = createQueryWrapper(query); -// IPage page = PagerUtil.queryToPage(pq); -// IPage pagging = baseMapper.selectPage(page, qw); -// PagerVo p = PagerUtil.pageToVo(pagging, null); -// return p; -// } -// private QueryWrapper createQueryWrapper(PurchasingRequisitionQuery query) { -// // todo: 这里根据具体业务调整查询条件 -// // 多字段Like示例:qw.and(wrapper -> wrapper.like("name", query.getName()).or().like("remark", query.getName())); -// QueryWrapper qw = new QueryWrapper<>(); -// qw.orderByDesc("id"); -// return qw; -// } -// -// public PurchasingRequisitionDetailsVo fetchDetailsBySid(String sid) { -// QueryWrapper qw = new QueryWrapper<>(); -// qw.eq("sid",sid); -// PurchasingRequisition purchasingRequisition = baseMapper.selectOne(qw); -// PurchasingRequisitionDetailsVo vo=new PurchasingRequisitionDetailsVo(); -// BeanUtil.copyProperties(purchasingRequisition,vo); -// return vo; -// } -// -// public ResultBean> getNextNodesForSubmit(GetNodeQuery query) { -// ResultBean> rb = ResultBean.fireFail(); -// BusinessVariables bv = new BusinessVariables(); -// BeanUtil.copyProperties(query, bv); -// //流程中的参数赋值、若有网关,则赋值网关中判断的字段。 -// Map 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>> resultBean = flowTaskFeign.getNextNodesForSubmit(bv); -// //判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给getNodeVo -// List 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 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> getPreviousNodesForReject(GetNodeQuery query) { -// ResultBean> rb = new ResultBean<>(); -// BusinessVariables bv = new BusinessVariables(); -// BeanUtil.copyProperties(query, bv); -// bv.setModelId(ProcDefEnum.PR.getProDefId()); -// ResultBean>> resultBean = flowTaskFeign.getPreviousNodesForReject(bv); -// //判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给getNodeVo -// List 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 variables = new HashMap<>(); -// Map appMap = new HashMap<>(); -// variables.put("app", appMap); -// //根据业务sid查询排产信息 -// variables.put("money", query.getMoney()); -// //判断是否是储备订单,若是,则isTrue网关参数为true=============添加 -// flowTaskVo.setValues(variables); -// ResultBean resultBean = flowableFeign.taskReject(flowTaskVo); -// if (!resultBean.getSuccess()) { -// return rb.setMsg(resultBean.getMsg()); -// } -// UpdateFlowFieldVo ufVo = resultBean.getData(); -// Map 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 resultBean = flowableFeign.breakProcess(flowTaskVo); -// if (!resultBean.getSuccess()) { -// return rb.setMsg(resultBean.getMsg()); -// } -// Map 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 { + + @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 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 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 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 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 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(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 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 variables = new HashMap<>(); + Map 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 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 listPageVo(PagerQuery pq) { + PurchasingRequisitionQuery query = pq.getParams(); + QueryWrapper qw = createQueryWrapper(query); + IPage page = PagerUtil.queryToPage(pq); + IPage pagging = baseMapper.selectPage(page, qw); + PagerVo p = PagerUtil.pageToVo(pagging, null); + return p; + } + private QueryWrapper createQueryWrapper(PurchasingRequisitionQuery query) { + // todo: 这里根据具体业务调整查询条件 + // 多字段Like示例:qw.and(wrapper -> wrapper.like("name", query.getName()).or().like("remark", query.getName())); + QueryWrapper qw = new QueryWrapper<>(); + qw.orderByDesc("id"); + return qw; + } + + public PurchasingRequisitionDetailsVo fetchDetailsBySid(String sid) { + QueryWrapper qw = new QueryWrapper<>(); + qw.eq("sid",sid); + PurchasingRequisition purchasingRequisition = baseMapper.selectOne(qw); + PurchasingRequisitionDetailsVo vo=new PurchasingRequisitionDetailsVo(); + BeanUtil.copyProperties(purchasingRequisition,vo); + return vo; + } + + public ResultBean> getNextNodesForSubmit(GetNodeQuery query) { + ResultBean> rb = ResultBean.fireFail(); + BusinessVariables bv = new BusinessVariables(); + BeanUtil.copyProperties(query, bv); + //流程中的参数赋值、若有网关,则赋值网关中判断的字段。 + Map 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>> resultBean = flowTaskFeign.getNextNodesForSubmit(bv); + //判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给getNodeVo + List 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 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> getPreviousNodesForReject(GetNodeQuery query) { + ResultBean> rb = new ResultBean<>(); + BusinessVariables bv = new BusinessVariables(); + BeanUtil.copyProperties(query, bv); + bv.setModelId(ProcDefEnum.PR.getProDefId()); + ResultBean>> resultBean = flowTaskFeign.getPreviousNodesForReject(bv); + //判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给getNodeVo + List 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 variables = new HashMap<>(); + Map appMap = new HashMap<>(); + variables.put("app", appMap); + //根据业务sid查询排产信息 + variables.put("money", query.getMoney()); + //判断是否是储备订单,若是,则isTrue网关参数为true=============添加 + flowTaskVo.setValues(variables); + ResultBean resultBean = flowableFeign.taskReject(flowTaskVo); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + UpdateFlowFieldVo ufVo = resultBean.getData(); + Map 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 resultBean = flowableFeign.breakProcess(flowTaskVo); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + Map 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; + } +}