|
package org.springblade.mdm.flow.service;
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import lombok.AllArgsConstructor;
|
import org.flowable.engine.HistoryService;
|
import org.flowable.engine.history.HistoricProcessInstance;
|
import org.flowable.engine.history.HistoricProcessInstanceQuery;
|
import org.springblade.core.oss.OssTemplate;
|
import org.springblade.core.tool.utils.DateUtil;
|
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.basesetting.producedivision.service.QinzheFgbService;
|
import org.springblade.mdm.commons.service.ParamService;
|
import org.springblade.mdm.flow.constants.FlowContants;
|
import org.springblade.mdm.flow.constants.FlowVariableContants;
|
import org.springblade.mdm.flow.vo.FlowVO;
|
import org.springblade.mdm.flow.vo.ProgramOnMachineQueryVO;
|
import org.springblade.mdm.program.service.NcNodeHisService;
|
import org.springblade.mdm.program.service.NcNodeService;
|
import org.springblade.system.feign.IDictBizClient;
|
import org.springframework.stereotype.Service;
|
|
import java.io.ByteArrayOutputStream;
|
import java.io.IOException;
|
import java.io.InputStream;
|
import java.util.*;
|
|
/**
|
* 流程业务实现类
|
*
|
* @author Chill
|
*/
|
@Service
|
@AllArgsConstructor
|
public class ProgramOnMachineExportService {
|
|
private final HistoryService historyService;
|
private final ParamService paramService;
|
private final MachineService machineService;
|
/**
|
*
|
* @param page 分页信息
|
* @param queryVO 查询数据对象
|
* @return
|
*/
|
public IPage<FlowVO> finishedPage(IPage<FlowVO> page, ProgramOnMachineQueryVO queryVO) {
|
//固化里路村官
|
HistoricProcessInstanceQuery query = this.historyService.createHistoricProcessInstanceQuery().finished().processDefinitionKey(FlowContants.CURE_PROCESS_KEY).includeProcessVariables();
|
//.finished() // 只查询已完成的流程.unfinished() // 查询未完成的流程
|
query.variableNotExists(FlowVariableContants.EXCEPTION);//非异常流程
|
query.variableValueEquals(FlowVariableContants.PROGRAM_ON_MACHINE,FlowContants.Y);//选择现场编制的
|
/*
|
//车床或者选择现场编制的程序
|
String turnVal = paramService.turninngValue();
|
List<Machine> machines = machineService.lambdaQuery().eq(Machine::getMachineSpec,turnVal).eq(Machine::getStatus,Machine.STATUS_ENABLE).list();
|
List<String> turnMachineCodes = machines.stream().map(Machine::getCode).toList();
|
query.or();
|
for(String mCode : turnMachineCodes){
|
query.variableValueEquals(FlowVariableContants.MACHINE_CODE, mCode);
|
}
|
|
query.endOr();
|
*/
|
if(queryVO.getEndTimeBegin()!=null) {
|
query.finishedAfter(DateUtil.toDate(queryVO.getEndTimeBegin()));
|
}
|
if(queryVO.getEndTimeEnd()!=null) {
|
query.finishedBefore(DateUtil.toDate(queryVO.getEndTimeEnd()));
|
}
|
if(Func.isNotEmpty(queryVO.getDrawingNo())) {
|
String likeVal = "%" + queryVO.getDrawingNo() + "%";
|
query.variableValueLike(FlowVariableContants.DRAWING_NO,likeVal);
|
}
|
query.orderByProcessInstanceEndTime().desc(); // 按结束时间降序排列
|
page.setTotal(query.count());
|
|
long firstResult = (page.getCurrent()-1) * page.getSize();
|
List<HistoricProcessInstance> processes = query
|
.listPage((int)firstResult, (int)page.getSize());
|
|
List<FlowVO> records = new LinkedList<>();
|
|
for(HistoricProcessInstance processInstance : processes) {
|
FlowVO vo = new FlowVO();
|
vo.setProcessDefinitionKey(processInstance.getProcessDefinitionKey());
|
vo.setProcessInstanceId(processInstance.getId());
|
vo.setProcessDefinitionName(processInstance.getProcessDefinitionName());
|
vo.setVariables(processInstance.getProcessVariables());
|
|
vo.setProcessCreateTime(processInstance.getStartTime());
|
vo.setHistoryTaskEndTime(processInstance.getEndTime());
|
|
|
//vo.setFile(getFileString(processInstance.getId()));
|
records.add(vo);
|
}
|
|
page.setRecords(records);
|
|
return page;
|
}
|
|
}
|