From 5adc5525e965aaa3727ce22aca030045aec0a322 Mon Sep 17 00:00:00 2001 From: FCL Date: Tue, 10 Mar 2026 17:50:31 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E5=95=86=E6=A3=80=E6=8A=A5=E5=91=8A?= =?UTF-8?q?=E7=9A=84=E2=80=9C=E7=AD=BE=E5=8F=91=E2=80=9D=E2=80=9C=E6=96=B9?= =?UTF-8?q?=E6=B3=95=E2=80=9D=E8=A6=81=E6=8C=89=E6=A0=B7=E5=93=81=E7=B1=BB?= =?UTF-8?q?=E5=9E=8B=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dal/mapper/ReportDocumentDataMapper.java | 6 + .../ReportDocumentDataServiceImpl.java | 130 ++++++++++++------ .../dal/mapper/ReportDocumentDataMapper.xml | 9 ++ 3 files changed, 101 insertions(+), 44 deletions(-) diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/dal/mapper/ReportDocumentDataMapper.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/dal/mapper/ReportDocumentDataMapper.java index 8971467c..159c81c2 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/dal/mapper/ReportDocumentDataMapper.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/dal/mapper/ReportDocumentDataMapper.java @@ -6,6 +6,10 @@ import com.zt.plat.framework.mybatis.core.query.LambdaQueryWrapperX; import com.zt.plat.module.qms.business.reportdoc.controller.vo.*; import com.zt.plat.module.qms.business.reportdoc.dal.dataobject.ReportDocumentDataDO; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; /** * 检测报告明细 Mapper @@ -26,4 +30,6 @@ public interface ReportDocumentDataMapper extends BaseMapperX> queryBaseSampleBySourceId(@Param("sourceId") Long sourceId); + } \ 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/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 baa54322..18cc2282 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 @@ -25,6 +25,7 @@ import org.springframework.validation.annotation.Validated; import java.util.ArrayList; import java.util.List; +import java.util.Map; import static com.zt.plat.framework.common.exception.util.ServiceExceptionUtil.exception; import static com.zt.plat.module.qms.enums.ErrorCodeConstants.REPORT_DOCUMENT_DATA_NOT_EXISTS; @@ -46,6 +47,7 @@ public class ReportDocumentDataServiceImpl implements ReportDocumentDataService @Resource private ReportDocumentDataMapper reportDocumentDataMapper; @Resource private ConfigReportFieldService configReportFieldService; @Resource private ConfigUserSignatureService configUserSignatureService; + @Resource private ReportDocumentTypeService reportDocumentTypeService; private final String colPrefix = "col"; private final String sampleCodeKey = "SMP_CD"; private final String sampleNameKey = "SMP_NAME"; @@ -82,7 +84,9 @@ public class ReportDocumentDataServiceImpl implements ReportDocumentDataService if(fieldListAll.isEmpty()) return CommonResult.error(REPORT_DOCUMENT_TYPE_NOT_EXISTS.getCode(), "未配置报表字段,请联系管理员处理!"); List dataList = listByMainDataId(mainData.getId()).getData(); - + ReportDocumentDataDO firstDataDO = null; + if(!dataList.isEmpty()) + firstDataDO = dataList.get(0); //拆分dataList,按样品分类key拆分 List> dataListGroup = new ArrayList<>(); String[] sampleTypeKeys = new String[]{"inspectionAnalysisSample", "comprehensiveInspectionSample"}; //商检分析样、商检综合样 @@ -140,7 +144,7 @@ public class ReportDocumentDataServiceImpl implements ReportDocumentDataService rowList = assembleEmpty(configJson, rowList); //处理数据分页 if("1".equals(pageFlag)){ - JSONArray pageRowList = assemblePageRowList(rowList, configJson, mainData); + JSONArray pageRowList = assemblePageRowList(rowList, configJson, mainData, firstDataDO); return CommonResult.success(pageRowList); } } @@ -166,22 +170,7 @@ public class ReportDocumentDataServiceImpl implements ReportDocumentDataService ] * */ JSONArray result = new JSONArray(); - JSONObject resultData = new JSONObject(); - JSONObject headerData = new JSONObject(); - JSONObject firstRow = rowList.getJSONObject(0); - if(rowTypeTitle.equals(firstRow.getString(rowTypeKey))){ - headerData = firstRow.clone(); - rowList.remove(0); - } - putEmptyTitleToNotFirstRow(rowList); - resultData.put("headerData", headerData); - resultData.put("tableList", rowList); - String formData = mainData.getFormData(); - String signatureData = mainData.getDocumentSignature(); - if(!ObjectUtils.isEmpty(formData)) - resultData.put("formData", JSONObject.parseObject(formData)); - if(!ObjectUtils.isEmpty(signatureData)) - resultData.put("signatureData", JSONObject.parseObject(signatureData)); + JSONObject resultData = assembleResultData(mainData, rowList, firstDataDO); result.add(resultData); return CommonResult.success(result); } @@ -196,7 +185,7 @@ public class ReportDocumentDataServiceImpl implements ReportDocumentDataService * 处理分页 * * */ - private JSONArray assemblePageRowList(JSONArray rowList, JSONObject configJson, ReportDocumentMainDO mainData){ + private JSONArray assemblePageRowList(JSONArray rowList, JSONObject configJson, ReportDocumentMainDO mainData, ReportDocumentDataDO firstDataDO){ JSONArray pageRowList = new JSONArray(); Integer maxRowCount = 20; String maxRowCountStr = configJson.getString("maxRowCount"); //最大行数 @@ -211,7 +200,7 @@ public class ReportDocumentDataServiceImpl implements ReportDocumentDataService rowList.add(t.clone()); } pageRowList.add(rowList); - return assemblePageResult(mainData, pageRowList, maxRowCount); + return assemblePageResult(mainData, pageRowList, maxRowCount, firstDataDO); } JSONArray remainingRows = new JSONArray(); remainingRows.addAll(rowList); @@ -271,7 +260,7 @@ public class ReportDocumentDataServiceImpl implements ReportDocumentDataService pageRow.add(t.clone()); } - return assemblePageResult(mainData, pageRowList, maxRowCount); + return assemblePageResult(mainData, pageRowList, maxRowCount, firstDataDO); } /* * 修改数据结构 @@ -280,17 +269,9 @@ public class ReportDocumentDataServiceImpl implements ReportDocumentDataService "tableList": [{},] },] * */ - private JSONArray assemblePageResult(ReportDocumentMainDO mainData, JSONArray pageRowList, Integer maxRowCount){ + private JSONArray assemblePageResult(ReportDocumentMainDO mainData, JSONArray pageRowList, Integer maxRowCount, ReportDocumentDataDO firstDataDO){ JSONArray result = new JSONArray(); - String formData = mainData.getFormData(); - String signatureData = mainData.getDocumentSignature(); - String signatureJsonStr = assembleSignature(signatureData); - JSONObject formDataJson = new JSONObject(); - boolean hasSignatureData = false; - if(!ObjectUtils.isEmpty(formData)) - formDataJson = JSONObject.parseObject(formData); - if(!ObjectUtils.isEmpty(signatureJsonStr)) - hasSignatureData = true; + //在最后一页填充空行 JSONArray pageRow = pageRowList.getJSONArray(pageRowList.size() - 1); while(pageRow.size() < maxRowCount){ @@ -300,25 +281,86 @@ public class ReportDocumentDataServiceImpl implements ReportDocumentDataService } for(int i=0;i> baseSampleList = reportDocumentDataMapper.queryBaseSampleBySourceId(firstDataDO.getSourceId()); + if(!baseSampleList.isEmpty()){ + materialName = String.valueOf(baseSampleList.get(0).get("MTRL_NAME")); + } + + if(!materialName.equals(tongJingKuang)){ + hideMethod = true; + hideSignature = true; + }else if(sampleTypeKey.equals(comprehensiveInspectionSample)){ + hideMethod = true; + } + } + if(hideMethod){ + formDataJson.replace(standardKey, "/"); + } + if(hideSignature){ + if(!ObjectUtils.isEmpty(signatureKey)){ + JSONObject opinion = signatureJson.getJSONObject(signatureKey); + if(opinion != null){ + opinion.replace("signTime", ""); + opinion.replace("signatureId", ""); + opinion.replace("userName", "/"); + opinion.replace("userId", ""); + } + } + } + //======根据样品类型,动态处理“方法”、“签发”的值========end + resultData.put("headerData", headerData); + resultData.put("tableList", rows); + resultData.put("formData", formDataJson); + if(!ObjectUtils.isEmpty(signatureJsonStr)) + resultData.put("signatureData", signatureJson); + return resultData; + } private void putEmptyTitleToNotFirstRow(JSONArray rows){ for(int i = 1; i < rows.size(); i++){ diff --git a/zt-module-qms/zt-module-qms-server/src/main/resources/com/zt/plat/module/qms/business/reportdoc/dal/mapper/ReportDocumentDataMapper.xml b/zt-module-qms/zt-module-qms-server/src/main/resources/com/zt/plat/module/qms/business/reportdoc/dal/mapper/ReportDocumentDataMapper.xml index ed2a7332..c90e3bb7 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/resources/com/zt/plat/module/qms/business/reportdoc/dal/mapper/ReportDocumentDataMapper.xml +++ b/zt-module-qms/zt-module-qms-server/src/main/resources/com/zt/plat/module/qms/business/reportdoc/dal/mapper/ReportDocumentDataMapper.xml @@ -9,4 +9,13 @@ 文档可见:https://www.iocoder.cn/MyBatis/x-plugins/ --> + + \ No newline at end of file