blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/controller/FlowMgrController.java
@@ -196,4 +196,16 @@ return R.fail(e.getMessage()); } } @GetMapping("/takeback") @Operation(summary = "组长取回", description = "从其他任务节点直接撤回到组长派工节点") public R<Void> takeback(String processInstanceId) { try { withdrawService.takeBackToDispatch(processInstanceId); return R.success(); }catch(Exception e) { log.error("<UNK>", e); return R.fail(e.getMessage()); } } } blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/DoneQueryService.java
@@ -4,35 +4,19 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import lombok.AllArgsConstructor; import org.flowable.engine.HistoryService; import org.flowable.engine.RuntimeService; import org.flowable.engine.TaskService; import org.flowable.engine.history.HistoricProcessInstance; import org.flowable.engine.history.HistoricProcessInstanceQuery; import org.flowable.engine.task.Comment; import org.flowable.task.api.Task; import org.flowable.task.api.TaskInfo; import org.flowable.task.api.TaskInfoQuery; import org.flowable.task.api.TaskQuery; import org.flowable.task.api.history.HistoricTaskInstance; import org.flowable.task.api.history.HistoricTaskInstanceQuery; import org.springblade.core.mp.support.Condition; import org.springblade.core.secure.utils.AuthUtil; import org.springblade.core.tool.api.R; import org.springblade.core.tool.utils.DateUtil; import org.springblade.core.tool.utils.Func; import org.springblade.mdm.flow.constants.FlowContants; import org.springblade.mdm.flow.entity.FlowProgramFile; import org.springblade.mdm.flow.entity.MdmFlowProcess; import org.springblade.mdm.flow.mapper.DoneMapper; import org.springblade.mdm.flow.util.MdmFlowCache; import org.springblade.mdm.flow.vo.DoneQueryVO; import org.springblade.mdm.flow.vo.FlowVO; import org.springblade.system.feign.IUserClient; import org.springblade.system.pojo.entity.User; import org.springframework.stereotype.Service; import java.time.LocalDate; import java.time.LocalDateTime; import java.util.*; import java.util.stream.Collectors; @@ -51,11 +35,7 @@ private final TaskService taskService; /** * 查询用户已办任务分页列表 * @param page * @param s * @param createTimeBegin * @param createTimeEnd * @param keyword * @param queryVO 查询参数 * @return */ //public IPage<FlowVO> selectDonePage(IPage<FlowVO> page, LocalDateTime createTimeBegin, LocalDateTime createTimeEnd, String keyword) { @@ -82,8 +62,8 @@ boolean active = flowCommonService.isProcessInstanceActive(flowVO.getProcessInstanceId()); flowVO.setProcessIsFinished((Func.toStr(!active))); */ if(Func.toBoolean(flowVO.getProcessIsFinished())){ flowVO.setFlag(getCurrentTaskDefKeys(flowVO.getProcessInstanceId())); if(!Func.toBoolean(flowVO.getProcessIsFinished())){ flowVO.setCurrentTaskKeys(getCurrentTaskDefKeys(flowVO.getProcessInstanceId())); } }); } blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/WIthdrawService.java
@@ -5,7 +5,9 @@ import org.flowable.engine.repository.ProcessDefinition; import org.flowable.engine.runtime.ProcessInstance; import org.flowable.task.api.Task; import org.springblade.core.launch.constant.FlowConstant; import org.springblade.core.secure.utils.AuthUtil; import org.springblade.mdm.flow.constants.FlowContants; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -45,23 +47,7 @@ String taskId = getCurrentTaskIdByProcessInstanceId(processInstanceId); backWithAssigneeService.backToTaskWithNewAssignee(taskId,targetActivityId,targetAssignee,"流程撤回",new HashMap<>()); } /* String getprocessDefinitionKey(String processInstanceId){ Task task = taskService.createTaskQuery() .taskId(taskId) .singleResult(); ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery() .processDefinitionId(task.getProcessDefinitionId()) .singleResult(); String taskId = getCurrentTaskIdByProcessInstanceId(processInstanceId); if (processDefinition == null) { throw new RuntimeException("流程定义不存在,processDefinitionId: " + task.getProcessDefinitionId()); } return processDefinition.getKey(); }*/ public String getCurrentTaskIdByProcessInstanceId(String processInstanceId) { Optional<String> optTaskId = taskService.createTaskQuery() @@ -96,6 +82,18 @@ return processDefinition.getKey(); } /** * 取回到组长派工 * @param processInstanceId */ public void takeBackToDispatch(String processInstanceId) { String targetAssignee = ""+AuthUtil.getUserId(); final String targetActivityId = "teamLeaderTask";//组长派工 String taskId = getCurrentTaskIdByProcessInstanceId(processInstanceId); backWithAssigneeService.backToTaskWithNewAssignee(taskId,targetActivityId,targetAssignee,"组长取回",new HashMap<>()); } } blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/vo/FlowVO.java
@@ -167,6 +167,10 @@ */ private String flag; /** * 是否通过代号 */ private String currentTaskKeys; /** * 开始查询日期 */ private Date beginDate; blade-service/blade-mdm/src/main/java/org/springblade/mdm/statreport/utils/WordReplaceUtil.java
@@ -50,6 +50,9 @@ for (Map.Entry<String, String> entry : data.entrySet()) { String placeholder = entry.getKey(); String replacement = entry.getValue(); if(replacement==null) { replacement = ""; } if (text.contains(placeholder)) { text = text.replace(placeholder, replacement); run.setText(text, 0); @@ -68,12 +71,14 @@ for (Map.Entry<String, String> entry : data.entrySet()) { String placeholder = entry.getKey(); String replacement = entry.getValue(); if(replacement!=null) { if (text.contains(placeholder)) { text = text.replace(placeholder, replacement); run.setText(text, 0); } if(replacement==null) { replacement = ""; } if (text.contains(placeholder)) { text = text.replace(placeholder, replacement); run.setText(text, 0); } } } } @@ -96,12 +101,15 @@ for (Map.Entry<String, String> entry : data.entrySet()) { String placeholder = entry.getKey(); String replacement = entry.getValue(); if(replacement!=null) { if (text.contains(placeholder)) { text = text.replace(placeholder, replacement); run.setText(text, 0); } if(replacement==null) { replacement = ""; } if (text.contains(placeholder)) { text = text.replace(placeholder, replacement); run.setText(text, 0); } } } }