委托单号根据配置来源于字段或生成规则生成

This commit is contained in:
2025-10-30 16:58:22 +08:00
parent 7375539ede
commit b75c389b84
26 changed files with 155 additions and 6 deletions

View File

@@ -136,4 +136,13 @@ public interface QmsCommonConstant {
/** 平行 **/
String ASSAY_TYPE_SINGLE_PARALLEL = "single_parallel";
/** 配料 **/
String ASSAY_PROJECT_USAGE_INGREDIENT = "ingredient";
/** 报出 **/
String ASSAY_PROJECT_USAGE_REPORT = "report";
/** 配料和报出 **/
String ASSAY_PROJECT_USAGE_INGREDIENT_REPORT = "ingredient_report";
}

View File

@@ -22,6 +22,12 @@ public class BusinessAssayProjectDataPageReqVO extends PageParam {
@Schema(description = "检测项目字典ID,字典表【T_DIC_PRJ】", example = "19038")
private Long dictionaryProjectId;
@Schema(description = "用途,ingredient-配料、report-报出、ingredient_report-配料及报出")
private String usage;
@Schema(description = "符号,=、>、<、等")
private String symbol;
@Schema(description = "")
private String value;

View File

@@ -28,6 +28,12 @@ public class BusinessAssayProjectDataReqVO {
@Schema(description = "检测项目字典ID,字典表【T_DIC_PRJ】", example = "5352")
private Long dictionaryProjectId;
@Schema(description = "用途,ingredient-配料、report-报出、ingredient_report-配料及报出")
private String usage;
@Schema(description = "符号,=、>、<、等")
private String symbol;
@Schema(description = "")
private String value;

View File

@@ -28,6 +28,12 @@ public class BusinessAssayProjectDataRespVO {
@ExcelProperty("检测项目字典ID,字典表【T_DIC_PRJ】")
private Long dictionaryProjectId;
@Schema(description = "用途,ingredient-配料、report-报出、ingredient_report-配料及报出")
private String usage;
@Schema(description = "符号,=、>、<、等")
private String symbol;
@Schema(description = "")
@ExcelProperty("")
private String value;

View File

@@ -25,6 +25,12 @@ public class BusinessSubParentSampleAssessmentPageReqVO extends PageParam {
@Schema(description = "检测方法配置ID", example = "16271")
private Long configAssayMethodId;
@Schema(description = "用途,ingredient-配料、report-报出、ingredient_report-配料及报出")
private String usage;
@Schema(description = "符号,=、>、<、等")
private String symbol;
@Schema(description = "任务类型,【字典】【jy_sample_task_type】常规、抽查...", example = "2")
private String taskType;

View File

@@ -32,6 +32,12 @@ public class BusinessSubParentSampleAssessmentRespVO {
@ExcelProperty("检测方法配置ID")
private Long configAssayMethodId;
@Schema(description = "用途,ingredient-配料、report-报出、ingredient_report-配料及报出")
private String usage;
@Schema(description = "符号,=、>、<、等")
private String symbol;
@Schema(description = "任务类型,【字典】【jy_sample_task_type】常规、抽查...", example = "2")
private String taskType;

View File

@@ -30,6 +30,12 @@ public class BusinessSubParentSampleAssessmentSaveReqVO {
@NotNull(message = "检测方法配置ID不能为空")
private Long configAssayMethodId;
@Schema(description = "用途,ingredient-配料、report-报出、ingredient_report-配料及报出")
private String usage;
@Schema(description = "符号,=、>、<、等")
private String symbol;
@Schema(description = "任务类型,【字典】【jy_sample_task_type】常规、抽查...", example = "2")
private String taskType;

View File

@@ -28,6 +28,12 @@ public class BusinessSubSampleAssessmentPageReqVO extends PageParam {
@Schema(description = "检测方法配置ID", example = "8091")
private Long configAssayMethodId;
@Schema(description = "用途,ingredient-配料、report-报出、ingredient_report-配料及报出")
private String usage;
@Schema(description = "符号,=、>、<、等")
private String symbol;
@Schema(description = "任务类型,【字典】【jy_sample_task_type】常规、抽查...", example = "2")
private String taskType;

View File

@@ -35,6 +35,12 @@ public class BusinessSubSampleAssessmentRespVO {
@ExcelProperty("检测方法配置ID")
private Long configAssayMethodId;
@Schema(description = "用途,ingredient-配料、report-报出、ingredient_report-配料及报出")
private String usage;
@Schema(description = "符号,=、>、<、等")
private String symbol;
@Schema(description = "任务类型,【字典】【jy_sample_task_type】常规、抽查...", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
@ExcelProperty("任务类型,【字典】【jy_sample_task_type】常规、抽查...")
private String taskType;

View File

@@ -33,6 +33,12 @@ public class BusinessSubSampleAssessmentSaveReqVO {
@NotNull(message = "检测方法配置ID不能为空")
private Long configAssayMethodId;
@Schema(description = "用途,ingredient-配料、report-报出、ingredient_report-配料及报出")
private String usage;
@Schema(description = "符号,=、>、<、等")
private String symbol;
@Schema(description = "任务类型,【字典】【jy_sample_task_type】常规、抽查...", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
@NotEmpty(message = "任务类型,【字典】【jy_sample_task_type】常规、抽查...不能为空")
private String taskType;

View File

@@ -28,4 +28,7 @@ public class ReportFieldValueData implements Serializable {
@Schema(description = "符号")
private String mathSymbol;
@Schema(description = "用途,ingredient-配料、report-报出、ingredient_report-配料及报出")
private String usage;
}

View File

@@ -47,6 +47,16 @@ public class BusinessAssayProjectDataDO extends BusinessBaseDO {
@TableField("DIC_PRJ_ID")
private Long dictionaryProjectId;
/**
* 用途,ingredient-配料、report-报出、ingredient_report-配料及报出
*/
@TableField("USG")
private String usage;
/**
* 符号,=、>、<、等
*/
@TableField("SMB")
private String symbol;
/**
* 值
*/
@TableField("VAL")

View File

@@ -53,6 +53,16 @@ public class BusinessSubParentSampleAssessmentDO extends BusinessBaseDO {
@TableField("CFG_ASY_MTHD_ID")
private Long configAssayMethodId;
/**
* 用途,ingredient-配料、report-报出、ingredient_report-配料及报出
*/
@TableField("USG")
private String usage;
/**
* 符号,=、>、<、等
*/
@TableField("SMB")
private String symbol;
/**
* 任务类型,【字典】【jy_sample_task_type】常规、抽查...
*/
@TableField("TSK_TP")

View File

@@ -58,6 +58,16 @@ public class BusinessSubSampleAssessmentDO extends BusinessBaseDO {
@TableField("CFG_ASY_MTHD_ID")
private Long configAssayMethodId;
/**
* 用途,ingredient-配料、report-报出、ingredient_report-配料及报出
*/
@TableField("USG")
private String usage;
/**
* 符号,=、>、<、等
*/
@TableField("SMB")
private String symbol;
/**
* 任务类型,【字典】【jy_sample_task_type】常规、抽查...
*/
@TableField("TSK_TP")

View File

@@ -46,6 +46,8 @@ public interface BusinessAssayProjectDataMapper extends BaseMapperX<BusinessAssa
.eqIfPresent(BusinessAssayProjectDataDO::getBusinessAssayTaskDataId, reqVO.getBusinessAssayTaskDataId())
.eqIfPresent(BusinessAssayProjectDataDO::getConfigAssayMethodProjectId, reqVO.getConfigAssayMethodProjectId())
.eqIfPresent(BusinessAssayProjectDataDO::getDictionaryProjectId, reqVO.getDictionaryProjectId())
.eqIfPresent(BusinessAssayProjectDataDO::getUsage, reqVO.getUsage())
.eqIfPresent(BusinessAssayProjectDataDO::getSymbol, reqVO.getSymbol())
.eqIfPresent(BusinessAssayProjectDataDO::getValue, reqVO.getValue())
.eqIfPresent(BusinessAssayProjectDataDO::getDataType, reqVO.getDataType())
.eqIfPresent(BusinessAssayProjectDataDO::getDecimalPosition, reqVO.getDecimalPosition())
@@ -63,6 +65,8 @@ public interface BusinessAssayProjectDataMapper extends BaseMapperX<BusinessAssa
.eqIfPresent(BusinessAssayProjectDataDO::getBusinessAssayTaskDataId, reqVO.getBusinessAssayTaskDataId())
.eqIfPresent(BusinessAssayProjectDataDO::getConfigAssayMethodProjectId, reqVO.getConfigAssayMethodProjectId())
.eqIfPresent(BusinessAssayProjectDataDO::getDictionaryProjectId, reqVO.getDictionaryProjectId())
.eqIfPresent(BusinessAssayProjectDataDO::getUsage, reqVO.getUsage())
.eqIfPresent(BusinessAssayProjectDataDO::getSymbol, reqVO.getSymbol())
.eqIfPresent(BusinessAssayProjectDataDO::getValue, reqVO.getValue())
.eqIfPresent(BusinessAssayProjectDataDO::getDataType, reqVO.getDataType())
.eqIfPresent(BusinessAssayProjectDataDO::getDecimalPosition, reqVO.getDecimalPosition())

View File

@@ -30,6 +30,8 @@ public interface BusinessSubParentSampleAssessmentMapper extends BaseMapperX<Bus
.eqIfPresent(BusinessSubParentSampleAssessmentDO::getDictionaryProjectId, reqVO.getDictionaryProjectId())
.eqIfPresent(BusinessSubParentSampleAssessmentDO::getConfigAssayMethodProjectId, reqVO.getConfigAssayMethodProjectId())
.eqIfPresent(BusinessSubParentSampleAssessmentDO::getConfigAssayMethodId, reqVO.getConfigAssayMethodId())
.eqIfPresent(BusinessSubParentSampleAssessmentDO::getUsage, reqVO.getUsage())
.eqIfPresent(BusinessSubParentSampleAssessmentDO::getSymbol, reqVO.getSymbol())
.eqIfPresent(BusinessSubParentSampleAssessmentDO::getTaskType, reqVO.getTaskType())
.eqIfPresent(BusinessSubParentSampleAssessmentDO::getAssayType, reqVO.getAssayType())
.eqIfPresent(BusinessSubParentSampleAssessmentDO::getDataType, reqVO.getDataType())

View File

@@ -4,6 +4,7 @@ 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.dal.dataobject.BusinessSubParentSampleAssessmentDO;
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessSubSampleAssessmentDO;
import com.zt.plat.module.qms.business.config.dal.dataobject.ConfigAssayMethodDO;
import com.zt.plat.module.qms.business.config.dal.dataobject.ConfigAssayMethodProjectDO;
@@ -31,6 +32,8 @@ public interface BusinessSubSampleAssessmentMapper extends BaseMapperX<BusinessS
.eqIfPresent(BusinessSubSampleAssessmentDO::getDictionaryProjectId, reqVO.getDictionaryProjectId())
.eqIfPresent(BusinessSubSampleAssessmentDO::getConfigAssayMethodProjectId, reqVO.getConfigAssayMethodProjectId())
.eqIfPresent(BusinessSubSampleAssessmentDO::getConfigAssayMethodId, reqVO.getConfigAssayMethodId())
.eqIfPresent(BusinessSubSampleAssessmentDO::getUsage, reqVO.getUsage())
.eqIfPresent(BusinessSubSampleAssessmentDO::getSymbol, reqVO.getSymbol())
.eqIfPresent(BusinessSubSampleAssessmentDO::getTaskType, reqVO.getTaskType())
.eqIfPresent(BusinessSubSampleAssessmentDO::getAssayType, reqVO.getAssayType())
.eqIfPresent(BusinessSubSampleAssessmentDO::getDataType, reqVO.getDataType())

View File

@@ -5,6 +5,8 @@ import java.util.List;
import org.apache.commons.lang3.StringUtils;
import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONObject;
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
import com.yomahub.liteflow.annotation.LiteflowComponent;
import com.yomahub.liteflow.core.NodeComponent;
@@ -56,13 +58,23 @@ public class SampleEntrustCreateDataCmp extends NodeComponent {
//获取委托来源配置
ConfigEntrustSourceDO configEntrustSource = sampleEntrustContext.getConfigEntrustSourceById(sampleEntrustRegistration.getConfigEntrustSourceId());
String codeRule = configEntrustSource.getCodeRule();
ConfigReportTemplateDO configReportTemplate = configReportTemplateMapper.selectLatestConfigReportTemplateByKey(configEntrustSource.getConfigReportTemplateKey());
String entrustNumber = null;
if (StringUtils.isNotBlank(configEntrustSource.getCodeField())) {
String externalInfomation = sampleEntrustRegistration.getExternalInfomation();
JSONObject extJsonObject = JSON.parseObject(externalInfomation);
entrustNumber = extJsonObject.getString(configEntrustSource.getCodeField());
} else {
String codeRule = configEntrustSource.getCodeRule();
entrustNumber = sequenceUtil.genCode(codeRule);
}
//赋值id
sampleEntrustRegistration.setId(IdWorker.getId());
//设置委托单号
sampleEntrustRegistration.setEntrustNumber(sequenceUtil.genCode(codeRule));
sampleEntrustRegistration.setEntrustNumber(entrustNumber);
sampleEntrustRegistration.setRegistrationStatus("in_progress");
sampleEntrustRegistration.setConfigReportTemplateId(configReportTemplate.getId());
sampleEntrustRegistration.setConfigReportTemplateKey(configReportTemplate.getKey());
@@ -92,12 +104,12 @@ public class SampleEntrustCreateDataCmp extends NodeComponent {
//保存样品委托登记
businessSampleEntrustRegistrationMapper.insert(sampleEntrustRegistration);
//保存样品明细
//保存委托样品明细
if (CollUtil.isNotEmpty(sampleEntrustDetailList)) {
businessSampleEntrustDetailMapper.insertBatch(sampleEntrustDetailList);
}
//保存检测项目
//保存检测检测项目
if (CollUtil.isNotEmpty(sampleEntrustProjectList)) {
businessSampleEntrustProjectMapper.insertBatch(sampleEntrustProjectList);
}

View File

@@ -216,6 +216,7 @@ public class SampleEntrustGenSampleDataCmp extends NodeComponent {
List<BusinessSampleEntrustDetailDO> sampleEntrustDetailListSort = sampleEntrustDetailList.stream().sorted(Comparator.comparingInt(BusinessSampleEntrustDetailDO::getSort)).collect(Collectors.toList());
//主样
BusinessBaseSampleDO businessBaseSampleDO = null;
int sort = 0;//委托明细顺序
for (BusinessSampleEntrustDetailDO businessSampleEntrustDetailDO : sampleEntrustDetailListSort) {//委托样品明细
//样品大类
@@ -455,7 +456,7 @@ public class SampleEntrustGenSampleDataCmp extends NodeComponent {
}
}
sort++;
}
sampleEntrustRegistration.setRegistrationStatus(QmsCommonConstant.SUBMITTED);

View File

@@ -6,6 +6,8 @@ import java.util.stream.Collectors;
import org.apache.commons.lang3.StringUtils;
import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONObject;
import com.yomahub.liteflow.annotation.LiteflowComponent;
import com.yomahub.liteflow.core.NodeComponent;
@@ -20,6 +22,7 @@ import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessSampleEntrustDetai
import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessSampleEntrustProjectMapper;
import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessSampleEntrustRegistrationMapper;
import com.zt.plat.module.qms.business.bus.liteflow.slot.SampleEntrustContext;
import com.zt.plat.module.qms.business.config.dal.dataobject.ConfigEntrustSourceDO;
import com.zt.plat.module.qms.business.config.dal.dataobject.MaterialAssayStandardDetailDO;
import jakarta.annotation.Resource;
@@ -45,6 +48,15 @@ public class SampleEntrustUpdateDataCmp extends NodeComponent {
//样品委托
BusinessSampleEntrustRegistrationDO sampleEntrustRegistration = sampleEntrustContext.getSampleEntrustRegistration();
//获取委托来源配置
ConfigEntrustSourceDO configEntrustSource = sampleEntrustContext.getConfigEntrustSourceById(sampleEntrustRegistration.getConfigEntrustSourceId());
if (StringUtils.isNotBlank(configEntrustSource.getCodeField())) {//如果委托单号来源于字段,则重新获取更新下
String externalInfomation = sampleEntrustRegistration.getExternalInfomation();
JSONObject extJsonObject = JSON.parseObject(externalInfomation);
String entrustNumber = extJsonObject.getString(configEntrustSource.getCodeField());
sampleEntrustRegistration.setEntrustNumber(entrustNumber);
}
//先删除旧的
List<BusinessSampleEntrustDetailDO> sampleEntrustDetailOldList = businessSampleEntrustDetailMapper.selectList(new LambdaQueryWrapperX<BusinessSampleEntrustDetailDO>().eq(BusinessSampleEntrustDetailDO::getBusinessSampleEntrustRegistrationId, sampleEntrustRegistration.getId()));
if (CollUtil.isNotEmpty(sampleEntrustDetailOldList)) {

View File

@@ -31,6 +31,9 @@ public class ConfigEntrustSourcePageReqVO extends PageParam {
@Schema(description = "委托单号规则")
private String codeRule;
@Schema(description = "委托单号引用字段")
private String codeField;
@Schema(description = "所属部门")
private String systemDepartmentCode;

View File

@@ -31,6 +31,9 @@ public class ConfigEntrustSourceReqVO {
@Schema(description = "委托单号规则")
private String codeRule;
@Schema(description = "委托单号引用字段")
private String codeField;
@Schema(description = "所属部门")
private String systemDepartmentCode;

View File

@@ -40,6 +40,9 @@ public class ConfigEntrustSourceRespVO {
@ExcelProperty("委托单号规则")
private String codeRule;
@Schema(description = "委托单号引用字段")
private String codeField;
@Schema(description = "所属部门", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("所属部门")
private String systemDepartmentCode;

View File

@@ -33,6 +33,9 @@ public class ConfigEntrustSourceSaveReqVO {
@Schema(description = "委托单号规则")
private String codeRule;
@Schema(description = "委托单号引用字段")
private String codeField;
@Schema(description = "所属部门", requiredMode = Schema.RequiredMode.REQUIRED)
private String systemDepartmentCode;

View File

@@ -61,6 +61,11 @@ public class ConfigEntrustSourceDO extends BusinessBaseDO {
@TableField("CD_RUL")
private String codeRule;
/**
* 委托单号引用字段
*/
@TableField("CD_FLD")
private String codeField;
/**
* 所属部门
*/
@TableField("SYS_DEPT_CD")

View File

@@ -26,6 +26,7 @@ public interface ConfigEntrustSourceMapper extends BaseMapperX<ConfigEntrustSour
.eqIfPresent(ConfigEntrustSourceDO::getDataCollectionKey, reqVO.getDataCollectionKey())
.eqIfPresent(ConfigEntrustSourceDO::getConfigReportTemplateKey, reqVO.getConfigReportTemplateKey())
.eqIfPresent(ConfigEntrustSourceDO::getCodeRule, reqVO.getCodeRule())
.eqIfPresent(ConfigEntrustSourceDO::getCodeField, reqVO.getCodeField())
.eqIfPresent(ConfigEntrustSourceDO::getSystemDepartmentCode, reqVO.getSystemDepartmentCode())
.betweenIfPresent(ConfigEntrustSourceDO::getCreateTime, reqVO.getCreateTime())
.eqIfPresent(ConfigEntrustSourceDO::getRemark, reqVO.getRemark())
@@ -40,6 +41,7 @@ public interface ConfigEntrustSourceMapper extends BaseMapperX<ConfigEntrustSour
.eqIfPresent(ConfigEntrustSourceDO::getDataCollectionKey, reqVO.getDataCollectionKey())
.eqIfPresent(ConfigEntrustSourceDO::getConfigReportTemplateKey, reqVO.getConfigReportTemplateKey())
.eqIfPresent(ConfigEntrustSourceDO::getCodeRule, reqVO.getCodeRule())
.eqIfPresent(ConfigEntrustSourceDO::getCodeField, reqVO.getCodeField())
.eqIfPresent(ConfigEntrustSourceDO::getSystemDepartmentCode, reqVO.getSystemDepartmentCode())
.betweenIfPresent(ConfigEntrustSourceDO::getCreateTime, reqVO.getCreateTime())
.eqIfPresent(ConfigEntrustSourceDO::getRemark, reqVO.getRemark())