分析项目补正系数、分析项目判定表添加

This commit is contained in:
2025-10-13 14:40:48 +08:00
parent 8dedb9854c
commit 9a82e22131
39 changed files with 2660 additions and 78 deletions

View File

@@ -38,6 +38,8 @@ public interface ErrorCodeConstants {
ErrorCode CONFIG_ASSAY_METHOD_NOT_EXISTS = new ErrorCode(1_032_050_000, "检测方法配置不存在"); ErrorCode CONFIG_ASSAY_METHOD_NOT_EXISTS = new ErrorCode(1_032_050_000, "检测方法配置不存在");
ErrorCode CONFIG_ASSAY_METHOD_PROJECT_NOT_EXISTS = new ErrorCode(1_032_050_000, "检测方法分析项目配置不存在"); ErrorCode CONFIG_ASSAY_METHOD_PROJECT_NOT_EXISTS = new ErrorCode(1_032_050_000, "检测方法分析项目配置不存在");
ErrorCode CONFIG_ASSAY_METHOD_PROJECT_RANGE_NOT_EXISTS = new ErrorCode(1_032_050_000, "检测方法分析项目区间不存在"); ErrorCode CONFIG_ASSAY_METHOD_PROJECT_RANGE_NOT_EXISTS = new ErrorCode(1_032_050_000, "检测方法分析项目区间不存在");
ErrorCode CONFIG_ASSAY_METHOD_PROJECT_ASSESSMENT_NOT_EXISTS = new ErrorCode(1_032_050_000, "检测方法分析项目判定不存在");
ErrorCode CONFIG_ASSAY_METHOD_PROJECT_COEFFICIENT_NOT_EXISTS = new ErrorCode(1_032_050_000, "检测方法分析项目补正系数不存在");
ErrorCode CONFIG_REPORT_FIELD_NOT_EXISTS = new ErrorCode(1_032_050_000, "报表字段配置不存在"); ErrorCode CONFIG_REPORT_FIELD_NOT_EXISTS = new ErrorCode(1_032_050_000, "报表字段配置不存在");
ErrorCode CONFIG_STANDARD_SAMPLE_TYPE_NOT_EXISTS = new ErrorCode(1_032_050_000, "标准样类型配置不存在"); ErrorCode CONFIG_STANDARD_SAMPLE_TYPE_NOT_EXISTS = new ErrorCode(1_032_050_000, "标准样类型配置不存在");
ErrorCode CONFIG_STANDARD_SAMPLE_PROJECT_NOT_EXISTS = new ErrorCode(1_032_050_000, "标准样检测项目配置不存在"); ErrorCode CONFIG_STANDARD_SAMPLE_PROJECT_NOT_EXISTS = new ErrorCode(1_032_050_000, "标准样检测项目配置不存在");
@@ -55,6 +57,7 @@ public interface ErrorCodeConstants {
ErrorCode CONFIG_WAREHOUSE_LOCATION_INFOMATION_NOT_EXISTS = new ErrorCode(1_032_050_000, "样品库位信息不存在"); ErrorCode CONFIG_WAREHOUSE_LOCATION_INFOMATION_NOT_EXISTS = new ErrorCode(1_032_050_000, "样品库位信息不存在");
ErrorCode CONFIG_SIMPLE_FLOW_RULE_NOT_EXISTS = new ErrorCode(1_032_050_000, "LiteFlow规则配置不存在"); ErrorCode CONFIG_SIMPLE_FLOW_RULE_NOT_EXISTS = new ErrorCode(1_032_050_000, "LiteFlow规则配置不存在");
ErrorCode CONFIG_SIMPLE_FLOW_CODE_NOT_EXISTS = new ErrorCode(1_032_050_000, "LiteFlow脚本配置不存在"); ErrorCode CONFIG_SIMPLE_FLOW_CODE_NOT_EXISTS = new ErrorCode(1_032_050_000, "LiteFlow脚本配置不存在");
ErrorCode CONFIG_RULE_NOT_EXISTS = new ErrorCode(1_032_050_000, "规则配置不存在");
ErrorCode BASE_SAMPLE_NOT_EXISTS = new ErrorCode(1_032_050_000, "样品大类管理不存在"); ErrorCode BASE_SAMPLE_NOT_EXISTS = new ErrorCode(1_032_050_000, "样品大类管理不存在");
ErrorCode MATERIAL_ASSAY_STANDARD_DETAIL_NOT_EXISTS = new ErrorCode(1_032_050_000, "检测标准明细不存在"); ErrorCode MATERIAL_ASSAY_STANDARD_DETAIL_NOT_EXISTS = new ErrorCode(1_032_050_000, "检测标准明细不存在");

View File

@@ -110,6 +110,12 @@
<dependency> <dependency>
<groupId>com.zt.plat</groupId> <groupId>com.zt.plat</groupId>
<artifactId>zt-spring-boot-starter-test</artifactId> <artifactId>zt-spring-boot-starter-test</artifactId>
<exclusions>
<exclusion>
<groupId>com.vaadin.external.google</groupId>
<artifactId>android-json</artifactId>
</exclusion>
</exclusions>
</dependency> </dependency>
<!-- 工具类相关 --> <!-- 工具类相关 -->

View File

@@ -13,6 +13,7 @@ import com.zt.plat.module.qms.business.bus.controller.vo.BusinessAssayTaskDataRe
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessAssayTaskDataDO; import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessAssayTaskDataDO;
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessSubSampleDO; import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessSubSampleDO;
import com.zt.plat.module.qms.business.config.dal.dataobject.ConfigAssayMethodDO; import com.zt.plat.module.qms.business.config.dal.dataobject.ConfigAssayMethodDO;
import com.zt.plat.module.qms.enums.QmsCommonConstant;
import com.zt.plat.framework.mybatis.core.mapper.BaseMapperX; import com.zt.plat.framework.mybatis.core.mapper.BaseMapperX;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
@@ -25,11 +26,6 @@ import org.apache.ibatis.annotations.Param;
@Mapper @Mapper
public interface BusinessAssayTaskDataMapper extends BaseMapperX<BusinessAssayTaskDataDO> { public interface BusinessAssayTaskDataMapper extends BaseMapperX<BusinessAssayTaskDataDO> {
List<BusinessAssayTaskDataGroupRespVO> selectUnAssayTaskGroupList(@Param("reqVO") BusinessAssayTaskDataReqVO reqVO);
List<BusinessAssayTaskDataGroupRespVO> selectUnAuditTaskGroupList(@Param("reqVO") BusinessAssayTaskDataReqVO reqVO);
default List<BusinessAssayTaskDataExtendRespVO> selectList(BusinessAssayTaskDataReqVO reqVO) { default List<BusinessAssayTaskDataExtendRespVO> selectList(BusinessAssayTaskDataReqVO reqVO) {
return selectJoinList(BusinessAssayTaskDataExtendRespVO.class, new MPJLambdaWrapperX<BusinessAssayTaskDataDO>() return selectJoinList(BusinessAssayTaskDataExtendRespVO.class, new MPJLambdaWrapperX<BusinessAssayTaskDataDO>()
.leftJoin(ConfigAssayMethodDO.class, ConfigAssayMethodDO::getId, BusinessAssayTaskDataDO::getConfigAssayMethodId) .leftJoin(ConfigAssayMethodDO.class, ConfigAssayMethodDO::getId, BusinessAssayTaskDataDO::getConfigAssayMethodId)
@@ -102,4 +98,44 @@ public interface BusinessAssayTaskDataMapper extends BaseMapperX<BusinessAssayTa
.orderByDesc(BusinessAssayTaskDataDO::getId)); .orderByDesc(BusinessAssayTaskDataDO::getId));
} }
/**
* 查询未指派的分析任务分组
* @param reqVO
* @return
*/
List<BusinessAssayTaskDataGroupRespVO> selectUnAssayTaskGroupList(@Param("reqVO") BusinessAssayTaskDataReqVO reqVO);
/**
* 查询未审核的分析任务分组
* @param reqVO
* @return
*/
List<BusinessAssayTaskDataGroupRespVO> selectUnAuditTaskGroupList(@Param("reqVO") BusinessAssayTaskDataReqVO reqVO);
/**
* 根据任务分配单id查询分析任务
* @param businessAssayTaskId 任务分配单id
* @return
*/
default List<BusinessAssayTaskDataDO> selectByBusinessAssayTaskId(Long businessAssayTaskId) {
return selectList(new LambdaQueryWrapperX<BusinessAssayTaskDataDO>()
.eq(BusinessAssayTaskDataDO::getBusinessAssayTaskId, businessAssayTaskId));
}
/**
* 查询是否上报的分析任务
* @param excludeIds 排除的id列表
* @param businessSubSampleId 子样id
* @param configAssayMethodId 分析方法id
* @param isReported 是否上报
* @return
*/
default List<BusinessAssayTaskDataDO> selectIsReportedList(List<Long> excludeIds, Long businessSubSampleId, Long configAssayMethodId, Integer isReported) {
return selectList(new LambdaQueryWrapperX<BusinessAssayTaskDataDO>()
.notIn(BusinessAssayTaskDataDO::getId, excludeIds)
.eq(BusinessAssayTaskDataDO::getBusinessSubSampleId, businessSubSampleId)
.eq(BusinessAssayTaskDataDO::getConfigAssayMethodId, configAssayMethodId)
.eq(BusinessAssayTaskDataDO::getIsReported, isReported));
}
} }

View File

@@ -3,9 +3,11 @@ package com.zt.plat.module.qms.business.bus.dal.mapper;
import com.zt.plat.framework.common.pojo.PageResult; 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.LambdaQueryWrapperX;
import com.zt.plat.module.qms.business.bus.controller.vo.*; import com.zt.plat.module.qms.business.bus.controller.vo.*;
import com.zt.plat.module.qms.business.bus.controller.vo.BusinessAssayTaskDetailPageReqVO;
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessAssayTaskDetailDO; import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessAssayTaskDetailDO;
import com.zt.plat.framework.mybatis.core.mapper.BaseMapperX; import com.zt.plat.framework.mybatis.core.mapper.BaseMapperX;
import java.util.List;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
/** /**
@@ -33,4 +35,9 @@ public interface BusinessAssayTaskDetailMapper extends BaseMapperX<BusinessAssay
.orderByDesc(BusinessAssayTaskDetailDO::getId)); .orderByDesc(BusinessAssayTaskDetailDO::getId));
} }
default List<BusinessAssayTaskDetailDO> selectByBusinessAssayTaskId(Long businessAssayTaskId) {
return selectList(new LambdaQueryWrapperX<BusinessAssayTaskDetailDO>()
.eqIfPresent(BusinessAssayTaskDetailDO::getBusinessAssayTaskId, businessAssayTaskId));
}
} }

View File

@@ -0,0 +1,35 @@
package com.zt.plat.module.qms.business.bus.liteflow.sample.analysisaudit;
import java.math.BigDecimal;
import java.util.List;
import com.yomahub.liteflow.annotation.LiteflowComponent;
import com.yomahub.liteflow.core.NodeComponent;
import com.zt.plat.module.qms.business.config.dal.dataobject.ConfigAssayMethodProjectAssessmentDO;
import com.zt.plat.module.qms.business.config.dal.mapper.ConfigAssayMethodProjectAssessmentMapper;
import jakarta.annotation.Resource;
@LiteflowComponent(id = "sampleAnalysisProjectAssessmentCmp", name = "样品分析项目判定")
public class SampleAnalysisProjectAssessmentCmp extends NodeComponent {
@Resource
private ConfigAssayMethodProjectAssessmentMapper configAssayMethodProjectAssessmentMapper;
@Override
public void process() throws Exception {
List<ConfigAssayMethodProjectAssessmentDO> configAssayMethodProjectAssessmentList = configAssayMethodProjectAssessmentMapper.selectList();
BigDecimal min_yc = BigDecimal.ZERO;//最小允差
BigDecimal max_yc = BigDecimal.ZERO;//最大允差
BigDecimal min_va = BigDecimal.ZERO;//最小值
BigDecimal max_va = BigDecimal.ZERO;//最大值
BigDecimal k = BigDecimal.ZERO;//斜率k
BigDecimal b = BigDecimal.ZERO;//纵截距b
BigDecimal c = BigDecimal.ZERO;//调整参数
BigDecimal yc_value = BigDecimal.ZERO;//允差值
}
}

View File

@@ -3,6 +3,7 @@ package com.zt.plat.module.qms.business.bus.liteflow.sample.entrust;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Comparator; import java.util.Comparator;
import java.util.Iterator;
import java.util.List; import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@@ -209,7 +210,7 @@ public class SampleEntrustGenSampleDataCmp extends NodeComponent {
List<Long> configAssayMethodIdList = materialAssayStandardMethodList.stream().map(m -> m.getConfigAssayMethodId()).distinct().collect(Collectors.toList()); List<Long> configAssayMethodIdList = materialAssayStandardMethodList.stream().map(m -> m.getConfigAssayMethodId()).distinct().collect(Collectors.toList());
//查找子样配置 //查找子样配置
List<Long> configSubSampleIdList = configSubSampleMethodList.stream().filter(f -> configAssayMethodIdList.contains(f.getConfigAssayMethodId())).map(m -> m.getConfigSubSampleId()).distinct().collect(Collectors.toList()); List<Long> configSubSampleIdList = configSubSampleMethodList.stream().filter(f -> f.getIsDefaultUse().equals(QmsCommonConstant.YES) && configAssayMethodIdList.contains(f.getConfigAssayMethodId())).map(m -> m.getConfigSubSampleId()).distinct().collect(Collectors.toList());
//查询当前委托样品对应的子样 //查询当前委托样品对应的子样
List<ConfigSubSampleDO> entrustConfigSubSampleList = configSubSampleList.stream().filter(f -> configSubSampleIdList.contains(f.getId()) && f.getBaseSampleId().equals(businessSampleEntrustDetailDO.getBaseSampleId())).distinct().collect(Collectors.toList()); List<ConfigSubSampleDO> entrustConfigSubSampleList = configSubSampleList.stream().filter(f -> configSubSampleIdList.contains(f.getId()) && f.getBaseSampleId().equals(businessSampleEntrustDetailDO.getBaseSampleId())).distinct().collect(Collectors.toList());
@@ -309,11 +310,13 @@ public class SampleEntrustGenSampleDataCmp extends NodeComponent {
//子样对应的分析班组 //子样对应的分析班组
BusinessSubSampleAnalysisGroupDO businessSubSampleAnalysisGroupDO = null; BusinessSubSampleAnalysisGroupDO businessSubSampleAnalysisGroupDO = null;
//根据检测方法循环
BusinessAssayTaskDataDO businessAssayTaskDataDO = null;
for (Long configAssayMethodId : configAssayMethodIdList) { for (Long configAssayMethodId : configAssayMethodIdList) {
//查询分析方法
ConfigAssayMethodDO configAssayMethodDO = configAssayMethodList.stream().filter(f -> f.getId().equals(configAssayMethodId)).findFirst().orElse(null); ConfigAssayMethodDO configAssayMethodDO = configAssayMethodList.stream().filter(f -> f.getId().equals(configAssayMethodId)).findFirst().orElse(null);
//查询子样对应的分析方法
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.getAssayDepartmentId().equals(configAssayMethodDO.getAssayDepartmentId())).findFirst().orElse(null);
if (businessSubSampleAnalysisGroupDO == null) { if (businessSubSampleAnalysisGroupDO == null) {
businessSubSampleAnalysisGroupDO = new BusinessSubSampleAnalysisGroupDO(); businessSubSampleAnalysisGroupDO = new BusinessSubSampleAnalysisGroupDO();
@@ -328,6 +331,14 @@ public class SampleEntrustGenSampleDataCmp extends NodeComponent {
businessSubSampleAnalysisGroupDOList.add(businessSubSampleAnalysisGroupDO); businessSubSampleAnalysisGroupDOList.add(businessSubSampleAnalysisGroupDO);
} }
//根据检测方法循环
BusinessAssayTaskDataDO businessAssayTaskDataDO = null;
//根据任务数判断是平行还是
String assayType = configSubSampleMethodDO.getTaskCount() > 1 ? "平行" : "单杯";
//根据任务数循环
for (int i = 0; i < configSubSampleMethodDO.getTaskCount(); i++) {
//子样检测任务 //子样检测任务
businessAssayTaskDataDO = new BusinessAssayTaskDataDO(); businessAssayTaskDataDO = new BusinessAssayTaskDataDO();
businessAssayTaskDataDO.setId(IdWorker.getId()); businessAssayTaskDataDO.setId(IdWorker.getId());
@@ -335,7 +346,7 @@ public class SampleEntrustGenSampleDataCmp extends NodeComponent {
businessAssayTaskDataDO.setBusinessSubParentSampleId(businessSubSampleDO.getBusinessSubParentSampleId()); businessAssayTaskDataDO.setBusinessSubParentSampleId(businessSubSampleDO.getBusinessSubParentSampleId());
businessAssayTaskDataDO.setBusinessSubSampleId(businessSubSampleDO.getId()); businessAssayTaskDataDO.setBusinessSubSampleId(businessSubSampleDO.getId());
businessAssayTaskDataDO.setConfigAssayMethodId(configAssayMethodId); businessAssayTaskDataDO.setConfigAssayMethodId(configAssayMethodId);
businessAssayTaskDataDO.setAssayType("单杯"); businessAssayTaskDataDO.setAssayType(assayType);
businessAssayTaskDataDO.setTaskType("常规"); businessAssayTaskDataDO.setTaskType("常规");
businessAssayTaskDataDO.setConfigSampleFlowId(configSampleFlowSub.getId()); businessAssayTaskDataDO.setConfigSampleFlowId(configSampleFlowSub.getId());
businessAssayTaskDataDO.setSampleFlowNodeKey(sampleFlowNodeSub.getNodeKey()); businessAssayTaskDataDO.setSampleFlowNodeKey(sampleFlowNodeSub.getNodeKey());
@@ -392,6 +403,7 @@ public class SampleEntrustGenSampleDataCmp extends NodeComponent {
assayProjectBuilder.delete(assayProjectBuilder.length() - 1 , assayProjectBuilder.length()); assayProjectBuilder.delete(assayProjectBuilder.length() - 1 , assayProjectBuilder.length());
businessAssayTaskDataDO.setAssayProject(assayProjectBuilder.toString()); businessAssayTaskDataDO.setAssayProject(assayProjectBuilder.toString());
businessAssayTaskDataDOList.add(businessAssayTaskDataDO); businessAssayTaskDataDOList.add(businessAssayTaskDataDO);
}
} }

View File

@@ -5,6 +5,7 @@ import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSON;
import com.ql.util.express.ExpressRunner;
import com.yomahub.liteflow.annotation.LiteflowComponent; import com.yomahub.liteflow.annotation.LiteflowComponent;
import com.yomahub.liteflow.core.NodeComponent; import com.yomahub.liteflow.core.NodeComponent;
@@ -24,6 +25,9 @@ public class SampleSubProcessUpdateCmp extends NodeComponent {
// @Resource // @Resource
// private ConfigSubSampleService configSubSampleService; // private ConfigSubSampleService configSubSampleService;
@Resource
private ExpressRunner expressRunner;
@Resource @Resource
private ConfigSampleFlowService configSampleFlowService; private ConfigSampleFlowService configSampleFlowService;

Some files were not shown because too many files have changed in this diff Show More