|
|
|
@@ -17,16 +17,19 @@ import com.jero.modules.activiti.vo.DelegateTaskParam;
|
|
|
|
|
import com.jero.modules.activiti.vo.ResolveTaskParam;
|
|
|
|
|
import com.jero.common.api.vo.ResultCommon;
|
|
|
|
|
import com.jero.modules.laws.common.constant.MessageTemplateCodeCommon;
|
|
|
|
|
import com.jero.modules.laws.common.util.CurrentUserUtil;
|
|
|
|
|
import org.activiti.engine.HistoryService;
|
|
|
|
|
import org.activiti.engine.RuntimeService;
|
|
|
|
|
import org.activiti.engine.TaskService;
|
|
|
|
|
import org.activiti.engine.history.HistoricTaskInstance;
|
|
|
|
|
import org.activiti.engine.history.HistoricTaskInstanceQuery;
|
|
|
|
|
import org.activiti.engine.task.Task;
|
|
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
|
|
import org.apache.shiro.SecurityUtils;
|
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
|
|
import java.util.*;
|
|
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
|
|
import com.jero.modules.activiti.mapper.ProcessAllMapper;
|
|
|
|
@@ -158,20 +161,49 @@ public class ProcessAllService extends ServiceImpl<ProcessAllMapper, ProcessAll>
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void urging(String taskId) {
|
|
|
|
|
if (StringUtils.isBlank(taskId)) {
|
|
|
|
|
throw new JeroBootException(ResultCommon.PLEASE_SELECT_DATA);
|
|
|
|
|
}
|
|
|
|
|
//查询任务判断是否可以催办
|
|
|
|
|
List<String> taskIds = Arrays.asList(taskId.split(","));
|
|
|
|
|
LambdaQueryWrapper<ProcessApprovalRecord> wrapper = new LambdaQueryWrapper<>();
|
|
|
|
|
wrapper.eq(ProcessApprovalRecord::getTaskId,taskId);
|
|
|
|
|
ProcessApprovalRecord approvalRecord = approvalRecordService.getOne(wrapper);
|
|
|
|
|
String processInstanceId = approvalRecord.getProcessInstanceId();
|
|
|
|
|
//获得流程总表
|
|
|
|
|
ProcessAll processAll = getByProcessInstanceId(processInstanceId);
|
|
|
|
|
wrapper.in(ProcessApprovalRecord::getTaskId, taskIds);
|
|
|
|
|
List<ProcessApprovalRecord> approvalRecordList = approvalRecordService.list(wrapper);
|
|
|
|
|
if (approvalRecordList.isEmpty()){
|
|
|
|
|
throw new JeroBootException(ResultCommon.NO_CORRESPONDING_DATA_FOUND);
|
|
|
|
|
}
|
|
|
|
|
for (ProcessApprovalRecord approvalRecord : approvalRecordList) {
|
|
|
|
|
Integer finishFlag = approvalRecord.getFinishFlag();
|
|
|
|
|
if (!FinishFlagEnum.INCOMPLETE.getValue().equals(finishFlag)){
|
|
|
|
|
throw new JeroBootException(ResultCommon.TASK_URGING_ERROR);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
String processInstanceId = approvalRecordList.get(0).getProcessInstanceId();
|
|
|
|
|
//判断是否有权限
|
|
|
|
|
LambdaQueryWrapper<ProcessApprovalRecord> wrapper1 = new LambdaQueryWrapper<>();
|
|
|
|
|
wrapper1.select(ProcessApprovalRecord::getUserId);
|
|
|
|
|
wrapper1.in(ProcessApprovalRecord::getProcessInstanceId, processInstanceId);
|
|
|
|
|
List<ProcessApprovalRecord> approvalRecordAllList = approvalRecordService.list(wrapper1);
|
|
|
|
|
List<String> canUrgingUserList = approvalRecordAllList.stream()
|
|
|
|
|
.map(ProcessApprovalRecord::getUserId)
|
|
|
|
|
.distinct()
|
|
|
|
|
.collect(Collectors.toList());
|
|
|
|
|
String loginUserId = CurrentUserUtil.getId();
|
|
|
|
|
if (!canUrgingUserList.contains(loginUserId)){
|
|
|
|
|
throw new JeroBootException(ResultCommon.HORIZONTAL_TRANSGRESSION);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//获得流程总表,发送消息
|
|
|
|
|
ProcessAll processAll = getByProcessInstanceId(processInstanceId);
|
|
|
|
|
SendMessageDTO sendMessageDTO = new SendMessageDTO();
|
|
|
|
|
sendMessageDTO.setTemplateCode(MessageTemplateCodeCommon.URGING);
|
|
|
|
|
sendMessageDTO.setToUserId(approvalRecord.getUserId());
|
|
|
|
|
String userIds = approvalRecordList.stream().map(ProcessApprovalRecord::getUserId).collect(Collectors.joining(","));
|
|
|
|
|
sendMessageDTO.setToUserId(userIds);
|
|
|
|
|
Map<String, String> sendMap = new HashMap<>();
|
|
|
|
|
sendMap.put("prcNum", processAll.getPrcNum());
|
|
|
|
|
sendMap.put("prcName", processAll.getPrcName());
|
|
|
|
|
sendMessageDTO.setMap(sendMap);
|
|
|
|
|
sendMessageAPI.sendMessage(sendMessageDTO);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|