@ -5567,15 +5567,117 @@ public class QcServiceImpl implements QcService {
@Override
@Transactional
public void fqasRecordOverLoad ( QcFAIRecordData data ) {
for ( QcFAIRecordData qcData : data . getSubmitList ( ) ) {
/ / 新建对象存放主记录
QcFAIRecordData qcFAIRecordData = new QcFAIRecordData ( ) ;
for ( QcFAIRecordData recordData : data . getSubmitList ( ) ) {
/ / 删除明细记录信息
qcMapper . deleteFQASDetailedRecord ( qcData ) ;
qcMapper . deleteFQASDetailedRecord ( record Data) ;
/ / 删除子明细记录信息
qcMapper . deleteFQASSubDetailedRecord ( qcData ) ;
/ / 修改detailFlag字段为N
/ / qcMapper . updateFQASDetailFlag ( qcData ) ;
qcMapper . deleteFQASSubDetailedRecord ( recordData ) ;
/ / 删除文件
qcMapper . deleteInspectionFiles ( qcData ) ;
qcMapper . deleteInspectionFiles ( recordData ) ;
/ / 主记录信息赋值
qcFAIRecordData . setSite ( recordData . getSite ( ) ) ;
qcFAIRecordData . setBuNo ( recordData . getBuNo ( ) ) ;
qcFAIRecordData . setInspectionNo ( recordData . getInspectionNo ( ) ) ; / / 检验单号
qcFAIRecordData . setInspectionTypeNo ( "108" ) ; / / 检验类型编码
qcFAIRecordData . setPartDesc ( recordData . getPartDesc ( ) ) ;
qcFAIRecordData . setRollQty ( recordData . getRollQty ( ) ) ;
/ / 明细记录信息赋值
String partNo = recordData . getPartNo ( ) ;
String attributeType1 = "A" ;
/ / 获取该物料属性下维护的FQAS检验模板
List < QcFAIRecordData > partAttribute = qcMapper . selectPartAttributeByPartNo ( recordData . getSite ( ) , recordData . getBuNo ( ) , partNo , attributeType1 , qcFAIRecordData . getInspectionTypeNo ( ) , "" ) ;
if ( ! partAttribute . isEmpty ( ) ) {
/ / 检验周期
if ( partAttribute . get ( 0 ) . getInspectionCycle ( ) ! = null ) {
qcFAIRecordData . setInspectionCycle ( partAttribute . get ( 0 ) . getInspectionCycle ( ) ) ;
}
/ / 获取抽样数量
/ / 如果该检验模板有维护抽样方案
if ( StringUtils . isNotBlank ( partAttribute . get ( 0 ) . getSamplingProgrammeNo ( ) ) ) {
QcSamplingInspectionProgrammeData samplingInspectionProgrammeData = new QcSamplingInspectionProgrammeData ( ) ;
samplingInspectionProgrammeData . setSite ( partAttribute . get ( 0 ) . getSite ( ) ) ;
samplingInspectionProgrammeData . setBuNo ( partAttribute . get ( 0 ) . getBuNo ( ) ) ;
samplingInspectionProgrammeData . setSamplingProgrammeNo ( partAttribute . get ( 0 ) . getSamplingProgrammeNo ( ) ) ;
/ / 获取抽样方案维护的矩阵详情
List < QcSamplingInspectionProgrammeData > dataList = qcMapper . searchSamplingProgrammeDetails ( samplingInspectionProgrammeData ) ;
/ / 根据抽样方案确定抽样数
for ( QcSamplingInspectionProgrammeData programmeData : dataList ) {
if ( programmeData . getSamplingLevelNo ( ) . equals ( partAttribute . get ( 0 ) . getSamplingLevelNo ( ) ) & & ( recordData . getRollCount ( ) . compareTo ( programmeData . getMinQty ( ) ) > 0 | | recordData . getRollCount ( ) . compareTo ( programmeData . getMinQty ( ) ) = = 0 ) & & ( recordData . getRollCount ( ) . compareTo ( programmeData . getMaxQty ( ) ) < 0 | | recordData . getRollCount ( ) . compareTo ( programmeData . getMaxQty ( ) ) = = 0 ) ) {
qcFAIRecordData . setSamplingQty ( programmeData . getSamplingQty ( ) ) ;
}
}
} else if ( partAttribute . get ( 0 ) . getDefaultSamplingQuantity ( ) ! = null ) {
/ / 没有维护抽样方案 , 再根据默认抽样数来确定
qcFAIRecordData . setSamplingQty ( partAttribute . get ( 0 ) . getDefaultSamplingQuantity ( ) ) ;
} else if ( partAttribute . get ( 0 ) . getDefaultSamplingProportion ( ) ! = null ) {
/ / 也没有维护默认抽样数 , 最后根据默认抽样比例来确定
BigDecimal d = partAttribute . get ( 0 ) . getDefaultSamplingProportion ( ) . multiply ( recordData . getRollCount ( ) ) . divide ( new BigDecimal ( 100 ) , 3 , BigDecimal . ROUND_HALF_UP ) ;
qcFAIRecordData . setSamplingQty ( d ) ;
}
/ / 获取根据该检验模板下维护的检验项目
QcTemplateData templateData = new QcTemplateData ( ) ;
templateData . setSite ( recordData . getSite ( ) ) ;
templateData . setBuNo ( recordData . getBuNo ( ) ) ;
templateData . setTemplateId ( partAttribute . get ( 0 ) . getTemplateId ( ) ) ;
templateData . setItemType ( "D" ) ;
List < QcTemplateData > itemList = qcMapper . templateDetailsSearch ( templateData ) ;
QcFAIRecordData faiRecordData = new QcFAIRecordData ( ) ;
faiRecordData . setSite ( recordData . getSite ( ) ) ; / / 工厂
faiRecordData . setBuNo ( recordData . getBuNo ( ) ) ; / / BU
faiRecordData . setInspectionNo ( qcFAIRecordData . getInspectionNo ( ) ) ; / / 检验单号
faiRecordData . setTemplateId ( partAttribute . get ( 0 ) . getTemplateId ( ) ) ; / / 模板编码
faiRecordData . setAql ( partAttribute . get ( 0 ) . getAql ( ) ) ; / / aql
faiRecordData . setAc ( partAttribute . get ( 0 ) . getAc ( ) ) ; / / ac
faiRecordData . setRe ( partAttribute . get ( 0 ) . getRe ( ) ) ; / / re
for ( QcTemplateData itemData : itemList ) {
faiRecordData . setSamplingQty ( null ) ;
faiRecordData . setSamplingLevelNo ( itemData . getSamplingLevelNo ( ) ) ; / / 检验水平编码
faiRecordData . setSamplingLevelDesc ( itemData . getSamplingLevelDesc ( ) ) ; / / 检验水平名称
faiRecordData . setSamplingProgrammeNo ( itemData . getSamplingProgrammeNo ( ) ) ; / / 抽样方案编码
faiRecordData . setSamplingProgrammeDesc ( itemData . getSamplingProgrammeDesc ( ) ) ; / / 抽样方案名称
faiRecordData . setItemNo ( itemData . getItemNo ( ) ) ; / / 项目编码
faiRecordData . setItemDesc ( itemData . getItemDesc ( ) ) ; / / 项目名称
faiRecordData . setObjectId ( itemData . getObjectID ( ) ) ; / / 设备编码
faiRecordData . setObjectDesc ( itemData . getObjectDesc ( ) ) ; / / 设备名称
faiRecordData . setDefaultValue ( itemData . getDefaultValue ( ) ) ; / / 默认值
faiRecordData . setMinValue ( itemData . getMinValue ( ) ) ; / / 最小值
faiRecordData . setMaxValue ( itemData . getMaxValue ( ) ) ; / / 最大值
faiRecordData . setValueType ( itemData . getValueType ( ) ) ; / / 检测值类型
faiRecordData . setValueTypeDb ( itemData . getValueTypeDb ( ) ) ;
/ / 获取抽样数量
/ / 如果该检验项目有维护抽样方案
if ( StringUtils . isNotBlank ( itemData . getSamplingProgrammeNo ( ) ) ) {
QcSamplingInspectionProgrammeData samplingInspectionProgrammeData = new QcSamplingInspectionProgrammeData ( ) ;
samplingInspectionProgrammeData . setSite ( itemData . getSite ( ) ) ;
samplingInspectionProgrammeData . setBuNo ( itemData . getBuNo ( ) ) ;
samplingInspectionProgrammeData . setSamplingProgrammeNo ( itemData . getSamplingProgrammeNo ( ) ) ;
/ / 获取抽样方案维护的矩阵详情
List < QcSamplingInspectionProgrammeData > dataList = qcMapper . searchSamplingProgrammeDetails ( samplingInspectionProgrammeData ) ;
/ / 根据抽样方案确定抽样数
for ( QcSamplingInspectionProgrammeData programmeData : dataList ) {
if ( programmeData . getSamplingLevelNo ( ) . equals ( itemData . getSamplingLevelNo ( ) ) & & ( recordData . getRollCount ( ) . compareTo ( programmeData . getMinQty ( ) ) > 0 | | recordData . getRollCount ( ) . compareTo ( programmeData . getMinQty ( ) ) = = 0 ) & & ( recordData . getRollCount ( ) . compareTo ( programmeData . getMaxQty ( ) ) < 0 | | recordData . getRollCount ( ) . compareTo ( programmeData . getMaxQty ( ) ) = = 0 ) ) {
faiRecordData . setSamplingQty ( programmeData . getSamplingQty ( ) ) ;
}
}
} else if ( itemData . getItemSamplingQuantity ( ) ! = null ) {
/ / 没有维护抽样方案 , 再根据默认抽样数来确定
faiRecordData . setSamplingQty ( itemData . getItemSamplingQuantity ( ) ) ;
} else if ( itemData . getDefaultSamplingProportion ( ) ! = null ) {
/ / 也没有维护默认抽样数 , 最后根据默认抽样比例来确定
faiRecordData . setSamplingQty ( itemData . getDefaultSamplingProportion ( ) . multiply ( recordData . getRollCount ( ) ) . divide ( new BigDecimal ( 100 ) , 3 , BigDecimal . ROUND_HALF_UP ) ) ;
} else {
/ / 最后则根据检验单抽样数量赋值
faiRecordData . setSamplingQty ( qcFAIRecordData . getSamplingQty ( ) ) ; / / 抽样数量
}
/ / 新增FQAS明细记录信息
qcMapper . saveFQASDetailedRecord ( faiRecordData ) ;
}
}
/ / 更新FQAS主记录信息
qcMapper . updateFQASRecord ( qcFAIRecordData ) ;
}
}