From 0e07b41c22316656d495adf6284801b1e72d3352 Mon Sep 17 00:00:00 2001 From: FCL Date: Wed, 19 Nov 2025 14:21:11 +0800 Subject: [PATCH 1/2] =?UTF-8?q?fix:=E6=A0=B7=E5=93=81=E5=BA=93=E7=BB=86?= =?UTF-8?q?=E8=8A=82=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/BusinessSampleDispatchController.java | 4 ++-- .../bus/dal/mapper/BusinessSubSampleMapper.java | 14 ++++++-------- 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/admin/BusinessSampleDispatchController.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/admin/BusinessSampleDispatchController.java index 4625cc5..939cc5f 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/admin/BusinessSampleDispatchController.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/admin/BusinessSampleDispatchController.java @@ -64,14 +64,14 @@ public class BusinessSampleDispatchController implements BusinessControllerMarke return success(true); } - @PutMapping("/addOrRemoveSample") + @PostMapping("/addOrRemoveSample") @Operation(summary = "增加或移除样品") public CommonResult addOrRemoveSample(@Valid @RequestBody BusinessSampleDispatchSaveReqVO updateReqVO) { businessSampleDispatchService.addOrRemoveSample(updateReqVO); return success(true); } - @PutMapping("/addBySampleCode") + @PostMapping("/addBySampleCode") @Operation(summary = "增加或移除样品") public CommonResult addBySampleCode(HttpServletRequest request) { String id = request.getParameter("id"); diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/dal/mapper/BusinessSubSampleMapper.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/dal/mapper/BusinessSubSampleMapper.java index 662bad2..6a1ead8 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/dal/mapper/BusinessSubSampleMapper.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/dal/mapper/BusinessSubSampleMapper.java @@ -34,17 +34,15 @@ public interface BusinessSubSampleMapper extends BaseMapperX{ -// w.eq(ConfigWarehouseLocationDO::getWarehouseType, QmsWarehouseLocationConstant.WAREHOUSE_TYPE_SAMPLE); -// }) -// //仓库 -// .leftJoin(ConfigWarehouseLocationParDO.class, ConfigWarehouseLocationParDO::getId, ConfigWarehouseLocationDO::getParentId) + .leftJoin(ConfigWarehouseLocationDO.class, ConfigWarehouseLocationDO::getId, BusinessSubSampleDO::getConfigWarehouseLocationInfomationId) + //仓库 + .leftJoin(ConfigWarehouseLocationParDO.class, ConfigWarehouseLocationParDO::getId, ConfigWarehouseLocationDO::getParentId) .selectAll(BusinessSubSampleDO.class) .selectAs(DictionaryBusinessDO::getName, BusinessSubSampleExtendRespVO::getDictionaryBusinessName) .selectAs(ConfigSubSampleDO::getIsPrint, BusinessSubSampleExtendRespVO::getIsPrint) .selectAs(ConfigSubSampleDO::getPrintTemplate, BusinessSubSampleExtendRespVO::getPrintTemplate) -// .selectAs(ConfigWarehouseLocationDO::getCode, BusinessSubSampleExtendRespVO::getWarehouseLocationCode) -// .selectAs(ConfigWarehouseLocationParDO::getName, BusinessSubSampleExtendRespVO::getWarehouseName) + .selectAs(ConfigWarehouseLocationDO::getCode, BusinessSubSampleExtendRespVO::getWarehouseLocationCode) + .selectAs(ConfigWarehouseLocationParDO::getName, BusinessSubSampleExtendRespVO::getWarehouseName) .eqIfPresent(BusinessSubSampleDO::getBusinessBaseSampleId, reqVO.getBusinessBaseSampleId()) .eqIfPresent(BusinessSubSampleDO::getBusinessSubParentSampleId, reqVO.getBusinessSubParentSampleId()) .eqIfPresent(BusinessSubSampleDO::getConfigSubSampleId, reqVO.getConfigSubSampleId()) @@ -82,7 +80,7 @@ public interface BusinessSubSampleMapper extends BaseMapperX Date: Wed, 19 Nov 2025 16:10:18 +0800 Subject: [PATCH 2/2] =?UTF-8?q?fix:=E6=8A=A5=E5=91=8A=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E6=8A=A5=E9=94=99=E4=BF=AE=E5=A4=8D=EF=BC=9B=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E5=9B=BA=E5=AE=9A=E5=AD=97=E6=AE=B5=E7=9A=84=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E6=96=B9=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/ReportDocumentMainController.java | 10 +- .../vo/ReportDocumentMainRespVO.java | 6 ++ .../dal/mapper/ReportDocumentMainMapper.java | 11 ++- .../service/ReportDocumentDataService.java | 1 + .../ReportDocumentDataServiceImpl.java | 97 ++++++++++++++++--- .../service/ReportDocumentMainService.java | 2 +- .../ReportDocumentMainServiceImpl.java | 2 +- 7 files changed, 108 insertions(+), 21 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 7af8904..9d491b7 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 @@ -78,6 +78,7 @@ public class ReportDocumentMainController extends AbstractFileUploadController i if(typeDO == null){ return error(REPORT_DOCUMENT_TYPE_NOT_EXISTS, "报告类型不存在,请刷新后重试"); } + vo.setDocumentTitle(typeDO.getName()); vo.setFlowKey(typeDO.getFlowKey()); vo.setDocumentType(typeDO.getDocumentType()); vo.setConfigReportTypeId(typeDO.getConfigReportTypeId()); @@ -244,8 +245,8 @@ public class ReportDocumentMainController extends AbstractFileUploadController i @Operation(summary = "获得检测报告业务分页") //@PreAuthorize("@ss.hasPermission('qms:report-document-main:query')") public CommonResult> getReportDocumentMainPage(@Valid ReportDocumentMainPageReqVO pageReqVO) { - PageResult pageResult = reportDocumentMainService.getReportDocumentMainPage(pageReqVO); - return success(BeanUtils.toBean(pageResult, ReportDocumentMainRespVO.class)); + PageResult pageResult = reportDocumentMainService.getReportDocumentMainPage(pageReqVO); + return success(pageResult); } @GetMapping("/export-excel") @@ -255,10 +256,9 @@ public class ReportDocumentMainController extends AbstractFileUploadController i public void exportReportDocumentMainExcel(@Valid ReportDocumentMainPageReqVO pageReqVO, HttpServletResponse response) throws IOException { pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); - List list = reportDocumentMainService.getReportDocumentMainPage(pageReqVO).getList(); + List list = reportDocumentMainService.getReportDocumentMainPage(pageReqVO).getList(); // 导出 Excel - ExcelUtils.write(response, "检测报告业务.xls", "数据", ReportDocumentMainRespVO.class, - BeanUtils.toBean(list, ReportDocumentMainRespVO.class)); + ExcelUtils.write(response, "检测报告业务.xls", "数据", ReportDocumentMainRespVO.class, list); } } \ 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/controller/vo/ReportDocumentMainRespVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/controller/vo/ReportDocumentMainRespVO.java index 8c2fbff..ee8dc5d 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/controller/vo/ReportDocumentMainRespVO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/controller/vo/ReportDocumentMainRespVO.java @@ -113,4 +113,10 @@ public class ReportDocumentMainRespVO { @Schema(description = "表单设计器模板id") @ExcelProperty("表单设计器模板id") private Long dataTemplateId; + + //==============================扩展字段======================================= + @Schema(description = "记录数") + @ExcelProperty("记录数") + private Long detailDataCount; + } \ 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/mapper/ReportDocumentMainMapper.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/dal/mapper/ReportDocumentMainMapper.java index c39426b..e6ccfc1 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/dal/mapper/ReportDocumentMainMapper.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/dal/mapper/ReportDocumentMainMapper.java @@ -3,7 +3,9 @@ package com.zt.plat.module.qms.business.reportdoc.dal.mapper; import com.zt.plat.framework.common.pojo.PageResult; import com.zt.plat.framework.mybatis.core.mapper.BaseMapperX; import com.zt.plat.framework.mybatis.core.query.LambdaQueryWrapperX; +import com.zt.plat.framework.mybatis.core.query.MPJLambdaWrapperX; import com.zt.plat.module.qms.business.reportdoc.controller.vo.*; +import com.zt.plat.module.qms.business.reportdoc.dal.dataobject.ReportDocumentDataDO; import com.zt.plat.module.qms.business.reportdoc.dal.dataobject.ReportDocumentMainDO; import org.apache.ibatis.annotations.Mapper; import org.springframework.util.ObjectUtils; @@ -21,10 +23,13 @@ import java.util.List; public interface ReportDocumentMainMapper extends BaseMapperX { - default PageResult selectPage(ReportDocumentMainPageReqVO reqVO) { + default PageResult selectPage(ReportDocumentMainPageReqVO reqVO) { String flowStatus = reqVO.getFlowStatus(); - LambdaQueryWrapperX wrapper = new LambdaQueryWrapperX<>(); + MPJLambdaWrapperX wrapper = new MPJLambdaWrapperX<>(); + wrapper.selectSub(ReportDocumentDataDO.class, s-> + s.selectCount(ReportDocumentDataDO::getMainId).eq(ReportDocumentDataDO::getMainId, ReportDocumentMainDO::getId), ReportDocumentMainRespVO::getDetailDataCount); + wrapper.selectAll(ReportDocumentMainDO.class); wrapper.ne(ReportDocumentMainDO::getCancelFlag, -1); //-1为临时数据 wrapper.eqIfPresent(ReportDocumentMainDO::getFlowInstanceId, reqVO.getFlowInstanceId()); wrapper.eqIfPresent(ReportDocumentMainDO::getReportDocumentTypeId, reqVO.getReportDocumentTypeId()); @@ -49,7 +54,7 @@ public interface ReportDocumentMainMapper extends BaseMapperX> assembleDynamicData(ReportDocumentMainDO mainData, ReportDocumentTypeDO reportConfig); CommonResult> listByMainDataId(Long mainDataId); + CommonResult countMainDataId(Long mainDataId); CommonResult removeByMainIdAndDetailIds(Long mainDataId, List detailIds); 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 d44beb8..66b37dd 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 @@ -50,7 +50,7 @@ public class ReportDocumentDataServiceImpl implements ReportDocumentDataService private final String name_code_code = "code"; private final String name_code_split = "split"; private final String rangeKey = "minLimitValue"; - + private final String emptyText = "以下为空白"; /* @@ -113,17 +113,20 @@ public class ReportDocumentDataServiceImpl implements ReportDocumentDataService Integer dynamicColCount = 3; Integer fixedColCount = 3; Integer maxRowCount = 3; - String dynamicColCountStr = jsonObject.getString("dynamicColCount"); //动态列(检测项)数量 - String fixedColCountStr = jsonObject.getString("fixedColCount"); //固定列(样品名称、样品编号等)数量 - String maxRowCountStr = jsonObject.getString("maxRowCount"); //最大行数 - String nameCodeType = jsonObject.getString("nameCodeType"); //名称、编号处理方式:merge-合并, name-只显示名称, code-只显示编号, split-2列分开显示 - String hasRemark = jsonObject.getString("hasRemark"); //是否有备注 - String hasRange = jsonObject.getString("hasRange"); //是否有检出限 - String verticalFlag = jsonObject.getString("verticalFlag"); //vertical-纵表, 否则为横表 + String dynamicColCountStr = jsonObject.getString("dynamicColCount"); //动态列(检测项)数量 + String fixedColCountStr = jsonObject.getString("fixedColCount"); //固定列(样品名称、样品编号等)数量 + String maxRowCountStr = jsonObject.getString("maxRowCount"); //最大行数 + String nameCodeType = jsonObject.getString("nameCodeType"); //名称、编号处理方式:merge-合并, name-只显示名称, code-只显示编号, split-2列分开显示 + String hasRemark = jsonObject.getString("hasRemark"); //是否有备注 + String hasRange = jsonObject.getString("hasRange"); //是否有检出限 + String verticalFlag = jsonObject.getString("verticalFlag"); //vertical-纵表, 否则为横表 + String fixedFields = jsonObject.getString("fixedFields"); //固定检测项。如果固定检测项,则以检测项作为数据Key if("1".equals(verticalFlag)){ return assembleVerticalData(fieldList, dataList, customConfig); } - + if(!ObjectUtils.isEmpty(fixedFields)){ + return assembleFixedFieldsData(fieldList, dataList, customConfig); + } if(!ObjectUtils.isEmpty(dynamicColCountStr)) dynamicColCount = Integer.parseInt(dynamicColCountStr); if(!ObjectUtils.isEmpty(fixedColCountStr)) fixedColCount = Integer.parseInt(fixedColCountStr); @@ -261,13 +264,15 @@ public class ReportDocumentDataServiceImpl implements ReportDocumentDataService //==============以下为空白================= //实际使用行数小于总行数,显示“”以下为空白“ - if(dataIndex < maxRowCount){ + if(dataLength < maxRowCount){ String colKey = colPrefix + "01"; t = new JSONObject(); - t.put(colKey, "以下为空白"); + t.put(colKey, emptyText); int rowIndex = (dataLength + emptyRowCount) * (rowAssist) + 2; if(rowAssist == 1) rowIndex = dataLength + emptyRowCount; + if(rowCountOneSample == 1) + rowIndex = dataLength + 2; rowList.set(rowIndex, t.clone()); } //前面的计数是从1开始,移除第一个元素 @@ -371,6 +376,68 @@ public class ReportDocumentDataServiceImpl implements ReportDocumentDataService return sb.append(num).toString(); } + /** + * 组装固定检测项的数据,以检测项作为数据Key + * */ + private List assembleFixedFieldsData(List fieldList, List dataList, String customConfig){ + JSONObject jsonObject = JSONObject.parseObject(customConfig); + + Integer maxRowCount = 3; + String maxRowCountStr = jsonObject.getString("maxRowCount"); //最大行数 + String hasRemark = jsonObject.getString("hasRemark"); //是否有备注 + String hasRange = jsonObject.getString("hasRange"); //是否有检出限 + String fixedFields = jsonObject.getString("fixedFields"); //固定检测项。如果固定检测项,则以检测项作为数据Key + JSONArray fixedFieldsArray = JSONArray.parseArray(fixedFields); + if(!ObjectUtils.isEmpty(maxRowCountStr)) maxRowCount = Integer.parseInt(maxRowCountStr); + + List rowList = new ArrayList<>(); + for(ReportDocumentDataDO dataDO : dataList) { + JSONObject t = new JSONObject(); + 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"); + String sampleName = dataDO.getSampleName(); + String sampleCode = dataDO.getSampleCode(); + String sampleNameCode = sampleName + " " + sampleCode; + t.put("sampleNameCode", sampleNameCode); + t.put("sampleName", sampleName); + t.put("sampleCode", sampleCode); + for(ConfigReportFieldDO fieldDO : fieldList){ + String fieldName = fieldDO.getFieldName(); + String field = fieldDO.getField(); + for(int i=0;i countMainDataId(Long mainDataId) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("MAIN_ID", mainDataId); + queryWrapper.orderByAsc("ID"); + return CommonResult.success(reportDocumentDataMapper.selectCount(queryWrapper)); + } + @Override public CommonResult removeByMainIdAndDetailIds(Long mainDataId, List detailIds) { QueryWrapper queryWrapper = new QueryWrapper<>(); 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 620e12e..baacc8b 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 @@ -77,7 +77,7 @@ public interface ReportDocumentMainService { * @param pageReqVO 分页查询 * @return 检测报告业务分页 */ - PageResult getReportDocumentMainPage(ReportDocumentMainPageReqVO pageReqVO); + PageResult getReportDocumentMainPage(ReportDocumentMainPageReqVO pageReqVO); //发起流程 CommonResult createProcessInstance(ReportDocumentMainSaveReqVO entity); 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 72be504..6bb7127 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 @@ -262,7 +262,7 @@ public class ReportDocumentMainServiceImpl implements ReportDocumentMainService, } @Override - public PageResult getReportDocumentMainPage(ReportDocumentMainPageReqVO pageReqVO) { + public PageResult getReportDocumentMainPage(ReportDocumentMainPageReqVO pageReqVO) { return reportDocumentMainMapper.selectPage(pageReqVO); }