|
package org.springblade.mdm.statreport.service;
|
|
import lombok.extern.slf4j.Slf4j;
|
import org.apache.commons.lang3.StringUtils;
|
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.commons.service.ParamService;
|
import org.springblade.mdm.flow.constants.FlowContants;
|
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.program.service.NcNodeService;
|
import org.springblade.mdm.statreport.utils.WordReplaceUtil;
|
import org.springblade.system.feign.IUserClient;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
import org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer;
|
|
import java.io.ByteArrayOutputStream;
|
import java.io.IOException;
|
import java.io.InputStream;
|
import java.io.OutputStream;
|
import java.util.Date;
|
import java.util.HashMap;
|
import java.util.Map;
|
|
/**
|
* 审批记录,用于查询执行轨迹
|
*
|
* @author yangys
|
*/
|
@Slf4j
|
@Service
|
public class ApproveTableService {
|
@Autowired
|
private NcNodeService ncNodeService;
|
@Autowired
|
private MachineService machineService;
|
@Autowired
|
private IUserClient useClient;
|
@Autowired
|
private OssTemplate ossTemplate;
|
|
@Autowired
|
private ApproveInfoQueryService approveInfoQueryService;
|
|
@Autowired
|
private ParamService paramService;
|
/**
|
* 导出word岸本
|
* @param dispatch 任务分派
|
* @param props 流程属性
|
*/
|
public ByteArrayOutputStream exportApproveTableDoc(TaskDispatch dispatch,FlowProgramProperties props) throws IOException {
|
ByteArrayOutputStream os= new ByteArrayOutputStream();
|
String tplOssName = paramService.approveTableTemplateOssFileName();
|
try(InputStream tplInputStream = ossTemplate.statFileStream(tplOssName);) {
|
WordReplaceUtil.convert(getData(dispatch, props), tplInputStream, os);
|
}
|
return os;
|
}
|
|
/**
|
* 获取填充数据
|
*/
|
|
Map<String,String> getData(TaskDispatch dispatch,FlowProgramProperties props){
|
ApproveTableInfo approveInfo = approveInfoQueryService.getApproveInfo(props);
|
Machine machine;
|
String machineCode = props.getMachineCode();
|
machine = machineService.getByCode(machineCode);
|
|
Map<String,String> dataMap = new HashMap<>();
|
dataMap.put("drawingNo",props.getDrawingNo());
|
dataMap.put("processNo",props.getProcessNo());
|
dataMap.put("craftEdition",props.getCraftEdition());
|
dataMap.put("processEdition",props.getProcessEdition());
|
dataMap.put("machineMode",machine.getName());
|
|
String DATE_PATTERN = "yyyy-M-d";
|
|
String dispatchDateStr = " ";
|
if (approveInfo.getDispatchDate() != null) {
|
dispatchDateStr = DateUtil.format(approveInfo.getDispatchDate(), DATE_PATTERN);
|
}
|
|
dataMap.put("teamLeader",approveInfo.getTeamLeaderName()+"/"+dispatchDateStr);
|
dataMap.put("fuzeren",approveInfo.getProgrammerName());//负责人
|
int isProgram = 0;
|
if(StringUtils.equals(props.getHasCuredProgram(),FlowContants.Y)){
|
//校对任务
|
dataMap.put("jd", WordReplaceUtil.CHECKED);
|
dataMap.put("bc", WordReplaceUtil.UNCHECKED);
|
|
}else{
|
//编程任务
|
dataMap.put("jd", WordReplaceUtil.UNCHECKED);
|
dataMap.put("bc", WordReplaceUtil.CHECKED);
|
}
|
|
dataMap.put("programNo",dispatch.getProgramNo());
|
dataMap.put("fzy",WordReplaceUtil.CHECKED);
|
dataMap.put("fzn",WordReplaceUtil.UNCHECKED);
|
Date programDate = approveInfo.getCheckDate();
|
Date checkDate = approveInfo.getCheckDate();
|
|
String bianzhiDateStr = DateUtil.format(dispatch.getCreateTime(), DATE_PATTERN);
|
|
String checkDateStr = " ";
|
if (checkDate != null) {
|
checkDateStr = DateUtil.format(programDate, DATE_PATTERN);
|
}
|
|
String approveDateStr = " ";
|
if (approveInfo.getApproveDate() != null) {
|
approveDateStr = DateUtil.format(approveInfo.getApproveDate(), DATE_PATTERN);
|
}
|
|
dataMap.put("programmer",approveInfo.getProgrammerName()+"/"+bianzhiDateStr);
|
dataMap.put("jiaodui",approveInfo.getTeamLeaderName()+"/时间不确定");
|
dataMap.put("shenpi",approveInfo.getSeniorName()+"/时间不确定");
|
|
dataMap.put("sendPath",machine.getProgSendDir()!=null?machine.getProgSendDir():"");
|
|
return dataMap;
|
}
|
|
/*
|
public void exportApproveTableOld(String processInstanceId, OutputStream os) throws DocumentException, IOException {
|
|
BaseFont bfChinese = getBaseFont();
|
|
Document document = new Document(PageSize.B5.rotate());
|
PdfWriter.getInstance(document, os);
|
|
document.open();
|
|
FlowProgramProperties props = flowCommonService.getProgramPropertiesFromHis(processInstanceId);
|
|
ApproveTableInfo appInfo = getApproveInfo(props);
|
Machine machine;
|
String machineCode = props.getMachineCode();
|
machine = machineService.getByCode(machineCode);
|
|
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();
|
}
|
*/
|
|
|
}
|