|
package org.springblade.mdm.statreport.service;
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import lombok.extern.slf4j.Slf4j;
|
import org.flowable.engine.HistoryService;
|
import org.flowable.engine.RuntimeService;
|
import org.flowable.engine.history.HistoricProcessInstance;
|
import org.flowable.engine.runtime.ProcessInstance;
|
import org.springblade.core.mp.support.Condition;
|
import org.springblade.core.tool.utils.Func;
|
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.FlowVariableConstant;
|
import org.springblade.mdm.statreport.mapper.TaskDispatchStatMapper;
|
import org.springblade.mdm.statreport.vo.TaskDispatchStatVO;
|
import org.springblade.mdm.statreport.vo.TaskDispathStatQueryVO;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
|
/**
|
* 审批记录,用于查询执行轨迹
|
*
|
* @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(FlowVariableConstant.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;
|
}
|
}
|