diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java index ad41006..9d7e26c 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java @@ -63,7 +63,7 @@ return ReturnUtil.success(certificateReportService.saveCertificateReport(certificateReport)); } - @ApiOperation("证书报告草稿箱更新") + @ApiOperation("证书报告草稿箱更新/未通过中的驳回更新(保存按钮)") @PostMapping("/draftUpdate") @ResponseBody public ReturnDTO draftUpdate(@RequestBody @Valid BusinessCertificateReport certificateReport, BindingResult bindingResult) throws Exception { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java index ad41006..9d7e26c 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java @@ -63,7 +63,7 @@ return ReturnUtil.success(certificateReportService.saveCertificateReport(certificateReport)); } - @ApiOperation("证书报告草稿箱更新") + @ApiOperation("证书报告草稿箱更新/未通过中的驳回更新(保存按钮)") @PostMapping("/draftUpdate") @ResponseBody public ReturnDTO draftUpdate(@RequestBody @Valid BusinessCertificateReport certificateReport, BindingResult bindingResult) throws Exception { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/flowable/ApprovalOperateController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/flowable/ApprovalOperateController.java index f2870df..0381b99 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/flowable/ApprovalOperateController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/flowable/ApprovalOperateController.java @@ -110,6 +110,12 @@ * 该功能需要具体业务的删除,放在各业务controller中处理,提供公共flowable删除处理service:approvalOperateService */ + /** + * 正常流程,前端在每次同意接口之前调用; + * 驳回流程中,驳回至发起人,发起人保存后先调用该接口,再调用驳回后重新编辑接口/failUpdate + * @param request + * @return + */ @ApiOperation("审批操作-动态增加审批人") @PostMapping("/addTaskApprover") @ResponseBody diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java index ad41006..9d7e26c 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java @@ -63,7 +63,7 @@ return ReturnUtil.success(certificateReportService.saveCertificateReport(certificateReport)); } - @ApiOperation("证书报告草稿箱更新") + @ApiOperation("证书报告草稿箱更新/未通过中的驳回更新(保存按钮)") @PostMapping("/draftUpdate") @ResponseBody public ReturnDTO draftUpdate(@RequestBody @Valid BusinessCertificateReport certificateReport, BindingResult bindingResult) throws Exception { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/flowable/ApprovalOperateController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/flowable/ApprovalOperateController.java index f2870df..0381b99 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/flowable/ApprovalOperateController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/flowable/ApprovalOperateController.java @@ -110,6 +110,12 @@ * 该功能需要具体业务的删除,放在各业务controller中处理,提供公共flowable删除处理service:approvalOperateService */ + /** + * 正常流程,前端在每次同意接口之前调用; + * 驳回流程中,驳回至发起人,发起人保存后先调用该接口,再调用驳回后重新编辑接口/failUpdate + * @param request + * @return + */ @ApiOperation("审批操作-动态增加审批人") @PostMapping("/addTaskApprover") @ResponseBody diff --git a/casic-metering-common/pom.xml b/casic-metering-common/pom.xml index daf917f..b241583 100644 --- a/casic-metering-common/pom.xml +++ b/casic-metering-common/pom.xml @@ -247,5 +247,11 @@ commons-fileupload commons-fileupload + + + com.aspose + aspose-cells + 21.8 + \ No newline at end of file diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java index ad41006..9d7e26c 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java @@ -63,7 +63,7 @@ return ReturnUtil.success(certificateReportService.saveCertificateReport(certificateReport)); } - @ApiOperation("证书报告草稿箱更新") + @ApiOperation("证书报告草稿箱更新/未通过中的驳回更新(保存按钮)") @PostMapping("/draftUpdate") @ResponseBody public ReturnDTO draftUpdate(@RequestBody @Valid BusinessCertificateReport certificateReport, BindingResult bindingResult) throws Exception { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/flowable/ApprovalOperateController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/flowable/ApprovalOperateController.java index f2870df..0381b99 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/flowable/ApprovalOperateController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/flowable/ApprovalOperateController.java @@ -110,6 +110,12 @@ * 该功能需要具体业务的删除,放在各业务controller中处理,提供公共flowable删除处理service:approvalOperateService */ + /** + * 正常流程,前端在每次同意接口之前调用; + * 驳回流程中,驳回至发起人,发起人保存后先调用该接口,再调用驳回后重新编辑接口/failUpdate + * @param request + * @return + */ @ApiOperation("审批操作-动态增加审批人") @PostMapping("/addTaskApprover") @ResponseBody diff --git a/casic-metering-common/pom.xml b/casic-metering-common/pom.xml index daf917f..b241583 100644 --- a/casic-metering-common/pom.xml +++ b/casic-metering-common/pom.xml @@ -247,5 +247,11 @@ commons-fileupload commons-fileupload + + + com.aspose + aspose-cells + 21.8 + \ No newline at end of file diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/ExcelToPdfUtil.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/ExcelToPdfUtil.java new file mode 100644 index 0000000..ea0b91f --- /dev/null +++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/ExcelToPdfUtil.java @@ -0,0 +1,25 @@ +package com.casic.missiles.utils; + +/** + * @Description: Aspose.Cells商业库实现Excel转Pdf,需购买许可 + * @Author: wangpeng + * @Date: 2025/3/10 10:58 + */ +import com.aspose.cells.PdfSaveOptions; +import com.aspose.cells.Workbook; + +public class ExcelToPdfUtil { + public static void main(String[] args) throws Exception { + // 加载 Excel 文件 + Workbook workbook = new Workbook("D:\\casic\\tmp\\1894648816529068033\\RIM20250226001无线电校准报告RIM20250226001.xlsx"); + + // 设置 PDF 保存选项 + PdfSaveOptions saveOptions = new PdfSaveOptions(); + saveOptions.setOnePagePerSheet(false); // 将每个工作表保存为一页 + + // 保存为 PDF + workbook.save("D:\\casic\\tmp\\1894648816529068033\\RR.pdf", saveOptions); + + System.out.println("Excel 文件已成功转换为 PDF!"); + } +} \ No newline at end of file diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java index ad41006..9d7e26c 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java @@ -63,7 +63,7 @@ return ReturnUtil.success(certificateReportService.saveCertificateReport(certificateReport)); } - @ApiOperation("证书报告草稿箱更新") + @ApiOperation("证书报告草稿箱更新/未通过中的驳回更新(保存按钮)") @PostMapping("/draftUpdate") @ResponseBody public ReturnDTO draftUpdate(@RequestBody @Valid BusinessCertificateReport certificateReport, BindingResult bindingResult) throws Exception { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/flowable/ApprovalOperateController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/flowable/ApprovalOperateController.java index f2870df..0381b99 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/flowable/ApprovalOperateController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/flowable/ApprovalOperateController.java @@ -110,6 +110,12 @@ * 该功能需要具体业务的删除,放在各业务controller中处理,提供公共flowable删除处理service:approvalOperateService */ + /** + * 正常流程,前端在每次同意接口之前调用; + * 驳回流程中,驳回至发起人,发起人保存后先调用该接口,再调用驳回后重新编辑接口/failUpdate + * @param request + * @return + */ @ApiOperation("审批操作-动态增加审批人") @PostMapping("/addTaskApprover") @ResponseBody diff --git a/casic-metering-common/pom.xml b/casic-metering-common/pom.xml index daf917f..b241583 100644 --- a/casic-metering-common/pom.xml +++ b/casic-metering-common/pom.xml @@ -247,5 +247,11 @@ commons-fileupload commons-fileupload + + + com.aspose + aspose-cells + 21.8 + \ No newline at end of file diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/ExcelToPdfUtil.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/ExcelToPdfUtil.java new file mode 100644 index 0000000..ea0b91f --- /dev/null +++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/ExcelToPdfUtil.java @@ -0,0 +1,25 @@ +package com.casic.missiles.utils; + +/** + * @Description: Aspose.Cells商业库实现Excel转Pdf,需购买许可 + * @Author: wangpeng + * @Date: 2025/3/10 10:58 + */ +import com.aspose.cells.PdfSaveOptions; +import com.aspose.cells.Workbook; + +public class ExcelToPdfUtil { + public static void main(String[] args) throws Exception { + // 加载 Excel 文件 + Workbook workbook = new Workbook("D:\\casic\\tmp\\1894648816529068033\\RIM20250226001无线电校准报告RIM20250226001.xlsx"); + + // 设置 PDF 保存选项 + PdfSaveOptions saveOptions = new PdfSaveOptions(); + saveOptions.setOnePagePerSheet(false); // 将每个工作表保存为一页 + + // 保存为 PDF + workbook.save("D:\\casic\\tmp\\1894648816529068033\\RR.pdf", saveOptions); + + System.out.println("Excel 文件已成功转换为 PDF!"); + } +} \ No newline at end of file diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificateReportServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificateReportServiceImpl.java index d247a3c..461a51b 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificateReportServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificateReportServiceImpl.java @@ -298,6 +298,14 @@ throw new BusinessException(BusinessExceptionEnum.LOGIN_USER_ACQUIRE_FAILED); }); if (this.baseMapper.updateById(certificateReport) > 0) { + //关联技术文件 + if (!CollectionUtils.isEmpty(certificateReport.getFileList()) && certificateReport.getFileList().size() > 0) { + originalRecordFileRelationService.saveBatch(certificateReport.getId(), certificateReport.getFileList()); + } + //关联设备 + if (!CollectionUtils.isEmpty(certificateReport.getEquipmentInfoList()) && certificateReport.getEquipmentInfoList().size() > 0) { + originalRecordEquipmentRelationService.saveBatch(certificateReport.getId(), certificateReport.getEquipmentInfoList()); + } baseApprovalService.failUpdate(certificateReport.getProcessId()); return ReturnUtil.success(); } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java index ad41006..9d7e26c 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java @@ -63,7 +63,7 @@ return ReturnUtil.success(certificateReportService.saveCertificateReport(certificateReport)); } - @ApiOperation("证书报告草稿箱更新") + @ApiOperation("证书报告草稿箱更新/未通过中的驳回更新(保存按钮)") @PostMapping("/draftUpdate") @ResponseBody public ReturnDTO draftUpdate(@RequestBody @Valid BusinessCertificateReport certificateReport, BindingResult bindingResult) throws Exception { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/flowable/ApprovalOperateController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/flowable/ApprovalOperateController.java index f2870df..0381b99 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/flowable/ApprovalOperateController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/flowable/ApprovalOperateController.java @@ -110,6 +110,12 @@ * 该功能需要具体业务的删除,放在各业务controller中处理,提供公共flowable删除处理service:approvalOperateService */ + /** + * 正常流程,前端在每次同意接口之前调用; + * 驳回流程中,驳回至发起人,发起人保存后先调用该接口,再调用驳回后重新编辑接口/failUpdate + * @param request + * @return + */ @ApiOperation("审批操作-动态增加审批人") @PostMapping("/addTaskApprover") @ResponseBody diff --git a/casic-metering-common/pom.xml b/casic-metering-common/pom.xml index daf917f..b241583 100644 --- a/casic-metering-common/pom.xml +++ b/casic-metering-common/pom.xml @@ -247,5 +247,11 @@ commons-fileupload commons-fileupload + + + com.aspose + aspose-cells + 21.8 + \ No newline at end of file diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/ExcelToPdfUtil.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/ExcelToPdfUtil.java new file mode 100644 index 0000000..ea0b91f --- /dev/null +++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/ExcelToPdfUtil.java @@ -0,0 +1,25 @@ +package com.casic.missiles.utils; + +/** + * @Description: Aspose.Cells商业库实现Excel转Pdf,需购买许可 + * @Author: wangpeng + * @Date: 2025/3/10 10:58 + */ +import com.aspose.cells.PdfSaveOptions; +import com.aspose.cells.Workbook; + +public class ExcelToPdfUtil { + public static void main(String[] args) throws Exception { + // 加载 Excel 文件 + Workbook workbook = new Workbook("D:\\casic\\tmp\\1894648816529068033\\RIM20250226001无线电校准报告RIM20250226001.xlsx"); + + // 设置 PDF 保存选项 + PdfSaveOptions saveOptions = new PdfSaveOptions(); + saveOptions.setOnePagePerSheet(false); // 将每个工作表保存为一页 + + // 保存为 PDF + workbook.save("D:\\casic\\tmp\\1894648816529068033\\RR.pdf", saveOptions); + + System.out.println("Excel 文件已成功转换为 PDF!"); + } +} \ No newline at end of file diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificateReportServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificateReportServiceImpl.java index d247a3c..461a51b 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificateReportServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificateReportServiceImpl.java @@ -298,6 +298,14 @@ throw new BusinessException(BusinessExceptionEnum.LOGIN_USER_ACQUIRE_FAILED); }); if (this.baseMapper.updateById(certificateReport) > 0) { + //关联技术文件 + if (!CollectionUtils.isEmpty(certificateReport.getFileList()) && certificateReport.getFileList().size() > 0) { + originalRecordFileRelationService.saveBatch(certificateReport.getId(), certificateReport.getFileList()); + } + //关联设备 + if (!CollectionUtils.isEmpty(certificateReport.getEquipmentInfoList()) && certificateReport.getEquipmentInfoList().size() > 0) { + originalRecordEquipmentRelationService.saveBatch(certificateReport.getId(), certificateReport.getEquipmentInfoList()); + } baseApprovalService.failUpdate(certificateReport.getProcessId()); return ReturnUtil.success(); } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java index b010262..fea431c 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java @@ -625,7 +625,8 @@ //查询扫描样品中为该用户检测中的样品列表 List preList = labExecutiveInfoMapper.selectListForSampleOperate(requestList, userId, MeasureStatusEnum.IN_MEASURE); if (CollectionUtils.isEmpty(preList)) { - throw new BusinessException(BusinessExceptionEnum.COMPLETE_SAMPLE_NOT_EXIST); + //throw new BusinessException(BusinessExceptionEnum.COMPLETE_SAMPLE_NOT_EXIST); + return ReturnUtil.success(); } int updateFlag = labExecutiveInfoMapper.updateForSampleMeasureCompleteOperate(preList, userId, MeasureStatusEnum.MEASURE_COMPLETE); if (updateFlag > 0) { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java index ad41006..9d7e26c 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java @@ -63,7 +63,7 @@ return ReturnUtil.success(certificateReportService.saveCertificateReport(certificateReport)); } - @ApiOperation("证书报告草稿箱更新") + @ApiOperation("证书报告草稿箱更新/未通过中的驳回更新(保存按钮)") @PostMapping("/draftUpdate") @ResponseBody public ReturnDTO draftUpdate(@RequestBody @Valid BusinessCertificateReport certificateReport, BindingResult bindingResult) throws Exception { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/flowable/ApprovalOperateController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/flowable/ApprovalOperateController.java index f2870df..0381b99 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/flowable/ApprovalOperateController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/flowable/ApprovalOperateController.java @@ -110,6 +110,12 @@ * 该功能需要具体业务的删除,放在各业务controller中处理,提供公共flowable删除处理service:approvalOperateService */ + /** + * 正常流程,前端在每次同意接口之前调用; + * 驳回流程中,驳回至发起人,发起人保存后先调用该接口,再调用驳回后重新编辑接口/failUpdate + * @param request + * @return + */ @ApiOperation("审批操作-动态增加审批人") @PostMapping("/addTaskApprover") @ResponseBody diff --git a/casic-metering-common/pom.xml b/casic-metering-common/pom.xml index daf917f..b241583 100644 --- a/casic-metering-common/pom.xml +++ b/casic-metering-common/pom.xml @@ -247,5 +247,11 @@ commons-fileupload commons-fileupload + + + com.aspose + aspose-cells + 21.8 + \ No newline at end of file diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/ExcelToPdfUtil.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/ExcelToPdfUtil.java new file mode 100644 index 0000000..ea0b91f --- /dev/null +++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/ExcelToPdfUtil.java @@ -0,0 +1,25 @@ +package com.casic.missiles.utils; + +/** + * @Description: Aspose.Cells商业库实现Excel转Pdf,需购买许可 + * @Author: wangpeng + * @Date: 2025/3/10 10:58 + */ +import com.aspose.cells.PdfSaveOptions; +import com.aspose.cells.Workbook; + +public class ExcelToPdfUtil { + public static void main(String[] args) throws Exception { + // 加载 Excel 文件 + Workbook workbook = new Workbook("D:\\casic\\tmp\\1894648816529068033\\RIM20250226001无线电校准报告RIM20250226001.xlsx"); + + // 设置 PDF 保存选项 + PdfSaveOptions saveOptions = new PdfSaveOptions(); + saveOptions.setOnePagePerSheet(false); // 将每个工作表保存为一页 + + // 保存为 PDF + workbook.save("D:\\casic\\tmp\\1894648816529068033\\RR.pdf", saveOptions); + + System.out.println("Excel 文件已成功转换为 PDF!"); + } +} \ No newline at end of file diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificateReportServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificateReportServiceImpl.java index d247a3c..461a51b 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificateReportServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificateReportServiceImpl.java @@ -298,6 +298,14 @@ throw new BusinessException(BusinessExceptionEnum.LOGIN_USER_ACQUIRE_FAILED); }); if (this.baseMapper.updateById(certificateReport) > 0) { + //关联技术文件 + if (!CollectionUtils.isEmpty(certificateReport.getFileList()) && certificateReport.getFileList().size() > 0) { + originalRecordFileRelationService.saveBatch(certificateReport.getId(), certificateReport.getFileList()); + } + //关联设备 + if (!CollectionUtils.isEmpty(certificateReport.getEquipmentInfoList()) && certificateReport.getEquipmentInfoList().size() > 0) { + originalRecordEquipmentRelationService.saveBatch(certificateReport.getId(), certificateReport.getEquipmentInfoList()); + } baseApprovalService.failUpdate(certificateReport.getProcessId()); return ReturnUtil.success(); } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java index b010262..fea431c 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java @@ -625,7 +625,8 @@ //查询扫描样品中为该用户检测中的样品列表 List preList = labExecutiveInfoMapper.selectListForSampleOperate(requestList, userId, MeasureStatusEnum.IN_MEASURE); if (CollectionUtils.isEmpty(preList)) { - throw new BusinessException(BusinessExceptionEnum.COMPLETE_SAMPLE_NOT_EXIST); + //throw new BusinessException(BusinessExceptionEnum.COMPLETE_SAMPLE_NOT_EXIST); + return ReturnUtil.success(); } int updateFlag = labExecutiveInfoMapper.updateForSampleMeasureCompleteOperate(preList, userId, MeasureStatusEnum.MEASURE_COMPLETE); if (updateFlag > 0) { diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java index 6c6f433..a4f8bb9 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java @@ -288,6 +288,13 @@ } } + private void deleteLabExecutiveInfo(DeviceStatusChangeDTO deviceStatusChangeDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("sample_id", deviceStatusChangeDTO.getSampleId()); + queryWrapper.eq("order_id", deviceStatusChangeDTO.getOrderId()); + labExecutiveInfoMapper.delete(queryWrapper); + } + private void updateLabExecutiveInfo(DeviceStatusChangeDTO deviceStatusChangeDTO, String measureStatus) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("sample_id", deviceStatusChangeDTO.getSampleId()); @@ -426,9 +433,9 @@ } BusinessOrderSampleRelation businessOrderSampleRelation = new BusinessOrderSampleRelation(); businessOrderSampleRelation.setSampleStatus(statusChangeDTO.getStatus()); - //回退操作更新实验室数据状态 + //从已收入回退到待收入,删除历史分发检测的实验室数据 if ("1".equals(statusChangeDTO.getStatus())) { - updateLabExecutiveInfo(statusChangeDTO, MeasureStatusEnum.TERMINATED); + deleteLabExecutiveInfo(statusChangeDTO); } if (TO_GIVE_BACK.equals(statusChangeDTO.getStatus())) { //更新转换为待归还的时间 diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java index ad41006..9d7e26c 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java @@ -63,7 +63,7 @@ return ReturnUtil.success(certificateReportService.saveCertificateReport(certificateReport)); } - @ApiOperation("证书报告草稿箱更新") + @ApiOperation("证书报告草稿箱更新/未通过中的驳回更新(保存按钮)") @PostMapping("/draftUpdate") @ResponseBody public ReturnDTO draftUpdate(@RequestBody @Valid BusinessCertificateReport certificateReport, BindingResult bindingResult) throws Exception { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/flowable/ApprovalOperateController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/flowable/ApprovalOperateController.java index f2870df..0381b99 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/flowable/ApprovalOperateController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/flowable/ApprovalOperateController.java @@ -110,6 +110,12 @@ * 该功能需要具体业务的删除,放在各业务controller中处理,提供公共flowable删除处理service:approvalOperateService */ + /** + * 正常流程,前端在每次同意接口之前调用; + * 驳回流程中,驳回至发起人,发起人保存后先调用该接口,再调用驳回后重新编辑接口/failUpdate + * @param request + * @return + */ @ApiOperation("审批操作-动态增加审批人") @PostMapping("/addTaskApprover") @ResponseBody diff --git a/casic-metering-common/pom.xml b/casic-metering-common/pom.xml index daf917f..b241583 100644 --- a/casic-metering-common/pom.xml +++ b/casic-metering-common/pom.xml @@ -247,5 +247,11 @@ commons-fileupload commons-fileupload + + + com.aspose + aspose-cells + 21.8 + \ No newline at end of file diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/ExcelToPdfUtil.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/ExcelToPdfUtil.java new file mode 100644 index 0000000..ea0b91f --- /dev/null +++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/ExcelToPdfUtil.java @@ -0,0 +1,25 @@ +package com.casic.missiles.utils; + +/** + * @Description: Aspose.Cells商业库实现Excel转Pdf,需购买许可 + * @Author: wangpeng + * @Date: 2025/3/10 10:58 + */ +import com.aspose.cells.PdfSaveOptions; +import com.aspose.cells.Workbook; + +public class ExcelToPdfUtil { + public static void main(String[] args) throws Exception { + // 加载 Excel 文件 + Workbook workbook = new Workbook("D:\\casic\\tmp\\1894648816529068033\\RIM20250226001无线电校准报告RIM20250226001.xlsx"); + + // 设置 PDF 保存选项 + PdfSaveOptions saveOptions = new PdfSaveOptions(); + saveOptions.setOnePagePerSheet(false); // 将每个工作表保存为一页 + + // 保存为 PDF + workbook.save("D:\\casic\\tmp\\1894648816529068033\\RR.pdf", saveOptions); + + System.out.println("Excel 文件已成功转换为 PDF!"); + } +} \ No newline at end of file diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificateReportServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificateReportServiceImpl.java index d247a3c..461a51b 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificateReportServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificateReportServiceImpl.java @@ -298,6 +298,14 @@ throw new BusinessException(BusinessExceptionEnum.LOGIN_USER_ACQUIRE_FAILED); }); if (this.baseMapper.updateById(certificateReport) > 0) { + //关联技术文件 + if (!CollectionUtils.isEmpty(certificateReport.getFileList()) && certificateReport.getFileList().size() > 0) { + originalRecordFileRelationService.saveBatch(certificateReport.getId(), certificateReport.getFileList()); + } + //关联设备 + if (!CollectionUtils.isEmpty(certificateReport.getEquipmentInfoList()) && certificateReport.getEquipmentInfoList().size() > 0) { + originalRecordEquipmentRelationService.saveBatch(certificateReport.getId(), certificateReport.getEquipmentInfoList()); + } baseApprovalService.failUpdate(certificateReport.getProcessId()); return ReturnUtil.success(); } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java index b010262..fea431c 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java @@ -625,7 +625,8 @@ //查询扫描样品中为该用户检测中的样品列表 List preList = labExecutiveInfoMapper.selectListForSampleOperate(requestList, userId, MeasureStatusEnum.IN_MEASURE); if (CollectionUtils.isEmpty(preList)) { - throw new BusinessException(BusinessExceptionEnum.COMPLETE_SAMPLE_NOT_EXIST); + //throw new BusinessException(BusinessExceptionEnum.COMPLETE_SAMPLE_NOT_EXIST); + return ReturnUtil.success(); } int updateFlag = labExecutiveInfoMapper.updateForSampleMeasureCompleteOperate(preList, userId, MeasureStatusEnum.MEASURE_COMPLETE); if (updateFlag > 0) { diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java index 6c6f433..a4f8bb9 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java @@ -288,6 +288,13 @@ } } + private void deleteLabExecutiveInfo(DeviceStatusChangeDTO deviceStatusChangeDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("sample_id", deviceStatusChangeDTO.getSampleId()); + queryWrapper.eq("order_id", deviceStatusChangeDTO.getOrderId()); + labExecutiveInfoMapper.delete(queryWrapper); + } + private void updateLabExecutiveInfo(DeviceStatusChangeDTO deviceStatusChangeDTO, String measureStatus) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("sample_id", deviceStatusChangeDTO.getSampleId()); @@ -426,9 +433,9 @@ } BusinessOrderSampleRelation businessOrderSampleRelation = new BusinessOrderSampleRelation(); businessOrderSampleRelation.setSampleStatus(statusChangeDTO.getStatus()); - //回退操作更新实验室数据状态 + //从已收入回退到待收入,删除历史分发检测的实验室数据 if ("1".equals(statusChangeDTO.getStatus())) { - updateLabExecutiveInfo(statusChangeDTO, MeasureStatusEnum.TERMINATED); + deleteLabExecutiveInfo(statusChangeDTO); } if (TO_GIVE_BACK.equals(statusChangeDTO.getStatus())) { //更新转换为待归还的时间 diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/equipment/EquipmentFixedAssetsServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/equipment/EquipmentFixedAssetsServiceImpl.java index 382a270..dbeca14 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/equipment/EquipmentFixedAssetsServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/equipment/EquipmentFixedAssetsServiceImpl.java @@ -359,6 +359,7 @@ QueryWrapper wrapper = new QueryWrapper<>(); wrapper.in("id", ids); wrapper.eq("is_del", MeterDictEnum.DELETE_FALSE); + wrapper.orderByAsc("FIELD(id, " + StringUtils.join(ids, ",") + ")"); List equipmentFixedAssetsList = this.baseMapper.selectList(wrapper); List deptList = deptService.list(); Map meterOrganizeMap = deptList.stream() diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java index ad41006..9d7e26c 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificateReportController.java @@ -63,7 +63,7 @@ return ReturnUtil.success(certificateReportService.saveCertificateReport(certificateReport)); } - @ApiOperation("证书报告草稿箱更新") + @ApiOperation("证书报告草稿箱更新/未通过中的驳回更新(保存按钮)") @PostMapping("/draftUpdate") @ResponseBody public ReturnDTO draftUpdate(@RequestBody @Valid BusinessCertificateReport certificateReport, BindingResult bindingResult) throws Exception { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/flowable/ApprovalOperateController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/flowable/ApprovalOperateController.java index f2870df..0381b99 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/flowable/ApprovalOperateController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/flowable/ApprovalOperateController.java @@ -110,6 +110,12 @@ * 该功能需要具体业务的删除,放在各业务controller中处理,提供公共flowable删除处理service:approvalOperateService */ + /** + * 正常流程,前端在每次同意接口之前调用; + * 驳回流程中,驳回至发起人,发起人保存后先调用该接口,再调用驳回后重新编辑接口/failUpdate + * @param request + * @return + */ @ApiOperation("审批操作-动态增加审批人") @PostMapping("/addTaskApprover") @ResponseBody diff --git a/casic-metering-common/pom.xml b/casic-metering-common/pom.xml index daf917f..b241583 100644 --- a/casic-metering-common/pom.xml +++ b/casic-metering-common/pom.xml @@ -247,5 +247,11 @@ commons-fileupload commons-fileupload + + + com.aspose + aspose-cells + 21.8 + \ No newline at end of file diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/ExcelToPdfUtil.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/ExcelToPdfUtil.java new file mode 100644 index 0000000..ea0b91f --- /dev/null +++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/ExcelToPdfUtil.java @@ -0,0 +1,25 @@ +package com.casic.missiles.utils; + +/** + * @Description: Aspose.Cells商业库实现Excel转Pdf,需购买许可 + * @Author: wangpeng + * @Date: 2025/3/10 10:58 + */ +import com.aspose.cells.PdfSaveOptions; +import com.aspose.cells.Workbook; + +public class ExcelToPdfUtil { + public static void main(String[] args) throws Exception { + // 加载 Excel 文件 + Workbook workbook = new Workbook("D:\\casic\\tmp\\1894648816529068033\\RIM20250226001无线电校准报告RIM20250226001.xlsx"); + + // 设置 PDF 保存选项 + PdfSaveOptions saveOptions = new PdfSaveOptions(); + saveOptions.setOnePagePerSheet(false); // 将每个工作表保存为一页 + + // 保存为 PDF + workbook.save("D:\\casic\\tmp\\1894648816529068033\\RR.pdf", saveOptions); + + System.out.println("Excel 文件已成功转换为 PDF!"); + } +} \ No newline at end of file diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificateReportServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificateReportServiceImpl.java index d247a3c..461a51b 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificateReportServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificateReportServiceImpl.java @@ -298,6 +298,14 @@ throw new BusinessException(BusinessExceptionEnum.LOGIN_USER_ACQUIRE_FAILED); }); if (this.baseMapper.updateById(certificateReport) > 0) { + //关联技术文件 + if (!CollectionUtils.isEmpty(certificateReport.getFileList()) && certificateReport.getFileList().size() > 0) { + originalRecordFileRelationService.saveBatch(certificateReport.getId(), certificateReport.getFileList()); + } + //关联设备 + if (!CollectionUtils.isEmpty(certificateReport.getEquipmentInfoList()) && certificateReport.getEquipmentInfoList().size() > 0) { + originalRecordEquipmentRelationService.saveBatch(certificateReport.getId(), certificateReport.getEquipmentInfoList()); + } baseApprovalService.failUpdate(certificateReport.getProcessId()); return ReturnUtil.success(); } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java index b010262..fea431c 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java @@ -625,7 +625,8 @@ //查询扫描样品中为该用户检测中的样品列表 List preList = labExecutiveInfoMapper.selectListForSampleOperate(requestList, userId, MeasureStatusEnum.IN_MEASURE); if (CollectionUtils.isEmpty(preList)) { - throw new BusinessException(BusinessExceptionEnum.COMPLETE_SAMPLE_NOT_EXIST); + //throw new BusinessException(BusinessExceptionEnum.COMPLETE_SAMPLE_NOT_EXIST); + return ReturnUtil.success(); } int updateFlag = labExecutiveInfoMapper.updateForSampleMeasureCompleteOperate(preList, userId, MeasureStatusEnum.MEASURE_COMPLETE); if (updateFlag > 0) { diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java index 6c6f433..a4f8bb9 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java @@ -288,6 +288,13 @@ } } + private void deleteLabExecutiveInfo(DeviceStatusChangeDTO deviceStatusChangeDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("sample_id", deviceStatusChangeDTO.getSampleId()); + queryWrapper.eq("order_id", deviceStatusChangeDTO.getOrderId()); + labExecutiveInfoMapper.delete(queryWrapper); + } + private void updateLabExecutiveInfo(DeviceStatusChangeDTO deviceStatusChangeDTO, String measureStatus) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("sample_id", deviceStatusChangeDTO.getSampleId()); @@ -426,9 +433,9 @@ } BusinessOrderSampleRelation businessOrderSampleRelation = new BusinessOrderSampleRelation(); businessOrderSampleRelation.setSampleStatus(statusChangeDTO.getStatus()); - //回退操作更新实验室数据状态 + //从已收入回退到待收入,删除历史分发检测的实验室数据 if ("1".equals(statusChangeDTO.getStatus())) { - updateLabExecutiveInfo(statusChangeDTO, MeasureStatusEnum.TERMINATED); + deleteLabExecutiveInfo(statusChangeDTO); } if (TO_GIVE_BACK.equals(statusChangeDTO.getStatus())) { //更新转换为待归还的时间 diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/equipment/EquipmentFixedAssetsServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/equipment/EquipmentFixedAssetsServiceImpl.java index 382a270..dbeca14 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/equipment/EquipmentFixedAssetsServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/equipment/EquipmentFixedAssetsServiceImpl.java @@ -359,6 +359,7 @@ QueryWrapper wrapper = new QueryWrapper<>(); wrapper.in("id", ids); wrapper.eq("is_del", MeterDictEnum.DELETE_FALSE); + wrapper.orderByAsc("FIELD(id, " + StringUtils.join(ids, ",") + ")"); List equipmentFixedAssetsList = this.baseMapper.selectList(wrapper); List deptList = deptService.list(); Map meterOrganizeMap = deptList.stream() diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/flowable/CounterSignListener.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/flowable/CounterSignListener.java index 18a7079..5eab6d6 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/flowable/CounterSignListener.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/flowable/CounterSignListener.java @@ -19,6 +19,7 @@ import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.flowable.engine.RepositoryService; +import org.flowable.engine.RuntimeService; import org.flowable.engine.delegate.DelegateExecution; import org.flowable.engine.delegate.ExecutionListener; import org.flowable.engine.repository.ProcessDefinition; @@ -49,6 +50,8 @@ @Resource private RepositoryService repositoryService; @Resource + private RuntimeService runtimeService; + @Resource private SystemFlowFormMapper flowFormMapper; @Resource private RuRelationMapper ruRelationMapper; @@ -66,6 +69,14 @@ //当前节点id,在任务中为任务id String taskId = execution.getCurrentActivityId(); String variable = taskId + "assigneeList"; + + //获取流程中的自选审批人变量中审批人(保证驳回后的重新自选设置审批人) + String nodeId = execution.getCurrentFlowElement().getId(); + Set assignees = (Set)runtimeService.getVariable(execution.getProcessInstanceId(), nodeId); + if (!CollectionUtils.isEmpty(assignees)) { + execution.setVariable(variable, new ArrayList<>(assignees)); + } + //当前任务审批人信息 List usersValue = (List) execution.getVariable(variable); String processDefinitionId = execution.getProcessDefinitionId();