diff --git a/zt-module-qms/zt-module-qms-api/src/main/java/com/zt/plat/module/qms/enums/ErrorCodeConstants.java b/zt-module-qms/zt-module-qms-api/src/main/java/com/zt/plat/module/qms/enums/ErrorCodeConstants.java index 039bac2..08dfeb1 100644 --- a/zt-module-qms/zt-module-qms-api/src/main/java/com/zt/plat/module/qms/enums/ErrorCodeConstants.java +++ b/zt-module-qms/zt-module-qms-api/src/main/java/com/zt/plat/module/qms/enums/ErrorCodeConstants.java @@ -106,7 +106,8 @@ public interface ErrorCodeConstants { //检测报告 ErrorCode REPORT_DOCUMENT_MAIN_NOT_EXISTS = new ErrorCode(1_032_100_000, "检测报告业务不存在"); ErrorCode REPORT_DOCUMENT_DATA_NOT_EXISTS = new ErrorCode(1_032_100_000, "检测报告明细不存在"); - ErrorCode REPORT_DOCUMENT_TYPE_NOT_EXISTS = new ErrorCode(1_032_050_000, "报告类型配置不存在"); + ErrorCode REPORT_DOCUMENT_TYPE_NOT_EXISTS = new ErrorCode(1_032_100_000, "报告类型配置不存在"); + ErrorCode REPORT_DOCUMENT_MAIN_CORRELATION_NOT_EXISTS = new ErrorCode(1_032_100_000, "报告主数据关系不存在"); /*=================================resource 资源管理 1_032_150_000 ~ 1_032_199_999 ==================================*/ ErrorCode DEVICE_INFOMATION_NOT_EXISTS = new ErrorCode(1_032_150_000, "设备_设备信息不存在"); diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/admin/BusinessSampleEntrustRegistrationController.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/admin/BusinessSampleEntrustRegistrationController.java index 1cd93de..bfde1bc 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/admin/BusinessSampleEntrustRegistrationController.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/admin/BusinessSampleEntrustRegistrationController.java @@ -107,4 +107,11 @@ public class BusinessSampleEntrustRegistrationController implements BusinessCont BeanUtils.toBean(list, BusinessSampleEntrustRegistrationRespVO.class)); } + @GetMapping("/queryWaitingDataForReport") + @Operation(summary = "查询待编制数据") + public CommonResult> queryWaitingDataForReport(@Valid BusinessSampleEntrustRegistrationPageReqVO pageReqVO) { + PageResult result = businessSampleEntrustRegistrationService.queryWaitingDataForReport(pageReqVO); + return success(result); + } + } \ 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/bus/controller/vo/BusinessAssayReportDataPageReqVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessAssayReportDataPageReqVO.java index bb1ec58..4d4e9f8 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessAssayReportDataPageReqVO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessAssayReportDataPageReqVO.java @@ -65,4 +65,6 @@ public class BusinessAssayReportDataPageReqVO extends PageParam { @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) private LocalDateTime[] baseSampleCreateTime; + @Schema(description = "委托id列表") + private List businessSampleEntrustRegistrationIdList; } \ 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/bus/dal/dataobject/BusinessAssayReportDataDO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/dal/dataobject/BusinessAssayReportDataDO.java index f78420c..e1aa53f 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/dal/dataobject/BusinessAssayReportDataDO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/dal/dataobject/BusinessAssayReportDataDO.java @@ -102,6 +102,10 @@ public class BusinessAssayReportDataDO extends BusinessBaseDO { @TableField(exist = false) private String sampleName; + //样品大类名称 + @TableField(exist = false) + private String baseSampleName; + //样品创建时间 @TableField(exist = false) private LocalDateTime baseSampleCreateTime; diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/dal/dataobject/BusinessSampleEntrustRegistrationDO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/dal/dataobject/BusinessSampleEntrustRegistrationDO.java index daac0e0..c0d67a2 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/dal/dataobject/BusinessSampleEntrustRegistrationDO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/dal/dataobject/BusinessSampleEntrustRegistrationDO.java @@ -252,4 +252,10 @@ public class BusinessSampleEntrustRegistrationDO extends BusinessBaseDO { @TableField("RMK") private String remark; + + //================扩展字段==================== + //委托来源 + @TableField(exist = false) + private String configEntrustSourceName; + } \ 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/bus/dal/mapper/BusinessSampleEntrustRegistrationMapper.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/dal/mapper/BusinessSampleEntrustRegistrationMapper.java index adf6732..f2058c1 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/dal/mapper/BusinessSampleEntrustRegistrationMapper.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/dal/mapper/BusinessSampleEntrustRegistrationMapper.java @@ -1,5 +1,7 @@ package com.zt.plat.module.qms.business.bus.dal.mapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.zt.plat.framework.common.pojo.PageResult; import com.zt.plat.framework.mybatis.core.query.LambdaQueryWrapperX; import com.zt.plat.framework.mybatis.core.query.MPJLambdaWrapperX; @@ -10,6 +12,7 @@ import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessSampleEntrustR import com.zt.plat.module.qms.business.config.dal.dataobject.ConfigEntrustSourceDO; import com.zt.plat.framework.mybatis.core.mapper.BaseMapperX; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; /** * 委检登记业务 Mapper @@ -72,4 +75,7 @@ public interface BusinessSampleEntrustRegistrationMapper extends BaseMapperX queryWaitingDataForReport(IPage page, @Param("param") BusinessSampleEntrustRegistrationPageReqVO param); } \ 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/bus/service/BusinessSampleEntrustRegistrationService.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/service/BusinessSampleEntrustRegistrationService.java index 5162b07..ae49327 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/service/BusinessSampleEntrustRegistrationService.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/service/BusinessSampleEntrustRegistrationService.java @@ -64,4 +64,10 @@ public interface BusinessSampleEntrustRegistrationService { */ PageResult getBusinessSampleEntrustRegistrationPage(BusinessSampleEntrustRegistrationPageReqVO pageReqVO); + /** + * 查询待编制数据*/ + PageResult queryWaitingDataForReport(BusinessSampleEntrustRegistrationPageReqVO pageReqVO); + + + } \ 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/bus/service/BusinessSampleEntrustRegistrationServiceImpl.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/service/BusinessSampleEntrustRegistrationServiceImpl.java index 04e77f1..dee6711 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/service/BusinessSampleEntrustRegistrationServiceImpl.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/service/BusinessSampleEntrustRegistrationServiceImpl.java @@ -1,6 +1,8 @@ package com.zt.plat.module.qms.business.bus.service; import cn.hutool.core.collection.CollUtil; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.zt.plat.module.qms.business.bus.controller.vo.BusinessSampleEntrustRegistrationExtendRespVO; import com.zt.plat.module.qms.business.bus.controller.vo.BusinessSampleEntrustRegistrationPageReqVO; import com.zt.plat.module.qms.business.bus.controller.vo.BusinessSampleEntrustRegistrationRespVO; @@ -91,4 +93,12 @@ public class BusinessSampleEntrustRegistrationServiceImpl implements BusinessSam return businessSampleEntrustRegistrationMapper.selectPage(pageReqVO); } + //查询待编制数据 + @Override + public PageResult queryWaitingDataForReport(BusinessSampleEntrustRegistrationPageReqVO pageReqVO) { + IPage page = new Page<>(pageReqVO.getPageNo(), pageReqVO.getPageSize()); + Page pageList = businessSampleEntrustRegistrationMapper.queryWaitingDataForReport(page, pageReqVO); + PageResult pageResult = new PageResult<>(pageList.getRecords(), pageList.getTotal()); + return BeanUtils.toBean(pageResult, BusinessSampleEntrustRegistrationExtendRespVO.class); + } } \ 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/admin/ReportDocumentDataController.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/controller/admin/ReportDocumentDataController.java index 4d145ec..9cf1dd4 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/controller/admin/ReportDocumentDataController.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/controller/admin/ReportDocumentDataController.java @@ -1,5 +1,7 @@ package com.zt.plat.module.qms.business.reportdoc.controller.admin; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; import com.zt.plat.framework.apilog.core.annotation.ApiAccessLog; import com.zt.plat.framework.business.annotation.FileUploadController; import com.zt.plat.framework.business.controller.AbstractFileUploadController; @@ -55,10 +57,26 @@ public class ReportDocumentDataController extends AbstractFileUploadController i @Resource private ReportDocumentMainService reportDocumentMainService; @Resource private ReportDocumentTypeService reportDocumentTypeService; + /* + * 查询报告明细数据,返回结果包含报表字段配置、组装后的报告明细数据*/ + @GetMapping("/queryReportDetail") + @Operation(summary = "查询报告明细数据") + @Parameter(name = "mainId", description = "报告id", required = true, example = "1024") + public CommonResult> queryReportDetail(@RequestParam("mainId") Long mainId) { + ReportDocumentMainDO mainDO = reportDocumentMainService.getReportDocumentMain(mainId); + Long typeId = mainDO.getReportDocumentTypeId(); + ReportDocumentTypeDO typeDO = reportDocumentTypeService.getReportDocumentType(typeId); + Long confId = typeDO.getConfigReportTypeId(); +// Map param = new HashMap<>(); +// List list = reportDocumentDataService.listByMainDataId(mainId).getData(); +// return success(BeanUtils.toBean(list, ReportDocumentDataRespVO.class)); + CommonResult> result = reportDocumentDataService.assembleDynamicData(mainDO, typeDO); + return result; + } @GetMapping("/queryAddedData") - @Operation(summary = "已编制报表数据查询") + @Operation(summary = "查询已编制报表数据") @Parameter(name = "mainId", description = "报告id", required = true, example = "1024") public CommonResult> queryAddedData(@RequestParam("mainId") Long mainId) { 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 2a4d8ff..3852f35 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 @@ -85,10 +85,16 @@ public class ReportDocumentMainController extends AbstractFileUploadController i return reportDocumentMainService.createProcessInstance(createReqVO); } - @PostMapping("/execAddData") - @Operation(summary = "增加数据") - public CommonResult execAddData(@RequestBody ReportDocumentMainSaveReqVO vo) { - return reportDocumentMainService.execAddData(vo); + @PostMapping("/execAddDataBySample") + @Operation(summary = "增加数据(按样品)") + public CommonResult execAddDataBySample(@RequestBody ReportDocumentMainSaveReqVO vo) { + return reportDocumentMainService.execAddDataBySample(vo); + } + + @PostMapping("/execAddDataByEntrust") + @Operation(summary = "增加数据(按委托)") + public CommonResult execAddDataByEntrust(@RequestBody ReportDocumentMainSaveReqVO vo) { + return reportDocumentMainService.execAddDataByEntrust(vo); } @PostMapping("/execRemoveData") diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/controller/admin/ReportDocumentMainCorrelationController.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/controller/admin/ReportDocumentMainCorrelationController.java new file mode 100644 index 0000000..1cb690d --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/controller/admin/ReportDocumentMainCorrelationController.java @@ -0,0 +1,109 @@ +package com.zt.plat.module.qms.business.reportdoc.controller.admin; + +import com.zt.plat.module.qms.business.reportdoc.controller.vo.ReportDocumentMainCorrelationPageReqVO; +import com.zt.plat.module.qms.business.reportdoc.controller.vo.ReportDocumentMainCorrelationRespVO; +import com.zt.plat.module.qms.business.reportdoc.controller.vo.ReportDocumentMainCorrelationSaveReqVO; +import org.springframework.web.bind.annotation.*; +import jakarta.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.security.access.prepost.PreAuthorize; +import com.zt.plat.framework.business.interceptor.BusinessControllerMarker; + +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Operation; + +import jakarta.validation.*; +import jakarta.servlet.http.*; +import java.util.*; +import java.io.IOException; + +import com.zt.plat.framework.common.pojo.vo.BatchDeleteReqVO; +import com.zt.plat.framework.common.pojo.PageParam; +import com.zt.plat.framework.common.pojo.PageResult; +import com.zt.plat.framework.common.pojo.CommonResult; +import com.zt.plat.framework.common.util.object.BeanUtils; +import static com.zt.plat.framework.common.pojo.CommonResult.success; + +import com.zt.plat.framework.excel.core.util.ExcelUtils; + +import com.zt.plat.framework.apilog.core.annotation.ApiAccessLog; +import static com.zt.plat.framework.apilog.core.enums.OperateTypeEnum.*; + +import com.zt.plat.module.qms.business.reportdoc.dal.dataobject.ReportDocumentMainCorrelationDO; +import com.zt.plat.module.qms.business.reportdoc.service.ReportDocumentMainCorrelationService; + +@Tag(name = "管理后台 - 检测报告关系表") +@RestController +@RequestMapping("/qms/report-document-main-correlation") +@Validated +public class ReportDocumentMainCorrelationController implements BusinessControllerMarker { + + + @Resource + private ReportDocumentMainCorrelationService reportDocumentMainCorrelationService; + + @PostMapping("/create") + @Operation(summary = "创建检测报告关系表") + @PreAuthorize("@ss.hasPermission('qms:report-document-main-correlation:create')") + public CommonResult createReportDocumentMainCorrelation(@Valid @RequestBody ReportDocumentMainCorrelationSaveReqVO createReqVO) { + return success(reportDocumentMainCorrelationService.createReportDocumentMainCorrelation(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新检测报告关系表") + @PreAuthorize("@ss.hasPermission('qms:report-document-main-correlation:update')") + public CommonResult updateReportDocumentMainCorrelation(@Valid @RequestBody ReportDocumentMainCorrelationSaveReqVO updateReqVO) { + reportDocumentMainCorrelationService.updateReportDocumentMainCorrelation(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除检测报告关系表") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('qms:report-document-main-correlation:delete')") + public CommonResult deleteReportDocumentMainCorrelation(@RequestParam("id") Long id) { + reportDocumentMainCorrelationService.deleteReportDocumentMainCorrelation(id); + return success(true); + } + + @DeleteMapping("/delete-list") + @Parameter(name = "ids", description = "编号", required = true) + @Operation(summary = "批量删除检测报告关系表") + @PreAuthorize("@ss.hasPermission('qms:report-document-main-correlation:delete')") + public CommonResult deleteReportDocumentMainCorrelationList(@RequestBody BatchDeleteReqVO req) { + reportDocumentMainCorrelationService.deleteReportDocumentMainCorrelationListByIds(req.getIds()); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得检测报告关系表") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('qms:report-document-main-correlation:query')") + public CommonResult getReportDocumentMainCorrelation(@RequestParam("id") Long id) { + ReportDocumentMainCorrelationDO reportDocumentMainCorrelation = reportDocumentMainCorrelationService.getReportDocumentMainCorrelation(id); + return success(BeanUtils.toBean(reportDocumentMainCorrelation, ReportDocumentMainCorrelationRespVO.class)); + } + + @GetMapping("/page") + @Operation(summary = "获得检测报告关系表分页") + @PreAuthorize("@ss.hasPermission('qms:report-document-main-correlation:query')") + public CommonResult> getReportDocumentMainCorrelationPage(@Valid ReportDocumentMainCorrelationPageReqVO pageReqVO) { + PageResult pageResult = reportDocumentMainCorrelationService.getReportDocumentMainCorrelationPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, ReportDocumentMainCorrelationRespVO.class)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出检测报告关系表 Excel") + @PreAuthorize("@ss.hasPermission('qms:report-document-main-correlation:export')") + @ApiAccessLog(operateType = EXPORT) + public void exportReportDocumentMainCorrelationExcel(@Valid ReportDocumentMainCorrelationPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = reportDocumentMainCorrelationService.getReportDocumentMainCorrelationPage(pageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "检测报告关系表.xls", "数据", ReportDocumentMainCorrelationRespVO.class, + BeanUtils.toBean(list, ReportDocumentMainCorrelationRespVO.class)); + } + +} \ 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/ReportDocumentDataPageReqVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/controller/vo/ReportDocumentDataPageReqVO.java index fcad1b5..5c66fdf 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/controller/vo/ReportDocumentDataPageReqVO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/controller/vo/ReportDocumentDataPageReqVO.java @@ -32,4 +32,15 @@ public class ReportDocumentDataPageReqVO extends PageParam { @Schema(description = "备注") private String remark; + @Schema(description = "附加内容") + private String externalContent; + + @Schema(description = "样品编号") + private String sampleCode; + + @Schema(description = "样品名称") + private String sampleName; + + @Schema(description = "样品大类名称") + private String baseSampleName; } \ 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/ReportDocumentDataRespVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/controller/vo/ReportDocumentDataRespVO.java index f37adfd..ebc981a 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/controller/vo/ReportDocumentDataRespVO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/controller/vo/ReportDocumentDataRespVO.java @@ -40,11 +40,24 @@ public class ReportDocumentDataRespVO { @ExcelProperty("备注") private String remark; - //==================扩展字段=========== + @Schema(description = "附加内容") + @ExcelProperty("附加内容") + private String externalContent; + + @Schema(description = "样品编号") + @ExcelProperty("样品编号") + private String sampleCode; + @Schema(description = "样品名称") @ExcelProperty("样品名称") private String sampleName; + @Schema(description = "样品大类名称") + @ExcelProperty("样品大类名称") + private String baseSampleName; + + //==================扩展字段=========== + @Schema(description = "样品创建时间") @ExcelProperty("样品创建时间") private LocalDateTime baseSampleCreateTime; diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/controller/vo/ReportDocumentDataSaveReqVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/controller/vo/ReportDocumentDataSaveReqVO.java index 86fa94c..72b9a26 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/controller/vo/ReportDocumentDataSaveReqVO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/controller/vo/ReportDocumentDataSaveReqVO.java @@ -28,4 +28,16 @@ public class ReportDocumentDataSaveReqVO { @Schema(description = "备注") private String remark; + @Schema(description = "附加内容") + private String externalContent; + + @Schema(description = "样品编号") + private String sampleCode; + + @Schema(description = "样品名称") + private String sampleName; + + @Schema(description = "样品大类名称") + private String baseSampleName; + } \ 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/ReportDocumentMainCorrelationPageReqVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/controller/vo/ReportDocumentMainCorrelationPageReqVO.java new file mode 100644 index 0000000..3a7a7aa --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/controller/vo/ReportDocumentMainCorrelationPageReqVO.java @@ -0,0 +1,34 @@ +package com.zt.plat.module.qms.business.reportdoc.controller.vo; + +import lombok.*; +import io.swagger.v3.oas.annotations.media.Schema; +import com.zt.plat.framework.common.pojo.PageParam; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; + +import static com.zt.plat.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 检测报告关系表分页 Request VO") +@Data +public class ReportDocumentMainCorrelationPageReqVO extends PageParam { + + @Schema(description = "报告id", example = "21148") + private Long mainId; + + @Schema(description = "关联id", example = "24996") + private Long correlationId; + + @Schema(description = "关联类型", example = "2") + private String correlationType; + + @Schema(description = "所属部门") + private String systemDepartmentCode; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + + @Schema(description = "备注") + private String remark; + +} \ 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/ReportDocumentMainCorrelationRespVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/controller/vo/ReportDocumentMainCorrelationRespVO.java new file mode 100644 index 0000000..13d7340 --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/controller/vo/ReportDocumentMainCorrelationRespVO.java @@ -0,0 +1,42 @@ +package com.zt.plat.module.qms.business.reportdoc.controller.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; + +import java.time.LocalDateTime; +import com.alibaba.excel.annotation.*; + +@Schema(description = "管理后台 - 检测报告关系表 Response VO") +@Data +@ExcelIgnoreUnannotated +public class ReportDocumentMainCorrelationRespVO { + + @Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "27670") + @ExcelProperty("ID") + private Long id; + + @Schema(description = "报告id", example = "21148") + @ExcelProperty("报告id") + private Long mainId; + + @Schema(description = "关联id", example = "24996") + @ExcelProperty("关联id") + private Long correlationId; + + @Schema(description = "关联类型", example = "2") + @ExcelProperty("关联类型") + private String correlationType; + + @Schema(description = "所属部门") + @ExcelProperty("所属部门") + private String systemDepartmentCode; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("创建时间") + private LocalDateTime createTime; + + @Schema(description = "备注") + @ExcelProperty("备注") + private String remark; + +} \ 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/ReportDocumentMainCorrelationSaveReqVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/controller/vo/ReportDocumentMainCorrelationSaveReqVO.java new file mode 100644 index 0000000..3090264 --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/controller/vo/ReportDocumentMainCorrelationSaveReqVO.java @@ -0,0 +1,28 @@ +package com.zt.plat.module.qms.business.reportdoc.controller.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; + +@Schema(description = "管理后台 - 检测报告关系表新增/修改 Request VO") +@Data +public class ReportDocumentMainCorrelationSaveReqVO { + + @Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "27670") + private Long id; + + @Schema(description = "报告id", example = "21148") + private Long mainId; + + @Schema(description = "关联id", example = "24996") + private Long correlationId; + + @Schema(description = "关联类型", example = "2") + private String correlationType; + + @Schema(description = "所属部门") + private String systemDepartmentCode; + + @Schema(description = "备注") + private String remark; + +} \ 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/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 63a79ce..e89eb2a 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 @@ -89,4 +89,10 @@ public class ReportDocumentMainSaveReqVO { @Schema(description = "表单设计器模板id") private Long dataTemplateId; + + //====================附加属性============================== + @Schema(description = "委托id,支持多值") + private String businessSampleEntrustRegistrationIds; + + } \ 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 7a233e0..c49ec28 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 @@ -57,11 +57,28 @@ public class ReportDocumentDataDO extends BusinessBaseDO { @TableField("RMK") private String remark; - //==================扩展字段=========== + /** + * 附加内容 + */ + @TableField("DOC_CNTT") + private String externalContent; + + //样品编号 + @TableField("SMP_CD") + private String sampleCode; + //样品名称 - @TableField(exist = false) + @TableField("SMP_NAME") private String sampleName; + //样品大类名称 + @TableField("BSE_SMP_NAME") + private String baseSampleName; + + + + //==================扩展字段=========== + //样品创建时间 @TableField(exist = false) private LocalDateTime baseSampleCreateTime; diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/dal/dataobject/ReportDocumentMainCorrelationDO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/dal/dataobject/ReportDocumentMainCorrelationDO.java new file mode 100644 index 0000000..67e43e9 --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/dal/dataobject/ReportDocumentMainCorrelationDO.java @@ -0,0 +1,57 @@ +package com.zt.plat.module.qms.business.reportdoc.dal.dataobject; + +import lombok.*; +import com.baomidou.mybatisplus.annotation.*; +import com.zt.plat.framework.mybatis.core.dataobject.BusinessBaseDO; +/** +* 检测报告关系表 DO +* +* @author 后台管理 +*/ +@TableName("t_rpt_doc_main_corr") +@KeySequence("t_rpt_doc_main_corr_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +/** +* 支持业务基类继承:isBusiness=true 时继承 BusinessBaseDO,否则继承 BaseDO +*/ +public class ReportDocumentMainCorrelationDO extends BusinessBaseDO { + + + + /** + * ID + */ + @TableId(type = IdType.ASSIGN_ID) + private Long id; + /** + * 报告id + */ + @TableField("MAIN_ID") + private Long mainId; + /** + * 关联id + */ + @TableField("CORR_ID") + private Long correlationId; + /** + * 关联类型 + */ + @TableField("CORR_TP") + private String correlationType; + /** + * 所属部门 + */ + @TableField("SYS_DEPT_CD") + private String systemDepartmentCode; + /** + * 备注 + */ + @TableField("RMK") + private String remark; + +} \ 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/ReportDocumentMainCorrelationMapper.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/dal/mapper/ReportDocumentMainCorrelationMapper.java new file mode 100644 index 0000000..3dfe62f --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/dal/mapper/ReportDocumentMainCorrelationMapper.java @@ -0,0 +1,29 @@ +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.query.LambdaQueryWrapperX; +import com.zt.plat.framework.mybatis.core.mapper.BaseMapperX; +import com.zt.plat.module.qms.business.reportdoc.controller.vo.ReportDocumentMainCorrelationPageReqVO; +import com.zt.plat.module.qms.business.reportdoc.dal.dataobject.ReportDocumentMainCorrelationDO; +import org.apache.ibatis.annotations.Mapper; + +/** + * 检测报告关系表 Mapper + * + * @author 后台管理 + */ +@Mapper +public interface ReportDocumentMainCorrelationMapper extends BaseMapperX { + + default PageResult selectPage(ReportDocumentMainCorrelationPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(ReportDocumentMainCorrelationDO::getMainId, reqVO.getMainId()) + .eqIfPresent(ReportDocumentMainCorrelationDO::getCorrelationId, reqVO.getCorrelationId()) + .eqIfPresent(ReportDocumentMainCorrelationDO::getCorrelationType, reqVO.getCorrelationType()) + .eqIfPresent(ReportDocumentMainCorrelationDO::getSystemDepartmentCode, reqVO.getSystemDepartmentCode()) + .betweenIfPresent(ReportDocumentMainCorrelationDO::getCreateTime, reqVO.getCreateTime()) + .eqIfPresent(ReportDocumentMainCorrelationDO::getRemark, reqVO.getRemark()) + .orderByDesc(ReportDocumentMainCorrelationDO::getId)); + } + +} \ 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 70d33dc..8605119 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 @@ -6,6 +6,11 @@ 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.ReportDocumentMainDO; import org.apache.ibatis.annotations.Mapper; +import org.springframework.util.ObjectUtils; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; /** * 检测报告业务 Mapper @@ -17,6 +22,8 @@ public interface ReportDocumentMainMapper extends BaseMapperX selectPage(ReportDocumentMainPageReqVO reqVO) { + String flowStatus = reqVO.getFlowStatus(); + LambdaQueryWrapperX wrapper = new LambdaQueryWrapperX<>(); wrapper.ne(ReportDocumentMainDO::getCancelFlag, -1); //-1为临时数据 wrapper.eqIfPresent(ReportDocumentMainDO::getFlowInstanceId, reqVO.getFlowInstanceId()); @@ -32,7 +39,11 @@ public interface ReportDocumentMainMapper extends BaseMapperX statusList = Arrays.asList(flowStatus.split(",")); + wrapper.in(ReportDocumentMainDO::getFlowStatus, statusList); + } wrapper.eqIfPresent(ReportDocumentMainDO::getCancelFlag, reqVO.getCancelFlag()); wrapper.eqIfPresent(ReportDocumentMainDO::getSystemDepartmentCode, reqVO.getSystemDepartmentCode()); wrapper.betweenIfPresent(ReportDocumentMainDO::getCreateTime, reqVO.getCreateTime()); diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/service/DynamicReportDataService.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/service/DynamicReportDataService.java new file mode 100644 index 0000000..599b92c --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/service/DynamicReportDataService.java @@ -0,0 +1,7 @@ +package com.zt.plat.module.qms.business.reportdoc.service; + +/** + * 动态报表数据接口 + * */ +public interface DynamicReportDataService { +} 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 a8b603a..70a8a86 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 @@ -1,9 +1,13 @@ package com.zt.plat.module.qms.business.reportdoc.service; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; import com.zt.plat.framework.common.pojo.CommonResult; import com.zt.plat.framework.common.pojo.PageResult; 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 com.zt.plat.module.qms.business.reportdoc.dal.dataobject.ReportDocumentTypeDO; import jakarta.validation.Valid; import java.util.List; @@ -15,9 +19,13 @@ import java.util.List; */ public interface ReportDocumentDataService { + CommonResult> assembleDynamicData(ReportDocumentMainDO mainData, ReportDocumentTypeDO reportConfig); + CommonResult> listByMainDataId(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 8b57ab6..2be4302 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 @@ -1,21 +1,35 @@ package com.zt.plat.module.qms.business.reportdoc.service; import cn.hutool.core.collection.CollUtil; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.zt.plat.framework.common.pojo.CommonResult; import com.zt.plat.framework.common.pojo.PageResult; import com.zt.plat.framework.common.util.object.BeanUtils; +import com.zt.plat.module.qms.business.config.controller.vo.ConfigReportFieldPageReqVO; +import com.zt.plat.module.qms.business.config.dal.dataobject.ConfigReportFieldDO; +import com.zt.plat.module.qms.business.config.service.ConfigReportFieldService; import com.zt.plat.module.qms.business.reportdoc.controller.vo.*; +import com.zt.plat.module.qms.business.reportdoc.dal.dataobject.ReportDocumentMainDO; +import com.zt.plat.module.qms.business.reportdoc.dal.dataobject.ReportDocumentTypeDO; import com.zt.plat.module.qms.business.reportdoc.dal.mapper.ReportDocumentDataMapper; import com.zt.plat.module.qms.business.reportdoc.dal.dataobject.ReportDocumentDataDO; import jakarta.annotation.Resource; import org.springframework.stereotype.Service; +import org.springframework.util.ObjectUtils; import org.springframework.validation.annotation.Validated; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; import java.util.List; 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; +import static com.zt.plat.module.qms.enums.ErrorCodeConstants.REPORT_DOCUMENT_TYPE_NOT_EXISTS; +import static com.zt.plat.module.qms.enums.QmsCommonConstant.FIELD_DYNAMIC; +import static com.zt.plat.module.qms.enums.QmsCommonConstant.FIELD_FIXED; /** * 检测报告明细 Service 实现类 @@ -26,8 +40,249 @@ import static com.zt.plat.module.qms.enums.ErrorCodeConstants.REPORT_DOCUMENT_DA @Validated public class ReportDocumentDataServiceImpl implements ReportDocumentDataService { - @Resource - private ReportDocumentDataMapper reportDocumentDataMapper; + @Resource private ReportDocumentDataMapper reportDocumentDataMapper; + @Resource private ConfigReportFieldService configReportFieldService; + private final String colPrefix = "col"; + private final String sampleCodeKey = "SMP_CD"; + private final String sampleNameKey = "SMP_NAME"; + private final String name_code_merge = "merge"; + private final String name_code_name = "name"; + private final String name_code_code = "code"; + private final String name_code_split = "split"; + + + + /* + * 组装动态报表数据 + * */ + @Override + public CommonResult> assembleDynamicData(ReportDocumentMainDO mainData, ReportDocumentTypeDO typeDO) { + 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()); + fieldParam.setPageSize(9999); + List fieldListAll = configReportFieldService.getConfigReportFieldPage(fieldParam).getList(); + if(fieldListAll.isEmpty()) + return CommonResult.error(REPORT_DOCUMENT_TYPE_NOT_EXISTS, "未配置报表字段,请联系管理员处理!"); + List dataList = listByMainDataId(mainData.getId()).getData(); + //处理字段,提取有数据的字段 + List fieldList = new ArrayList<>(); + List hasFields = new ArrayList<>(); + for(ConfigReportFieldDO fieldDO : fieldListAll){ + String field = fieldDO.getField(); + String fieldName = fieldDO.getFieldName(); + String fieldType = fieldDO.getFieldType(); + //先处理固定列 + if(FIELD_FIXED.equals(fieldType)){ + if(!hasFields.contains( field)){ + fieldList.add(fieldDO); + hasFields.add(field); + } + continue; + } + for(ReportDocumentDataDO dataDO : dataList){ + String documentContent = dataDO.getDocumentContent(); + JSONObject dataJson = JSONObject.parseObject(documentContent); + if(dataJson.containsKey(field)){ + if(!hasFields.contains( fieldName)){ + fieldList.add(fieldDO); + hasFields.add(fieldName); + } + } + } + } + + //组装数据 + List step1Arr = assembleStep1(fieldList, dataList, customConfig); //处理后的组数对象 + //移除第一个元素 + step1Arr.remove(0); + return CommonResult.success(step1Arr); + } + + /** + * 将数据按colCount分组。返回2维数组 + * @param fieldList 处理过的字段列表。固定字段在最前 + * @param customConfig 报告配置项 + * */ + private List assembleStep1(List fieldList, List dataList, String customConfig){ + JSONObject jsonObject = JSONObject.parseObject(customConfig); + 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"); + if(!ObjectUtils.isEmpty(dynamicColCountStr)) dynamicColCount = Integer.parseInt(dynamicColCountStr); + if(!ObjectUtils.isEmpty(fixedColCountStr)) fixedColCount = Integer.parseInt(fixedColCountStr); + + if(!ObjectUtils.isEmpty(maxRowCountStr)) maxRowCount = Integer.parseInt(maxRowCountStr); + Integer eleCount = 0; //元素数量,即元素列总数 + + for(ConfigReportFieldDO fieldDO : fieldList){ + String fieldType = fieldDO.getFieldType(); + if(FIELD_DYNAMIC.equals(fieldType)) + eleCount ++; + } + Integer rowCountOneSample = eleCount / dynamicColCount + (eleCount % dynamicColCount == 0 ? 0 : 1); //每个样品要占的行数 + Integer colCountOneSample = fixedColCount + dynamicColCount; //每个样品要占的列数 + Integer dataLength = dataList.size(); + Integer emptyRowCount = dataLength < maxRowCount ? 1 : 0; //空行数 + Integer allRowCount = 1 + dataLength + emptyRowCount + 1; //标题 + 样品数 + 空行 + if(rowCountOneSample > 1){ + allRowCount = (1 + dataLength + emptyRowCount + 9) * rowCountOneSample + emptyRowCount; //(标题 + 样品数 + 空行) * 但样品行数 + 末尾行 + } + List rowList = new ArrayList<>(Arrays.asList(new JSONObject[allRowCount + 1])); + + //处理表头 + JSONObject t = new JSONObject(); + int rowAssist = 1; + int colIndex = 1; + boolean lastObjFlag = true; + for(ConfigReportFieldDO fieldDO : fieldList){ + String fieldType = fieldDO.getFieldType(); + if(FIELD_FIXED.equals(fieldType)){ //这里只处理动态列。固定列在 addTitleToRowList 处理 + continue; + } + String fieldName = fieldDO.getFieldName(); + String colKey = parseNumToString(colIndex, 2); + t.put(colPrefix + colKey, fieldName); + lastObjFlag = true; + if(colIndex % colCountOneSample == 0){ + addTitleToRowList(nameCodeType, rowAssist, t, dataLength, emptyRowCount, rowList, fieldList); + t = new JSONObject(); + rowAssist++; + colIndex = fixedColCount; //第二组以后,从固定列数开始 + lastObjFlag = false; + } + colIndex++; + } + if(lastObjFlag){ + addTitleToRowList(nameCodeType, rowAssist, t, dataLength, emptyRowCount, rowList, fieldList); + } + //处理数据 + int dataIndex = 1; + for(ReportDocumentDataDO dataDO : dataList){ + String documentContent = dataDO.getDocumentContent(); + JSONObject s = JSONObject.parseObject(documentContent); + colIndex = fixedColCount + 1; + rowAssist = 1; + t = new JSONObject(); + for(ConfigReportFieldDO fieldDO : fieldList){ + String fieldType = fieldDO.getFieldType(); + if(FIELD_FIXED.equals(fieldType)){ //这里只处理动态列。固定列在 addDataToRowList 处理 + continue; + } + String field = fieldDO.getField(); + String colKey = parseNumToString(colIndex, 2); + JSONObject fieldObj = s.getJSONObject( field); + String fieldValue = ""; + if(fieldObj != null) + fieldValue = fieldObj.getString("fieldValue"); + t.put(colPrefix + colKey, fieldValue); + lastObjFlag = true; + if(colIndex % colCountOneSample == 0){ + addDataToRowList(nameCodeType, dataDO, rowAssist, t, dataLength, emptyRowCount, dataIndex, rowList, fieldList); + t = new JSONObject(); + rowAssist++; + colIndex = fixedColCount + 1; //第二组以后,从固定列数开始 + lastObjFlag = false; + } + colIndex++; + } + if(lastObjFlag){ + addDataToRowList(nameCodeType, dataDO, rowAssist, t, dataLength, emptyRowCount, dataIndex, rowList, fieldList); + } + dataIndex ++; + } + return rowList; + } + + /** + * @param nameCodeType: merge-合并, name-只显示名称, code-只显示编号, split-2列分开显示 + * + * */ + 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; + String colKey = parseNumToString(index, 2); + if(name_code_merge.equals(nameCodeType)){ + t.put(colPrefix + colKey, "样品名称及编号"); + rowList.set(rowIndex, t.clone()); + return; + } + if(name_code_name.equals(nameCodeType)){ + t.put(colPrefix + colKey, "样品名称"); + rowList.set(rowIndex, t.clone()); + return; + } + if(name_code_code.equals(nameCodeType)){ + t.put(colPrefix + colKey, "样品编号"); + rowList.set(rowIndex, t.clone()); + return; + } + for(ConfigReportFieldDO fieldDO : fieldList){ + String fieldName = fieldDO.getFieldName(); + String fieldType = fieldDO.getFieldType(); + if(FIELD_DYNAMIC.equals(fieldType)) + continue; + colKey = parseNumToString(index, 2); + t.put(colPrefix + colKey, fieldName); + index++; + } + rowList.set(rowIndex, t.clone()); + } + 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; //(标题 + 数据行 + 空行) + //处理固定列 + int index = 1; + //处理固定列 + String colKey = parseNumToString(index, 2); + if(name_code_merge.equals(nameCodeType)){ + String merge = dataDO.getSampleName() + " " + dataDO.getSampleCode(); + t.put(colPrefix + colKey, merge); + rowList.set(rowIndex, t.clone()); + return; + } + if(name_code_name.equals(nameCodeType)){ + t.put(colPrefix + colKey, dataDO.getSampleName()); + rowList.set(rowIndex, t.clone()); + return; + } + if(name_code_code.equals(nameCodeType)){ + t.put(colPrefix + colKey, dataDO.getSampleCode()); + rowList.set(rowIndex, t.clone()); + return; + } + for(ConfigReportFieldDO fieldDO : fieldList){ + String fieldName = fieldDO.getFieldName(); + String fieldType = fieldDO.getFieldType(); + String field = fieldDO.getField(); + if(FIELD_FIXED.equals(fieldType)){ + colKey = parseNumToString(index, 2); + String val = ""; + if(sampleNameKey.equals( field)) + val = dataDO.getSampleName(); + else if(sampleCodeKey.equals( field)) + val = dataDO.getSampleCode(); + t.put(colPrefix + colKey, val); + index++; + } + } + rowList.set(rowIndex, t.clone()); + } + private String parseNumToString(int num, int len){ + StringBuilder sb = new StringBuilder(); + for(int i = 0; i < len - String.valueOf(num).length(); i++){ + sb.append("0"); + } + return sb.append(num).toString(); + } @Override public CommonResult> listByMainDataId(Long mainDataId) { diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/service/ReportDocumentMainCorrelationService.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/service/ReportDocumentMainCorrelationService.java new file mode 100644 index 0000000..aac4c29 --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/service/ReportDocumentMainCorrelationService.java @@ -0,0 +1,68 @@ +package com.zt.plat.module.qms.business.reportdoc.service; + +import java.util.*; + +import com.zt.plat.module.qms.business.reportdoc.controller.vo.ReportDocumentMainCorrelationPageReqVO; +import com.zt.plat.module.qms.business.reportdoc.controller.vo.ReportDocumentMainCorrelationRespVO; +import com.zt.plat.module.qms.business.reportdoc.controller.vo.ReportDocumentMainCorrelationSaveReqVO; +import jakarta.validation.*; +import com.zt.plat.module.qms.business.reportdoc.dal.dataobject.ReportDocumentMainCorrelationDO; +import com.zt.plat.framework.common.pojo.PageResult; + +/** + * 检测报告关系表 Service 接口 + * + * @author 后台管理 + */ +public interface ReportDocumentMainCorrelationService { + + public static final String CorrelationType_entrust = "entrust"; + + List listByMainId(Long mainId); + + /** + * 创建检测报告关系表 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + ReportDocumentMainCorrelationRespVO createReportDocumentMainCorrelation(@Valid ReportDocumentMainCorrelationSaveReqVO createReqVO); + + /** + * 更新检测报告关系表 + * + * @param updateReqVO 更新信息 + */ + void updateReportDocumentMainCorrelation(@Valid ReportDocumentMainCorrelationSaveReqVO updateReqVO); + + /** + * 删除检测报告关系表 + * + * @param id 编号 + */ + void deleteReportDocumentMainCorrelation(Long id); + + /** + * 批量删除检测报告关系表 + * + * @param ids 编号 + */ + void deleteReportDocumentMainCorrelationListByIds(List ids); + + /** + * 获得检测报告关系表 + * + * @param id 编号 + * @return 检测报告关系表 + */ + ReportDocumentMainCorrelationDO getReportDocumentMainCorrelation(Long id); + + /** + * 获得检测报告关系表分页 + * + * @param pageReqVO 分页查询 + * @return 检测报告关系表分页 + */ + PageResult getReportDocumentMainCorrelationPage(ReportDocumentMainCorrelationPageReqVO pageReqVO); + +} \ 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/ReportDocumentMainCorrelationServiceImpl.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/service/ReportDocumentMainCorrelationServiceImpl.java new file mode 100644 index 0000000..6dbbef6 --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/service/ReportDocumentMainCorrelationServiceImpl.java @@ -0,0 +1,102 @@ +package com.zt.plat.module.qms.business.reportdoc.service; + +import cn.hutool.core.collection.CollUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.zt.plat.module.qms.business.reportdoc.controller.vo.ReportDocumentMainCorrelationPageReqVO; +import com.zt.plat.module.qms.business.reportdoc.controller.vo.ReportDocumentMainCorrelationRespVO; +import com.zt.plat.module.qms.business.reportdoc.controller.vo.ReportDocumentMainCorrelationSaveReqVO; +import org.springframework.stereotype.Service; +import jakarta.annotation.Resource; +import org.springframework.validation.annotation.Validated; + +import java.util.*; + +import com.zt.plat.module.qms.business.reportdoc.dal.dataobject.ReportDocumentMainCorrelationDO; +import com.zt.plat.framework.common.pojo.PageResult; +import com.zt.plat.framework.common.util.object.BeanUtils; + +import com.zt.plat.module.qms.business.reportdoc.dal.mapper.ReportDocumentMainCorrelationMapper; + +import static com.zt.plat.framework.common.exception.util.ServiceExceptionUtil.exception; +import static com.zt.plat.framework.common.util.collection.CollectionUtils.convertList; +import static com.zt.plat.module.qms.enums.ErrorCodeConstants.REPORT_DOCUMENT_MAIN_CORRELATION_NOT_EXISTS; + +/** + * 检测报告关系表 Service 实现类 + * + * @author 后台管理 + */ +@Service +@Validated +public class ReportDocumentMainCorrelationServiceImpl implements ReportDocumentMainCorrelationService { + + @Resource + private ReportDocumentMainCorrelationMapper reportDocumentMainCorrelationMapper; + + + @Override + public List listByMainId(Long mainId) { + LambdaQueryWrapper query = new LambdaQueryWrapper<>(); + query.eq(ReportDocumentMainCorrelationDO::getMainId, mainId); + query.orderByAsc(ReportDocumentMainCorrelationDO::getId); + return reportDocumentMainCorrelationMapper.selectList(query); + } + + @Override + public ReportDocumentMainCorrelationRespVO createReportDocumentMainCorrelation(ReportDocumentMainCorrelationSaveReqVO createReqVO) { + // 插入 + ReportDocumentMainCorrelationDO reportDocumentMainCorrelation = BeanUtils.toBean(createReqVO, ReportDocumentMainCorrelationDO.class); + reportDocumentMainCorrelationMapper.insert(reportDocumentMainCorrelation); + // 返回 + return BeanUtils.toBean(reportDocumentMainCorrelation, ReportDocumentMainCorrelationRespVO.class); + } + + @Override + public void updateReportDocumentMainCorrelation(ReportDocumentMainCorrelationSaveReqVO updateReqVO) { + // 校验存在 + validateReportDocumentMainCorrelationExists(updateReqVO.getId()); + // 更新 + ReportDocumentMainCorrelationDO updateObj = BeanUtils.toBean(updateReqVO, ReportDocumentMainCorrelationDO.class); + reportDocumentMainCorrelationMapper.updateById(updateObj); + } + + @Override + public void deleteReportDocumentMainCorrelation(Long id) { + // 校验存在 + validateReportDocumentMainCorrelationExists(id); + // 删除 + reportDocumentMainCorrelationMapper.deleteById(id); + } + + @Override + public void deleteReportDocumentMainCorrelationListByIds(List ids) { + // 校验存在 + validateReportDocumentMainCorrelationExists(ids); + // 删除 + reportDocumentMainCorrelationMapper.deleteByIds(ids); + } + + private void validateReportDocumentMainCorrelationExists(List ids) { + List list = reportDocumentMainCorrelationMapper.selectByIds(ids); + if (CollUtil.isEmpty(list) || list.size() != ids.size()) { + throw exception(REPORT_DOCUMENT_MAIN_CORRELATION_NOT_EXISTS); + } + } + + private void validateReportDocumentMainCorrelationExists(Long id) { + if (reportDocumentMainCorrelationMapper.selectById(id) == null) { + throw exception(REPORT_DOCUMENT_MAIN_CORRELATION_NOT_EXISTS); + } + } + + @Override + public ReportDocumentMainCorrelationDO getReportDocumentMainCorrelation(Long id) { + return reportDocumentMainCorrelationMapper.selectById(id); + } + + @Override + public PageResult getReportDocumentMainCorrelationPage(ReportDocumentMainCorrelationPageReqVO pageReqVO) { + return reportDocumentMainCorrelationMapper.selectPage(pageReqVO); + } + +} \ 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/ReportDocumentMainService.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/service/ReportDocumentMainService.java index debc753..f567ea3 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 @@ -2,6 +2,7 @@ package com.zt.plat.module.qms.business.reportdoc.service; import com.zt.plat.framework.common.pojo.CommonResult; import com.zt.plat.framework.common.pojo.PageResult; +import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessAssayReportDataDO; import com.zt.plat.module.qms.business.reportdoc.controller.vo.*; import com.zt.plat.module.qms.business.reportdoc.dal.dataobject.ReportDocumentMainDO; import jakarta.validation.Valid; @@ -15,8 +16,14 @@ import java.util.List; */ public interface ReportDocumentMainService { - //添加数据到报告 - CommonResult execAddData(ReportDocumentMainSaveReqVO reqVO); + //添加数据到报告-按样品 + CommonResult execAddDataBySample(ReportDocumentMainSaveReqVO reqVO); + + //添加数据到报告-按委托 + CommonResult execAddDataByEntrust(ReportDocumentMainSaveReqVO reqVO); + + //添加数据到报告-按表表数据 + CommonResult execAddByBusinessAssayReportData(List assayReportDataList, Long id); //移除数据 CommonResult execRemoveData(ReportDocumentMainSaveReqVO reqVO); 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 c64080b..e23203d 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 @@ -11,14 +11,14 @@ import com.zt.plat.module.bpm.api.task.BpmProcessInstanceApi; import com.zt.plat.module.bpm.api.task.dto.BpmProcessInstanceCreateReqDTO; import com.zt.plat.module.qms.api.task.BMPCallbackInterface; import com.zt.plat.module.qms.api.task.dto.QmsBpmDTO; +import com.zt.plat.module.qms.business.bus.controller.vo.BusinessAssayReportDataPageReqVO; import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessAssayReportDataDO; import com.zt.plat.module.qms.business.bus.service.BusinessAssayReportDataService; 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.ReportDocumentMainCorrelationDO; import com.zt.plat.module.qms.business.reportdoc.dal.mapper.ReportDocumentMainMapper; import com.zt.plat.module.qms.business.reportdoc.dal.dataobject.ReportDocumentMainDO; -import com.zt.plat.module.qms.core.constant.CommonConstant; -import com.zt.plat.module.qms.enums.ErrorCodeConstants; import com.zt.plat.module.qms.enums.QmsBpmConstant; import com.zt.plat.module.qms.enums.QmsCommonConstant; import jakarta.annotation.Resource; @@ -52,13 +52,14 @@ public class ReportDocumentMainServiceImpl implements ReportDocumentMainService, @Resource private BusinessAssayReportDataService businessAssayReportDataService; @Resource private ReportDocumentDataService reportDocumentDataService; @Resource private BpmProcessInstanceApi bpmProcessInstanceApi; + @Resource private ReportDocumentMainCorrelationService reportDocumentMainCorrelationService; /*** - * 增加报表数据 + * 增加报表数据(按样品) * 传入:报告id、 报表数据ids * */ @Override @Transactional(rollbackFor = Exception.class) - public CommonResult execAddData(ReportDocumentMainSaveReqVO reqVO) { + public CommonResult execAddDataBySample(ReportDocumentMainSaveReqVO reqVO) { Long id = reqVO.getId(); String businessAssayReportDataIds = reqVO.getBusinessAssayReportDataIds(); List addReportDataIdList = new ArrayList<>(); @@ -83,20 +84,65 @@ public class ReportDocumentMainServiceImpl implements ReportDocumentMainService, if(isExist) return error(REPORT_DOCUMENT_DATA_NOT_EXISTS.getCode(), "报表数据已在本报告使用,请勿重复添加"); List assayReportDataList = businessAssayReportDataService.listByIds(addReportDataIdList); + return execAddByBusinessAssayReportData(assayReportDataList, id); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public CommonResult execAddDataByEntrust(ReportDocumentMainSaveReqVO reqVO) { + Long id = reqVO.getId(); + String businessSampleEntrustRegistrationIds = reqVO.getBusinessSampleEntrustRegistrationIds(); + if(ObjectUtils.isEmpty(businessSampleEntrustRegistrationIds) || id == null) + return error(REPORT_DOCUMENT_DATA_NOT_EXISTS.getCode(), "缺少businessSampleEntrustRegistrationIds参数,请刷新后重试"); + List reportRelationList = reportDocumentMainCorrelationService.listByMainId(id); + //todo 判断修改的场景。处理方法:删除reportRelation、ReportDocumentData + List businessSampleEntrustRegistrationIdList = new ArrayList<>(); + String[] split = businessSampleEntrustRegistrationIds.split(","); + for (String s : split) { + Long aLong = Long.valueOf(s); + businessSampleEntrustRegistrationIdList.add(aLong); + } + BusinessAssayReportDataPageReqVO reportDataQueryVo = new BusinessAssayReportDataPageReqVO(); + reportDataQueryVo.setBusinessSampleEntrustRegistrationIdList(businessSampleEntrustRegistrationIdList); + reportDataQueryVo.setPageNo(1); + reportDataQueryVo.setPageSize(9999); + PageResult assayReportPage = businessAssayReportDataService.queryWaitingDataForReport( reportDataQueryVo); + List assayReportDataList = assayReportPage.getList(); + CommonResult ret = execAddByBusinessAssayReportData(assayReportDataList, id); + if(!ret.isSuccess()) + return ret; + //保存报告关系表 + for(Long businessSampleEntrustRegistrationId : businessSampleEntrustRegistrationIdList){ + ReportDocumentMainCorrelationSaveReqVO correlationEntity = new ReportDocumentMainCorrelationSaveReqVO(); + correlationEntity.setMainId( id); + correlationEntity.setCorrelationId(businessSampleEntrustRegistrationId); + correlationEntity.setCorrelationType(ReportDocumentMainCorrelationService.CorrelationType_entrust); + reportDocumentMainCorrelationService.createReportDocumentMainCorrelation(correlationEntity); + } + + return CommonResult.success("操作成功"); + } + + @Override + public CommonResult execAddByBusinessAssayReportData(List assayReportDataList, Long id){ + if(ObjectUtils.isEmpty(assayReportDataList)) + return error(REPORT_DOCUMENT_DATA_NOT_EXISTS.getCode(), "您选择的委托还没产生可编制报告的数据,请稍后重试!"); List insertList = new ArrayList<>(); for (BusinessAssayReportDataDO assayReportData : assayReportDataList) { ReportDocumentDataDO reportDocumentDataDO = new ReportDocumentDataDO(); reportDocumentDataDO.setMainId(id); reportDocumentDataDO.setSourceId(assayReportData.getId()); + reportDocumentDataDO.setSampleCode(assayReportData.getSampleCode()); + reportDocumentDataDO.setSampleName(assayReportData.getSampleName()); + reportDocumentDataDO.setBaseSampleName(assayReportData.getBaseSampleName()); reportDocumentDataDO.setDocumentContent(assayReportData.getAssayData()); insertList.add(reportDocumentDataDO); } if(!insertList.isEmpty()) reportDocumentDataService.insertBatch(insertList); - ReportDocumentMainDO reportDocumentMainDO = reportDocumentMainMapper.selectById(id); updateCommonField(reportDocumentMainDO); - + reportDocumentMainMapper.updateById(reportDocumentMainDO); return CommonResult.success("操作成功"); } diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/service/ReportDocumentTypeService.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/service/ReportDocumentTypeService.java index e39af3a..32d553e 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/service/ReportDocumentTypeService.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/service/ReportDocumentTypeService.java @@ -15,7 +15,6 @@ import java.util.List; */ public interface ReportDocumentTypeService { - /*保存数据*/ CommonResult save(@Valid ReportDocumentTypeSaveReqVO reqV); CommonResult saveWithNewVersion(@Valid ReportDocumentTypeSaveReqVO reqV); diff --git a/zt-module-qms/zt-module-qms-server/src/main/resources/com/zt/plat/module/qms/business/bus/dal/mapper/BusinessAssayReportDataMapper.xml b/zt-module-qms/zt-module-qms-server/src/main/resources/com/zt/plat/module/qms/business/bus/dal/mapper/BusinessAssayReportDataMapper.xml index 42e8513..69d4a66 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/resources/com/zt/plat/module/qms/business/bus/dal/mapper/BusinessAssayReportDataMapper.xml +++ b/zt-module-qms/zt-module-qms-server/src/main/resources/com/zt/plat/module/qms/business/bus/dal/mapper/BusinessAssayReportDataMapper.xml @@ -30,18 +30,31 @@ d.CREATOR_NAME as creatorName, d.DELETED as deleted, s.CREATE_TIME as baseSampleCreateTime, - s.SMP_NAME as sampleName + s.SMP_NAME as sampleName, + s.BSE_SMP_NAME as baseSampleName FROM T_BSN_ASY_RPT_DAT d inner join T_BSN_BSE_SMP s on d.BSN_BSE_SMP_ID = s.id - and d.CFG_RPT_TP_ID = #{param.configReportTypeId} - and NOT EXISTS ( - SELECT 1 - FROM T_RPT_DOC_DAT rd - LEFT JOIN T_RPT_DOC_MAIN m on rd.MAIN_ID = m.ID - WHERE rd.SRC_ID = d.id - and m.RPT_DOC_TP = #{param.configReportTypeId} - ); + + and d.CFG_RPT_TP_ID = #{param.configReportTypeId} + and NOT EXISTS ( + SELECT 1 + FROM T_RPT_DOC_DAT rd + LEFT JOIN T_RPT_DOC_MAIN m on rd.MAIN_ID = m.ID + WHERE rd.SRC_ID = d.id + and m.RPT_DOC_TP = #{param.configReportTypeId} + ); + + + d.BSN_BSE_SMP_ID in ( + select BSN_BSE_SMP_ID from T_BSN_SMP_ENTT_DTL d + where d.BSN_SMP_ENTT_REG_ID in ( + + #{item} + + ) + ) + and d.SMP_CD like '%' || #{param.sampleCode} || '%' diff --git a/zt-module-qms/zt-module-qms-server/src/main/resources/com/zt/plat/module/qms/business/bus/dal/mapper/BusinessSampleEntrustRegistrationMapper.xml b/zt-module-qms/zt-module-qms-server/src/main/resources/com/zt/plat/module/qms/business/bus/dal/mapper/BusinessSampleEntrustRegistrationMapper.xml index 5735b57..77fae2d 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/resources/com/zt/plat/module/qms/business/bus/dal/mapper/BusinessSampleEntrustRegistrationMapper.xml +++ b/zt-module-qms/zt-module-qms-server/src/main/resources/com/zt/plat/module/qms/business/bus/dal/mapper/BusinessSampleEntrustRegistrationMapper.xml @@ -9,4 +9,78 @@ 文档可见:https://www.iocoder.cn/MyBatis/x-plugins/ --> + + + + + \ No newline at end of file diff --git a/zt-module-qms/zt-module-qms-server/src/main/resources/com/zt/plat/module/qms/business/reportdoc/dal/mapper/ReportDocumentMainCorrelationMapper.xml b/zt-module-qms/zt-module-qms-server/src/main/resources/com/zt/plat/module/qms/business/reportdoc/dal/mapper/ReportDocumentMainCorrelationMapper.xml new file mode 100644 index 0000000..16bc338 --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/resources/com/zt/plat/module/qms/business/reportdoc/dal/mapper/ReportDocumentMainCorrelationMapper.xml @@ -0,0 +1,12 @@ + + + + + + + \ No newline at end of file