Browse Source

催办功能、催办统计

zhanglei
fanzongzhe 2 years ago
parent
commit
9eb5da49e8
  1. 21
      anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/flow2/FlowFeign.java
  2. 4
      anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/flow2/FlowableMessageVo.java
  3. 14
      anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow2/FlowMapper.java
  4. 41
      anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow2/FlowMapper.xml
  5. 25
      anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow2/FlowRest.java
  6. 69
      anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow2/FlowService.java

21
anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/flow2/FlowFeign.java

@ -1,6 +1,7 @@
package com.yxt.anrui.flowable.api.flow2;
import com.yxt.anrui.flowable.api.flow.UpdateFlowFieldVo;
import com.yxt.anrui.flowable.api.flowtask.FlowTaskDto;
import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables;
import com.yxt.common.core.result.ResultBean;
import io.swagger.annotations.ApiOperation;
@ -39,11 +40,29 @@ public interface FlowFeign {
@ApiOperation(value = "人工催办")
@GetMapping(value = "/getMessageReminder")
@ResponseBody
ResultBean<FlowableMessageVo> getMessageReminder(@RequestParam("proDefId") String proDefId, @RequestParam("proInstId") String proInstId);
ResultBean<FlowableMessageVo> getMessageReminder(@RequestParam("proDefId") String proDefId, @RequestParam("procInstId") String procInstId);
@ApiOperation(value = "加签")
@PostMapping(value = "/delegate")
public ResultBean delegate(@RequestBody FlowDelegateQuery flowDelegateQuery);
@ApiOperation(value = "催办统计查询发起人信息")
@GetMapping(value = "/getApplicantInfoForUrgeCount")
@ResponseBody
ResultBean<FlowableMessageVo> getApplicantInfoForUrgeCount(@RequestParam("taskId") String taskId, @RequestParam("procInstId") String procInstId);
@ApiOperation(value = "催办统计查询任务信息")
@GetMapping(value = "/getTask")
@ResponseBody
ResultBean<FlowableMessageVo> getTask(@RequestParam("taskId") String taskId, @RequestParam("procInstId") String procInstId);
@ApiOperation(value = "催办统计查询工作名称")
@GetMapping(value = "/getTaskNameForUrgeCount")
@ResponseBody
ResultBean<FlowTaskDto> getTaskNameForUrgeCount(@RequestParam("taskId") String taskId, @RequestParam("procInstId") String procInstId);
@ApiOperation(value = "催办统计查询审批结果")
@GetMapping(value = "/getApprovalResult")
@ResponseBody
ResultBean<FlowableMessageVo> getApprovalResult(@RequestParam("proDefId") String proDefId, @RequestParam("procInstId") String procInstId);
}

4
anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/flow2/FlowableMessageVo.java

@ -24,6 +24,8 @@ public class FlowableMessageVo implements Vo {
private String assignee;
@ApiModelProperty("接收时间")
private String createTime;
@ApiModelProperty("结束时间")
private String endTime;
private String taskId;
private String result;
}

14
anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow2/FlowMapper.java

@ -18,5 +18,17 @@ import java.util.List;
public interface FlowMapper extends BaseMapper<Flowable> {
List<FlowableMessageVo> getMessageList(int minutes);
FlowableMessageVo getMessageReminder(@Param("proDefId") String proDefId, @Param("proInstId") String proInstId);
FlowableMessageVo getMessageReminder(@Param("proDefId") String proDefId, @Param("procInstId") String procInstId);
FlowableMessageVo getApplicantInfoForUrgeCount(@Param("taskId") String taskId, @Param("procInstId") String procInstId);
List<FlowableMessageVo> getApplicantInfos(@Param("proDefId") String procDefId, @Param("procInstId") String procInstId);
FlowableMessageVo getTask(@Param("taskId") String taskId, @Param("procInstId") String procInstId);
FlowableMessageVo selTaskNameForUrgeCount(@Param("proDefId") String proDefId);
FlowableMessageVo getApprovalResult(@Param("proDefId") String proDefId, @Param("procInstId") String procInstId);
String getComment(@Param("taskId") String taskId, @Param("procInstId") String procInstId);
}

41
anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow2/FlowMapper.xml

@ -24,6 +24,45 @@
CREATE_TIME_ as createTime,
ID_ taskId
from act_ru_task
where PROC_DEF_ID_ = #{proDefId} and PROC_INST_ID_ = #{proInstId}
where PROC_DEF_ID_ = #{proDefId}
and PROC_INST_ID_ = #{procInstId}
</select>
<select id="getApplicantInfoForUrgeCount" resultType="com.yxt.anrui.flowable.api.flow2.FlowableMessageVo">
SELECT PROC_DEF_ID_ as proDefId, TASK_ID_ as taskId, PROC_INST_ID_ as procInstId
FROM act_hi_actinst
WHERE TASK_ID_ = #{taskId}
AND PROC_INST_ID_ = #{procInstId}
</select>
<select id="getApplicantInfos" resultType="com.yxt.anrui.flowable.api.flow2.FlowableMessageVo">
SELECT PROC_DEF_ID_ as proDefId, ASSIGNEE_ as assignee, START_TIME_ as createTime, END_TIME_ as endTime
FROM act_hi_actinst
WHERE PROC_INST_ID_ = #{procInstId}
AND PROC_DEF_ID_ = #{proDefId}
ORDER BY START_TIME_ ASC
</select>
<select id="getTask" resultType="com.yxt.anrui.flowable.api.flow2.FlowableMessageVo">
SELECT PROC_DEF_ID_ as proDefId, ACT_NAME_ as nodeName, START_TIME_ as createTime, END_TIME_ as endTime
FROM act_hi_actinst
WHERE TASK_ID_ = #{taskId}
AND PROC_INST_ID_ = #{procInstId}
</select>
<select id="selTaskNameForUrgeCount" resultType="com.yxt.anrui.flowable.api.flow2.FlowableMessageVo">
SELECT NAME_ as nodeName
FROM act_re_procdef
WHERE ID_ = #{proDefId}
</select>
<select id="getApprovalResult" resultType="com.yxt.anrui.flowable.api.flow2.FlowableMessageVo">
SELECT TASK_ID_ as taskId, ASSIGNEE_ as assignee, START_TIME_ as createTime, END_TIME_ as endTime
FROM act_hi_actinst
WHERE PROC_INST_ID_ = #{procInstId}
AND PROC_DEF_ID_ = #{proDefId}
AND ACT_TYPE_ = 'userTask'
ORDER BY ID_ DESC limit 1
</select>
<select id="getComment" resultType="java.lang.String">
SELECT TYPE_
FROM act_hi_comment
WHERE TASK_ID_ = #{taskId}
AND PROC_INST_ID_ = #{procInstId}
</select>
</mapper>

25
anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow2/FlowRest.java

@ -6,6 +6,7 @@ import com.yxt.anrui.flowable.api.flow.UpdateFlowFieldVo;
import com.yxt.anrui.flowable.api.flow2.FlowDelegateQuery;
import com.yxt.anrui.flowable.api.flow2.FlowFeign;
import com.yxt.anrui.flowable.api.flow2.FlowableMessageVo;
import com.yxt.anrui.flowable.api.flowtask.FlowTaskDto;
import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables;
import com.yxt.common.base.utils.StringUtils;
import com.yxt.common.core.result.ResultBean;
@ -94,8 +95,8 @@ public class FlowRest implements FlowFeign {
}
@Override
public ResultBean<FlowableMessageVo> getMessageReminder(String proDefId, String proInstId) {
return flowService.getMessageReminder(proDefId,proInstId);
public ResultBean<FlowableMessageVo> getMessageReminder(String proDefId, String procInstId) {
return flowService.getMessageReminder(proDefId,procInstId);
}
@Override
@ -103,5 +104,25 @@ public class FlowRest implements FlowFeign {
return flowService.delegate(flowDelegateQuery);
}
@Override
public ResultBean<FlowableMessageVo> getApplicantInfoForUrgeCount(String taskId, String procInstId) {
return flowService.getApplicantInfoForUrgeCount(taskId,procInstId);
}
@Override
public ResultBean<FlowableMessageVo> getTask(String taskId, String procInstId) {
return flowService.getTask(taskId,procInstId);
}
@Override
public ResultBean<FlowTaskDto> getTaskNameForUrgeCount(String taskId,String procInstId) {
return flowService.getTaskNameForUrgeCount(taskId,procInstId);
}
@Override
public ResultBean<FlowableMessageVo> getApprovalResult(String proDefId, String procInstId) {
return flowService.getApprovalResult(proDefId,procInstId);
}
}

69
anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow2/FlowService.java

@ -10,6 +10,7 @@ import com.yxt.anrui.flowable.api.flow2.FlowDelegateQuery;
import com.yxt.anrui.flowable.api.flow2.FlowableMessageVo;
import com.yxt.anrui.flowable.api.flowcomment.FlowComment;
import com.yxt.anrui.flowable.api.flowtask.DelegateQuery;
import com.yxt.anrui.flowable.api.flowtask.FlowTaskDto;
import com.yxt.anrui.flowable.api.flowtask.LatestTaskVo;
import com.yxt.anrui.flowable.api.processcomment.ProcessCommentDto;
import com.yxt.anrui.flowable.api.utils.ProcDefEnum;
@ -758,9 +759,9 @@ public class FlowService extends MybatisBaseService<FlowMapper, Flowable> {
return rb.success().setData(list);
}
public ResultBean<FlowableMessageVo> getMessageReminder(String proDefId, String proInstId) {
public ResultBean<FlowableMessageVo> getMessageReminder(String proDefId, String procInstId) {
ResultBean<FlowableMessageVo> rb = ResultBean.fireFail();
FlowableMessageVo flowableMessageVo = baseMapper.getMessageReminder(proDefId, proInstId);
FlowableMessageVo flowableMessageVo = baseMapper.getMessageReminder(proDefId, procInstId);
return rb.success().setData(flowableMessageVo);
}
@ -848,4 +849,68 @@ public class FlowService extends MybatisBaseService<FlowMapper, Flowable> {
return rb.success();
}
public ResultBean<FlowableMessageVo> getApplicantInfoForUrgeCount(String taskId, String procInstId) {
ResultBean<FlowableMessageVo> rb = ResultBean.fireFail();
FlowableMessageVo flowableMessageVo = baseMapper.getApplicantInfoForUrgeCount(taskId, procInstId);
String procDefId = "";
if (null != flowableMessageVo) {
procDefId = flowableMessageVo.getProDefId();
}
List<FlowableMessageVo> messageVos = baseMapper.getApplicantInfos(procDefId, procInstId);
messageVos.removeAll(Collections.singleton(null));
FlowableMessageVo messageVo = new FlowableMessageVo();
if (!messageVos.isEmpty()) {
messageVo = messageVos.get(2);
}
return rb.success().setData(messageVo);
}
public ResultBean<FlowableMessageVo> getTask(String taskId, String procInstId) {
ResultBean<FlowableMessageVo> rb = ResultBean.fireFail();
FlowableMessageVo flowableMessageVo = baseMapper.getTask(taskId, procInstId);
return rb.success().setData(flowableMessageVo);
}
public ResultBean<FlowTaskDto> getTaskNameForUrgeCount(String taskId, String procInstId) {
ResultBean<FlowTaskDto> rb = ResultBean.fireFail();
FlowTaskDto flowTask = new FlowTaskDto();
flowTask.setTaskId(taskId);
HistoricTaskInstance historicTaskInstance = historyService.createHistoricTaskInstanceQuery().includeProcessVariables().taskId(flowTask.getTaskId()).singleResult();
flowTask.setProcessVariables(historicTaskInstance.getProcessVariables());
if (flowTask.getProcessVariables().containsKey("orderNames")) {
flowTask.setProcDefName(flowTask.getProcessVariables().get("orderNames").toString());
} else {
FlowableMessageVo task = baseMapper.getTask(taskId, procInstId);
if (null != task) {
String proDefId = task.getProDefId();
FlowableMessageVo flowableMessageVo = baseMapper.selTaskNameForUrgeCount(proDefId);
if (null != flowableMessageVo) {
if (StringUtils.isNotBlank(flowableMessageVo.getNodeName())) {
flowTask.setProcDefName(flowableMessageVo.getNodeName());
}
}
}
}
return rb.success().setData(flowTask);
}
public ResultBean<FlowableMessageVo> getApprovalResult(String proDefId, String procInstId) {
ResultBean<FlowableMessageVo> rb = ResultBean.fireFail();
FlowableMessageVo vo = baseMapper.getApprovalResult(proDefId, procInstId);
if (vo != null) {
String taskId = vo.getTaskId();
if (StringUtils.isNotBlank(vo.getEndTime())) {
String type = baseMapper.getComment(taskId, procInstId);
if (type.equals("6")) {
vo.setResult("终止");
} else if (type.equals("1")) {
vo.setResult("通过");
}
} else {
vo.setResult("审批中");
}
}
return rb.success().setData(vo);
}
}

Loading…
Cancel
Save