| | |
| | | @ApiAccessLog(operateType = EXPORT) |
| | | public void exportProjectTrackingWord(@RequestParam("id") Long id, |
| | | HttpServletResponse response) throws IOException { |
| | | throw new cn.iocoder.yudao.framework.common.exception.ServiceException(1_040_990_001, "跟踪表用印须先提交审批,请使用用印申请"); |
| | | } |
| | | |
| | | /** 仅供用印申请生成不可变快照。 */ |
| | | public byte[] createTrackingSnapshot(Long id) throws IOException { |
| | | MesPdProjectDO project = projectService.getProject(id); |
| | | if (project == null) { |
| | | throw exception(PD_PROJECT_NOT_EXISTS); |
| | |
| | | fields.put("remark", project.getRemark()); |
| | | |
| | | var companyConfig = companyConfigService.getCompanyConfig(); |
| | | byte[] content = MesWmDocumentRenderer.renderProjectTracking(fields, |
| | | return MesWmDocumentRenderer.renderProjectTracking(fields, |
| | | companyConfig != null ? companyConfig.getCompanyName() : null); |
| | | String filename = "项目跟踪表-" + project.getTaskCode() + ".docx"; |
| | | String encoded = URLEncoder.encode(filename, StandardCharsets.UTF_8).replace("+", "%20"); |
| | | response.setContentType("application/vnd.openxmlformats-officedocument.wordprocessingml.document"); |
| | | response.setHeader("Content-Disposition", "attachment;filename*=UTF-8''" + encoded); |
| | | response.getOutputStream().write(content); |
| | | } |
| | | |
| | | private String resolveStatusName(Integer status) { |