Compare commits
12 Commits
33b5ec7be5
...
test
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0b2d10e662 | ||
| a7e82da877 | |||
| 6c90826af3 | |||
| 600540862a | |||
|
|
c6f4034685 | ||
| e29c43032c | |||
| 83fe91812d | |||
|
|
50cfdea28d | ||
| 7d8a5c1e88 | |||
|
|
9014e8bcc8 | ||
|
|
fa43a6579a | ||
|
|
d5b40bfba0 |
@@ -182,6 +182,7 @@ public interface ErrorCodeConstants {
|
|||||||
ErrorCode MATERIAL_LIFECYCLE_NOT_EXISTS = new ErrorCode(1_032_160_000, "物料通用流程不存在");
|
ErrorCode MATERIAL_LIFECYCLE_NOT_EXISTS = new ErrorCode(1_032_160_000, "物料通用流程不存在");
|
||||||
|
|
||||||
ErrorCode MATERIAL_BATCH_NOT_EXISTS = new ErrorCode(1_032_160_000, "物料批次不存在");
|
ErrorCode MATERIAL_BATCH_NOT_EXISTS = new ErrorCode(1_032_160_000, "物料批次不存在");
|
||||||
|
ErrorCode MATERIAL_BATCH_GONG_NOT_EXISTS = new ErrorCode(1_032_160_000, "物料批次工段不存在");
|
||||||
ErrorCode MATERIAL_BATCH_ASSIGN_END = new ErrorCode(1_032_160_000, "物料批次已拆分,不可操作");
|
ErrorCode MATERIAL_BATCH_ASSIGN_END = new ErrorCode(1_032_160_000, "物料批次已拆分,不可操作");
|
||||||
ErrorCode GONGDUAN_BELONG_MATERIAL_BATCH_NOT_EQUAL = new ErrorCode(1_032_160_000, "工段所属的物料批次不一致");
|
ErrorCode GONGDUAN_BELONG_MATERIAL_BATCH_NOT_EQUAL = new ErrorCode(1_032_160_000, "工段所属的物料批次不一致");
|
||||||
ErrorCode GONGDUAN_QUANTITY_MATERIAL_BATCH_NOT_EQUAL = new ErrorCode(1_032_160_000, "工段累加数量和批次数量不一致");
|
ErrorCode GONGDUAN_QUANTITY_MATERIAL_BATCH_NOT_EQUAL = new ErrorCode(1_032_160_000, "工段累加数量和批次数量不一致");
|
||||||
|
|||||||
@@ -76,7 +76,10 @@ public interface QmsCommonConstant {
|
|||||||
|
|
||||||
/** 已驳回 **/
|
/** 已驳回 **/
|
||||||
String REJECTED = "rejected";
|
String REJECTED = "rejected";
|
||||||
|
|
||||||
|
/** 已拒绝 **/
|
||||||
|
String REFUSED = "refused";
|
||||||
|
|
||||||
/** 作废 **/
|
/** 作废 **/
|
||||||
String VOID = "void";
|
String VOID = "void";
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,30 @@
|
|||||||
|
package com.zt.plat.module.qms.business.bus.controller.vo;
|
||||||
|
|
||||||
|
import com.alibaba.excel.annotation.ExcelProperty;
|
||||||
|
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class BusinessAssayTaskParameterDataExtendRespVO extends BusinessAssayTaskParameterDataRespVO {
|
||||||
|
|
||||||
|
@Schema(description = "检测方法ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "29823")
|
||||||
|
@ExcelProperty("检测方法ID")
|
||||||
|
private Long configAssayMethodId;
|
||||||
|
|
||||||
|
@Schema(description = "参数名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三")
|
||||||
|
@ExcelProperty("参数名称")
|
||||||
|
private String parameterName;
|
||||||
|
|
||||||
|
@Schema(description = "参数简称", example = "张三")
|
||||||
|
@ExcelProperty("参数简称")
|
||||||
|
private String shortName;
|
||||||
|
|
||||||
|
@Schema(description = "参数序号", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
|
@ExcelProperty("参数序号")
|
||||||
|
private Integer no;
|
||||||
|
|
||||||
|
@Schema(description = "键值")
|
||||||
|
@ExcelProperty("键值")
|
||||||
|
private String key;
|
||||||
|
}
|
||||||
@@ -32,6 +32,14 @@ public class BusinessXRFDataPageReqVO extends PageParam {
|
|||||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||||
private LocalDateTime[] sampleTime;
|
private LocalDateTime[] sampleTime;
|
||||||
|
|
||||||
|
@Schema(description = "样品开始时间")
|
||||||
|
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||||
|
private LocalDateTime[] sampleStartTime;
|
||||||
|
|
||||||
|
@Schema(description = "样品结束时间")
|
||||||
|
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||||
|
private LocalDateTime[] sampleEndTime;
|
||||||
|
|
||||||
@Schema(description = "分析人")
|
@Schema(description = "分析人")
|
||||||
private String assayOperator;
|
private String assayOperator;
|
||||||
|
|
||||||
|
|||||||
@@ -35,6 +35,14 @@ public class BusinessXRFDataReqVO {
|
|||||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||||
private LocalDateTime[] sampleTime;
|
private LocalDateTime[] sampleTime;
|
||||||
|
|
||||||
|
@Schema(description = "样品开始时间")
|
||||||
|
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||||
|
private LocalDateTime[] sampleStartTime;
|
||||||
|
|
||||||
|
@Schema(description = "样品结束时间")
|
||||||
|
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||||
|
private LocalDateTime[] sampleEndTime;
|
||||||
|
|
||||||
@Schema(description = "分析人")
|
@Schema(description = "分析人")
|
||||||
private String assayOperator;
|
private String assayOperator;
|
||||||
|
|
||||||
|
|||||||
@@ -40,6 +40,14 @@ public class BusinessXRFDataRespVO {
|
|||||||
@ExcelProperty("样品时间")
|
@ExcelProperty("样品时间")
|
||||||
private LocalDateTime sampleTime;
|
private LocalDateTime sampleTime;
|
||||||
|
|
||||||
|
@Schema(description = "样品开始时间")
|
||||||
|
@ExcelProperty("样品开始时间")
|
||||||
|
private LocalDateTime sampleStartTime;
|
||||||
|
|
||||||
|
@Schema(description = "样品结束时间")
|
||||||
|
@ExcelProperty("样品结束时间")
|
||||||
|
private LocalDateTime sampleEndTime;
|
||||||
|
|
||||||
@Schema(description = "分析人")
|
@Schema(description = "分析人")
|
||||||
@ExcelProperty("分析人")
|
@ExcelProperty("分析人")
|
||||||
private String assayOperator;
|
private String assayOperator;
|
||||||
|
|||||||
@@ -34,6 +34,12 @@ public class BusinessXRFDataSaveReqVO {
|
|||||||
@Schema(description = "样品时间")
|
@Schema(description = "样品时间")
|
||||||
private LocalDateTime sampleTime;
|
private LocalDateTime sampleTime;
|
||||||
|
|
||||||
|
@Schema(description = "样品开始时间")
|
||||||
|
private LocalDateTime sampleStartTime;
|
||||||
|
|
||||||
|
@Schema(description = "样品结束时间")
|
||||||
|
private LocalDateTime sampleEndTime;
|
||||||
|
|
||||||
@Schema(description = "分析人")
|
@Schema(description = "分析人")
|
||||||
private String assayOperator;
|
private String assayOperator;
|
||||||
|
|
||||||
|
|||||||
@@ -2,10 +2,7 @@ package com.zt.plat.module.qms.business.bus.dal.dataobject;
|
|||||||
|
|
||||||
import lombok.*;
|
import lombok.*;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.time.LocalDateTime;
|
|
||||||
import java.time.LocalDateTime;
|
|
||||||
import java.time.LocalDateTime;
|
|
||||||
import com.baomidou.mybatisplus.annotation.*;
|
import com.baomidou.mybatisplus.annotation.*;
|
||||||
import com.zt.plat.framework.mybatis.core.dataobject.BusinessBaseDO;
|
import com.zt.plat.framework.mybatis.core.dataobject.BusinessBaseDO;
|
||||||
/**
|
/**
|
||||||
@@ -64,6 +61,16 @@ public class BusinessXRFDataDO extends BusinessBaseDO {
|
|||||||
@TableField("SMP_TM")
|
@TableField("SMP_TM")
|
||||||
private LocalDateTime sampleTime;
|
private LocalDateTime sampleTime;
|
||||||
/**
|
/**
|
||||||
|
* 样品开始时间
|
||||||
|
*/
|
||||||
|
@TableField("SMP_STRT_TM")
|
||||||
|
private LocalDateTime sampleStartTime;
|
||||||
|
/**
|
||||||
|
* 样品结束时间
|
||||||
|
*/
|
||||||
|
@TableField("SMP_END_TM")
|
||||||
|
private LocalDateTime sampleEndTime;
|
||||||
|
/**
|
||||||
* 分析人
|
* 分析人
|
||||||
*/
|
*/
|
||||||
@TableField("ASY_OPTR")
|
@TableField("ASY_OPTR")
|
||||||
|
|||||||
@@ -107,5 +107,16 @@ public interface BusinessAssayParameterDataMapper extends BaseMapperX<BusinessAs
|
|||||||
.eq(DictionaryProjectDO::getSimpleName, projectSimpleName)
|
.eq(DictionaryProjectDO::getSimpleName, projectSimpleName)
|
||||||
.eq(ConfigAssayMethodProjectParameterDO::getKey, parameterKey));
|
.eq(ConfigAssayMethodProjectParameterDO::getKey, parameterKey));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
default BusinessAssayParameterDataDO selectByBusinessAssayProjectDataIdAndProjectSimpleNameAndParameterKey(Long businessAssayProjectDataId, String projectSimpleName, String parameterKey) {
|
||||||
|
return selectJoinOne(BusinessAssayParameterDataDO.class, new MPJLambdaWrapperX<BusinessAssayParameterDataDO>()
|
||||||
|
.leftJoin(ConfigAssayMethodProjectParameterDO.class, ConfigAssayMethodProjectParameterDO::getId, BusinessAssayParameterDataDO::getConfigAssayMethodProjectParameterId)
|
||||||
|
.leftJoin(BusinessAssayProjectDataDO.class, BusinessAssayProjectDataDO::getId, BusinessAssayParameterDataDO::getBusinessAssayProjectDataId)
|
||||||
|
.leftJoin(ConfigAssayMethodProjectDO.class, ConfigAssayMethodProjectDO::getId, BusinessAssayProjectDataDO::getConfigAssayMethodProjectId)
|
||||||
|
.leftJoin(DictionaryProjectDO.class, DictionaryProjectDO::getId, BusinessAssayProjectDataDO::getDictionaryProjectId)
|
||||||
|
.eq(BusinessAssayParameterDataDO::getBusinessAssayProjectDataId, businessAssayProjectDataId)
|
||||||
|
.eq(DictionaryProjectDO::getSimpleName, projectSimpleName)
|
||||||
|
.eq(ConfigAssayMethodProjectParameterDO::getKey, parameterKey));
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -107,14 +107,39 @@ public interface BusinessAssayProjectDataMapper extends BaseMapperX<BusinessAssa
|
|||||||
|
|
||||||
default List<BusinessAssayProjectDataExtendRespVO> selectByBusinessAssayTaskDataId(Long businessAssayTaskDataId) {
|
default List<BusinessAssayProjectDataExtendRespVO> selectByBusinessAssayTaskDataId(Long businessAssayTaskDataId) {
|
||||||
return selectJoinList(BusinessAssayProjectDataExtendRespVO.class, new MPJLambdaWrapperX<BusinessAssayProjectDataDO>()
|
return selectJoinList(BusinessAssayProjectDataExtendRespVO.class, new MPJLambdaWrapperX<BusinessAssayProjectDataDO>()
|
||||||
|
.leftJoin(BusinessAssayTaskDataDO.class, BusinessAssayTaskDataDO::getId, BusinessAssayProjectDataDO::getBusinessAssayTaskDataId)
|
||||||
.leftJoin(DictionaryProjectDO.class, DictionaryProjectDO::getId, BusinessAssayProjectDataDO::getDictionaryProjectId)
|
.leftJoin(DictionaryProjectDO.class, DictionaryProjectDO::getId, BusinessAssayProjectDataDO::getDictionaryProjectId)
|
||||||
.selectAll(BusinessAssayProjectDataDO.class)
|
.selectAll(BusinessAssayProjectDataDO.class)
|
||||||
|
.selectAs(BusinessAssayTaskDataDO::getAssayOperator, BusinessAssayProjectDataExtendRespVO::getAssayOperator)
|
||||||
|
.selectAs(BusinessAssayTaskDataDO::getRecheckCount, BusinessAssayProjectDataExtendRespVO::getRecheckCount)
|
||||||
|
.selectAs(BusinessAssayTaskDataDO::getRetestCount, BusinessAssayProjectDataExtendRespVO::getRetestCount)
|
||||||
|
.selectAs(BusinessAssayTaskDataDO::getBusinessBaseSampleId, BusinessAssayProjectDataExtendRespVO::getBusinessBaseSampleId)
|
||||||
|
.selectAs(BusinessAssayTaskDataDO::getBusinessSubParentSampleId, BusinessAssayProjectDataExtendRespVO::getBusinessSubParentSampleId)
|
||||||
|
.selectAs(BusinessAssayTaskDataDO::getBusinessSubSampleId, BusinessAssayProjectDataExtendRespVO::getBusinessSubSampleId)
|
||||||
.selectAs(DictionaryProjectDO::getKey, BusinessAssayProjectDataExtendRespVO::getDictionaryProjectKey)
|
.selectAs(DictionaryProjectDO::getKey, BusinessAssayProjectDataExtendRespVO::getDictionaryProjectKey)
|
||||||
.selectAs(DictionaryProjectDO::getSimpleName, BusinessAssayProjectDataExtendRespVO::getSimpleName)
|
.selectAs(DictionaryProjectDO::getSimpleName, BusinessAssayProjectDataExtendRespVO::getSimpleName)
|
||||||
.selectAs(DictionaryProjectDO::getShowName, BusinessAssayProjectDataExtendRespVO::getShowName)
|
.selectAs(DictionaryProjectDO::getShowName, BusinessAssayProjectDataExtendRespVO::getShowName)
|
||||||
.eq(BusinessAssayProjectDataDO::getBusinessAssayTaskDataId, businessAssayTaskDataId));
|
.eq(BusinessAssayProjectDataDO::getBusinessAssayTaskDataId, businessAssayTaskDataId));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
default List<BusinessAssayProjectDataExtendRespVO> selectByBusinessBaseSampleIdAndConfigAssayMethodId(Long businessBaseSampleId, Long configAssayMethodId) {
|
||||||
|
return selectJoinList(BusinessAssayProjectDataExtendRespVO.class, new MPJLambdaWrapperX<BusinessAssayProjectDataDO>()
|
||||||
|
.leftJoin(BusinessAssayTaskDataDO.class, BusinessAssayTaskDataDO::getId, BusinessAssayProjectDataDO::getBusinessAssayTaskDataId)
|
||||||
|
.leftJoin(DictionaryProjectDO.class, DictionaryProjectDO::getId, BusinessAssayProjectDataDO::getDictionaryProjectId)
|
||||||
|
.selectAll(BusinessAssayProjectDataDO.class)
|
||||||
|
.selectAs(BusinessAssayTaskDataDO::getAssayOperator, BusinessAssayProjectDataExtendRespVO::getAssayOperator)
|
||||||
|
.selectAs(BusinessAssayTaskDataDO::getRecheckCount, BusinessAssayProjectDataExtendRespVO::getRecheckCount)
|
||||||
|
.selectAs(BusinessAssayTaskDataDO::getRetestCount, BusinessAssayProjectDataExtendRespVO::getRetestCount)
|
||||||
|
.selectAs(BusinessAssayTaskDataDO::getBusinessBaseSampleId, BusinessAssayProjectDataExtendRespVO::getBusinessBaseSampleId)
|
||||||
|
.selectAs(BusinessAssayTaskDataDO::getBusinessSubParentSampleId, BusinessAssayProjectDataExtendRespVO::getBusinessSubParentSampleId)
|
||||||
|
.selectAs(BusinessAssayTaskDataDO::getBusinessSubSampleId, BusinessAssayProjectDataExtendRespVO::getBusinessSubSampleId)
|
||||||
|
.selectAs(DictionaryProjectDO::getKey, BusinessAssayProjectDataExtendRespVO::getDictionaryProjectKey)
|
||||||
|
.selectAs(DictionaryProjectDO::getSimpleName, BusinessAssayProjectDataExtendRespVO::getSimpleName)
|
||||||
|
.selectAs(DictionaryProjectDO::getShowName, BusinessAssayProjectDataExtendRespVO::getShowName)
|
||||||
|
.eq(BusinessAssayTaskDataDO::getBusinessBaseSampleId, businessBaseSampleId)
|
||||||
|
.eq(BusinessAssayTaskDataDO::getConfigAssayMethodId, configAssayMethodId));
|
||||||
|
}
|
||||||
|
|
||||||
default List<BusinessAssayProjectDataExtendRespVO> selectByBusinessAssayTaskDataIds(List<Long> businessAssayTaskDataIds) {
|
default List<BusinessAssayProjectDataExtendRespVO> selectByBusinessAssayTaskDataIds(List<Long> businessAssayTaskDataIds) {
|
||||||
return selectJoinList(BusinessAssayProjectDataExtendRespVO.class, new MPJLambdaWrapperX<BusinessAssayProjectDataDO>()
|
return selectJoinList(BusinessAssayProjectDataExtendRespVO.class, new MPJLambdaWrapperX<BusinessAssayProjectDataDO>()
|
||||||
.leftJoin(BusinessAssayTaskDataDO.class, BusinessAssayTaskDataDO::getId, BusinessAssayProjectDataDO::getBusinessAssayTaskDataId)
|
.leftJoin(BusinessAssayTaskDataDO.class, BusinessAssayTaskDataDO::getId, BusinessAssayProjectDataDO::getBusinessAssayTaskDataId)
|
||||||
|
|||||||
@@ -290,6 +290,7 @@ public interface BusinessAssayTaskDataMapper extends BaseMapperX<BusinessAssayTa
|
|||||||
.selectAs(BusinessSubSampleDO::getSampleName, BusinessAssayTaskDataExtendRespVO::getSampleName)
|
.selectAs(BusinessSubSampleDO::getSampleName, BusinessAssayTaskDataExtendRespVO::getSampleName)
|
||||||
.selectAs(BusinessSubSampleDO::getSampleCode, BusinessAssayTaskDataExtendRespVO::getSampleCode)
|
.selectAs(BusinessSubSampleDO::getSampleCode, BusinessAssayTaskDataExtendRespVO::getSampleCode)
|
||||||
.selectAs(BusinessSubSampleDO::getSampleAssayCode, BusinessAssayTaskDataExtendRespVO::getSampleAssayCode)
|
.selectAs(BusinessSubSampleDO::getSampleAssayCode, BusinessAssayTaskDataExtendRespVO::getSampleAssayCode)
|
||||||
|
.selectAs(BusinessSubSampleDO::getConfigSubSampleId, BusinessAssayTaskDataExtendRespVO::getConfigSubSampleId)
|
||||||
.in(BusinessSubSampleDO::getSampleAssayCode, sampleAssayCodes)
|
.in(BusinessSubSampleDO::getSampleAssayCode, sampleAssayCodes)
|
||||||
.eq(ConfigAssayMethodDO::getDictionaryBusinessKey, configAssayMethodDictionaryBusinessKey)
|
.eq(ConfigAssayMethodDO::getDictionaryBusinessKey, configAssayMethodDictionaryBusinessKey)
|
||||||
.eq(BusinessAssayTaskDataDO::getIsReported, QmsCommonConstant.NO));
|
.eq(BusinessAssayTaskDataDO::getIsReported, QmsCommonConstant.NO));
|
||||||
@@ -404,6 +405,19 @@ public interface BusinessAssayTaskDataMapper extends BaseMapperX<BusinessAssayTa
|
|||||||
.eq(BusinessAssayTaskDataDO::getBusinessSubSampleId, businessSubSampleId)
|
.eq(BusinessAssayTaskDataDO::getBusinessSubSampleId, businessSubSampleId)
|
||||||
.inSql(BusinessAssayTaskDataDO::getConfigAssayMethodId, inSql));
|
.inSql(BusinessAssayTaskDataDO::getConfigAssayMethodId, inSql));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据正样样Id列表及分析方法Key查询分析任务
|
||||||
|
* @param businessBaseSampleIdList 正样id列表
|
||||||
|
* @param methodKey 分析方法key
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
default List<BusinessAssayTaskDataDO> selectByBusinessBaseSampleIdsAndMethodKey(List<Long> businessBaseSampleIdList, String methodKey) {
|
||||||
|
String inSql = "SELECT tcam.ID FROM T_CFG_ASY_MTHD tcam WHERE tcam.DELETED = 0 AND tcam.DIC_BSN_KY = '" + methodKey + "'";
|
||||||
|
return selectList(new LambdaQueryWrapperX<BusinessAssayTaskDataDO>()
|
||||||
|
.in(BusinessAssayTaskDataDO::getBusinessBaseSampleId, businessBaseSampleIdList)
|
||||||
|
.inSql(BusinessAssayTaskDataDO::getConfigAssayMethodId, inSql));
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据子样及分析部门查询分析任务
|
* 根据子样及分析部门查询分析任务
|
||||||
|
|||||||
@@ -61,4 +61,18 @@ public interface BusinessAssayTaskParameterDataMapper extends BaseMapperX<Busine
|
|||||||
.orderByAsc(ConfigAssayMethodParameterDO::getSortNo));
|
.orderByAsc(ConfigAssayMethodParameterDO::getSortNo));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
default List<BusinessAssayTaskParameterDataExtendRespVO> selectExtendByBusinessAssayTaskDataIds(List<Long> businessAssayTaskDataIdList) {
|
||||||
|
return selectJoinList(BusinessAssayTaskParameterDataExtendRespVO.class, new MPJLambdaWrapperX<BusinessAssayTaskParameterDataDO>()
|
||||||
|
.leftJoin(ConfigAssayMethodParameterDO.class, ConfigAssayMethodParameterDO::getId, BusinessAssayTaskParameterDataDO::getConfigAssayMethodParameterId)
|
||||||
|
.selectAll(BusinessAssayTaskParameterDataDO.class)
|
||||||
|
.selectAs(ConfigAssayMethodParameterDO::getConfigAssayMethodId, BusinessAssayTaskParameterDataExtendRespVO::getConfigAssayMethodId)
|
||||||
|
.selectAs(ConfigAssayMethodParameterDO::getParameterName, BusinessAssayTaskParameterDataExtendRespVO::getParameterName)
|
||||||
|
.selectAs(ConfigAssayMethodParameterDO::getShortName, BusinessAssayTaskParameterDataExtendRespVO::getShortName)
|
||||||
|
.selectAs(ConfigAssayMethodParameterDO::getKey, BusinessAssayTaskParameterDataExtendRespVO::getKey)
|
||||||
|
.selectAs(ConfigAssayMethodParameterDO::getNo, BusinessAssayTaskParameterDataExtendRespVO::getNo)
|
||||||
|
.in(BusinessAssayTaskParameterDataDO::getBusinessAssayTaskDataId, businessAssayTaskDataIdList)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -54,6 +54,7 @@ import com.zt.plat.module.qms.business.bus.liteflow.slot.SampleEntrustContext;
|
|||||||
import com.zt.plat.module.qms.business.config.controller.vo.ConfigAssayMethodProjectExtendRespVO;
|
import com.zt.plat.module.qms.business.config.controller.vo.ConfigAssayMethodProjectExtendRespVO;
|
||||||
import com.zt.plat.module.qms.business.config.controller.vo.ConfigSubSampleMethodConfAdd;
|
import com.zt.plat.module.qms.business.config.controller.vo.ConfigSubSampleMethodConfAdd;
|
||||||
import com.zt.plat.module.qms.business.config.controller.vo.ConfigSubSampleMethodConfInfo;
|
import com.zt.plat.module.qms.business.config.controller.vo.ConfigSubSampleMethodConfInfo;
|
||||||
|
import com.zt.plat.module.qms.business.config.controller.vo.ConfigSubSampleMethodConfItem;
|
||||||
import com.zt.plat.module.qms.business.config.controller.vo.ConfigSubSampleMethodExtendRespVO;
|
import com.zt.plat.module.qms.business.config.controller.vo.ConfigSubSampleMethodExtendRespVO;
|
||||||
import com.zt.plat.module.qms.business.config.dal.dataobject.BaseSampleDO;
|
import com.zt.plat.module.qms.business.config.dal.dataobject.BaseSampleDO;
|
||||||
import com.zt.plat.module.qms.business.config.dal.dataobject.ConfigAssayMethodDO;
|
import com.zt.plat.module.qms.business.config.dal.dataobject.ConfigAssayMethodDO;
|
||||||
@@ -446,9 +447,11 @@ public class SampleEntrustGenSampleDataCmp extends NodeComponent {
|
|||||||
|
|
||||||
//扩展配置信息
|
//扩展配置信息
|
||||||
String configInfomation = configSubSampleMethodDO.getConfigInfomation();
|
String configInfomation = configSubSampleMethodDO.getConfigInfomation();
|
||||||
|
List<ConfigSubSampleMethodConfItem> getParamList = null;
|
||||||
if (StringUtils.isNotBlank(configInfomation)) {
|
if (StringUtils.isNotBlank(configInfomation)) {
|
||||||
ConfigSubSampleMethodConfInfo configSubSampleMethodConfInfo = JSON.parseObject(configInfomation, ConfigSubSampleMethodConfInfo.class);
|
ConfigSubSampleMethodConfInfo configSubSampleMethodConfInfo = JSON.parseObject(configInfomation, ConfigSubSampleMethodConfInfo.class);
|
||||||
ConfigSubSampleMethodConfAdd addAssayTask = configSubSampleMethodConfInfo.getAddAssayTask();
|
ConfigSubSampleMethodConfAdd addAssayTask = configSubSampleMethodConfInfo.getAddAssayTask();
|
||||||
|
getParamList = configSubSampleMethodConfInfo.getGetParam();
|
||||||
if (addAssayTask != null) {//需要添加任务
|
if (addAssayTask != null) {//需要添加任务
|
||||||
|
|
||||||
List<Long> conditionProjectIdList = addAssayTask.getConditionProjectIdList();
|
List<Long> conditionProjectIdList = addAssayTask.getConditionProjectIdList();
|
||||||
@@ -643,7 +646,24 @@ public class SampleEntrustGenSampleDataCmp extends NodeComponent {
|
|||||||
businessAssayParameterDataDO.setDictionaryParameterId(configAssayMethodProjectParameterDO.getDictionaryParameterId());
|
businessAssayParameterDataDO.setDictionaryParameterId(configAssayMethodProjectParameterDO.getDictionaryParameterId());
|
||||||
businessAssayParameterDataDO.setDataType(configAssayMethodProjectParameterDO.getDataType());
|
businessAssayParameterDataDO.setDataType(configAssayMethodProjectParameterDO.getDataType());
|
||||||
businessAssayParameterDataDO.setDecimalPosition(configAssayMethodProjectParameterDO.getDecimalPosition());
|
businessAssayParameterDataDO.setDecimalPosition(configAssayMethodProjectParameterDO.getDecimalPosition());
|
||||||
|
if (StringUtils.isNotBlank(configAssayMethodProjectParameterDO.getDefaultValue())) {
|
||||||
|
businessAssayParameterDataDO.setValue(configAssayMethodProjectParameterDO.getDefaultValue());
|
||||||
|
}
|
||||||
|
|
||||||
|
if (getParamList != null) {
|
||||||
|
List<String> targetParameterList = getParamList.stream().filter(f -> f.getTarget().getProject().contains(configAssayMethodProjectDO.getSimpleName())).map(m -> m.getTarget().getParameter()).collect(Collectors.toList());
|
||||||
|
String forecastResult = businessSampleEntrustDetailDO.getForecastResult();
|
||||||
|
if (StringUtils.isNotBlank(forecastResult)) {
|
||||||
|
JSONArray array = JSON.parseArray(forecastResult);
|
||||||
|
for (int forecIndex = 0; forecIndex < array.size(); forecIndex++) {
|
||||||
|
JSONObject item = array.getJSONObject(forecIndex);
|
||||||
|
if (targetParameterList.contains(item.getString("simpleName"))) {
|
||||||
|
businessAssayParameterDataDO.setValue(item.getString("value"));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
businessAssayParameterDataDOList.add(businessAssayParameterDataDO);
|
businessAssayParameterDataDOList.add(businessAssayParameterDataDO);
|
||||||
}
|
}
|
||||||
@@ -661,7 +681,24 @@ public class SampleEntrustGenSampleDataCmp extends NodeComponent {
|
|||||||
businessAssayParameterDataDO.setDictionaryParameterId(configAssayMethodProjectParameterDO.getDictionaryParameterId());
|
businessAssayParameterDataDO.setDictionaryParameterId(configAssayMethodProjectParameterDO.getDictionaryParameterId());
|
||||||
businessAssayParameterDataDO.setDataType(configAssayMethodProjectParameterDO.getDataType());
|
businessAssayParameterDataDO.setDataType(configAssayMethodProjectParameterDO.getDataType());
|
||||||
businessAssayParameterDataDO.setDecimalPosition(configAssayMethodProjectParameterDO.getDecimalPosition());
|
businessAssayParameterDataDO.setDecimalPosition(configAssayMethodProjectParameterDO.getDecimalPosition());
|
||||||
|
if (StringUtils.isNotBlank(configAssayMethodProjectParameterDO.getDefaultValue())) {
|
||||||
|
businessAssayParameterDataDO.setValue(configAssayMethodProjectParameterDO.getDefaultValue());
|
||||||
|
}
|
||||||
|
|
||||||
|
if (getParamList != null) {
|
||||||
|
List<String> targetParameterList = getParamList.stream().filter(f -> f.getTarget().getProject().contains(configAssayMethodProjectDO.getSimpleName())).map(m -> m.getTarget().getParameter()).collect(Collectors.toList());
|
||||||
|
String forecastResult = businessSampleEntrustDetailDO.getForecastResult();
|
||||||
|
if (StringUtils.isNotBlank(forecastResult)) {
|
||||||
|
JSONArray array = JSON.parseArray(forecastResult);
|
||||||
|
for (int forecIndex = 0; forecIndex < array.size(); forecIndex++) {
|
||||||
|
JSONObject item = array.getJSONObject(forecIndex);
|
||||||
|
if (targetParameterList.contains(item.getString("simpleName"))) {
|
||||||
|
businessAssayParameterDataDO.setValue(item.getString("value"));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
businessAssayParameterDataDOList.add(businessAssayParameterDataDO);
|
businessAssayParameterDataDOList.add(businessAssayParameterDataDO);
|
||||||
}
|
}
|
||||||
@@ -904,6 +941,9 @@ public class SampleEntrustGenSampleDataCmp extends NodeComponent {
|
|||||||
businessAssayParameterDataDO.setDictionaryParameterId(configAssayMethodProjectParameterDO.getDictionaryParameterId());
|
businessAssayParameterDataDO.setDictionaryParameterId(configAssayMethodProjectParameterDO.getDictionaryParameterId());
|
||||||
businessAssayParameterDataDO.setDataType(configAssayMethodProjectParameterDO.getDataType());
|
businessAssayParameterDataDO.setDataType(configAssayMethodProjectParameterDO.getDataType());
|
||||||
businessAssayParameterDataDO.setDecimalPosition(configAssayMethodProjectParameterDO.getDecimalPosition());
|
businessAssayParameterDataDO.setDecimalPosition(configAssayMethodProjectParameterDO.getDecimalPosition());
|
||||||
|
if (StringUtils.isNotBlank(configAssayMethodProjectParameterDO.getDefaultValue())) {
|
||||||
|
businessAssayParameterDataDO.setValue(configAssayMethodProjectParameterDO.getDefaultValue());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
businessAssayParameterDataDOList.add(businessAssayParameterDataDO);
|
businessAssayParameterDataDOList.add(businessAssayParameterDataDO);
|
||||||
@@ -922,6 +962,9 @@ public class SampleEntrustGenSampleDataCmp extends NodeComponent {
|
|||||||
businessAssayParameterDataDO.setDictionaryParameterId(configAssayMethodProjectParameterDO.getDictionaryParameterId());
|
businessAssayParameterDataDO.setDictionaryParameterId(configAssayMethodProjectParameterDO.getDictionaryParameterId());
|
||||||
businessAssayParameterDataDO.setDataType(configAssayMethodProjectParameterDO.getDataType());
|
businessAssayParameterDataDO.setDataType(configAssayMethodProjectParameterDO.getDataType());
|
||||||
businessAssayParameterDataDO.setDecimalPosition(configAssayMethodProjectParameterDO.getDecimalPosition());
|
businessAssayParameterDataDO.setDecimalPosition(configAssayMethodProjectParameterDO.getDecimalPosition());
|
||||||
|
if (StringUtils.isNotBlank(configAssayMethodProjectParameterDO.getDefaultValue())) {
|
||||||
|
businessAssayParameterDataDO.setValue(configAssayMethodProjectParameterDO.getDefaultValue());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
businessAssayParameterDataDOList.add(businessAssayParameterDataDO);
|
businessAssayParameterDataDOList.add(businessAssayParameterDataDO);
|
||||||
|
|||||||
@@ -123,6 +123,9 @@ public class BusinessAssayTaskDataServiceImpl implements BusinessAssayTaskDataSe
|
|||||||
@Override
|
@Override
|
||||||
public List<BusinessAssayTaskDataExtendRespVO> getBusinessAssayTaskDataList(BusinessAssayTaskDataReqVO reqVO) {
|
public List<BusinessAssayTaskDataExtendRespVO> getBusinessAssayTaskDataList(BusinessAssayTaskDataReqVO reqVO) {
|
||||||
List<BusinessAssayTaskDataExtendRespVO> list = businessAssayTaskDataMapper.selectList(reqVO);
|
List<BusinessAssayTaskDataExtendRespVO> list = businessAssayTaskDataMapper.selectList(reqVO);
|
||||||
|
if (CollUtil.isEmpty(list)) {
|
||||||
|
return list;
|
||||||
|
}
|
||||||
List<Long> configSubSampleIdList = list.stream().map(m -> m.getConfigSubSampleId()).collect(Collectors.toList());
|
List<Long> configSubSampleIdList = list.stream().map(m -> m.getConfigSubSampleId()).collect(Collectors.toList());
|
||||||
List<ConfigSubSampleMethodExtendRespVO> configSubSampleMethodList = configSubSampleMethodMapper.selectByConfigSubSampleIdsAndConfigAssayMethodId(configSubSampleIdList, reqVO.getConfigAssayMethodId());
|
List<ConfigSubSampleMethodExtendRespVO> configSubSampleMethodList = configSubSampleMethodMapper.selectByConfigSubSampleIdsAndConfigAssayMethodId(configSubSampleIdList, reqVO.getConfigAssayMethodId());
|
||||||
List<Long> businessAssayTaskDataIdList = list.stream().map(m -> m.getId()).collect(Collectors.toList());
|
List<Long> businessAssayTaskDataIdList = list.stream().map(m -> m.getId()).collect(Collectors.toList());
|
||||||
@@ -144,8 +147,11 @@ public class BusinessAssayTaskDataServiceImpl implements BusinessAssayTaskDataSe
|
|||||||
List<String> projectList = Arrays.asList(target.getProject().split(","));//来源可以有多个
|
List<String> projectList = Arrays.asList(target.getProject().split(","));//来源可以有多个
|
||||||
for (String project : projectList) {
|
for (String project : projectList) {
|
||||||
String parameter = target.getParameter();
|
String parameter = target.getParameter();
|
||||||
BusinessAssayProjectDataExtendRespVO currentBusinessAssayProjectData = businessAssayProjectDataList.stream().filter(f -> f.getBusinessAssayTaskDataId().equals(businessAssayTaskData.getId()) && f.getSimpleName().equals(project)).findFirst().orElse(null);
|
BusinessAssayProjectDataExtendRespVO currentBusinessAssayProjectData = businessAssayProjectDataList.stream().filter(f -> f.getBusinessAssayTaskDataId().equals(businessAssayTaskData.getId()) && project.equals(f.getSimpleName())).findFirst().orElse(null);
|
||||||
BusinessAssayParameterDataExtendRespVO currentBusinessAssayParameterData = businessAssayParameterDataList.stream().filter(f -> f.getBusinessAssayProjectDataId().equals(currentBusinessAssayProjectData.getId()) && f.getParameterKey().equals(parameter)).findFirst().orElse(null);
|
if (currentBusinessAssayProjectData == null) {//如果检测项目为空,则跳出当前循环
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
BusinessAssayParameterDataExtendRespVO currentBusinessAssayParameterData = businessAssayParameterDataList.stream().filter(f -> f.getBusinessAssayProjectDataId().equals(currentBusinessAssayProjectData.getId()) && parameter.equals(f.getParameterKey())).findFirst().orElse(null);
|
||||||
if (currentBusinessAssayParameterData != null && StringUtils.isNotBlank(currentBusinessAssayParameterData.getValue())) {
|
if (currentBusinessAssayParameterData != null && StringUtils.isNotBlank(currentBusinessAssayParameterData.getValue())) {
|
||||||
ingredientInfoBuilder.append(currentBusinessAssayParameterData.getParameterName()).append(":").append(currentBusinessAssayParameterData.getValue()).append("、");
|
ingredientInfoBuilder.append(currentBusinessAssayParameterData.getParameterName()).append(":").append(currentBusinessAssayParameterData.getValue()).append("、");
|
||||||
break;
|
break;
|
||||||
@@ -166,6 +172,9 @@ public class BusinessAssayTaskDataServiceImpl implements BusinessAssayTaskDataSe
|
|||||||
public PageResult<BusinessAssayTaskDataExtendRespVO> getBusinessAssayTaskDataPage(BusinessAssayTaskDataPageReqVO pageReqVO) {
|
public PageResult<BusinessAssayTaskDataExtendRespVO> getBusinessAssayTaskDataPage(BusinessAssayTaskDataPageReqVO pageReqVO) {
|
||||||
PageResult<BusinessAssayTaskDataExtendRespVO> page = businessAssayTaskDataMapper.selectPage(pageReqVO);
|
PageResult<BusinessAssayTaskDataExtendRespVO> page = businessAssayTaskDataMapper.selectPage(pageReqVO);
|
||||||
List<BusinessAssayTaskDataExtendRespVO> list = page.getList();
|
List<BusinessAssayTaskDataExtendRespVO> list = page.getList();
|
||||||
|
if (CollUtil.isEmpty(list)) {
|
||||||
|
return page;
|
||||||
|
}
|
||||||
List<Long> configSubSampleIdList = list.stream().map(m -> m.getConfigSubSampleId()).collect(Collectors.toList());
|
List<Long> configSubSampleIdList = list.stream().map(m -> m.getConfigSubSampleId()).collect(Collectors.toList());
|
||||||
List<ConfigSubSampleMethodExtendRespVO> configSubSampleMethodList = configSubSampleMethodMapper.selectByConfigSubSampleIdsAndConfigAssayMethodId(configSubSampleIdList, pageReqVO.getConfigAssayMethodId());
|
List<ConfigSubSampleMethodExtendRespVO> configSubSampleMethodList = configSubSampleMethodMapper.selectByConfigSubSampleIdsAndConfigAssayMethodId(configSubSampleIdList, pageReqVO.getConfigAssayMethodId());
|
||||||
List<Long> businessAssayTaskDataIdList = list.stream().map(m -> m.getId()).collect(Collectors.toList());
|
List<Long> businessAssayTaskDataIdList = list.stream().map(m -> m.getId()).collect(Collectors.toList());
|
||||||
@@ -187,8 +196,11 @@ public class BusinessAssayTaskDataServiceImpl implements BusinessAssayTaskDataSe
|
|||||||
List<String> projectList = Arrays.asList(target.getProject().split(","));//来源可以有多个
|
List<String> projectList = Arrays.asList(target.getProject().split(","));//来源可以有多个
|
||||||
for (String project : projectList) {
|
for (String project : projectList) {
|
||||||
String parameter = target.getParameter();
|
String parameter = target.getParameter();
|
||||||
BusinessAssayProjectDataExtendRespVO currentBusinessAssayProjectData = businessAssayProjectDataList.stream().filter(f -> f.getBusinessAssayTaskDataId().equals(businessAssayTaskData.getId()) && f.getSimpleName().equals(project)).findFirst().orElse(null);
|
BusinessAssayProjectDataExtendRespVO currentBusinessAssayProjectData = businessAssayProjectDataList.stream().filter(f -> f.getBusinessAssayTaskDataId().equals(businessAssayTaskData.getId()) && project.equals(f.getSimpleName())).findFirst().orElse(null);
|
||||||
BusinessAssayParameterDataExtendRespVO currentBusinessAssayParameterData = businessAssayParameterDataList.stream().filter(f -> f.getBusinessAssayProjectDataId().equals(currentBusinessAssayProjectData.getId()) && f.getParameterKey().equals(parameter)).findFirst().orElse(null);
|
if (currentBusinessAssayProjectData == null) {//如果检测项目为空,则跳出当前循环
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
BusinessAssayParameterDataExtendRespVO currentBusinessAssayParameterData = businessAssayParameterDataList.stream().filter(f -> f.getBusinessAssayProjectDataId().equals(currentBusinessAssayProjectData.getId()) && parameter.equals(f.getParameterKey())).findFirst().orElse(null);
|
||||||
if (currentBusinessAssayParameterData != null && StringUtils.isNotBlank(currentBusinessAssayParameterData.getValue())) {
|
if (currentBusinessAssayParameterData != null && StringUtils.isNotBlank(currentBusinessAssayParameterData.getValue())) {
|
||||||
ingredientInfoBuilder.append(currentBusinessAssayParameterData.getParameterName()).append(":").append(currentBusinessAssayParameterData.getValue()).append("、");
|
ingredientInfoBuilder.append(currentBusinessAssayParameterData.getParameterName()).append(":").append(currentBusinessAssayParameterData.getValue()).append("、");
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -290,7 +290,7 @@ public class SampleAnalysisAuditServiceImpl implements SampleAnalysisAuditServic
|
|||||||
// value = value + "(" + businessAssayProjectDataExtendRespVO.getValue() + "x" + businessAssayProjectDataExtendRespVO.getCoefficient().setScale(3, RoundingMode.HALF_EVEN).toPlainString()+ ")";
|
// value = value + "(" + businessAssayProjectDataExtendRespVO.getValue() + "x" + businessAssayProjectDataExtendRespVO.getCoefficient().setScale(3, RoundingMode.HALF_EVEN).toPlainString()+ ")";
|
||||||
// }
|
// }
|
||||||
// businessSubSampleAssessmentMap.put(businessAssayProjectDataExtendRespVO.getBusinessAssayTaskDataId() + ";" + businessAssayProjectDataExtendRespVO.getBusinessSubSampleId() + ";" + businessAssayProjectDataExtendRespVO.getRecheckCount(), value);
|
// businessSubSampleAssessmentMap.put(businessAssayProjectDataExtendRespVO.getBusinessAssayTaskDataId() + ";" + businessAssayProjectDataExtendRespVO.getBusinessSubSampleId() + ";" + businessAssayProjectDataExtendRespVO.getRecheckCount(), value);
|
||||||
businessSubSampleAssessmentMap.put(businessAssayProjectDataExtendRespVO.getBusinessAssayTaskDataId() + ";" + businessAssayProjectDataExtendRespVO.getBusinessSubSampleId() + ";" + businessAssayProjectDataExtendRespVO.getRecheckCount(), businessAssayProjectDataExtendRespVO.getValue());
|
businessSubSampleAssessmentMap.put(businessAssayProjectDataExtendRespVO.getBusinessAssayTaskDataId() + ";" + businessAssayProjectDataExtendRespVO.getBusinessSubSampleId() + ";" + businessAssayProjectDataExtendRespVO.getRecheckCount(), businessAssayProjectDataExtendRespVO.getValueAfter());
|
||||||
}
|
}
|
||||||
dataList.add(businessSubSampleAssessmentMap);
|
dataList.add(businessSubSampleAssessmentMap);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -666,11 +666,11 @@ public class SampleAnalysisServiceImpl implements SampleAnalysisService {
|
|||||||
String targetParameter = target.getParameter();
|
String targetParameter = target.getParameter();
|
||||||
|
|
||||||
BusinessAssayParameterDataDO businessAssayParameterDataDO = businessAssayParameterDataMapper.selectByBusinessAssayTaskDataIdAndProjectSimpleNameAndParameterKey(businessAssayTaskDataDO.getId(), targetProject, targetParameter);
|
BusinessAssayParameterDataDO businessAssayParameterDataDO = businessAssayParameterDataMapper.selectByBusinessAssayTaskDataIdAndProjectSimpleNameAndParameterKey(businessAssayTaskDataDO.getId(), targetProject, targetParameter);
|
||||||
if (businessAssayParameterDataDO == null) {
|
// if (businessAssayParameterDataDO == null) {
|
||||||
throw new ServiceException(1_032_100_000, "子样检测方法映射配置错误");
|
// throw new ServiceException(1_032_100_000, "子样检测方法映射配置错误");
|
||||||
}
|
// }
|
||||||
|
|
||||||
if (StringUtils.isBlank(businessAssayParameterDataDO.getValue())) {
|
if (businessAssayParameterDataDO != null && StringUtils.isBlank(businessAssayParameterDataDO.getValue())) {
|
||||||
//1 查询委托明细
|
//1 查询委托明细
|
||||||
BusinessSampleEntrustDetailDO businessSampleEntrustDetailDO = businessSampleEntrustDetailMapper.selectByBusinessBaseSampleId(businessAssayTaskDataDO.getBusinessBaseSampleId());
|
BusinessSampleEntrustDetailDO businessSampleEntrustDetailDO = businessSampleEntrustDetailMapper.selectByBusinessBaseSampleId(businessAssayTaskDataDO.getBusinessBaseSampleId());
|
||||||
//2 查询样品大类
|
//2 查询样品大类
|
||||||
@@ -679,20 +679,22 @@ public class SampleAnalysisServiceImpl implements SampleAnalysisService {
|
|||||||
if (QmsCommonConstant.ENTRUST_INSPECTION_ANALYSIS_SAMPLE.equals(baseSampleDO.getDictionaryBusinessKey())) {//如果是商检分析样
|
if (QmsCommonConstant.ENTRUST_INSPECTION_ANALYSIS_SAMPLE.equals(baseSampleDO.getDictionaryBusinessKey())) {//如果是商检分析样
|
||||||
//查询当前批次的第一个商检分析样
|
//查询当前批次的第一个商检分析样
|
||||||
BusinessSampleEntrustDetailDO currBatchFirstBusinessSampleEntrustDetailDO = businessSampleEntrustDetailMapper.selectCurrBatchFirstByBusinessBaseSampleIdAndBaseSampleDictionaryBusinessKey(businessAssayTaskDataDO.getBusinessBaseSampleId(), QmsCommonConstant.ENTRUST_INSPECTION_ANALYSIS_SAMPLE);
|
BusinessSampleEntrustDetailDO currBatchFirstBusinessSampleEntrustDetailDO = businessSampleEntrustDetailMapper.selectCurrBatchFirstByBusinessBaseSampleIdAndBaseSampleDictionaryBusinessKey(businessAssayTaskDataDO.getBusinessBaseSampleId(), QmsCommonConstant.ENTRUST_INSPECTION_ANALYSIS_SAMPLE);
|
||||||
List<BusinessSubParentSampleDO> currBusinessSubParentSampleDOList = businessSubParentSampleMapper.selectByBusinessBaseSampleId(currBatchFirstBusinessSampleEntrustDetailDO.getBusinessBaseSampleId());
|
List<BusinessAssayProjectDataExtendRespVO> businessAssayProjectDataExtendList = businessAssayProjectDataMapper.selectByBusinessBaseSampleIdAndConfigAssayMethodId(currBatchFirstBusinessSampleEntrustDetailDO.getBusinessBaseSampleId(), configMethodId);
|
||||||
List<Long> currBusinessSubParentSampleIdList = currBusinessSubParentSampleDOList.stream().map(m -> m.getId()).collect(Collectors.toList());
|
|
||||||
List<BusinessSubParentSampleAssessmentProjectExtendRespVO> businessSubParentSampleAssessmentProjectList = businessSubParentSampleAssessmentProjectMapper.selectByBusinessSubParentSampleIdsAndConfigAssayMethodId(currBusinessSubParentSampleIdList, configMethodId);
|
BusinessAssayProjectDataExtendRespVO sourceBusinessAssayProjectDataExtendRespVO = businessAssayProjectDataExtendList.stream().filter(f -> sourceProject.equals(f.getSimpleName())).findFirst().orElse(null);
|
||||||
BusinessSubParentSampleAssessmentProjectExtendRespVO businessSubParentSampleAssessmentProject = businessSubParentSampleAssessmentProjectList.stream().filter(f -> f.getSimpleName().equals(sourceProject)).findFirst().orElse(null);
|
if (sourceBusinessAssayProjectDataExtendRespVO != null && StringUtils.isNotBlank(sourceBusinessAssayProjectDataExtendRespVO.getValue())) {
|
||||||
if (businessSubParentSampleAssessmentProject != null && StringUtils.isNotBlank(businessSubParentSampleAssessmentProject.getAssessmentValue())) {
|
businessAssayParameterDataDO.setValue(sourceBusinessAssayProjectDataExtendRespVO.getValue());
|
||||||
businessAssayParameterDataDO.setValue(businessSubParentSampleAssessmentProject.getAssessmentValue());
|
|
||||||
}
|
}
|
||||||
} else if (QmsCommonConstant.ENTRUST_COMPREHENSIVE_INSPECTION_SAMPLE.equals(baseSampleDO.getDictionaryBusinessKey())) {//如果是商检综合样
|
} else if (QmsCommonConstant.ENTRUST_COMPREHENSIVE_INSPECTION_SAMPLE.equals(baseSampleDO.getDictionaryBusinessKey())) {//如果是商检综合样
|
||||||
//查询当前样品的其他分析方法的结果
|
//查询当前样品的其他分析方法的结果
|
||||||
List<Long> businessSubParentSampleIdList = Arrays.asList(businessAssayTaskDataDO.getBusinessSubParentSampleId());
|
// List<Long> businessSubParentSampleIdList = Arrays.asList(businessAssayTaskDataDO.getBusinessSubParentSampleId());
|
||||||
List<BusinessSubParentSampleAssessmentProjectExtendRespVO> businessSubParentSampleAssessmentProjectList = businessSubParentSampleAssessmentProjectMapper.selectByBusinessSubParentSampleIdsAndConfigAssayMethodId(businessSubParentSampleIdList, configMethodId);
|
// List<BusinessSubParentSampleAssessmentProjectExtendRespVO> businessSubParentSampleAssessmentProjectList = businessSubParentSampleAssessmentProjectMapper.selectByBusinessSubParentSampleIdsAndConfigAssayMethodId(businessSubParentSampleIdList, configMethodId);
|
||||||
BusinessSubParentSampleAssessmentProjectExtendRespVO businessSubParentSampleAssessmentProject = businessSubParentSampleAssessmentProjectList.stream().filter(f -> f.getSimpleName().equals(sourceProject)).findFirst().orElse(null);
|
// BusinessSubParentSampleAssessmentProjectExtendRespVO businessSubParentSampleAssessmentProject = businessSubParentSampleAssessmentProjectList.stream().filter(f -> f.getSimpleName().equals(sourceProject)).findFirst().orElse(null);
|
||||||
if (businessSubParentSampleAssessmentProject != null && StringUtils.isNotBlank(businessSubParentSampleAssessmentProject.getAssessmentValue())) {
|
List<BusinessAssayProjectDataExtendRespVO> businessAssayProjectDataExtendList = businessAssayProjectDataMapper.selectByBusinessBaseSampleIdAndConfigAssayMethodId(businessAssayTaskDataDO.getBusinessBaseSampleId(), configMethodId);
|
||||||
businessAssayParameterDataDO.setValue(businessSubParentSampleAssessmentProject.getAssessmentValue());
|
|
||||||
|
BusinessAssayProjectDataExtendRespVO sourceBusinessAssayProjectDataExtendRespVO = businessAssayProjectDataExtendList.stream().filter(f -> sourceProject.equals(f.getSimpleName())).findFirst().orElse(null);
|
||||||
|
if (sourceBusinessAssayProjectDataExtendRespVO != null && StringUtils.isNotBlank(sourceBusinessAssayProjectDataExtendRespVO.getValue())) {
|
||||||
|
businessAssayParameterDataDO.setValue(sourceBusinessAssayProjectDataExtendRespVO.getValue());
|
||||||
}
|
}
|
||||||
} else if (QmsCommonConstant.ENTRUST_COMMISSION_INSPECTION_SAMPLE.equals(baseSampleDO.getDictionaryBusinessKey())) {//如果是委检样
|
} else if (QmsCommonConstant.ENTRUST_COMMISSION_INSPECTION_SAMPLE.equals(baseSampleDO.getDictionaryBusinessKey())) {//如果是委检样
|
||||||
//查询来样品位
|
//查询来样品位
|
||||||
@@ -720,11 +722,13 @@ public class SampleAnalysisServiceImpl implements SampleAnalysisService {
|
|||||||
businessAssayParameterDataDO.setValue(forecastValue);
|
businessAssayParameterDataDO.setValue(forecastValue);
|
||||||
} else {
|
} else {
|
||||||
//查询当前样品的其他方法的结果
|
//查询当前样品的其他方法的结果
|
||||||
List<Long> businessSubParentSampleIdList = Arrays.asList(businessAssayTaskDataDO.getBusinessSubParentSampleId());
|
// List<Long> businessSubParentSampleIdList = Arrays.asList(businessAssayTaskDataDO.getBusinessSubParentSampleId());
|
||||||
List<BusinessSubParentSampleAssessmentProjectExtendRespVO> businessSubParentSampleAssessmentProjectList = businessSubParentSampleAssessmentProjectMapper.selectByBusinessSubParentSampleIdsAndConfigAssayMethodId(businessSubParentSampleIdList, configMethodId);
|
// List<BusinessSubParentSampleAssessmentProjectExtendRespVO> businessSubParentSampleAssessmentProjectList = businessSubParentSampleAssessmentProjectMapper.selectByBusinessSubParentSampleIdsAndConfigAssayMethodId(businessSubParentSampleIdList, configMethodId);
|
||||||
BusinessSubParentSampleAssessmentProjectExtendRespVO businessSubParentSampleAssessmentProject = businessSubParentSampleAssessmentProjectList.stream().filter(f -> f.getSimpleName().equals(sourceProject)).findFirst().orElse(null);
|
// BusinessSubParentSampleAssessmentProjectExtendRespVO businessSubParentSampleAssessmentProject = businessSubParentSampleAssessmentProjectList.stream().filter(f -> f.getSimpleName().equals(sourceProject)).findFirst().orElse(null);
|
||||||
if (businessSubParentSampleAssessmentProject != null && StringUtils.isNotBlank(businessSubParentSampleAssessmentProject.getAssessmentValue())) {
|
List<BusinessAssayProjectDataExtendRespVO> businessAssayProjectDataExtendList = businessAssayProjectDataMapper.selectByBusinessBaseSampleIdAndConfigAssayMethodId(businessAssayTaskDataDO.getBusinessBaseSampleId(), configMethodId);
|
||||||
businessAssayParameterDataDO.setValue(businessSubParentSampleAssessmentProject.getAssessmentValue());
|
BusinessAssayProjectDataExtendRespVO sourceBusinessAssayProjectDataExtendRespVO = businessAssayProjectDataExtendList.stream().filter(f -> sourceProject.equals(f.getSimpleName())).findFirst().orElse(null);
|
||||||
|
if (sourceBusinessAssayProjectDataExtendRespVO != null && StringUtils.isNotBlank(sourceBusinessAssayProjectDataExtendRespVO.getValue())) {
|
||||||
|
businessAssayParameterDataDO.setValue(sourceBusinessAssayProjectDataExtendRespVO.getValue());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1289,35 +1293,114 @@ public class SampleAnalysisServiceImpl implements SampleAnalysisService {
|
|||||||
List<ConfigSubSampleMethodExtendRespVO> configSubSampleMethodDOList = configSubSampleMethodMapper.selectByConfigSubSampleIdsAndConfigAssayMethodId(configSubSampleIdList, businessAssayTaskDO.getConfigAssayMethodId());
|
List<ConfigSubSampleMethodExtendRespVO> configSubSampleMethodDOList = configSubSampleMethodMapper.selectByConfigSubSampleIdsAndConfigAssayMethodId(configSubSampleIdList, businessAssayTaskDO.getConfigAssayMethodId());
|
||||||
|
|
||||||
//循环任务,赋值
|
//循环任务,赋值
|
||||||
for (BusinessAssayTaskDataExtendRespVO businessAssayTaskData : businessAssayTaskDataExtendList) {
|
for (BusinessAssayTaskDataExtendRespVO businessAssayTaskData : businessAssayTaskDataExtendList) {
|
||||||
ConfigSubSampleMethodExtendRespVO configSubSampleMethod = configSubSampleMethodDOList.stream().filter(f -> f.getConfigBaseSampleId().equals(businessAssayTaskData.getConfigSubSampleId()) && f.getConfigAssayMethodId().equals(businessAssayTaskData.getConfigAssayMethodId())).findFirst().orElse(null);
|
|
||||||
|
ConfigSubSampleMethodExtendRespVO configSubSampleMethod = configSubSampleMethodDOList.stream().filter(f -> f.getConfigSubSampleId().equals(businessAssayTaskData.getConfigSubSampleId()) && f.getConfigAssayMethodId().equals(businessAssayTaskData.getConfigAssayMethodId())).findFirst().orElse(null);
|
||||||
String configInfomation = configSubSampleMethod.getConfigInfomation();
|
String configInfomation = configSubSampleMethod.getConfigInfomation();
|
||||||
if (StringUtils.isNotBlank(configInfomation)) {
|
if (StringUtils.isNotBlank(configInfomation)) {
|
||||||
ConfigSubSampleMethodConfInfo configSubSampleMethodConfInfo = JSON.parseObject(configInfomation, ConfigSubSampleMethodConfInfo.class);
|
ConfigSubSampleMethodConfInfo configSubSampleMethodConfInfo = JSON.parseObject(configInfomation, ConfigSubSampleMethodConfInfo.class);
|
||||||
List<ConfigSubSampleMethodConfItem> setParamList = configSubSampleMethodConfInfo.getSetParam();
|
List<ConfigSubSampleMethodConfItem> setParamList = configSubSampleMethodConfInfo.getSetParam();
|
||||||
|
if (CollUtil.isNotEmpty(setParamList)) {//参数不为空,则设置
|
||||||
String methodKey = setParamList.stream().map(m -> m.getTarget().getMethodKey()).distinct().findFirst().orElse(null);
|
//方法key
|
||||||
List<BusinessAssayTaskDataDO> targetBusinessAssayTaskDataList = businessAssayTaskDataMapper.selectByBusinessSubSampleIdAndMethodKey(businessAssayTaskData.getBusinessSubSampleId(), methodKey);
|
String methodKey = setParamList.stream().map(m -> m.getTarget().getMethodKey()).distinct().findFirst().orElse(null);
|
||||||
List<Long> targetBusinessAssayTaskDataIdList = targetBusinessAssayTaskDataList.stream().map(m -> m.getId()).collect(Collectors.toList());
|
|
||||||
List<BusinessAssayProjectDataExtendRespVO> targetBusinessAssayProjectDataExtendList = businessAssayProjectDataMapper.selectByBusinessAssayTaskDataIds(targetBusinessAssayTaskDataIdList);
|
//1 查询委托明细
|
||||||
|
BusinessSampleEntrustDetailDO businessSampleEntrustDetailDO = businessSampleEntrustDetailMapper.selectByBusinessBaseSampleId(businessAssayTaskData.getBusinessBaseSampleId());
|
||||||
for (ConfigSubSampleMethodConfItem configSubSampleMethodConfItem : setParamList) {
|
//2 查询样品大类
|
||||||
ConfigSubSampleMethodConfPoint source = configSubSampleMethodConfItem.getSource();
|
BaseSampleDO baseSampleDO = baseSampleMapper.selectById(businessSampleEntrustDetailDO.getBaseSampleId());
|
||||||
String project = source.getProject();
|
|
||||||
BusinessAssayProjectDataExtendRespVO currentBusinessAssayProjectData = businessAssayProjectDataExtendList.stream().filter(f -> f.getBusinessAssayTaskDataId().equals(businessAssayTaskData.getId()) && f.getSimpleName().equals(project)).findFirst().orElse(null);
|
//3 判断样品大类类型
|
||||||
ConfigSubSampleMethodConfPoint target = configSubSampleMethodConfItem.getTarget();
|
if (QmsCommonConstant.ENTRUST_INSPECTION_ANALYSIS_SAMPLE.equals(baseSampleDO.getDictionaryBusinessKey())) {//如果是商检分析样
|
||||||
for (BusinessAssayTaskDataDO targetBusinessAssayTaskData : targetBusinessAssayTaskDataList) {
|
//委托登记Id
|
||||||
List<String> targetProjectList = Arrays.asList(target.getProject().split(","));
|
Long businessSampleEntrustRegistrationId = businessSampleEntrustDetailDO.getBusinessSampleEntrustRegistrationId();
|
||||||
String targetParameter = target.getParameter();
|
//查询委托登记明细
|
||||||
for (String targetProject : targetProjectList) {
|
List<BusinessSampleEntrustDetailDO> businessSampleEntrustDetailList = businessSampleEntrustDetailMapper.selectByBusinessSampleEntrustRegistrationId(businessSampleEntrustRegistrationId);
|
||||||
BusinessAssayProjectDataExtendRespVO targetBusinessAssayProjectData = targetBusinessAssayProjectDataExtendList.stream().filter(f -> f.getBusinessAssayTaskDataId().equals(targetBusinessAssayTaskData.getId()) && f.getSimpleName().equals(targetProject)).findFirst().orElse(null);
|
//获取主样Id列表
|
||||||
BusinessAssayParameterDataDO businessAssayParameterDataDO = businessAssayParameterDataMapper.selectByBusinessAssayTaskDataIdAndProjectSimpleNameAndParameterKey(targetBusinessAssayProjectData.getId(), targetProject, targetParameter);
|
List<Long> businessBaseSampleIdList = businessSampleEntrustDetailList.stream().map(m -> m.getBusinessBaseSampleId()).collect(Collectors.toList());
|
||||||
if (businessAssayParameterDataDO != null) {
|
//查询当前分析方法下对应的任务
|
||||||
businessAssayParameterDataDO.setValue(currentBusinessAssayProjectData.getValue());
|
List<BusinessAssayTaskDataDO> targetBusinessAssayTaskDataList = businessAssayTaskDataMapper.selectByBusinessBaseSampleIdsAndMethodKey(businessBaseSampleIdList, methodKey);
|
||||||
updateBusinessAssayParameterDataList.add(businessAssayParameterDataDO);
|
List<Long> targetBusinessAssayTaskDataIdList = targetBusinessAssayTaskDataList.stream().map(m -> m.getId()).collect(Collectors.toList());
|
||||||
}
|
List<BusinessAssayProjectDataExtendRespVO> targetBusinessAssayProjectDataExtendList = businessAssayProjectDataMapper.selectByBusinessAssayTaskDataIds(targetBusinessAssayTaskDataIdList);
|
||||||
|
|
||||||
}
|
for (ConfigSubSampleMethodConfItem configSubSampleMethodConfItem : setParamList) {
|
||||||
|
ConfigSubSampleMethodConfPoint source = configSubSampleMethodConfItem.getSource();
|
||||||
|
String project = source.getProject();
|
||||||
|
BusinessAssayProjectDataExtendRespVO currentBusinessAssayProjectData = businessAssayProjectDataExtendList.stream().filter(f -> f.getBusinessAssayTaskDataId().equals(businessAssayTaskData.getId()) && project.equals(f.getSimpleName())).findFirst().orElse(null);
|
||||||
|
ConfigSubSampleMethodConfPoint target = configSubSampleMethodConfItem.getTarget();
|
||||||
|
for (BusinessAssayTaskDataDO targetBusinessAssayTaskData : targetBusinessAssayTaskDataList) {
|
||||||
|
List<String> targetProjectList = Arrays.asList(target.getProject().split(","));
|
||||||
|
String targetParameter = target.getParameter();
|
||||||
|
for (String targetProject : targetProjectList) {
|
||||||
|
BusinessAssayProjectDataExtendRespVO targetBusinessAssayProjectData = targetBusinessAssayProjectDataExtendList.stream().filter(f -> f.getBusinessAssayTaskDataId().equals(targetBusinessAssayTaskData.getId()) && targetProject.equals(f.getSimpleName())).findFirst().orElse(null);
|
||||||
|
if (targetBusinessAssayProjectData == null) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
BusinessAssayParameterDataDO businessAssayParameterDataDO = businessAssayParameterDataMapper.selectByBusinessAssayProjectDataIdAndProjectSimpleNameAndParameterKey(targetBusinessAssayProjectData.getId(), targetProject, targetParameter);
|
||||||
|
if (businessAssayParameterDataDO != null) {
|
||||||
|
businessAssayParameterDataDO.setValue(currentBusinessAssayProjectData.getValue());
|
||||||
|
updateBusinessAssayParameterDataList.add(businessAssayParameterDataDO);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else if (QmsCommonConstant.ENTRUST_COMPREHENSIVE_INSPECTION_SAMPLE.equals(baseSampleDO.getDictionaryBusinessKey())) {//如果是商检综合样
|
||||||
|
//查询当前分析方法下对应的任务
|
||||||
|
List<BusinessAssayTaskDataDO> targetBusinessAssayTaskDataList = businessAssayTaskDataMapper.selectByBusinessSubSampleIdAndMethodKey(businessAssayTaskData.getBusinessSubSampleId(), methodKey);
|
||||||
|
List<Long> targetBusinessAssayTaskDataIdList = targetBusinessAssayTaskDataList.stream().map(m -> m.getId()).collect(Collectors.toList());
|
||||||
|
List<BusinessAssayProjectDataExtendRespVO> targetBusinessAssayProjectDataExtendList = businessAssayProjectDataMapper.selectByBusinessAssayTaskDataIds(targetBusinessAssayTaskDataIdList);
|
||||||
|
|
||||||
|
for (ConfigSubSampleMethodConfItem configSubSampleMethodConfItem : setParamList) {
|
||||||
|
ConfigSubSampleMethodConfPoint source = configSubSampleMethodConfItem.getSource();
|
||||||
|
String project = source.getProject();
|
||||||
|
BusinessAssayProjectDataExtendRespVO currentBusinessAssayProjectData = businessAssayProjectDataExtendList.stream().filter(f -> f.getBusinessAssayTaskDataId().equals(businessAssayTaskData.getId()) && project.equals(f.getSimpleName())).findFirst().orElse(null);
|
||||||
|
ConfigSubSampleMethodConfPoint target = configSubSampleMethodConfItem.getTarget();
|
||||||
|
for (BusinessAssayTaskDataDO targetBusinessAssayTaskData : targetBusinessAssayTaskDataList) {
|
||||||
|
List<String> targetProjectList = Arrays.asList(target.getProject().split(","));
|
||||||
|
String targetParameter = target.getParameter();
|
||||||
|
for (String targetProject : targetProjectList) {
|
||||||
|
BusinessAssayProjectDataExtendRespVO targetBusinessAssayProjectData = targetBusinessAssayProjectDataExtendList.stream().filter(f -> f.getBusinessAssayTaskDataId().equals(targetBusinessAssayTaskData.getId()) && targetProject.equals(f.getSimpleName())).findFirst().orElse(null);
|
||||||
|
if (targetBusinessAssayProjectData == null) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
BusinessAssayParameterDataDO businessAssayParameterDataDO = businessAssayParameterDataMapper.selectByBusinessAssayProjectDataIdAndProjectSimpleNameAndParameterKey(targetBusinessAssayProjectData.getId(), targetProject, targetParameter);
|
||||||
|
if (businessAssayParameterDataDO != null) {
|
||||||
|
businessAssayParameterDataDO.setValue(currentBusinessAssayProjectData.getValue());
|
||||||
|
updateBusinessAssayParameterDataList.add(businessAssayParameterDataDO);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else if (QmsCommonConstant.ENTRUST_COMMISSION_INSPECTION_SAMPLE.equals(baseSampleDO.getDictionaryBusinessKey())) {//如果是委检样
|
||||||
|
//查询当前分析方法下对应的任务
|
||||||
|
List<BusinessAssayTaskDataDO> targetBusinessAssayTaskDataList = businessAssayTaskDataMapper.selectByBusinessSubSampleIdAndMethodKey(businessAssayTaskData.getBusinessSubSampleId(), methodKey);
|
||||||
|
List<Long> targetBusinessAssayTaskDataIdList = targetBusinessAssayTaskDataList.stream().map(m -> m.getId()).collect(Collectors.toList());
|
||||||
|
List<BusinessAssayProjectDataExtendRespVO> targetBusinessAssayProjectDataExtendList = businessAssayProjectDataMapper.selectByBusinessAssayTaskDataIds(targetBusinessAssayTaskDataIdList);
|
||||||
|
|
||||||
|
for (ConfigSubSampleMethodConfItem configSubSampleMethodConfItem : setParamList) {
|
||||||
|
ConfigSubSampleMethodConfPoint source = configSubSampleMethodConfItem.getSource();
|
||||||
|
String project = source.getProject();
|
||||||
|
BusinessAssayProjectDataExtendRespVO currentBusinessAssayProjectData = businessAssayProjectDataExtendList.stream().filter(f -> f.getBusinessAssayTaskDataId().equals(businessAssayTaskData.getId()) && project.equals(f.getSimpleName())).findFirst().orElse(null);
|
||||||
|
ConfigSubSampleMethodConfPoint target = configSubSampleMethodConfItem.getTarget();
|
||||||
|
for (BusinessAssayTaskDataDO targetBusinessAssayTaskData : targetBusinessAssayTaskDataList) {
|
||||||
|
List<String> targetProjectList = Arrays.asList(target.getProject().split(","));
|
||||||
|
String targetParameter = target.getParameter();
|
||||||
|
for (String targetProject : targetProjectList) {
|
||||||
|
BusinessAssayProjectDataExtendRespVO targetBusinessAssayProjectData = targetBusinessAssayProjectDataExtendList.stream().filter(f -> f.getBusinessAssayTaskDataId().equals(targetBusinessAssayTaskData.getId()) && targetProject.equals(f.getSimpleName())).findFirst().orElse(null);
|
||||||
|
if (targetBusinessAssayProjectData == null) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
BusinessAssayParameterDataDO businessAssayParameterDataDO = businessAssayParameterDataMapper.selectByBusinessAssayProjectDataIdAndProjectSimpleNameAndParameterKey(targetBusinessAssayProjectData.getId(), targetProject, targetParameter);
|
||||||
|
if (businessAssayParameterDataDO != null && StringUtils.isBlank(businessAssayParameterDataDO.getValue())) {//值为空,才赋值
|
||||||
|
businessAssayParameterDataDO.setValue(currentBusinessAssayProjectData.getValue());
|
||||||
|
updateBusinessAssayParameterDataList.add(businessAssayParameterDataDO);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -214,9 +214,17 @@ public class ReportDocumentMainServiceImpl implements ReportDocumentMainService,
|
|||||||
|
|
||||||
//委托单号
|
//委托单号
|
||||||
String entrustCode = "";
|
String entrustCode = "";
|
||||||
|
|
||||||
if(!ObjectUtils.isEmpty(entrustList)){
|
if(!ObjectUtils.isEmpty(entrustList)){
|
||||||
for(BusinessSampleEntrustRegistrationDO entrust : entrustList){
|
for(BusinessSampleEntrustRegistrationDO entrust : entrustList){
|
||||||
entrustCode += entrust.getEntrustNumber() + ",";
|
entrustCode += entrust.getEntrustNumber() + ",";
|
||||||
|
String externalInfomation = entrust.getExternalInfomation();
|
||||||
|
if(!ObjectUtils.isEmpty(externalInfomation)){
|
||||||
|
JSONObject externalInfomationJson = JSONObject.parseObject(externalInfomation);
|
||||||
|
String sampleCategory = externalInfomationJson.getString("sampleCategory");
|
||||||
|
if(!ObjectUtils.isEmpty(sampleCategory))
|
||||||
|
formDataJson.put("sampleCategory", sampleCategory);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package com.zt.plat.module.qms.resource.material.constant;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 物料常量
|
||||||
|
*/
|
||||||
|
public class MaterialConstants {
|
||||||
|
// 字典 类型
|
||||||
|
public static final String DICT_MATERIAL_FLOW_TYPE = "jy_material_lifecycle_bsn_type";
|
||||||
|
}
|
||||||
@@ -88,10 +88,10 @@ public class MaterialInfomationController implements BusinessControllerMarker {
|
|||||||
|
|
||||||
@GetMapping("/page")
|
@GetMapping("/page")
|
||||||
@Operation(summary = "获得物料实例分页")
|
@Operation(summary = "获得物料实例分页")
|
||||||
@PreAuthorize("@ss.hasPermission('qms:material-infomation:query')")
|
// @PreAuthorize("@ss.hasPermission('qms:material-infomation:query')")
|
||||||
public CommonResult<PageResult<MaterialInfomationRespVO>> getMaterialInfomationPage(@Valid MaterialInfomationPageReqVO pageReqVO) {
|
public CommonResult<PageResult<MaterialInfomationRespVO>> getMaterialInfomationPage(@Valid MaterialInfomationPageReqVO pageReqVO) {
|
||||||
PageResult<MaterialInfomationDO> pageResult = materialInfomationService.getMaterialInfomationPage(pageReqVO);
|
PageResult<MaterialInfomationRespVO> pageResult = materialInfomationService.getMaterialInfomationPageWithPdtInfo(pageReqVO);
|
||||||
return success(BeanUtils.toBean(pageResult, MaterialInfomationRespVO.class));
|
return success(pageResult);
|
||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping("/export-excel")
|
@GetMapping("/export-excel")
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import com.zt.plat.framework.common.pojo.PageParam;
|
|||||||
import com.zt.plat.framework.common.pojo.PageResult;
|
import com.zt.plat.framework.common.pojo.PageResult;
|
||||||
import com.zt.plat.framework.common.pojo.vo.BatchDeleteReqVO;
|
import com.zt.plat.framework.common.pojo.vo.BatchDeleteReqVO;
|
||||||
import com.zt.plat.framework.common.util.object.BeanUtils;
|
import com.zt.plat.framework.common.util.object.BeanUtils;
|
||||||
|
import com.zt.plat.framework.datapermission.core.annotation.DeptDataPermissionIgnore;
|
||||||
import com.zt.plat.framework.excel.core.util.ExcelUtils;
|
import com.zt.plat.framework.excel.core.util.ExcelUtils;
|
||||||
import com.zt.plat.module.qms.resource.material.controller.vo.MaterialInventoryInboundPageReqVO;
|
import com.zt.plat.module.qms.resource.material.controller.vo.MaterialInventoryInboundPageReqVO;
|
||||||
import com.zt.plat.module.qms.resource.material.controller.vo.MaterialInventoryInboundRespVO;
|
import com.zt.plat.module.qms.resource.material.controller.vo.MaterialInventoryInboundRespVO;
|
||||||
@@ -29,35 +30,28 @@ import java.util.List;
|
|||||||
import static com.zt.plat.framework.apilog.core.enums.OperateTypeEnum.EXPORT;
|
import static com.zt.plat.framework.apilog.core.enums.OperateTypeEnum.EXPORT;
|
||||||
import static com.zt.plat.framework.common.pojo.CommonResult.success;
|
import static com.zt.plat.framework.common.pojo.CommonResult.success;
|
||||||
|
|
||||||
@Tag(name = "管理后台 - 入库")
|
@Tag(name = "管理后台 - 物料入库")
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/t/material-inventory-inbound")
|
@RequestMapping("/qms/resource/material-inventory-inbound")
|
||||||
@Validated
|
@Validated
|
||||||
|
@DeptDataPermissionIgnore(enable = "true")
|
||||||
public class MaterialInventoryInboundController implements BusinessControllerMarker {
|
public class MaterialInventoryInboundController implements BusinessControllerMarker {
|
||||||
|
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private MaterialInventoryInboundService materialInventoryInboundService;
|
private MaterialInventoryInboundService materialInventoryInboundService;
|
||||||
|
|
||||||
@PostMapping("/create")
|
@PostMapping("/add")
|
||||||
@Operation(summary = "创建入库")
|
@Operation(summary = "物料入库")
|
||||||
@PreAuthorize("@ss.hasPermission('t:material-inventory-inbound:create')")
|
// @PreAuthorize("@ss.hasPermission('qms:material-inventory-inbound:create')")
|
||||||
public CommonResult<MaterialInventoryInboundRespVO> createMaterialInventoryInbound(@Valid @RequestBody MaterialInventoryInboundSaveReqVO createReqVO) {
|
public CommonResult<MaterialInventoryInboundRespVO> createMaterialInventoryInbound(@Valid @RequestBody MaterialInventoryInboundSaveReqVO createReqVO) {
|
||||||
return success(materialInventoryInboundService.createMaterialInventoryInbound(createReqVO));
|
return success(materialInventoryInboundService.createMaterialInventoryInbound(createReqVO));
|
||||||
}
|
}
|
||||||
|
|
||||||
@PutMapping("/update")
|
|
||||||
@Operation(summary = "更新入库")
|
|
||||||
@PreAuthorize("@ss.hasPermission('t:material-inventory-inbound:update')")
|
|
||||||
public CommonResult<Boolean> updateMaterialInventoryInbound(@Valid @RequestBody MaterialInventoryInboundSaveReqVO updateReqVO) {
|
|
||||||
materialInventoryInboundService.updateMaterialInventoryInbound(updateReqVO);
|
|
||||||
return success(true);
|
|
||||||
}
|
|
||||||
|
|
||||||
@DeleteMapping("/delete")
|
@DeleteMapping("/delete")
|
||||||
@Operation(summary = "删除入库")
|
@Operation(summary = "删除入库")
|
||||||
@Parameter(name = "id", description = "编号", required = true)
|
@Parameter(name = "id", description = "编号", required = true)
|
||||||
@PreAuthorize("@ss.hasPermission('t:material-inventory-inbound:delete')")
|
@PreAuthorize("@ss.hasPermission('qms:material-inventory-inbound:delete')")
|
||||||
public CommonResult<Boolean> deleteMaterialInventoryInbound(@RequestParam("id") Long id) {
|
public CommonResult<Boolean> deleteMaterialInventoryInbound(@RequestParam("id") Long id) {
|
||||||
materialInventoryInboundService.deleteMaterialInventoryInbound(id);
|
materialInventoryInboundService.deleteMaterialInventoryInbound(id);
|
||||||
return success(true);
|
return success(true);
|
||||||
@@ -66,7 +60,7 @@ public class MaterialInventoryInboundController implements BusinessControllerMar
|
|||||||
@DeleteMapping("/delete-list")
|
@DeleteMapping("/delete-list")
|
||||||
@Parameter(name = "ids", description = "编号", required = true)
|
@Parameter(name = "ids", description = "编号", required = true)
|
||||||
@Operation(summary = "批量删除入库")
|
@Operation(summary = "批量删除入库")
|
||||||
@PreAuthorize("@ss.hasPermission('t:material-inventory-inbound:delete')")
|
@PreAuthorize("@ss.hasPermission('qms:material-inventory-inbound:delete')")
|
||||||
public CommonResult<Boolean> deleteMaterialInventoryInboundList(@RequestBody BatchDeleteReqVO req) {
|
public CommonResult<Boolean> deleteMaterialInventoryInboundList(@RequestBody BatchDeleteReqVO req) {
|
||||||
materialInventoryInboundService.deleteMaterialInventoryInboundListByIds(req.getIds());
|
materialInventoryInboundService.deleteMaterialInventoryInboundListByIds(req.getIds());
|
||||||
return success(true);
|
return success(true);
|
||||||
@@ -75,7 +69,7 @@ public class MaterialInventoryInboundController implements BusinessControllerMar
|
|||||||
@GetMapping("/get")
|
@GetMapping("/get")
|
||||||
@Operation(summary = "获得入库")
|
@Operation(summary = "获得入库")
|
||||||
@Parameter(name = "id", description = "编号", required = true, example = "1024")
|
@Parameter(name = "id", description = "编号", required = true, example = "1024")
|
||||||
@PreAuthorize("@ss.hasPermission('t:material-inventory-inbound:query')")
|
@PreAuthorize("@ss.hasPermission('qms:material-inventory-inbound:query')")
|
||||||
public CommonResult<MaterialInventoryInboundRespVO> getMaterialInventoryInbound(@RequestParam("id") Long id) {
|
public CommonResult<MaterialInventoryInboundRespVO> getMaterialInventoryInbound(@RequestParam("id") Long id) {
|
||||||
MaterialInventoryInboundDO materialInventoryInbound = materialInventoryInboundService.getMaterialInventoryInbound(id);
|
MaterialInventoryInboundDO materialInventoryInbound = materialInventoryInboundService.getMaterialInventoryInbound(id);
|
||||||
return success(BeanUtils.toBean(materialInventoryInbound, MaterialInventoryInboundRespVO.class));
|
return success(BeanUtils.toBean(materialInventoryInbound, MaterialInventoryInboundRespVO.class));
|
||||||
@@ -83,7 +77,7 @@ public class MaterialInventoryInboundController implements BusinessControllerMar
|
|||||||
|
|
||||||
@GetMapping("/page")
|
@GetMapping("/page")
|
||||||
@Operation(summary = "获得入库分页")
|
@Operation(summary = "获得入库分页")
|
||||||
@PreAuthorize("@ss.hasPermission('t:material-inventory-inbound:query')")
|
@PreAuthorize("@ss.hasPermission('qms:material-inventory-inbound:query')")
|
||||||
public CommonResult<PageResult<MaterialInventoryInboundRespVO>> getMaterialInventoryInboundPage(@Valid MaterialInventoryInboundPageReqVO pageReqVO) {
|
public CommonResult<PageResult<MaterialInventoryInboundRespVO>> getMaterialInventoryInboundPage(@Valid MaterialInventoryInboundPageReqVO pageReqVO) {
|
||||||
PageResult<MaterialInventoryInboundDO> pageResult = materialInventoryInboundService.getMaterialInventoryInboundPage(pageReqVO);
|
PageResult<MaterialInventoryInboundDO> pageResult = materialInventoryInboundService.getMaterialInventoryInboundPage(pageReqVO);
|
||||||
return success(BeanUtils.toBean(pageResult, MaterialInventoryInboundRespVO.class));
|
return success(BeanUtils.toBean(pageResult, MaterialInventoryInboundRespVO.class));
|
||||||
@@ -91,7 +85,7 @@ public class MaterialInventoryInboundController implements BusinessControllerMar
|
|||||||
|
|
||||||
@GetMapping("/export-excel")
|
@GetMapping("/export-excel")
|
||||||
@Operation(summary = "导出入库 Excel")
|
@Operation(summary = "导出入库 Excel")
|
||||||
@PreAuthorize("@ss.hasPermission('t:material-inventory-inbound:export')")
|
@PreAuthorize("@ss.hasPermission('qms:material-inventory-inbound:export')")
|
||||||
@ApiAccessLog(operateType = EXPORT)
|
@ApiAccessLog(operateType = EXPORT)
|
||||||
public void exportMaterialInventoryInboundExcel(@Valid MaterialInventoryInboundPageReqVO pageReqVO,
|
public void exportMaterialInventoryInboundExcel(@Valid MaterialInventoryInboundPageReqVO pageReqVO,
|
||||||
HttpServletResponse response) throws IOException {
|
HttpServletResponse response) throws IOException {
|
||||||
|
|||||||
@@ -29,9 +29,9 @@ import java.util.List;
|
|||||||
import static com.zt.plat.framework.apilog.core.enums.OperateTypeEnum.EXPORT;
|
import static com.zt.plat.framework.apilog.core.enums.OperateTypeEnum.EXPORT;
|
||||||
import static com.zt.plat.framework.common.pojo.CommonResult.success;
|
import static com.zt.plat.framework.common.pojo.CommonResult.success;
|
||||||
|
|
||||||
@Tag(name = "管理后台 - 入库明细,验收入库、盘盈入库等")
|
@Tag(name = "管理后台 - 物料入库明细,验收入库、盘盈入库等")
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/t/material-inventory-inbound-detail")
|
@RequestMapping("/qms/resource/material-inventory-inbound-detail")
|
||||||
@Validated
|
@Validated
|
||||||
public class MaterialInventoryInboundDetailController implements BusinessControllerMarker {
|
public class MaterialInventoryInboundDetailController implements BusinessControllerMarker {
|
||||||
|
|
||||||
@@ -41,14 +41,14 @@ public class MaterialInventoryInboundDetailController implements BusinessControl
|
|||||||
|
|
||||||
@PostMapping("/create")
|
@PostMapping("/create")
|
||||||
@Operation(summary = "创建入库明细,验收入库、盘盈入库等")
|
@Operation(summary = "创建入库明细,验收入库、盘盈入库等")
|
||||||
@PreAuthorize("@ss.hasPermission('t:material-inventory-inbound-detail:create')")
|
@PreAuthorize("@ss.hasPermission('qms:material-inventory-inbound-detail:create')")
|
||||||
public CommonResult<MaterialInventoryInboundDetailRespVO> createMaterialInventoryInboundDetail(@Valid @RequestBody MaterialInventoryInboundDetailSaveReqVO createReqVO) {
|
public CommonResult<MaterialInventoryInboundDetailRespVO> createMaterialInventoryInboundDetail(@Valid @RequestBody MaterialInventoryInboundDetailSaveReqVO createReqVO) {
|
||||||
return success(materialInventoryInboundDetailService.createMaterialInventoryInboundDetail(createReqVO));
|
return success(materialInventoryInboundDetailService.createMaterialInventoryInboundDetail(createReqVO));
|
||||||
}
|
}
|
||||||
|
|
||||||
@PutMapping("/update")
|
@PutMapping("/update")
|
||||||
@Operation(summary = "更新入库明细,验收入库、盘盈入库等")
|
@Operation(summary = "更新入库明细,验收入库、盘盈入库等")
|
||||||
@PreAuthorize("@ss.hasPermission('t:material-inventory-inbound-detail:update')")
|
@PreAuthorize("@ss.hasPermission('qms:material-inventory-inbound-detail:update')")
|
||||||
public CommonResult<Boolean> updateMaterialInventoryInboundDetail(@Valid @RequestBody MaterialInventoryInboundDetailSaveReqVO updateReqVO) {
|
public CommonResult<Boolean> updateMaterialInventoryInboundDetail(@Valid @RequestBody MaterialInventoryInboundDetailSaveReqVO updateReqVO) {
|
||||||
materialInventoryInboundDetailService.updateMaterialInventoryInboundDetail(updateReqVO);
|
materialInventoryInboundDetailService.updateMaterialInventoryInboundDetail(updateReqVO);
|
||||||
return success(true);
|
return success(true);
|
||||||
@@ -57,7 +57,7 @@ public class MaterialInventoryInboundDetailController implements BusinessControl
|
|||||||
@DeleteMapping("/delete")
|
@DeleteMapping("/delete")
|
||||||
@Operation(summary = "删除入库明细,验收入库、盘盈入库等")
|
@Operation(summary = "删除入库明细,验收入库、盘盈入库等")
|
||||||
@Parameter(name = "id", description = "编号", required = true)
|
@Parameter(name = "id", description = "编号", required = true)
|
||||||
@PreAuthorize("@ss.hasPermission('t:material-inventory-inbound-detail:delete')")
|
@PreAuthorize("@ss.hasPermission('qms:material-inventory-inbound-detail:delete')")
|
||||||
public CommonResult<Boolean> deleteMaterialInventoryInboundDetail(@RequestParam("id") Long id) {
|
public CommonResult<Boolean> deleteMaterialInventoryInboundDetail(@RequestParam("id") Long id) {
|
||||||
materialInventoryInboundDetailService.deleteMaterialInventoryInboundDetail(id);
|
materialInventoryInboundDetailService.deleteMaterialInventoryInboundDetail(id);
|
||||||
return success(true);
|
return success(true);
|
||||||
@@ -66,7 +66,7 @@ public class MaterialInventoryInboundDetailController implements BusinessControl
|
|||||||
@DeleteMapping("/delete-list")
|
@DeleteMapping("/delete-list")
|
||||||
@Parameter(name = "ids", description = "编号", required = true)
|
@Parameter(name = "ids", description = "编号", required = true)
|
||||||
@Operation(summary = "批量删除入库明细,验收入库、盘盈入库等")
|
@Operation(summary = "批量删除入库明细,验收入库、盘盈入库等")
|
||||||
@PreAuthorize("@ss.hasPermission('t:material-inventory-inbound-detail:delete')")
|
@PreAuthorize("@ss.hasPermission('qms:material-inventory-inbound-detail:delete')")
|
||||||
public CommonResult<Boolean> deleteMaterialInventoryInboundDetailList(@RequestBody BatchDeleteReqVO req) {
|
public CommonResult<Boolean> deleteMaterialInventoryInboundDetailList(@RequestBody BatchDeleteReqVO req) {
|
||||||
materialInventoryInboundDetailService.deleteMaterialInventoryInboundDetailListByIds(req.getIds());
|
materialInventoryInboundDetailService.deleteMaterialInventoryInboundDetailListByIds(req.getIds());
|
||||||
return success(true);
|
return success(true);
|
||||||
@@ -75,7 +75,7 @@ public class MaterialInventoryInboundDetailController implements BusinessControl
|
|||||||
@GetMapping("/get")
|
@GetMapping("/get")
|
||||||
@Operation(summary = "获得入库明细,验收入库、盘盈入库等")
|
@Operation(summary = "获得入库明细,验收入库、盘盈入库等")
|
||||||
@Parameter(name = "id", description = "编号", required = true, example = "1024")
|
@Parameter(name = "id", description = "编号", required = true, example = "1024")
|
||||||
@PreAuthorize("@ss.hasPermission('t:material-inventory-inbound-detail:query')")
|
@PreAuthorize("@ss.hasPermission('qms:material-inventory-inbound-detail:query')")
|
||||||
public CommonResult<MaterialInventoryInboundDetailRespVO> getMaterialInventoryInboundDetail(@RequestParam("id") Long id) {
|
public CommonResult<MaterialInventoryInboundDetailRespVO> getMaterialInventoryInboundDetail(@RequestParam("id") Long id) {
|
||||||
MaterialInventoryInboundDetailDO materialInventoryInboundDetail = materialInventoryInboundDetailService.getMaterialInventoryInboundDetail(id);
|
MaterialInventoryInboundDetailDO materialInventoryInboundDetail = materialInventoryInboundDetailService.getMaterialInventoryInboundDetail(id);
|
||||||
return success(BeanUtils.toBean(materialInventoryInboundDetail, MaterialInventoryInboundDetailRespVO.class));
|
return success(BeanUtils.toBean(materialInventoryInboundDetail, MaterialInventoryInboundDetailRespVO.class));
|
||||||
@@ -83,15 +83,24 @@ public class MaterialInventoryInboundDetailController implements BusinessControl
|
|||||||
|
|
||||||
@GetMapping("/page")
|
@GetMapping("/page")
|
||||||
@Operation(summary = "获得入库明细,验收入库、盘盈入库等分页")
|
@Operation(summary = "获得入库明细,验收入库、盘盈入库等分页")
|
||||||
@PreAuthorize("@ss.hasPermission('t:material-inventory-inbound-detail:query')")
|
// @PreAuthorize("@ss.hasPermission('qms:material-inventory-inbound-detail:query')")
|
||||||
public CommonResult<PageResult<MaterialInventoryInboundDetailRespVO>> getMaterialInventoryInboundDetailPage(@Valid MaterialInventoryInboundDetailPageReqVO pageReqVO) {
|
public CommonResult<PageResult<MaterialInventoryInboundDetailRespVO>> getMaterialInventoryInboundDetailPage(@Valid MaterialInventoryInboundDetailPageReqVO pageReqVO) {
|
||||||
PageResult<MaterialInventoryInboundDetailDO> pageResult = materialInventoryInboundDetailService.getMaterialInventoryInboundDetailPage(pageReqVO);
|
PageResult<MaterialInventoryInboundDetailRespVO> pageResult = materialInventoryInboundDetailService.getInventoryInboundDetailPageWithMaterialInfo(pageReqVO);
|
||||||
return success(BeanUtils.toBean(pageResult, MaterialInventoryInboundDetailRespVO.class));
|
return success(pageResult);
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping("/list")
|
||||||
|
@Operation(summary = "根据入库单id获取物料列表")
|
||||||
|
@Parameter(name = "inboundId", description = "入库单id", required = true)
|
||||||
|
// @PreAuthorize("@ss.hasPermission('qms:material-inventory-inbound-detail:query')")
|
||||||
|
public CommonResult<List<MaterialInventoryInboundDetailRespVO>> getMaterialInfoListByInboundId(@RequestParam("inboundId") Long inboundId) {
|
||||||
|
List<MaterialInventoryInboundDetailRespVO> materialInfoList = materialInventoryInboundDetailService.getMaterialInfoListByInboundId(inboundId);
|
||||||
|
return success(materialInfoList);
|
||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping("/export-excel")
|
@GetMapping("/export-excel")
|
||||||
@Operation(summary = "导出入库明细,验收入库、盘盈入库等 Excel")
|
@Operation(summary = "导出入库明细,验收入库、盘盈入库等 Excel")
|
||||||
@PreAuthorize("@ss.hasPermission('t:material-inventory-inbound-detail:export')")
|
@PreAuthorize("@ss.hasPermission('qms:material-inventory-inbound-detail:export')")
|
||||||
@ApiAccessLog(operateType = EXPORT)
|
@ApiAccessLog(operateType = EXPORT)
|
||||||
public void exportMaterialInventoryInboundDetailExcel(@Valid MaterialInventoryInboundDetailPageReqVO pageReqVO,
|
public void exportMaterialInventoryInboundDetailExcel(@Valid MaterialInventoryInboundDetailPageReqVO pageReqVO,
|
||||||
HttpServletResponse response) throws IOException {
|
HttpServletResponse response) throws IOException {
|
||||||
|
|||||||
@@ -52,8 +52,6 @@ public class MaterialLifecycleController extends AbstractFileUploadController im
|
|||||||
@Resource
|
@Resource
|
||||||
private MaterialLifecycleService materialLifecycleService;
|
private MaterialLifecycleService materialLifecycleService;
|
||||||
|
|
||||||
// QMS_RESOURCE_MATERIAL_COMMON
|
|
||||||
|
|
||||||
@PostMapping("/create")
|
@PostMapping("/create")
|
||||||
@Operation(summary = "新建物料流程")
|
@Operation(summary = "新建物料流程")
|
||||||
// @PreAuthorize("@ss.hasPermission('qms:material-lifecycle:create')")
|
// @PreAuthorize("@ss.hasPermission('qms:material-lifecycle:create')")
|
||||||
|
|||||||
@@ -1,110 +0,0 @@
|
|||||||
package com.zt.plat.module.qms.resource.material.controller.admin;
|
|
||||||
|
|
||||||
import com.zt.plat.module.qms.resource.material.controller.vo.MaterialLocationPageReqVO;
|
|
||||||
import com.zt.plat.module.qms.resource.material.controller.vo.MaterialLocationRespVO;
|
|
||||||
import com.zt.plat.module.qms.resource.material.controller.vo.MaterialLocationSaveReqVO;
|
|
||||||
import org.springframework.web.bind.annotation.*;
|
|
||||||
import jakarta.annotation.Resource;
|
|
||||||
import org.springframework.validation.annotation.Validated;
|
|
||||||
import org.springframework.security.access.prepost.PreAuthorize;
|
|
||||||
import com.zt.plat.framework.business.interceptor.BusinessControllerMarker;
|
|
||||||
|
|
||||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
|
||||||
import io.swagger.v3.oas.annotations.Parameter;
|
|
||||||
import io.swagger.v3.oas.annotations.Operation;
|
|
||||||
|
|
||||||
import jakarta.validation.constraints.*;
|
|
||||||
import jakarta.validation.*;
|
|
||||||
import jakarta.servlet.http.*;
|
|
||||||
import java.util.*;
|
|
||||||
import java.io.IOException;
|
|
||||||
|
|
||||||
import com.zt.plat.framework.common.pojo.vo.BatchDeleteReqVO;
|
|
||||||
import com.zt.plat.framework.common.pojo.PageParam;
|
|
||||||
import com.zt.plat.framework.common.pojo.PageResult;
|
|
||||||
import com.zt.plat.framework.common.pojo.CommonResult;
|
|
||||||
import com.zt.plat.framework.common.util.object.BeanUtils;
|
|
||||||
import static com.zt.plat.framework.common.pojo.CommonResult.success;
|
|
||||||
|
|
||||||
import com.zt.plat.framework.excel.core.util.ExcelUtils;
|
|
||||||
|
|
||||||
import com.zt.plat.framework.apilog.core.annotation.ApiAccessLog;
|
|
||||||
import static com.zt.plat.framework.apilog.core.enums.OperateTypeEnum.*;
|
|
||||||
|
|
||||||
import com.zt.plat.module.qms.resource.material.dal.dataobject.MaterialLocationDO;
|
|
||||||
import com.zt.plat.module.qms.resource.material.service.MaterialLocationService;
|
|
||||||
|
|
||||||
@Tag(name = "管理后台 - 存放位置")
|
|
||||||
@RestController
|
|
||||||
@RequestMapping("/qms/material-location")
|
|
||||||
@Validated
|
|
||||||
public class MaterialLocationController implements BusinessControllerMarker {
|
|
||||||
|
|
||||||
|
|
||||||
@Resource
|
|
||||||
private MaterialLocationService materialLocationService;
|
|
||||||
|
|
||||||
@PostMapping("/create")
|
|
||||||
@Operation(summary = "创建存放位置")
|
|
||||||
@PreAuthorize("@ss.hasPermission('qms:material-location:create')")
|
|
||||||
public CommonResult<MaterialLocationRespVO> createMaterialLocation(@Valid @RequestBody MaterialLocationSaveReqVO createReqVO) {
|
|
||||||
return success(materialLocationService.createMaterialLocation(createReqVO));
|
|
||||||
}
|
|
||||||
|
|
||||||
@PutMapping("/update")
|
|
||||||
@Operation(summary = "更新存放位置")
|
|
||||||
@PreAuthorize("@ss.hasPermission('qms:material-location:update')")
|
|
||||||
public CommonResult<Boolean> updateMaterialLocation(@Valid @RequestBody MaterialLocationSaveReqVO updateReqVO) {
|
|
||||||
materialLocationService.updateMaterialLocation(updateReqVO);
|
|
||||||
return success(true);
|
|
||||||
}
|
|
||||||
|
|
||||||
@DeleteMapping("/delete")
|
|
||||||
@Operation(summary = "删除存放位置")
|
|
||||||
@Parameter(name = "id", description = "编号", required = true)
|
|
||||||
@PreAuthorize("@ss.hasPermission('qms:material-location:delete')")
|
|
||||||
public CommonResult<Boolean> deleteMaterialLocation(@RequestParam("id") Long id) {
|
|
||||||
materialLocationService.deleteMaterialLocation(id);
|
|
||||||
return success(true);
|
|
||||||
}
|
|
||||||
|
|
||||||
@DeleteMapping("/delete-list")
|
|
||||||
@Parameter(name = "ids", description = "编号", required = true)
|
|
||||||
@Operation(summary = "批量删除存放位置")
|
|
||||||
@PreAuthorize("@ss.hasPermission('qms:material-location:delete')")
|
|
||||||
public CommonResult<Boolean> deleteMaterialLocationList(@RequestBody BatchDeleteReqVO req) {
|
|
||||||
materialLocationService.deleteMaterialLocationListByIds(req.getIds());
|
|
||||||
return success(true);
|
|
||||||
}
|
|
||||||
|
|
||||||
@GetMapping("/get")
|
|
||||||
@Operation(summary = "获得存放位置")
|
|
||||||
@Parameter(name = "id", description = "编号", required = true, example = "1024")
|
|
||||||
@PreAuthorize("@ss.hasPermission('qms:material-location:query')")
|
|
||||||
public CommonResult<MaterialLocationRespVO> getMaterialLocation(@RequestParam("id") Long id) {
|
|
||||||
MaterialLocationDO materialLocation = materialLocationService.getMaterialLocation(id);
|
|
||||||
return success(BeanUtils.toBean(materialLocation, MaterialLocationRespVO.class));
|
|
||||||
}
|
|
||||||
|
|
||||||
@GetMapping("/page")
|
|
||||||
@Operation(summary = "获得存放位置分页")
|
|
||||||
@PreAuthorize("@ss.hasPermission('qms:material-location:query')")
|
|
||||||
public CommonResult<PageResult<MaterialLocationRespVO>> getMaterialLocationPage(@Valid MaterialLocationPageReqVO pageReqVO) {
|
|
||||||
PageResult<MaterialLocationDO> pageResult = materialLocationService.getMaterialLocationPage(pageReqVO);
|
|
||||||
return success(BeanUtils.toBean(pageResult, MaterialLocationRespVO.class));
|
|
||||||
}
|
|
||||||
|
|
||||||
@GetMapping("/export-excel")
|
|
||||||
@Operation(summary = "导出存放位置 Excel")
|
|
||||||
@PreAuthorize("@ss.hasPermission('qms:material-location:export')")
|
|
||||||
@ApiAccessLog(operateType = EXPORT)
|
|
||||||
public void exportMaterialLocationExcel(@Valid MaterialLocationPageReqVO pageReqVO,
|
|
||||||
HttpServletResponse response) throws IOException {
|
|
||||||
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
|
|
||||||
List<MaterialLocationDO> list = materialLocationService.getMaterialLocationPage(pageReqVO).getList();
|
|
||||||
// 导出 Excel
|
|
||||||
ExcelUtils.write(response, "存放位置.xls", "数据", MaterialLocationRespVO.class,
|
|
||||||
BeanUtils.toBean(list, MaterialLocationRespVO.class));
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -25,6 +25,9 @@ public class MaterialBatchPageReqVO extends PageParam {
|
|||||||
@Schema(description = "是否只需要工段")
|
@Schema(description = "是否只需要工段")
|
||||||
private Boolean onlyGong = false;
|
private Boolean onlyGong = false;
|
||||||
|
|
||||||
|
@Schema(description = "true-已处理,false-未处理")
|
||||||
|
private Boolean treatment = false;
|
||||||
|
|
||||||
@Schema(description = "批次编号")
|
@Schema(description = "批次编号")
|
||||||
private String batchNo;
|
private String batchNo;
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package com.zt.plat.module.qms.resource.material.controller.vo;
|
package com.zt.plat.module.qms.resource.material.controller.vo;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
import lombok.*;
|
import lombok.*;
|
||||||
import org.springframework.format.annotation.DateTimeFormat;
|
import org.springframework.format.annotation.DateTimeFormat;
|
||||||
@@ -48,6 +49,10 @@ public class MaterialBatchRespVO {
|
|||||||
@ExcelProperty("总数量")
|
@ExcelProperty("总数量")
|
||||||
private BigDecimal inboundQuantity;
|
private BigDecimal inboundQuantity;
|
||||||
|
|
||||||
|
@Schema(description = "已入库数量")
|
||||||
|
@ExcelProperty("已入库数量")
|
||||||
|
private BigDecimal inboundEndQuantity;
|
||||||
|
|
||||||
@Schema(description = "存放位置描述")
|
@Schema(description = "存放位置描述")
|
||||||
@ExcelProperty("存放位置描述")
|
@ExcelProperty("存放位置描述")
|
||||||
private String location;
|
private String location;
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package com.zt.plat.module.qms.resource.material.controller.vo;
|
package com.zt.plat.module.qms.resource.material.controller.vo;
|
||||||
|
|
||||||
|
import com.alibaba.excel.annotation.ExcelProperty;
|
||||||
import lombok.*;
|
import lombok.*;
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
import com.zt.plat.framework.common.pojo.PageParam;
|
import com.zt.plat.framework.common.pojo.PageParam;
|
||||||
@@ -26,6 +27,9 @@ public class MaterialInfomationPageReqVO extends PageParam {
|
|||||||
@Schema(description = "编码")
|
@Schema(description = "编码")
|
||||||
private String code;
|
private String code;
|
||||||
|
|
||||||
|
@Schema(description = "名称")
|
||||||
|
private String name;
|
||||||
|
|
||||||
@Schema(description = "技术参数")
|
@Schema(description = "技术参数")
|
||||||
private String parameter;
|
private String parameter;
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package com.zt.plat.module.qms.resource.material.controller.vo;
|
package com.zt.plat.module.qms.resource.material.controller.vo;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
import lombok.*;
|
import lombok.*;
|
||||||
import org.springframework.format.annotation.DateTimeFormat;
|
import org.springframework.format.annotation.DateTimeFormat;
|
||||||
@@ -33,10 +34,34 @@ public class MaterialInfomationRespVO {
|
|||||||
@ExcelProperty("编码")
|
@ExcelProperty("编码")
|
||||||
private String code;
|
private String code;
|
||||||
|
|
||||||
|
@Schema(description = "名称")
|
||||||
|
@ExcelProperty("名称")
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
@Schema(description = "型号")
|
||||||
|
@ExcelProperty("型号")
|
||||||
|
private String modelNo;
|
||||||
|
|
||||||
|
@Schema(description = "规格")
|
||||||
|
@ExcelProperty("规格")
|
||||||
|
private String specification;
|
||||||
|
|
||||||
@Schema(description = "技术参数")
|
@Schema(description = "技术参数")
|
||||||
@ExcelProperty("技术参数")
|
@ExcelProperty("技术参数")
|
||||||
private String parameter;
|
private String parameter;
|
||||||
|
|
||||||
|
@Schema(description = "制造商")
|
||||||
|
@ExcelProperty("制造商")
|
||||||
|
private String manufacturer;
|
||||||
|
|
||||||
|
@Schema(description = "单位")
|
||||||
|
@ExcelProperty("单位")
|
||||||
|
private String unit;
|
||||||
|
|
||||||
|
@Schema(description = "保质期(天)")
|
||||||
|
@ExcelProperty("保质期(天)")
|
||||||
|
private Integer due;
|
||||||
|
|
||||||
@Schema(description = "上架状态,0-未上架,1-已上架", example = "2")
|
@Schema(description = "上架状态,0-未上架,1-已上架", example = "2")
|
||||||
@ExcelProperty("上架状态,0-未上架,1-已上架")
|
@ExcelProperty("上架状态,0-未上架,1-已上架")
|
||||||
private Integer publishStatus;
|
private Integer publishStatus;
|
||||||
|
|||||||
@@ -1,9 +1,7 @@
|
|||||||
package com.zt.plat.module.qms.resource.material.controller.vo;
|
package com.zt.plat.module.qms.resource.material.controller.vo;
|
||||||
|
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
import lombok.*;
|
import lombok.Data;
|
||||||
import jakarta.validation.constraints.*;
|
|
||||||
import org.springframework.format.annotation.DateTimeFormat;
|
|
||||||
|
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
@@ -27,6 +25,9 @@ public class MaterialInfomationSaveReqVO {
|
|||||||
@Schema(description = "编码")
|
@Schema(description = "编码")
|
||||||
private String code;
|
private String code;
|
||||||
|
|
||||||
|
@Schema(description = "名称")
|
||||||
|
private String name;
|
||||||
|
|
||||||
@Schema(description = "技术参数")
|
@Schema(description = "技术参数")
|
||||||
private String parameter;
|
private String parameter;
|
||||||
|
|
||||||
|
|||||||
@@ -28,10 +28,32 @@ public class MaterialInventoryInboundDetailRespVO {
|
|||||||
@ExcelProperty("批次工段id")
|
@ExcelProperty("批次工段id")
|
||||||
private Long batchGongduanId;
|
private Long batchGongduanId;
|
||||||
|
|
||||||
|
// 工段名
|
||||||
|
|
||||||
@Schema(description = "物料实例ID", example = "17457")
|
@Schema(description = "物料实例ID", example = "17457")
|
||||||
@ExcelProperty("物料实例ID")
|
@ExcelProperty("物料实例ID")
|
||||||
private Long materialInfomationId;
|
private Long materialInfomationId;
|
||||||
|
|
||||||
|
@Schema(description = "物料编码")
|
||||||
|
@ExcelProperty("物料编码")
|
||||||
|
private String infomationCode;
|
||||||
|
|
||||||
|
@Schema(description = "物料名称")
|
||||||
|
@ExcelProperty("物料名称")
|
||||||
|
private String infomationName;
|
||||||
|
|
||||||
|
@Schema(description = "业务类型,验收入库、盘盈入库等")
|
||||||
|
@ExcelProperty("业务类型,验收入库、盘盈入库等")
|
||||||
|
private String businessType;
|
||||||
|
|
||||||
|
@Schema(description = "存放位置名称")
|
||||||
|
@ExcelProperty("存放位置名称")
|
||||||
|
private String locationName;
|
||||||
|
|
||||||
|
@Schema(description = "存放位置编码")
|
||||||
|
@ExcelProperty("存放位置编码")
|
||||||
|
private String locationCode;
|
||||||
|
|
||||||
@Schema(description = "入库人", example = "赵六")
|
@Schema(description = "入库人", example = "赵六")
|
||||||
@ExcelProperty("入库人")
|
@ExcelProperty("入库人")
|
||||||
private String inboundUserName;
|
private String inboundUserName;
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import com.alibaba.excel.annotation.ExcelProperty;
|
|||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
@Schema(description = "管理后台 - 入库 Response VO")
|
@Schema(description = "管理后台 - 入库 Response VO")
|
||||||
@@ -48,6 +49,26 @@ public class MaterialInventoryInboundRespVO {
|
|||||||
@ExcelProperty("申请时间")
|
@ExcelProperty("申请时间")
|
||||||
private LocalDateTime applyTime;
|
private LocalDateTime applyTime;
|
||||||
|
|
||||||
|
@Schema(description = "监督人,危化品才有")
|
||||||
|
@ExcelProperty("监督人,危化品才有")
|
||||||
|
private String superviseUser;
|
||||||
|
|
||||||
|
@Schema(description = "监督人id,危化品才有")
|
||||||
|
@ExcelProperty("监督人id,危化品才有")
|
||||||
|
private Long superviseUserId;
|
||||||
|
|
||||||
|
@Schema(description = "批次工段id")
|
||||||
|
@ExcelProperty("批次工段id")
|
||||||
|
private Long gongduanId;
|
||||||
|
|
||||||
|
@Schema(description = "入库数量")
|
||||||
|
@ExcelProperty("入库数量")
|
||||||
|
private BigDecimal quantity;
|
||||||
|
|
||||||
|
@Schema(description = "库位id")
|
||||||
|
@ExcelProperty("库位id")
|
||||||
|
private Long locationId;
|
||||||
|
|
||||||
@Schema(description = "流程实例id", example = "16660")
|
@Schema(description = "流程实例id", example = "16660")
|
||||||
@ExcelProperty("流程实例id")
|
@ExcelProperty("流程实例id")
|
||||||
private String flowInstanceId;
|
private String flowInstanceId;
|
||||||
|
|||||||
@@ -1,8 +1,10 @@
|
|||||||
package com.zt.plat.module.qms.resource.material.controller.vo;
|
package com.zt.plat.module.qms.resource.material.controller.vo;
|
||||||
|
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import jakarta.validation.constraints.Min;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
@Schema(description = "管理后台 - 入库新增/修改 Request VO")
|
@Schema(description = "管理后台 - 入库新增/修改 Request VO")
|
||||||
@@ -36,6 +38,22 @@ public class MaterialInventoryInboundSaveReqVO {
|
|||||||
@Schema(description = "申请时间")
|
@Schema(description = "申请时间")
|
||||||
private LocalDateTime applyTime;
|
private LocalDateTime applyTime;
|
||||||
|
|
||||||
|
@Schema(description = "监督人,危化品才有")
|
||||||
|
private String superviseUser;
|
||||||
|
|
||||||
|
@Schema(description = "监督人id,危化品才有")
|
||||||
|
private Long superviseUserId;
|
||||||
|
|
||||||
|
@Schema(description = "批次工段id")
|
||||||
|
private Long gongduanId;
|
||||||
|
|
||||||
|
@Schema(description = "入库数量")
|
||||||
|
@Min(value = 0, message = "入库数量不能小于0")
|
||||||
|
private BigDecimal quantity;
|
||||||
|
|
||||||
|
@Schema(description = "库位id")
|
||||||
|
private Long locationId;
|
||||||
|
|
||||||
@Schema(description = "流程实例id", example = "16660")
|
@Schema(description = "流程实例id", example = "16660")
|
||||||
private String flowInstanceId;
|
private String flowInstanceId;
|
||||||
|
|
||||||
|
|||||||
@@ -1,41 +0,0 @@
|
|||||||
package com.zt.plat.module.qms.resource.material.controller.vo;
|
|
||||||
|
|
||||||
import lombok.*;
|
|
||||||
import java.util.*;
|
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
|
||||||
import com.zt.plat.framework.common.pojo.PageParam;
|
|
||||||
import org.springframework.format.annotation.DateTimeFormat;
|
|
||||||
import java.time.LocalDateTime;
|
|
||||||
|
|
||||||
import static com.zt.plat.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
|
|
||||||
|
|
||||||
@Schema(description = "管理后台 - 存放位置分页 Request VO")
|
|
||||||
@Data
|
|
||||||
public class MaterialLocationPageReqVO extends PageParam {
|
|
||||||
|
|
||||||
@Schema(description = "上级id", example = "9092")
|
|
||||||
private Long parentId;
|
|
||||||
|
|
||||||
@Schema(description = "名称", example = "赵六")
|
|
||||||
private String name;
|
|
||||||
|
|
||||||
@Schema(description = "编码")
|
|
||||||
private String code;
|
|
||||||
|
|
||||||
@Schema(description = "容量")
|
|
||||||
private String capacity;
|
|
||||||
|
|
||||||
@Schema(description = "位置")
|
|
||||||
private String location;
|
|
||||||
|
|
||||||
@Schema(description = "所属部门")
|
|
||||||
private String systemDepartmentCode;
|
|
||||||
|
|
||||||
@Schema(description = "备注")
|
|
||||||
private String remark;
|
|
||||||
|
|
||||||
@Schema(description = "创建时间")
|
|
||||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
|
||||||
private LocalDateTime[] createTime;
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,51 +0,0 @@
|
|||||||
package com.zt.plat.module.qms.resource.material.controller.vo;
|
|
||||||
|
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
|
||||||
import lombok.*;
|
|
||||||
import java.util.*;
|
|
||||||
import org.springframework.format.annotation.DateTimeFormat;
|
|
||||||
import java.time.LocalDateTime;
|
|
||||||
import com.alibaba.excel.annotation.*;
|
|
||||||
|
|
||||||
@Schema(description = "管理后台 - 存放位置 Response VO")
|
|
||||||
@Data
|
|
||||||
@ExcelIgnoreUnannotated
|
|
||||||
public class MaterialLocationRespVO {
|
|
||||||
|
|
||||||
@Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "32724")
|
|
||||||
@ExcelProperty("主键")
|
|
||||||
private Long id;
|
|
||||||
|
|
||||||
@Schema(description = "上级id", example = "9092")
|
|
||||||
@ExcelProperty("上级id")
|
|
||||||
private Long parentId;
|
|
||||||
|
|
||||||
@Schema(description = "名称", example = "赵六")
|
|
||||||
@ExcelProperty("名称")
|
|
||||||
private String name;
|
|
||||||
|
|
||||||
@Schema(description = "编码")
|
|
||||||
@ExcelProperty("编码")
|
|
||||||
private String code;
|
|
||||||
|
|
||||||
@Schema(description = "容量")
|
|
||||||
@ExcelProperty("容量")
|
|
||||||
private String capacity;
|
|
||||||
|
|
||||||
@Schema(description = "位置")
|
|
||||||
@ExcelProperty("位置")
|
|
||||||
private String location;
|
|
||||||
|
|
||||||
@Schema(description = "所属部门")
|
|
||||||
@ExcelProperty("所属部门")
|
|
||||||
private String systemDepartmentCode;
|
|
||||||
|
|
||||||
@Schema(description = "备注")
|
|
||||||
@ExcelProperty("备注")
|
|
||||||
private String remark;
|
|
||||||
|
|
||||||
@Schema(description = "创建时间")
|
|
||||||
@ExcelProperty("创建时间")
|
|
||||||
private LocalDateTime createTime;
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,36 +0,0 @@
|
|||||||
package com.zt.plat.module.qms.resource.material.controller.vo;
|
|
||||||
|
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
|
||||||
import lombok.*;
|
|
||||||
import java.util.*;
|
|
||||||
import jakarta.validation.constraints.*;
|
|
||||||
|
|
||||||
@Schema(description = "管理后台 - 存放位置新增/修改 Request VO")
|
|
||||||
@Data
|
|
||||||
public class MaterialLocationSaveReqVO {
|
|
||||||
|
|
||||||
@Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "32724")
|
|
||||||
private Long id;
|
|
||||||
|
|
||||||
@Schema(description = "上级id", example = "9092")
|
|
||||||
private Long parentId;
|
|
||||||
|
|
||||||
@Schema(description = "名称", example = "赵六")
|
|
||||||
private String name;
|
|
||||||
|
|
||||||
@Schema(description = "编码")
|
|
||||||
private String code;
|
|
||||||
|
|
||||||
@Schema(description = "容量")
|
|
||||||
private String capacity;
|
|
||||||
|
|
||||||
@Schema(description = "位置")
|
|
||||||
private String location;
|
|
||||||
|
|
||||||
@Schema(description = "所属部门")
|
|
||||||
private String systemDepartmentCode;
|
|
||||||
|
|
||||||
@Schema(description = "备注")
|
|
||||||
private String remark;
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -3,6 +3,7 @@ package com.zt.plat.module.qms.resource.material.controller.vo;
|
|||||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||||
import com.alibaba.excel.annotation.ExcelProperty;
|
import com.alibaba.excel.annotation.ExcelProperty;
|
||||||
import com.baomidou.mybatisplus.annotation.TableField;
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
|
import com.zt.plat.module.qms.core.aspect.annotation.Dict;
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
@@ -97,6 +98,7 @@ public class MaterialProductRespVO {
|
|||||||
|
|
||||||
@Schema(description = "开封后保质期是否变化,1-是,0-否")
|
@Schema(description = "开封后保质期是否变化,1-是,0-否")
|
||||||
@ExcelProperty("开封后保质期是否变化,1-是,0-否")
|
@ExcelProperty("开封后保质期是否变化,1-是,0-否")
|
||||||
|
@Dict(dicCode = "yes_or_no")
|
||||||
private Integer openDueFlag;
|
private Integer openDueFlag;
|
||||||
|
|
||||||
@Schema(description = "开封后保质期(天)")
|
@Schema(description = "开封后保质期(天)")
|
||||||
@@ -133,6 +135,7 @@ public class MaterialProductRespVO {
|
|||||||
|
|
||||||
@Schema(description = "是否进行库存预警,1-是,0-否")
|
@Schema(description = "是否进行库存预警,1-是,0-否")
|
||||||
@ExcelProperty("是否进行库存预警,1-是,0-否")
|
@ExcelProperty("是否进行库存预警,1-是,0-否")
|
||||||
|
@Dict(dicCode = "yes_or_no")
|
||||||
private Integer InventoryAlarmFlag;
|
private Integer InventoryAlarmFlag;
|
||||||
|
|
||||||
@Schema(description = "库存预警区间,json格式配置")
|
@Schema(description = "库存预警区间,json格式配置")
|
||||||
|
|||||||
@@ -53,6 +53,11 @@ public class MaterialBatchDO extends BusinessBaseDO {
|
|||||||
@TableField("INB_QTY")
|
@TableField("INB_QTY")
|
||||||
private BigDecimal inboundQuantity;
|
private BigDecimal inboundQuantity;
|
||||||
/**
|
/**
|
||||||
|
* 已入库数量
|
||||||
|
*/
|
||||||
|
@TableField("INB_END_QTY")
|
||||||
|
private BigDecimal inboundEndQuantity;
|
||||||
|
/**
|
||||||
* 存放位置描述
|
* 存放位置描述
|
||||||
*/
|
*/
|
||||||
@TableField("LOC")
|
@TableField("LOC")
|
||||||
|
|||||||
@@ -46,17 +46,57 @@ public class MaterialInfomationDO extends BusinessBaseDO {
|
|||||||
* 存放位置
|
* 存放位置
|
||||||
*/
|
*/
|
||||||
@TableField("LOC_ID")
|
@TableField("LOC_ID")
|
||||||
private String locationId;
|
private Long locationId;
|
||||||
|
/**
|
||||||
|
* 工段id
|
||||||
|
*/
|
||||||
|
@TableField("GONG_ID")
|
||||||
|
private Long gongduanId;
|
||||||
/**
|
/**
|
||||||
* 编码
|
* 编码
|
||||||
*/
|
*/
|
||||||
@TableField("CD")
|
@TableField("CD")
|
||||||
private String code;
|
private String code;
|
||||||
/**
|
/**
|
||||||
|
* 名称
|
||||||
|
*/
|
||||||
|
@TableField("NAME")
|
||||||
|
private String name;
|
||||||
|
/**
|
||||||
|
* 型号
|
||||||
|
*/
|
||||||
|
@TableField("MDL_NO")
|
||||||
|
private String modelNo;
|
||||||
|
/**
|
||||||
|
* 规格
|
||||||
|
*/
|
||||||
|
@TableField("SPEC")
|
||||||
|
private String specification;
|
||||||
|
/**
|
||||||
* 技术参数
|
* 技术参数
|
||||||
*/
|
*/
|
||||||
@TableField("PRM")
|
@TableField("PRM")
|
||||||
private String parameter;
|
private String parameter;
|
||||||
|
/**
|
||||||
|
* 制造商
|
||||||
|
*/
|
||||||
|
@TableField("MFR")
|
||||||
|
private String manufacturer;
|
||||||
|
/**
|
||||||
|
* 单位
|
||||||
|
*/
|
||||||
|
@TableField("UNT")
|
||||||
|
private String unit;
|
||||||
|
/**
|
||||||
|
* 保质期(天)
|
||||||
|
*/
|
||||||
|
@TableField("DUE")
|
||||||
|
private Integer due;
|
||||||
|
/**
|
||||||
|
* 开封后保质期(天)
|
||||||
|
*/
|
||||||
|
@TableField("OPN_DUE_AFT")
|
||||||
|
private Integer openDueAfter;
|
||||||
/**
|
/**
|
||||||
* 上架状态,0-未上架,1-已上架
|
* 上架状态,0-未上架,1-已上架
|
||||||
*/
|
*/
|
||||||
@@ -107,6 +147,11 @@ public class MaterialInfomationDO extends BusinessBaseDO {
|
|||||||
*/
|
*/
|
||||||
@TableField("OPN_DT")
|
@TableField("OPN_DT")
|
||||||
private LocalDateTime openDate;
|
private LocalDateTime openDate;
|
||||||
|
/**
|
||||||
|
* 生产日期
|
||||||
|
*/
|
||||||
|
@TableField("MFR_DT")
|
||||||
|
private LocalDate manufacturerDate;
|
||||||
/**
|
/**
|
||||||
* 到期日期
|
* 到期日期
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.*;
|
|||||||
import com.zt.plat.framework.mybatis.core.dataobject.BusinessBaseDO;
|
import com.zt.plat.framework.mybatis.core.dataobject.BusinessBaseDO;
|
||||||
import lombok.*;
|
import lombok.*;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
/**
|
/**
|
||||||
* 入库 DO
|
* 入库 DO
|
||||||
@@ -70,6 +71,31 @@ public class MaterialInventoryInboundDO extends BusinessBaseDO {
|
|||||||
*/
|
*/
|
||||||
@TableField("APL_TM")
|
@TableField("APL_TM")
|
||||||
private LocalDateTime applyTime;
|
private LocalDateTime applyTime;
|
||||||
|
/**
|
||||||
|
* 监督人,危化品才有
|
||||||
|
*/
|
||||||
|
@TableField("SUPR_USER")
|
||||||
|
private String superviseUser;
|
||||||
|
/**
|
||||||
|
* 监督人id,危化品才有
|
||||||
|
*/
|
||||||
|
@TableField("SUPR_USER_ID")
|
||||||
|
private Long superviseUserId;
|
||||||
|
/**
|
||||||
|
* 批次工段id
|
||||||
|
*/
|
||||||
|
@TableField("GONG_ID")
|
||||||
|
private Long gongduanId;
|
||||||
|
/**
|
||||||
|
* 入库数量
|
||||||
|
*/
|
||||||
|
@TableField("QTY")
|
||||||
|
private BigDecimal quantity;
|
||||||
|
/**
|
||||||
|
* 库位id
|
||||||
|
*/
|
||||||
|
@TableField("LOC_ID")
|
||||||
|
private Long locationId;
|
||||||
/**
|
/**
|
||||||
* 流程实例id
|
* 流程实例id
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -1,67 +0,0 @@
|
|||||||
package com.zt.plat.module.qms.resource.material.dal.dataobject;
|
|
||||||
|
|
||||||
import lombok.*;
|
|
||||||
import com.baomidou.mybatisplus.annotation.*;
|
|
||||||
import com.zt.plat.framework.mybatis.core.dataobject.BusinessBaseDO;
|
|
||||||
/**
|
|
||||||
* 存放位置 DO
|
|
||||||
*
|
|
||||||
* @author 后台管理
|
|
||||||
*/
|
|
||||||
@TableName("t_mtrl_loc")
|
|
||||||
@KeySequence("t_mtrl_loc_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
|
|
||||||
@Data
|
|
||||||
@EqualsAndHashCode(callSuper = true)
|
|
||||||
@ToString(callSuper = true)
|
|
||||||
@Builder
|
|
||||||
@NoArgsConstructor
|
|
||||||
@AllArgsConstructor
|
|
||||||
/**
|
|
||||||
* 支持业务基类继承:isBusiness=true 时继承 BusinessBaseDO,否则继承 BaseDO
|
|
||||||
*/
|
|
||||||
public class MaterialLocationDO extends BusinessBaseDO {
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 主键
|
|
||||||
*/
|
|
||||||
@TableId(type = IdType.ASSIGN_ID)
|
|
||||||
private Long id;
|
|
||||||
/**
|
|
||||||
* 上级id
|
|
||||||
*/
|
|
||||||
@TableField("PRN_ID")
|
|
||||||
private Long parentId;
|
|
||||||
/**
|
|
||||||
* 名称
|
|
||||||
*/
|
|
||||||
@TableField("NAME")
|
|
||||||
private String name;
|
|
||||||
/**
|
|
||||||
* 编码
|
|
||||||
*/
|
|
||||||
@TableField("CD")
|
|
||||||
private String code;
|
|
||||||
/**
|
|
||||||
* 容量
|
|
||||||
*/
|
|
||||||
@TableField("CPY")
|
|
||||||
private String capacity;
|
|
||||||
/**
|
|
||||||
* 位置
|
|
||||||
*/
|
|
||||||
@TableField("LOC")
|
|
||||||
private String location;
|
|
||||||
/**
|
|
||||||
* 所属部门
|
|
||||||
*/
|
|
||||||
@TableField("SYS_DEPT_CD")
|
|
||||||
private String systemDepartmentCode;
|
|
||||||
/**
|
|
||||||
* 备注
|
|
||||||
*/
|
|
||||||
@TableField("RMK")
|
|
||||||
private String remark;
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -8,10 +8,12 @@ import com.zt.plat.framework.mybatis.core.query.LambdaQueryWrapperX;
|
|||||||
import com.zt.plat.framework.mybatis.core.query.MPJLambdaWrapperX;
|
import com.zt.plat.framework.mybatis.core.query.MPJLambdaWrapperX;
|
||||||
import com.zt.plat.framework.security.core.LoginUser;
|
import com.zt.plat.framework.security.core.LoginUser;
|
||||||
import com.zt.plat.framework.security.core.util.SecurityFrameworkUtils;
|
import com.zt.plat.framework.security.core.util.SecurityFrameworkUtils;
|
||||||
|
import com.zt.plat.module.qms.enums.QmsCommonConstant;
|
||||||
import com.zt.plat.module.qms.resource.material.controller.vo.MaterialBatchPageReqVO;
|
import com.zt.plat.module.qms.resource.material.controller.vo.MaterialBatchPageReqVO;
|
||||||
import com.zt.plat.module.qms.resource.material.controller.vo.MaterialBatchRespVO;
|
import com.zt.plat.module.qms.resource.material.controller.vo.MaterialBatchRespVO;
|
||||||
import com.zt.plat.module.qms.resource.material.dal.dataobject.MaterialBatchDO;
|
import com.zt.plat.module.qms.resource.material.dal.dataobject.MaterialBatchDO;
|
||||||
import com.zt.plat.module.qms.resource.material.dal.dataobject.MaterialProductDO;
|
import com.zt.plat.module.qms.resource.material.dal.dataobject.MaterialProductDO;
|
||||||
|
import com.zt.plat.module.qms.resource.material.enums.MaterialAcceptStatus;
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -74,6 +76,44 @@ public interface MaterialBatchMapper extends BaseMapperX<MaterialBatchDO> {
|
|||||||
|
|
||||||
default PageResult<MaterialBatchRespVO> selectGongPage(MaterialBatchPageReqVO reqVO, List<Long> pdtIds) {
|
default PageResult<MaterialBatchRespVO> selectGongPage(MaterialBatchPageReqVO reqVO, List<Long> pdtIds) {
|
||||||
|
|
||||||
|
LoginUser loginUser = SecurityFrameworkUtils.getLoginUser();
|
||||||
|
Long visitDeptId = null;
|
||||||
|
if (loginUser != null) {
|
||||||
|
visitDeptId = loginUser.getVisitDeptId();
|
||||||
|
}
|
||||||
|
MPJLambdaWrapper<MaterialBatchDO> wrapper = new MPJLambdaWrapperX<MaterialBatchDO>()
|
||||||
|
.selectAll(MaterialBatchDO.class)
|
||||||
|
.selectAs(MaterialProductDO::getName, MaterialBatchRespVO::getProductName)
|
||||||
|
.selectAs(MaterialProductDO::getCode, MaterialBatchRespVO::getProductCode)
|
||||||
|
.selectAs(MaterialProductDO::getModelNo, MaterialBatchRespVO::getProductModelNo)
|
||||||
|
.selectAs("batch.MFR_DT", MaterialBatchDO::getManufacturerDate)
|
||||||
|
.selectAs("batch.DUE_DT", MaterialBatchDO::getDueDate)
|
||||||
|
.leftJoin(MaterialProductDO.class, MaterialProductDO::getId, MaterialBatchDO::getProductId)
|
||||||
|
.leftJoin(MaterialBatchDO.class, "batch", MaterialBatchDO::getId, MaterialBatchDO::getParentId)
|
||||||
|
// 只查询工段
|
||||||
|
.ne(MaterialBatchDO::getParentId, 0)
|
||||||
|
.eq(MaterialBatchDO::getSubmitStatus, 1)
|
||||||
|
.ne(MaterialBatchDO::getAcceptanceStatus, MaterialAcceptStatus.accepted.name())
|
||||||
|
// 未处理的不允许再次选择
|
||||||
|
.notExists("SELECT 1 FROM t_mtrl_lfc_dtl ld WHERE ld.BAT_GONG_ID = t.ID AND ld.TMT_STS = 0 AND ld.DELETED = 0")
|
||||||
|
// .eq(onlyGong != null && visitDeptId != null && onlyGong, MaterialBatchDO::getAssignDepartmentId, visitDeptId)
|
||||||
|
.in(CollUtil.isNotEmpty(pdtIds), MaterialBatchDO::getProductId, pdtIds)
|
||||||
|
.eq(CollUtil.isEmpty(pdtIds) && reqVO.getProductId() != null, MaterialBatchDO::getProductId, reqVO.getProductId())
|
||||||
|
.likeIfExists(MaterialBatchDO::getBatchNo, reqVO.getBatchNo())
|
||||||
|
.likeIfExists(MaterialBatchDO::getLocation, reqVO.getLocation())
|
||||||
|
.likeIfExists(MaterialBatchDO::getSupplierId, reqVO.getSupplierId())
|
||||||
|
.eqIfExists(MaterialBatchDO::getAssignDepartmentId, reqVO.getAssignDepartmentId())
|
||||||
|
.likeIfExists(MaterialBatchDO::getAssignDepartmentName, reqVO.getAssignDepartmentName())
|
||||||
|
.eqIfExists(MaterialBatchDO::getAcceptanceStatus, reqVO.getAcceptanceStatus())
|
||||||
|
.eqIfExists(MaterialBatchDO::getAssayFlag, reqVO.getAssayFlag())
|
||||||
|
.eqIfExists(MaterialBatchDO::getAssayStatus, reqVO.getAssayStatus())
|
||||||
|
.eqIfExists(MaterialBatchDO::getSystemDepartmentCode, reqVO.getSystemDepartmentCode())
|
||||||
|
.eqIfExists(MaterialBatchDO::getRemark, reqVO.getRemark())
|
||||||
|
.orderByDesc(MaterialBatchDO::getParentId);
|
||||||
|
return selectJoinPage(reqVO, MaterialBatchRespVO.class, wrapper);
|
||||||
|
}
|
||||||
|
|
||||||
|
default PageResult<MaterialBatchRespVO> selectAcceptedGongPage(MaterialBatchPageReqVO reqVO, List<Long> pdtIds) {
|
||||||
|
|
||||||
LoginUser loginUser = SecurityFrameworkUtils.getLoginUser();
|
LoginUser loginUser = SecurityFrameworkUtils.getLoginUser();
|
||||||
Long visitDeptId = null;
|
Long visitDeptId = null;
|
||||||
@@ -85,19 +125,22 @@ public interface MaterialBatchMapper extends BaseMapperX<MaterialBatchDO> {
|
|||||||
.selectAs(MaterialProductDO::getName, MaterialBatchRespVO::getProductName)
|
.selectAs(MaterialProductDO::getName, MaterialBatchRespVO::getProductName)
|
||||||
.selectAs(MaterialProductDO::getCode, MaterialBatchRespVO::getProductCode)
|
.selectAs(MaterialProductDO::getCode, MaterialBatchRespVO::getProductCode)
|
||||||
.selectAs(MaterialProductDO::getModelNo, MaterialBatchRespVO::getProductModelNo)
|
.selectAs(MaterialProductDO::getModelNo, MaterialBatchRespVO::getProductModelNo)
|
||||||
|
.selectAs("batch.MFR_DT", MaterialBatchDO::getManufacturerDate)
|
||||||
|
.selectAs("batch.DUE_DT", MaterialBatchDO::getDueDate)
|
||||||
.leftJoin(MaterialProductDO.class, MaterialProductDO::getId, MaterialBatchDO::getProductId)
|
.leftJoin(MaterialProductDO.class, MaterialProductDO::getId, MaterialBatchDO::getProductId)
|
||||||
|
.leftJoin(MaterialBatchDO.class, "batch", MaterialBatchDO::getId, MaterialBatchDO::getParentId)
|
||||||
// 只查询工段
|
// 只查询工段
|
||||||
.ne(MaterialBatchDO::getParentId, 0)
|
.ne(MaterialBatchDO::getParentId, 0)
|
||||||
.eq(MaterialBatchDO::getSubmitStatus, 1)
|
.eq(MaterialBatchDO::getSubmitStatus, 1)
|
||||||
.notExists("SELECT 1 FROM t_mtrl_lfc_dtl ld WHERE ld.BAT_GONG_ID = t.id AND ld.DELETED = 0")
|
.eq(MaterialBatchDO::getAcceptanceStatus, reqVO.getAcceptanceStatus())
|
||||||
// .eq(onlyGong != null && visitDeptId != null && onlyGong, MaterialBatchDO::getAssignDepartmentId, visitDeptId)
|
// .eq(onlyGong != null && visitDeptId != null && onlyGong, MaterialBatchDO::getAssignDepartmentId, visitDeptId)
|
||||||
.in(CollUtil.isNotEmpty(pdtIds), MaterialBatchDO::getProductId, pdtIds)
|
.in(CollUtil.isNotEmpty(pdtIds), MaterialBatchDO::getProductId, pdtIds)
|
||||||
.eq(CollUtil.isEmpty(pdtIds) && reqVO.getProductId() != null, MaterialBatchDO::getProductId, reqVO.getProductId())
|
.eq(CollUtil.isEmpty(pdtIds) && reqVO.getProductId() != null, MaterialBatchDO::getProductId, reqVO.getProductId())
|
||||||
.likeIfExists(MaterialBatchDO::getBatchNo, reqVO.getBatchNo())
|
.likeIfExists(MaterialBatchDO::getBatchNo, reqVO.getBatchNo())
|
||||||
.likeIfExists(MaterialBatchDO::getLocation, reqVO.getLocation())
|
.likeIfExists(MaterialBatchDO::getLocation, reqVO.getLocation())
|
||||||
.likeIfExists(MaterialBatchDO::getSupplierId, reqVO.getSupplierId())
|
.likeIfExists(MaterialBatchDO::getSupplierId, reqVO.getSupplierId())
|
||||||
// .betweenIfPresent(MaterialBatchDO::getManufacturerDate, reqVO.getManufacturerDate())
|
// .betweenIfPresent(MaterialBatchDO::getManufacturerDate, reqVO.getManufacturerDate())
|
||||||
// .betweenIfPresent(MaterialBatchDO::getDueDate, reqVO.getDueDate())
|
// .betweenIfPresent(MaterialBatchDO::getDueDate, reqVO.getDueDate())
|
||||||
.eqIfExists(MaterialBatchDO::getAssignDepartmentId, reqVO.getAssignDepartmentId())
|
.eqIfExists(MaterialBatchDO::getAssignDepartmentId, reqVO.getAssignDepartmentId())
|
||||||
.likeIfExists(MaterialBatchDO::getAssignDepartmentName, reqVO.getAssignDepartmentName())
|
.likeIfExists(MaterialBatchDO::getAssignDepartmentName, reqVO.getAssignDepartmentName())
|
||||||
.eqIfExists(MaterialBatchDO::getAcceptanceStatus, reqVO.getAcceptanceStatus())
|
.eqIfExists(MaterialBatchDO::getAcceptanceStatus, reqVO.getAcceptanceStatus())
|
||||||
@@ -105,8 +148,12 @@ public interface MaterialBatchMapper extends BaseMapperX<MaterialBatchDO> {
|
|||||||
.eqIfExists(MaterialBatchDO::getAssayStatus, reqVO.getAssayStatus())
|
.eqIfExists(MaterialBatchDO::getAssayStatus, reqVO.getAssayStatus())
|
||||||
.eqIfExists(MaterialBatchDO::getSystemDepartmentCode, reqVO.getSystemDepartmentCode())
|
.eqIfExists(MaterialBatchDO::getSystemDepartmentCode, reqVO.getSystemDepartmentCode())
|
||||||
.eqIfExists(MaterialBatchDO::getRemark, reqVO.getRemark())
|
.eqIfExists(MaterialBatchDO::getRemark, reqVO.getRemark())
|
||||||
// .betweenIfPresent(MaterialBatchDO::getCreateTime, reqVO.getCreateTime())
|
// 已处理
|
||||||
.orderByDesc(MaterialBatchDO::getId);
|
.le(reqVO.getTreatment(), MaterialBatchDO::getInboundQuantity, MaterialBatchDO::getInboundEndQuantity)
|
||||||
|
// 未处理
|
||||||
|
.gt(!reqVO.getTreatment(), MaterialBatchDO::getInboundQuantity, MaterialBatchDO::getInboundEndQuantity)
|
||||||
|
// .between(reqVO.getCreateTime() != null && reqVO.getCreateTime().length == 2, MaterialBatchDO::getCreateTime, reqVO.getCreateTime()[0], reqVO.getCreateTime()[1])
|
||||||
|
.orderByDesc(MaterialBatchDO::getParentId);
|
||||||
return selectJoinPage(reqVO, MaterialBatchRespVO.class, wrapper);
|
return selectJoinPage(reqVO, MaterialBatchRespVO.class, wrapper);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,10 +1,14 @@
|
|||||||
package com.zt.plat.module.qms.resource.material.dal.mapper;
|
package com.zt.plat.module.qms.resource.material.dal.mapper;
|
||||||
|
|
||||||
|
import com.github.yulichang.wrapper.MPJLambdaWrapper;
|
||||||
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.mapper.BaseMapperX;
|
import com.zt.plat.framework.mybatis.core.mapper.BaseMapperX;
|
||||||
|
import com.zt.plat.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||||
|
import com.zt.plat.framework.mybatis.core.query.MPJLambdaWrapperX;
|
||||||
import com.zt.plat.module.qms.resource.material.controller.vo.MaterialInfomationPageReqVO;
|
import com.zt.plat.module.qms.resource.material.controller.vo.MaterialInfomationPageReqVO;
|
||||||
|
import com.zt.plat.module.qms.resource.material.controller.vo.MaterialInfomationRespVO;
|
||||||
import com.zt.plat.module.qms.resource.material.dal.dataobject.MaterialInfomationDO;
|
import com.zt.plat.module.qms.resource.material.dal.dataobject.MaterialInfomationDO;
|
||||||
|
import com.zt.plat.module.qms.resource.material.dal.dataobject.MaterialProductDO;
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -42,4 +46,42 @@ public interface MaterialInfomationMapper extends BaseMapperX<MaterialInfomation
|
|||||||
.orderByDesc(MaterialInfomationDO::getId));
|
.orderByDesc(MaterialInfomationDO::getId));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
default PageResult<MaterialInfomationRespVO> selectPageWithPdtInfo(MaterialInfomationPageReqVO reqVO) {
|
||||||
|
MPJLambdaWrapper<MaterialInfomationDO> wrapper = new MPJLambdaWrapperX<MaterialInfomationDO>()
|
||||||
|
.select(MaterialInfomationDO::getId,
|
||||||
|
MaterialInfomationDO::getProductId, MaterialInfomationDO::getBatchId, MaterialInfomationDO::getGongduanId,
|
||||||
|
MaterialInfomationDO::getCode, MaterialInfomationDO::getPublishStatus,
|
||||||
|
MaterialInfomationDO::getUsageStatus, MaterialInfomationDO::getManagerDepartmentId,
|
||||||
|
MaterialInfomationDO::getManagerDepartmentName, MaterialInfomationDO::getManagerUserId, MaterialInfomationDO::getManagerUserName,
|
||||||
|
MaterialInfomationDO::getOpenStatus, MaterialInfomationDO::getOpenUserId, MaterialInfomationDO::getOpenUserName,
|
||||||
|
MaterialInfomationDO::getOpenDate, MaterialInfomationDO::getExpirationDate, MaterialInfomationDO::getExpirationFlag,
|
||||||
|
MaterialInfomationDO::getRemainingVolume, MaterialInfomationDO::getUseEndFlag,
|
||||||
|
MaterialInfomationDO::getSystemDepartmentCode, MaterialInfomationDO::getRemark,
|
||||||
|
MaterialInfomationDO::getCreateTime, MaterialInfomationDO::getUpdateTime)
|
||||||
|
.select(MaterialProductDO::getName, MaterialProductDO::getSpecification,
|
||||||
|
MaterialProductDO::getModelNo, MaterialProductDO::getParameter, MaterialProductDO::getManufacturer,
|
||||||
|
MaterialProductDO::getUnit, MaterialProductDO::getDue)
|
||||||
|
.leftJoin(MaterialProductDO.class, MaterialProductDO::getId, MaterialInfomationDO::getProductId)
|
||||||
|
.eqIfExists(MaterialInfomationDO::getProductId, reqVO.getProductId())
|
||||||
|
.eqIfExists(MaterialInfomationDO::getBatchId, reqVO.getBatchId())
|
||||||
|
.eqIfExists(MaterialInfomationDO::getLocationId, reqVO.getLocationId())
|
||||||
|
.eqIfExists(MaterialInfomationDO::getCode, reqVO.getCode())
|
||||||
|
.eqIfExists(MaterialProductDO::getParameter, reqVO.getParameter())
|
||||||
|
.eqIfExists(MaterialInfomationDO::getPublishStatus, reqVO.getPublishStatus())
|
||||||
|
.eqIfExists(MaterialInfomationDO::getUsageStatus, reqVO.getUsageStatus())
|
||||||
|
.eqIfExists(MaterialInfomationDO::getManagerDepartmentId, reqVO.getManagerDepartmentId())
|
||||||
|
.likeIfExists(MaterialInfomationDO::getManagerDepartmentName, reqVO.getManagerDepartmentName())
|
||||||
|
.eqIfExists(MaterialInfomationDO::getManagerUserId, reqVO.getManagerUserId())
|
||||||
|
.likeIfExists(MaterialInfomationDO::getManagerUserName, reqVO.getManagerUserName())
|
||||||
|
.eqIfExists(MaterialInfomationDO::getOpenStatus, reqVO.getOpenStatus())
|
||||||
|
.eqIfExists(MaterialInfomationDO::getOpenUserId, reqVO.getOpenUserId())
|
||||||
|
.likeIfExists(MaterialInfomationDO::getOpenUserName, reqVO.getOpenUserName())
|
||||||
|
.eqIfExists(MaterialInfomationDO::getExpirationFlag, reqVO.getExpirationFlag())
|
||||||
|
.eqIfExists(MaterialInfomationDO::getUseEndFlag, reqVO.getUseEndFlag())
|
||||||
|
.eqIfExists(MaterialInfomationDO::getSystemDepartmentCode, reqVO.getSystemDepartmentCode())
|
||||||
|
.likeIfExists(MaterialInfomationDO::getRemark, reqVO.getRemark())
|
||||||
|
.orderByDesc(MaterialInfomationDO::getId);
|
||||||
|
return selectJoinPage(reqVO, MaterialInfomationRespVO.class, wrapper);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -3,10 +3,18 @@ package com.zt.plat.module.qms.resource.material.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.mapper.BaseMapperX;
|
import com.zt.plat.framework.mybatis.core.mapper.BaseMapperX;
|
||||||
import com.zt.plat.framework.mybatis.core.query.LambdaQueryWrapperX;
|
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.config.dal.dataobject.ConfigWarehouseLocationDO;
|
||||||
import com.zt.plat.module.qms.resource.material.controller.vo.MaterialInventoryInboundDetailPageReqVO;
|
import com.zt.plat.module.qms.resource.material.controller.vo.MaterialInventoryInboundDetailPageReqVO;
|
||||||
|
import com.zt.plat.module.qms.resource.material.controller.vo.MaterialInventoryInboundDetailRespVO;
|
||||||
|
import com.zt.plat.module.qms.resource.material.dal.dataobject.MaterialInfomationDO;
|
||||||
|
import com.zt.plat.module.qms.resource.material.dal.dataobject.MaterialInventoryInboundDO;
|
||||||
import com.zt.plat.module.qms.resource.material.dal.dataobject.MaterialInventoryInboundDetailDO;
|
import com.zt.plat.module.qms.resource.material.dal.dataobject.MaterialInventoryInboundDetailDO;
|
||||||
|
import com.zt.plat.module.qms.resource.material.dal.dataobject.MaterialProductDO;
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 入库明细,验收入库、盘盈入库等 Mapper
|
* 入库明细,验收入库、盘盈入库等 Mapper
|
||||||
*
|
*
|
||||||
@@ -32,4 +40,47 @@ public interface MaterialInventoryInboundDetailMapper extends BaseMapperX<Materi
|
|||||||
.orderByDesc(MaterialInventoryInboundDetailDO::getId));
|
.orderByDesc(MaterialInventoryInboundDetailDO::getId));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
default PageResult<MaterialInventoryInboundDetailRespVO> selectPageWithMaterialInfo(MaterialInventoryInboundDetailPageReqVO reqVO){
|
||||||
|
MPJLambdaWrapperX<MaterialInventoryInboundDetailDO> wrapperX = new MPJLambdaWrapperX<MaterialInventoryInboundDetailDO>()
|
||||||
|
.selectAll(MaterialInventoryInboundDetailDO.class)
|
||||||
|
.selectAs(MaterialInfomationDO::getCode, MaterialInventoryInboundDetailRespVO::getInfomationCode)
|
||||||
|
.selectAs(MaterialProductDO::getName, MaterialInventoryInboundDetailRespVO::getInfomationName)
|
||||||
|
.selectAs(MaterialInventoryInboundDO::getBusinessType, MaterialInventoryInboundDetailRespVO::getBusinessType)
|
||||||
|
.selectAs(ConfigWarehouseLocationDO::getName, MaterialInventoryInboundDetailRespVO::getLocationName)
|
||||||
|
.selectAs(ConfigWarehouseLocationDO::getCode, MaterialInventoryInboundDetailRespVO::getLocationCode)
|
||||||
|
.leftJoin(MaterialInfomationDO.class, MaterialInfomationDO::getId, MaterialInventoryInboundDetailDO::getMaterialInfomationId)
|
||||||
|
.leftJoin(MaterialProductDO.class, MaterialProductDO::getId, MaterialInfomationDO::getProductId)
|
||||||
|
.leftJoin(MaterialInventoryInboundDO.class, MaterialInventoryInboundDO::getId, MaterialInventoryInboundDetailDO::getInboundId)
|
||||||
|
.leftJoin(ConfigWarehouseLocationDO.class, ConfigWarehouseLocationDO::getId, MaterialInfomationDO::getLocationId)
|
||||||
|
.eqIfPresent(MaterialInventoryInboundDetailDO::getInboundId, reqVO.getInboundId())
|
||||||
|
.eqIfPresent(MaterialInventoryInboundDetailDO::getBatchId, reqVO.getBatchId())
|
||||||
|
.eqIfPresent(MaterialInventoryInboundDetailDO::getBatchGongduanId, reqVO.getBatchGongduanId())
|
||||||
|
.eqIfPresent(MaterialInventoryInboundDetailDO::getMaterialInfomationId, reqVO.getMaterialInfomationId())
|
||||||
|
.likeIfPresent(MaterialInventoryInboundDetailDO::getInboundUserName, reqVO.getInboundUserName())
|
||||||
|
.eqIfPresent(MaterialInventoryInboundDetailDO::getInboundUserId, reqVO.getInboundUserId())
|
||||||
|
.likeIfPresent(MaterialInventoryInboundDetailDO::getInboundDepartmentName, reqVO.getInboundDepartmentName())
|
||||||
|
.eqIfPresent(MaterialInventoryInboundDetailDO::getInboundDepartmentId, reqVO.getInboundDepartmentId())
|
||||||
|
.betweenIfPresent(MaterialInventoryInboundDetailDO::getInboundTime, reqVO.getInboundTime())
|
||||||
|
.eqIfPresent(MaterialInventoryInboundDetailDO::getSystemDepartmentCode, reqVO.getSystemDepartmentCode())
|
||||||
|
.eqIfPresent(MaterialInventoryInboundDetailDO::getRemark, reqVO.getRemark())
|
||||||
|
.betweenIfPresent(MaterialInventoryInboundDetailDO::getCreateTime, reqVO.getCreateTime())
|
||||||
|
.orderByDesc(MaterialInventoryInboundDetailDO::getInboundId);
|
||||||
|
return selectJoinPage(reqVO, MaterialInventoryInboundDetailRespVO.class, wrapperX);
|
||||||
|
}
|
||||||
|
|
||||||
|
default List<MaterialInventoryInboundDetailRespVO> selectMaterialInfoListByInboundId(Long inboundId) {
|
||||||
|
MPJLambdaWrapperX<MaterialInventoryInboundDetailDO> wrapperX = new MPJLambdaWrapperX<MaterialInventoryInboundDetailDO>()
|
||||||
|
.selectAll(MaterialInventoryInboundDetailDO.class)
|
||||||
|
.selectAs(MaterialInfomationDO::getCode, MaterialInventoryInboundDetailRespVO::getInfomationCode)
|
||||||
|
.selectAs(MaterialProductDO::getName, MaterialInventoryInboundDetailRespVO::getInfomationName)
|
||||||
|
.selectAs(MaterialInventoryInboundDO::getBusinessType, MaterialInventoryInboundDetailRespVO::getBusinessType)
|
||||||
|
.selectAs(ConfigWarehouseLocationDO::getName, MaterialInventoryInboundDetailRespVO::getLocationName)
|
||||||
|
.selectAs(ConfigWarehouseLocationDO::getCode, MaterialInventoryInboundDetailRespVO::getLocationCode)
|
||||||
|
.leftJoin(MaterialInfomationDO.class, MaterialInfomationDO::getId, MaterialInventoryInboundDetailDO::getMaterialInfomationId)
|
||||||
|
.leftJoin(MaterialProductDO.class, MaterialProductDO::getId, MaterialInfomationDO::getProductId)
|
||||||
|
.leftJoin(MaterialInventoryInboundDO.class, MaterialInventoryInboundDO::getId, MaterialInventoryInboundDetailDO::getInboundId)
|
||||||
|
.leftJoin(ConfigWarehouseLocationDO.class, ConfigWarehouseLocationDO::getId, MaterialInfomationDO::getLocationId)
|
||||||
|
.eqIfPresent(MaterialInventoryInboundDetailDO::getInboundId, inboundId);
|
||||||
|
return selectJoinList(MaterialInventoryInboundDetailRespVO.class, wrapperX);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -1,31 +0,0 @@
|
|||||||
package com.zt.plat.module.qms.resource.material.dal.mapper;
|
|
||||||
|
|
||||||
import com.zt.plat.framework.common.pojo.PageResult;
|
|
||||||
import com.zt.plat.framework.mybatis.core.query.LambdaQueryWrapperX;
|
|
||||||
import com.zt.plat.framework.mybatis.core.mapper.BaseMapperX;
|
|
||||||
import com.zt.plat.module.qms.resource.material.controller.vo.MaterialLocationPageReqVO;
|
|
||||||
import com.zt.plat.module.qms.resource.material.dal.dataobject.MaterialLocationDO;
|
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 存放位置 Mapper
|
|
||||||
*
|
|
||||||
* @author 后台管理
|
|
||||||
*/
|
|
||||||
@Mapper
|
|
||||||
public interface MaterialLocationMapper extends BaseMapperX<MaterialLocationDO> {
|
|
||||||
|
|
||||||
default PageResult<MaterialLocationDO> selectPage(MaterialLocationPageReqVO reqVO) {
|
|
||||||
return selectPage(reqVO, new LambdaQueryWrapperX<MaterialLocationDO>()
|
|
||||||
.eqIfPresent(MaterialLocationDO::getParentId, reqVO.getParentId())
|
|
||||||
.likeIfPresent(MaterialLocationDO::getName, reqVO.getName())
|
|
||||||
.eqIfPresent(MaterialLocationDO::getCode, reqVO.getCode())
|
|
||||||
.eqIfPresent(MaterialLocationDO::getCapacity, reqVO.getCapacity())
|
|
||||||
.eqIfPresent(MaterialLocationDO::getLocation, reqVO.getLocation())
|
|
||||||
.eqIfPresent(MaterialLocationDO::getSystemDepartmentCode, reqVO.getSystemDepartmentCode())
|
|
||||||
.eqIfPresent(MaterialLocationDO::getRemark, reqVO.getRemark())
|
|
||||||
.betweenIfPresent(MaterialLocationDO::getCreateTime, reqVO.getCreateTime())
|
|
||||||
.orderByDesc(MaterialLocationDO::getId));
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
package com.zt.plat.module.qms.resource.material.enums;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 物料验收状态
|
||||||
|
*/
|
||||||
|
public enum MaterialAcceptStatus {
|
||||||
|
accepted,
|
||||||
|
partAccepted,
|
||||||
|
notAccepted
|
||||||
|
}
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
package com.zt.plat.module.qms.resource.material.enums;
|
||||||
|
|
||||||
|
import lombok.Getter;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
public enum MaterialFlowType {
|
||||||
|
|
||||||
|
acceptance("验收"),
|
||||||
|
|
||||||
|
return_exchange("退换货"),
|
||||||
|
|
||||||
|
config_apply("配置申请");
|
||||||
|
|
||||||
|
private final String name;
|
||||||
|
|
||||||
|
MaterialFlowType(String name) {
|
||||||
|
this.name = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static MaterialFlowType fromName(String name) {
|
||||||
|
for (MaterialFlowType type : MaterialFlowType.values()) {
|
||||||
|
if (type.getName().equals(name)) {
|
||||||
|
return type;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
throw new IllegalArgumentException("No enum constant with name: " + name);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -124,4 +124,19 @@ public interface MaterialBatchService {
|
|||||||
* @return 分页数据
|
* @return 分页数据
|
||||||
*/
|
*/
|
||||||
PageResult<MaterialBatchRespVO> getMaterialBatchGongPageWithPdtInfo(@Valid MaterialBatchPageReqVO pageReqVO);
|
PageResult<MaterialBatchRespVO> getMaterialBatchGongPageWithPdtInfo(@Valid MaterialBatchPageReqVO pageReqVO);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新批次工段入库数量
|
||||||
|
*
|
||||||
|
* @param gongDO 批次工段信息
|
||||||
|
*/
|
||||||
|
void updateMaterialBatchInbEndQty(MaterialBatchDO gongDO);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新批次工段验收状态
|
||||||
|
*
|
||||||
|
* @param lfcId 流程id
|
||||||
|
* @param status 验收状态
|
||||||
|
*/
|
||||||
|
void updateMaterialBatchAcceptStatusByLfcId(Long lfcId, String status);
|
||||||
}
|
}
|
||||||
@@ -6,12 +6,15 @@ import com.zt.plat.framework.common.exception.ServiceException;
|
|||||||
import com.zt.plat.framework.common.pojo.PageResult;
|
import com.zt.plat.framework.common.pojo.PageResult;
|
||||||
import com.zt.plat.framework.common.util.object.BeanUtils;
|
import com.zt.plat.framework.common.util.object.BeanUtils;
|
||||||
import com.zt.plat.module.qms.core.code.SequenceUtil;
|
import com.zt.plat.module.qms.core.code.SequenceUtil;
|
||||||
|
import com.zt.plat.module.qms.enums.QmsCommonConstant;
|
||||||
import com.zt.plat.module.qms.resource.material.controller.vo.MaterialBatchPageReqVO;
|
import com.zt.plat.module.qms.resource.material.controller.vo.MaterialBatchPageReqVO;
|
||||||
import com.zt.plat.module.qms.resource.material.controller.vo.MaterialBatchRespVO;
|
import com.zt.plat.module.qms.resource.material.controller.vo.MaterialBatchRespVO;
|
||||||
import com.zt.plat.module.qms.resource.material.controller.vo.MaterialBatchSaveReqVO;
|
import com.zt.plat.module.qms.resource.material.controller.vo.MaterialBatchSaveReqVO;
|
||||||
import com.zt.plat.module.qms.resource.material.dal.dataobject.MaterialBatchDO;
|
import com.zt.plat.module.qms.resource.material.dal.dataobject.MaterialBatchDO;
|
||||||
|
import com.zt.plat.module.qms.resource.material.dal.dataobject.MaterialLifecycleDetailDO;
|
||||||
import com.zt.plat.module.qms.resource.material.dal.dataobject.MaterialProductDO;
|
import com.zt.plat.module.qms.resource.material.dal.dataobject.MaterialProductDO;
|
||||||
import com.zt.plat.module.qms.resource.material.dal.mapper.MaterialBatchMapper;
|
import com.zt.plat.module.qms.resource.material.dal.mapper.MaterialBatchMapper;
|
||||||
|
import com.zt.plat.module.qms.resource.material.enums.MaterialAcceptStatus;
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
@@ -43,15 +46,18 @@ public class MaterialBatchServiceImpl implements MaterialBatchService {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private MaterialProductService materialProductService;
|
private MaterialProductService materialProductService;
|
||||||
|
|
||||||
private final String sequenceKey = "QMS_MATERIAL_BATCH_NO";
|
@Autowired
|
||||||
|
private MaterialLifecycleDetailService materialLifecycleDetailService;
|
||||||
|
|
||||||
|
private final String batchSequenceKey = "QMS_MATERIAL_BATCH_NO";
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public MaterialBatchRespVO createMaterialBatch(MaterialBatchSaveReqVO createReqVO) {
|
public MaterialBatchRespVO createMaterialBatch(MaterialBatchSaveReqVO createReqVO) {
|
||||||
// 插入
|
// 插入
|
||||||
MaterialBatchDO mtrlBat = BeanUtils.toBean(createReqVO, MaterialBatchDO.class);
|
MaterialBatchDO mtrlBat = BeanUtils.toBean(createReqVO, MaterialBatchDO.class);
|
||||||
|
mtrlBat.setAcceptanceStatus(MaterialAcceptStatus.notAccepted.name());
|
||||||
// 批次编号
|
// 批次编号
|
||||||
mtrlBat.setBatchNo(sequenceUtil.genCode(sequenceKey));
|
mtrlBat.setBatchNo(sequenceUtil.genCode(batchSequenceKey));
|
||||||
|
|
||||||
mtrlBat.setParentId(0L);
|
mtrlBat.setParentId(0L);
|
||||||
materialBatchMapper.insert(mtrlBat);
|
materialBatchMapper.insert(mtrlBat);
|
||||||
@@ -157,6 +163,13 @@ public class MaterialBatchServiceImpl implements MaterialBatchService {
|
|||||||
List<MaterialBatchRespVO> voList = pageResult.getList();
|
List<MaterialBatchRespVO> voList = pageResult.getList();
|
||||||
if (CollUtil.isNotEmpty(voList)) {
|
if (CollUtil.isNotEmpty(voList)) {
|
||||||
List<MaterialBatchRespVO> treeVos = this.listTransTree(voList, 0L);
|
List<MaterialBatchRespVO> treeVos = this.listTransTree(voList, 0L);
|
||||||
|
for (MaterialBatchRespVO batch : treeVos) {
|
||||||
|
List<MaterialBatchRespVO> children = batch.getChildren();
|
||||||
|
if (CollUtil.isEmpty(children)) continue;
|
||||||
|
children.forEach(child ->
|
||||||
|
batch.setInboundEndQuantity(batch.getInboundEndQuantity().add(child.getInboundEndQuantity()))
|
||||||
|
);
|
||||||
|
}
|
||||||
pageResult.setList(treeVos);
|
pageResult.setList(treeVos);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -265,21 +278,46 @@ public class MaterialBatchServiceImpl implements MaterialBatchService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public PageResult<MaterialBatchRespVO> getMaterialBatchGongPageWithPdtInfo(MaterialBatchPageReqVO pageReqVO) {
|
public PageResult<MaterialBatchRespVO> getMaterialBatchGongPageWithPdtInfo(MaterialBatchPageReqVO pageReqVO) {
|
||||||
// 需要排除已经被选择的工段
|
|
||||||
Long pdtId = pageReqVO.getProductId();
|
Long pdtId = pageReqVO.getProductId();
|
||||||
PageResult<MaterialBatchRespVO> pageResult;
|
if (MaterialAcceptStatus.accepted.name().equals(pageReqVO.getAcceptanceStatus())) {
|
||||||
if (pdtId == null) {
|
// 用于入库
|
||||||
pageResult = materialBatchMapper.selectGongPage(pageReqVO, List.of());
|
if (pdtId == null) {
|
||||||
} else {
|
return materialBatchMapper.selectAcceptedGongPage(pageReqVO, List.of());
|
||||||
|
}
|
||||||
List<MaterialProductDO> mtrlDos = materialProductService.getMaterialProductsByLikeIdPath(pdtId);
|
List<MaterialProductDO> mtrlDos = materialProductService.getMaterialProductsByLikeIdPath(pdtId);
|
||||||
if (CollUtil.isEmpty(mtrlDos)) {
|
if (CollUtil.isEmpty(mtrlDos)) {
|
||||||
pageResult = materialBatchMapper.selectGongPage(pageReqVO, List.of());
|
return materialBatchMapper.selectAcceptedGongPage(pageReqVO, List.of());
|
||||||
} else {
|
|
||||||
List<Long> pdtIds = mtrlDos.stream().map(MaterialProductDO::getId).toList();
|
|
||||||
pageResult = materialBatchMapper.selectGongPage(pageReqVO, pdtIds);
|
|
||||||
}
|
}
|
||||||
|
List<Long> pdtIds = mtrlDos.stream().map(MaterialProductDO::getId).toList();
|
||||||
|
return materialBatchMapper.selectAcceptedGongPage(pageReqVO, pdtIds);
|
||||||
}
|
}
|
||||||
return pageResult;
|
// 用于验收
|
||||||
|
// 需要排除已经被选择的工段
|
||||||
|
if (pdtId == null) {
|
||||||
|
return materialBatchMapper.selectGongPage(pageReqVO, List.of());
|
||||||
|
}
|
||||||
|
List<MaterialProductDO> mtrlDos = materialProductService.getMaterialProductsByLikeIdPath(pdtId);
|
||||||
|
if (CollUtil.isEmpty(mtrlDos)) {
|
||||||
|
return materialBatchMapper.selectGongPage(pageReqVO, List.of());
|
||||||
|
}
|
||||||
|
List<Long> pdtIds = mtrlDos.stream().map(MaterialProductDO::getId).toList();
|
||||||
|
return materialBatchMapper.selectGongPage(pageReqVO, pdtIds);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void updateMaterialBatchInbEndQty(MaterialBatchDO gongDO) {
|
||||||
|
materialBatchMapper.updateById(gongDO);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void updateMaterialBatchAcceptStatusByLfcId(Long lfcId, String status) {
|
||||||
|
List<MaterialLifecycleDetailDO> detailList = materialLifecycleDetailService.getDetailListByLfcId(lfcId);
|
||||||
|
if (CollUtil.isEmpty(detailList)) return;
|
||||||
|
List<Long> gongIds = detailList.stream().map(MaterialLifecycleDetailDO::getBatchGongduanId).toList();
|
||||||
|
if (CollUtil.isEmpty(gongIds)) return;
|
||||||
|
MaterialBatchDO updateEntity = new MaterialBatchDO().setAcceptanceStatus(status);
|
||||||
|
materialBatchMapper.update(updateEntity, Wrappers.lambdaQuery(MaterialBatchDO.class)
|
||||||
|
.in(MaterialBatchDO::getId, gongIds));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -68,4 +68,19 @@ public interface MaterialInfomationService {
|
|||||||
* @return 大类id-库存数量
|
* @return 大类id-库存数量
|
||||||
*/
|
*/
|
||||||
Map<Long, Long> getStockQuantityByPdtIds(List<Long> mtrlIds);
|
Map<Long, Long> getStockQuantityByPdtIds(List<Long> mtrlIds);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 批量保存物料实例
|
||||||
|
*
|
||||||
|
* @param infomationDOS 物料实例
|
||||||
|
*/
|
||||||
|
void saveBatch(List<MaterialInfomationDO> infomationDOS);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获得物料实例分页
|
||||||
|
*
|
||||||
|
* @param pageReqVO 分页查询
|
||||||
|
* @return 物料实例分页
|
||||||
|
*/
|
||||||
|
PageResult<MaterialInfomationRespVO> getMaterialInfomationPageWithPdtInfo(@Valid MaterialInfomationPageReqVO pageReqVO);
|
||||||
}
|
}
|
||||||
@@ -10,6 +10,7 @@ import com.zt.plat.module.qms.resource.material.controller.vo.MaterialInfomation
|
|||||||
import com.zt.plat.module.qms.resource.material.controller.vo.MaterialInfomationSaveReqVO;
|
import com.zt.plat.module.qms.resource.material.controller.vo.MaterialInfomationSaveReqVO;
|
||||||
import com.zt.plat.module.qms.resource.material.dal.dataobject.MaterialInfomationDO;
|
import com.zt.plat.module.qms.resource.material.dal.dataobject.MaterialInfomationDO;
|
||||||
import com.zt.plat.module.qms.resource.material.dal.mapper.MaterialInfomationMapper;
|
import com.zt.plat.module.qms.resource.material.dal.mapper.MaterialInfomationMapper;
|
||||||
|
import groovy.util.logging.Slf4j;
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
@@ -27,6 +28,8 @@ import static com.zt.plat.module.qms.enums.ErrorCodeConstants.MATERIAL_INFOMATIO
|
|||||||
*
|
*
|
||||||
* @author 后台管理
|
* @author 后台管理
|
||||||
*/
|
*/
|
||||||
|
@lombok.extern.slf4j.Slf4j
|
||||||
|
@Slf4j
|
||||||
@Service
|
@Service
|
||||||
@Validated
|
@Validated
|
||||||
public class MaterialInfomationServiceImpl implements MaterialInfomationService {
|
public class MaterialInfomationServiceImpl implements MaterialInfomationService {
|
||||||
@@ -103,8 +106,18 @@ public class MaterialInfomationServiceImpl implements MaterialInfomationService
|
|||||||
|
|
||||||
return maps.stream().collect(Collectors.toMap(
|
return maps.stream().collect(Collectors.toMap(
|
||||||
map -> (Long) map.get("PDT_ID"),
|
map -> (Long) map.get("PDT_ID"),
|
||||||
map -> ((Long) map.get("quantity"))
|
map -> (Long) map.get("QUANTITY")
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void saveBatch(List<MaterialInfomationDO> infomationDOS) {
|
||||||
|
materialInfomationMapper.insertBatch(infomationDOS);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public PageResult<MaterialInfomationRespVO> getMaterialInfomationPageWithPdtInfo(MaterialInfomationPageReqVO pageReqVO) {
|
||||||
|
return materialInfomationMapper.selectPageWithPdtInfo(pageReqVO);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -61,4 +61,26 @@ public interface MaterialInventoryInboundDetailService {
|
|||||||
*/
|
*/
|
||||||
PageResult<MaterialInventoryInboundDetailDO> getMaterialInventoryInboundDetailPage(MaterialInventoryInboundDetailPageReqVO pageReqVO);
|
PageResult<MaterialInventoryInboundDetailDO> getMaterialInventoryInboundDetailPage(MaterialInventoryInboundDetailPageReqVO pageReqVO);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 批量保存入库明细
|
||||||
|
*
|
||||||
|
* @param detailList 入库明细
|
||||||
|
*/
|
||||||
|
void saveBatch(List<MaterialInventoryInboundDetailDO> detailList);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取包含物料信息的入库明细
|
||||||
|
*
|
||||||
|
* @param pageReqVO 分页查询
|
||||||
|
* @return 分页数据
|
||||||
|
*/
|
||||||
|
PageResult<MaterialInventoryInboundDetailRespVO> getInventoryInboundDetailPageWithMaterialInfo(@Valid MaterialInventoryInboundDetailPageReqVO pageReqVO);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据入库单ID 获取物料列表
|
||||||
|
*
|
||||||
|
* @param inboundId 入库单ID
|
||||||
|
* @return 物料列表
|
||||||
|
*/
|
||||||
|
List<MaterialInventoryInboundDetailRespVO> getMaterialInfoListByInboundId(Long inboundId);
|
||||||
}
|
}
|
||||||
@@ -86,4 +86,22 @@ public class MaterialInventoryInboundDetailServiceImpl implements MaterialInvent
|
|||||||
return materialInventoryInboundDetailMapper.selectPage(pageReqVO);
|
return materialInventoryInboundDetailMapper.selectPage(pageReqVO);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void saveBatch(List<MaterialInventoryInboundDetailDO> detailList) {
|
||||||
|
materialInventoryInboundDetailMapper.insertBatch(detailList);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public PageResult<MaterialInventoryInboundDetailRespVO> getInventoryInboundDetailPageWithMaterialInfo(MaterialInventoryInboundDetailPageReqVO pageReqVO) {
|
||||||
|
|
||||||
|
return materialInventoryInboundDetailMapper.selectPageWithMaterialInfo(pageReqVO);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<MaterialInventoryInboundDetailRespVO> getMaterialInfoListByInboundId(Long inboundId) {
|
||||||
|
|
||||||
|
return materialInventoryInboundDetailMapper.selectMaterialInfoListByInboundId(inboundId);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -1,21 +1,34 @@
|
|||||||
package com.zt.plat.module.qms.resource.material.service;
|
package com.zt.plat.module.qms.resource.material.service;
|
||||||
|
|
||||||
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.collection.CollUtil;
|
||||||
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
|
import com.zt.plat.framework.common.exception.ServiceException;
|
||||||
import com.zt.plat.framework.common.pojo.PageResult;
|
import com.zt.plat.framework.common.pojo.PageResult;
|
||||||
import com.zt.plat.framework.common.util.object.BeanUtils;
|
import com.zt.plat.framework.common.util.object.BeanUtils;
|
||||||
|
import com.zt.plat.framework.security.core.LoginUser;
|
||||||
|
import com.zt.plat.framework.security.core.util.SecurityFrameworkUtils;
|
||||||
|
import com.zt.plat.module.qms.core.code.SequenceUtil;
|
||||||
|
import com.zt.plat.module.qms.core.constant.DataTypeConstant;
|
||||||
|
import com.zt.plat.module.qms.enums.QmsCommonConstant;
|
||||||
import com.zt.plat.module.qms.resource.material.controller.vo.MaterialInventoryInboundPageReqVO;
|
import com.zt.plat.module.qms.resource.material.controller.vo.MaterialInventoryInboundPageReqVO;
|
||||||
import com.zt.plat.module.qms.resource.material.controller.vo.MaterialInventoryInboundRespVO;
|
import com.zt.plat.module.qms.resource.material.controller.vo.MaterialInventoryInboundRespVO;
|
||||||
import com.zt.plat.module.qms.resource.material.controller.vo.MaterialInventoryInboundSaveReqVO;
|
import com.zt.plat.module.qms.resource.material.controller.vo.MaterialInventoryInboundSaveReqVO;
|
||||||
import com.zt.plat.module.qms.resource.material.dal.dataobject.MaterialInventoryInboundDO;
|
import com.zt.plat.module.qms.resource.material.dal.dataobject.*;
|
||||||
import com.zt.plat.module.qms.resource.material.dal.mapper.MaterialInventoryInboundMapper;
|
import com.zt.plat.module.qms.resource.material.dal.mapper.MaterialInventoryInboundMapper;
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import static com.zt.plat.framework.common.exception.util.ServiceExceptionUtil.exception;
|
import static com.zt.plat.framework.common.exception.util.ServiceExceptionUtil.exception;
|
||||||
import static com.zt.plat.module.qms.enums.ErrorCodeConstants.MATERIAL_INVENTORY_INBOUND_NOT_EXISTS;
|
import static com.zt.plat.module.qms.enums.ErrorCodeConstants.*;
|
||||||
|
import static com.zt.plat.module.system.enums.ErrorCodeConstants.USER_NOT_EXISTS;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -30,13 +43,107 @@ public class MaterialInventoryInboundServiceImpl implements MaterialInventoryInb
|
|||||||
@Resource
|
@Resource
|
||||||
private MaterialInventoryInboundMapper materialInventoryInboundMapper;
|
private MaterialInventoryInboundMapper materialInventoryInboundMapper;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private MaterialLifecycleDetailService materialLifecycleDetailService;
|
||||||
|
@Autowired
|
||||||
|
private MaterialBatchService materialBatchService;
|
||||||
|
@Autowired
|
||||||
|
private MaterialProductService materialProductService;
|
||||||
|
@Autowired
|
||||||
|
private SequenceUtil sequenceUtil;
|
||||||
|
@Autowired
|
||||||
|
private MaterialInfomationService materialInfomationService;
|
||||||
|
@Autowired
|
||||||
|
private MaterialInventoryInboundDetailService materialInventoryInboundDetailService;
|
||||||
|
|
||||||
|
private final String infSequenceKey = "QMS_MATERIAL_INF_NO";
|
||||||
|
|
||||||
|
@Transactional
|
||||||
@Override
|
@Override
|
||||||
public MaterialInventoryInboundRespVO createMaterialInventoryInbound(MaterialInventoryInboundSaveReqVO createReqVO) {
|
public MaterialInventoryInboundRespVO createMaterialInventoryInbound(MaterialInventoryInboundSaveReqVO createReqVO) {
|
||||||
// 插入
|
Long gongduanId = createReqVO.getGongduanId();
|
||||||
MaterialInventoryInboundDO materialInventoryInbound = BeanUtils.toBean(createReqVO, MaterialInventoryInboundDO.class);
|
BigDecimal reqQuantity = createReqVO.getQuantity();
|
||||||
materialInventoryInboundMapper.insert(materialInventoryInbound);
|
if (reqQuantity.compareTo(BigDecimal.ZERO) <= 0) throw new ServiceException(1_032_160_000, "入库数量不能小于等于0");
|
||||||
|
MaterialBatchDO gongDO = materialBatchService.getMaterialBatch(gongduanId);
|
||||||
|
if (gongDO == null) throw exception(MATERIAL_BATCH_GONG_NOT_EXISTS);
|
||||||
|
// 1.检查工段是否已经验收
|
||||||
|
if (!QmsCommonConstant.COMPLETED.equals(gongDO.getAcceptanceStatus()))
|
||||||
|
throw new ServiceException(1_032_160_000, "工段未验收,不能入库");
|
||||||
|
|
||||||
|
// 2.入库数量不大于批次工段数量
|
||||||
|
if (reqQuantity.compareTo(gongDO.getInboundQuantity()) > 0) throw new ServiceException(1_032_160_000, "入库数量不能大于批次工段数量");
|
||||||
|
// TODO 这儿应该调整为去物料实例统计出此工段的入库数量
|
||||||
|
List<MaterialInventoryInboundDO> inboundDOS = materialInventoryInboundMapper.selectList(Wrappers.lambdaQuery(MaterialInventoryInboundDO.class)
|
||||||
|
.eq(MaterialInventoryInboundDO::getGongduanId, gongduanId));
|
||||||
|
if (CollUtil.isNotEmpty(inboundDOS)) {
|
||||||
|
BigDecimal totalQuantity = reqQuantity;
|
||||||
|
for (MaterialInventoryInboundDO inboundDO : inboundDOS) {
|
||||||
|
totalQuantity = totalQuantity.add(inboundDO.getQuantity());
|
||||||
|
}
|
||||||
|
if (totalQuantity.compareTo(gongDO.getInboundQuantity()) > 0) throw new ServiceException(1_032_160_000, "入库数量不能大于批次工段数量");
|
||||||
|
}
|
||||||
|
// 3.保存入库记录
|
||||||
|
MaterialInventoryInboundDO inbound = BeanUtils.toBean(createReqVO, MaterialInventoryInboundDO.class);
|
||||||
|
LoginUser loginUser = SecurityFrameworkUtils.getLoginUser();
|
||||||
|
if (loginUser == null) throw exception(USER_NOT_EXISTS);
|
||||||
|
String loginUserNickname = SecurityFrameworkUtils.getLoginUserNickname();
|
||||||
|
inbound.setApplyUser(loginUserNickname).setApplyUserId(loginUser.getId())
|
||||||
|
.setApplyDepartment(loginUser.getVisitDeptName()).setApplyDepartmentId(loginUser.getVisitDeptId())
|
||||||
|
.setApplyTime(LocalDateTime.now())
|
||||||
|
.setRemark(gongDO.getRemark());
|
||||||
|
materialInventoryInboundMapper.insert(inbound);
|
||||||
|
// 4.生成物料实例
|
||||||
|
Long productId = gongDO.getProductId();
|
||||||
|
MaterialProductDO product = materialProductService.getMaterialProduct(productId);
|
||||||
|
if (product == null || !DataTypeConstant.DATA_TYPE_DATA.equals(product.getNodeType()))
|
||||||
|
throw exception(MATERIAL_PRODUCT_NOT_EXISTS);
|
||||||
|
Long batchId = gongDO.getParentId();
|
||||||
|
MaterialBatchDO batch = materialBatchService.getMaterialBatch(batchId);
|
||||||
|
if (batch == null || batch.getParentId() != 0) throw exception(MATERIAL_BATCH_NOT_EXISTS);
|
||||||
|
List<MaterialInfomationDO> infomationDOS = new ArrayList<>();
|
||||||
|
for (int i = 0; i < reqQuantity.intValue(); i++) {
|
||||||
|
MaterialInfomationDO infomationDO = new MaterialInfomationDO();
|
||||||
|
infomationDO
|
||||||
|
.setProductId(productId).setBatchId(batchId)
|
||||||
|
.setLocationId(createReqVO.getLocationId())
|
||||||
|
.setGongduanId(gongduanId)
|
||||||
|
.setName(product.getName())
|
||||||
|
.setSpecification(product.getSpecification()).setModelNo(product.getModelNo())
|
||||||
|
.setParameter(product.getParameter())
|
||||||
|
.setManufacturer(product.getManufacturer()).setUnit(product.getUnit())
|
||||||
|
.setDue(product.getDue()).setOpenDueAfter(product.getOpenDueAfter())
|
||||||
|
.setPublishStatus(0)
|
||||||
|
.setUsageStatus(0)
|
||||||
|
.setOpenStatus(0)
|
||||||
|
.setManufacturerDate(batch.getManufacturerDate()).setExpirationDate(batch.getDueDate());
|
||||||
|
// 生成编号
|
||||||
|
String code = sequenceUtil.genCode(infSequenceKey);
|
||||||
|
infomationDO.setCode(code);
|
||||||
|
infomationDOS.add(infomationDO);
|
||||||
|
}
|
||||||
|
materialInfomationService.saveBatch(infomationDOS);
|
||||||
|
// 5.保存入库明细
|
||||||
|
List<MaterialInventoryInboundDetailDO> detailList = new ArrayList<>();
|
||||||
|
for (MaterialInfomationDO infomationDO : infomationDOS) {
|
||||||
|
MaterialInventoryInboundDetailDO detail = new MaterialInventoryInboundDetailDO();
|
||||||
|
detail
|
||||||
|
.setInboundId(inbound.getId())
|
||||||
|
.setBatchId(batchId)
|
||||||
|
.setBatchGongduanId(gongduanId)
|
||||||
|
.setMaterialInfomationId(infomationDO.getId())
|
||||||
|
.setInboundUserName(loginUserNickname)
|
||||||
|
.setInboundUserId(loginUser.getId())
|
||||||
|
.setInboundDepartmentName(loginUser.getVisitDeptName())
|
||||||
|
.setInboundDepartmentId(loginUser.getVisitDeptId())
|
||||||
|
.setInboundTime(inbound.getApplyTime());
|
||||||
|
detailList.add(detail);
|
||||||
|
}
|
||||||
|
materialInventoryInboundDetailService.saveBatch(detailList);
|
||||||
|
// 更新工段已入库数量
|
||||||
|
gongDO.setInboundEndQuantity(gongDO.getInboundEndQuantity().add(reqQuantity));
|
||||||
|
materialBatchService.updateMaterialBatchInbEndQty(gongDO);
|
||||||
// 返回
|
// 返回
|
||||||
return BeanUtils.toBean(materialInventoryInbound, MaterialInventoryInboundRespVO.class);
|
return BeanUtils.toBean(inbound, MaterialInventoryInboundRespVO.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -88,5 +88,28 @@ public interface MaterialLifecycleDetailService {
|
|||||||
* @param id 流程id
|
* @param id 流程id
|
||||||
* @return 明细列表
|
* @return 明细列表
|
||||||
*/
|
*/
|
||||||
List<MaterialLifecycleDetailRespVO> getMaterialLifecycleDetailListByLfcId(Long id);
|
List<MaterialLifecycleDetailRespVO> getDetailListWithPdtInfoByLfcId(Long id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据工段id 获取流程明细数据
|
||||||
|
* @param gongduanId 工段id
|
||||||
|
* @return 明细数据
|
||||||
|
*/
|
||||||
|
MaterialLifecycleDetailDO getMaterialLifecycleDetailByGongId(Long gongduanId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新流程明细状态
|
||||||
|
*
|
||||||
|
* @param lfcId 流程id
|
||||||
|
* @param isTreat 是否已处理
|
||||||
|
*/
|
||||||
|
void updateDetailTreatStatusByLfcId(Long lfcId, Boolean isTreat);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据流程id 获取流程明细数据
|
||||||
|
*
|
||||||
|
* @param lfcId 流程id
|
||||||
|
* @return 明细列表
|
||||||
|
*/
|
||||||
|
List<MaterialLifecycleDetailDO> getDetailListByLfcId(Long lfcId);
|
||||||
}
|
}
|
||||||
@@ -4,6 +4,8 @@ import cn.hutool.core.collection.CollUtil;
|
|||||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
import com.zt.plat.framework.common.pojo.PageResult;
|
import com.zt.plat.framework.common.pojo.PageResult;
|
||||||
import com.zt.plat.framework.common.util.object.BeanUtils;
|
import com.zt.plat.framework.common.util.object.BeanUtils;
|
||||||
|
import com.zt.plat.module.qms.enums.QmsBpmConstant;
|
||||||
|
import com.zt.plat.module.qms.enums.QmsCommonConstant;
|
||||||
import com.zt.plat.module.qms.resource.material.controller.vo.MaterialLifecycleDetailPageReqVO;
|
import com.zt.plat.module.qms.resource.material.controller.vo.MaterialLifecycleDetailPageReqVO;
|
||||||
import com.zt.plat.module.qms.resource.material.controller.vo.MaterialLifecycleDetailRespVO;
|
import com.zt.plat.module.qms.resource.material.controller.vo.MaterialLifecycleDetailRespVO;
|
||||||
import com.zt.plat.module.qms.resource.material.controller.vo.MaterialLifecycleDetailSaveReqVO;
|
import com.zt.plat.module.qms.resource.material.controller.vo.MaterialLifecycleDetailSaveReqVO;
|
||||||
@@ -107,9 +109,33 @@ public class MaterialLifecycleDetailServiceImpl implements MaterialLifecycleDeta
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<MaterialLifecycleDetailRespVO> getMaterialLifecycleDetailListByLfcId(Long id) {
|
public List<MaterialLifecycleDetailRespVO> getDetailListWithPdtInfoByLfcId(Long id) {
|
||||||
|
|
||||||
return materialLifecycleDetailMapper.selectListWithPdtBatInfo(id);
|
return materialLifecycleDetailMapper.selectListWithPdtBatInfo(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public MaterialLifecycleDetailDO getMaterialLifecycleDetailByGongId(Long gongduanId) {
|
||||||
|
List<MaterialLifecycleDetailDO> detailDOS = materialLifecycleDetailMapper.selectList(Wrappers.lambdaQuery(MaterialLifecycleDetailDO.class)
|
||||||
|
.eq(MaterialLifecycleDetailDO::getBatchGongduanId, gongduanId)
|
||||||
|
.last("limit 1"));
|
||||||
|
if (CollUtil.isEmpty(detailDOS)) return null;
|
||||||
|
return detailDOS.get(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void updateDetailTreatStatusByLfcId(Long lfcId, Boolean isTreat) {
|
||||||
|
MaterialLifecycleDetailDO detailUpdate = new MaterialLifecycleDetailDO().setTreatmentStatus(isTreat ? 1 : 0);
|
||||||
|
materialLifecycleDetailMapper.update(detailUpdate, Wrappers.lambdaQuery(MaterialLifecycleDetailDO.class)
|
||||||
|
.eq(MaterialLifecycleDetailDO::getLifecycleId, lfcId));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<MaterialLifecycleDetailDO> getDetailListByLfcId(Long lfcId) {
|
||||||
|
|
||||||
|
return materialLifecycleDetailMapper.selectList(Wrappers.lambdaQuery(MaterialLifecycleDetailDO.class)
|
||||||
|
.eq(MaterialLifecycleDetailDO::getLifecycleId, lfcId));
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -3,6 +3,7 @@ package com.zt.plat.module.qms.resource.material.service;
|
|||||||
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.collection.CollUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import cn.hutool.json.JSONUtil;
|
import cn.hutool.json.JSONUtil;
|
||||||
|
import com.alibaba.fastjson.JSONArray;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.zt.plat.framework.common.exception.ServiceException;
|
import com.zt.plat.framework.common.exception.ServiceException;
|
||||||
import com.zt.plat.framework.common.pojo.CommonResult;
|
import com.zt.plat.framework.common.pojo.CommonResult;
|
||||||
@@ -17,12 +18,20 @@ import com.zt.plat.module.bpm.api.task.dto.BpmTaskApproveReqDTO;
|
|||||||
import com.zt.plat.module.bpm.api.task.dto.BpmTaskRespDTO;
|
import com.zt.plat.module.bpm.api.task.dto.BpmTaskRespDTO;
|
||||||
import com.zt.plat.module.qms.api.task.BMPCallbackInterface;
|
import com.zt.plat.module.qms.api.task.BMPCallbackInterface;
|
||||||
import com.zt.plat.module.qms.api.task.dto.QmsBpmDTO;
|
import com.zt.plat.module.qms.api.task.dto.QmsBpmDTO;
|
||||||
|
import com.zt.plat.module.qms.common.data.service.DataKeyCheckService;
|
||||||
|
import com.zt.plat.module.qms.common.dic.controller.vo.DictionaryBusinessRespVO;
|
||||||
|
import com.zt.plat.module.qms.common.dic.dal.dataobject.DictionaryBusinessDO;
|
||||||
|
import com.zt.plat.module.qms.common.dic.service.DictionaryBusinessService;
|
||||||
|
import com.zt.plat.module.qms.enums.QmsBpmConstant;
|
||||||
import com.zt.plat.module.qms.enums.QmsCommonConstant;
|
import com.zt.plat.module.qms.enums.QmsCommonConstant;
|
||||||
|
import com.zt.plat.module.qms.resource.material.constant.MaterialConstants;
|
||||||
import com.zt.plat.module.qms.resource.material.controller.vo.*;
|
import com.zt.plat.module.qms.resource.material.controller.vo.*;
|
||||||
import com.zt.plat.module.qms.resource.material.dal.dataobject.MaterialBatchDO;
|
import com.zt.plat.module.qms.resource.material.dal.dataobject.MaterialBatchDO;
|
||||||
import com.zt.plat.module.qms.resource.material.dal.dataobject.MaterialLifecycleDO;
|
import com.zt.plat.module.qms.resource.material.dal.dataobject.MaterialLifecycleDO;
|
||||||
import com.zt.plat.module.qms.resource.material.dal.dataobject.MaterialLifecycleDetailDO;
|
import com.zt.plat.module.qms.resource.material.dal.dataobject.MaterialLifecycleDetailDO;
|
||||||
import com.zt.plat.module.qms.resource.material.dal.mapper.MaterialLifecycleMapper;
|
import com.zt.plat.module.qms.resource.material.dal.mapper.MaterialLifecycleMapper;
|
||||||
|
import com.zt.plat.module.qms.resource.material.enums.MaterialAcceptStatus;
|
||||||
|
import com.zt.plat.module.qms.resource.material.enums.MaterialFlowType;
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
@@ -70,6 +79,12 @@ public class MaterialLifecycleServiceImpl implements MaterialLifecycleService ,
|
|||||||
@Autowired
|
@Autowired
|
||||||
private BpmProcessInstanceApi bpmProcessInstanceApi;
|
private BpmProcessInstanceApi bpmProcessInstanceApi;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private DataKeyCheckService dataKeyCheckService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private DictionaryBusinessService dictionaryBusinessService;
|
||||||
|
|
||||||
@Transactional
|
@Transactional
|
||||||
@Override
|
@Override
|
||||||
public MaterialLifecycleRespVO createMaterialLifecycle(MaterialLifecycleSaveReqVO createReqVO) {
|
public MaterialLifecycleRespVO createMaterialLifecycle(MaterialLifecycleSaveReqVO createReqVO) {
|
||||||
@@ -114,7 +129,7 @@ public class MaterialLifecycleServiceImpl implements MaterialLifecycleService ,
|
|||||||
MaterialLifecycleDetailDO detailDO = new MaterialLifecycleDetailDO();
|
MaterialLifecycleDetailDO detailDO = new MaterialLifecycleDetailDO();
|
||||||
detailDO.setLifecycleId(mtrlLfc.getId())
|
detailDO.setLifecycleId(mtrlLfc.getId())
|
||||||
.setProductId(gong.getProductId()).setBatchId(gong.getParentId())
|
.setProductId(gong.getProductId()).setBatchId(gong.getParentId())
|
||||||
.setBatchGongduanId(gong.getId())
|
.setBatchGongduanId(gong.getId()).setBusinessType(mtrlLfc.getBusinessType())
|
||||||
.setAssayFlag(gong.getAssayFlag())
|
.setAssayFlag(gong.getAssayFlag())
|
||||||
.setTreatmentStatus(0);
|
.setTreatmentStatus(0);
|
||||||
return detailDO;
|
return detailDO;
|
||||||
@@ -202,7 +217,7 @@ public class MaterialLifecycleServiceImpl implements MaterialLifecycleService ,
|
|||||||
if (lifecycleDO == null) return null;
|
if (lifecycleDO == null) return null;
|
||||||
MaterialLifecycleRespVO respVO = BeanUtils.toBean(lifecycleDO, MaterialLifecycleRespVO.class);
|
MaterialLifecycleRespVO respVO = BeanUtils.toBean(lifecycleDO, MaterialLifecycleRespVO.class);
|
||||||
// 获取明细
|
// 获取明细
|
||||||
List<MaterialLifecycleDetailRespVO> detailRespVOS = materialLifecycleDetailService.getMaterialLifecycleDetailListByLfcId(id);
|
List<MaterialLifecycleDetailRespVO> detailRespVOS = materialLifecycleDetailService.getDetailListWithPdtInfoByLfcId(id);
|
||||||
respVO.setDetailList(detailRespVOS);
|
respVO.setDetailList(detailRespVOS);
|
||||||
return respVO;
|
return respVO;
|
||||||
}
|
}
|
||||||
@@ -276,19 +291,15 @@ public class MaterialLifecycleServiceImpl implements MaterialLifecycleService ,
|
|||||||
BpmProcessInstanceCreateReqDTO reqDTO = new BpmProcessInstanceCreateReqDTO();
|
BpmProcessInstanceCreateReqDTO reqDTO = new BpmProcessInstanceCreateReqDTO();
|
||||||
reqDTO.setBusinessKey(String.valueOf(lifecycleDO.getId()))
|
reqDTO.setBusinessKey(String.valueOf(lifecycleDO.getId()))
|
||||||
.setVariables(variables);
|
.setVariables(variables);
|
||||||
|
// 流程key 根据业务类型动态获取
|
||||||
|
List<DictionaryBusinessDO> items = dictionaryBusinessService.queryDictItemsByKey(MaterialConstants.DICT_MATERIAL_FLOW_TYPE);
|
||||||
|
if (CollUtil.isEmpty(items)) throw new ServiceException(1_032_160_000, "流程配置不存在");
|
||||||
|
Map<String, String> processKeyMap = items.stream().collect(Collectors.toMap(DictionaryBusinessDO::getName, DictionaryBusinessDO::getCustomConfig));
|
||||||
|
MaterialFlowType materialFlowType = MaterialFlowType.fromName(lifecycleDO.getBusinessType());
|
||||||
|
Object processKey = JSONUtil.parseObj(processKeyMap.get(materialFlowType.getName())).get("processKey");
|
||||||
|
if (processKey == null) throw new ServiceException(1_032_160_000, "流程配置 key 不存在");
|
||||||
|
|
||||||
// switch (lifecycleDO.getBusinessType()) {
|
reqDTO.setProcessDefinitionKey(processKey.toString());
|
||||||
// case "验收":
|
|
||||||
// reqDTO.setProcessDefinitionKey("MATERIAL_ACCEPTANCE_FLOW_KEY");
|
|
||||||
// break;
|
|
||||||
// case "退换货":
|
|
||||||
// reqDTO.setProcessDefinitionKey("MATERIAL_RETURN_EXCHANGE_FLOW_KEY");
|
|
||||||
// break;
|
|
||||||
// case "配置申请":
|
|
||||||
// reqDTO.setProcessDefinitionKey("MATERIAL_CONFIG_APPLY_FLOW_KEY");
|
|
||||||
// break;
|
|
||||||
// }
|
|
||||||
reqDTO.setProcessDefinitionKey("QMS_RESOURCE_MATERIAL_COMMON");
|
|
||||||
CommonResult<String> result = bpmProcessInstanceApi.createProcessInstance(loginUserId, reqDTO);
|
CommonResult<String> result = bpmProcessInstanceApi.createProcessInstance(loginUserId, reqDTO);
|
||||||
if(!result.isSuccess()){
|
if(!result.isSuccess()){
|
||||||
throw exception0(ERROR_CODE_MODULE_COMMON, result.getMsg());
|
throw exception0(ERROR_CODE_MODULE_COMMON, result.getMsg());
|
||||||
@@ -307,36 +318,76 @@ public class MaterialLifecycleServiceImpl implements MaterialLifecycleService ,
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public CommonResult<JSONObject> callback(QmsBpmDTO reqDTO) {
|
public CommonResult<JSONObject> callback(QmsBpmDTO reqDTO) {
|
||||||
log.info("物料流程回调信息:{}", reqDTO.toString());
|
log.debug("物料流程回调信息:{}", reqDTO.toString());
|
||||||
/*
|
|
||||||
QmsBpmDTO(
|
JSONObject variables = reqDTO.getVariables();
|
||||||
processInstanceId=042585c1-00e3-11f1-9df0-005056c00001,
|
String processInsId = reqDTO.getProcessInstanceId();
|
||||||
businessKey=2018618104343769090,
|
String currentActivityInsId = variables.getString(QmsBpmConstant.BPM_CUR_ACTIVITY_INS_ID);
|
||||||
variables={
|
String returnFlag = variables.getString(QmsBpmConstant.BPM_REJECT_TO_FIRST_FLAG);
|
||||||
"_FLOWABLE_SKIP_EXPRESSION_ENABLED":true,
|
// 同一个节点需要避免重复处理
|
||||||
"processInstanceId":"042585c1-00e3-11f1-9df0-005056c00001",
|
String checkKey = currentActivityInsId;
|
||||||
"nrOfActiveInstances":1,
|
if(StrUtil.isEmpty(currentActivityInsId))
|
||||||
"bpmFieldExtensions":[],
|
checkKey = processInsId + "-create";
|
||||||
"PROCESS_STATUS":1,
|
if("1".equals(returnFlag))
|
||||||
"currentActivityInsId":"043c904a-00e3-11f1-9df0-005056c00001",
|
checkKey += "-reject";
|
||||||
"bpmCallbackBean":"materialLifecycleService",
|
try{
|
||||||
"applyDepartment":"检验检测管理中心",
|
dataKeyCheckService.create(checkKey, this.getClass().getName());
|
||||||
"Activity_0tp833v_assignees":["2008359763063820290"],
|
} catch (Exception e){
|
||||||
"loopCounter":0,
|
log.error("checkKey 重复:key={}", checkKey);
|
||||||
"applyUserId":"2008359763063820290",
|
return CommonResult.success(new JSONObject());
|
||||||
"nrOfInstances":1,
|
}
|
||||||
"PROCESS_START_USER_ID":"2008359763063820290",
|
// 流程状态处理 1-提交(含退回) 3-拒绝 4-取消流程
|
||||||
"applyUser":"云铜检验管理员",
|
String PROCESS_STATUS = variables.getString(QmsBpmConstant.PROCESS_INSTANCE_VARIABLE_STATUS);
|
||||||
"Activity_0tp833v_assignee":"2008359763063820290",
|
String businessKey = reqDTO.getBusinessKey();
|
||||||
"applyDepartmentId":170,
|
JSONArray fieldExtensions = new JSONArray();
|
||||||
"applyTime":"2026-02-03 17:30:44",
|
if(variables.containsKey(QmsBpmConstant.BPM_FIELD_EXTENSIONS)){
|
||||||
"mainId":"2018618104343769090",
|
fieldExtensions = variables.getJSONArray(QmsBpmConstant.BPM_FIELD_EXTENSIONS);
|
||||||
"bpmCallbackActivityId":"Activity_0tp833v",
|
}
|
||||||
"nrOfCompletedInstances":1
|
MaterialLifecycleDO entity = materialLifecycleMapper.selectById(Long.valueOf(businessKey));
|
||||||
},
|
// String currentActivityId = variables.getString(QmsBpmConstant.BPM_CALLBACK_ACTIVITY_ID);
|
||||||
state=)
|
// 检查是否最后一个节点
|
||||||
*/
|
boolean lastActivityFlag = false;
|
||||||
// 变更流程状态
|
boolean firstActivityFlag = false;
|
||||||
return null;
|
if(!fieldExtensions.isEmpty()){
|
||||||
|
for(int i = 0; i < fieldExtensions.size(); i++){
|
||||||
|
JSONObject fieldExtension = fieldExtensions.getJSONObject(i);
|
||||||
|
if(fieldExtension.getString("fieldName").equalsIgnoreCase(QmsBpmConstant.BPM_LAST_ACTIVITY_FLAG)){
|
||||||
|
lastActivityFlag = true;
|
||||||
|
}
|
||||||
|
if(fieldExtension.getString("fieldName").equalsIgnoreCase(QmsBpmConstant.BPM_FIRST_ACTIVITY_FLAG)){
|
||||||
|
firstActivityFlag = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// 根据流程状态处理业务数据
|
||||||
|
if(("1").equals(returnFlag)){
|
||||||
|
// 驳回。流程需要配置退回到发起节点
|
||||||
|
materialLifecycleDetailService.updateDetailTreatStatusByLfcId(entity.getId(), true);
|
||||||
|
entity.setFlowStatus(QmsCommonConstant.REJECTED);
|
||||||
|
} else if("3".equals(PROCESS_STATUS)){
|
||||||
|
// 拒绝
|
||||||
|
materialLifecycleDetailService.updateDetailTreatStatusByLfcId(entity.getId(), true);
|
||||||
|
entity.setFlowStatus(QmsCommonConstant.REFUSED);
|
||||||
|
} else if("4".equals(PROCESS_STATUS)){
|
||||||
|
// 作废
|
||||||
|
materialLifecycleDetailService.updateDetailTreatStatusByLfcId(entity.getId(), true);
|
||||||
|
entity.setFlowStatus(QmsCommonConstant.VOID);
|
||||||
|
} else if("1".equals(PROCESS_STATUS) || "2".equals(PROCESS_STATUS)){
|
||||||
|
// 通过
|
||||||
|
if(firstActivityFlag)
|
||||||
|
// 驳回后重新提交
|
||||||
|
entity.setFlowStatus(QmsCommonConstant.IN_PROGRESS);
|
||||||
|
if(lastActivityFlag) {
|
||||||
|
// 结束审批
|
||||||
|
entity.setFlowStatus(QmsCommonConstant.COMPLETED);
|
||||||
|
// 更新明细处理状态
|
||||||
|
materialLifecycleDetailService.updateDetailTreatStatusByLfcId(entity.getId(), true);
|
||||||
|
// 更新批次工段验收状态
|
||||||
|
materialBatchService.updateMaterialBatchAcceptStatusByLfcId(entity.getId(), MaterialAcceptStatus.accepted.name());
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
materialLifecycleMapper.updateById(entity);
|
||||||
|
return CommonResult.success(new JSONObject());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,64 +0,0 @@
|
|||||||
package com.zt.plat.module.qms.resource.material.service;
|
|
||||||
|
|
||||||
import java.util.*;
|
|
||||||
|
|
||||||
import com.zt.plat.module.qms.resource.material.controller.vo.MaterialLocationPageReqVO;
|
|
||||||
import com.zt.plat.module.qms.resource.material.controller.vo.MaterialLocationRespVO;
|
|
||||||
import com.zt.plat.module.qms.resource.material.controller.vo.MaterialLocationSaveReqVO;
|
|
||||||
import jakarta.validation.*;
|
|
||||||
import com.zt.plat.module.qms.resource.material.dal.dataobject.MaterialLocationDO;
|
|
||||||
import com.zt.plat.framework.common.pojo.PageResult;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 存放位置 Service 接口
|
|
||||||
*
|
|
||||||
* @author 后台管理
|
|
||||||
*/
|
|
||||||
public interface MaterialLocationService {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 创建存放位置
|
|
||||||
*
|
|
||||||
* @param createReqVO 创建信息
|
|
||||||
* @return 编号
|
|
||||||
*/
|
|
||||||
MaterialLocationRespVO createMaterialLocation(@Valid MaterialLocationSaveReqVO createReqVO);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 更新存放位置
|
|
||||||
*
|
|
||||||
* @param updateReqVO 更新信息
|
|
||||||
*/
|
|
||||||
void updateMaterialLocation(@Valid MaterialLocationSaveReqVO updateReqVO);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 删除存放位置
|
|
||||||
*
|
|
||||||
* @param id 编号
|
|
||||||
*/
|
|
||||||
void deleteMaterialLocation(Long id);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 批量删除存放位置
|
|
||||||
*
|
|
||||||
* @param ids 编号
|
|
||||||
*/
|
|
||||||
void deleteMaterialLocationListByIds(List<Long> ids);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 获得存放位置
|
|
||||||
*
|
|
||||||
* @param id 编号
|
|
||||||
* @return 存放位置
|
|
||||||
*/
|
|
||||||
MaterialLocationDO getMaterialLocation(Long id);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 获得存放位置分页
|
|
||||||
*
|
|
||||||
* @param pageReqVO 分页查询
|
|
||||||
* @return 存放位置分页
|
|
||||||
*/
|
|
||||||
PageResult<MaterialLocationDO> getMaterialLocationPage(MaterialLocationPageReqVO pageReqVO);
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,90 +0,0 @@
|
|||||||
package com.zt.plat.module.qms.resource.material.service;
|
|
||||||
|
|
||||||
import cn.hutool.core.collection.CollUtil;
|
|
||||||
import com.zt.plat.module.qms.resource.material.controller.vo.MaterialLocationPageReqVO;
|
|
||||||
import com.zt.plat.module.qms.resource.material.controller.vo.MaterialLocationRespVO;
|
|
||||||
import com.zt.plat.module.qms.resource.material.controller.vo.MaterialLocationSaveReqVO;
|
|
||||||
import org.springframework.stereotype.Service;
|
|
||||||
import jakarta.annotation.Resource;
|
|
||||||
import org.springframework.validation.annotation.Validated;
|
|
||||||
|
|
||||||
import java.util.*;
|
|
||||||
import com.zt.plat.module.qms.resource.material.dal.dataobject.MaterialLocationDO;
|
|
||||||
import com.zt.plat.framework.common.pojo.PageResult;
|
|
||||||
import com.zt.plat.framework.common.util.object.BeanUtils;
|
|
||||||
|
|
||||||
import com.zt.plat.module.qms.resource.material.dal.mapper.MaterialLocationMapper;
|
|
||||||
|
|
||||||
import static com.zt.plat.framework.common.exception.util.ServiceExceptionUtil.exception;
|
|
||||||
import static com.zt.plat.module.qms.enums.ErrorCodeConstants.*;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 存放位置 Service 实现类
|
|
||||||
*
|
|
||||||
* @author 后台管理
|
|
||||||
*/
|
|
||||||
@Service
|
|
||||||
@Validated
|
|
||||||
public class MaterialLocationServiceImpl implements MaterialLocationService {
|
|
||||||
|
|
||||||
@Resource
|
|
||||||
private MaterialLocationMapper materialLocationMapper;
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public MaterialLocationRespVO createMaterialLocation(MaterialLocationSaveReqVO createReqVO) {
|
|
||||||
// 插入
|
|
||||||
MaterialLocationDO materialLocation = BeanUtils.toBean(createReqVO, MaterialLocationDO.class);
|
|
||||||
materialLocationMapper.insert(materialLocation);
|
|
||||||
// 返回
|
|
||||||
return BeanUtils.toBean(materialLocation, MaterialLocationRespVO.class);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void updateMaterialLocation(MaterialLocationSaveReqVO updateReqVO) {
|
|
||||||
// 校验存在
|
|
||||||
validateMaterialLocationExists(updateReqVO.getId());
|
|
||||||
// 更新
|
|
||||||
MaterialLocationDO updateObj = BeanUtils.toBean(updateReqVO, MaterialLocationDO.class);
|
|
||||||
materialLocationMapper.updateById(updateObj);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void deleteMaterialLocation(Long id) {
|
|
||||||
// 校验存在
|
|
||||||
validateMaterialLocationExists(id);
|
|
||||||
// 删除
|
|
||||||
materialLocationMapper.deleteById(id);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void deleteMaterialLocationListByIds(List<Long> ids) {
|
|
||||||
// 校验存在
|
|
||||||
validateMaterialLocationExists(ids);
|
|
||||||
// 删除
|
|
||||||
materialLocationMapper.deleteByIds(ids);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void validateMaterialLocationExists(List<Long> ids) {
|
|
||||||
List<MaterialLocationDO> list = materialLocationMapper.selectByIds(ids);
|
|
||||||
if (CollUtil.isEmpty(list) || list.size() != ids.size()) {
|
|
||||||
throw exception(MATERIAL_LOCATION_NOT_EXISTS);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void validateMaterialLocationExists(Long id) {
|
|
||||||
if (materialLocationMapper.selectById(id) == null) {
|
|
||||||
throw exception(MATERIAL_LOCATION_NOT_EXISTS);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public MaterialLocationDO getMaterialLocation(Long id) {
|
|
||||||
return materialLocationMapper.selectById(id);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public PageResult<MaterialLocationDO> getMaterialLocationPage(MaterialLocationPageReqVO pageReqVO) {
|
|
||||||
return materialLocationMapper.selectPage(pageReqVO);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -329,7 +329,8 @@ public class MaterialProductServiceImpl implements MaterialProductService {
|
|||||||
Map<Long, Long> stockQuantityMap = materialInfomationService.getStockQuantityByPdtIds(mtrlIds);
|
Map<Long, Long> stockQuantityMap = materialInfomationService.getStockQuantityByPdtIds(mtrlIds);
|
||||||
if (CollUtil.isNotEmpty(stockQuantityMap)) {
|
if (CollUtil.isNotEmpty(stockQuantityMap)) {
|
||||||
for (MaterialProductRespVO vo : voList) {
|
for (MaterialProductRespVO vo : voList) {
|
||||||
vo.setInventoryQuantity(BigDecimal.valueOf(stockQuantityMap.get(vo.getId())));
|
Long val = stockQuantityMap.get(vo.getId());
|
||||||
|
vo.setInventoryQuantity(BigDecimal.valueOf(val == null ? 0L : val));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -54,6 +54,26 @@ public class XRFDeviceSampleReqVO implements Serializable {
|
|||||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
@Schema(description = "样品时间")
|
@Schema(description = "样品时间")
|
||||||
private LocalDateTime sampleTime;
|
private LocalDateTime sampleTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 样品开始时间
|
||||||
|
*/
|
||||||
|
@JsonSerialize(using = LocalDateTimeSerializer.class) // 序列化(响应)
|
||||||
|
@JsonDeserialize(using = LocalDateTimeDeserializer.class) // 反序列化(请求)
|
||||||
|
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
|
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
|
@Schema(description = "样品开始时间")
|
||||||
|
private LocalDateTime sampleStartTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 样品结束时间
|
||||||
|
*/
|
||||||
|
@JsonSerialize(using = LocalDateTimeSerializer.class) // 序列化(响应)
|
||||||
|
@JsonDeserialize(using = LocalDateTimeDeserializer.class) // 反序列化(请求)
|
||||||
|
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
|
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
|
@Schema(description = "样品结束时间")
|
||||||
|
private LocalDateTime sampleEndTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 分析人
|
* 分析人
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import java.math.BigDecimal;
|
|||||||
import java.math.RoundingMode;
|
import java.math.RoundingMode;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Arrays;
|
||||||
import java.util.Comparator;
|
import java.util.Comparator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
@@ -14,32 +15,48 @@ import org.springframework.stereotype.Service;
|
|||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import com.alibaba.fastjson2.JSON;
|
import com.alibaba.fastjson2.JSON;
|
||||||
|
import com.alibaba.fastjson2.JSONArray;
|
||||||
import com.alibaba.fastjson2.JSONObject;
|
import com.alibaba.fastjson2.JSONObject;
|
||||||
import com.zt.plat.framework.common.util.object.BeanUtils;
|
import com.zt.plat.framework.common.util.object.BeanUtils;
|
||||||
import com.zt.plat.module.qms.business.bus.controller.vo.*;
|
import com.zt.plat.module.qms.business.bus.controller.vo.*;
|
||||||
|
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.BusinessAssayProjectDataDO;
|
||||||
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.BusinessAssayTaskParameterDataDO;
|
||||||
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessQCManagementDataDO;
|
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessQCManagementDataDO;
|
||||||
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessQCManagementProjectDataDO;
|
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessQCManagementProjectDataDO;
|
||||||
|
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessSampleEntrustDetailDO;
|
||||||
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessXRFDataDO;
|
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessXRFDataDO;
|
||||||
|
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.BusinessAssayProjectDataMapper;
|
||||||
import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessAssayTaskDataMapper;
|
import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessAssayTaskDataMapper;
|
||||||
|
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.BusinessQCCoefficientDataMapper;
|
||||||
import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessQCCoefficientParameterDataMapper;
|
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.BusinessQCManagementDataMapper;
|
||||||
import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessQCManagementProjectDataMapper;
|
import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessQCManagementProjectDataMapper;
|
||||||
|
import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessSampleEntrustDetailMapper;
|
||||||
import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessXRFDataMapper;
|
import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessXRFDataMapper;
|
||||||
|
import com.zt.plat.module.qms.business.config.controller.vo.ConfigSubSampleMethodConfInfo;
|
||||||
|
import com.zt.plat.module.qms.business.config.controller.vo.ConfigSubSampleMethodConfItem;
|
||||||
|
import com.zt.plat.module.qms.business.config.controller.vo.ConfigSubSampleMethodConfPoint;
|
||||||
|
import com.zt.plat.module.qms.business.config.controller.vo.ConfigSubSampleMethodExtendRespVO;
|
||||||
|
import com.zt.plat.module.qms.business.config.dal.dataobject.BaseSampleDO;
|
||||||
import com.zt.plat.module.qms.business.config.dal.dataobject.ConfigAssayMethodProjectDO;
|
import com.zt.plat.module.qms.business.config.dal.dataobject.ConfigAssayMethodProjectDO;
|
||||||
import com.zt.plat.module.qms.business.config.dal.dataobject.ConfigXRFConversionRateDO;
|
import com.zt.plat.module.qms.business.config.dal.dataobject.ConfigXRFConversionRateDO;
|
||||||
import com.zt.plat.module.qms.business.config.dal.dataobject.ConfigXRFLineDO;
|
import com.zt.plat.module.qms.business.config.dal.dataobject.ConfigXRFLineDO;
|
||||||
import com.zt.plat.module.qms.business.config.dal.dataobject.ConfigXRFProjectDO;
|
import com.zt.plat.module.qms.business.config.dal.dataobject.ConfigXRFProjectDO;
|
||||||
|
import com.zt.plat.module.qms.business.config.dal.mapper.BaseSampleMapper;
|
||||||
import com.zt.plat.module.qms.business.config.dal.mapper.ConfigAssayMethodProjectMapper;
|
import com.zt.plat.module.qms.business.config.dal.mapper.ConfigAssayMethodProjectMapper;
|
||||||
|
import com.zt.plat.module.qms.business.config.dal.mapper.ConfigSubSampleMethodMapper;
|
||||||
import com.zt.plat.module.qms.business.config.dal.mapper.ConfigXRFConversionRateMapper;
|
import com.zt.plat.module.qms.business.config.dal.mapper.ConfigXRFConversionRateMapper;
|
||||||
import com.zt.plat.module.qms.business.config.dal.mapper.ConfigXRFLineMapper;
|
import com.zt.plat.module.qms.business.config.dal.mapper.ConfigXRFLineMapper;
|
||||||
import com.zt.plat.module.qms.business.config.dal.mapper.ConfigXRFProjectMapper;
|
import com.zt.plat.module.qms.business.config.dal.mapper.ConfigXRFProjectMapper;
|
||||||
import com.zt.plat.module.qms.enums.QmsCommonConstant;
|
import com.zt.plat.module.qms.enums.QmsCommonConstant;
|
||||||
import com.zt.plat.module.qms.thirdpartyapi.controller.vo.*;
|
import com.zt.plat.module.qms.thirdpartyapi.controller.vo.*;
|
||||||
|
|
||||||
|
import cn.hutool.core.collection.CollUtil;
|
||||||
|
import cn.hutool.core.date.DateUtil;
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
|
||||||
@@ -59,15 +76,30 @@ public class XRFDataServiceImpl implements XRFDataService {
|
|||||||
@Resource
|
@Resource
|
||||||
private ConfigAssayMethodProjectMapper configAssayMethodProjectMapper;
|
private ConfigAssayMethodProjectMapper configAssayMethodProjectMapper;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private ConfigSubSampleMethodMapper configSubSampleMethodMapper;
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private BusinessXRFDataMapper businessXRFDataMapper;
|
private BusinessXRFDataMapper businessXRFDataMapper;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private BaseSampleMapper baseSampleMapper;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private BusinessSampleEntrustDetailMapper businessSampleEntrustDetailMapper;
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private BusinessAssayTaskDataMapper businessAssayTaskDataMapper;
|
private BusinessAssayTaskDataMapper businessAssayTaskDataMapper;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private BusinessAssayTaskParameterDataMapper businessAssayTaskParameterDataMapper;
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private BusinessAssayProjectDataMapper businessAssayProjectDataMapper;
|
private BusinessAssayProjectDataMapper businessAssayProjectDataMapper;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private BusinessAssayParameterDataMapper businessAssayParameterDataMapper;
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private BusinessQCManagementDataMapper businessQCManagementDataMapper;
|
private BusinessQCManagementDataMapper businessQCManagementDataMapper;
|
||||||
|
|
||||||
@@ -120,6 +152,14 @@ public class XRFDataServiceImpl implements XRFDataService {
|
|||||||
|
|
||||||
//根据样品编号及分析方法类型,获取检测任务数据
|
//根据样品编号及分析方法类型,获取检测任务数据
|
||||||
List<BusinessAssayTaskDataExtendRespVO> businessAssayTaskDataList = businessAssayTaskDataMapper.selectBySampleAssayCodesAndConfigAssayMethodDictionaryBusinessKey(sampleCodeList, "xshxyggpf");
|
List<BusinessAssayTaskDataExtendRespVO> businessAssayTaskDataList = businessAssayTaskDataMapper.selectBySampleAssayCodesAndConfigAssayMethodDictionaryBusinessKey(sampleCodeList, "xshxyggpf");
|
||||||
|
|
||||||
|
List<Long> businessAssayTaskDataIdList = businessAssayTaskDataList.stream().map(m -> m.getId()).collect(Collectors.toList());
|
||||||
|
//获取检测参数
|
||||||
|
List<BusinessAssayTaskParameterDataExtendRespVO> businessAssayTaskParameterDataExtendList = new ArrayList<>();
|
||||||
|
if (CollUtil.isNotEmpty(businessAssayTaskDataIdList)) {
|
||||||
|
businessAssayTaskParameterDataExtendList = businessAssayTaskParameterDataMapper.selectExtendByBusinessAssayTaskDataIds(businessAssayTaskDataIdList);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
//管理样和标准样
|
//管理样和标准样
|
||||||
List<BusinessQCManagementDataDO> businessQCManagementDataList = businessQCManagementDataMapper.selectBySampleAssayCodesAndConfigAssayMethodDictionaryBusinessKey(sampleCodeList, "xshxyggpf");
|
List<BusinessQCManagementDataDO> businessQCManagementDataList = businessQCManagementDataMapper.selectBySampleAssayCodesAndConfigAssayMethodDictionaryBusinessKey(sampleCodeList, "xshxyggpf");
|
||||||
@@ -128,7 +168,11 @@ public class XRFDataServiceImpl implements XRFDataService {
|
|||||||
// List<BusinessQCCoefficientDataDO> businessQCCoefficientDataList = businessQCCoefficientDataMapper.selectBySampleAssayCodesAndConfigAssayMethodDictionaryBusinessKey(sampleCodeList, "xshxyggpf");
|
// List<BusinessQCCoefficientDataDO> businessQCCoefficientDataList = businessQCCoefficientDataMapper.selectBySampleAssayCodesAndConfigAssayMethodDictionaryBusinessKey(sampleCodeList, "xshxyggpf");
|
||||||
|
|
||||||
List<BusinessAssayTaskDataDO> businessAssayTaskDataDOList = new ArrayList<>();
|
List<BusinessAssayTaskDataDO> businessAssayTaskDataDOList = new ArrayList<>();
|
||||||
|
List<BusinessAssayTaskParameterDataDO> businessAssayTaskParameterDataList = new ArrayList<>();
|
||||||
List<BusinessAssayProjectDataDO> busElementValueList = new ArrayList<>();
|
List<BusinessAssayProjectDataDO> busElementValueList = new ArrayList<>();
|
||||||
|
|
||||||
|
List<BusinessAssayParameterDataDO> updateBusinessAssayParameterDataList = new ArrayList<>();
|
||||||
|
|
||||||
List<BusinessQCManagementProjectDataDO> busQcManageElementValueList = new ArrayList<>();
|
List<BusinessQCManagementProjectDataDO> busQcManageElementValueList = new ArrayList<>();
|
||||||
// List<BusinessQCCoefficientParameterDataDO> busQccParameterValueList = new ArrayList<>();
|
// List<BusinessQCCoefficientParameterDataDO> busQccParameterValueList = new ArrayList<>();
|
||||||
List<BusinessXRFDataDO> busYgDataList = new ArrayList<>();
|
List<BusinessXRFDataDO> busYgDataList = new ArrayList<>();
|
||||||
@@ -149,6 +193,8 @@ public class XRFDataServiceImpl implements XRFDataService {
|
|||||||
busYgData.setXRFSampleId(ygDeviceSample.getSampleId());
|
busYgData.setXRFSampleId(ygDeviceSample.getSampleId());
|
||||||
busYgData.setSampleCode(ygDeviceSample.getSampleCode());
|
busYgData.setSampleCode(ygDeviceSample.getSampleCode());
|
||||||
busYgData.setSampleTime(ygDeviceSample.getSampleTime());
|
busYgData.setSampleTime(ygDeviceSample.getSampleTime());
|
||||||
|
busYgData.setSampleStartTime(ygDeviceSample.getSampleStartTime());
|
||||||
|
busYgData.setSampleEndTime(ygDeviceSample.getSampleEndTime());
|
||||||
busYgData.setAssayOperator(ygDeviceSample.getAssayOper());
|
busYgData.setAssayOperator(ygDeviceSample.getAssayOper());
|
||||||
busYgData.setIsCheckCreate(ygDeviceSample.getIsCheck() ? 1 : 0);
|
busYgData.setIsCheckCreate(ygDeviceSample.getIsCheck() ? 1 : 0);
|
||||||
|
|
||||||
@@ -162,9 +208,28 @@ public class XRFDataServiceImpl implements XRFDataService {
|
|||||||
//处理匹配
|
//处理匹配
|
||||||
//a. 分析样
|
//a. 分析样
|
||||||
List<BusinessAssayProjectDataExtendRespVO> tempBusElementValueList = new ArrayList<>();
|
List<BusinessAssayProjectDataExtendRespVO> tempBusElementValueList = new ArrayList<>();
|
||||||
List<BusinessAssayTaskDataExtendRespVO> currBusinessAssayTaskDataList = businessAssayTaskDataList.stream().filter(f -> ygDeviceSample.getSampleCode().equals(f.getSampleAssayCode())).collect(Collectors.toList());
|
List<BusinessAssayTaskDataExtendRespVO> currBusinessAssayTaskDataList = businessAssayTaskDataList.stream().filter(f -> ygDeviceSample.getSampleCode().equals(f.getSampleAssayCode())).collect(Collectors.toList());//平行样情况,是列表
|
||||||
if (currBusinessAssayTaskDataList != null && currBusinessAssayTaskDataList.size() > 0) {
|
if (currBusinessAssayTaskDataList != null && currBusinessAssayTaskDataList.size() > 0) {
|
||||||
for (BusinessAssayTaskDataExtendRespVO businessAssayTaskData : currBusinessAssayTaskDataList) {
|
for (BusinessAssayTaskDataExtendRespVO businessAssayTaskData : currBusinessAssayTaskDataList) {
|
||||||
|
//处理任务参数
|
||||||
|
List<BusinessAssayTaskParameterDataExtendRespVO> currBusinessAssayTaskParameterDataExtendList = businessAssayTaskParameterDataExtendList.stream().filter(f -> f.getBusinessAssayTaskDataId().equals(businessAssayTaskData.getId())).collect(Collectors.toList());
|
||||||
|
for (BusinessAssayTaskParameterDataExtendRespVO currBusinessAssayTaskParameterDataExtend : currBusinessAssayTaskParameterDataExtendList) {
|
||||||
|
switch (currBusinessAssayTaskParameterDataExtend.getKey()) {
|
||||||
|
case "lineName":
|
||||||
|
currBusinessAssayTaskParameterDataExtend.setValue(busYgData.getLineName());
|
||||||
|
businessAssayTaskParameterDataList.add(BeanUtils.toBean(currBusinessAssayTaskParameterDataExtend, BusinessAssayTaskParameterDataDO.class));
|
||||||
|
break;
|
||||||
|
case "sampleStartTime":
|
||||||
|
currBusinessAssayTaskParameterDataExtend.setValue(DateUtil.formatLocalDateTime(busYgData.getSampleStartTime()));
|
||||||
|
businessAssayTaskParameterDataList.add(BeanUtils.toBean(currBusinessAssayTaskParameterDataExtend, BusinessAssayTaskParameterDataDO.class));
|
||||||
|
break;
|
||||||
|
case "sampleEndTime":
|
||||||
|
currBusinessAssayTaskParameterDataExtend.setValue(DateUtil.formatLocalDateTime(busYgData.getSampleEndTime()));
|
||||||
|
businessAssayTaskParameterDataList.add(BeanUtils.toBean(currBusinessAssayTaskParameterDataExtend, BusinessAssayTaskParameterDataDO.class));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
List<BusinessAssayProjectDataExtendRespVO> busElementValues = businessAssayProjectDataMapper.selectByBusinessAssayTaskDataId(businessAssayTaskData.getId());
|
List<BusinessAssayProjectDataExtendRespVO> busElementValues = businessAssayProjectDataMapper.selectByBusinessAssayTaskDataId(businessAssayTaskData.getId());
|
||||||
tempBusElementValueList.addAll(busElementValues);
|
tempBusElementValueList.addAll(busElementValues);
|
||||||
}
|
}
|
||||||
@@ -295,6 +360,121 @@ public class XRFDataServiceImpl implements XRFDataService {
|
|||||||
|
|
||||||
if (currBusinessAssayTaskDataList != null && currBusinessAssayTaskDataList.size() > 0) {
|
if (currBusinessAssayTaskDataList != null && currBusinessAssayTaskDataList.size() > 0) {
|
||||||
for (BusinessAssayTaskDataExtendRespVO businessAssayTaskData : currBusinessAssayTaskDataList) {
|
for (BusinessAssayTaskDataExtendRespVO businessAssayTaskData : currBusinessAssayTaskDataList) {
|
||||||
|
|
||||||
|
//查询当前子样方法配置
|
||||||
|
ConfigSubSampleMethodExtendRespVO configSubSampleMethod = configSubSampleMethodMapper.selectByConfigSubSampleIdAndConfigAssayMethodId(businessAssayTaskData.getConfigSubSampleId(), businessAssayTaskData.getConfigAssayMethodId());
|
||||||
|
//扩展配置
|
||||||
|
String configInfomation = configSubSampleMethod.getConfigInfomation();
|
||||||
|
if (StringUtils.isNotBlank(configInfomation)) {
|
||||||
|
//解析配置
|
||||||
|
ConfigSubSampleMethodConfInfo configSubSampleMethodConfInfo = JSON.parseObject(configInfomation, ConfigSubSampleMethodConfInfo.class);
|
||||||
|
//当前要设置到的参数
|
||||||
|
List<ConfigSubSampleMethodConfItem> setParamList = configSubSampleMethodConfInfo.getSetParam();
|
||||||
|
if (CollUtil.isNotEmpty(setParamList)) {//参数不为空,则设置
|
||||||
|
//方法key
|
||||||
|
String methodKey = setParamList.stream().map(m -> m.getTarget().getMethodKey()).distinct().findFirst().orElse(null);
|
||||||
|
|
||||||
|
//1 查询委托明细
|
||||||
|
BusinessSampleEntrustDetailDO businessSampleEntrustDetailDO = businessSampleEntrustDetailMapper.selectByBusinessBaseSampleId(businessAssayTaskData.getBusinessBaseSampleId());
|
||||||
|
//2 查询样品大类
|
||||||
|
BaseSampleDO baseSampleDO = baseSampleMapper.selectById(businessSampleEntrustDetailDO.getBaseSampleId());
|
||||||
|
|
||||||
|
//3 判断样品大类类型
|
||||||
|
if (QmsCommonConstant.ENTRUST_INSPECTION_ANALYSIS_SAMPLE.equals(baseSampleDO.getDictionaryBusinessKey())) {//如果是商检分析样
|
||||||
|
//委托登记Id
|
||||||
|
Long businessSampleEntrustRegistrationId = businessSampleEntrustDetailDO.getBusinessSampleEntrustRegistrationId();
|
||||||
|
//查询委托登记明细
|
||||||
|
List<BusinessSampleEntrustDetailDO> businessSampleEntrustDetailList = businessSampleEntrustDetailMapper.selectByBusinessSampleEntrustRegistrationId(businessSampleEntrustRegistrationId);
|
||||||
|
//获取主样Id列表
|
||||||
|
List<Long> businessBaseSampleIdList = businessSampleEntrustDetailList.stream().map(m -> m.getBusinessBaseSampleId()).collect(Collectors.toList());
|
||||||
|
//查询当前分析方法下对应的任务
|
||||||
|
List<BusinessAssayTaskDataDO> targetBusinessAssayTaskDataList = businessAssayTaskDataMapper.selectByBusinessBaseSampleIdsAndMethodKey(businessBaseSampleIdList, methodKey);
|
||||||
|
List<Long> targetBusinessAssayTaskDataIdList = targetBusinessAssayTaskDataList.stream().map(m -> m.getId()).collect(Collectors.toList());
|
||||||
|
List<BusinessAssayProjectDataExtendRespVO> targetBusinessAssayProjectDataExtendList = businessAssayProjectDataMapper.selectByBusinessAssayTaskDataIds(targetBusinessAssayTaskDataIdList);
|
||||||
|
|
||||||
|
for (ConfigSubSampleMethodConfItem configSubSampleMethodConfItem : setParamList) {
|
||||||
|
ConfigSubSampleMethodConfPoint source = configSubSampleMethodConfItem.getSource();
|
||||||
|
String project = source.getProject();
|
||||||
|
BusinessAssayProjectDataExtendRespVO currentBusinessAssayProjectData = tempBusElementValueList.stream().filter(f -> f.getBusinessAssayTaskDataId().equals(businessAssayTaskData.getId()) && project.equals(f.getSimpleName())).findFirst().orElse(null);
|
||||||
|
ConfigSubSampleMethodConfPoint target = configSubSampleMethodConfItem.getTarget();
|
||||||
|
for (BusinessAssayTaskDataDO targetBusinessAssayTaskData : targetBusinessAssayTaskDataList) {
|
||||||
|
List<String> targetProjectList = Arrays.asList(target.getProject().split(","));
|
||||||
|
String targetParameter = target.getParameter();
|
||||||
|
for (String targetProject : targetProjectList) {
|
||||||
|
BusinessAssayProjectDataExtendRespVO targetBusinessAssayProjectData = targetBusinessAssayProjectDataExtendList.stream().filter(f -> f.getBusinessAssayTaskDataId().equals(targetBusinessAssayTaskData.getId()) && targetProject.equals(f.getSimpleName())).findFirst().orElse(null);
|
||||||
|
if (targetBusinessAssayProjectData == null) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
BusinessAssayParameterDataDO businessAssayParameterDataDO = businessAssayParameterDataMapper.selectByBusinessAssayProjectDataIdAndProjectSimpleNameAndParameterKey(targetBusinessAssayProjectData.getId(), targetProject, targetParameter);
|
||||||
|
if (businessAssayParameterDataDO != null) {
|
||||||
|
businessAssayParameterDataDO.setValue(currentBusinessAssayProjectData.getValue());
|
||||||
|
updateBusinessAssayParameterDataList.add(businessAssayParameterDataDO);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else if (QmsCommonConstant.ENTRUST_COMPREHENSIVE_INSPECTION_SAMPLE.equals(baseSampleDO.getDictionaryBusinessKey())) {//如果是商检综合样
|
||||||
|
//查询当前分析方法下对应的任务
|
||||||
|
List<BusinessAssayTaskDataDO> targetBusinessAssayTaskDataList = businessAssayTaskDataMapper.selectByBusinessSubSampleIdAndMethodKey(businessAssayTaskData.getBusinessSubSampleId(), methodKey);
|
||||||
|
List<Long> targetBusinessAssayTaskDataIdList = targetBusinessAssayTaskDataList.stream().map(m -> m.getId()).collect(Collectors.toList());
|
||||||
|
List<BusinessAssayProjectDataExtendRespVO> targetBusinessAssayProjectDataExtendList = businessAssayProjectDataMapper.selectByBusinessAssayTaskDataIds(targetBusinessAssayTaskDataIdList);
|
||||||
|
|
||||||
|
for (ConfigSubSampleMethodConfItem configSubSampleMethodConfItem : setParamList) {
|
||||||
|
ConfigSubSampleMethodConfPoint source = configSubSampleMethodConfItem.getSource();
|
||||||
|
String project = source.getProject();
|
||||||
|
BusinessAssayProjectDataExtendRespVO currentBusinessAssayProjectData = tempBusElementValueList.stream().filter(f -> f.getBusinessAssayTaskDataId().equals(businessAssayTaskData.getId()) && project.equals(f.getSimpleName())).findFirst().orElse(null);
|
||||||
|
ConfigSubSampleMethodConfPoint target = configSubSampleMethodConfItem.getTarget();
|
||||||
|
for (BusinessAssayTaskDataDO targetBusinessAssayTaskData : targetBusinessAssayTaskDataList) {
|
||||||
|
List<String> targetProjectList = Arrays.asList(target.getProject().split(","));
|
||||||
|
String targetParameter = target.getParameter();
|
||||||
|
for (String targetProject : targetProjectList) {
|
||||||
|
BusinessAssayProjectDataExtendRespVO targetBusinessAssayProjectData = targetBusinessAssayProjectDataExtendList.stream().filter(f -> f.getBusinessAssayTaskDataId().equals(targetBusinessAssayTaskData.getId()) && targetProject.equals(f.getSimpleName())).findFirst().orElse(null);
|
||||||
|
if (targetBusinessAssayProjectData == null) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
BusinessAssayParameterDataDO businessAssayParameterDataDO = businessAssayParameterDataMapper.selectByBusinessAssayProjectDataIdAndProjectSimpleNameAndParameterKey(targetBusinessAssayProjectData.getId(), targetProject, targetParameter);
|
||||||
|
if (businessAssayParameterDataDO != null) {
|
||||||
|
businessAssayParameterDataDO.setValue(currentBusinessAssayProjectData.getValue());
|
||||||
|
updateBusinessAssayParameterDataList.add(businessAssayParameterDataDO);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else if (QmsCommonConstant.ENTRUST_COMMISSION_INSPECTION_SAMPLE.equals(baseSampleDO.getDictionaryBusinessKey())) {//如果是委检样
|
||||||
|
//查询当前分析方法下对应的任务
|
||||||
|
List<BusinessAssayTaskDataDO> targetBusinessAssayTaskDataList = businessAssayTaskDataMapper.selectByBusinessSubSampleIdAndMethodKey(businessAssayTaskData.getBusinessSubSampleId(), methodKey);
|
||||||
|
List<Long> targetBusinessAssayTaskDataIdList = targetBusinessAssayTaskDataList.stream().map(m -> m.getId()).collect(Collectors.toList());
|
||||||
|
List<BusinessAssayProjectDataExtendRespVO> targetBusinessAssayProjectDataExtendList = businessAssayProjectDataMapper.selectByBusinessAssayTaskDataIds(targetBusinessAssayTaskDataIdList);
|
||||||
|
|
||||||
|
for (ConfigSubSampleMethodConfItem configSubSampleMethodConfItem : setParamList) {
|
||||||
|
ConfigSubSampleMethodConfPoint source = configSubSampleMethodConfItem.getSource();
|
||||||
|
String project = source.getProject();
|
||||||
|
BusinessAssayProjectDataExtendRespVO currentBusinessAssayProjectData = tempBusElementValueList.stream().filter(f -> f.getBusinessAssayTaskDataId().equals(businessAssayTaskData.getId()) && project.equals(f.getSimpleName())).findFirst().orElse(null);
|
||||||
|
ConfigSubSampleMethodConfPoint target = configSubSampleMethodConfItem.getTarget();
|
||||||
|
for (BusinessAssayTaskDataDO targetBusinessAssayTaskData : targetBusinessAssayTaskDataList) {
|
||||||
|
List<String> targetProjectList = Arrays.asList(target.getProject().split(","));
|
||||||
|
String targetParameter = target.getParameter();
|
||||||
|
for (String targetProject : targetProjectList) {
|
||||||
|
BusinessAssayProjectDataExtendRespVO targetBusinessAssayProjectData = targetBusinessAssayProjectDataExtendList.stream().filter(f -> f.getBusinessAssayTaskDataId().equals(targetBusinessAssayTaskData.getId()) && targetProject.equals(f.getSimpleName())).findFirst().orElse(null);
|
||||||
|
if (targetBusinessAssayProjectData == null) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
BusinessAssayParameterDataDO businessAssayParameterDataDO = businessAssayParameterDataMapper.selectByBusinessAssayProjectDataIdAndProjectSimpleNameAndParameterKey(targetBusinessAssayProjectData.getId(), targetProject, targetParameter);
|
||||||
|
if (businessAssayParameterDataDO != null && StringUtils.isBlank(businessAssayParameterDataDO.getValue())) {//值为空,才赋值
|
||||||
|
businessAssayParameterDataDO.setValue(currentBusinessAssayProjectData.getValue());
|
||||||
|
updateBusinessAssayParameterDataList.add(businessAssayParameterDataDO);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
busYgData.setIsMatched(QmsCommonConstant.YES);
|
busYgData.setIsMatched(QmsCommonConstant.YES);
|
||||||
busYgData.setBusinessBaseSampleId(businessAssayTaskData.getBusinessBaseSampleId());
|
busYgData.setBusinessBaseSampleId(businessAssayTaskData.getBusinessBaseSampleId());
|
||||||
busYgData.setBusinessSubParentSampleId(businessAssayTaskData.getBusinessSubParentSampleId());
|
busYgData.setBusinessSubParentSampleId(businessAssayTaskData.getBusinessSubParentSampleId());
|
||||||
@@ -326,11 +506,22 @@ public class XRFDataServiceImpl implements XRFDataService {
|
|||||||
|
|
||||||
//保存荧光数据
|
//保存荧光数据
|
||||||
businessXRFDataMapper.insertBatch(busYgDataList);
|
businessXRFDataMapper.insertBatch(busYgDataList);
|
||||||
|
|
||||||
|
//更新任务参数
|
||||||
|
if (businessAssayTaskParameterDataList.size() > 0) {
|
||||||
|
businessAssayTaskParameterDataMapper.updateBatch(businessAssayTaskParameterDataList);
|
||||||
|
}
|
||||||
|
|
||||||
//更新分析结果
|
//更新分析结果
|
||||||
if (busElementValueList.size() > 0) {
|
if (busElementValueList.size() > 0) {
|
||||||
businessAssayProjectDataMapper.updateBatch(busElementValueList);
|
businessAssayProjectDataMapper.updateBatch(busElementValueList);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//更新检测项目参数
|
||||||
|
if (updateBusinessAssayParameterDataList.size() > 0) {
|
||||||
|
businessAssayParameterDataMapper.updateBatch(updateBusinessAssayParameterDataList);
|
||||||
|
}
|
||||||
|
|
||||||
//荧光管理样和标准样
|
//荧光管理样和标准样
|
||||||
if (busQcManageElementValueList.size() > 0) {
|
if (busQcManageElementValueList.size() > 0) {
|
||||||
businessQCManagementProjectDataMapper.updateBatch(busQcManageElementValueList);
|
businessQCManagementProjectDataMapper.updateBatch(busQcManageElementValueList);
|
||||||
|
|||||||
@@ -1,12 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
|
||||||
<mapper namespace="com.zt.plat.module.qms.resource.material.dal.mapper.MaterialLocationMapper">
|
|
||||||
|
|
||||||
<!--
|
|
||||||
一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。
|
|
||||||
无法满足的场景,例如说多表关联查询,才使用 XML 编写 SQL。
|
|
||||||
代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。
|
|
||||||
文档可见:https://www.iocoder.cn/MyBatis/x-plugins/
|
|
||||||
-->
|
|
||||||
|
|
||||||
</mapper>
|
|
||||||
Reference in New Issue
Block a user