diff --git a/zt-module-qms/zt-module-qms-api/src/main/java/com/zt/plat/module/qms/mq/SampleEntrustRegistrationAssayCompleteMessage.java b/zt-module-qms/zt-module-qms-api/src/main/java/com/zt/plat/module/qms/mq/SampleEntrustRegistrationAssayCompleteMessage.java
new file mode 100644
index 00000000..c131c0b7
--- /dev/null
+++ b/zt-module-qms/zt-module-qms-api/src/main/java/com/zt/plat/module/qms/mq/SampleEntrustRegistrationAssayCompleteMessage.java
@@ -0,0 +1,45 @@
+package com.zt.plat.module.qms.mq;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * SampleEntrustRegistrationAssayCompleteMessage
+ * 样品委托登记分析完成消息
+ */
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class SampleEntrustRegistrationAssayCompleteMessage {
+
+ /** 统一回调主题 */
+ public static final String TOPIC = "SAMPLE_ENTRUST_REG_ASSAY_COMPLETE";
+
+ /**
+ * 委托登记id
+ */
+ private Long businessSampleEntrustRegistrationId;
+
+ /**
+ * 委托来源Id
+ */
+ private Long configEntrustSourceId;
+
+ /**
+ * 委托来源
+ */
+ private String configEntrustSourceName;
+
+ /**
+ * 委托单号
+ */
+ private String entrustNumber;
+
+ /**
+ * 委托单号
+ */
+ private String entrustUnit;
+}
diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessSampleEntrustRegistrationExtendRespVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessSampleEntrustRegistrationExtendRespVO.java
index 478e00c8..580c4059 100644
--- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessSampleEntrustRegistrationExtendRespVO.java
+++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessSampleEntrustRegistrationExtendRespVO.java
@@ -14,6 +14,9 @@ public class BusinessSampleEntrustRegistrationExtendRespVO extends BusinessSampl
@ExcelProperty("委托来源,西南铜委托、商检委托、内部委托、抽查委托、内审委托、生产委托")
private String configEntrustSourceName;
+ @Schema(description = "委托来源key")
+ private String configEntrustSourceKey;
+
@Schema(description = "样品称重数量")
@ExcelProperty("样品称重数量")
private Integer sampleWeighingCount;
diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessSampleEntrustUnStandardProjectPageReqVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessSampleEntrustUnStandardProjectPageReqVO.java
index c21ccafa..a84258fd 100644
--- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessSampleEntrustUnStandardProjectPageReqVO.java
+++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessSampleEntrustUnStandardProjectPageReqVO.java
@@ -37,6 +37,9 @@ public class BusinessSampleEntrustUnStandardProjectPageReqVO extends PageParam {
@Schema(description = "任务数", example = "15264")
private Integer taskCount;
+ @Schema(description = "是否已分配任务")
+ private Integer isAssignTasked;
+
@Schema(description = "检测项目ID,字典表:【T_DIC_PRJ】", example = "17192")
private Long dictionaryProjectId;
diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessSampleEntrustUnStandardProjectRespVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessSampleEntrustUnStandardProjectRespVO.java
index 350bc1c5..1dc9303c 100644
--- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessSampleEntrustUnStandardProjectRespVO.java
+++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessSampleEntrustUnStandardProjectRespVO.java
@@ -47,6 +47,9 @@ public class BusinessSampleEntrustUnStandardProjectRespVO {
@ExcelProperty("任务数")
private Integer taskCount;
+ @Schema(description = "是否已分配任务")
+ private Integer isAssignTasked;
+
@Schema(description = "检测项目ID,字典表:【T_DIC_PRJ】", requiredMode = Schema.RequiredMode.REQUIRED, example = "17192")
@ExcelProperty("检测项目ID,字典表:【T_DIC_PRJ】")
private Long dictionaryProjectId;
diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessSampleEntrustUnStandardProjectSaveReqVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessSampleEntrustUnStandardProjectSaveReqVO.java
index cf25d068..d82226e4 100644
--- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessSampleEntrustUnStandardProjectSaveReqVO.java
+++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessSampleEntrustUnStandardProjectSaveReqVO.java
@@ -37,6 +37,9 @@ public class BusinessSampleEntrustUnStandardProjectSaveReqVO {
@Schema(description = "任务数", example = "15264")
private Integer taskCount;
+ @Schema(description = "是否已分配任务")
+ private Integer isAssignTasked;
+
@Schema(description = "检测项目ID,字典表:【T_DIC_PRJ】", requiredMode = Schema.RequiredMode.REQUIRED, example = "17192")
@NotNull(message = "检测项目ID,字典表:【T_DIC_PRJ】不能为空")
private Long dictionaryProjectId;
diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/SampleProjectResultPageReqVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/SampleProjectResultPageReqVO.java
index d80b829c..ebca02ae 100644
--- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/SampleProjectResultPageReqVO.java
+++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/SampleProjectResultPageReqVO.java
@@ -18,6 +18,12 @@ import lombok.Data;
public class SampleProjectResultPageReqVO extends PageParam {
private static final long serialVersionUID = 7153959501553288866L;
+
+ @Schema(description = "检验委托登记ID", example = "17352")
+ private Long businessSampleEntrustRegistrationId;
+
+ @Schema(description = "主样业务ID", example = "9560")
+ private Long businessBaseSampleId;
@Schema(description = "分析部门ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "2493")
private Long assayDepartmentId;
diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/dal/dataobject/BusinessSampleEntrustUnStandardProjectDO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/dal/dataobject/BusinessSampleEntrustUnStandardProjectDO.java
index 2bb9f113..79bf1677 100644
--- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/dal/dataobject/BusinessSampleEntrustUnStandardProjectDO.java
+++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/dal/dataobject/BusinessSampleEntrustUnStandardProjectDO.java
@@ -72,6 +72,11 @@ public class BusinessSampleEntrustUnStandardProjectDO extends BusinessBaseDO {
@TableField("TSK_CNT")
private Integer taskCount;
/**
+ * 是否已分配任务
+ */
+ @TableField("IS_ASN_TSKD")
+ private Integer isAssignTasked;
+ /**
* 检测项目ID,字典表:【T_DIC_PRJ】
*/
@TableField("DIC_PRJ_ID")
diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/dal/mapper/BusinessSampleEntrustRegistrationMapper.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/dal/mapper/BusinessSampleEntrustRegistrationMapper.java
index 4e2de623..d1342891 100644
--- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/dal/mapper/BusinessSampleEntrustRegistrationMapper.java
+++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/dal/mapper/BusinessSampleEntrustRegistrationMapper.java
@@ -28,6 +28,7 @@ public interface BusinessSampleEntrustRegistrationMapper extends BaseMapperX()
+ .leftJoin(ConfigEntrustSourceDO.class, ConfigEntrustSourceDO::getId, BusinessSampleEntrustRegistrationDO::getConfigEntrustSourceId)
+ .selectAll(BusinessSampleEntrustRegistrationDO.class)
+ .selectAs(ConfigEntrustSourceDO::getName, BusinessSampleEntrustRegistrationExtendRespVO::getConfigEntrustSourceName)
+ .selectAs(ConfigEntrustSourceDO::getKey, BusinessSampleEntrustRegistrationExtendRespVO::getConfigEntrustSourceKey)
+ .eq(BusinessSampleEntrustRegistrationDO::getId, id)
+ );
+ }
//查询报告待编制数据
diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/dal/mapper/BusinessSampleEntrustUnStandardProjectMapper.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/dal/mapper/BusinessSampleEntrustUnStandardProjectMapper.java
index 7330c63d..2268d8d5 100644
--- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/dal/mapper/BusinessSampleEntrustUnStandardProjectMapper.java
+++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/dal/mapper/BusinessSampleEntrustUnStandardProjectMapper.java
@@ -37,6 +37,7 @@ public interface BusinessSampleEntrustUnStandardProjectMapper extends BaseMapper
.eqIfPresent(BusinessSampleEntrustUnStandardProjectDO::getConfigAssayMethodId, reqVO.getConfigAssayMethodId())
.eqIfPresent(BusinessSampleEntrustUnStandardProjectDO::getConfigAssayMethodProjectId, reqVO.getConfigAssayMethodProjectId())
.eqIfPresent(BusinessSampleEntrustUnStandardProjectDO::getTaskCount, reqVO.getTaskCount())
+ .eqIfPresent(BusinessSampleEntrustUnStandardProjectDO::getIsAssignTasked, reqVO.getIsAssignTasked())
.eqIfPresent(BusinessSampleEntrustUnStandardProjectDO::getDictionaryProjectId, reqVO.getDictionaryProjectId())
.eqIfPresent(BusinessSampleEntrustUnStandardProjectDO::getUsage, reqVO.getUsage())
.eqIfPresent(BusinessSampleEntrustUnStandardProjectDO::getIsEnabled, reqVO.getIsEnabled())
@@ -72,6 +73,10 @@ public interface BusinessSampleEntrustUnStandardProjectMapper extends BaseMapper
mpjLambdaWrapper.eq(BusinessSampleEntrustUnStandardProjectDO::getAssayDepartmentId, reqVO.getAssayDepartmentId());
}
+ if (ObjectUtil.isNotEmpty(reqVO.getIsAssignTasked())) {
+ mpjLambdaWrapper.eq(BusinessSampleEntrustUnStandardProjectDO::getIsAssignTasked, reqVO.getIsAssignTasked());
+ }
+
if (ObjectUtil.isNotEmpty(reqVO.getSampleName())) {
mpjLambdaWrapper.like(BusinessSubSampleDO::getSampleName, reqVO.getSampleName());
}
@@ -98,7 +103,21 @@ public interface BusinessSampleEntrustUnStandardProjectMapper extends BaseMapper
return selectList(new LambdaQueryWrapperX()
.in(BusinessSampleEntrustUnStandardProjectDO::getBusinessSampleEntrustDetailId, businessSampleEntrustDetailIdList));
}
-
+
+ default List selectExtendByIds(List idList) {
+ return selectJoinList(BusinessSampleEntrustUnStandardProjectExtendRespVO.class, new MPJLambdaWrapperX()
+ .leftJoin(BusinessSampleEntrustDetailDO.class, BusinessSampleEntrustDetailDO::getId, BusinessSampleEntrustUnStandardProjectDO::getBusinessSampleEntrustDetailId)
+ .leftJoin(DictionaryProjectDO.class, DictionaryProjectDO::getId, BusinessSampleEntrustUnStandardProjectDO::getDictionaryProjectId)
+ .selectAll(BusinessSampleEntrustUnStandardProjectDO.class)
+ .selectAs(BusinessSampleEntrustDetailDO::getBusinessSampleEntrustRegistrationId, BusinessSampleEntrustUnStandardProjectExtendRespVO::getBusinessSampleEntrustRegistrationId)
+ .selectAs(BusinessSampleEntrustDetailDO::getBusinessBaseSampleId, BusinessSampleEntrustUnStandardProjectExtendRespVO::getBusinessBaseSampleId)
+ .selectAs(DictionaryProjectDO::getName, BusinessSampleEntrustUnStandardProjectExtendRespVO::getDictionaryProjectName)
+ .selectAs(DictionaryProjectDO::getSimpleName, BusinessSampleEntrustUnStandardProjectExtendRespVO::getDictionaryProjectSimpleName)
+ .selectAs(DictionaryProjectDO::getShowName, BusinessSampleEntrustUnStandardProjectExtendRespVO::getDictionaryProjectShowName)
+ .in(BusinessSampleEntrustUnStandardProjectDO::getId, idList)
+ .orderByAsc(BusinessSampleEntrustUnStandardProjectDO::getId)
+ );
+ }
default List selectByBusinessBaseSampleId(Long businessBaseSampleId) {
return selectJoinList(BusinessSampleEntrustUnStandardProjectExtendRespVO.class, new MPJLambdaWrapperX()
diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/liteflow/param/SampleTaskAssignProjectMethodParam.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/liteflow/param/SampleTaskAssignProjectMethodParam.java
index 306b34bf..e1e4359a 100644
--- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/liteflow/param/SampleTaskAssignProjectMethodParam.java
+++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/liteflow/param/SampleTaskAssignProjectMethodParam.java
@@ -17,6 +17,12 @@ public class SampleTaskAssignProjectMethodParam {
/** 分析方法id **/
private Long configAssayMethodId;
+
+ /** 分析类型 **/
+ private String assayType;
+
+ /** 分析任务数 **/
+ private Integer assayTaskCount;
/** 检测项目数据id列表 **/
private List assayProjectDataIdList;
diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/liteflow/param/SampleTaskAssignProjectNoMethodParam.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/liteflow/param/SampleTaskAssignProjectNoMethodParam.java
index 414b1248..7e635b45 100644
--- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/liteflow/param/SampleTaskAssignProjectNoMethodParam.java
+++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/liteflow/param/SampleTaskAssignProjectNoMethodParam.java
@@ -18,6 +18,12 @@ public class SampleTaskAssignProjectNoMethodParam {
/** 分析方法id **/
private Long configAssayMethodId;
+ /** 分析类型 **/
+ private String assayType;
+
+ /** 分析任务数 **/
+ private Integer assayTaskCount;
+
/** 样品委托无标准的检测项目id列表 **/
private List sampleEntrustUnStandardProjectIdList;
}
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 739582a7..9851ec47 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
@@ -771,7 +771,7 @@ public class SampleEntrustGenSampleDataCmp extends NodeComponent {
Long currentBusinessAssayTaskDataId = businessAssayTaskDataDO.getId();
List currentDictionaryProjectIdList = businessAssayProjectDataDOList.stream().filter(f -> f.getBusinessAssayTaskDataId().equals(currentBusinessAssayTaskDataId)).map(m -> m.getDictionaryProjectId()).collect(Collectors.toList());
List currentDictionaryProjectShowNameList = dictionaryProjectList.stream().filter(f -> currentDictionaryProjectIdList.contains(f.getId())).map(m -> m.getShowName()).collect(Collectors.toList());
- businessAssayTaskDataDO.setAssayProject(CollUtil.join(currentDictionaryProjectShowNameList, ","));
+ businessAssayTaskDataDO.setAssayProject(CollUtil.join(currentDictionaryProjectShowNameList, ","));
}
}
diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/liteflow/sample/taskassign/SampleTaskAssignContextInitCmp.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/liteflow/sample/taskassign/SampleTaskAssignContextInitCmp.java
index fafccbfd..d604d1ef 100644
--- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/liteflow/sample/taskassign/SampleTaskAssignContextInitCmp.java
+++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/liteflow/sample/taskassign/SampleTaskAssignContextInitCmp.java
@@ -9,6 +9,8 @@ import com.zt.plat.framework.tenant.core.context.TenantContextHolder;
import com.zt.plat.module.qms.business.bus.liteflow.param.SampleTaskAssignManualParam;
import com.zt.plat.module.qms.business.bus.liteflow.param.SampleTaskAssignManualTypeParam;
import com.zt.plat.module.qms.business.bus.liteflow.param.SampleTaskAssignMethodParam;
+import com.zt.plat.module.qms.business.bus.liteflow.param.SampleTaskAssignProjectMethodParam;
+import com.zt.plat.module.qms.business.bus.liteflow.param.SampleTaskAssignProjectNoMethodParam;
import com.zt.plat.module.qms.business.bus.liteflow.param.SampleTaskAssignSampleParam;
import com.zt.plat.module.qms.business.bus.liteflow.slot.SampleTaskAssignContext;
import com.zt.plat.module.qms.business.bus.liteflow.slot.SampleTaskAssignTypeEnum;
@@ -60,6 +62,26 @@ public class SampleTaskAssignContextInitCmp extends NodeComponent {
sampleTaskAssignContext.setAssignAssayUserList(sampleTaskAssignManualParam.getAssignAssayUserList());
sampleTaskAssignContext.setAssayTaskDataIdList(sampleTaskAssignManualParam.getAssayTaskDataIdList());
}
+
+ if (this.getRequestData() instanceof SampleTaskAssignProjectMethodParam) {
+ SampleTaskAssignProjectMethodParam sampleTaskAssignProjectMethodParam = this.getRequestData();
+ sampleTaskAssignContext.setSampleTaskAssignType(SampleTaskAssignTypeEnum.PROJECT_METHOD);
+ sampleTaskAssignContext.setAssignConfigAssayMethodId(sampleTaskAssignProjectMethodParam.getConfigAssayMethodId());
+ sampleTaskAssignContext.setAssayType(sampleTaskAssignProjectMethodParam.getAssayType());
+ sampleTaskAssignContext.setAssayTaskCount(sampleTaskAssignProjectMethodParam.getAssayTaskCount());
+ sampleTaskAssignContext.setAssignAssayUserList(sampleTaskAssignProjectMethodParam.getAssignAssayUserList());
+ sampleTaskAssignContext.setAssayProjectDataIdList(sampleTaskAssignProjectMethodParam.getAssayProjectDataIdList());
+ }
+
+ if (this.getRequestData() instanceof SampleTaskAssignProjectNoMethodParam) {
+ SampleTaskAssignProjectNoMethodParam sampleTaskAssignProjectNoMethodParam = this.getRequestData();
+ sampleTaskAssignContext.setSampleTaskAssignType(SampleTaskAssignTypeEnum.PROJECT_NO_METHOD);
+ sampleTaskAssignContext.setAssignConfigAssayMethodId(sampleTaskAssignProjectNoMethodParam.getConfigAssayMethodId());
+ sampleTaskAssignContext.setAssayType(sampleTaskAssignProjectNoMethodParam.getAssayType());
+ sampleTaskAssignContext.setAssayTaskCount(sampleTaskAssignProjectNoMethodParam.getAssayTaskCount());
+ sampleTaskAssignContext.setAssignAssayUserList(sampleTaskAssignProjectNoMethodParam.getAssignAssayUserList());
+ sampleTaskAssignContext.setSampleEntrustUnStandardProjectIdList(sampleTaskAssignProjectNoMethodParam.getSampleEntrustUnStandardProjectIdList());
+ }
}
diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/liteflow/sample/taskassign/SampleTaskAssignDataSaveOrUpdateCmp.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/liteflow/sample/taskassign/SampleTaskAssignDataSaveOrUpdateCmp.java
index 42a47d19..20d9094c 100644
--- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/liteflow/sample/taskassign/SampleTaskAssignDataSaveOrUpdateCmp.java
+++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/liteflow/sample/taskassign/SampleTaskAssignDataSaveOrUpdateCmp.java
@@ -6,22 +6,35 @@ import com.yomahub.liteflow.annotation.LiteflowComponent;
import com.yomahub.liteflow.core.NodeComponent;
import cn.hutool.core.collection.CollUtil;
+
+import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessAssayParameterDataDO;
+import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessAssayProjectDataDO;
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessAssayTaskDO;
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessAssayTaskDataDO;
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessAssayTaskDetailDO;
+import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessAssayTaskParameterDataDO;
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.BusinessQCManagementParameterDataDO;
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessQCManagementProjectDataDO;
+import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessSampleEntrustUnStandardProjectDO;
+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.mapper.BusinessAssayParameterDataMapper;
+import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessAssayProjectDataMapper;
import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessAssayTaskDataMapper;
import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessAssayTaskDetailMapper;
import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessAssayTaskMapper;
+import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessAssayTaskParameterDataMapper;
import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessQCCoefficientDataMapper;
import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessQCCoefficientParameterDataMapper;
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.BusinessSampleEntrustUnStandardProjectMapper;
+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.liteflow.slot.SampleTaskAssignContext;
import jakarta.annotation.Resource;
@@ -37,6 +50,24 @@ public class SampleTaskAssignDataSaveOrUpdateCmp extends NodeComponent {
@Resource
private BusinessAssayTaskDataMapper businessAssayTaskDataMapper;
+ @Resource
+ private BusinessSubParentSampleAssessmentMapper businessSubParentSampleAssessmentMapper;
+
+ @Resource
+ private BusinessSubSampleAssessmentMapper businessSubSampleAssessmentMapper;
+
+ @Resource
+ private BusinessAssayTaskParameterDataMapper businessAssayTaskParameterDataMapper;
+
+ @Resource
+ private BusinessAssayProjectDataMapper businessAssayProjectDataMapper;
+
+ @Resource
+ private BusinessAssayParameterDataMapper businessAssayParameterDataMapper;
+
+ @Resource
+ private BusinessSampleEntrustUnStandardProjectMapper businessSampleEntrustUnStandardProjectMapper;
+
@Resource
private BusinessQCCoefficientDataMapper businessQCCoefficientDataMapper;
@@ -56,14 +87,30 @@ public class SampleTaskAssignDataSaveOrUpdateCmp extends NodeComponent {
public void process() throws Exception {
SampleTaskAssignContext sampleTaskAssignContext = this.getContextBean(SampleTaskAssignContext.class);
+ List saveBusinessSubParentSampleAssessmentList = sampleTaskAssignContext.getSaveBusinessSubParentSampleAssessmentList();
+
+ List saveBusinessSubSampleAssessmentList = sampleTaskAssignContext.getSaveBusinessSubSampleAssessmentList();
+
List savebusinessAssayTaskList = sampleTaskAssignContext.getSaveBusinessAssayTaskList();
List updateBusinessAssayTaskList = sampleTaskAssignContext.getUpdateBusinessAssayTaskList();
List businessAssayTaskDetailList = sampleTaskAssignContext.getBusinessAssayTaskDetailList();
+ List saveBusinessAssayTaskDataList = sampleTaskAssignContext.getSaveBusinessAssayTaskDataList();
+
List businessAssayTaskDataList = sampleTaskAssignContext.getBusinessAssayTaskDataList();
+ List saveBusinessAssayTaskParameterDataList = sampleTaskAssignContext.getSaveBusinessAssayTaskParameterDataList();
+
+ List saveBusinessAssayProjectDataList = sampleTaskAssignContext.getSaveBusinessAssayProjectDataList();
+
+ List saveBusinessAssayParameterDataList = sampleTaskAssignContext.getSaveBusinessAssayParameterDataList();
+
+ List saveBusinessSampleEntrustUnStandardProjectList = sampleTaskAssignContext.getSaveBusinessSampleEntrustUnStandardProjectList();
+
+ List updateBusinessSampleEntrustUnStandardProjectList = sampleTaskAssignContext.getUpdateBusinessSampleEntrustUnStandardProjectList();
+
List businessQCCoefficientDataList = sampleTaskAssignContext.getBusinessQCCoefficientDataList();
List businessQCCoefficientParameterDataList = sampleTaskAssignContext.getBusinessQCCoefficientParameterDataList();
@@ -74,6 +121,14 @@ public class SampleTaskAssignDataSaveOrUpdateCmp extends NodeComponent {
List businessQCManagementParameterDataDOList = sampleTaskAssignContext.getBusinessQCManagementParameterDataDOList();
+ if (CollUtil.isNotEmpty(saveBusinessSubParentSampleAssessmentList)) {
+ this.businessSubParentSampleAssessmentMapper.insertBatch(saveBusinessSubParentSampleAssessmentList);
+ }
+
+ if (CollUtil.isNotEmpty(saveBusinessSubSampleAssessmentList)) {
+ this.businessSubSampleAssessmentMapper.insertBatch(saveBusinessSubSampleAssessmentList);
+ }
+
if (CollUtil.isNotEmpty(savebusinessAssayTaskList)) {
this.businessAssayTaskMapper.insertBatch(savebusinessAssayTaskList);
}
@@ -86,10 +141,34 @@ public class SampleTaskAssignDataSaveOrUpdateCmp extends NodeComponent {
this.businessAssayTaskDetailMapper.insertBatch(businessAssayTaskDetailList);
}
+ if (CollUtil.isNotEmpty(saveBusinessAssayTaskDataList)) {
+ this.businessAssayTaskDataMapper.insertBatch(saveBusinessAssayTaskDataList);
+ }
+
if (CollUtil.isNotEmpty(businessAssayTaskDataList)) {
this.businessAssayTaskDataMapper.updateBatch(businessAssayTaskDataList);
}
+ if (CollUtil.isNotEmpty(saveBusinessAssayTaskParameterDataList)) {
+ this.businessAssayTaskParameterDataMapper.insertBatch(saveBusinessAssayTaskParameterDataList);
+ }
+
+ if (CollUtil.isNotEmpty(saveBusinessAssayProjectDataList)) {
+ this.businessAssayProjectDataMapper.insertBatch(saveBusinessAssayProjectDataList);
+ }
+
+ if (CollUtil.isNotEmpty(saveBusinessAssayParameterDataList)) {
+ this.businessAssayParameterDataMapper.insertBatch(saveBusinessAssayParameterDataList);
+ }
+
+ if (CollUtil.isNotEmpty(saveBusinessSampleEntrustUnStandardProjectList)) {
+ this.businessSampleEntrustUnStandardProjectMapper.insertBatch(saveBusinessSampleEntrustUnStandardProjectList);
+ }
+
+ if (CollUtil.isNotEmpty(updateBusinessSampleEntrustUnStandardProjectList)) {
+ this.businessSampleEntrustUnStandardProjectMapper.updateBatch(updateBusinessSampleEntrustUnStandardProjectList);
+ }
+
if (CollUtil.isNotEmpty(businessQCCoefficientDataList)) {
this.businessQCCoefficientDataMapper.insertBatch(businessQCCoefficientDataList);
}
diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/liteflow/sample/taskassign/SampleTaskAssignProjectNoMethodCmp.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/liteflow/sample/taskassign/SampleTaskAssignProjectNoMethodCmp.java
index bf80aed5..62ccb84e 100644
--- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/liteflow/sample/taskassign/SampleTaskAssignProjectNoMethodCmp.java
+++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/liteflow/sample/taskassign/SampleTaskAssignProjectNoMethodCmp.java
@@ -1,15 +1,410 @@
package com.zt.plat.module.qms.business.bus.liteflow.sample.taskassign;
+import java.time.LocalDateTime;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.stream.Collectors;
+
+import org.apache.commons.lang3.StringUtils;
+
+import com.baomidou.mybatisplus.core.toolkit.IdWorker;
import com.yomahub.liteflow.annotation.LiteflowComponent;
import com.yomahub.liteflow.core.NodeComponent;
+import com.zt.plat.framework.security.core.LoginUser;
+import com.zt.plat.module.qms.business.bus.controller.vo.BusinessSampleEntrustUnStandardProjectExtendRespVO;
+import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessAssayParameterDataDO;
+import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessAssayProjectDataDO;
+import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessAssayTaskDO;
+import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessAssayTaskDataDO;
+import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessAssayTaskDetailDO;
+import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessAssayTaskParameterDataDO;
+import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessSampleEntrustUnStandardProjectDO;
+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.BusinessAssayTaskDataMapper;
+import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessAssayTaskMapper;
+import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessSampleEntrustUnStandardProjectMapper;
+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.AssignAssayUser;
import com.zt.plat.module.qms.business.bus.liteflow.slot.SampleTaskAssignContext;
import com.zt.plat.module.qms.business.bus.liteflow.slot.SampleTaskAssignTypeEnum;
+import com.zt.plat.module.qms.business.config.controller.vo.ConfigAssayMethodProjectExtendRespVO;
+import com.zt.plat.module.qms.business.config.dal.dataobject.ConfigAssayMethodDO;
+import com.zt.plat.module.qms.business.config.dal.dataobject.ConfigAssayMethodParameterDO;
+import com.zt.plat.module.qms.business.config.dal.dataobject.ConfigAssayMethodProjectParameterDO;
+import com.zt.plat.module.qms.business.config.dal.dataobject.ConfigReportTemplateDO;
+import com.zt.plat.module.qms.business.config.dal.mapper.ConfigAssayMethodMapper;
+import com.zt.plat.module.qms.business.config.dal.mapper.ConfigAssayMethodParameterMapper;
+import com.zt.plat.module.qms.business.config.dal.mapper.ConfigAssayMethodProjectMapper;
+import com.zt.plat.module.qms.business.config.dal.mapper.ConfigAssayMethodProjectParameterMapper;
+import com.zt.plat.module.qms.business.config.dal.mapper.ConfigReportTemplateMapper;
+import com.zt.plat.module.qms.common.dic.dal.dataobject.DictionaryBusinessDO;
+import com.zt.plat.module.qms.common.dic.dal.mapper.DictionaryBusinessMapper;
+import com.zt.plat.module.qms.core.code.SequenceUtil;
+import com.zt.plat.module.qms.enums.QmsCommonConstant;
+
+import cn.hutool.core.bean.BeanUtil;
+import jakarta.annotation.Resource;
@LiteflowComponent(id = "sampleTaskAssignProjectNoMethodCmp", name = "手动分配(按检测项目未指定方法分配)")
public class SampleTaskAssignProjectNoMethodCmp extends NodeComponent {
+ @Resource
+ private SequenceUtil sequenceUtil;
+
+ @Resource
+ private DictionaryBusinessMapper dictionaryBusinessMapper;
+
+ @Resource
+ private ConfigAssayMethodMapper configAssayMethodMapper;
+
+ @Resource
+ private ConfigAssayMethodParameterMapper configAssayMethodParameterMapper;
+
+ @Resource
+ private ConfigAssayMethodProjectMapper configAssayMethodProjectMapper;
+
+ @Resource
+ private ConfigAssayMethodProjectParameterMapper configAssayMethodProjectParameterMapper;
+
+ @Resource
+ private ConfigReportTemplateMapper configReportTemplateMapper;
+
+ @Resource
+ private BusinessSampleEntrustUnStandardProjectMapper businessSampleEntrustUnStandardProjectMapper;
+
+ @Resource
+ private BusinessAssayTaskDataMapper businessAssayTaskDataMapper;
+
+ @Resource
+ private BusinessAssayTaskMapper businessAssayTaskMapper;
+
+ @Resource
+ private BusinessSubSampleMapper businessSubSampleMapper;
+
+ @Resource
+ private BusinessSubParentSampleAssessmentMapper businessSubParentSampleAssessmentMapper;
+
+ @Resource
+ private BusinessSubSampleAssessmentMapper businessSubSampleAssessmentMapper;
+
@Override
public void process() throws Exception {
+ SampleTaskAssignContext sampleTaskAssignContext = this.getContextBean(SampleTaskAssignContext.class);
+ String loginRealname = sampleTaskAssignContext.getLoginRealname();
+ LoginUser loginUser = sampleTaskAssignContext.getLoginUser();
+ LocalDateTime currentDateTime = sampleTaskAssignContext.getCurrentDateTime();
+ //指派的方法
+ Long assignConfigAssayMethodId = sampleTaskAssignContext.getAssignConfigAssayMethodId();
+ ConfigAssayMethodDO configAssayMethodDO = configAssayMethodMapper.selectById(assignConfigAssayMethodId);
+ //方法类型id
+ Long dictionaryBusinessId = configAssayMethodDO.getDictionaryBusinessId();
+ DictionaryBusinessDO dictionaryBusinessDO = dictionaryBusinessMapper.selectById(dictionaryBusinessId);
+ //查询报表模板
+ ConfigReportTemplateDO configReportTemplate = configReportTemplateMapper.selectLatestConfigReportTemplateByKey(configAssayMethodDO.getConfigReportTemplateKey());
+ //指派的分析方法的参数
+ List configAssayMethodParameterDOList = configAssayMethodParameterMapper.selectByConfigAssayMethodId(assignConfigAssayMethodId);
+ //分析方法检测项目配置
+ List configAssayMethodProjectList = configAssayMethodProjectMapper.selectByConfigAssayMethodId(assignConfigAssayMethodId);
+ //分析方法检测项目参数配置
+ List configAssayMethodProjectParameterList = configAssayMethodProjectParameterMapper.selectByConfigAssayMethodId(assignConfigAssayMethodId);
+ //分析类型
+ String assayType = sampleTaskAssignContext.getAssayType();
+ //分析任务数
+ Integer assayTaskCount = sampleTaskAssignContext.getAssayTaskCount();
+ List assignAssayUserList = sampleTaskAssignContext.getAssignAssayUserList();
+ int assignAssayUserCount = assignAssayUserList.size();
+ //非标准的检测项目
+ List sampleEntrustUnStandardProjectIdList = sampleTaskAssignContext.getSampleEntrustUnStandardProjectIdList();
+ List businessSampleEntrustUnStandardProjectExtendList = businessSampleEntrustUnStandardProjectMapper.selectExtendByIds(sampleEntrustUnStandardProjectIdList);
+ //根据子样分组
+ Map> businessSampleEntrustUnStandardProjectExtendMap = businessSampleEntrustUnStandardProjectExtendList.stream().collect(Collectors.groupingBy(BusinessSampleEntrustUnStandardProjectExtendRespVO::getBusinessSubSampleId));
+ Set businessSubSampleIdList = businessSampleEntrustUnStandardProjectExtendMap.keySet();
+ //查询子样
+ List businessSubSampleList = businessSubSampleMapper.selectByIds(businessSubSampleIdList);
+ sampleTaskAssignContext.setBusinessSubSampleList(businessSubSampleList);
+
+ //保存任务分配单
+ List saveBusinessAssayTaskList = new ArrayList<>();
+ //更新任务分配单
+ List updateBusinessAssayTaskList = new ArrayList<>();
+ //任务分配单明细
+ List businessAssayTaskDetailList = new ArrayList<>();
+
+ //分样判定
+ List saveBusinessSubParentSampleAssessmentList = new ArrayList<>();
+
+ //子样判定
+ List saveBusinessSubSampleAssessmentList = new ArrayList<>();
+
+ //子样分析任务
+ List saveBusinessAssayTaskDataList = new ArrayList<>();
+ //子样分析任务参数
+ List saveBusinessAssayTaskParameterDataList = new ArrayList<>();
+ //子样分析任务检测项目
+ List saveBusinessAssayProjectDataList = new ArrayList<>();
+ //子样分析任务检测项目参数
+ List saveBusinessAssayParameterDataList = new ArrayList<>();
+
+ List saveBusinessSampleEntrustUnStandardProjectList = new ArrayList<>();
+ List updateBusinessSampleEntrustUnStandardProjectList = new ArrayList<>();
+
+ // 用于缓存已处理的任务单,避免同一用户在同一业务类型下重复查询数据库
+ // Key: userId + dictionaryBusinessId, Value: BusinessAssayTaskDO
+ Map existingTaskCache = new HashMap<>();
+
+ //循环
+ for (Map.Entry> businessSampleEntrustUnStandardProjectEntry : businessSampleEntrustUnStandardProjectExtendMap.entrySet()) {
+ Long currBusinessSubSampleId = businessSampleEntrustUnStandardProjectEntry.getKey();
+ List currBusinessSampleEntrustUnStandardProjectExtendList = businessSampleEntrustUnStandardProjectEntry.getValue();
+ //分析的检测项目id
+ List dictionaryProjectIdList = currBusinessSampleEntrustUnStandardProjectExtendList.stream().map(m -> m.getDictionaryProjectId()).distinct().collect(Collectors.toList());
+
+ //分析项目
+ String assayProject = currBusinessSampleEntrustUnStandardProjectExtendList.stream().map(m -> m.getDictionaryProjectShowName()).distinct().collect(Collectors.joining(","));
+
+ //当前子样
+ BusinessSubSampleDO currBusinessSubSampleDO = businessSubSampleList.stream().filter(f -> currBusinessSubSampleId.equals(f.getId())).findFirst().orElse(null);
+
+ //分样判定
+ BusinessSubParentSampleAssessmentDO businessSubParentSampleAssessmentDO = businessSubParentSampleAssessmentMapper.selectByBusinessSubParentSampleIdAndConfigAssayMethodIdAndRetestCount(currBusinessSubSampleDO.getBusinessSubParentSampleId(), assignConfigAssayMethodId, 0);
+ if (businessSubParentSampleAssessmentDO == null) {
+ businessSubParentSampleAssessmentDO = new BusinessSubParentSampleAssessmentDO();
+ businessSubParentSampleAssessmentDO.setId(IdWorker.getId());
+ businessSubParentSampleAssessmentDO.setBusinessSubParentSampleId(currBusinessSubSampleDO.getBusinessSubParentSampleId());
+ businessSubParentSampleAssessmentDO.setConfigAssayMethodId(assignConfigAssayMethodId);
+ businessSubParentSampleAssessmentDO.setAssayType(assayType);
+ businessSubParentSampleAssessmentDO.setTaskType("常规");
+ saveBusinessSubParentSampleAssessmentList.add(businessSubParentSampleAssessmentDO);
+ }
+
+ //子样判定数据
+ BusinessSubSampleAssessmentDO businessSubSampleAssessmentDO = businessSubSampleAssessmentMapper.selectByBusinessSubSampleIdAndConfigAssayMethodIdAndRetestCount(currBusinessSubSampleId, assignConfigAssayMethodId, 0);
+ if (businessSubSampleAssessmentDO == null) {
+ businessSubSampleAssessmentDO = new BusinessSubSampleAssessmentDO();
+ businessSubSampleAssessmentDO.setId(IdWorker.getId());
+ businessSubSampleAssessmentDO.setBusinessBaseSampleId(currBusinessSubSampleDO.getBusinessBaseSampleId());
+ businessSubSampleAssessmentDO.setBusinessSubParentSampleId(currBusinessSubSampleDO.getBusinessSubParentSampleId());
+ businessSubSampleAssessmentDO.setBusinessSubSampleId(currBusinessSubSampleDO.getId());
+ businessSubSampleAssessmentDO.setBusinessSubParentSampleAssessmentId(businessSubParentSampleAssessmentDO.getId());
+ businessSubSampleAssessmentDO.setConfigAssayMethodId(assignConfigAssayMethodId);
+ businessSubSampleAssessmentDO.setAssayType(assayType);
+ businessSubSampleAssessmentDO.setTaskType("常规");
+
+ saveBusinessSubSampleAssessmentList.add(businessSubSampleAssessmentDO);
+ }
+
+ //根据任务数循环
+ for (int i = 0; i < assayTaskCount; i++) {
+
+ //子样检测任务
+ BusinessAssayTaskDataDO businessAssayTaskDataDO = new BusinessAssayTaskDataDO();
+ businessAssayTaskDataDO.setId(IdWorker.getId());
+ businessAssayTaskDataDO.setBusinessBaseSampleId(currBusinessSubSampleDO.getBusinessBaseSampleId());
+ businessAssayTaskDataDO.setBusinessSubParentSampleId(currBusinessSubSampleDO.getBusinessSubParentSampleId());
+ businessAssayTaskDataDO.setBusinessSubSampleId(currBusinessSubSampleDO.getId());
+ businessAssayTaskDataDO.setBusinessSubSampleAssessmentId(businessSubSampleAssessmentDO.getId());
+ businessAssayTaskDataDO.setConfigAssayMethodId(assignConfigAssayMethodId);
+ businessAssayTaskDataDO.setAssayType(assayType);
+ businessAssayTaskDataDO.setTaskType("常规");
+ businessAssayTaskDataDO.setConfigSampleFlowId(currBusinessSubSampleDO.getConfigSampleFlowId());
+ businessAssayTaskDataDO.setSampleFlowNodeKey(QmsCommonConstant.FLOW_NODE_ANALYSIS);
+ businessAssayTaskDataDO.setSampleFlowNodeTime(currBusinessSubSampleDO.getSampleFlowNodeTime());
+ businessAssayTaskDataDO.setAssayDepartmentId(configAssayMethodDO.getAssayDepartmentId());
+ businessAssayTaskDataDO.setAssayDepartmentName(configAssayMethodDO.getAssayDepartmentName());
+ businessAssayTaskDataDO.setAssayProject(assayProject);
+
+
+ // 1. 确定当前数据分配给哪个用户 (轮询)
+ AssignAssayUser currentUser = assignAssayUserList.get(i % assignAssayUserCount);
+ String currentOperatorName = currentUser.getRealName();
+ Long currentOperatorId = currentUser.getUserId();
+
+ // 2. 查找或创建该用户在此业务类型下的任务单
+ // 缓存Key:用户ID_业务ID
+ String cacheKey = currentOperatorId + "_" + dictionaryBusinessId;
+ BusinessAssayTaskDO businessAssayTaskDO = existingTaskCache.get(cacheKey);
+
+ if (businessAssayTaskDO == null) {
+ // 缓存没命中,去数据库查该用户是否有进行中的任务
+ businessAssayTaskDO = businessAssayTaskMapper.selectAssignInProgressByAssayUserAndAssignUser(dictionaryBusinessId, currentOperatorName, loginRealname);
+
+ if (businessAssayTaskDO == null) {
+ // 没有进行中任务,新建
+ String taskNo = sequenceUtil.genCode(configAssayMethodDO.getCodeRule());
+ businessAssayTaskDO = new BusinessAssayTaskDO();
+ businessAssayTaskDO.setId(IdWorker.getId());
+ businessAssayTaskDO.setTaskNo(taskNo);
+ businessAssayTaskDO.setTaskName(dictionaryBusinessDO.getName());
+
+ // 设置当前轮询到的操作员
+ businessAssayTaskDO.setAssayOperator(currentOperatorName);
+ businessAssayTaskDO.setAssayOperatorId(currentOperatorId);
+
+ businessAssayTaskDO.setConfigAssayMethodId(configAssayMethodDO.getId());
+ businessAssayTaskDO.setDictionaryBusinessId(dictionaryBusinessId);
+ businessAssayTaskDO.setDictionaryBusinessKey(configAssayMethodDO.getDictionaryBusinessKey());
+ businessAssayTaskDO.setTaskSourceType(QmsCommonConstant.TASK_ASSIGN);
+ businessAssayTaskDO.setConfigReportTemplateId(configReportTemplate.getId());
+ businessAssayTaskDO.setConfigReportTemplateKey(configReportTemplate.getKey());
+ businessAssayTaskDO.setIsIngredients(configAssayMethodDO.getIsIngredients());
+ businessAssayTaskDO.setIngredientsStatus("initial");
+
+ businessAssayTaskDO.setTaskAssignOperator(loginRealname);
+ businessAssayTaskDO.setTaskAssignOperatorId(loginUser.getId());
+ businessAssayTaskDO.setTaskAssignTime(currentDateTime);
+ businessAssayTaskDO.setTaskAssignStatus(QmsCommonConstant.IN_PROGRESS);
+ businessAssayTaskDO.setTaskAssayStatus(QmsCommonConstant.NOT_START);
+ businessAssayTaskDO.setFinishStatus(QmsCommonConstant.NOT_START);
+ businessAssayTaskDO.setFlowStatus(QmsCommonConstant.NOT_START);
+
+ saveBusinessAssayTaskList.add(businessAssayTaskDO);
+ } else {
+ updateBusinessAssayTaskList.add(businessAssayTaskDO);
+ }
+ // 放入缓存,后续同用户同业务类型的直接复用
+ existingTaskCache.put(cacheKey, businessAssayTaskDO);
+ }
+
+ // 3. 更新原始数据状态
+ businessAssayTaskDataDO.setIsAssignTasked(QmsCommonConstant.YES);
+ businessAssayTaskDataDO.setAssignTaskTime(currentDateTime);
+ // 注意:这里也要更新为当前轮询到的操作员,而不是固定的某个人
+ businessAssayTaskDataDO.setAssayOperator(currentOperatorName);
+ businessAssayTaskDataDO.setAssayOperatorId(currentOperatorId);
+ businessAssayTaskDataDO.setBusinessAssayTaskId(businessAssayTaskDO.getId());
+
+ // 4. 构建任务明细
+ BusinessSubSampleDO businessSubSampleDO = sampleTaskAssignContext.getBusinessSubSampleById(businessAssayTaskDataDO.getBusinessSubSampleId());
+
+ BusinessAssayTaskDetailDO businessAssayTaskDetailDO = new BusinessAssayTaskDetailDO();
+ businessAssayTaskDetailDO.setBusinessAssayTaskDataId(businessAssayTaskDataDO.getId());
+ businessAssayTaskDetailDO.setBusinessAssayTaskId(businessAssayTaskDO.getId());
+ businessAssayTaskDetailDO.setTaskNo(businessAssayTaskDO.getTaskNo());
+ businessAssayTaskDetailDO.setSampleId(businessAssayTaskDataDO.getBusinessSubSampleId());
+ businessAssayTaskDetailDO.setSampleCode(businessSubSampleDO.getSampleAssayCode());
+ businessAssayTaskDetailDO.setSampleName(businessSubSampleDO.getSampleName());
+ businessAssayTaskDetailDO.setDataSourceType(QmsCommonConstant.NORMAL);
+ // 如果需要全局排序,这里的 sortNo 可能需要重新计算,如果是按任务单内部排序,保持自增即可
+ // 由于现在拆分了任务单,每个任务单内部的 sortNo 最好单独维护,这里简单处理为累加(实际可能需按任务单分组后重排)
+ // 建议:如果在同一个任务单内,sortNo 应该是连续的。由于我们是循环插入,可能需要后期整理,或者在这里维护一个 Map
+ // 为了简化,这里暂时保持原有逻辑,实际生产中建议在循环结束后按 taskId 分组重新设置 sortNo
+
+ businessAssayTaskDetailList.add(businessAssayTaskDetailDO);
+
+ //添加分析任务
+ saveBusinessAssayTaskDataList.add(businessAssayTaskDataDO);
+
+ //子样检测任务参数
+ for (ConfigAssayMethodParameterDO configAssayMethodParameterDO : configAssayMethodParameterDOList) {
+ BusinessAssayTaskParameterDataDO businessAssayTaskParameterDataDO = new BusinessAssayTaskParameterDataDO();
+ businessAssayTaskParameterDataDO.setId(IdWorker.getId());
+ businessAssayTaskParameterDataDO.setBusinessAssayTaskDataId(businessAssayTaskDataDO.getId());
+ businessAssayTaskParameterDataDO.setConfigAssayMethodParameterId(configAssayMethodParameterDO.getId());
+ businessAssayTaskParameterDataDO.setDataType(configAssayMethodParameterDO.getDataType());
+ businessAssayTaskParameterDataDO.setDecimalPosition(configAssayMethodParameterDO.getDecimalPosition());
+
+ if (StringUtils.isNotBlank(configAssayMethodParameterDO.getDefaultValue())) {
+ businessAssayTaskParameterDataDO.setValue(configAssayMethodParameterDO.getDefaultValue());
+ }
+
+ saveBusinessAssayTaskParameterDataList.add(businessAssayTaskParameterDataDO);
+ }
+
+
+ //循环检测项目
+ for (ConfigAssayMethodProjectExtendRespVO configAssayMethodProjectDO : configAssayMethodProjectList) {
+
+ //如果当前分析方法的项目不在当前检测项目中,则跳出循环继续
+ if (!dictionaryProjectIdList.contains(configAssayMethodProjectDO.getDictionaryProjectId())) {
+ continue;
+ }
+ BusinessSampleEntrustUnStandardProjectExtendRespVO currBusinessSampleEntrustUnStandardProjectExtend = currBusinessSampleEntrustUnStandardProjectExtendList.stream().filter(f -> configAssayMethodProjectDO.getDictionaryProjectId().equals(f.getDictionaryProjectId())).findFirst().orElse(null);
+
+ if (currBusinessSampleEntrustUnStandardProjectExtend.getBusinessAssayTaskDataId() != null) {
+ BusinessSampleEntrustUnStandardProjectExtendRespVO otherBusinessSampleEntrustUnStandardProjectExtend = BeanUtil.copyProperties(currBusinessSampleEntrustUnStandardProjectExtend, BusinessSampleEntrustUnStandardProjectExtendRespVO.class);
+ otherBusinessSampleEntrustUnStandardProjectExtend.setId(IdWorker.getId());
+ otherBusinessSampleEntrustUnStandardProjectExtend.setBusinessAssayTaskDataId(businessAssayTaskDataDO.getId());
+ otherBusinessSampleEntrustUnStandardProjectExtend.setTaskCount(assayTaskCount);
+ otherBusinessSampleEntrustUnStandardProjectExtend.setIsAssignTasked(QmsCommonConstant.YES);
+ saveBusinessSampleEntrustUnStandardProjectList.add(BeanUtil.copyProperties(otherBusinessSampleEntrustUnStandardProjectExtend, BusinessSampleEntrustUnStandardProjectDO.class));
+ } else {
+ currBusinessSampleEntrustUnStandardProjectExtend.setBusinessAssayTaskDataId(businessAssayTaskDataDO.getId());
+ currBusinessSampleEntrustUnStandardProjectExtend.setTaskCount(assayTaskCount);
+ currBusinessSampleEntrustUnStandardProjectExtend.setIsAssignTasked(QmsCommonConstant.YES);
+ updateBusinessSampleEntrustUnStandardProjectList.add(BeanUtil.copyProperties(currBusinessSampleEntrustUnStandardProjectExtend, BusinessSampleEntrustUnStandardProjectDO.class));
+ }
+
+ 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.setEffectiveDigit(configAssayMethodProjectDO.getEffectiveDigit());
+ businessAssayProjectDataDO.setUsage(currBusinessSampleEntrustUnStandardProjectExtend.getUsage());
+
+ businessAssayProjectDataDO.setMinimumLimitValue(configAssayMethodProjectDO.getMinimumLimitValue());
+ businessAssayProjectDataDO.setIsEnabled(1);
+ businessAssayProjectDataDO.setIsNotAssessment(0);
+
+ saveBusinessAssayProjectDataList.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());
+ if (StringUtils.isNotBlank(configAssayMethodProjectParameterDO.getDefaultValue())) {
+ businessAssayParameterDataDO.setValue(configAssayMethodProjectParameterDO.getDefaultValue());
+ }
+
+ saveBusinessAssayParameterDataList.add(businessAssayParameterDataDO);
+ }
+
+ }
+
+
+ }
+ }
+ // 【可选优化】重新整理明细的排序号 (SortNo),确保每个任务单内的明细是 1, 2, 3...
+ // 因为上面的循环是交叉写入的,可能导致同一个 taskId 的 sortNo 不连续 (如 1, 1, 2, 2...) 如果多个用户交替
+ // 实际上上面的逻辑中,同一个 taskId 是由同一个用户产生的,但因为是交叉循环,可能插入顺序是交错的。
+ // 最稳妥的方式是按 taskId 分组重排
+ Map sortCounterMap = new HashMap<>();
+ for (BusinessAssayTaskDetailDO detail : businessAssayTaskDetailList) {
+ Long taskId = detail.getBusinessAssayTaskId();
+ int currentSort = sortCounterMap.getOrDefault(taskId, 0) + 1;
+ detail.setSortNo(currentSort);
+ sortCounterMap.put(taskId, currentSort);
+ }
+
+ sampleTaskAssignContext.setSaveBusinessSubParentSampleAssessmentList(saveBusinessSubParentSampleAssessmentList);
+ sampleTaskAssignContext.setSaveBusinessSubSampleAssessmentList(saveBusinessSubSampleAssessmentList);
+
+ sampleTaskAssignContext.setSaveBusinessAssayTaskList(saveBusinessAssayTaskList);
+ sampleTaskAssignContext.setUpdateBusinessAssayTaskList(updateBusinessAssayTaskList);
+
+ sampleTaskAssignContext.setSaveBusinessAssayTaskDataList(saveBusinessAssayTaskDataList);
+ sampleTaskAssignContext.setSaveBusinessAssayProjectDataList(saveBusinessAssayProjectDataList);
+ sampleTaskAssignContext.setSaveBusinessAssayParameterDataList(saveBusinessAssayParameterDataList);
+ sampleTaskAssignContext.setSaveBusinessSampleEntrustUnStandardProjectList(saveBusinessSampleEntrustUnStandardProjectList);
+ sampleTaskAssignContext.setUpdateBusinessSampleEntrustUnStandardProjectList(updateBusinessSampleEntrustUnStandardProjectList);
+
+ sampleTaskAssignContext.setBusinessAssayTaskDetailList(businessAssayTaskDetailList);
+
}
diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/liteflow/slot/SampleTaskAssignContext.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/liteflow/slot/SampleTaskAssignContext.java
index 1cc292b3..0d926711 100644
--- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/liteflow/slot/SampleTaskAssignContext.java
+++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/liteflow/slot/SampleTaskAssignContext.java
@@ -5,15 +5,21 @@ import java.util.List;
import cn.hutool.core.collection.CollUtil;
import com.zt.plat.framework.security.core.LoginUser;
+import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessAssayParameterDataDO;
+import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessAssayProjectDataDO;
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessAssayTaskDO;
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessAssayTaskDataDO;
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessAssayTaskDetailDO;
+import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessAssayTaskParameterDataDO;
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.BusinessQCManagementParameterDataDO;
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessQCManagementProjectDataDO;
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessQCManagementSampleParameterDataDO;
+import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessSampleEntrustUnStandardProjectDO;
+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.liteflow.param.AssignAssayUser;
import com.zt.plat.module.qms.business.config.dal.dataobject.ConfigAssayMethodDO;
@@ -42,6 +48,12 @@ public class SampleTaskAssignContext {
/** 分析方法id **/
private Long assignConfigAssayMethodId;
+ /** 分析类型 **/
+ private String assayType;
+
+ /** 分析任务数 **/
+ private Integer assayTaskCount;
+
/** 接受分配任务的人员 **/
private List assignAssayUserList;
@@ -57,6 +69,12 @@ public class SampleTaskAssignContext {
/** 检测任务id列表 **/
private List assayTaskDataIdList;
+ /** 检测任务项目id列表 **/
+ private List assayProjectDataIdList;
+
+ /** 样品委托无标准的检测项目id列表 **/
+ private List sampleEntrustUnStandardProjectIdList;
+
public ConfigAssayMethodDO getConfigAssayMethodById(Long id) {
ConfigAssayMethodDO configAssayMethod = null;
if (CollUtil.isNotEmpty(this.configAssayMethodList)) {
@@ -76,9 +94,33 @@ public class SampleTaskAssignContext {
return businessSubSample;
}
- /** 子样检测任务 **/
+ /** 保存分样判定 **/
+ private List saveBusinessSubParentSampleAssessmentList;
+
+ /** 保存子样判定 **/
+ private List saveBusinessSubSampleAssessmentList;
+
+ /** 保存子样检测任务 **/
+ private List saveBusinessAssayTaskDataList;
+
+ /** 更新子样检测任务 **/
private List businessAssayTaskDataList;
+ /** 保存子样检测任务参数 **/
+ private List saveBusinessAssayTaskParameterDataList;
+
+ /** 保存子样检测任务项目 **/
+ private List saveBusinessAssayProjectDataList;
+
+ /** 保存子样检测任务项目参数 **/
+ private List saveBusinessAssayParameterDataList;
+
+ /** 保存非标检测项目 **/
+ private List saveBusinessSampleEntrustUnStandardProjectList;
+
+ /** 更新非标检测项目 **/
+ private List updateBusinessSampleEntrustUnStandardProjectList;
+
/** 保存任务指派单列表 **/
private List saveBusinessAssayTaskList;
diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/service/SampleAnalysisServiceImpl.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/service/SampleAnalysisServiceImpl.java
index 697c2800..0755b2aa 100644
--- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/service/SampleAnalysisServiceImpl.java
+++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/service/SampleAnalysisServiceImpl.java
@@ -660,8 +660,9 @@ public class SampleAnalysisServiceImpl implements SampleAnalysisService {
BusinessSubSampleDO businessSubSampleDO = businessSubSampleDOList.stream().filter(f -> f.getId().equals(businessAssayTaskDataDO.getBusinessSubSampleId())).findFirst().orElse(null);
ConfigSubSampleMethodExtendRespVO configSubSampleMethodDO = configSubSampleMethodDOList.stream().filter(f -> f.getConfigAssayMethodId().equals(businessAssayTaskDataDO.getConfigAssayMethodId()) && f.getConfigSubSampleId().equals(businessSubSampleDO.getConfigSubSampleId())).findFirst().orElse(null);
- String configInfomation = configSubSampleMethodDO.getConfigInfomation();
- if (StringUtils.isNotBlank(configInfomation)) {
+
+ if (configSubSampleMethodDO != null && StringUtils.isNotBlank(configSubSampleMethodDO.getConfigInfomation())) {
+ String configInfomation = configSubSampleMethodDO.getConfigInfomation();
ConfigSubSampleMethodConfInfo configSubSampleMethodConfInfo = JSON.parseObject(configInfomation, ConfigSubSampleMethodConfInfo.class);
List getParamList = configSubSampleMethodConfInfo.getGetParam();
for (ConfigSubSampleMethodConfItem configSubSampleMethodConfItem: getParamList) {
@@ -2045,8 +2046,9 @@ public class SampleAnalysisServiceImpl implements SampleAnalysisService {
for (BusinessAssayTaskDataExtendRespVO businessAssayTaskData : businessAssayTaskDataExtendList) {
ConfigSubSampleMethodExtendRespVO configSubSampleMethod = configSubSampleMethodDOList.stream().filter(f -> f.getConfigSubSampleId().equals(businessAssayTaskData.getConfigSubSampleId()) && f.getConfigAssayMethodId().equals(businessAssayTaskData.getConfigAssayMethodId())).findFirst().orElse(null);
- String configInfomation = configSubSampleMethod.getConfigInfomation();
- if (StringUtils.isNotBlank(configInfomation)) {
+
+ if (configSubSampleMethod != null && StringUtils.isNotBlank(configSubSampleMethod.getConfigInfomation())) {
+ String configInfomation = configSubSampleMethod.getConfigInfomation();
ConfigSubSampleMethodConfInfo configSubSampleMethodConfInfo = JSON.parseObject(configInfomation, ConfigSubSampleMethodConfInfo.class);
List setParamList = configSubSampleMethodConfInfo.getSetParam();
if (CollUtil.isNotEmpty(setParamList)) {//参数不为空,则设置
diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/service/SampleDeptEntrustDocAuditServiceImpl.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/service/SampleDeptEntrustDocAuditServiceImpl.java
index e2dd3484..afabf63c 100644
--- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/service/SampleDeptEntrustDocAuditServiceImpl.java
+++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/service/SampleDeptEntrustDocAuditServiceImpl.java
@@ -30,7 +30,6 @@ import com.zt.plat.module.infra.api.file.dto.FileRespDTO;
import com.zt.plat.module.qms.business.bus.controller.vo.BusinessAssayReportDataExtendRespVO;
import com.zt.plat.module.qms.business.bus.controller.vo.BusinessSubParentSampleAssessmentProjectExtendRespVO;
import com.zt.plat.module.qms.business.bus.controller.vo.DeptEntrustDocAuditParam;
-import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessAssayReportDataDO;
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessAssayTaskDO;
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessAssayTaskDataDO;
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessSampleEntrustDepartmentDO;
@@ -55,6 +54,8 @@ import com.zt.plat.module.qms.business.reportdoc.service.ReportDocumentDataServi
import com.zt.plat.module.qms.enums.QmsCommonConstant;
import com.zt.plat.module.qms.framework.gridreport.GridReport;
import com.zt.plat.module.qms.framework.gridreport.PdfHelper;
+import com.zt.plat.module.qms.mq.SampleEntrustRegistrationAssayCompleteMessage;
+import com.zt.plat.module.qms.mq.producer.SampleEntrustRegistrationAssayCompleteProducer;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
@@ -120,6 +121,9 @@ public class SampleDeptEntrustDocAuditServiceImpl implements SampleDeptEntrustDo
@Resource
private ReportDocumentAssistService reportDocumentAssistService;
+
+ @Resource
+ private SampleEntrustRegistrationAssayCompleteProducer sampleEntrustRegistrationAssayCompleteProducer;
@Override
public JSONObject getDeptEntrustDocAuditByBusSampleEntrustDeptId(Long businessSampleEntrustDepartmentId) {
@@ -325,6 +329,16 @@ public class SampleDeptEntrustDocAuditServiceImpl implements SampleDeptEntrustDo
if (count <= 0) {//如果值为0,则说明都上报了,需要处理检验委托
businessSampleEntrustRegistrationDO.setAssayStatus(QmsCommonConstant.CHECKED);
businessSampleEntrustRegistrationMapper.updateById(businessSampleEntrustRegistrationDO);
+
+ //TODO 新增个配置是否发送到消息队列
+ if (true) {
+ SampleEntrustRegistrationAssayCompleteMessage message = new SampleEntrustRegistrationAssayCompleteMessage();
+ message.setBusinessSampleEntrustRegistrationId(businessSampleEntrustRegistrationDO.getId())
+ .setConfigEntrustSourceId(businessSampleEntrustRegistrationDO.getConfigEntrustSourceId())
+ .setEntrustNumber(businessSampleEntrustRegistrationDO.getEntrustNumber())
+ .setEntrustUnit(businessSampleEntrustRegistrationDO.getEntrustUnit());
+ sampleEntrustRegistrationAssayCompleteProducer.sendMessage(message);
+ }
}
//生成部门报告pdf
diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/service/SampleResultReportingServiceImpl.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/service/SampleResultReportingServiceImpl.java
index b8e882bd..d9c58d9b 100644
--- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/service/SampleResultReportingServiceImpl.java
+++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/service/SampleResultReportingServiceImpl.java
@@ -112,6 +112,8 @@ import com.zt.plat.module.qms.business.dic.dal.dataobject.DictionaryProjectDO;
import com.zt.plat.module.qms.enums.QmsCommonConstant;
import com.zt.plat.module.qms.framework.gridreport.GridReport;
import com.zt.plat.module.qms.framework.gridreport.PdfHelper;
+import com.zt.plat.module.qms.mq.SampleEntrustRegistrationAssayCompleteMessage;
+import com.zt.plat.module.qms.mq.producer.SampleEntrustRegistrationAssayCompleteProducer;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
@@ -161,6 +163,8 @@ public class SampleResultReportingServiceImpl implements SampleResultReportingSe
@Resource
private ConfigAssayMethodProjectMapper configAssayMethodProjectMapper;
+ @Resource
+ private SampleEntrustRegistrationAssayCompleteProducer sampleEntrustRegistrationAssayCompleteProducer;
@Override
public List getUnReportMethodGroupList(BusinessSubParentSampleAssessmentGroupReqVO reqVO) {
@@ -869,6 +873,16 @@ public class SampleResultReportingServiceImpl implements SampleResultReportingSe
continue;
}
businessSampleEntrustRegistrationDO.setAssayStatus(QmsCommonConstant.CHECKED);
+
+ //TODO 新增个配置是否发送到消息队列
+ if (true) {
+ SampleEntrustRegistrationAssayCompleteMessage message = new SampleEntrustRegistrationAssayCompleteMessage();
+ message.setBusinessSampleEntrustRegistrationId(businessSampleEntrustRegistrationDO.getId())
+ .setConfigEntrustSourceId(businessSampleEntrustRegistrationDO.getConfigEntrustSourceId())
+ .setEntrustNumber(businessSampleEntrustRegistrationDO.getEntrustNumber())
+ .setEntrustUnit(businessSampleEntrustRegistrationDO.getEntrustUnit());
+ sampleEntrustRegistrationAssayCompleteProducer.sendMessage(message);
+ }
//处理原始记录附件,原始记录需要过滤掉
//过滤当前
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 9b4a5d03..542e4abb 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
@@ -1363,6 +1363,7 @@ public class SampleTaskAssignServiceImpl implements SampleTaskAssignService {
}
@Override
+ @Transactional(rollbackFor = Exception.class)
public LiteflowResponse projectMethodAssign(SampleTaskAssignProjectMethodParam param) {
if (CollUtil.isEmpty(param.getAssignAssayUserList())) {
throw new ServiceException(1_032_100_000, "无任务分配人员");
@@ -1383,6 +1384,7 @@ public class SampleTaskAssignServiceImpl implements SampleTaskAssignService {
}
@Override
+ @Transactional(rollbackFor = Exception.class)
public LiteflowResponse projectNoMethodAssign(SampleTaskAssignProjectNoMethodParam param) {
if (CollUtil.isEmpty(param.getAssignAssayUserList())) {
throw new ServiceException(1_032_100_000, "无任务分配人员");
diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/config/dal/mapper/ConfigAssayMethodProjectParameterMapper.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/config/dal/mapper/ConfigAssayMethodProjectParameterMapper.java
index 16c4d2a8..b122e4fd 100644
--- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/config/dal/mapper/ConfigAssayMethodProjectParameterMapper.java
+++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/config/dal/mapper/ConfigAssayMethodProjectParameterMapper.java
@@ -56,6 +56,13 @@ public interface ConfigAssayMethodProjectParameterMapper extends BaseMapperX selectByConfigAssayMethodId(Long configAssayMethodId) {
+ return selectJoinList(ConfigAssayMethodProjectParameterDO.class, new MPJLambdaWrapperX()
+ .leftJoin(ConfigAssayMethodProjectDO.class, ConfigAssayMethodProjectDO::getId, ConfigAssayMethodProjectParameterDO::getConfigAssayMethodProjectId)
+ .selectAll(ConfigAssayMethodProjectParameterDO.class)
+ .eq(ConfigAssayMethodProjectDO::getConfigAssayMethodId, configAssayMethodId));
+ }
+
default List selectByConfigAssayMethodIds(List configAssayMethodIds) {
return selectJoinList(ConfigAssayMethodProjectParameterDO.class, new MPJLambdaWrapperX()
.leftJoin(ConfigAssayMethodProjectDO.class, ConfigAssayMethodProjectDO::getId, ConfigAssayMethodProjectParameterDO::getConfigAssayMethodProjectId)
diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/mq/consumer/SampleEntrustRegistrationAssayCompleteConsumer.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/mq/consumer/SampleEntrustRegistrationAssayCompleteConsumer.java
new file mode 100644
index 00000000..5413271a
--- /dev/null
+++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/mq/consumer/SampleEntrustRegistrationAssayCompleteConsumer.java
@@ -0,0 +1,52 @@
+package com.zt.plat.module.qms.mq.consumer;
+
+import org.apache.rocketmq.spring.annotation.RocketMQMessageListener;
+import org.apache.rocketmq.spring.core.RocketMQListener;
+import org.springframework.stereotype.Component;
+
+import com.zt.plat.module.qms.business.bus.controller.vo.BusinessSampleEntrustRegistrationExtendRespVO;
+import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessSampleEntrustRegistrationMapper;
+import com.zt.plat.module.qms.enums.QmsCommonConstant;
+import com.zt.plat.module.qms.mq.SampleEntrustRegistrationAssayCompleteMessage;
+
+import jakarta.annotation.Resource;
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * SampleEntrustRegistrationAssayCompleteConsumer
+ * 样品委托登记分析完成消费
+ */
+@Slf4j
+@Component
+@RocketMQMessageListener(
+ topic = SampleEntrustRegistrationAssayCompleteMessage.TOPIC,
+ consumerGroup = SampleEntrustRegistrationAssayCompleteMessage.TOPIC + "_CONSUMER"
+)
+public class SampleEntrustRegistrationAssayCompleteConsumer implements RocketMQListener {
+
+ @Resource
+ private BusinessSampleEntrustRegistrationMapper businessSampleEntrustRegistrationMapper;
+
+ @Override
+ public void onMessage(SampleEntrustRegistrationAssayCompleteMessage message) {
+ log.info("委托登记分析完成[onMessage][消息内容({})]", message.toString());
+ Long businessSampleEntrustRegistrationId = message.getBusinessSampleEntrustRegistrationId();
+ //委托登记信息
+ BusinessSampleEntrustRegistrationExtendRespVO businessSampleEntrustRegistration = businessSampleEntrustRegistrationMapper.selectExtendById(businessSampleEntrustRegistrationId);
+
+ switch (businessSampleEntrustRegistration.getConfigEntrustSourceKey()) {
+ case QmsCommonConstant.ENTRUST_SOURCE_JYWT: //检验委托
+
+ break;
+ case QmsCommonConstant.ENTRUST_SOURCE_XNT_TEMPORARY: //西南铜临时样
+
+ break;
+
+ default:
+ break;
+ }
+
+
+ }
+
+}
diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/mq/producer/SampleEntrustRegistrationAssayCompleteProducer.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/mq/producer/SampleEntrustRegistrationAssayCompleteProducer.java
new file mode 100644
index 00000000..d821d19f
--- /dev/null
+++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/mq/producer/SampleEntrustRegistrationAssayCompleteProducer.java
@@ -0,0 +1,27 @@
+package com.zt.plat.module.qms.mq.producer;
+
+import org.apache.rocketmq.spring.core.RocketMQTemplate;
+import org.springframework.stereotype.Component;
+
+import com.zt.plat.module.qms.mq.SampleEntrustRegistrationAssayCompleteMessage;
+
+import jakarta.annotation.Resource;
+
+/**
+ * SampleEntrustRegistrationAssayCompleteProducer
+ * 样品委托登记分析完成消息生产者
+ */
+@Component
+public class SampleEntrustRegistrationAssayCompleteProducer {
+
+ @Resource
+ private RocketMQTemplate rocketMQTemplate;
+
+ /**
+ * 发送到消息队列
+ * @param message
+ */
+ public void sendMessage(SampleEntrustRegistrationAssayCompleteMessage message) {
+ rocketMQTemplate.syncSend(SampleEntrustRegistrationAssayCompleteMessage.TOPIC, message);
+ }
+}
diff --git a/zt-module-qms/zt-module-qms-server/src/main/resources/com/zt/plat/module/qms/business/bus/dal/mapper/SampleResultQueryMapper.xml b/zt-module-qms/zt-module-qms-server/src/main/resources/com/zt/plat/module/qms/business/bus/dal/mapper/SampleResultQueryMapper.xml
index fa49e55d..47c37e99 100644
--- a/zt-module-qms/zt-module-qms-server/src/main/resources/com/zt/plat/module/qms/business/bus/dal/mapper/SampleResultQueryMapper.xml
+++ b/zt-module-qms/zt-module-qms-server/src/main/resources/com/zt/plat/module/qms/business/bus/dal/mapper/SampleResultQueryMapper.xml
@@ -33,6 +33,8 @@
tbspsap.BSN_SB_PRN_SMP_ID = tbsps.ID
LEFT JOIN T_DIC_PRJ tdp ON
tbspsap.DIC_PRJ_ID = tdp.ID
+ LEFT JOIN T_BSN_SMP_ENTT_DTL tbsed ON
+ tbsps.BSN_BSE_SMP_ID = tbsed.BSN_BSE_SMP_ID
LEFT JOIN T_BSN_SB_SMP_ANL_GRP tbssag ON
tbspsap.BSN_SB_PRN_SMP_ID = tbssag.BSN_SB_PRN_SMP_ID
AND tbssag.ASY_DEPT_ID = tbspsap.DEPT_ID
@@ -41,6 +43,12 @@
WHERE
tbspsa.IS_RPOD = 1
AND tbspsap.IS_RPOD = 1
+
+ AND tbsed.BSN_SMP_ENTT_REG_ID = #{reqVO.businessSampleEntrustRegistrationId}
+
+
+ AND tbsps.BSN_BSE_SMP_ID = #{reqVO.businessBaseSampleId}
+
AND tbssag.ASY_DEPT_ID = #{reqVO.assayDepartmentId}