From a0e37c52980249847ac896d320ef097fda49ad3a Mon Sep 17 00:00:00 2001
From: yangys <y_ys79@sina.com>
Date: 星期二, 26 八月 2025 21:30:47 +0800
Subject: [PATCH] 调整审批表打印
---
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/ApproveTableService.java | 321 ++++++++++++++++++++-----------
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/entity/TaskDispatch.java | 5
blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/NcNodeAutoCreateService.java | 7
blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/entity/NcProgramApproved.java | 5
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/controller/DispatchTaskController.java | 1
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/dispatch/NormalFinishDataHandler.java | 7
blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/producedivision/service/ProduceDivisionService.java | 4
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/controller/DispatchController.java | 22 --
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/vo/ApproveTableInfo.java | 29 ++
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/FlowProgramProperties.java | 9
blade-service/blade-mdm/src/test/java/org/springblade/mdm/flow/service/ApproveTableServiceTest.java | 59 +++++
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/FlowCommonService.java | 46 ++++
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/FlowTransferService.java | 51 ++++
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/controller/FlowMgrController.java | 16
14 files changed, 422 insertions(+), 160 deletions(-)
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/producedivision/service/ProduceDivisionService.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/producedivision/service/ProduceDivisionService.java
index 2a2be31..b4a84e7 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/producedivision/service/ProduceDivisionService.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/producedivision/service/ProduceDivisionService.java
@@ -176,11 +176,11 @@
Long programmerId = tUserService.getUserIdByName(qinzheFgb.getZggy());
if(programmerId == null){
- throw new ServiceException("鏍规嵁"+qinzheFgb.getZggy()+"鏈壘鍒板搴旂殑绯荤粺鐢ㄦ埛锛岃妫�鏌ョ敤鎴锋槸鍚﹀瓨鍦�");
+ throw new ServiceException("鏍规嵁["+qinzheFgb.getZggy()+"]鏈壘鍒板搴旂殑绯荤粺鐢ㄦ埛锛岃妫�鏌ョ敤鎴锋槸鍚﹀瓨鍦�");
}
ProduceDivision division = lambdaQuery().eq(ProduceDivision::getProgrammerId, programmerId).list().stream().findFirst().orElse(null);
if(division == null){
- throw new ServiceException("涓诲埗鍒嗗伐琛ㄦ棤宸ヨ壓鍛�"+qinzheFgb.getZggy()+"瀵瑰簲鐨勬暟鎹�");
+ throw new ServiceException("涓诲埗鍒嗗伐琛ㄦ棤宸ヨ壓鍛榌"+qinzheFgb.getZggy()+"]瀵瑰簲鐨勬暟鎹�");
}
return division;
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/controller/DispatchController.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/controller/DispatchController.java
index 9b50d02..e8160cb 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/controller/DispatchController.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/controller/DispatchController.java
@@ -6,8 +6,6 @@
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.lang3.SerializationException;
-import org.apache.commons.lang3.StringUtils;
import org.flowable.engine.RuntimeService;
import org.flowable.engine.TaskService;
import org.flowable.engine.runtime.ProcessInstance;
@@ -15,34 +13,20 @@
import org.springblade.core.log.exception.ServiceException;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.api.R;
-import org.springblade.core.tool.support.Kv;
-import org.springblade.core.tool.utils.DateUtil;
import org.springblade.core.tool.utils.Func;
import org.springblade.core.tool.utils.StringUtil;
import org.springblade.mdm.flow.constants.FlowContants;
-import org.springblade.mdm.flow.entity.ApproveRecord;
import org.springblade.mdm.flow.entity.TaskDispatch;
import org.springblade.mdm.flow.excution.StartDispatcher;
-import org.springblade.mdm.flow.service.ApproveRecordService;
-import org.springblade.mdm.flow.service.FlowCommonService;
import org.springblade.mdm.flow.service.FlowProgramFileService;
import org.springblade.mdm.flow.service.TaskDispatchService;
import org.springblade.mdm.flow.service.execute.*;
import org.springblade.mdm.flow.vo.BatchDispatchVO;
import org.springblade.mdm.flow.vo.TaskAssignVO;
-import org.springblade.mdm.program.entity.ProcessProgRef;
-import org.springblade.mdm.program.service.NcNodeAutoCreateService;
-import org.springblade.mdm.program.service.ProcessProgRefService;
-import org.springframework.beans.BeanUtils;
-import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
import java.util.Map;
@Slf4j
@@ -87,11 +71,10 @@
return R.data(true);
} catch (Exception e) {
dispatch.setStatus(TaskDispatch.STATUS_EXCEPTION);
+ dispatch.setErrMsg(e.getMessage());
taskDispatchService.updateById(dispatch);
- return R.fail("浠诲姟鍚姩寮傚父");
+ return R.fail("浠诲姟鍚姩寮傚父:"+e.getMessage());
}
-
-
}catch(Exception e){
return R.fail(e.getMessage());
}
@@ -121,7 +104,6 @@
try {
AbstractFlowCompleteService completeService = getActualService(processInstanceId);
completeService.completeTask(taskId, processInstanceId, comment, variables);
-
return R.success("娴佺▼鎻愪氦鎴愬姛");
}catch(Exception e){
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/controller/DispatchTaskController.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/controller/DispatchTaskController.java
index 2c23788..709c4b3 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/controller/DispatchTaskController.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/controller/DispatchTaskController.java
@@ -96,6 +96,7 @@
} catch (Exception e) {
log.error("娴佺▼鍚姩寮傚父",e);
dispatch.setStatus(TaskDispatch.STATUS_EXCEPTION);
+ dispatch.setErrMsg(e.getMessage());
taskDispatchService.updateById(dispatch);
return R.fail("浠诲姟鍚姩寮傚父");
}
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/controller/FlowMgrController.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/controller/FlowMgrController.java
index 69c095d..e7a5237 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/controller/FlowMgrController.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/controller/FlowMgrController.java
@@ -15,12 +15,12 @@
import org.springblade.core.excel.util.ExcelUtil;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
+import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.DateUtil;
import org.springblade.core.tool.utils.Func;
-import org.springblade.mdm.flow.service.ApproveTableService;
-import org.springblade.mdm.flow.service.FlowBusinessService;
-import org.springblade.mdm.flow.service.WIthdrawService;
+import org.springblade.core.tool.utils.UrlUtil;
+import org.springblade.mdm.flow.service.*;
import org.springblade.mdm.flow.vo.FlowVO;
import org.springblade.mdm.flow.vo.OvertimeTaskExcelVO;
import org.springblade.mdm.flow.vo.TaskTraceVO;
@@ -48,7 +48,8 @@
private TaskService taskService;
@Autowired
private FlowBusinessService businessService;
-
+ @Autowired
+ private FlowCommonService flowCommonService;
@Autowired
private HistoryService historyService;
@Autowired
@@ -171,9 +172,10 @@
public void exportApproveTable(String processInstanceId, HttpServletResponse response) {
try {
-
- String filename = URLEncoder.encode("鏁版帶绋嬪簭缂栧埗瀹℃壒鍗�", StandardCharsets.UTF_8)+ DateUtil.format(DateUtil.now(), "yyyyMMddHHmm")+".pdf";
-
+ FlowProgramProperties props = flowCommonService.getProgramPropertiesFromHis(processInstanceId);
+ String progName = props.getDrawingNo()+"-"+props.getProcessNo()+"-"+props.getProcessEdition();
+ //String filename = URLEncoder.encode("鏁版帶绋嬪簭缂栧埗瀹℃壒鍗�", StandardCharsets.UTF_8)+ DateUtil.format(DateUtil.now(), "yyyyMMddHHmm")+".pdf";
+ String filename = UrlUtil.encode("鏁版帶绋嬪簭缂栧埗瀹℃壒鍗�"+progName)+".pdf";
response.setHeader("Content-Disposition", "attachment; filename="+filename);
response.setContentType("application/octet-stream");
approveTableService.exportApproveTable(processInstanceId,response.getOutputStream());
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/entity/TaskDispatch.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/entity/TaskDispatch.java
index 1b03315..115429b 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/entity/TaskDispatch.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/entity/TaskDispatch.java
@@ -78,4 +78,9 @@
* 鍋忕鍗曞彿
*/
private String deviation;
+
+ /**
+ * 閿欒淇℃伅
+ */
+ private String errMsg;
}
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/dispatch/NormalFinishDataHandler.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/dispatch/NormalFinishDataHandler.java
index e77b85f..64e1da3 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/dispatch/NormalFinishDataHandler.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/dispatch/NormalFinishDataHandler.java
@@ -68,7 +68,7 @@
}
addApproveTable(packageNode,props);
- updateApproveRecordNodeId(instId, packageNode.getId());
+ //updateApproveRecordNodeId(instId, packageNode.getId());
log.info("鏅�氭祦绋嬪凡瀹屾垚in DispatchFinishListener");
}
@@ -85,15 +85,16 @@
approved.setNcNodeId(packageNode.getId());//绋嬪簭鍖呰妭鐐筰d
approved.setTitle(props.getTitle());
approved.setProgrammerId(props.getProgrammerId());
+ approved.setProcessInstanceId(props.getProcessInstanceId());
approvedService.save(approved);
}
-
+ /*
void updateApproveRecordNodeId(String processInstanceId,Long nodeId){
//鏇存柊瀹℃壒璁板綍鐨刵cNodeId
approveRecordService.lambdaUpdate()
.eq(ApproveRecord::getProcessInstanceId, processInstanceId)
.set(ApproveRecord::getNcNodeId,nodeId).update();
- }
+ }*/
}
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/ApproveTableService.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/ApproveTableService.java
index a14df6a..dfcccae 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/ApproveTableService.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/ApproveTableService.java
@@ -1,30 +1,26 @@
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.engine.HistoryService;
-import org.flowable.engine.history.HistoricActivityInstance;
import org.flowable.engine.history.HistoricProcessInstance;
-import org.flowable.task.api.Task;
-import org.springblade.core.mp.base.BizServiceImpl;
-import org.springblade.core.secure.utils.AuthUtil;
+import org.flowable.engine.runtime.ProcessInstance;
+import org.flowable.task.api.history.HistoricTaskInstance;
+import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.DateUtil;
+import org.springblade.core.tool.utils.Func;
import org.springblade.mdm.basesetting.machine.MachineService;
import org.springblade.mdm.basesetting.machine.entity.Machine;
import org.springblade.mdm.flow.constants.FlowContants;
-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.flow.vo.ApproveTableInfo;
import org.springblade.mdm.program.entity.NcNode;
-import org.springblade.mdm.program.entity.NcProgram;
-import org.springblade.mdm.program.entity.ProcessProgRef;
+import org.springblade.mdm.program.entity.NcProgramApproved;
import org.springblade.mdm.program.service.NcNodeService;
-import org.springblade.mdm.program.service.NcProgramService;
-import org.springblade.mdm.program.service.ProcessProgRefService;
-import org.springframework.beans.BeanUtils;
+import org.springblade.mdm.program.service.NcProgramApprovedService;
+import org.springblade.system.feign.IUserClient;
+import org.springblade.system.pojo.entity.User;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.io.IOException;
@@ -32,6 +28,7 @@
import java.util.Date;
import java.util.List;
import java.util.Map;
+import java.util.Optional;
import com.itextpdf.text.*;
import com.itextpdf.text.pdf.*;
@@ -42,85 +39,104 @@
*/
@Slf4j
@Service
-@AllArgsConstructor
-public class ApproveTableService{
- private final FlowCommonService flowCommonService;
- private final ApproveRecordService approveRecordService;
- private final NcNodeService ncNodeService;
- private final MachineService machineService;
- private final HistoryService historyService;
+public class ApproveTableService {
+ @Autowired
+ private FlowCommonService flowCommonService;
+ @Autowired
+ private NcNodeService ncNodeService;
+ @Autowired
+ private MachineService machineService;
+ @Autowired
+ private HistoryService historyService;
+ @Autowired
+ private IUserClient useClient;
+ @Autowired
+ private NcProgramApprovedService programApprovedService;
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();
+ BaseFont bfChinese = getBaseFont();
Document document = new Document(PageSize.B5.rotate());
- PdfWriter.getInstance(document,os);
+ PdfWriter.getInstance(document, os);
document.open();
- List<ApproveRecord> records = approveRecordService.lambdaQuery().eq(ApproveRecord::getProcessInstanceId, processInstanceId).orderByAsc(ApproveRecord::getCreateTime).list();
- for(int i=0;i<records.size();i++){
+ FlowProgramProperties props = flowCommonService.getProgramPropertiesFromHis(processInstanceId);
- ApproveRecord record = records.get(i);
- if(record.getNcNodeId() ==null){
- //continue;
- }
+ ApproveTableInfo appInfo = getApproveInfo(props);
+ Machine machine;
+ String machineCode = props.getMachineCode();
+ machine = machineService.getByCode(machineCode);
- HistoricProcessInstance ins = historyService.createHistoricProcessInstanceQuery().processInstanceId(processInstanceId).includeProcessVariables().singleResult();
- List<HistoricActivityInstance> activitiys = historyService.createHistoricActivityInstanceQuery()
- .processInstanceId(processInstanceId)
- .list();
- printStep(document,bfChinese,record,ins);
- if(i<records.size()-1){
- document.newPage();
- }
- }
+ int flag = props.getProcessDefinitionKey().equals(FlowContants.TRY_PROCESS_KEY)?1:2;
+ printPage(document, bfChinese, props, machine, flag, appInfo);
+ //document.newPage();
+
+
+ //printPage(document, bfChinese, props, machine, 2, appInfo);
document.close();
}
- void printStep(Document document,BaseFont bfChinese,ApproveRecord record,HistoricProcessInstance ins) throws DocumentException, IOException {
- NcNode programPackageNode;
- Machine machine;
- Map<String,Object> vars = ins.getProcessVariables();
- //activitiy.stream().filter(HistoricActivityInstance::get)
- if(record.getNcNodeId() !=null ) {
- //programPackageNode = ncNodeService.getById(record.getNcNodeId());
- String machineCode = String.valueOf(vars.get(FlowContants.MACHINE_CODE));
- //machine = machineService.getByCode(programPackageNode.getMachineCode());
- machine = machineService.getByCode(machineCode);
- }else{
- programPackageNode = new NcNode();
- machine = new Machine();
- }
+
+ /**
+ * 鎵撳嵃涓�涓楠わ紙缂栧埗/鏍″锛�
+ * @param document
+ * @param bfChinese
+ * @param props
+ * @param machine
+ * @param flag
+ * @param approveInfo
+ * @throws DocumentException
+ * @throws IOException
+ */
+ void printPage(Document document, BaseFont bfChinese, FlowProgramProperties props, Machine machine, int flag, ApproveTableInfo approveInfo) throws DocumentException, IOException {
+ Font tipFont = new Font(bfChinese, 10, Font.NORMAL);
+ Paragraph tip = new Paragraph("鑹鸿〃6", tipFont);
+ tip.setAlignment(Element.ALIGN_RIGHT);
+ tip.setSpacingAfter(-5); // 娈靛悗闂磋窛
+ tip.setIndentationRight(220f);
+
+ // 璁剧疆琛岃窛锛堣闂磋窛锛�
+ //mixedParagraph.setLeading(24f); // 缁濆琛岃窛
+ //mixedParagraph.setLeading(1.5f, 2f);
+ // 涔熷彲浠ヤ娇鐢ㄧ浉瀵硅璺濓細mixedParagraph.setLeading(1.5f, 24f);
+ // 绗竴涓弬鏁版槸鏂囨湰楂樺害鐨勫�嶆暟锛岀浜屼釜鍙傛暟鏄澶栫殑鍥哄畾琛岃窛
Font titleFont = new Font(bfChinese, 14, Font.NORMAL);
- Paragraph title = new Paragraph("鏁版帶绋嬪簭缂栧埗瀹℃壒鍗�",titleFont);
- title.setAlignment(Element.ALIGN_CENTER);
-
- title.setLeading(40f, 0f);
+ Paragraph title = new Paragraph("鏁版帶绋嬪簭瀹℃壒鍗�", titleFont);
+ //title.setLeading(40f, 0f);
+ tip.setSpacingBefore(-0.5f);
title.setSpacingAfter(10); // 娈靛悗闂磋窛
- document.add(title);
+ title.setAlignment(Element.ALIGN_CENTER);
+ title.setPaddingTop(-0.6f);
+
+ Paragraph mixedParagraph = new Paragraph();
+ mixedParagraph.add(tip);
+ mixedParagraph.add(title);
+ mixedParagraph.setSpacingAfter(10);
+ document.add(mixedParagraph);
+
+
+ //document.add(title);
// 鍒涘缓琛ㄦ牸锛�4鍒楋級
PdfPTable table = new PdfPTable(5);
- table.setWidths(new float[]{2,1.2f, 1.2f, 1.2f,2});
+ table.setWidths(new float[]{1.5f, 1.4f, 1.4f, 1.4f, 1.5f});
Font ft = this.getChineseFont();
// 娣诲姞琛ㄥご
@@ -128,27 +144,24 @@
tempCell.setHorizontalAlignment(Element.ALIGN_CENTER);
tempCell.setVerticalAlignment(Element.ALIGN_MIDDLE);
- Phrase pt1 = new Phrase("闆剁粍浠跺彿",ft);
+ Phrase pt1 = new Phrase("闆剁粍浠跺彿", ft);
tempCell.setPhrase(pt1);
//tempCell.addElement(pt1);
//
table.addCell(tempCell);
- table.addCell(getCell("宸ュ簭鍙�",ft));
- table.addCell(getCell("宸ヨ壓鐗堟",ft));
- table.addCell(getCell("鏈哄簥鍨嬪彿",ft));
- table.addCell(getCell("宸ユ璐熻矗浜�/鍗曞厓璐焅n璐d汉娲惧嚭鏃堕棿",ft));
+ table.addCell(getCell("宸ュ簭鍙�", ft));
+ table.addCell(getCell("宸ヨ壓鐗堟", ft));
+ table.addCell(getCell("鏈哄簥鍨嬪彿", ft));
+ table.addCell(getCell("宸ユ璐熻矗浜�/鍗曞厓璐焅n璐d汉娲惧嚭鏃堕棿", ft));
- //PdfPCell cell12 = new PdfPCell();
- //cell12.setColspan(2);
- //cell12.addElement(new Phrase(ncProgram.getDrawingNo()));
- String drawingNo = vars.get(FlowContants.DRAWING_NO)+"";
- table.addCell(getCell(drawingNo,ft));//闆剁粍浠跺彿
- String processNo = vars.get(FlowContants.PROCESS_NO)+"";
- table.addCell(getCell(processNo,ft));//宸ュ簭鍙�
- String craftEdition = vars.get(FlowContants.CRAFT_EDITION)+"";
- table.addCell(getCell(craftEdition,ft));//宸ヨ壓鐗堟
- table.addCell(getCell(machine.getName(),ft));//鏈哄簥鍨嬪彿
- table.addCell("");//璐熻矗浜猴紝宸ユ璐熻矗浜烘淳鍑烘椂闂�
+
+ table.addCell(getCell(props.getDrawingNo(), ft));//闆剁粍浠跺彿
+
+ table.addCell(getCell(props.getProcessNo(), ft));//宸ュ簭鍙�
+
+ table.addCell(getCell(props.getCraftEdition(), ft));//宸ヨ壓鐗堟
+ table.addCell(getCell(machine.getName(), ft));//鏈哄簥鍨嬪彿
+ table.addCell(getCell(approveInfo.getTeamLeaderName(), ft));//璐熻矗浜猴紝宸ユ璐熻矗浜烘淳鍑烘椂闂�
//涓棿澶ф牸
PdfPCell cell = new PdfPCell();
@@ -176,27 +189,32 @@
Font underLineFt = new Font(bfChinese, 12, Font.UNDERLINE);
- String personName = record.getUserNickname();
+ //String personName = record.getUserNickname();
Chunk block1 = square;
- Chunk block2 = square;
- Date programDate = null;
- Date checkDate = null;
- if(StringUtils.equals(record.getTaskDefinitionKey(),"programmingTask")){
- block1 = check;
- programDate = record.getCreateTime();
- }else if(StringUtils.equals(record.getTaskDefinitionKey(),"check")){
- block2 = check;
- checkDate = record.getCreateTime();
- }
- Phrase p = new Phrase(" "+personName+" ",underLineFt);
+ Chunk block2 = check;
+ Date programDate = approveInfo.getProgrammingDate(); //TODO 鏌ヨ鏃堕棿
+ Date checkDate = approveInfo.getCheckDate();
+ Phrase p;
+ if (1 == flag) {
+ p = new Phrase(" " + approveInfo.getProgrammerName() + " ", underLineFt);
+ } else {
+ p = new Phrase(" " + approveInfo.getCheckerName() + " ", underLineFt);
+ }
line2Para.add(p);
Phrase p2 = new Phrase("璐熻矗鏁版帶绋嬪簭锛堢紪鍒�");
- p2.add(block1);
- p2.add(new Chunk(" 鏍″",ft));
- p2.add(block2);
- p2.add(new Chunk("锛�",ft));
+ if (flag == 1) {
+ p2.add(block2);
+ p2.add(new Chunk(" 鏍″", ft));
+ p2.add(block1);
+ } else {
+ p2.add(block1);
+ p2.add(new Chunk(" 鏍″", ft));
+ p2.add(block2);
+ }
+
+ p2.add(new Chunk("锛�", ft));
line2Para.add(p2);
cell.addElement(line2Para);
@@ -210,40 +228,50 @@
fangzhen.setFont(ft);
fangzhen.setLeading(30f, 0f);
fangzhen.add("鏄惁闇�瑕佷豢鐪燂紙鏄�");
+ fangzhen.add(check);//鍥哄畾鏄豢鐪�
+ fangzhen.add(" 鍚�");
fangzhen.add(square);
- fangzhen.add(";鍚�");
- fangzhen.add(square);
- fangzhen.add("锛塡n");
+ fangzhen.add("锛塡n\n");
cell.addElement(fangzhen);
table.addCell(cell);
//涓嬩竴琛�
- PdfPCell cell21 = getCell("鏁版帶绋嬪簭缂栧彿",ft);// PdfPCell();
+ PdfPCell cell21 = getCell("鏁版帶绋嬪簭缂栧彿", ft);// PdfPCell();
cell21.setColspan(2);
//cell21.setPhrase(new Phrase("鏁版帶绋嬪簭缂栧彿",ft));
table.addCell(cell21);
- table.addCell(getCell("缂栧埗/鏃ユ湡",ft));
- table.addCell(getCell("鏍″/鏃ユ湡",ft));
- table.addCell(getCell("鎵瑰噯/鏃ユ湡",ft));
+ table.addCell(getCell("缂栧埗/鏃ユ湡", ft));
+ table.addCell(getCell("鏍″/鏃ユ湡", ft));
+ table.addCell(getCell("鎵瑰噯/鏃ユ湡", ft));
- PdfPCell cell2 = new PdfPCell();
+ PdfPCell cell2 = getCell("00001", ft);
cell2.setColspan(2);
//cell2.addElement(new Phrase(programPackageNode.getProgramNo(),ft));//鏁版帶绋嬪簭缂栧彿
- cell2.addElement(new Phrase("00001",ft));
+ //cell2.addElement(new Phrase("00001",ft));
table.addCell(cell2);
String pDateStr = " ";
- if(programDate!=null){
- pDateStr = DateUtil.format(programDate,"yyyy-MM-dd");
+ if (programDate != null) {
+ pDateStr = DateUtil.format(programDate, "yyyy-MM-dd");
}
String checkDateStr = " ";
- if(checkDate!=null){
- checkDateStr = DateUtil.format(programDate,"yyyy-MM-dd");
+ if (checkDate != null) {
+ checkDateStr = DateUtil.format(programDate, "yyyy-MM-dd");
}
- table.addCell(getCell(pDateStr,ft));//缂栧埗鏃ユ湡
- table.addCell(getCell(checkDateStr,ft));
- table.addCell(getCell(" ",ft));
+
+ String approveDateStr = " ";
+ if (approveInfo.getApproveDate() != null) {
+ approveDateStr = DateUtil.format(approveInfo.getApproveDate(), "yyyy-MM-dd");
+ }
+ table.addCell(getCell(approveInfo.getProgrammerName()+" " +pDateStr, ft));//缂栧埗/鏃ユ湡
+ table.addCell(getCell(approveInfo.getCheckerName()+" " +checkDateStr, ft));
+ table.addCell(getCell(approveInfo.getSeniorName()+" " +approveDateStr, ft));
+
+ PdfPCell sendPathCell = getCell("鏁版帶绋嬪簭浼犺緭璺緞锛�" + (machine.getProgSendDir() == null ? "" : machine.getProgSendDir()), ft);// PdfPCell();
+ sendPathCell.setHorizontalAlignment(Element.ALIGN_LEFT);
+ sendPathCell.setColspan(5);
+ table.addCell(sendPathCell);
// 璁剧疆琛ㄦ牸瀹藉害鍗犻〉闈㈠搴︾殑100%
table.setWidthPercentage(100);
@@ -251,17 +279,17 @@
// 娣诲姞琛ㄦ牸鍒版枃妗�
document.add(table);
- Phrase lastPhrase = new Phrase("娉�:宸ユ娲惧伐搴旈鍏堣鍒掋�佸悎鐞嗗畨鎺掓暟鎺х▼搴忕紪鍒躲�傜珛鍔犮�佹暟閾c�佹暟杞︾瓑鍗曢亾宸ュ簭绋嬪簭(涓よ酱绋嬪簭)闇�鎻愬墠1涓伐浣滄棩锛屽崸寮忓姞宸ヤ腑蹇冨崟閬撳伐搴�(鍚杞寸▼搴�)闇�鎻愬墠3涓伐浣滄棩銆� ",ft);
+ Phrase lastPhrase = new Phrase("娉�:宸ユ娲惧伐搴旈鍏堣鍒掋�佸悎鐞嗗畨鎺掓暟鎺х▼搴忕紪鍒躲�傜珛鍔犮�佹暟閾c�佹暟杞︾瓑鍗曢亾宸ュ簭绋嬪簭(涓よ酱绋嬪簭)闇�鎻愬墠1涓伐浣滄棩锛屽崸寮忓姞宸ヤ腑蹇冨崟閬撳伐搴�(鍚杞寸▼搴�)闇�鎻愬墠3涓伐浣滄棩銆� ", ft);
document.add(lastPhrase);
}
- PdfPCell getCell(String text,Font font) throws DocumentException, IOException {
+ PdfPCell getCell(String text, Font font) throws DocumentException, IOException {
PdfPCell cell = new PdfPCell();
cell.setPadding(10);
cell.setHorizontalAlignment(Element.ALIGN_CENTER);
cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
- if(StringUtils.isNotBlank(text)){
- Phrase p = new Phrase(text,font);
+ if (StringUtils.isNotBlank(text)) {
+ Phrase p = new Phrase(text, font);
p.setLeading(25);
cell.setPhrase(p);
}
@@ -269,5 +297,68 @@
return cell;
}
+ ApproveTableInfo getApproveInfo(FlowProgramProperties props){
+ //缂栧埗
+ R<User> leaderR = useClient.userInfoById(props.getTeamLeaderId());
+ String leaderName = "";
+ if (leaderR.isSuccess()) {
+ leaderName = leaderR.getData().getName();
+ }
+ //缂栧埗
+ R<User> programmerR = useClient.userInfoById(props.getProgrammerId());
+ String programmerName = "";
+ if (programmerR.isSuccess()) {
+ programmerName = programmerR.getData().getName();
+ }
+ Machine machine;
+ String machineCode = props.getMachineCode();
+ machine = machineService.getByCode(machineCode);
+
+ //鏍″
+ R<User> checkerR = useClient.userInfoById(props.getCheckerId());
+ String checkerName = "";
+ if (checkerR.isSuccess()) {
+ checkerName = checkerR.getData().getName();
+ }
+ //瀹℃牳
+ R<User> seniorR = useClient.userInfoById(props.getCheckerId());
+ String senioirName = "";
+ if (seniorR.isSuccess()) {
+ senioirName = seniorR.getData().getName();
+ }
+ ApproveTableInfo appInfo = new ApproveTableInfo();
+ appInfo.setTeamLeaderName(leaderName);
+ appInfo.setProgrammerName(programmerName);
+ appInfo.setCheckerName(checkerName);
+ appInfo.setSeniorName(senioirName);
+
+ //鑾峰彇鏃堕棿淇℃伅
+ List<HistoricTaskInstance> hisTasks = historyService.createHistoricTaskInstanceQuery()
+ .processInstanceId(props.getProcessInstanceId()).orderByTaskCreateTime().desc().list();
+
+ for(HistoricTaskInstance task : hisTasks){
+ if(appInfo.getProgrammingDate()== null && task.getTaskDefinitionKey().contains("program")){
+ appInfo.setProgrammingDate(task.getEndTime());
+ }
+
+ if(appInfo.getCheckDate()== null && task.getTaskDefinitionKey().contains("check")){
+ appInfo.setCheckDate(task.getEndTime());
+ }
+
+ if(appInfo.getApproveDate()== null && task.getTaskDefinitionKey().contains("approve")){
+ appInfo.setApproveDate(task.getEndTime());
+ }
+ }
+
+ //鏌ヨ鏁版帶绋嬪簭缂栧彿
+ Optional<NcProgramApproved> appOpt = programApprovedService.lambdaQuery().eq(NcProgramApproved::getProcessInstanceId, props.getProcessInstanceId()).oneOpt();
+ if(appOpt.isEmpty()){
+ appInfo.setProgramNo("锛堟湭鐢熸垚锛�");
+ }else{
+ NcNode programPkgNameNode = this.ncNodeService.getById(appOpt.get().getNcNodeId());
+ appInfo.setProgramNo(programPkgNameNode.getProgramNo());
+ }
+ return appInfo;
+ }
}
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/FlowCommonService.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/FlowCommonService.java
index a19af2a..1354c20 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/FlowCommonService.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/FlowCommonService.java
@@ -86,8 +86,10 @@
}
programProperties.setCureProgramUseable(String.valueOf(vars.get(FlowContants.CURE_PROGRAM_USEABLE)));
+ programProperties.setTeamLeaderId(Func.toLong(vars.get(FlowContants.TEAM_LEADER)));
programProperties.setProgrammerId(Func.toLong(vars.get(FlowContants.PROGRAMMER)));
-
+ programProperties.setCheckerId(Func.toLong(vars.get(FlowContants.CHECKER)));
+ programProperties.setSeniorId(Func.toLong(vars.get(FlowContants.SENIOR)));
ProcessInstance processInstance = runtimeService.createProcessInstanceQuery()
.processInstanceId(processInstanceId)
.singleResult();
@@ -95,7 +97,49 @@
programProperties.setProcessDefinitionKey(processDefinitionKey);
return programProperties;
}
+ public FlowProgramProperties getProgramPropertiesFromHis(String processInstanceId) {
+ HistoricProcessInstance historicInstance = historyService.createHistoricProcessInstanceQuery().includeProcessVariables()
+ .processInstanceId(processInstanceId)
+ .singleResult();
+ FlowProgramProperties programProperties = new FlowProgramProperties();
+ programProperties.setProcessInstanceId(processInstanceId);
+
+ Map<String, Object> vars =historicInstance.getProcessVariables();
+
+ programProperties.setTitle(String.valueOf(vars.get(FlowContants.TITLE)));
+ programProperties.setIsTempFlow(Func.toStr(vars.get(FlowContants.IS_TEMP_FLOW)));
+ programProperties.setDrawingNo(String.valueOf(vars.get(FlowContants.DRAWING_NO)));
+ programProperties.setDrawingNoEdition(String.valueOf(vars.get(FlowContants.DRAWING_NO_EDITION)));
+ programProperties.setProductModel(String.valueOf(vars.get(FlowContants.PRODUCT_MODEL)));
+
+ programProperties.setProcessNo(String.valueOf(vars.get(FlowContants.PROCESS_NO)));
+ programProperties.setProcessEdition(String.valueOf(vars.get(FlowContants.PROCESS_EDITION)));//宸ュ簭鐗堟
+ programProperties.setProcessName(String.valueOf(vars.get(FlowContants.PROCESS_NAME)));
+ programProperties.setMachineCode(String.valueOf(vars.get(FlowContants.MACHINE_CODE)));
+
+ programProperties.setMachineMode(String.valueOf(vars.get(FlowContants.MACHINE_MODE)));
+ //鏁版嵁澶勭悊鍚嶇О涓虹増娆′互鍓嶏紝闆朵欢鍙峰姞宸ュ簭鍙凤細YZL4-1100-01-50 闆剁粍浠跺彿锛歒ZL4-1100-01 宸ュ簭鍙� 50
+
+ programProperties.setCraftEdition(String.valueOf(vars.get(FlowContants.CRAFT_EDITION)));
+ programProperties.setHasCuredProgram(String.valueOf(vars.get(FlowContants.HAS_CURED_PROGRAM)));
+ programProperties.setIsProcessEditionSame(String.valueOf(vars.get(FlowContants.IS_PROCESS_EDITION_SAME)));
+ if(vars.containsKey(FlowContants.DEVIATION)) {
+ programProperties.setDeviation(String.valueOf(vars.get(FlowContants.DEVIATION)));
+ }
+ if(vars.containsKey(FlowContants.CURED_NODE_ID)){
+ programProperties.setCuredNodeId(Func.toLong(vars.get(FlowContants.CURED_NODE_ID)));
+ }
+ programProperties.setCureProgramUseable(String.valueOf(vars.get(FlowContants.CURE_PROGRAM_USEABLE)));
+
+ programProperties.setTeamLeaderId(Func.toLong(vars.get(FlowContants.TEAM_LEADER)));
+ programProperties.setProgrammerId(Func.toLong(vars.get(FlowContants.PROGRAMMER)));
+ programProperties.setCheckerId(Func.toLong(vars.get(FlowContants.CHECKER)));
+ programProperties.setSeniorId(Func.toLong(vars.get(FlowContants.SENIOR)));
+
+ programProperties.setProcessDefinitionKey(historicInstance.getProcessDefinitionKey());
+ return programProperties;
+ }
/**
* 娴佺▼鏄惁鍦ㄨ繘琛�
* @param processInstanceId 瀹炰緥id
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/FlowProgramProperties.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/FlowProgramProperties.java
index ba9456a..9d18bea 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/FlowProgramProperties.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/FlowProgramProperties.java
@@ -2,6 +2,8 @@
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
+import org.springblade.core.tool.utils.Func;
+import org.springblade.mdm.flow.constants.FlowContants;
import java.time.LocalDate;
@@ -60,9 +62,14 @@
@Schema(description = "绋嬪簭鏄惁鍙敤鍒ゅ畾:Y/N")
private String cureProgramUseable;
+ @Schema(description = "涓撲笟缁勯暱id")
+ private Long teamLeaderId;
@Schema(description = "缂栫▼鍛榠d")
private Long programmerId;
-
+ @Schema(description = "鏍″鍛榠d")
+ private Long checkerId;
+ @Schema(description = "瀹℃牳楂樺笀ID")
+ private Long seniorId;
@Schema(description = "鏄惁涓存椂娴佺▼:Y/N")
private String isTempFlow;
}
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/FlowTransferService.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/FlowTransferService.java
index 5a63233..8d0f7e4 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/FlowTransferService.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/FlowTransferService.java
@@ -7,11 +7,14 @@
import org.flowable.engine.history.HistoricProcessInstance;
import org.flowable.engine.runtime.ProcessInstance;
import org.flowable.task.api.Task;
+import org.flowable.task.service.impl.persistence.entity.TaskEntity;
import org.springblade.mdm.flow.constants.FlowContants;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
+import java.util.Date;
import java.util.Map;
+import java.util.UUID;
@AllArgsConstructor
@Service
@@ -30,15 +33,53 @@
@Transactional
public void transferTask(String taskId, String newAssigneeId,String comment) {
- Task task = taskService.createTaskQuery().taskId(taskId).singleResult();
- // 澧炲姞璇勮
+ Task currTask = taskService.createTaskQuery().taskId(taskId).singleResult();
- taskService.addComment(taskId, task.getProcessInstanceId(), comment);
+ //if (currTask != null) {
+ //1.鐢熸垚鍘嗗彶璁板綍
+ TaskEntity subtask = this.createSubTask(currTask, currTask.getAssignee());
+ //2.娣诲姞瀹℃壒鎰忚
+ //this.addComment(subtask.getId(), turnTaskVo.getUserCode(), turnTaskVo.getProcessInstanceId(), CommentTypeEnum.ZB.toString(), turnTaskVo.getMessage());
+ taskService.addComment(subtask.getId(), currTask.getProcessInstanceId(), comment);
+ taskService.complete(subtask.getId());
+ //3.杞姙
+ //taskService.setAssignee(turnTaskVo.getTaskId(), turnTaskVo.getTurnToUserId());
+ taskService.setAssignee(taskId, newAssigneeId);
+ //taskService.setOwner(taskId, currTask.getAssignee());
+ taskService.setOwner(taskId, newAssigneeId);
+ //returnVo = new ReturnVo<>(ReturnCode.SUCCESS, "杞姙鎴愬姛");
+ //}
+
+ // 澧炲姞璇勮
+ //taskService.addComment(taskId, currTask.getProcessInstanceId(), comment);
// 瀹屾垚浠诲姟
- taskService.setAssignee(taskId, newAssigneeId);
+ //taskService.setAssignee(taskId, newAssigneeId);
//鑷崘琛ㄥ鍔犺瘎璁烘暟鎹�
- approveRecordService.saveApproveRecords(task,"Y",comment);
+ //approveRecordService.saveApproveRecords(currTask,"Y",comment);
+ }
+
+ TaskEntity createSubTask(Task ptask, String assignee) {
+ TaskEntity task = null;
+ if (ptask != null) {
+ //1.鐢熸垚瀛愪换鍔�
+ UUID uuid = UUID.randomUUID();
+ task = (TaskEntity) taskService.newTask(uuid.toString());
+ task.setCategory(ptask.getCategory());
+ task.setDescription(ptask.getDescription());
+ task.setTenantId(ptask.getTenantId());
+ task.setAssignee(assignee);
+ task.setName(ptask.getName());
+ task.setParentTaskId(ptask.getId());
+ task.setProcessDefinitionId(ptask.getProcessDefinitionId());
+ task.setProcessInstanceId(ptask.getProcessInstanceId());
+ task.setTaskDefinitionKey(ptask.getTaskDefinitionKey());
+ task.setTaskDefinitionId(ptask.getTaskDefinitionId());
+ task.setPriority(ptask.getPriority());
+ task.setCreateTime(new Date());
+ taskService.saveTask(task);
+ }
+ return task;
}
}
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/vo/ApproveTableInfo.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/vo/ApproveTableInfo.java
new file mode 100644
index 0000000..0f34216
--- /dev/null
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/vo/ApproveTableInfo.java
@@ -0,0 +1,29 @@
+package org.springblade.mdm.flow.vo;
+
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+public class ApproveTableInfo {
+ private String teamLeaderName;
+ private String programmerName;
+ private String checkerName;
+ private String seniorName;
+
+
+ private Date programmingDate;
+ /**
+ * 鏍″鏃堕棿
+ */
+ private Date checkDate;
+ /**
+ * 瀹℃牳鏃堕棿
+ */
+ private Date approveDate;
+
+ /**
+ * 鏁版帶绋嬪簭缂栧彿
+ */
+ private String programNo;
+}
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/entity/NcProgramApproved.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/entity/NcProgramApproved.java
index d23c063..140d389 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/entity/NcProgramApproved.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/entity/NcProgramApproved.java
@@ -41,4 +41,9 @@
*/
private Long programmerId;
+ /**
+ * 娴佺▼瀹炰緥id
+ */
+ private String processInstanceId;
+
}
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/NcNodeAutoCreateService.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/NcNodeAutoCreateService.java
index f2ba2b4..076f094 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/NcNodeAutoCreateService.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/NcNodeAutoCreateService.java
@@ -183,8 +183,6 @@
//绋嬪簭鍖呰妭鐐瑰拰绋嬪簭鏂囦欢鑺傜偣鏁版嵁
if(NcNode.TYPE_PROGRAM_PACKAGE.equals(nodeType) || NcNode.TYPE_PROGRAM_FILE.equals(nodeType)){
- String programNo = programSeqService.generageProgramNo();
- ncNode.setProgramNo(programNo);
ncNode.setProcessInstanceId(programProperties.getProcessInstanceId());
ncNode.setDrawingNo(programProperties.getDrawingNo());
ncNode.setDrawingNoEdition(programProperties.getDrawingNoEdition());
@@ -196,6 +194,11 @@
ncNode.setProductModel(programProperties.getProductModel());
ncNode.setDeviation(programProperties.getDeviation());
+
+ if(NcNode.TYPE_PROGRAM_PACKAGE.equals(nodeType)) {//绋嬪簭鍖呰妭鐐癸紝鍒嗛厤绋嬪簭缂栧彿
+ String programNo = programSeqService.generageProgramNo();
+ ncNode.setProgramNo(programNo);
+ }
}
ncNode.setIsLastEdition(1);
diff --git a/blade-service/blade-mdm/src/test/java/org/springblade/mdm/flow/service/ApproveTableServiceTest.java b/blade-service/blade-mdm/src/test/java/org/springblade/mdm/flow/service/ApproveTableServiceTest.java
index beb3b56..a3d042d 100644
--- a/blade-service/blade-mdm/src/test/java/org/springblade/mdm/flow/service/ApproveTableServiceTest.java
+++ b/blade-service/blade-mdm/src/test/java/org/springblade/mdm/flow/service/ApproveTableServiceTest.java
@@ -1,19 +1,70 @@
package org.springblade.mdm.flow.service;
-import com.google.common.io.FileBackedOutputStream;
+import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
+import com.itextpdf.text.PageSize;
+import com.itextpdf.text.pdf.BaseFont;
+import com.itextpdf.text.pdf.PdfWriter;
import org.junit.jupiter.api.Test;
+import org.springblade.mdm.basesetting.machine.entity.Machine;
+import org.springblade.mdm.flow.vo.ApproveTableInfo;
-import java.io.FileNotFoundException;
+import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
+import java.util.Calendar;
+import java.util.Date;
public class ApproveTableServiceTest {
@Test
public void test(){
- ApproveTableService s = new ApproveTableService(null,null,null,null,null);
+ ApproveTableService s = new ApproveTableService();
try {
- //s.exportApproveTable("1",new FileOutputStream("d:/t.pdf"));
+ BaseFont bfChinese = s.getBaseFont();
+
+ Document document = new Document(PageSize.B5.rotate());
+
+ String filename = "d:/t"+System.currentTimeMillis()+".pdf";
+ File pdf = new File(filename);
+ if(pdf.exists()){
+ pdf.delete();
+ }
+ PdfWriter.getInstance(document,new FileOutputStream(pdf));
+
+ document.open();
+
+ FlowProgramProperties props = new FlowProgramProperties();
+ props.setDrawingNo("CP3-1");
+ props.setProcessNo("A");
+ props.setProcessEdition("93");
+ props.setCraftEdition("宸ヨ壓鐗堟");
+ props.setProductModel("CP3");
+ //缂栧埗
+
+ Machine machine = new Machine();
+ machine.setName("1075");
+ machine.setProgSendDir("d:\\mdm\\send");
+
+ ApproveTableInfo appInfo = new ApproveTableInfo();
+ appInfo.setTeamLeaderName("缁勯暱1");
+ appInfo.setProgrammerName("缂栧埗1");
+ appInfo.setCheckerName("鏍″1");
+ appInfo.setSeniorName("瀹℃牳1");
+
+
+ Calendar startCal = Calendar.getInstance();
+ startCal.add(Calendar.DAY_OF_MONTH, -5);
+ appInfo.setProgrammingDate(startCal.getTime());
+
+ startCal.add(Calendar.DAY_OF_MONTH, 2);
+ appInfo.setCheckDate(startCal.getTime());
+
+
+ startCal.add(Calendar.DAY_OF_MONTH, 2);
+ appInfo.setApproveDate(startCal.getTime());
+ s.printPage(document,bfChinese,props,machine,1,appInfo);
+
+ document.close();
} catch (Exception e) {
throw new RuntimeException(e);
}
--
Gitblit v1.9.3