From 6353b71192091e72ba92bcb23f2b3b70edee9c90 Mon Sep 17 00:00:00 2001 From: wxr Date: Fri, 24 Oct 2025 18:09:11 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=93=E6=9E=9C=E5=88=A4=E5=AE=9A=E8=B0=83?= =?UTF-8?q?=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../module/qms/enums/QmsCommonConstant.java | 9 ++ .../admin/SampleAnalysisAuditController.java | 18 ++- .../vo/BatchAssessmentDataReportingReqVO.java | 13 ++ .../vo/BusinessAssayTaskDataPageReqVO.java | 2 +- .../vo/BusinessAssayTaskDataReqVO.java | 2 +- .../vo/BusinessAssayTaskDataRespVO.java | 4 +- .../vo/BusinessAssayTaskDataSaveReqVO.java | 4 +- .../BusinessSubSampleAssessmentPageReqVO.java | 2 +- .../vo/BusinessSubSampleAssessmentRespVO.java | 4 +- .../BusinessSubSampleAssessmentSaveReqVO.java | 4 +- .../vo/UnAssignTaskedSubSampleRespVO.java | 2 +- .../dataobject/BusinessAssayTaskDataDO.java | 2 +- .../BusinessSubSampleAssessmentDO.java | 7 +- .../mapper/BusinessAssayTaskDataMapper.java | 111 ++++++++++++------ .../BusinessSubSampleAnalysisGroupMapper.java | 9 ++ .../SampleEntrustGenSampleDataCmp.java | 5 +- .../flow/SampleDataSaveOrUpdateCmp.java | 10 ++ .../flow/SampleSubProcessUpdateCmp.java | 20 +++- .../bus/liteflow/slot/SampleFlowContext.java | 4 + .../BusinessAssayTaskDataServiceImpl.java | 6 + .../SampleAnalysisAuditServiceImpl.java | 50 +++++--- .../mapper/ConfigSubSampleMethodMapper.java | 7 ++ .../mapper/BusinessAssayTaskDataMapper.xml | 5 +- 23 files changed, 226 insertions(+), 74 deletions(-) create mode 100644 zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BatchAssessmentDataReportingReqVO.java diff --git a/zt-module-qms/zt-module-qms-api/src/main/java/com/zt/plat/module/qms/enums/QmsCommonConstant.java b/zt-module-qms/zt-module-qms-api/src/main/java/com/zt/plat/module/qms/enums/QmsCommonConstant.java index 8d26b97..83a9143 100644 --- a/zt-module-qms/zt-module-qms-api/src/main/java/com/zt/plat/module/qms/enums/QmsCommonConstant.java +++ b/zt-module-qms/zt-module-qms-api/src/main/java/com/zt/plat/module/qms/enums/QmsCommonConstant.java @@ -127,4 +127,13 @@ public interface QmsCommonConstant { /** 结束 **/ String FLOW_NODE_END = "flw_end"; + + /** 单杯 **/ + String ASSAY_TYPE_SINGLE_CUP = "single_cup"; + + /** 双杯 **/ + String ASSAY_TYPE_DOUBLE_CUP = "double_cup"; + + /** 平行 **/ + String ASSAY_TYPE_SINGLE_PARALLEL = "single_parallel"; } diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/admin/SampleAnalysisAuditController.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/admin/SampleAnalysisAuditController.java index 1f061c5..f118a96 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/admin/SampleAnalysisAuditController.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/admin/SampleAnalysisAuditController.java @@ -11,6 +11,8 @@ import com.alibaba.fastjson2.JSONObject; import com.zt.plat.framework.common.pojo.CommonResult; import com.zt.plat.module.qms.business.bus.controller.vo.*; import com.zt.plat.module.qms.business.bus.service.SampleAnalysisAuditService; +import com.zt.plat.module.qms.enums.QmsCommonConstant; + import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.annotation.Resource; @@ -52,9 +54,9 @@ public class SampleAnalysisAuditController { @GetMapping("/getResultAssessment") public CommonResult getResultAssessment(String assayType, Long sampleId, Long configAssayMethodId) { JSONObject result = null; - if ("平行".equals(assayType)) { + if (QmsCommonConstant.ASSAY_TYPE_SINGLE_PARALLEL.equals(assayType)) {//平行 result = sampleAnalysisAuditService.getParallelResultAssessment(sampleId, configAssayMethodId); - } else if ("双杯".equals(assayType)) { + } else if (QmsCommonConstant.ASSAY_TYPE_DOUBLE_CUP.equals(assayType)) {//双杯 result = sampleAnalysisAuditService.getDoubleCupResultAssessment(sampleId, configAssayMethodId); } return success(result); @@ -78,9 +80,9 @@ public class SampleAnalysisAuditController { @PostMapping("/modifyResultAssessment") public CommonResult modifyResultAssessment(@RequestBody ModifyResultAssessmentReqVO reqVO) { JSONObject result = null; - if ("平行".equals(reqVO.getAssayType())) { + if (QmsCommonConstant.ASSAY_TYPE_SINGLE_PARALLEL.equals(reqVO.getAssayType())) {//平行 result = sampleAnalysisAuditService.modifyParallelResultAssessment(reqVO.getSampleId(), reqVO.getConfigAssayMethodId(), reqVO.getSampleAssessmentId(), reqVO.getBusinessAssayProjectDataIds()); - } else if ("双杯".equals(reqVO.getAssayType())) { + } else if (QmsCommonConstant.ASSAY_TYPE_DOUBLE_CUP.equals(reqVO.getAssayType())) {//双杯 } return success(result); @@ -93,6 +95,14 @@ public class SampleAnalysisAuditController { return success("成功"); } + @PostMapping("/batchAssessmentDataReporting") + public CommonResult batchAssessmentDataReporting(@RequestBody BatchAssessmentDataReportingReqVO reqVO) { + for (Long businessSubSampleId : reqVO.getBusinessSubSampleIds()) { + sampleAnalysisAuditService.assessmentDataReporting(businessSubSampleId, reqVO.getConfigAssayMethodId()); + } + return success("成功"); + } + //重新创建复检委托 @PostMapping("/createReAnalysis") public CommonResult createReAnalysis(Long businessSubSampleId, Long configAssayMethodId) { diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BatchAssessmentDataReportingReqVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BatchAssessmentDataReportingReqVO.java new file mode 100644 index 0000000..3fe58b0 --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BatchAssessmentDataReportingReqVO.java @@ -0,0 +1,13 @@ +package com.zt.plat.module.qms.business.bus.controller.vo; + +import java.util.List; + +import lombok.Data; + +@Data +public class BatchAssessmentDataReportingReqVO { + + private List businessSubSampleIds; + + private Long configAssayMethodId; +} diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessAssayTaskDataPageReqVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessAssayTaskDataPageReqVO.java index c40dfc4..f635d7a 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessAssayTaskDataPageReqVO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessAssayTaskDataPageReqVO.java @@ -31,7 +31,7 @@ public class BusinessAssayTaskDataPageReqVO extends PageParam { @Schema(description = "任务类型,【字典】【jy_sample_task_type】常规、抽查...", example = "2") private String taskType; - @Schema(description = "分析类型,【字典】【jy_sample_assay_type】单杯、双杯、平行...", example = "2") + @Schema(description = "分析类型,【字典】【jy_sample_assay_type】单杯-single_cup、双杯-double_cup、平行-single_parallel...", example = "2") private String assayType; @Schema(description = "检测项目") diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessAssayTaskDataReqVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessAssayTaskDataReqVO.java index 136794e..eb5545f 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessAssayTaskDataReqVO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessAssayTaskDataReqVO.java @@ -31,7 +31,7 @@ public class BusinessAssayTaskDataReqVO { @Schema(description = "任务类型,【字典】【jy_sample_task_type】常规、抽查...", example = "2") private String taskType; - @Schema(description = "分析类型,【字典】【jy_sample_assay_type】单杯、双杯、平行...", example = "2") + @Schema(description = "分析类型,【字典】【jy_sample_assay_type】单杯-single_cup、双杯-double_cup、平行-single_parallel...", example = "2") private String assayType; @Schema(description = "检测项目") diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessAssayTaskDataRespVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessAssayTaskDataRespVO.java index a21aef0..bb92eed 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessAssayTaskDataRespVO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessAssayTaskDataRespVO.java @@ -40,8 +40,8 @@ public class BusinessAssayTaskDataRespVO { @ExcelProperty("任务类型,【字典】【jy_sample_task_type】常规、抽查...") private String taskType; - @Schema(description = "分析类型,【字典】【jy_sample_assay_type】单杯、双杯、平行...", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") - @ExcelProperty("分析类型,【字典】【jy_sample_assay_type】单杯、双杯、平行...") + @Schema(description = "分析类型,【字典】【jy_sample_assay_type】单杯-single_cup、双杯-double_cup、平行-single_parallel...", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") + @ExcelProperty("分析类型,【字典】【jy_sample_assay_type】单杯-single_cup、双杯-double_cup、平行-single_parallel...") private String assayType; @Schema(description = "检测项目", requiredMode = Schema.RequiredMode.REQUIRED) diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessAssayTaskDataSaveReqVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessAssayTaskDataSaveReqVO.java index e098073..bd7fa13 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessAssayTaskDataSaveReqVO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessAssayTaskDataSaveReqVO.java @@ -38,8 +38,8 @@ public class BusinessAssayTaskDataSaveReqVO { @NotEmpty(message = "任务类型,【字典】【jy_sample_task_type】常规、抽查...不能为空") private String taskType; - @Schema(description = "分析类型,【字典】【jy_sample_assay_type】单杯、双杯、平行...", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") - @NotEmpty(message = "分析类型,【字典】【jy_sample_assay_type】单杯、双杯、平行...不能为空") + @Schema(description = "分析类型,【字典】【jy_sample_assay_type】单杯-single_cup、双杯-double_cup、平行-single_parallel...", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") + @NotEmpty(message = "分析类型,【字典】【jy_sample_assay_type】单杯-single_cup、双杯-double_cup、平行-single_parallel...不能为空") private String assayType; @Schema(description = "检测项目", requiredMode = Schema.RequiredMode.REQUIRED) diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessSubSampleAssessmentPageReqVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessSubSampleAssessmentPageReqVO.java index 75d90db..881d5ee 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessSubSampleAssessmentPageReqVO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessSubSampleAssessmentPageReqVO.java @@ -28,7 +28,7 @@ public class BusinessSubSampleAssessmentPageReqVO extends PageParam { @Schema(description = "任务类型,【字典】【jy_sample_task_type】常规、抽查...", example = "2") private String taskType; - @Schema(description = "分析类型,【字典】【jy_sample_assay_type】单杯、双杯、平行...", example = "1") + @Schema(description = "分析类型,【字典】【jy_sample_assay_type】单杯-single_cup、双杯-double_cup、平行-single_parallel...", example = "1") private String assayType; @Schema(description = "数据类型,字典表【T_DIC_BSN】string-字符串,int-整数,decimal-小数,date-日期,datetime-时间", example = "1") diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessSubSampleAssessmentRespVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessSubSampleAssessmentRespVO.java index a9b3fcf..32f9772 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessSubSampleAssessmentRespVO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessSubSampleAssessmentRespVO.java @@ -36,8 +36,8 @@ public class BusinessSubSampleAssessmentRespVO { @ExcelProperty("任务类型,【字典】【jy_sample_task_type】常规、抽查...") private String taskType; - @Schema(description = "分析类型,【字典】【jy_sample_assay_type】单杯、双杯、平行...", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") - @ExcelProperty("分析类型,【字典】【jy_sample_assay_type】单杯、双杯、平行...") + @Schema(description = "分析类型,【字典】【jy_sample_assay_type】单杯-single_cup、双杯-double_cup、平行-single_parallel...", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @ExcelProperty("分析类型,【字典】【jy_sample_assay_type】单杯-single_cup、双杯-double_cup、平行-single_parallel...") private String assayType; @Schema(description = "数据类型,字典表【T_DIC_BSN】string-字符串,int-整数,decimal-小数,date-日期,datetime-时间", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessSubSampleAssessmentSaveReqVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessSubSampleAssessmentSaveReqVO.java index a231bb0..047d4f4 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessSubSampleAssessmentSaveReqVO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessSubSampleAssessmentSaveReqVO.java @@ -34,8 +34,8 @@ public class BusinessSubSampleAssessmentSaveReqVO { @NotEmpty(message = "任务类型,【字典】【jy_sample_task_type】常规、抽查...不能为空") private String taskType; - @Schema(description = "分析类型,【字典】【jy_sample_assay_type】单杯、双杯、平行...", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") - @NotEmpty(message = "分析类型,【字典】【jy_sample_assay_type】单杯、双杯、平行...不能为空") + @Schema(description = "分析类型,【字典】【jy_sample_assay_type】单杯-single_cup、双杯-double_cup、平行-single_parallel...", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @NotEmpty(message = "分析类型,【字典】【jy_sample_assay_type】单杯-single_cup、双杯-double_cup、平行-single_parallel...不能为空") private String assayType; @Schema(description = "数据类型,字典表【T_DIC_BSN】string-字符串,int-整数,decimal-小数,date-日期,datetime-时间", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/UnAssignTaskedSubSampleRespVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/UnAssignTaskedSubSampleRespVO.java index bc37318..99f408d 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/UnAssignTaskedSubSampleRespVO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/UnAssignTaskedSubSampleRespVO.java @@ -35,7 +35,7 @@ public class UnAssignTaskedSubSampleRespVO implements Serializable { @Schema(description = "检测方法配置ID", example = "9130") private Long configAssayMethodId; - @Schema(description = "分析类型,【字典】【jy_sample_assay_type】单杯、双杯、平行...", example = "2") + @Schema(description = "分析类型,【字典】【jy_sample_assay_type】单杯-single_cup、双杯-double_cup、平行-single_parallel...", example = "2") private String assayType; @Schema(description = "检测项目") diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/dal/dataobject/BusinessAssayTaskDataDO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/dal/dataobject/BusinessAssayTaskDataDO.java index 97e156d..2b8c07a 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/dal/dataobject/BusinessAssayTaskDataDO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/dal/dataobject/BusinessAssayTaskDataDO.java @@ -65,7 +65,7 @@ public class BusinessAssayTaskDataDO extends BusinessBaseDO { @TableField("TSK_TP") private String taskType; /** - * 分析类型,【字典】【jy_sample_assay_type】单杯、双杯、平行... + * 分析类型,【字典】【jy_sample_assay_type】单杯-single_cup、双杯-double_cup、平行-single_parallel... */ @TableField("ASY_TP") private String assayType; diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/dal/dataobject/BusinessSubSampleAssessmentDO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/dal/dataobject/BusinessSubSampleAssessmentDO.java index b5ad86e..fa3829d 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/dal/dataobject/BusinessSubSampleAssessmentDO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/dal/dataobject/BusinessSubSampleAssessmentDO.java @@ -33,6 +33,11 @@ public class BusinessSubSampleAssessmentDO extends BusinessBaseDO { @TableId(type = IdType.ASSIGN_ID) private Long id; /** + * 样品分样ID + */ + @TableField("BSN_SB_PRN_SMP_ID") + private Long businessSubParentSampleId; + /** * 分样子样ID */ @TableField("BSN_SB_SMP_ID") @@ -58,7 +63,7 @@ public class BusinessSubSampleAssessmentDO extends BusinessBaseDO { @TableField("TSK_TP") private String taskType; /** - * 分析类型,【字典】【jy_sample_assay_type】单杯、双杯、平行... + * 分析类型,【字典】【jy_sample_assay_type】单杯-single_cup、双杯-double_cup、平行-single_parallel... */ @TableField("ASY_TP") private String assayType; diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/dal/mapper/BusinessAssayTaskDataMapper.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/dal/mapper/BusinessAssayTaskDataMapper.java index 686963b..c016b32 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/dal/mapper/BusinessAssayTaskDataMapper.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/dal/mapper/BusinessAssayTaskDataMapper.java @@ -20,8 +20,11 @@ import com.zt.plat.module.qms.business.config.dal.dataobject.ConfigAssayMethodDO import com.zt.plat.module.qms.enums.QmsCommonConstant; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.ObjectUtil; import com.zt.plat.framework.mybatis.core.mapper.BaseMapperX; + +import org.apache.commons.lang3.StringUtils; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -106,45 +109,68 @@ public interface BusinessAssayTaskDataMapper extends BaseMapperX selectResultAssessmentList(BusinessAssayTaskDataReqVO reqVO) { - return selectJoinList(BusinessAssayTaskDataExtendRespVO.class, new MPJLambdaWrapperX() - .leftJoin(ConfigAssayMethodDO.class, ConfigAssayMethodDO::getId, BusinessAssayTaskDataDO::getConfigAssayMethodId) + MPJLambdaWrapper mpjLambdaWrapper = new MPJLambdaWrapper() + .leftJoin(ConfigAssayMethodDO.class, ConfigAssayMethodDO::getId, BusinessAssayTaskDataDO::getConfigAssayMethodId) .leftJoin(BusinessSubSampleDO.class, BusinessSubSampleDO::getId, BusinessAssayTaskDataDO::getBusinessSubSampleId) -// .leftJoin(BusinessSubSampleAnalysisGroupDO.class, on -> on -// .eq(BusinessSubSampleAnalysisGroupDO::getBusinessSubSampleId, BusinessAssayTaskDataDO::getBusinessSubSampleId).eq(BusinessSubSampleAnalysisGroupDO::getAssayDepartmentId, 103)) + .leftJoin(BusinessSubSampleAnalysisGroupDO.class, on -> on + .eq(BusinessSubSampleAnalysisGroupDO::getBusinessSubSampleId, BusinessAssayTaskDataDO::getBusinessSubSampleId) + .eq(BusinessSubSampleAnalysisGroupDO::getAssayDepartmentId, BusinessAssayTaskDataDO::getAssayDepartmentId)) .selectAll(BusinessAssayTaskDataDO.class) .selectAs(ConfigAssayMethodDO::getName, BusinessAssayTaskDataExtendRespVO::getConfigAssayMethodName) .selectAs(BusinessSubSampleDO::getSampleName, BusinessAssayTaskDataExtendRespVO::getSampleName) .selectAs(BusinessSubSampleDO::getSampleCode, BusinessAssayTaskDataExtendRespVO::getSampleCode) .selectAs(BusinessSubSampleDO::getSampleAssayCode, BusinessAssayTaskDataExtendRespVO::getSampleAssayCode) -// .selectAs(BusinessSubSampleAnalysisGroupDO::getSampleReceiver, BusinessAssayTaskDataExtendRespVO::getSampleReceiver) -// .selectAs(BusinessSubSampleAnalysisGroupDO::getSampleReceiveTime, BusinessAssayTaskDataExtendRespVO::getSampleReceiveTime) - .eq(BusinessAssayTaskDataDO::getConfigAssayMethodId, reqVO.getConfigAssayMethodId()) - .eqIfPresent(BusinessAssayTaskDataDO::getBusinessBaseSampleId, reqVO.getBusinessBaseSampleId()) - .eqIfPresent(BusinessAssayTaskDataDO::getBusinessSubParentSampleId, reqVO.getBusinessSubParentSampleId()) - .eqIfPresent(BusinessAssayTaskDataDO::getBusinessSubSampleId, reqVO.getBusinessSubSampleId()) - .eqIfPresent(BusinessAssayTaskDataDO::getConfigAssayMethodId, reqVO.getConfigAssayMethodId()) - .eqIfPresent(BusinessAssayTaskDataDO::getBusinessAssayTaskId, reqVO.getBusinessAssayTaskId()) - .eqIfPresent(BusinessAssayTaskDataDO::getTaskType, reqVO.getTaskType()) - .eqIfPresent(BusinessAssayTaskDataDO::getAssayType, reqVO.getAssayType()) - .eqIfPresent(BusinessAssayTaskDataDO::getAssayProject, reqVO.getAssayProject()) - .eqIfPresent(BusinessAssayTaskDataDO::getAssayDepartmentId, reqVO.getAssayDepartmentId()) - .likeIfPresent(BusinessAssayTaskDataDO::getAssayDepartmentName, reqVO.getAssayDepartmentName()) - .eqIfPresent(BusinessAssayTaskDataDO::getAssayOperator, reqVO.getAssayOperator()) - .betweenIfPresent(BusinessAssayTaskDataDO::getAssignTaskTime, reqVO.getAssignTaskTime()) - .eqIfPresent(BusinessAssayTaskDataDO::getIsAssignTasked, reqVO.getIsAssignTasked()) - .eqIfPresent(BusinessAssayTaskDataDO::getIsReported, reqVO.getIsReported()) - .eqIfPresent(BusinessAssayTaskDataDO::getReporter, reqVO.getReporter()) - .betweenIfPresent(BusinessAssayTaskDataDO::getReportTime, reqVO.getReportTime()) - .eqIfPresent(BusinessAssayTaskDataDO::getConfigSampleFlowId, reqVO.getConfigSampleFlowId()) - .eqIfPresent(BusinessAssayTaskDataDO::getSampleFlowNodeKey, reqVO.getSampleFlowNodeKey()) - .betweenIfPresent(BusinessAssayTaskDataDO::getSampleFlowNodeTime, reqVO.getSampleFlowNodeTime()) - .eqIfPresent(BusinessAssayTaskDataDO::getAnalysisCount, reqVO.getAnalysisCount()) - .eqIfPresent(BusinessAssayTaskDataDO::getUpdateCount, reqVO.getUpdateCount()) - .eqIfPresent(BusinessAssayTaskDataDO::getSystemDepartmentCode, reqVO.getSystemDepartmentCode()) - .betweenIfPresent(BusinessAssayTaskDataDO::getCreateTime, reqVO.getCreateTime()) - .eqIfPresent(BusinessAssayTaskDataDO::getRemark, reqVO.getRemark()) - .orderByAsc(BusinessAssayTaskDataDO::getBusinessSubSampleId) - .orderByAsc(BusinessAssayTaskDataDO::getReportTime)); + .selectAs(BusinessSubSampleAnalysisGroupDO::getSampleReceiver, BusinessAssayTaskDataExtendRespVO::getSampleReceiver) + .selectAs(BusinessSubSampleAnalysisGroupDO::getSampleReceiveTime, BusinessAssayTaskDataExtendRespVO::getSampleReceiveTime); + if (ObjectUtil.isNotEmpty(reqVO.getBusinessBaseSampleId())) { + mpjLambdaWrapper.eq(BusinessAssayTaskDataDO::getBusinessBaseSampleId, reqVO.getBusinessBaseSampleId()); + } + if (ObjectUtil.isNotEmpty(reqVO.getBusinessSubParentSampleId())) { + mpjLambdaWrapper.eq(BusinessAssayTaskDataDO::getBusinessSubParentSampleId, reqVO.getBusinessSubParentSampleId()); + } + if (ObjectUtil.isNotEmpty(reqVO.getConfigAssayMethodId())) { + mpjLambdaWrapper.eq(BusinessAssayTaskDataDO::getConfigAssayMethodId, reqVO.getConfigAssayMethodId()); + } + mpjLambdaWrapper.ne(BusinessSubSampleAnalysisGroupDO::getSampleStatus, "待收样"); + mpjLambdaWrapper.orderByAsc(BusinessAssayTaskDataDO::getBusinessSubSampleId).orderByAsc(BusinessAssayTaskDataDO::getReportTime); + + return selectJoinList(BusinessAssayTaskDataExtendRespVO.class, mpjLambdaWrapper); + + +// return selectJoinList(BusinessAssayTaskDataExtendRespVO.class, new MPJLambdaWrapperX() +// .leftJoin(ConfigAssayMethodDO.class, ConfigAssayMethodDO::getId, BusinessAssayTaskDataDO::getConfigAssayMethodId) +// .leftJoin(BusinessSubSampleDO.class, BusinessSubSampleDO::getId, BusinessAssayTaskDataDO::getBusinessSubSampleId) +// .selectAll(BusinessAssayTaskDataDO.class) +// .selectAs(ConfigAssayMethodDO::getName, BusinessAssayTaskDataExtendRespVO::getConfigAssayMethodName) +// .selectAs(BusinessSubSampleDO::getSampleName, BusinessAssayTaskDataExtendRespVO::getSampleName) +// .selectAs(BusinessSubSampleDO::getSampleCode, BusinessAssayTaskDataExtendRespVO::getSampleCode) +// .selectAs(BusinessSubSampleDO::getSampleAssayCode, BusinessAssayTaskDataExtendRespVO::getSampleAssayCode) +// .eqIfPresent(BusinessAssayTaskDataDO::getBusinessBaseSampleId, reqVO.getBusinessBaseSampleId()) +// .eqIfPresent(BusinessAssayTaskDataDO::getBusinessSubParentSampleId, reqVO.getBusinessSubParentSampleId()) +// .eqIfPresent(BusinessAssayTaskDataDO::getBusinessSubSampleId, reqVO.getBusinessSubSampleId()) +// .eqIfPresent(BusinessAssayTaskDataDO::getConfigAssayMethodId, reqVO.getConfigAssayMethodId()) +// .eqIfPresent(BusinessAssayTaskDataDO::getBusinessAssayTaskId, reqVO.getBusinessAssayTaskId()) +// .eqIfPresent(BusinessAssayTaskDataDO::getTaskType, reqVO.getTaskType()) +// .eqIfPresent(BusinessAssayTaskDataDO::getAssayType, reqVO.getAssayType()) +// .eqIfPresent(BusinessAssayTaskDataDO::getAssayProject, reqVO.getAssayProject()) +// .eqIfPresent(BusinessAssayTaskDataDO::getAssayDepartmentId, reqVO.getAssayDepartmentId()) +// .likeIfPresent(BusinessAssayTaskDataDO::getAssayDepartmentName, reqVO.getAssayDepartmentName()) +// .eqIfPresent(BusinessAssayTaskDataDO::getAssayOperator, reqVO.getAssayOperator()) +// .betweenIfPresent(BusinessAssayTaskDataDO::getAssignTaskTime, reqVO.getAssignTaskTime()) +// .eqIfPresent(BusinessAssayTaskDataDO::getIsAssignTasked, reqVO.getIsAssignTasked()) +// .eqIfPresent(BusinessAssayTaskDataDO::getIsReported, reqVO.getIsReported()) +// .eqIfPresent(BusinessAssayTaskDataDO::getReporter, reqVO.getReporter()) +// .betweenIfPresent(BusinessAssayTaskDataDO::getReportTime, reqVO.getReportTime()) +// .eqIfPresent(BusinessAssayTaskDataDO::getConfigSampleFlowId, reqVO.getConfigSampleFlowId()) +// .eqIfPresent(BusinessAssayTaskDataDO::getSampleFlowNodeKey, reqVO.getSampleFlowNodeKey()) +// .betweenIfPresent(BusinessAssayTaskDataDO::getSampleFlowNodeTime, reqVO.getSampleFlowNodeTime()) +// .eqIfPresent(BusinessAssayTaskDataDO::getAnalysisCount, reqVO.getAnalysisCount()) +// .eqIfPresent(BusinessAssayTaskDataDO::getUpdateCount, reqVO.getUpdateCount()) +// .eqIfPresent(BusinessAssayTaskDataDO::getSystemDepartmentCode, reqVO.getSystemDepartmentCode()) +// .betweenIfPresent(BusinessAssayTaskDataDO::getCreateTime, reqVO.getCreateTime()) +// .eqIfPresent(BusinessAssayTaskDataDO::getRemark, reqVO.getRemark()) +// .orderByAsc(BusinessAssayTaskDataDO::getBusinessSubSampleId) +// .orderByAsc(BusinessAssayTaskDataDO::getReportTime)); } /** @@ -223,6 +249,25 @@ public interface BusinessAssayTaskDataMapper extends BaseMapperX selectDoubleCupIsReportedList(List excludeIds, Long businessSubParentSampleId, Long configAssayMethodId, Integer isReported) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapperX(); + if (CollUtil.isNotEmpty(excludeIds)) { + queryWrapper.notIn(BusinessAssayTaskDataDO::getId, excludeIds); + } + queryWrapper.eq(BusinessAssayTaskDataDO::getBusinessSubParentSampleId, businessSubParentSampleId) + .eq(BusinessAssayTaskDataDO::getConfigAssayMethodId, configAssayMethodId) + .eq(BusinessAssayTaskDataDO::getIsReported, isReported); + return selectList(queryWrapper); + } /** * 查询最大分析次数的检测任务数据 diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/dal/mapper/BusinessSubSampleAnalysisGroupMapper.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/dal/mapper/BusinessSubSampleAnalysisGroupMapper.java index 82fa8f3..af60761 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/dal/mapper/BusinessSubSampleAnalysisGroupMapper.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/dal/mapper/BusinessSubSampleAnalysisGroupMapper.java @@ -6,6 +6,9 @@ import com.zt.plat.module.qms.business.bus.controller.vo.*; import com.zt.plat.module.qms.business.bus.controller.vo.BusinessSubSampleAnalysisGroupPageReqVO; import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessSubSampleAnalysisGroupDO; import com.zt.plat.framework.mybatis.core.mapper.BaseMapperX; + +import java.util.List; + import org.apache.ibatis.annotations.Mapper; /** @@ -32,5 +35,11 @@ public interface BusinessSubSampleAnalysisGroupMapper extends BaseMapperX selectByBusinessSubSampleIdsAndAssayDepartmentId(List businessSubSampleIds, Long assayDepartmentId) { + return selectList(new LambdaQueryWrapperX() + .in(BusinessSubSampleAnalysisGroupDO::getBusinessSubSampleId, businessSubSampleIds) + .eq(BusinessSubSampleAnalysisGroupDO::getAssayDepartmentId, assayDepartmentId)); + } } \ 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/liteflow/sample/entrust/SampleEntrustGenSampleDataCmp.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/liteflow/sample/entrust/SampleEntrustGenSampleDataCmp.java index eae2876..c2b2772 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/liteflow/sample/entrust/SampleEntrustGenSampleDataCmp.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/liteflow/sample/entrust/SampleEntrustGenSampleDataCmp.java @@ -295,6 +295,7 @@ public class SampleEntrustGenSampleDataCmp extends NodeComponent { for (ConfigSampleReportDO configSampleReport : configSampleReportDOList) { BusinessAssayReportDataDO businessAssayReportDataDO = new BusinessAssayReportDataDO(); businessAssayReportDataDO.setBusinessBaseSampleId(configBaseSampleId); + businessAssayReportDataDO.setDataSource(configSampleReport.getDataSource()); businessAssayReportDataDO.setConfigReportTypeId(configSampleReport.getConfigReportTypeId()); businessAssayReportDataDO.setConfigSampleReportId(configSampleReport.getId()); businessAssayReportDataDO.setSampleCode(businessBaseSampleDO.getSampleCode()); @@ -365,7 +366,7 @@ public class SampleEntrustGenSampleDataCmp extends NodeComponent { //查询子样对应的分析方法 ConfigSubSampleMethodDO configSubSampleMethodDO = configSubSampleMethodList.stream().filter(f -> f.getIsDefaultUse().equals(QmsCommonConstant.YES) && f.getConfigAssayMethodId().equals(configAssayMethodId) && f.getConfigSubSampleId().equals(configSubSample.getId())).findFirst().orElse(null); - businessSubSampleAnalysisGroupDO = businessSubSampleAnalysisGroupDOList.stream().filter(f -> f.getAssayDepartmentId().equals(configAssayMethodDO.getAssayDepartmentId())).findFirst().orElse(null); + businessSubSampleAnalysisGroupDO = businessSubSampleAnalysisGroupDOList.stream().filter(f -> f.getBusinessSubSampleId().equals(businessSubSampleDO.getId()) && f.getAssayDepartmentId().equals(configAssayMethodDO.getAssayDepartmentId())).findFirst().orElse(null); if (businessSubSampleAnalysisGroupDO == null) { businessSubSampleAnalysisGroupDO = new BusinessSubSampleAnalysisGroupDO(); businessSubSampleAnalysisGroupDO.setId(IdWorker.getId()); @@ -383,7 +384,7 @@ public class SampleEntrustGenSampleDataCmp extends NodeComponent { BusinessAssayTaskDataDO businessAssayTaskDataDO = null; //根据任务数判断是平行还是 - String assayType = configSubSampleMethodDO.getTaskCount() > 1 ? "平行" : "单杯"; + String assayType = configSubSampleMethodDO.getTaskCount() > 1 ? QmsCommonConstant.ASSAY_TYPE_SINGLE_PARALLEL : QmsCommonConstant.ASSAY_TYPE_SINGLE_CUP; //根据任务数循环 for (int i = 0; i < configSubSampleMethodDO.getTaskCount(); i++) { diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/liteflow/sample/flow/SampleDataSaveOrUpdateCmp.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/liteflow/sample/flow/SampleDataSaveOrUpdateCmp.java index 5617663..f0401cc 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/liteflow/sample/flow/SampleDataSaveOrUpdateCmp.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/liteflow/sample/flow/SampleDataSaveOrUpdateCmp.java @@ -12,6 +12,7 @@ import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessHandoverRecord import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessSampleHandoverDO; import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessSampleHandoverDetailDO; import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessSubParentSampleDO; +import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessSubSampleAnalysisGroupDO; import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessSubSampleDO; import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessAssayTaskDataMapper; import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessBaseSampleMapper; @@ -19,6 +20,7 @@ import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessHandoverRecordSubM import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessSampleHandoverDetailMapper; import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessSampleHandoverMapper; import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessSubParentSampleMapper; +import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessSubSampleAnalysisGroupMapper; import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessSubSampleMapper; import com.zt.plat.module.qms.business.bus.liteflow.slot.SampleFlowContext; import jakarta.annotation.Resource; @@ -38,6 +40,9 @@ public class SampleDataSaveOrUpdateCmp extends NodeComponent { @Resource private BusinessAssayTaskDataMapper businessAssayTaskDataMapper; + @Resource + private BusinessSubSampleAnalysisGroupMapper businessSubSampleAnalysisGroupMapper; + @Resource private BusinessHandoverRecordSubMapper businessHandoverRecordSubMapper; @@ -70,6 +75,11 @@ public class SampleDataSaveOrUpdateCmp extends NodeComponent { if (CollUtil.isNotEmpty(businessAssayTaskDataList)) { businessAssayTaskDataMapper.updateBatch(businessAssayTaskDataList); } + //子样分析班组 + List businessSubSampleAnalysisGroupList = sampleFlowContext.getBusinessSubSampleAnalysisGroupList(); + if (CollUtil.isNotEmpty(businessSubSampleAnalysisGroupList)) { + businessSubSampleAnalysisGroupMapper.updateBatch(businessSubSampleAnalysisGroupList); + } //交接记录 List busHandoverRecordSubList = sampleFlowContext.getBusinessHandoverRecordSubList(); if (CollUtil.isNotEmpty(busHandoverRecordSubList)) { diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/liteflow/sample/flow/SampleSubProcessUpdateCmp.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/liteflow/sample/flow/SampleSubProcessUpdateCmp.java index 3e76076..073c9cb 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/liteflow/sample/flow/SampleSubProcessUpdateCmp.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/liteflow/sample/flow/SampleSubProcessUpdateCmp.java @@ -13,10 +13,13 @@ import com.ql.util.express.ExpressRunner; import com.yomahub.liteflow.annotation.LiteflowComponent; import com.yomahub.liteflow.core.NodeComponent; import com.zt.plat.framework.common.exception.ServiceException; +import com.zt.plat.framework.security.core.LoginUser; import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessAssayTaskDataDO; import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessHandoverRecordSubDO; +import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessSubSampleAnalysisGroupDO; import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessSubSampleDO; import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessHandoverRecordSubMapper; +import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessSubSampleAnalysisGroupMapper; import com.zt.plat.module.qms.business.bus.liteflow.slot.SampleFlowContext; import com.zt.plat.module.qms.business.config.dal.dataobject.ConfigRuleDO; import com.zt.plat.module.qms.business.config.dal.dataobject.ConfigSampleFlowDO; @@ -47,13 +50,16 @@ public class SampleSubProcessUpdateCmp extends NodeComponent { @Resource private BusinessHandoverRecordSubMapper businessHandoverRecordSubMapper; + + @Resource + private BusinessSubSampleAnalysisGroupMapper businessSubSampleAnalysisGroupMapper; @Override public void process() throws Exception { SampleFlowContext sampleFlowContext = this.getContextBean(SampleFlowContext.class); String currentSampleFlowKey = sampleFlowContext.getCurrentSampleFlowKey(); -// LoginUser loginUser = sampleFlowContext.getLoginUser(); -// String loginRealname = sampleFlowContext.getLoginRealname(); + LoginUser loginUser = sampleFlowContext.getLoginUser(); + String loginRealname = sampleFlowContext.getLoginRealname(); LocalDateTime currentDateTime = sampleFlowContext.getCurrentDateTime(); List sampleIdList = sampleFlowContext.getSampleIdList(); List busSubCsampleList = sampleFlowContext.getBusinessSubSampleList(); @@ -112,6 +118,16 @@ public class SampleSubProcessUpdateCmp extends NodeComponent { } } + //如果是班组收样,需要更新分析班组表 + if (QmsCommonConstant.FLOW_NODE_TEAM_RECEIVE.equals(currentSampleFlowKey)) { + List businessSubSampleAnalysisGroupDOList = businessSubSampleAnalysisGroupMapper.selectByBusinessSubSampleIdsAndAssayDepartmentId(sampleIdList, loginUser.getVisitDeptId()); + for (BusinessSubSampleAnalysisGroupDO businessSubSampleAnalysisGroupDO : businessSubSampleAnalysisGroupDOList) { + businessSubSampleAnalysisGroupDO.setSampleReceiveTime(currentDateTime); + businessSubSampleAnalysisGroupDO.setSampleReceiver(loginRealname); + businessSubSampleAnalysisGroupDO.setSampleStatus("已收样"); + } + sampleFlowContext.setBusinessSubSampleAnalysisGroupList(businessSubSampleAnalysisGroupDOList); + } } } diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/liteflow/slot/SampleFlowContext.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/liteflow/slot/SampleFlowContext.java index 6ab91d4..fdc8f35 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/liteflow/slot/SampleFlowContext.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/liteflow/slot/SampleFlowContext.java @@ -11,6 +11,7 @@ import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessHandoverRecord import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessSampleHandoverDO; import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessSampleHandoverDetailDO; import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessSubParentSampleDO; +import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessSubSampleAnalysisGroupDO; import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessSubSampleDO; import com.zt.plat.module.qms.business.bus.liteflow.param.SampleFlowInfo; import com.zt.plat.module.qms.business.config.dal.dataobject.ConfigSampleHandoverDO; @@ -90,6 +91,9 @@ public class SampleFlowContext { /** 分样子样任务信息 **/ private List businessAssayTaskDataList; + /** 分样子样分析班组 **/ + private List businessSubSampleAnalysisGroupList; + /** 交接记录信息 **/ private List businessHandoverRecordSubList; diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/service/BusinessAssayTaskDataServiceImpl.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/service/BusinessAssayTaskDataServiceImpl.java index 8046955..9af6928 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/service/BusinessAssayTaskDataServiceImpl.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/service/BusinessAssayTaskDataServiceImpl.java @@ -14,6 +14,8 @@ import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessAssayTaskDataMappe import com.zt.plat.framework.common.pojo.PageResult; import com.zt.plat.framework.common.pojo.PageParam; import com.zt.plat.framework.common.util.object.BeanUtils; +import com.zt.plat.framework.security.core.LoginUser; +import com.zt.plat.framework.security.core.util.SecurityFrameworkUtils; import static com.zt.plat.framework.common.exception.util.ServiceExceptionUtil.exception; import static com.zt.plat.framework.common.util.collection.CollectionUtils.convertList; @@ -86,6 +88,10 @@ public class BusinessAssayTaskDataServiceImpl implements BusinessAssayTaskDataSe @Override public List getUnAssayTaskGroupList(BusinessAssayTaskDataReqVO reqVO) { + //当前登录用户 + LoginUser loginUser = SecurityFrameworkUtils.getLoginUser(); + //设置当前登录用户的部门id + reqVO.setAssayDepartmentId(loginUser.getVisitDeptId()); return businessAssayTaskDataMapper.selectUnAssayTaskGroupList(reqVO); } diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/service/SampleAnalysisAuditServiceImpl.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/service/SampleAnalysisAuditServiceImpl.java index eb8c42c..6b60e81 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/service/SampleAnalysisAuditServiceImpl.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/service/SampleAnalysisAuditServiceImpl.java @@ -49,6 +49,7 @@ import com.zt.plat.module.qms.business.config.dal.dataobject.ConfigAssayMethodPr import com.zt.plat.module.qms.business.config.dal.dataobject.ConfigReportFieldDO; import com.zt.plat.module.qms.business.config.dal.dataobject.ConfigRuleDO; import com.zt.plat.module.qms.business.config.dal.dataobject.ConfigSubSampleDO; +import com.zt.plat.module.qms.business.config.dal.dataobject.ConfigSubSampleMethodDO; import com.zt.plat.module.qms.business.config.dal.mapper.ConfigAssayMethodProjectAssessmentMapper; import com.zt.plat.module.qms.business.config.dal.mapper.ConfigAssayMethodProjectMapper; import com.zt.plat.module.qms.business.config.dal.mapper.ConfigProjectMapper; @@ -57,6 +58,7 @@ import com.zt.plat.module.qms.business.config.dal.mapper.ConfigReportTypeMapper; import com.zt.plat.module.qms.business.config.dal.mapper.ConfigRuleMapper; import com.zt.plat.module.qms.business.config.dal.mapper.ConfigSampleReportMapper; import com.zt.plat.module.qms.business.config.dal.mapper.ConfigSubSampleMapper; +import com.zt.plat.module.qms.business.config.dal.mapper.ConfigSubSampleMethodMapper; import com.zt.plat.module.qms.core.qlexpress.cmp.AllowanceCalculatorComponent; import com.zt.plat.module.qms.enums.QmsCommonConstant; @@ -107,6 +109,9 @@ public class SampleAnalysisAuditServiceImpl implements SampleAnalysisAuditServic @Resource private ConfigAssayMethodProjectMapper configAssayMethodProjectMapper; + + @Resource + private ConfigSubSampleMethodMapper configSubSampleMethodMapper; @Override public JSONObject getSampleResultAssessmentList(Long configAssayMethodId, String assessmentStatus) { @@ -130,6 +135,7 @@ public class SampleAnalysisAuditServiceImpl implements SampleAnalysisAuditServic BusinessAssayTaskDataReqVO search = new BusinessAssayTaskDataReqVO(); search.setConfigAssayMethodId(configAssayMethodId); List resultAssessmentList = businessAssayTaskDataMapper.selectResultAssessmentList(search); + for (BusinessAssayTaskDataExtendRespVO businessAssayTaskDataExtendRespVO : resultAssessmentList) { Map businessAssayTaskDataMap = BeanUtil.beanToMap(businessAssayTaskDataExtendRespVO); Map businessAssayTaskDataAssessmentMap = BeanUtil.copyProperties(businessAssayTaskDataMap, Map.class); @@ -145,7 +151,7 @@ public class SampleAnalysisAuditServiceImpl implements SampleAnalysisAuditServic ).findFirst().orElse(null); //为空则未添加过判定记录 if (assessmentMap == null) { - if ("平行".equals(businessAssayTaskDataExtendRespVO.getAssayType())) { + if (QmsCommonConstant.ASSAY_TYPE_SINGLE_PARALLEL.equals(businessAssayTaskDataExtendRespVO.getAssayType())) {//平行 List businessSubSampleAssessmentList = businessSubSampleAssessmentMapper.selectByBusinessSubSampleIdAndConfigAssayMethodId(businessAssayTaskDataExtendRespVO.getBusinessSubSampleId(), configAssayMethodId); for (BusinessSubSampleAssessmentExtendRespVO businessSubSampleAssessment : businessSubSampleAssessmentList) { businessAssayTaskDataAssessmentMap.put("id", businessSubSampleAssessment.getId()); @@ -154,7 +160,7 @@ public class SampleAnalysisAuditServiceImpl implements SampleAnalysisAuditServic businessAssayTaskDataAssessmentMap.put(businessSubSampleAssessment.getSimpleName(), businessSubSampleAssessment.getAssessmentValue()); businessAssayTaskDataAssessmentMap.put("assessmentValue", businessSubSampleAssessment.getAssessmentValue()); } - } else if ("双杯".equals(businessAssayTaskDataExtendRespVO.getAssayType())) { + } else if (QmsCommonConstant.ASSAY_TYPE_DOUBLE_CUP.equals(businessAssayTaskDataExtendRespVO.getAssayType())) {//双杯 //businessTeamAssessmentMapper.selectBy } dataList.add(businessAssayTaskDataAssessmentMap); @@ -248,10 +254,7 @@ public class SampleAnalysisAuditServiceImpl implements SampleAnalysisAuditServic //当前登录用户昵称 String nickName = SecurityFrameworkUtils.getLoginUserNickname(); - //班组长双杯判定记录 -// List businessTeamAssessmentDOList = new ArrayList<>(); - - //平行样判定记录 + //判定记录 List saveBusinessSubSampleAssessmentDOList = new ArrayList<>(); List updateBusinessSubSampleAssessmentDOList = new ArrayList<>(); @@ -262,19 +265,19 @@ public class SampleAnalysisAuditServiceImpl implements SampleAnalysisAuditServic businessAssayTaskDO.setReportTime(LocalDateTime.now()); businessAssayTaskDO.setReportOperator(SecurityFrameworkUtils.getLoginUserNickname()); - //List businessAssayTaskDetailDOList = businessAssayTaskDetailMapper.selectByBusinessAssayTaskId(businessAssayTaskId); - //查询分析任务明细 List businessAssayTaskDataDOList = businessAssayTaskDataMapper.selectByBusinessAssayTaskId(businessAssayTaskId); - + //根据子样分组 Map> businessAssayTaskDataDOMap = businessAssayTaskDataDOList.stream().collect(Collectors.groupingBy(BusinessAssayTaskDataDO::getBusinessSubSampleId)); + //循环分组 for (Map.Entry> businessAssayTaskDataDOMapEntry : businessAssayTaskDataDOMap.entrySet()) { + Long businessSubSampleId = businessAssayTaskDataDOMapEntry.getKey(); List businessAssayTaskDataList = businessAssayTaskDataDOMapEntry.getValue(); List businessAssayTaskDataIdList = businessAssayTaskDataList.stream().map(m -> m.getId()).collect(Collectors.toList()); BusinessAssayTaskDataDO businessAssayTaskDataDO = businessAssayTaskDataList.get(0); - - if ("平行".equals(businessAssayTaskDataDO.getAssayType())) { + + if (QmsCommonConstant.ASSAY_TYPE_SINGLE_PARALLEL.equals(businessAssayTaskDataDO.getAssayType())) { //根据子样id及分析方法id,查询未上报的分析任务 List unReportedList = businessAssayTaskDataMapper.selectIsReportedList(businessAssayTaskDataIdList, businessAssayTaskDataDO.getBusinessSubSampleId(), businessAssayTaskDataDO.getConfigAssayMethodId(), QmsCommonConstant.NO); if (unReportedList.size() > 0) {//还有未上报数据,直接处理,无需判定 @@ -364,7 +367,7 @@ public class SampleAnalysisAuditServiceImpl implements SampleAnalysisAuditServic } - } else if ("双杯".equals(businessAssayTaskDataDO.getAssayType())) { + } else if (QmsCommonConstant.ASSAY_TYPE_DOUBLE_CUP.equals(businessAssayTaskDataDO.getAssayType())) { } else {//单杯 @@ -479,11 +482,11 @@ public class SampleAnalysisAuditServiceImpl implements SampleAnalysisAuditServic if (unReportedList.size() > 0) { throw new ServiceException(1_032_100_000, "存在未上报的数据"); } - List saveBusinessAssayReportDataDOList = new ArrayList<>(); - List updateBusinessAssayReportDataDOList = new ArrayList<>(); +// List saveBusinessAssayReportDataDOList = new ArrayList<>(); +// List updateBusinessAssayReportDataDOList = new ArrayList<>(); //分析任务已全部上报 List reportedList = businessAssayTaskDataMapper.selectIsReportedList(null, businessSubSampleId, configAssayMethodId, QmsCommonConstant.YES); - //平行样判定结果 + //判定结果 List businessSubSampleAssessmentList = businessSubSampleAssessmentMapper.selectByBusinessSubSampleIdAndConfigAssayMethodId(businessSubSampleId, configAssayMethodId); List businessSubSampleAssessmentIdList = businessSubSampleAssessmentList.stream().map(m -> m.getId()).collect(Collectors.toList()); @@ -492,7 +495,12 @@ public class SampleAnalysisAuditServiceImpl implements SampleAnalysisAuditServic //查询主样 BusinessBaseSampleDO businessBaseSampleDO = businessBaseSampleMapper.selectById(businessAssayTaskDataDO.getBusinessBaseSampleId()); + + + + + /** //查询报表 List businessAssayReportDataDOList = businessAssayReportDataMapper.selectBytBusinessBaseSampleId(businessAssayTaskDataDO.getBusinessBaseSampleId()); @@ -509,6 +517,7 @@ public class SampleAnalysisAuditServiceImpl implements SampleAnalysisAuditServic //根据检测方法查询字段配置 List configProjectList = configProjectMapper.selectByConfigAssayMethodId(configAssayMethodId); + for (ConfigSampleReportExtendRespVO configSampleReport : configSampleReportList) { BusinessAssayReportDataDO businessAssayReportDataDO = businessAssayReportDataDOList.stream().filter(f -> f.getConfigReportTypeId().equals(configSampleReport.getConfigReportTypeId()) && f.getConfigSampleReportId().equals(configSampleReport.getId())).findFirst().orElse(null); if (businessAssayReportDataDO == null) { @@ -580,6 +589,7 @@ public class SampleAnalysisAuditServiceImpl implements SampleAnalysisAuditServic if (updateBusinessAssayReportDataDOList.size() > 0) { businessAssayReportDataMapper.updateBatch(updateBusinessAssayReportDataDOList); } + **/ businessSubSampleAssessmentMapper.update(new LambdaUpdateWrapper() .set(BusinessSubSampleAssessmentDO::getIsReported, QmsCommonConstant.YES) .set(BusinessSubSampleAssessmentDO::getReporter, nickName) @@ -701,9 +711,13 @@ public class SampleAnalysisAuditServiceImpl implements SampleAnalysisAuditServic @Transactional(rollbackFor = Exception.class) public JSONObject modifyParallelResultAssessment(Long businessSubSampleId, Long configAssayMethodId, Long businessSubSampleAssessmentId, List businessAssayProjectDataIds) { BusinessSubSampleAssessmentDO businessSubSampleAssessmentDO = businessSubSampleAssessmentMapper.selectById(businessSubSampleAssessmentId); + //查询子样 + BusinessSubSampleDO businessSubSampleDO = businessSubSampleMapper.selectById(businessSubSampleId); + //查询子样与方法的配置 + ConfigSubSampleMethodDO configSubSampleMethodDO = configSubSampleMethodMapper.selectByConfigSubSampleIdAndConfigAssayMethodId(businessSubSampleDO.getConfigSubSampleId(), configAssayMethodId); - //计算平均值 - ConfigRuleDO calculateAverageValue = configRuleMapper.selectLatestConfigRuleByCode("calculateAverageValue"); + //计算判定值计算规则 + ConfigRuleDO calculateAssessmentValue = configRuleMapper.selectLatestConfigRuleByCode(configSubSampleMethodDO.getCalculateMethod()); BusinessAssayProjectDataReqVO businessAssayProjectDataSearch = new BusinessAssayProjectDataReqVO(); businessAssayProjectDataSearch.setBusinessSubSampleId(businessSubSampleId); @@ -737,7 +751,7 @@ public class SampleAnalysisAuditServiceImpl implements SampleAnalysisAuditServic context.put("scale", elementScale); BigDecimal representativeValue = null; try { - representativeValue = (BigDecimal) expressRunner.execute(calculateAverageValue.getExpression(), context, null, false, false); + representativeValue = (BigDecimal) expressRunner.execute(calculateAssessmentValue.getExpression(), context, null, false, false); } catch (Exception e) { e.printStackTrace(); } diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/config/dal/mapper/ConfigSubSampleMethodMapper.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/config/dal/mapper/ConfigSubSampleMethodMapper.java index cdd6daa..f1ab41b 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/config/dal/mapper/ConfigSubSampleMethodMapper.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/config/dal/mapper/ConfigSubSampleMethodMapper.java @@ -1,5 +1,6 @@ package com.zt.plat.module.qms.business.config.dal.mapper; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; 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; @@ -42,5 +43,11 @@ public interface ConfigSubSampleMethodMapper extends BaseMapperX() + .eq(ConfigSubSampleMethodDO::getConfigSubSampleId, configSubSampleId) + .eq(ConfigSubSampleMethodDO::getConfigAssayMethodId, configAssayMethodId)); + } } \ 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/bus/dal/mapper/BusinessAssayTaskDataMapper.xml b/zt-module-qms/zt-module-qms-server/src/main/resources/com/zt/plat/module/qms/business/bus/dal/mapper/BusinessAssayTaskDataMapper.xml index d97b438..3f99302 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/resources/com/zt/plat/module/qms/business/bus/dal/mapper/BusinessAssayTaskDataMapper.xml +++ b/zt-module-qms/zt-module-qms-server/src/main/resources/com/zt/plat/module/qms/business/bus/dal/mapper/BusinessAssayTaskDataMapper.xml @@ -22,6 +22,9 @@ tbatd.IS_ASN_TSKD = 0 AND tbatd.IS_RPOD = 0 AND tbatd.DELETED = 0 + + AND tbatd.ASY_DEPT_ID = #{reqVO.assayDepartmentId} + AND tbatd.SMP_FLW_NDE_KY = #{reqVO.sampleFlowNodeKey} @@ -32,7 +35,7 @@ tbatd.CFG_ASY_MTHD_ID, tcam.NAME - +