From ec3e594951e711922e282359438e8f02adfb8efe Mon Sep 17 00:00:00 2001 From: FCL Date: Tue, 28 Oct 2025 16:22:14 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E6=8A=A5=E5=91=8A=E7=BC=96=E5=88=B6-?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E4=BF=9D=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/ReportDocumentMainController.java | 10 ++++++ .../vo/ReportDocumentMainSaveReqVO.java | 3 ++ .../dal/dataobject/ReportDocumentDataDO.java | 2 +- .../service/ReportDocumentDataService.java | 2 ++ .../ReportDocumentDataServiceImpl.java | 36 +++++++++++++++++-- .../service/ReportDocumentMainService.java | 4 +++ .../ReportDocumentMainServiceImpl.java | 12 +++++++ 7 files changed, 66 insertions(+), 3 deletions(-) diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/controller/admin/ReportDocumentMainController.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/controller/admin/ReportDocumentMainController.java index 3852f35..9540863 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/controller/admin/ReportDocumentMainController.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/controller/admin/ReportDocumentMainController.java @@ -103,6 +103,16 @@ public class ReportDocumentMainController extends AbstractFileUploadController i return reportDocumentMainService.execRemoveData(vo); } + @PutMapping("/doSave") + @Operation(summary = "更新检测报告业务") + //@PreAuthorize("@ss.hasPermission('qms:report-document-main:update')") + public CommonResult doSave(@Valid @RequestBody ReportDocumentMainSaveReqVO updateReqVO) { + updateReqVO.setCancelFlag("0"); + reportDocumentMainService.updateReportDocumentMain(updateReqVO); + return success(true); + } + + @PutMapping("/update") @Operation(summary = "更新检测报告业务") //@PreAuthorize("@ss.hasPermission('qms:report-document-main:update')") diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/controller/vo/ReportDocumentMainSaveReqVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/controller/vo/ReportDocumentMainSaveReqVO.java index e89eb2a..9b6da46 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/controller/vo/ReportDocumentMainSaveReqVO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/controller/vo/ReportDocumentMainSaveReqVO.java @@ -6,6 +6,7 @@ import jakarta.validation.constraints.NotEmpty; import lombok.Data; import java.time.LocalDateTime; +import java.util.List; @Schema(description = "管理后台 - 检测报告业务新增/修改 Request VO") @Data @@ -94,5 +95,7 @@ public class ReportDocumentMainSaveReqVO { @Schema(description = "委托id,支持多值") private String businessSampleEntrustRegistrationIds; + @Schema(description = "报表数据明细,用于保存【备注】等数据") + private List reportDocumentDataList; } \ No newline at end of file diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/dal/dataobject/ReportDocumentDataDO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/dal/dataobject/ReportDocumentDataDO.java index c49ec28..c590366 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/dal/dataobject/ReportDocumentDataDO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/dal/dataobject/ReportDocumentDataDO.java @@ -60,7 +60,7 @@ public class ReportDocumentDataDO extends BusinessBaseDO { /** * 附加内容 */ - @TableField("DOC_CNTT") + @TableField("EXT_CNTT") private String externalContent; //样品编号 diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/service/ReportDocumentDataService.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/service/ReportDocumentDataService.java index 70a8a86..db0e47b 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/service/ReportDocumentDataService.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/service/ReportDocumentDataService.java @@ -44,6 +44,8 @@ public interface ReportDocumentDataService { */ void updateReportDocumentData(@Valid ReportDocumentDataSaveReqVO updateReqVO); + void updateBatch(List list); + /** * 删除检测报告明细 * diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/service/ReportDocumentDataServiceImpl.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/service/ReportDocumentDataServiceImpl.java index 2be4302..468de54 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/service/ReportDocumentDataServiceImpl.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/service/ReportDocumentDataServiceImpl.java @@ -60,7 +60,6 @@ public class ReportDocumentDataServiceImpl implements ReportDocumentDataService if(typeDO == null || typeDO.getConfigReportTypeId() == null) return CommonResult.error(REPORT_DOCUMENT_TYPE_NOT_EXISTS, "报告配置为空,或未配置报表类型,请联系管理员处理!"); String customConfig = typeDO.getCustomConfig(); - //查询报表字段配置 ConfigReportFieldPageReqVO fieldParam = new ConfigReportFieldPageReqVO(); fieldParam.setConfigReportTypeId(typeDO.getConfigReportTypeId()); @@ -117,6 +116,7 @@ public class ReportDocumentDataServiceImpl implements ReportDocumentDataService String fixedColCountStr = jsonObject.getString("fixedColCount"); String maxRowCountStr = jsonObject.getString("maxRowCount"); String nameCodeType = jsonObject.getString("nameCodeType"); + String hasRemark = jsonObject.getString("hasRemark"); if(!ObjectUtils.isEmpty(dynamicColCountStr)) dynamicColCount = Integer.parseInt(dynamicColCountStr); if(!ObjectUtils.isEmpty(fixedColCountStr)) fixedColCount = Integer.parseInt(fixedColCountStr); @@ -143,6 +143,10 @@ public class ReportDocumentDataServiceImpl implements ReportDocumentDataService int rowAssist = 1; int colIndex = 1; boolean lastObjFlag = true; + if("1".equals(hasRemark)){ + //在最后一列增加备注 + t.put(colPrefix + parseNumToString(colCountOneSample + 1, 2), "备注"); + } for(ConfigReportFieldDO fieldDO : fieldList){ String fieldType = fieldDO.getFieldType(); if(FIELD_FIXED.equals(fieldType)){ //这里只处理动态列。固定列在 addTitleToRowList 处理 @@ -155,6 +159,10 @@ public class ReportDocumentDataServiceImpl implements ReportDocumentDataService if(colIndex % colCountOneSample == 0){ addTitleToRowList(nameCodeType, rowAssist, t, dataLength, emptyRowCount, rowList, fieldList); t = new JSONObject(); + if("1".equals(hasRemark)){ + //在最后一列增加备注 + t.put(colPrefix + parseNumToString(colCountOneSample + 1, 2), "备注"); + } rowAssist++; colIndex = fixedColCount; //第二组以后,从固定列数开始 lastObjFlag = false; @@ -168,10 +176,19 @@ public class ReportDocumentDataServiceImpl implements ReportDocumentDataService int dataIndex = 1; for(ReportDocumentDataDO dataDO : dataList){ String documentContent = dataDO.getDocumentContent(); + String externalContent = dataDO.getExternalContent(); JSONObject s = JSONObject.parseObject(documentContent); + JSONObject e = new JSONObject(); + if(!ObjectUtils.isEmpty(externalContent)){ + e = JSONObject.parseObject(externalContent); + } + String remark = e.getString("remark"); colIndex = fixedColCount + 1; rowAssist = 1; t = new JSONObject(); + if("1".equals(hasRemark)){ + t.put(colPrefix + parseNumToString(colCountOneSample + 1, 2), remark); + } for(ConfigReportFieldDO fieldDO : fieldList){ String fieldType = fieldDO.getFieldType(); if(FIELD_FIXED.equals(fieldType)){ //这里只处理动态列。固定列在 addDataToRowList 处理 @@ -188,6 +205,9 @@ public class ReportDocumentDataServiceImpl implements ReportDocumentDataService if(colIndex % colCountOneSample == 0){ addDataToRowList(nameCodeType, dataDO, rowAssist, t, dataLength, emptyRowCount, dataIndex, rowList, fieldList); t = new JSONObject(); + if("1".equals(hasRemark)){ + t.put(colPrefix + parseNumToString(colCountOneSample + 1, 2), remark); + } rowAssist++; colIndex = fixedColCount + 1; //第二组以后,从固定列数开始 lastObjFlag = false; @@ -206,7 +226,8 @@ public class ReportDocumentDataServiceImpl implements ReportDocumentDataService * @param nameCodeType: merge-合并, name-只显示名称, code-只显示编号, split-2列分开显示 * * */ - private void addTitleToRowList(String nameCodeType, Integer rowAssist, JSONObject t, Integer dataLength, Integer emptyRowCount, List rowList, List fieldList){ + private void addTitleToRowList(String nameCodeType, Integer rowAssist, JSONObject t, Integer dataLength, Integer emptyRowCount, + List rowList, List fieldList){ int rowIndex = (1 + dataLength + emptyRowCount) * (rowAssist - 1) + 1; //(标题 + 数据行 + 空行) //处理固定列 int index = 1; @@ -239,6 +260,7 @@ public class ReportDocumentDataServiceImpl implements ReportDocumentDataService } private void addDataToRowList(String nameCodeType, ReportDocumentDataDO dataDO, Integer rowAssist, JSONObject t, Integer dataLength, Integer emptyRowCount, Integer dataIndex, List rowList, List fieldList){ int rowIndex = (1 + dataLength + emptyRowCount) * (rowAssist - 1) + dataIndex + 1; //(标题 + 数据行 + 空行) + t.put("id", dataDO.getId()); //处理固定列 int index = 1; //处理固定列 @@ -326,6 +348,16 @@ public class ReportDocumentDataServiceImpl implements ReportDocumentDataService reportDocumentDataMapper.updateById(updateObj); } + @Override + public void updateBatch(List list) { + List updateList = new ArrayList<>(); + for (ReportDocumentDataSaveReqVO updateReqVO : list) { + ReportDocumentDataDO updateObj = BeanUtils.toBean(updateReqVO, ReportDocumentDataDO.class); + updateList.add(updateObj); + } + reportDocumentDataMapper.updateBatch(updateList); + } + @Override public void deleteReportDocumentData(Long id) { // 校验存在 diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/service/ReportDocumentMainService.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/service/ReportDocumentMainService.java index f567ea3..620e12e 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/service/ReportDocumentMainService.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/service/ReportDocumentMainService.java @@ -30,6 +30,9 @@ public interface ReportDocumentMainService { void updateCommonField(ReportDocumentMainDO reportDocumentMainDO); + //保存报告 + void doSave(@Valid ReportDocumentMainSaveReqVO updateReqVO); + /** * 创建检测报告业务 * @@ -45,6 +48,7 @@ public interface ReportDocumentMainService { */ void updateReportDocumentMain(@Valid ReportDocumentMainSaveReqVO updateReqVO); + /** * 删除检测报告业务 * diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/service/ReportDocumentMainServiceImpl.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/service/ReportDocumentMainServiceImpl.java index e23203d..3f03763 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/service/ReportDocumentMainServiceImpl.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/service/ReportDocumentMainServiceImpl.java @@ -176,6 +176,18 @@ public class ReportDocumentMainServiceImpl implements ReportDocumentMainService, return reportDocumentDataService.removeByMainIdAndDetailIds(id, reportDocumentDataIdsList); } + //保存报告 + @Override + public void doSave(ReportDocumentMainSaveReqVO updateReqVO) { + // 校验存在 + validateReportDocumentMainExists(updateReqVO.getId()); + // 更新 + ReportDocumentMainDO updateObj = BeanUtils.toBean(updateReqVO, ReportDocumentMainDO.class); + reportDocumentMainMapper.updateById(updateObj); + List reportDocumentDataList = updateReqVO.getReportDocumentDataList(); + reportDocumentDataService.updateBatch(reportDocumentDataList); + } + @Override public ReportDocumentMainRespVO createReportDocumentMain(ReportDocumentMainSaveReqVO createReqVO) { // 插入