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 dispatchPage(TaskDispathStatQueryVO queryVO) { IPage 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; } }