package org.springblade.mdm.flow.service; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.flowable.task.api.Task; import org.springblade.core.mp.base.BizServiceImpl; import org.springblade.core.secure.utils.AuthUtil; import org.springblade.core.tool.utils.DateUtil; import org.springblade.mdm.basesetting.machine.MachineService; import org.springblade.mdm.basesetting.machine.entity.Machine; import org.springblade.mdm.flow.entity.ApproveRecord; import org.springblade.mdm.flow.mapper.ApproveRecordMapper; import org.springblade.mdm.flow.vo.ApproveRecordVO; import org.springblade.mdm.program.entity.NcProgram; import org.springblade.mdm.program.entity.ProcessProgRef; import org.springblade.mdm.program.service.NcProgramService; import org.springblade.mdm.program.service.ProcessProgRefService; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import java.io.IOException; import java.io.OutputStream; import java.util.Date; import java.util.List; import com.itextpdf.text.*; import com.itextpdf.text.pdf.*; /** * 审批记录,用于查询执行轨迹 * * @author yangys */ @Slf4j @Service @AllArgsConstructor public class ApproveTableService{ private final ProcessProgRefService processProgRefService; private final FlowCommonService flowCommonService; private final ApproveRecordService approveRecordService; private final NcProgramService ncProgramService; private final MachineService machineService; private static final String UNCHECK_BOX = "☐"; private static final String CHECKED_BOX = "☑"; static Chunk square = new Chunk("o", new Font(Font.FontFamily.ZAPFDINGBATS, 12)); // 空方框 static Chunk check = new Chunk("4", new Font(Font.FontFamily.ZAPFDINGBATS, 12)); // 带勾方框 //static SimpleDateFormat BaseFont getBaseFont() throws DocumentException, IOException { return BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED); } Font getChineseFont() throws DocumentException, IOException { BaseFont bfChinese = getBaseFont(); return new Font(bfChinese, 12, Font.NORMAL); } /** * 导出审批确认表 * @param processInstanceId */ public void exportApproveTable(String processInstanceId, OutputStream os) throws DocumentException, IOException { BaseFont bfChinese = getBaseFont(); Document document = new Document(PageSize.B5.rotate()); PdfWriter.getInstance(document,os); document.open(); List records = approveRecordService.lambdaQuery().eq(ApproveRecord::getProcessInstanceId, processInstanceId).orderByAsc(ApproveRecord::getCreateTime).list(); for(int i=0;i