package org.springblade.mdm.statreport.controller;
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
|
import io.swagger.v3.oas.annotations.Operation;
|
import io.swagger.v3.oas.annotations.Parameter;
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
import jakarta.servlet.http.HttpServletResponse;
|
import liquibase.logging.mdc.customobjects.History;
|
import lombok.AllArgsConstructor;
|
import lombok.extern.slf4j.Slf4j;
|
import org.flowable.engine.HistoryService;
|
import org.flowable.engine.history.HistoricProcessInstance;
|
import org.springblade.core.mp.support.Condition;
|
import org.springblade.core.mp.support.Query;
|
import org.springblade.core.tool.api.R;
|
import org.springblade.core.tool.utils.UrlUtil;
|
import org.springblade.mdm.flow.entity.TaskDispatch;
|
import org.springblade.mdm.flow.service.FlowCommonService;
|
import org.springblade.mdm.flow.service.FlowProgramProperties;
|
import org.springblade.mdm.flow.service.TaskDispatchService;
|
import org.springblade.mdm.flow.vo.FlowVO;
|
import org.springblade.mdm.statreport.service.ConfirmTablePrintService;
|
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.PostMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RestController;
|
|
import java.io.ByteArrayOutputStream;
|
import java.io.IOException;
|
import java.time.LocalDateTime;
|
|
@Slf4j
|
@RestController
|
@AllArgsConstructor
|
@RequestMapping("/statreport/tableprint")
|
@Tag(name = "表格打印", description = "表格打印")
|
public class ConfirmTablePrintController {
|
|
private FlowCommonService flowCommonService;
|
private ConfirmTablePrintService confirmTablePrintService;
|
private final TaskDispatchService taskDispatchService;
|
private final HistoryService historyService;
|
@GetMapping("/confirm-page")
|
@ApiOperationSupport(order = 3)
|
@Operation(summary = "确认单列表", description = "确认单列表")
|
public R<IPage<FlowVO>> finishedList(@Parameter(description = "流程名称")String myProcessName, @Parameter(description = "流程创建时间开始") LocalDateTime createTimeBegin, @Parameter(description = "流程创建时间截止") LocalDateTime createTimeEnd, @Parameter(description = "关键字") String keyword, Query query) {
|
IPage<FlowVO> pages = confirmTablePrintService.confirmTablePage(Condition.getPage(query), myProcessName,keyword,createTimeBegin,createTimeEnd);
|
return R.data(pages);
|
}
|
|
|
@PostMapping("/export-confirm-table")
|
@Operation(summary = "导出数控程序确认表", description = "数控程序确认表")
|
public void exportConfirmTable(String processInstanceId,HttpServletResponse response) throws IOException {
|
|
FlowProgramProperties props = flowCommonService.getProgramPropertiesFromHis(processInstanceId);
|
|
HistoricProcessInstance his = historyService.createHistoricProcessInstanceQuery().processInstanceId(processInstanceId).singleResult();
|
//TaskDispatch dispatch = taskDispatchService.getById(his.getBusinessKey());
|
String progName = props.getDrawingNo()+"-"+props.getProcessNo()+"-"+props.getProcessEdition();
|
|
String filename = UrlUtil.encode("数控程序确认表"+progName)+".docx";
|
|
ByteArrayOutputStream outputStream = confirmTablePrintService.exportConfirmTableDoc(props);
|
|
byte[] fileBytes = outputStream.toByteArray();
|
|
response.setHeader("Content-Disposition", "attachment; filename="+filename);
|
response.setContentType("application/octet-stream");
|
response.getOutputStream().write(fileBytes);
|
|
}
|
}
|