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 b476866..7ae7b5d 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 @@ -35,17 +35,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()) @@ -83,7 +81,7 @@ public interface BusinessSubSampleMapper extends BaseMapperX> 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); }