|
package org.springblade.mdm.statreport.service;
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import lombok.extern.slf4j.Slf4j;
|
import org.apache.commons.lang3.StringUtils;
|
import org.apache.poi.ss.usermodel.DateUtil;
|
import org.flowable.engine.HistoryService;
|
import org.flowable.engine.RuntimeService;
|
import org.flowable.engine.history.HistoricProcessInstance;
|
import org.flowable.engine.runtime.ProcessInstance;
|
import org.flowable.variable.api.event.FlowableVariableEvent;
|
import org.jetbrains.annotations.NotNull;
|
import org.springblade.core.mp.support.Condition;
|
import org.springblade.core.oss.OssTemplate;
|
import org.springblade.core.tool.api.R;
|
import org.springblade.core.tool.utils.Func;
|
import org.springblade.mdm.basesetting.machine.entity.Machine;
|
import org.springblade.mdm.basesetting.machine.service.MachineService;
|
import org.springblade.mdm.commons.service.ParamService;
|
import org.springblade.mdm.commons.service.UserCommonService;
|
import org.springblade.mdm.flow.constants.FlowContants;
|
import org.springblade.mdm.flow.constants.FlowVariableContants;
|
import org.springblade.mdm.flow.entity.TaskDispatch;
|
import org.springblade.mdm.flow.service.ApproveInfoQueryService;
|
import org.springblade.mdm.flow.service.FlowProgramProperties;
|
import org.springblade.mdm.flow.service.TaskDispatchService;
|
import org.springblade.mdm.flow.vo.ApproveTableInfo;
|
import org.springblade.mdm.flow.vo.DispathTaskQueryVO;
|
import org.springblade.mdm.statreport.mapper.TaskDispatchStatMapper;
|
import org.springblade.mdm.statreport.utils.WordReplaceUtil;
|
import org.springblade.mdm.statreport.vo.TaskDispatchStatVO;
|
import org.springblade.mdm.statreport.vo.TaskDispathStatQueryVO;
|
import org.springblade.system.feign.IUserClient;
|
import org.springframework.beans.BeanUtils;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
|
import java.io.ByteArrayOutputStream;
|
import java.io.IOException;
|
import java.io.InputStream;
|
import java.time.LocalDateTime;
|
import java.util.*;
|
|
/**
|
* 审批记录,用于查询执行轨迹
|
*
|
* @author yangys
|
*/
|
@Slf4j
|
@Service
|
public class TaskDispatchStatService {
|
@Autowired
|
private UserCommonService userCommonService;
|
@Autowired
|
private MachineService machineService;
|
@Autowired
|
private HistoryService historyService;
|
@Autowired
|
private RuntimeService runtimeService;
|
@Autowired
|
private TaskDispatchStatMapper taskDispatchStatMapper;
|
|
|
@Autowired
|
private ParamService paramService;
|
|
public IPage<TaskDispatchStatVO> dispatchPage(TaskDispathStatQueryVO queryVO) {
|
|
IPage<TaskDispatchStatVO> voPage = taskDispatchStatMapper.pageQuery(Condition.getPage(queryVO),queryVO);
|
|
voPage.getRecords().forEach(vo ->
|
{
|
HistoricProcessInstance hisInst = historyService.createHistoricProcessInstanceQuery().processInstanceId(vo.getProcessInstanceId()).singleResult();
|
if(hisInst != null){
|
vo.setProgrammerName(userCommonService.getUserNameById(Func.toLong(hisInst.getProcessVariables().get(FlowVariableContants.PROGRAMMER))));
|
}
|
|
|
if(vo.getCureTime() == null){
|
ProcessInstance runInst = runtimeService.createProcessInstanceQuery().processInstanceId(vo.getProcessInstanceId()).singleResult();
|
if(runInst == null || runInst.isEnded()){
|
vo.setStatus(2);//固化中
|
}else{
|
vo.setStatus(1);//试切中
|
}
|
}else{
|
vo.setStatus(3);//已固化
|
}
|
});
|
return voPage;
|
}
|
}
|