diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/admin/SampleTaskAssignController.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/admin/SampleTaskAssignController.java index f47fc73..8e962b0 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/admin/SampleTaskAssignController.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/admin/SampleTaskAssignController.java @@ -9,6 +9,7 @@ import org.springframework.web.bind.annotation.RestController; import static com.zt.plat.framework.common.pojo.CommonResult.success; +import java.util.Arrays; import java.util.List; import com.zt.plat.framework.business.interceptor.BusinessControllerMarker; @@ -20,6 +21,8 @@ import com.zt.plat.module.qms.business.bus.liteflow.param.SampleTaskAssignMethod import com.zt.plat.module.qms.business.bus.liteflow.param.SampleTaskAssignSampleParam; import com.zt.plat.module.qms.business.bus.service.SampleTaskAssignService; import com.zt.plat.module.system.api.user.dto.AdminUserRespDTO; + +import cn.hutool.core.collection.CollUtil; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.annotation.Resource; @@ -53,11 +56,20 @@ public class SampleTaskAssignController implements BusinessControllerMarker { return success(list); } + /** @GetMapping("/getAssayMethodList") public CommonResult getAssayMethodList(Long businessSubSampleId, Long configAssayMethodId) { List list = sampleTaskAssignService.getAssayMethodList(businessSubSampleId, configAssayMethodId); return success(list); } + **/ + + @GetMapping("/getAssayMethodProjectList") + public CommonResult getAssayMethodProjectList(String businessSubSampleIds, Long configAssayMethodId) { + List businessSubSampleIdList = Arrays.asList(businessSubSampleIds.split(",")).stream().map(Long::parseLong).toList(); + List list = sampleTaskAssignService.getAssayMethodProjectList(businessSubSampleIdList, configAssayMethodId); + return success(list); + } @PostMapping("/changeMethod") public CommonResult changeMethod(@RequestBody ChangeAssayMethodReqVO req) { diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/AssayMethodProjectRespVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/AssayMethodProjectRespVO.java new file mode 100644 index 0000000..95fba2d --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/AssayMethodProjectRespVO.java @@ -0,0 +1,28 @@ +package com.zt.plat.module.qms.business.bus.controller.vo; + +import java.util.List; + +import com.zt.plat.module.qms.business.config.controller.vo.ConfigAssayMethodProjectExtendRespVO; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Data +public class AssayMethodProjectRespVO { + + private Long dictionaryProjectId; + + private String dictionaryProjectName; + + private String dictionaryProjectSimpleName; + + private String dictionaryProjectShowName; + + private Long configAssayMethodId; + + private String configAssayMethodName; + + @Schema(description = "检测方法配置名称及类别") + private String configAssayMethodNameAndCategory; + + private List methodList; +} 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 6438367..156ec33 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 @@ -117,6 +117,9 @@ public class BusinessAssayTaskDataReqVO { @Schema(description = "样品编号") private String sampleCode; + + @Schema(description = "样品名称") + private String sampleName; @Schema(description = "分析编号") private String sampleAssayCode; diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessSubParentSampleAssessmentExtendRespVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessSubParentSampleAssessmentExtendRespVO.java index 7ca9494..1d1e605 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessSubParentSampleAssessmentExtendRespVO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessSubParentSampleAssessmentExtendRespVO.java @@ -5,6 +5,12 @@ import lombok.Data; @Data public class BusinessSubParentSampleAssessmentExtendRespVO extends BusinessSubParentSampleAssessmentRespVO { + + @Schema(description = "主样id") + private Long businessBaseSampleId; + + @Schema(description = "分样配置id") + private Long configSubSampleParentId; @Schema(description = "检测项目key") private String dictionaryProjectKey; diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessXRFDataPageReqVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessXRFDataPageReqVO.java index 93689ac..eb5a58b 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessXRFDataPageReqVO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessXRFDataPageReqVO.java @@ -46,6 +46,9 @@ public class BusinessXRFDataPageReqVO extends PageParam { @Schema(description = "检测任务ID", example = "16505") private Long businessAssayTaskDataId; + + @Schema(description = "检测任务ID", example = "940") + private Long businessQCManagementDataId; @Schema(description = "检测数据") private String assayData; diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessXRFDataReqVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessXRFDataReqVO.java index f767309..3ed2865 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessXRFDataReqVO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessXRFDataReqVO.java @@ -49,6 +49,9 @@ public class BusinessXRFDataReqVO { @Schema(description = "检测任务ID", example = "16505") private Long businessAssayTaskDataId; + + @Schema(description = "检测任务ID", example = "940") + private Long businessQCManagementDataId; @Schema(description = "检测数据") private String assayData; diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessXRFDataRespVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessXRFDataRespVO.java index eb2ef7b..d0522fe 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessXRFDataRespVO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessXRFDataRespVO.java @@ -58,6 +58,9 @@ public class BusinessXRFDataRespVO { @Schema(description = "检测任务ID", example = "16505") private Long businessAssayTaskDataId; + + @Schema(description = "检测任务ID", example = "940") + private Long businessQCManagementDataId; @Schema(description = "检测数据", requiredMode = Schema.RequiredMode.REQUIRED) @ExcelProperty("检测数据") diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessXRFDataSaveReqVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessXRFDataSaveReqVO.java index cfe3d2c..287906a 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessXRFDataSaveReqVO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessXRFDataSaveReqVO.java @@ -51,6 +51,9 @@ public class BusinessXRFDataSaveReqVO { @Schema(description = "检测任务ID", example = "16505") private Long businessAssayTaskDataId; + + @Schema(description = "检测任务ID", example = "940") + private Long businessQCManagementDataId; @Schema(description = "检测数据", requiredMode = Schema.RequiredMode.REQUIRED) @NotEmpty(message = "检测数据不能为空") diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/ChangeAssayMethodReqVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/ChangeAssayMethodReqVO.java index 85f692d..70814c4 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/ChangeAssayMethodReqVO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/ChangeAssayMethodReqVO.java @@ -7,10 +7,10 @@ import lombok.Data; @Data public class ChangeAssayMethodReqVO { - private Long businessSubSampleId; + private List businessSubSampleIdList; private Long configAssayMethodId; - private List changeConfigAssayMethodIdList; + private List changeConfigAssayMethodProjectList; } 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 99f408d..7c8da2c 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 @@ -34,6 +34,12 @@ public class UnAssignTaskedSubSampleRespVO implements Serializable { @Schema(description = "检测方法配置ID", example = "9130") private Long configAssayMethodId; + + @Schema(description = "分析方法名称") + private String configAssayMethodName; + + @Schema(description = "检测方法配置名称及类别") + private String configAssayMethodNameAndCategory; @Schema(description = "分析类型,【字典】【jy_sample_assay_type】单杯-single_cup、双杯-double_cup、平行-single_parallel...", example = "2") 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/BusinessXRFDataDO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/dal/dataobject/BusinessXRFDataDO.java index a503aef..9865524 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/dal/dataobject/BusinessXRFDataDO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/dal/dataobject/BusinessXRFDataDO.java @@ -89,6 +89,11 @@ public class BusinessXRFDataDO extends BusinessBaseDO { @TableField("BSN_ASY_TSK_DAT_ID") private Long businessAssayTaskDataId; /** + * 检测任务ID + */ + @TableField("BSN_QC_MNGT_DAT_ID") + private Long businessQCManagementDataId; + /** * 检测数据 */ @TableField("ASY_DAT") diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/dal/mapper/BusinessAssayProjectDataMapper.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/dal/mapper/BusinessAssayProjectDataMapper.java index cbaf477..7d3e037 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/dal/mapper/BusinessAssayProjectDataMapper.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/dal/mapper/BusinessAssayProjectDataMapper.java @@ -6,9 +6,6 @@ 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; import com.zt.plat.module.qms.business.bus.controller.vo.*; -import com.zt.plat.module.qms.business.bus.controller.vo.BusinessAssayProjectAndParameterRespVO; -import com.zt.plat.module.qms.business.bus.controller.vo.BusinessAssayProjectDataPageReqVO; -import com.zt.plat.module.qms.business.bus.controller.vo.BusinessAssayProjectDataReqVO; import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessAssayProjectDataDO; import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessAssayTaskDataDO; import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessSubSampleDO; @@ -17,6 +14,7 @@ import com.zt.plat.module.qms.business.dic.dal.dataobject.DictionaryProjectDO; import com.zt.plat.module.qms.common.dic.dal.dataobject.DictionaryBusinessDO; import com.zt.plat.framework.mybatis.core.mapper.BaseMapperX; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; /** * 检测项目数据业务 Mapper @@ -97,11 +95,17 @@ public interface BusinessAssayProjectDataMapper extends BaseMapperX selectByBusinessAssayTaskDataIds(List businessAssayTaskDataIds) { return selectJoinList(BusinessAssayProjectDataExtendRespVO.class, new MPJLambdaWrapperX() + .leftJoin(BusinessAssayTaskDataDO.class, BusinessAssayTaskDataDO::getId, BusinessAssayProjectDataDO::getBusinessAssayTaskDataId) .leftJoin(DictionaryProjectDO.class, DictionaryProjectDO::getId, BusinessAssayProjectDataDO::getDictionaryProjectId) .selectAll(BusinessAssayProjectDataDO.class) .selectAs(DictionaryProjectDO::getKey, BusinessAssayProjectDataExtendRespVO::getDictionaryProjectKey) .selectAs(DictionaryProjectDO::getSimpleName, BusinessAssayProjectDataExtendRespVO::getSimpleName) .selectAs(DictionaryProjectDO::getShowName, BusinessAssayProjectDataExtendRespVO::getShowName) + .selectAs(BusinessAssayTaskDataDO::getAssayOperator, BusinessAssayProjectDataExtendRespVO::getAssayOperator) + .selectAs(BusinessAssayTaskDataDO::getAnalysisCount, BusinessAssayProjectDataExtendRespVO::getAnalysisCount) + .selectAs(BusinessAssayTaskDataDO::getBusinessBaseSampleId, BusinessAssayProjectDataExtendRespVO::getBusinessBaseSampleId) + .selectAs(BusinessAssayTaskDataDO::getBusinessSubParentSampleId, BusinessAssayProjectDataExtendRespVO::getBusinessSubParentSampleId) + .selectAs(BusinessAssayTaskDataDO::getBusinessSubSampleId, BusinessAssayProjectDataExtendRespVO::getBusinessSubSampleId) .in(BusinessAssayProjectDataDO::getBusinessAssayTaskDataId, businessAssayTaskDataIds)); } @@ -130,4 +134,6 @@ public interface BusinessAssayProjectDataMapper extends BaseMapperX selectAssayMethodProjectByBusinessSubSampleIdListAndConfigAssayMethodId(@Param("businessSubSampleIdList")List businessSubSampleIdList, @Param("configAssayMethodId") Long configAssayMethodId); + } \ 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/BusinessAssayReportDataMapper.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/dal/mapper/BusinessAssayReportDataMapper.java index bb5434e..93352a0 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/dal/mapper/BusinessAssayReportDataMapper.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/dal/mapper/BusinessAssayReportDataMapper.java @@ -46,6 +46,11 @@ public interface BusinessAssayReportDataMapper extends BaseMapperX selectBytBusinessBaseSampleIds(List businessBaseSampleIds) { + return selectList(new LambdaQueryWrapperX() + .inIfPresent(BusinessAssayReportDataDO::getBusinessBaseSampleId, businessBaseSampleIds)); + } + //查询报告待编制数据 Page queryWaitingDataForReport(IPage page, @Param("param") BusinessAssayReportDataPageReqVO param); 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 9b6c5ac..53794bb 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 @@ -420,7 +420,7 @@ public interface BusinessAssayTaskDataMapper extends BaseMapperX selectByBusinessSubParentSampleIdsAndConfigAssayMethodId(List businessSubParentSampleIds, - Long configAssayMethodId) { - return selectList(new LambdaQueryWrapperX() + default List selectByBusinessSubParentSampleIdsAndConfigAssayMethodId(List businessSubParentSampleIds, Long configAssayMethodId) { + return selectJoinList(BusinessSubParentSampleAssessmentExtendRespVO.class, new MPJLambdaWrapperX() + .leftJoin(BusinessSubParentSampleDO.class, BusinessSubParentSampleDO::getId, BusinessSubParentSampleAssessmentDO::getBusinessSubParentSampleId) + .selectAll(BusinessSubParentSampleAssessmentDO.class) + .selectAs(BusinessSubParentSampleDO::getConfigSubSampleParentId, BusinessSubParentSampleAssessmentExtendRespVO::getConfigSubSampleParentId) + .selectAs(BusinessSubParentSampleDO::getBusinessBaseSampleId, BusinessSubParentSampleAssessmentExtendRespVO::getBusinessBaseSampleId) .in(BusinessSubParentSampleAssessmentDO::getBusinessSubParentSampleId, businessSubParentSampleIds) .eq(BusinessSubParentSampleAssessmentDO::getConfigAssayMethodId, configAssayMethodId)); } diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/dal/mapper/BusinessSubSampleAssessmentMapper.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/dal/mapper/BusinessSubSampleAssessmentMapper.java index 13376e6..f5cc17a 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/dal/mapper/BusinessSubSampleAssessmentMapper.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/dal/mapper/BusinessSubSampleAssessmentMapper.java @@ -37,6 +37,18 @@ public interface BusinessSubSampleAssessmentMapper extends BaseMapperX() + .eq(BusinessSubSampleAssessmentDO::getBusinessSubParentSampleId, businessSubParentSampleId) + .eq(BusinessSubSampleAssessmentDO::getConfigAssayMethodId, configAssayMethodId)); + } + + default List selectByBusinessSubParentSampleIdsAndConfigAssayMethodId(List businessSubParentSampleIds, Long configAssayMethodId) { + return selectList(new LambdaQueryWrapperX() + .in(BusinessSubSampleAssessmentDO::getBusinessSubParentSampleId, businessSubParentSampleIds) + .eq(BusinessSubSampleAssessmentDO::getConfigAssayMethodId, configAssayMethodId)); + } + default BusinessSubSampleAssessmentDO selectByBusinessSubSampleIdAndConfigAssayMethodId(Long businessSubSampleId, Long configAssayMethodId) { return selectOne(new LambdaQueryWrapperX() .eq(BusinessSubSampleAssessmentDO::getBusinessSubSampleId, businessSubSampleId) diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/dal/mapper/BusinessXRFDataMapper.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/dal/mapper/BusinessXRFDataMapper.java index fde1a91..4d6bd8c 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/dal/mapper/BusinessXRFDataMapper.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/dal/mapper/BusinessXRFDataMapper.java @@ -30,6 +30,7 @@ public interface BusinessXRFDataMapper extends BaseMapperX { .eqIfPresent(BusinessXRFDataDO::getBusinessSubParentSampleId, reqVO.getBusinessSubParentSampleId()) .eqIfPresent(BusinessXRFDataDO::getBusinessSubSampleId, reqVO.getBusinessSubSampleId()) .eqIfPresent(BusinessXRFDataDO::getBusinessAssayTaskDataId, reqVO.getBusinessAssayTaskDataId()) + .eqIfPresent(BusinessXRFDataDO::getBusinessQCManagementDataId, reqVO.getBusinessQCManagementDataId()) .eqIfPresent(BusinessXRFDataDO::getAssayData, reqVO.getAssayData()) .eqIfPresent(BusinessXRFDataDO::getIsCheckCreate, reqVO.getIsCheckCreate()) .eqIfPresent(BusinessXRFDataDO::getIsMatched, reqVO.getIsMatched()) @@ -57,6 +58,7 @@ public interface BusinessXRFDataMapper extends BaseMapperX { .eqIfPresent(BusinessXRFDataDO::getBusinessSubParentSampleId, reqVO.getBusinessSubParentSampleId()) .eqIfPresent(BusinessXRFDataDO::getBusinessSubSampleId, reqVO.getBusinessSubSampleId()) .eqIfPresent(BusinessXRFDataDO::getBusinessAssayTaskDataId, reqVO.getBusinessAssayTaskDataId()) + .eqIfPresent(BusinessXRFDataDO::getBusinessQCManagementDataId, reqVO.getBusinessQCManagementDataId()) .eqIfPresent(BusinessXRFDataDO::getAssayData, reqVO.getAssayData()) .eqIfPresent(BusinessXRFDataDO::getIsCheckCreate, reqVO.getIsCheckCreate()) .eqIfPresent(BusinessXRFDataDO::getIsMatched, reqVO.getIsMatched()) diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/service/SampleTaskAssignService.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/service/SampleTaskAssignService.java index 7e77658..c0dda7d 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/service/SampleTaskAssignService.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/service/SampleTaskAssignService.java @@ -37,7 +37,15 @@ public interface SampleTaskAssignService { * @param configAssayMethodId * @return */ - List getAssayMethodList(Long businessSubSampleId, Long configAssayMethodId); +// List getAssayMethodList(Long businessSubSampleId, Long configAssayMethodId); + + /** + * 根据子样id列表,查询分析方法项目 + * @param businessSubSampleIdList 子样id列表 + * @param configAssayMethodId 分析方法id + * @return + */ + List getAssayMethodProjectList(List businessSubSampleIdList, Long configAssayMethodId); /** * 修改分析方法 diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/service/SampleTaskAssignServiceImpl.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/service/SampleTaskAssignServiceImpl.java index ef16ebd..49cfd46 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/service/SampleTaskAssignServiceImpl.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/service/SampleTaskAssignServiceImpl.java @@ -9,7 +9,6 @@ import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import com.alibaba.fastjson2.JSONObject; import com.baomidou.mybatisplus.core.toolkit.IdWorker; import com.yomahub.liteflow.core.FlowExecutor; import com.yomahub.liteflow.flow.LiteflowResponse; @@ -34,6 +33,8 @@ import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessQCCoefficientP import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessQCManagementDataDO; import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessQCManagementParameterDataDO; import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessQCManagementProjectDataDO; +import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessSubParentSampleAssessmentDO; +import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessSubSampleAssessmentDO; import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessSubSampleDO; import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessAssayParameterDataMapper; import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessAssayProjectDataMapper; @@ -46,6 +47,8 @@ import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessQCCoefficientParam import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessQCManagementDataMapper; import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessQCManagementParameterDataMapper; import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessQCManagementProjectDataMapper; +import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessSubParentSampleAssessmentMapper; +import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessSubSampleAssessmentMapper; import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessSubSampleMapper; import com.zt.plat.module.qms.business.bus.liteflow.param.SampleTaskAssignManualParam; import com.zt.plat.module.qms.business.bus.liteflow.param.SampleTaskAssignMethodParam; @@ -107,6 +110,12 @@ public class SampleTaskAssignServiceImpl implements SampleTaskAssignService { @Resource private BusinessAssayParameterDataMapper businessAssayParameterDataMapper; + @Resource + private BusinessSubSampleAssessmentMapper businessSubSampleAssessmentMapper; + + @Resource + private BusinessSubParentSampleAssessmentMapper businessSubParentSampleAssessmentMapper; + @Resource private BusinessAssayReportDataMapper businessAssayReportDataMapper; @@ -179,6 +188,7 @@ public class SampleTaskAssignServiceImpl implements SampleTaskAssignService { return list; } + /** @Override public List getAssayMethodList(Long businessSubSampleId, Long configAssayMethodId) { List resutList = new ArrayList<>(); @@ -235,7 +245,471 @@ public class SampleTaskAssignServiceImpl implements SampleTaskAssignService { return resutList; } + **/ + + @Override + public List getAssayMethodProjectList(List businessSubSampleIdList, Long configAssayMethodId) { + //当前登录用户 + LoginUser loginUser = SecurityFrameworkUtils.getLoginUser(); + Long visitDeptId = loginUser.getVisitDeptId(); + + List businessSubSampleList = businessSubSampleMapper.selectByIds(businessSubSampleIdList); + List configSubSampleIdList = businessSubSampleList.stream().map(m -> m.getConfigSubSampleId()).distinct().collect(Collectors.toList()); + //查询子样分析方法及检测项目 + List configAssayMethodProjectList = configAssayMethodProjectMapper.selectByConfigSubSampleIdsAndAssayDepartmentId(configSubSampleIdList, visitDeptId); + //查询分析方法检测项目 + List list = businessAssayProjectDataMapper.selectAssayMethodProjectByBusinessSubSampleIdListAndConfigAssayMethodId(businessSubSampleIdList, configAssayMethodId); + for (AssayMethodProjectRespVO assayMethodProject : list) { + List methodList = configAssayMethodProjectList.stream().filter(f -> assayMethodProject.getDictionaryProjectId().equals(f.getDictionaryProjectId())).collect(Collectors.toList()); + assayMethodProject.setMethodList(methodList); + } + return list; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void changeMethod(ChangeAssayMethodReqVO req) { + List businessSubSampleIdList = req.getBusinessSubSampleIdList(); + Long configAssayMethodId = req.getConfigAssayMethodId(); + List changeConfigAssayMethodProjectList = req.getChangeConfigAssayMethodProjectList(); + List changeConfigAssayMethodIdList = changeConfigAssayMethodProjectList.stream().map(m -> m.getConfigAssayMethodId()).distinct().collect(Collectors.toList()); + + LocalDateTime currentDateTime = LocalDateTime.now(); + + //需要更新的报表数据 + List updateBusinessAssayReportDataDOList = new ArrayList<>(); + + //需要更新的分析任务 + List updateBusinessAssayTaskDataDOList = new ArrayList<>(); + //需要更新的分析任务检测项目 + List updateBusinessAssayProjectDataDOList = new ArrayList<>(); + //需要更新的分析任务检测项目参数 + List updateBusinessAssayParameterDataDOList = new ArrayList<>(); + + //需要更新的子样判定 + List updateBusinessSubSampleAssessmentDOList = new ArrayList<>(); + + //需要更新的分样判定 + List updateBusinessSubParentSampleAssessmentDOList = new ArrayList<>(); + + //需要新建的分析任务 + List saveBusinessAssayTaskDataDOList = new ArrayList<>(); + //需要新建的分析任务检测项目 + List saveBusinessAssayProjectDataDOList = new ArrayList<>(); + //需要新建的分析任务检测项目参数 + List saveBusinessAssayParameterDataDOList = new ArrayList<>(); + + //需要新建的子样判定 + List saveBusinessSubSampleAssessmentDOList = new ArrayList<>(); + + //需要新建的分样判定 + List saveBusinessSubParentSampleAssessmentDOList = new ArrayList<>(); + + //需要删除的分析任务 + List removeAssayTaskDataIdList = new ArrayList<>(); + //需要删除的分析任务检测项目 + List removeAssayProjectIdList = new ArrayList<>(); + //需要删除的分析任务检测项目参数 + List removeAssayParameterIdList = new ArrayList<>(); + + //需要删除的子样判定 + List removeSubSampleAssessmentIdList = new ArrayList<>(); + + //需要删除的分样判定 + List removeSubParentSampleAssessmentIdList = new ArrayList<>(); + + //查询子样 + List businessSubSampleDOList = businessSubSampleMapper.selectByIds(businessSubSampleIdList); + List businessBaseSampleIdList = businessSubSampleDOList.stream().map(m -> m.getBusinessBaseSampleId()).distinct().collect(Collectors.toList()); + List businessSubParentSampleIdList = businessSubSampleDOList.stream().map(m -> m.getBusinessSubParentSampleId()).distinct().collect(Collectors.toList()); + List configSubSampleIdList = businessSubSampleDOList.stream().map(m -> m.getConfigSubSampleId()).distinct().collect(Collectors.toList()); + //查询检测任务 (通过分样id,可以查询双杯样的) + List businessAssayTaskDataDOList = businessAssayTaskDataMapper.selectByBusinessSubParentSampleIdsAndConfigAssayMethodId(businessSubParentSampleIdList, configAssayMethodId); + + boolean disabled = businessAssayTaskDataDOList.stream().anyMatch(m -> m.getIsAssignTasked().equals(QmsCommonConstant.YES)); + if (disabled) { + throw new ServiceException(1_032_001_000, "当前样品存在已分配任务,不允许修改分析方法"); + } + + List businessAssayTaskDataIdList = businessAssayTaskDataDOList.stream().map(m -> m.getId()).collect(Collectors.toList()); + //查询检测任务的检测项目 + List businessAssayProjectDataList = businessAssayProjectDataMapper.selectByBusinessAssayTaskDataIds(businessAssayTaskDataIdList); + List businessAssayProjectDataIdList = businessAssayProjectDataList.stream().map(m -> m.getId()).collect(Collectors.toList()); + //查询检测任务的检测项目的参数 + List businessAssayParameterDataDOList = businessAssayParameterDataMapper.selectByBusinessAssayProjectDataIds(businessAssayProjectDataIdList); + + //查询子样判定 (通过分样id,可以查询双杯样的) + List businessSubSampleAssessmentDOList = businessSubSampleAssessmentMapper.selectByBusinessSubParentSampleIdsAndConfigAssayMethodId(businessSubParentSampleIdList, configAssayMethodId); + + //查询分样判定 + List businessSubParentSampleAssessmentList = businessSubParentSampleAssessmentMapper.selectByBusinessSubParentSampleIdsAndConfigAssayMethodId(businessSubParentSampleIdList, configAssayMethodId); + + //查询要变更的分析方法配置 + List configAssayMethodDOList = configAssayMethodMapper.selectByIds(changeConfigAssayMethodIdList); + //分析方法检测项目配置 + List configAssayMethodProjectList = configAssayMethodProjectMapper.selectByConfigAssayMethodIds(changeConfigAssayMethodIdList); + //分析方法检测项目参数配置 + List configAssayMethodProjectParameterList = configAssayMethodProjectParameterMapper.selectByConfigAssayMethodIds(changeConfigAssayMethodIdList); + //查询要变更的子样及分析方法配置 + List configSubSampleMethodList = configSubSampleMethodMapper.selectByConfigSubSampleIdsAndConfigAssayMethodIds(configSubSampleIdList, changeConfigAssayMethodIdList); + + //循环分样判定 + for (BusinessSubParentSampleAssessmentExtendRespVO businessSubParentSampleAssessment : businessSubParentSampleAssessmentList) { + + //循环变更的分析方法 + for (Long changeConfigAssayMethodId : changeConfigAssayMethodIdList) { + //如果当前分析方法不等于要变更的方法 + if (!businessSubParentSampleAssessment.getConfigAssayMethodId().equals(changeConfigAssayMethodId)) { + //查询是否已有要变更的方法的分样判定 + BusinessSubParentSampleAssessmentDO businessSubParentSampleAssessmentDO = businessSubParentSampleAssessmentMapper.selectByBusinessSubParentSampleIdAndConfigAssayMethodId(businessSubParentSampleAssessment.getBusinessSubParentSampleId(), changeConfigAssayMethodId); + if (businessSubParentSampleAssessmentDO == null) {//不存在 + //根据变更方法过滤出检测项目 + List projectIdList = changeConfigAssayMethodProjectList.stream().filter(f -> f.getConfigAssayMethodId().equals(changeConfigAssayMethodId)).map(m -> m.getDictionaryProjectId()).distinct().collect(Collectors.toList()); + + //查询分析方法 + ConfigAssayMethodDO configAssayMethodDO = configAssayMethodDOList.stream().filter(f -> f.getId().equals(changeConfigAssayMethodId)).findFirst().orElse(null); + //查询子样分析方法 + ConfigSubSampleMethodExtendRespVO configSubSampleMethod = configSubSampleMethodList.stream().filter(f -> f.getConfigSubSampleParentId().equals(businessSubParentSampleAssessment.getConfigSubSampleParentId()) && f.getConfigAssayMethodId().equals(changeConfigAssayMethodId)).findFirst().orElse(null); + + //根据任务数判断是平行还是 + String assayType = configSubSampleMethod.getTaskCount() > 1 ? QmsCommonConstant.ASSAY_TYPE_SINGLE_PARALLEL : QmsCommonConstant.ASSAY_TYPE_SINGLE_CUP; + businessSubParentSampleAssessmentDO = new BusinessSubParentSampleAssessmentDO(); + businessSubParentSampleAssessmentDO.setId(IdWorker.getId()); + businessSubParentSampleAssessmentDO.setBusinessSubParentSampleId(businessSubParentSampleAssessment.getBusinessSubParentSampleId()); + businessSubParentSampleAssessmentDO.setConfigAssayMethodId(changeConfigAssayMethodId); + businessSubParentSampleAssessmentDO.setAssayType(assayType); + businessSubParentSampleAssessmentDO.setTaskType("常规"); + saveBusinessSubParentSampleAssessmentDOList.add(businessSubParentSampleAssessmentDO); + + BusinessSubSampleDO businessSubSampleDO = null; + if (!QmsCommonConstant.ASSAY_TYPE_DOUBLE_CUP.equals(businessSubParentSampleAssessment.getAssayType())) {//如果不为双杯样 + businessSubSampleDO = businessSubSampleDOList.stream().filter(f -> f.getBusinessSubParentSampleId().equals(businessSubParentSampleAssessment.getBusinessSubParentSampleId())).findFirst().orElse(null); + } + + //子样判定数据 + BusinessSubSampleAssessmentDO businessSubSampleAssessmentDO = new BusinessSubSampleAssessmentDO(); + businessSubSampleAssessmentDO.setId(IdWorker.getId()); + businessSubSampleAssessmentDO.setBusinessBaseSampleId(businessSubParentSampleAssessment.getBusinessBaseSampleId()); + businessSubSampleAssessmentDO.setBusinessSubParentSampleId(businessSubParentSampleAssessment.getBusinessSubParentSampleId()); + businessSubSampleAssessmentDO.setBusinessSubParentSampleAssessmentId(businessSubParentSampleAssessmentDO.getId()); + if (businessSubSampleDO != null) { + businessSubSampleAssessmentDO.setBusinessSubSampleId(businessSubSampleDO.getId()); + } + businessSubSampleAssessmentDO.setConfigAssayMethodId(changeConfigAssayMethodId); + businessSubSampleAssessmentDO.setAssayType(assayType); + businessSubSampleAssessmentDO.setTaskType("常规"); + + saveBusinessSubSampleAssessmentDOList.add(businessSubSampleAssessmentDO); + + //查询旧的检测项目 + List oldBusinessAssayProjectDataIdList = businessAssayProjectDataList.stream().filter(f -> projectIdList.contains(f.getDictionaryProjectId()) && f.getBusinessSubParentSampleId().equals(businessSubParentSampleAssessment.getBusinessSubParentSampleId())).map(m -> m.getId()).collect(Collectors.toList()); + //添加到删除列表 + removeAssayProjectIdList.addAll(oldBusinessAssayProjectDataIdList); + List oldBusinessAssayParameterDataIdList = businessAssayParameterDataDOList.stream().filter(f -> oldBusinessAssayProjectDataIdList.contains(f.getBusinessAssayProjectDataId())).map(m -> m.getId()).collect(Collectors.toList()); + removeAssayParameterIdList.addAll(oldBusinessAssayParameterDataIdList); + if (projectIdList.size() == changeConfigAssayMethodProjectList.size()) { + //查询旧的检测任务 + List oldBusinessAssayTaskDataIdList = businessAssayTaskDataDOList.stream().filter(f -> f.getConfigAssayMethodId().equals(configAssayMethodId) && f.getBusinessSubParentSampleId().equals(businessSubParentSampleAssessment.getBusinessSubParentSampleId())).map(m -> m.getId()).collect(Collectors.toList()); + //添加到删除列表 + removeAssayTaskDataIdList.addAll(oldBusinessAssayTaskDataIdList); + //查询旧的子样判定 + List oldBusinessSubSampleAssesmentIdList = businessSubSampleAssessmentDOList.stream().filter(f -> f.getConfigAssayMethodId().equals(configAssayMethodId) && f.getBusinessSubParentSampleId().equals(businessSubParentSampleAssessment.getBusinessSubParentSampleId())).map(m -> m.getId()).collect(Collectors.toList()); + //添加到删除列表 + removeSubSampleAssessmentIdList.addAll(oldBusinessSubSampleAssesmentIdList); + + //添加到删除列表 + removeSubParentSampleAssessmentIdList.add(businessSubParentSampleAssessment.getId()); + } else { + List projectShowNameList = changeConfigAssayMethodProjectList.stream().filter(f -> f.getConfigAssayMethodId().equals(configAssayMethodId)).map(m -> m.getDictionaryProjectShowName()).distinct().collect(Collectors.toList()); + //查询旧的检测任务 + List oldBusinessAssayTaskDataList = businessAssayTaskDataDOList.stream().filter(f -> f.getConfigAssayMethodId().equals(configAssayMethodId) && f.getBusinessSubParentSampleId().equals(businessSubParentSampleAssessment.getBusinessSubParentSampleId())).collect(Collectors.toList()); + for (BusinessAssayTaskDataDO oldBusinessAssayTaskData : oldBusinessAssayTaskDataList) { + boolean isAdd = updateBusinessAssayTaskDataDOList.stream().anyMatch(m -> m.getId().equals(oldBusinessAssayTaskData.getId())); + if (!isAdd) {//如果未添加过更新,则修改检测项目并添加更新 + oldBusinessAssayTaskData.setAssayProject(CollUtil.join(projectShowNameList, ",")); + updateBusinessAssayTaskDataDOList.add(oldBusinessAssayTaskData); + } + } + } + + BusinessAssayTaskDataDO oldBusinessAssayTaskDataDO = businessAssayTaskDataDOList.stream().filter(f -> f.getBusinessSubParentSampleId().equals(businessSubParentSampleAssessment.getBusinessSubParentSampleId())).findFirst().orElse(null); + + //根据检测方法循环 + BusinessAssayTaskDataDO businessAssayTaskDataDO = null; + //根据任务数循环 + for (int i = 0; i < configSubSampleMethod.getTaskCount(); i++) { + //子样检测任务 + businessAssayTaskDataDO = new BusinessAssayTaskDataDO(); + businessAssayTaskDataDO.setId(IdWorker.getId()); + businessAssayTaskDataDO.setBusinessBaseSampleId(businessSubSampleDO.getBusinessBaseSampleId()); + businessAssayTaskDataDO.setBusinessSubParentSampleId(businessSubSampleDO.getBusinessSubParentSampleId()); + businessAssayTaskDataDO.setBusinessSubSampleId(businessSubSampleDO.getId()); + businessAssayTaskDataDO.setBusinessSubSampleAssessmentId(businessSubSampleAssessmentDO.getId());//子样判定id + businessAssayTaskDataDO.setConfigAssayMethodId(changeConfigAssayMethodId); + businessAssayTaskDataDO.setAssayType(assayType); + businessAssayTaskDataDO.setTaskType("常规"); + businessAssayTaskDataDO.setConfigSampleFlowId(oldBusinessAssayTaskDataDO.getConfigSampleFlowId()); + businessAssayTaskDataDO.setSampleFlowNodeKey(oldBusinessAssayTaskDataDO.getSampleFlowNodeKey()); + businessAssayTaskDataDO.setSampleFlowNodeTime(currentDateTime); + businessAssayTaskDataDO.setAssayDepartmentId(configAssayMethodDO.getAssayDepartmentId()); + businessAssayTaskDataDO.setAssayDepartmentName(configAssayMethodDO.getAssayDepartmentName()); + + List configAssayMethodProjectDOList = configAssayMethodProjectList.stream().filter(f -> f.getConfigAssayMethodId().equals(changeConfigAssayMethodId)).collect(Collectors.toList()); + + StringBuilder assayProjectBuilder = new StringBuilder(); + + for (ConfigAssayMethodProjectExtendRespVO configAssayMethodProjectDO : configAssayMethodProjectDOList) { + + //如果当前分析方法的项目不在当前检测项目中,则跳出循环继续 + if (!projectIdList.contains(configAssayMethodProjectDO.getDictionaryProjectId())) { + continue; + } + + assayProjectBuilder.append(configAssayMethodProjectDO.getShowName()).append(","); + + + //检测项目 + BusinessAssayProjectDataDO businessAssayProjectDataDO = new BusinessAssayProjectDataDO(); + businessAssayProjectDataDO.setId(IdWorker.getId()); + businessAssayProjectDataDO.setBusinessAssayTaskDataId(businessAssayTaskDataDO.getId()); + businessAssayProjectDataDO.setConfigAssayMethodProjectId(configAssayMethodProjectDO.getId()); + businessAssayProjectDataDO.setDictionaryProjectId(configAssayMethodProjectDO.getDictionaryProjectId()); + businessAssayProjectDataDO.setDataType(configAssayMethodProjectDO.getDataType()); + businessAssayProjectDataDO.setDecimalPosition(configAssayMethodProjectDO.getDecimalPosition()); + businessAssayProjectDataDO.setUsage(QmsCommonConstant.ASSAY_PROJECT_USAGE_REPORT); + businessAssayProjectDataDO.setMinimumLimitValue(configAssayMethodProjectDO.getMinimumLimitValue()); + businessAssayProjectDataDO.setIsEnabled(QmsCommonConstant.YES); + businessAssayProjectDataDO.setIsNotAssessment(QmsCommonConstant.NO); + + saveBusinessAssayProjectDataDOList.add(businessAssayProjectDataDO); + + List configAssayMethodProjectParameterDOList = configAssayMethodProjectParameterList.stream().filter(f -> f.getConfigAssayMethodProjectId().equals(configAssayMethodProjectDO.getId())).collect(Collectors.toList()); + for (ConfigAssayMethodProjectParameterDO configAssayMethodProjectParameterDO : configAssayMethodProjectParameterDOList) { + BusinessAssayParameterDataDO businessAssayParameterDataDO = new BusinessAssayParameterDataDO(); + businessAssayParameterDataDO.setId(IdWorker.getId()); + businessAssayParameterDataDO.setConfigAssayMethodProjectParameterId(configAssayMethodProjectParameterDO.getId()); + businessAssayParameterDataDO.setBusinessAssayProjectDataId(businessAssayProjectDataDO.getId()); + businessAssayParameterDataDO.setDictionaryParameterId(configAssayMethodProjectParameterDO.getDictionaryParameterId()); + businessAssayParameterDataDO.setDataType(configAssayMethodProjectParameterDO.getDataType()); + businessAssayParameterDataDO.setDecimalPosition(configAssayMethodProjectParameterDO.getDecimalPosition()); + + saveBusinessAssayParameterDataDOList.add(businessAssayParameterDataDO); + } + } + if (assayProjectBuilder.length() > 1) { + assayProjectBuilder.delete(assayProjectBuilder.length() - 1 , assayProjectBuilder.length()); + } + businessAssayTaskDataDO.setAssayProject(assayProjectBuilder.toString()); + saveBusinessAssayTaskDataDOList.add(businessAssayTaskDataDO); + } + + } else {//已存在 + //根据变更方法过滤出检测项目 + List projectIdList = changeConfigAssayMethodProjectList.stream().filter(f -> f.getConfigAssayMethodId().equals(changeConfigAssayMethodId)).map(m -> m.getDictionaryProjectId()).distinct().collect(Collectors.toList()); + + //查询分析方法 + //ConfigAssayMethodDO configAssayMethodDO = configAssayMethodDOList.stream().filter(f -> f.getId().equals(changeConfigAssayMethodId)).findFirst().orElse(null); + //查询子样分析方法 + //ConfigSubSampleMethodExtendRespVO configSubSampleMethod = configSubSampleMethodList.stream().filter(f -> f.getConfigSubSampleParentId().equals(businessSubParentSampleAssessment.getConfigSubSampleParentId()) && f.getConfigAssayMethodId().equals(changeConfigAssayMethodId)).findFirst().orElse(null); + + //根据任务数判断是平行还是 + //String assayType = configSubSampleMethod.getTaskCount() > 1 ? QmsCommonConstant.ASSAY_TYPE_SINGLE_PARALLEL : QmsCommonConstant.ASSAY_TYPE_SINGLE_CUP; + + //查询子样判定 + //BusinessSubSampleAssessmentDO businessSubSampleAssessmentDO = businessSubSampleAssessmentMapper.selectByBusinessSubParentSampleIdAndConfigAssayMethodId(businessSubParentSampleAssessmentDO.getBusinessSubParentSampleId(), changeConfigAssayMethodId); + + //查询旧的检测项目 + List oldBusinessAssayProjectDataIdList = businessAssayProjectDataList.stream().filter(f -> projectIdList.contains(f.getDictionaryProjectId()) && f.getBusinessSubParentSampleId().equals(businessSubParentSampleAssessment.getBusinessSubParentSampleId())).map(m -> m.getId()).collect(Collectors.toList()); + //添加到删除列表 + removeAssayProjectIdList.addAll(oldBusinessAssayProjectDataIdList); + List oldBusinessAssayParameterDataIdList = businessAssayParameterDataDOList.stream().filter(f -> oldBusinessAssayProjectDataIdList.contains(f.getBusinessAssayProjectDataId())).map(m -> m.getId()).collect(Collectors.toList()); + removeAssayParameterIdList.addAll(oldBusinessAssayParameterDataIdList); + if (projectIdList.size() == changeConfigAssayMethodProjectList.size()) { + //查询旧的检测任务 + List oldBusinessAssayTaskDataIdList = businessAssayTaskDataDOList.stream().filter(f -> f.getConfigAssayMethodId().equals(configAssayMethodId) && f.getBusinessSubParentSampleId().equals(businessSubParentSampleAssessment.getBusinessSubParentSampleId())).map(m -> m.getId()).collect(Collectors.toList()); + //添加到删除列表 + removeAssayTaskDataIdList.addAll(oldBusinessAssayTaskDataIdList); + //查询旧的子样判定 + List oldBusinessSubSampleAssesmentIdList = businessSubSampleAssessmentDOList.stream().filter(f -> f.getConfigAssayMethodId().equals(configAssayMethodId) && f.getBusinessSubParentSampleId().equals(businessSubParentSampleAssessment.getBusinessSubParentSampleId())).map(m -> m.getId()).collect(Collectors.toList()); + //添加到删除列表 + removeSubSampleAssessmentIdList.addAll(oldBusinessSubSampleAssesmentIdList); + + //添加到删除列表 + removeSubParentSampleAssessmentIdList.add(businessSubParentSampleAssessment.getId()); + } else { + List projectShowNameList = changeConfigAssayMethodProjectList.stream().filter(f -> f.getConfigAssayMethodId().equals(configAssayMethodId)).map(m -> m.getDictionaryProjectShowName()).distinct().collect(Collectors.toList()); + //查询旧的检测任务 + List oldBusinessAssayTaskDataList = businessAssayTaskDataDOList.stream().filter(f -> f.getConfigAssayMethodId().equals(configAssayMethodId) && f.getBusinessSubParentSampleId().equals(businessSubParentSampleAssessment.getBusinessSubParentSampleId())).collect(Collectors.toList()); + for (BusinessAssayTaskDataDO oldBusinessAssayTaskData : oldBusinessAssayTaskDataList) { + boolean isAdd = updateBusinessAssayTaskDataDOList.stream().anyMatch(m -> m.getId().equals(oldBusinessAssayTaskData.getId())); + if (!isAdd) {//如果未添加过更新,则修改检测项目并添加更新 + oldBusinessAssayTaskData.setAssayProject(CollUtil.join(projectShowNameList, ",")); + updateBusinessAssayTaskDataDOList.add(oldBusinessAssayTaskData); + } + } + } + + //查询当前存在的分析任务 + List currBusinessAssayTaskDataDOList = businessAssayTaskDataMapper.selectByBusinessSubParentSampleIdAndConfigAssayMethodId(businessSubParentSampleAssessmentDO.getBusinessSubParentSampleId(), changeConfigAssayMethodId); + + //当前存在的分析任务循环 + for (BusinessAssayTaskDataDO businessAssayTaskDataDO : currBusinessAssayTaskDataDOList) { + + List configAssayMethodProjectDOList = configAssayMethodProjectList.stream().filter(f -> f.getConfigAssayMethodId().equals(changeConfigAssayMethodId)).collect(Collectors.toList()); + + StringBuilder assayProjectBuilder = new StringBuilder(businessAssayTaskDataDO.getAssayProject()); + assayProjectBuilder.append(","); + + for (ConfigAssayMethodProjectExtendRespVO configAssayMethodProjectDO : configAssayMethodProjectDOList) { + + //如果当前分析方法的项目不在当前检测项目中,则跳出循环继续 + if (!projectIdList.contains(configAssayMethodProjectDO.getDictionaryProjectId())) { + continue; + } + + assayProjectBuilder.append(configAssayMethodProjectDO.getShowName()).append(","); + + + //检测项目 + BusinessAssayProjectDataDO businessAssayProjectDataDO = new BusinessAssayProjectDataDO(); + businessAssayProjectDataDO.setId(IdWorker.getId()); + businessAssayProjectDataDO.setBusinessAssayTaskDataId(businessAssayTaskDataDO.getId()); + businessAssayProjectDataDO.setConfigAssayMethodProjectId(configAssayMethodProjectDO.getId()); + businessAssayProjectDataDO.setDictionaryProjectId(configAssayMethodProjectDO.getDictionaryProjectId()); + businessAssayProjectDataDO.setDataType(configAssayMethodProjectDO.getDataType()); + businessAssayProjectDataDO.setDecimalPosition(configAssayMethodProjectDO.getDecimalPosition()); + businessAssayProjectDataDO.setUsage(QmsCommonConstant.ASSAY_PROJECT_USAGE_REPORT); + businessAssayProjectDataDO.setMinimumLimitValue(configAssayMethodProjectDO.getMinimumLimitValue()); + businessAssayProjectDataDO.setIsEnabled(QmsCommonConstant.YES); + businessAssayProjectDataDO.setIsNotAssessment(QmsCommonConstant.NO); + + saveBusinessAssayProjectDataDOList.add(businessAssayProjectDataDO); + + List configAssayMethodProjectParameterDOList = configAssayMethodProjectParameterList.stream().filter(f -> f.getConfigAssayMethodProjectId().equals(configAssayMethodProjectDO.getId())).collect(Collectors.toList()); + for (ConfigAssayMethodProjectParameterDO configAssayMethodProjectParameterDO : configAssayMethodProjectParameterDOList) { + BusinessAssayParameterDataDO businessAssayParameterDataDO = new BusinessAssayParameterDataDO(); + businessAssayParameterDataDO.setId(IdWorker.getId()); + businessAssayParameterDataDO.setConfigAssayMethodProjectParameterId(configAssayMethodProjectParameterDO.getId()); + businessAssayParameterDataDO.setBusinessAssayProjectDataId(businessAssayProjectDataDO.getId()); + businessAssayParameterDataDO.setDictionaryParameterId(configAssayMethodProjectParameterDO.getDictionaryParameterId()); + businessAssayParameterDataDO.setDataType(configAssayMethodProjectParameterDO.getDataType()); + businessAssayParameterDataDO.setDecimalPosition(configAssayMethodProjectParameterDO.getDecimalPosition()); + + saveBusinessAssayParameterDataDOList.add(businessAssayParameterDataDO); + } + } + if (assayProjectBuilder.length() > 1) { + assayProjectBuilder.delete(assayProjectBuilder.length() - 1 , assayProjectBuilder.length()); + } + businessAssayTaskDataDO.setAssayProject(assayProjectBuilder.toString()); + updateBusinessAssayTaskDataDOList.add(businessAssayTaskDataDO); + } + + + } + + } + + } + + } + + //查询报表数据 + List businessAssayReportDataDOList = businessAssayReportDataMapper.selectBytBusinessBaseSampleIds(businessBaseSampleIdList); + for (BusinessAssayReportDataDO businessAssayReportDataDO : businessAssayReportDataDOList) { + String dataSource = businessAssayReportDataDO.getDataSource(); + if (dataSource.contains(req.getConfigAssayMethodId().toString())) {//判定是否存在 + List dataSourceList = new ArrayList<>(); + String[] dataSourceSplit = dataSource.split(","); + for (int i = 0; i < dataSourceSplit.length; i++) { + dataSourceList.add(Long.parseLong(dataSourceSplit[i])); + } + + //移除当前的 + dataSourceList.remove(req.getConfigAssayMethodId()); + //添加新的 + dataSourceList.addAll(changeConfigAssayMethodIdList); + + //重新赋值 + businessAssayReportDataDO.setDataSource(CollUtil.join(dataSourceList, ",")); + + //添加到更新列表 + updateBusinessAssayReportDataDOList.add(businessAssayReportDataDO); + } + } + + + + //======================== 删除 ===================================================================== + + if (removeAssayTaskDataIdList.size() > 0) { + businessAssayTaskDataMapper.deleteByIds(removeAssayTaskDataIdList); + } + if (removeAssayProjectIdList.size() > 0) { + businessAssayProjectDataMapper.deleteByIds(removeAssayProjectIdList); + } + if (removeAssayParameterIdList.size() > 0) { + businessAssayParameterDataMapper.deleteByIds(removeAssayParameterIdList); + } + + if (removeSubSampleAssessmentIdList.size() > 0) { + businessSubSampleAssessmentMapper.deleteByIds(removeSubSampleAssessmentIdList); + } + + if (removeSubParentSampleAssessmentIdList.size() > 0) { + businessSubParentSampleAssessmentMapper.deleteByIds(removeSubParentSampleAssessmentIdList); + } + + //======================== 修改 ===================================================================== + + if (updateBusinessAssayReportDataDOList.size() > 0) { + businessAssayReportDataMapper.updateBatch(updateBusinessAssayReportDataDOList); + } + + if (updateBusinessAssayTaskDataDOList.size() > 0) { + businessAssayTaskDataMapper.updateBatch(updateBusinessAssayTaskDataDOList); + } + if (updateBusinessAssayProjectDataDOList.size() > 0) { + businessAssayProjectDataMapper.updateBatch(updateBusinessAssayProjectDataDOList); + } + if (updateBusinessAssayParameterDataDOList.size() > 0) { + businessAssayParameterDataMapper.updateBatch(updateBusinessAssayParameterDataDOList); + } + + if (updateBusinessSubSampleAssessmentDOList.size() > 0) { + businessSubSampleAssessmentMapper.updateBatch(updateBusinessSubSampleAssessmentDOList); + } + + if (updateBusinessSubParentSampleAssessmentDOList.size() > 0) { + businessSubParentSampleAssessmentMapper.updateBatch(updateBusinessSubParentSampleAssessmentDOList); + } + + //======================== 新建 ===================================================================== + + if (saveBusinessAssayTaskDataDOList.size() > 0) { + businessAssayTaskDataMapper.insertBatch(saveBusinessAssayTaskDataDOList); + } + if (saveBusinessAssayProjectDataDOList.size() > 0) { + businessAssayProjectDataMapper.insertBatch(saveBusinessAssayProjectDataDOList); + } + if (saveBusinessAssayParameterDataDOList.size() > 0) { + businessAssayParameterDataMapper.insertBatch(saveBusinessAssayParameterDataDOList); + } + + if (saveBusinessSubSampleAssessmentDOList.size() > 0) { + businessSubSampleAssessmentMapper.insertBatch(saveBusinessSubSampleAssessmentDOList); + } + + if (saveBusinessSubParentSampleAssessmentDOList.size() > 0) { + businessSubParentSampleAssessmentMapper.insertBatch(saveBusinessSubParentSampleAssessmentDOList); + } + + + + } + + /** @Override @Transactional(rollbackFor = Exception.class) public void changeMethod(ChangeAssayMethodReqVO req) { @@ -374,6 +848,7 @@ public class SampleTaskAssignServiceImpl implements SampleTaskAssignService { businessAssayParameterDataMapper.insertBatch(saveBusinessAssayParameterDataDOList); } } + **/ @Override @Transactional(rollbackFor = Exception.class) diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/config/controller/vo/ConfigAssayMethodProjectExtendRespVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/config/controller/vo/ConfigAssayMethodProjectExtendRespVO.java index 73e938d..627832e 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/config/controller/vo/ConfigAssayMethodProjectExtendRespVO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/config/controller/vo/ConfigAssayMethodProjectExtendRespVO.java @@ -5,6 +5,12 @@ import lombok.Data; @Data public class ConfigAssayMethodProjectExtendRespVO extends ConfigAssayMethodProjectRespVO { + + @Schema(description = "分析方法名称") + private String configAssayMethodName; + + @Schema(description = "检测方法配置名称及类别") + private String configAssayMethodNameAndCategory; @Schema(description = "检测项目key") private String dictionaryProjectKey; diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/config/controller/vo/ConfigSubSampleMethodExtendRespVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/config/controller/vo/ConfigSubSampleMethodExtendRespVO.java index c6a76e0..3060175 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/config/controller/vo/ConfigSubSampleMethodExtendRespVO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/config/controller/vo/ConfigSubSampleMethodExtendRespVO.java @@ -5,6 +5,15 @@ import lombok.Data; @Data public class ConfigSubSampleMethodExtendRespVO extends ConfigSubSampleMethodRespVO { + + @Schema(description = "样品大类ID", example = "15082") + private Long baseSampleId; + + @Schema(description = "主样配置ID", example = "1906") + private Long configBaseSampleId; + + @Schema(description = "分样配置ID", example = "13652") + private Long configSubSampleParentId; /** 分析方法名称 **/ @Schema(description = "分析方法名称") diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/config/dal/mapper/ConfigAssayMethodProjectMapper.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/config/dal/mapper/ConfigAssayMethodProjectMapper.java index 132c413..31c0345 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/config/dal/mapper/ConfigAssayMethodProjectMapper.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/config/dal/mapper/ConfigAssayMethodProjectMapper.java @@ -7,6 +7,7 @@ import com.zt.plat.framework.mybatis.core.query.MPJLambdaWrapperX; import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessAssayProjectDataDO; import com.zt.plat.module.qms.business.config.controller.vo.*; import com.zt.plat.module.qms.business.config.controller.vo.ConfigAssayMethodProjectPageReqVO; +import com.zt.plat.module.qms.business.config.dal.dataobject.ConfigAssayMethodDO; import com.zt.plat.module.qms.business.config.dal.dataobject.ConfigAssayMethodProjectDO; import com.zt.plat.module.qms.business.dic.dal.dataobject.DictionaryProjectDO; import com.zt.plat.framework.mybatis.core.mapper.BaseMapperX; @@ -63,5 +64,27 @@ public interface ConfigAssayMethodProjectMapper extends BaseMapperX selectByConfigSubSampleIdsAndAssayDepartmentId(List configSubSampleIds, Long assayDepartmentId) { + StringBuilder inSql = new StringBuilder("SELECT tcssm.CFG_ASY_MTHD_ID FROM T_CFG_SB_SMP_MTHD tcssm WHERE tcssm.DELETED = 0 AND tcssm.CFG_SB_SMP_ID IN ("); + for (Long configSubSampleId : configSubSampleIds) { + inSql.append(configSubSampleId).append(","); + } + inSql.delete(inSql.length() - 1, inSql.length()); + inSql.append(")"); + return selectJoinList(ConfigAssayMethodProjectExtendRespVO.class, new MPJLambdaWrapperX() + .leftJoin(ConfigAssayMethodDO.class, ConfigAssayMethodDO::getId, ConfigAssayMethodProjectDO::getConfigAssayMethodId) + .selectAll(ConfigAssayMethodProjectDO.class) + .selectAs(ConfigAssayMethodDO::getName, ConfigAssayMethodProjectExtendRespVO::getConfigAssayMethodName) + .selectAs(ConfigAssayMethodDO::getMethodNameCategory, ConfigAssayMethodProjectExtendRespVO::getConfigAssayMethodNameAndCategory) + .eq(ConfigAssayMethodDO::getAssayDepartmentId, assayDepartmentId) + .inSql(ConfigAssayMethodProjectDO::getConfigAssayMethodId, inSql.toString())); + } } \ 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/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 321b74d..47f3f9d 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 @@ -7,6 +7,7 @@ import com.zt.plat.framework.mybatis.core.query.MPJLambdaWrapperX; import com.zt.plat.module.qms.business.config.controller.vo.*; import com.zt.plat.module.qms.business.config.controller.vo.ConfigSubSampleMethodPageReqVO; import com.zt.plat.module.qms.business.config.dal.dataobject.ConfigAssayMethodDO; +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.framework.mybatis.core.mapper.BaseMapperX; @@ -61,6 +62,17 @@ public interface ConfigSubSampleMethodMapper extends BaseMapperX selectByConfigSubSampleIdsAndConfigAssayMethodIds(List configSubSampleIds, List configAssayMethodIds) { + return selectJoinList(ConfigSubSampleMethodExtendRespVO.class, new MPJLambdaWrapperX() + .leftJoin(ConfigSubSampleDO.class, ConfigSubSampleDO::getId, ConfigSubSampleMethodDO::getConfigSubSampleId) + .selectAll(ConfigSubSampleMethodDO.class) + .selectAs(ConfigSubSampleDO::getConfigSubSampleParentId, ConfigSubSampleMethodExtendRespVO::getConfigSubSampleParentId) + .selectAs(ConfigSubSampleDO::getConfigBaseSampleId, ConfigSubSampleMethodExtendRespVO::getConfigBaseSampleId) + .selectAs(ConfigSubSampleDO::getBaseSampleId, ConfigSubSampleMethodExtendRespVO::getBaseSampleId) + .in(ConfigSubSampleMethodDO::getConfigSubSampleId, configSubSampleIds) + .in(ConfigSubSampleMethodDO::getConfigAssayMethodId, configAssayMethodIds)); + } + default List selectByConfigSubSampleIds(List configSubSampleIds) { return selectList(new LambdaQueryWrapper() .in(ConfigSubSampleMethodDO::getConfigSubSampleId, configSubSampleIds)); diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/thirdpartyapi/service/XRFDataServiceImpl.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/thirdpartyapi/service/XRFDataServiceImpl.java index 5dc4ee1..72402b3 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/thirdpartyapi/service/XRFDataServiceImpl.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/thirdpartyapi/service/XRFDataServiceImpl.java @@ -19,8 +19,6 @@ import com.zt.plat.framework.common.util.object.BeanUtils; import com.zt.plat.module.qms.business.bus.controller.vo.*; import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessAssayProjectDataDO; import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessAssayTaskDataDO; -import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessQCCoefficientDataDO; -import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessQCCoefficientParameterDataDO; import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessQCManagementDataDO; import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessQCManagementProjectDataDO; import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessXRFDataDO; @@ -31,6 +29,7 @@ import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessQCCoefficientParam import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessQCManagementDataMapper; import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessQCManagementProjectDataMapper; import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessXRFDataMapper; +import com.zt.plat.module.qms.business.config.dal.dataobject.ConfigAssayMethodProjectDO; import com.zt.plat.module.qms.business.config.dal.dataobject.ConfigXRFConversionRateDO; import com.zt.plat.module.qms.business.config.dal.dataobject.ConfigXRFLineDO; import com.zt.plat.module.qms.business.config.dal.dataobject.ConfigXRFProjectDO; @@ -223,13 +222,22 @@ public class XRFDataServiceImpl implements XRFDataService { if(conYgElement.getDataType() != null && "decimal".equals(conYgElement.getDataType())) { conYgElementDataType = conYgElement.getDecimalPosition(); } - Long elementId = conYgElement.getDictionaryProjectId(); + Long elementId = conYgElement.getDictionaryProjectId(); List currBusElementValueList = tempBusElementValueList.stream().filter(f -> f.getDictionaryProjectId().equals(elementId) && f.getIsEnabled().equals(1)).collect(Collectors.toList()); + String symbol = "="; + String minimumLimitValue = ""; if (currBusElementValueList != null && currBusElementValueList.size() > 0) { for (BusinessAssayProjectDataExtendRespVO busElementValue : currBusElementValueList) { //化验数据小数精度四舍六入五单双 if("decimal".equals(busElementValue.getDataType())) { busElementValue.setValue(elementValue.setScale(busElementValue.getDecimalPosition(), RoundingMode.HALF_EVEN).toPlainString()); + if (elementValue.compareTo(new BigDecimal(busElementValue.getMinimumLimitValue())) < 0) { + symbol = "<"; + minimumLimitValue = busElementValue.getMinimumLimitValue(); + busElementValue.setValue(busElementValue.getMinimumLimitValue()); + } + busElementValue.setSymbol(symbol); + } else { busElementValue.setValue(elementValue.setScale(conYgElementDataType, RoundingMode.HALF_EVEN).toPlainString()); } @@ -245,6 +253,13 @@ public class XRFDataServiceImpl implements XRFDataService { //化验数据小数精度四舍六入五单双 if("decimal".equals(busElementValue.getDataType())) { busElementValue.setValue(elementValue.setScale(busElementValue.getDecimalPosition(), RoundingMode.HALF_EVEN).toPlainString()); + ConfigAssayMethodProjectDO configAssayMethodProjectDO = configAssayMethodProjectMapper.selectById(busElementValue.getConfigAssayMethodProjectId()); + if (elementValue.compareTo(new BigDecimal(configAssayMethodProjectDO.getMinimumLimitValue())) < 0) { + symbol = "<"; + minimumLimitValue = configAssayMethodProjectDO.getMinimumLimitValue(); + busElementValue.setValue(configAssayMethodProjectDO.getMinimumLimitValue()); + } + busElementValue.setSymbol(symbol); } else { busElementValue.setValue(elementValue.setScale(conYgElementDataType, RoundingMode.HALF_EVEN).toPlainString()); } @@ -258,13 +273,16 @@ public class XRFDataServiceImpl implements XRFDataService { reportFieldValueData.setFieldName(conYgElement.getSaveColumn()); reportFieldValueData.setFieldValue(elementValue.setScale(conYgElementDataType, RoundingMode.HALF_EVEN).toPlainString()); reportFieldValueData.setDecimalPosition(ygDeviceSampleElement.getValueDecimals()); - reportFieldValueData.setMathSymbol("="); + reportFieldValueData.setMathSymbol(symbol); + if ("<".equals(symbol)) { + reportFieldValueData.setFieldValue(minimumLimitValue); + } reportFieldValueData.setUnit(ygDeviceSampleElement.getXrfProjectUnit()); assayDataJson.put(conYgElement.getSaveColumn(), reportFieldValueData); } } - //循环元素修改流程节点 + //循环元素修改 for (BusinessAssayProjectDataExtendRespVO busElementValue : tempBusElementValueList) { boolean match = busElementValueList.stream().anyMatch(m -> m.getId().equals(busElementValue.getId())); if (!match) {//已经添加过的,不再添加 @@ -285,6 +303,13 @@ public class XRFDataServiceImpl implements XRFDataService { businessAssayTaskDataDOList.add(BeanUtils.toBean(businessAssayTaskData, BusinessAssayTaskDataDO.class)); } } + if (currBusinessQCManagementDataList != null && currBusinessQCManagementDataList.size() > 0) { + for (BusinessQCManagementDataDO businessQCManagementData : currBusinessQCManagementDataList) { + busYgData.setBusinessQCManagementDataId(businessQCManagementData.getId()); + busYgData.setIsMatched(QmsCommonConstant.YES); + } + } + busYgDataList.add(busYgData); } diff --git a/zt-module-qms/zt-module-qms-server/src/main/resources/com/zt/plat/module/qms/business/bus/dal/mapper/BusinessAssayProjectDataMapper.xml b/zt-module-qms/zt-module-qms-server/src/main/resources/com/zt/plat/module/qms/business/bus/dal/mapper/BusinessAssayProjectDataMapper.xml index 4b6d82e..018e02a 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/resources/com/zt/plat/module/qms/business/bus/dal/mapper/BusinessAssayProjectDataMapper.xml +++ b/zt-module-qms/zt-module-qms-server/src/main/resources/com/zt/plat/module/qms/business/bus/dal/mapper/BusinessAssayProjectDataMapper.xml @@ -9,4 +9,45 @@ 文档可见: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/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 fa8d2c9..a357aa6 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 @@ -128,6 +128,8 @@ tbss.SMP_FLW_NDE_TM AS sampleFlowNodeTime, tbatd.BSN_SB_SMP_ID AS businessSubSampleId, tbatd.CFG_ASY_MTHD_ID AS configAssayMethodId, + tcam.NAME AS configAssayMethodName, + tcam.MTHD_NAME_CTGR AS configAssayMethodNameAndCategory, tbatd.ASY_TP AS assayType, tbatd.ASY_PRJ AS assayProject, tbatd.ASY_DEPT_ID AS assayDepartmentId, @@ -136,6 +138,8 @@ T_BSN_ASY_TSK_DAT tbatd LEFT JOIN T_BSN_SB_SMP tbss ON tbatd.BSN_SB_SMP_ID = tbss.ID + LEFT JOIN T_CFG_ASY_MTHD tcam ON + tbatd.CFG_ASY_MTHD_ID = tcam.ID WHERE tbatd.DELETED = 0 AND tbatd.IS_ASN_TSKD = 0 @@ -157,15 +161,23 @@ AND tbss.SMP_RTN_CD = #{reqVO.sampleReturnCode} - GROUP BY tbss.ID , - tbss.SMP_NAME , - tbss.SMP_CD , - tbss.SMP_ASY_CD , - tbss.SMP_RTN_CD , + + AND tbss.SMP_NAME like '%' || #{reqVO.sampleName} || '%' + + + AND tcam.MTHD_NAME_CTGR like '%' || #{reqVO.configAssayMethodNameAndCategory} || '%' + + GROUP BY tbss.ID, + tbss.SMP_NAME, + tbss.SMP_CD, + tbss.SMP_ASY_CD, + tbss.SMP_RTN_CD, tbss.SMP_FLW_NDE_TM, - tbatd.BSN_SB_SMP_ID , - tbatd.CFG_ASY_MTHD_ID , - tbatd.ASY_TP , + tbatd.BSN_SB_SMP_ID, + tbatd.CFG_ASY_MTHD_ID, + tcam.NAME, + tcam.MTHD_NAME_CTGR, + tbatd.ASY_TP, tbatd.ASY_PRJ, tbatd.ASY_DEPT_ID, tbatd.ASY_DEPT_NAME