From 3bf76dd12ea91b157a490412556dad2461d60ae0 Mon Sep 17 00:00:00 2001 From: V26772074 Date: Fri, 20 Sep 2024 08:49:33 +0800 Subject: [PATCH] update --- .../jnpf/service/impl/ExpertServiceImpl.java | 56 +++++------ .../impl/LotteryProjectServiceImpl.java | 92 +++++++++++++----- .../jnpf/templete/招投标公司打印.docx | Bin 10718 -> 10924 bytes ...份有限公司ERP系统建设项目.docx | Bin 10688 -> 10891 bytes 4 files changed, 97 insertions(+), 51 deletions(-) diff --git a/jnpf-tendering-biz/src/main/java/jnpf/service/impl/ExpertServiceImpl.java b/jnpf-tendering-biz/src/main/java/jnpf/service/impl/ExpertServiceImpl.java index c328f90..87ed1e9 100644 --- a/jnpf-tendering-biz/src/main/java/jnpf/service/impl/ExpertServiceImpl.java +++ b/jnpf-tendering-biz/src/main/java/jnpf/service/impl/ExpertServiceImpl.java @@ -189,33 +189,33 @@ public class ExpertServiceImpl extends ServiceImpl impleme if (StrUtil.isBlank(param.getExpertName())) { throw new DataException("专家名称不能为空"); } - if (StrUtil.isBlank(param.getExpertGroup())) { - throw new DataException("专家组别不能为空"); - } - if (StrUtil.isBlank(param.getSex())) { - throw new DataException("专家性别不能为空"); - } - if (StrUtil.isBlank(param.getPhoneNumber())) { - throw new DataException("专家电话不能为空"); - } - if (StrUtil.isBlank(param.getExpertSources())) { - throw new DataException("专家来源不能为空"); - } - if (StrUtil.isBlank(param.getWorkUnit())) { - throw new DataException("工作单位不能为空"); - } - if (StrUtil.isBlank(param.getPost())) { - throw new DataException("职务不能为空"); - } - if (StrUtil.isBlank(param.getTechnicalPosition())) { - throw new DataException("专业技术职称不能为空"); - } - if (StrUtil.isBlank(param.getProfessionalExpertise())) { - throw new DataException("专业特长不能为空"); - } - if (StrUtil.isBlank(param.getStatus())) { - throw new DataException("专家状态不能为空"); - } +// if (StrUtil.isBlank(param.getExpertGroup())) { +// throw new DataException("专家组别不能为空"); +// } +// if (StrUtil.isBlank(param.getSex())) { +// throw new DataException("专家性别不能为空"); +// } +// if (StrUtil.isBlank(param.getPhoneNumber())) { +// throw new DataException("专家电话不能为空"); +// } +// if (StrUtil.isBlank(param.getExpertSources())) { +// throw new DataException("专家来源不能为空"); +// } +// if (StrUtil.isBlank(param.getWorkUnit())) { +// throw new DataException("工作单位不能为空"); +// } +// if (StrUtil.isBlank(param.getPost())) { +// throw new DataException("职务不能为空"); +// } +// if (StrUtil.isBlank(param.getTechnicalPosition())) { +// throw new DataException("专业技术职称不能为空"); +// } +// if (StrUtil.isBlank(param.getProfessionalExpertise())) { +// throw new DataException("专业特长不能为空"); +// } +// if (StrUtil.isBlank(param.getStatus())) { +// throw new DataException("专家状态不能为空"); +// } break; case "2": if (CollectionUtil.isEmpty(param.getContactInformation())) { @@ -312,7 +312,7 @@ public class ExpertServiceImpl extends ServiceImpl impleme if (StrUtil.isNotBlank(row.getCell(10).getStringCellValue())){ addParam.setWorkingYears(row.getCell(10).getStringCellValue()); } - addParam.setStatus("1"); + addParam.setStatus("0"); addParamList.add(addParam); } for (ExpertDto.AddParam addParam : addParamList) { diff --git a/jnpf-tendering-biz/src/main/java/jnpf/service/impl/LotteryProjectServiceImpl.java b/jnpf-tendering-biz/src/main/java/jnpf/service/impl/LotteryProjectServiceImpl.java index 65de35b..4a14512 100644 --- a/jnpf-tendering-biz/src/main/java/jnpf/service/impl/LotteryProjectServiceImpl.java +++ b/jnpf-tendering-biz/src/main/java/jnpf/service/impl/LotteryProjectServiceImpl.java @@ -81,7 +81,9 @@ public class LotteryProjectServiceImpl extends ServiceImpl extractExpertsInfo = lotteryReview.getExtractExpertsInfo().stream().filter(e->e.getStatus().equals(LotteryProjectDto.ConfirmEnum.JOIN.getCode())).collect(Collectors.toList()); + List extractExpertsInfo = lotteryReview.getExtractExpertsInfo().stream().filter(e -> e.getStatus().equals(LotteryProjectDto.ConfirmEnum.JOIN.getCode())).collect(Collectors.toList()); DownloadVO vo = DownloadVO.builder().build(); - switch (lotteryProject.getLotteryType()){ + switch (lotteryProject.getLotteryType()) { case "1": - if (CollectionUtil.isEmpty(extractExpertsInfo)){ + if (CollectionUtil.isEmpty(extractExpertsInfo)) { throw new DataException("暂未有确认专家,无法打印"); } try { - MockMultipartFile mockMultipartFile = expertPrinting("专家抽取结果打印.docx", extractExpertsInfo); + MockMultipartFile mockMultipartFile = expertPrinting("专家抽取结果打印.docx", extractExpertsInfo, lotteryProject.getProjectName()); String temporaryFilePath = fileApi.getPath(FileTypeConstant.TEMPORARY); FileInfo fileInfo = fileUploadApi.uploadFile(mockMultipartFile, temporaryFilePath, "专家抽取结果打印.docx"); vo.setName(fileInfo.getFilename()); @@ -354,16 +358,16 @@ public class LotteryProjectServiceImpl extends ServiceImpl data) throws Exception { + private MockMultipartFile expertPrinting(String fileName, List data, String projectName) throws Exception { try (InputStream inputStream = ResourceUtil.getStream("jnpf/templete/浙江出版传媒股份有限公司ERP系统建设项目.docx"); XWPFDocument doc = new XWPFDocument(inputStream)) { // 找到标记位置的段落 XWPFParagraph placeholderParagraph = null; + XWPFParagraph textParagraph = null; for (XWPFParagraph paragraph : doc.getParagraphs()) { if (paragraph.getText().contains("{{table_here}}")) { placeholderParagraph = paragraph; break; } + if (paragraph.getText().contains("{{projectName}}")) { + textParagraph = paragraph; + } } if (placeholderParagraph == null) { throw new IllegalStateException("Cannot find placeholder in the document."); } + // 删除包含占位符的段落 XWPFRun run = placeholderParagraph.getRuns().get(0); run.setText(run.getText(0).replace("{{table_here}}", ""), 0); + //替换项目名称 + if (textParagraph != null) { + String join = StrUtil.join("", textParagraph.getRuns().stream().map(te -> te.getText(0)).collect(Collectors.toList())); + XWPFRun xwpfRun = textParagraph.getRuns().get(0); + for (XWPFRun textParagraphRun : textParagraph.getRuns()) { + textParagraphRun.setText(""); + } + xwpfRun.setText(join.replace("{{projectName}}",projectName), 0); + } + // 在占位符位置插入表格 // 插入表格到占位符位置后 @@ -463,18 +482,22 @@ public class LotteryProjectServiceImpl extends ServiceImpl data) throws Exception { + private MockMultipartFile companyPrinting(String fileName, List data, String projectName) throws Exception { try (InputStream inputStream = ResourceUtil.getStream("jnpf/templete/招投标公司打印.docx"); XWPFDocument doc = new XWPFDocument(inputStream)) { // 找到标记位置的段落 XWPFParagraph placeholderParagraph = null; + XWPFParagraph textParagraph = null; for (XWPFParagraph paragraph : doc.getParagraphs()) { if (paragraph.getText().contains("{{table_here}}")) { placeholderParagraph = paragraph; break; } + if (paragraph.getText().contains("{{projectName}}")) { + textParagraph = paragraph; + } } if (placeholderParagraph == null) { @@ -485,6 +508,16 @@ public class LotteryProjectServiceImpl extends ServiceImpl te.getText(0)).collect(Collectors.toList())); + XWPFRun xwpfRun = textParagraph.getRuns().get(0); + for (XWPFRun textParagraphRun : textParagraph.getRuns()) { + textParagraphRun.setText(""); + } + xwpfRun.setText(join.replace("{{projectName}}",projectName), 0); + } + // 在占位符位置插入表格 // 插入表格到占位符位置后 // XWPFTable table = doc.createTable(); @@ -502,7 +535,7 @@ public class LotteryProjectServiceImpl extends ServiceImpl data = JSON.parseArray(s, LotteryProjectDto.ExtractExpertsInfo.class); List data = JSON.parseArray(s2, LotteryProjectDto.ExtractExpertsInfo.class); - try (InputStream inputStream = new FileInputStream(new File("/Users/yangzhenli/Documents/项目/jnpf/浙江出版传媒股份有限公司ERP系统建设项目.docx")); + try (InputStream inputStream = new FileInputStream(new File("/Users/yangzhenli/code/jnpfsoft-jnpf-jnpf-java-cloud-/jnpf-tendering/jnpf-tendering-server/src/main/resources/jnpf/templete/浙江出版传媒股份有限公司ERP系统建设项目.docx")); XWPFDocument doc = new XWPFDocument(inputStream)) { // 找到标记位置的段落 XWPFParagraph placeholderParagraph = null; + XWPFParagraph textParagraph = null; for (XWPFParagraph paragraph : doc.getParagraphs()) { if (paragraph.getText().contains("{{table_here}}")) { placeholderParagraph = paragraph; break; } + if (paragraph.getText().contains("{{projectName}}")) { + textParagraph = paragraph; + } } if (placeholderParagraph == null) { @@ -689,6 +726,15 @@ public class LotteryProjectServiceImpl extends ServiceImpl te.getText(0)).collect(Collectors.toList())); + XWPFRun xwpfRun = textParagraph.getRuns().get(0); + for (XWPFRun textParagraphRun : textParagraph.getRuns()) { + textParagraphRun.setText(""); + } + xwpfRun.setText(join.replace("{{projectName}}","测试2"), 0); + } // 在占位符位置插入表格 // 插入表格到占位符位置后 @@ -706,7 +752,7 @@ public class LotteryProjectServiceImpl extends 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 Jhy8E$e*oVRLp=Zh delta 6270 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 TYy$8r_z-}N8Tp3sAM5`BZAav5 diff --git a/jnpf-tendering-server/src/main/resources/jnpf/templete/浙江出版传媒股份有限公司ERP系统建设项目.docx b/jnpf-tendering-server/src/main/resources/jnpf/templete/浙江出版传媒股份有限公司ERP系统建设项目.docx index 97a41b9a2c0026d7ca0957ede4a22ce448c78005..fab938f0b9abc5f85422450ac390b85c0b3fd8b3 100644 GIT binary patch delta 6456 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 X0gM5n`3I|BLxAtuiqJ delta 6239 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