|
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.mdm.basesetting.machine.entity.Machine;
|
import org.springblade.mdm.basesetting.machine.service.MachineService;
|
import org.springblade.mdm.commons.service.ParamService;
|
import org.springblade.mdm.commons.service.UserCommonService;
|
import org.springblade.mdm.flow.constants.FlowConstant;
|
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.vo.ApproveTableInfo;
|
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 java.io.ByteArrayOutputStream;
|
import java.io.IOException;
|
import java.io.InputStream;
|
import java.util.Date;
|
import java.util.HashMap;
|
import java.util.Map;
|
|
/**
|
* 审批记录,用于查询执行轨迹
|
*
|
* @author yangys
|
*/
|
@Slf4j
|
@Service
|
public class ApproveTableService {
|
@Autowired
|
private UserCommonService userCommonService;
|
@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("startTime",dispatchDateStr);//工段负责人/单元负责人派出时间
|
dataMap.put("fuzeren",approveInfo.getProgrammerName());//负责人
|
|
if(StringUtils.equals(props.getHasCuredProgram(), FlowConstant.Y)){
|
//校对任务
|
dataMap.put("jd", WordReplaceUtil.CHECKED);
|
dataMap.put("bz", WordReplaceUtil.UNCHECKED);
|
|
}else{
|
//编程任务
|
dataMap.put("jd", WordReplaceUtil.UNCHECKED);
|
dataMap.put("bz", WordReplaceUtil.CHECKED);
|
}
|
|
dataMap.put("programNo",props.getProgramNo());
|
|
dataMap.put("fzy",WordReplaceUtil.CHECKED); //仿真 是
|
dataMap.put("fzn",WordReplaceUtil.UNCHECKED);//仿真 否
|
|
String bianzhi = userCommonService.getUserNameById(dispatch.getCreateUser());
|
dataMap.put("bianzhi",bianzhi+"/"+formatTimeForTable(dispatch.getCreateTime()));//编制:计划员/发起时间
|
dataMap.put("jiaodui",approveInfo.getTeamLeaderName()+"/"+formatTimeForTable(approveInfo.getDispatchDate())); //
|
dataMap.put("shenpi",approveInfo.getSeniorName()+"/"+formatTimeForTable(approveInfo.getApproveDate()));//就是高师审批时间
|
|
dataMap.put("sendPath",machine.getProgSendDir()!=null?machine.getProgSendDir():"");
|
|
return dataMap;
|
}
|
String formatTimeForTable(Date date){
|
String DATE_PATTERN = "yyyy-M-d";
|
if(date==null){
|
return "";
|
}
|
|
return DateUtil.format(date, DATE_PATTERN);
|
}
|
/*
|
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();
|
}
|
*/
|
|
|
}
|