Browse Source

2023-12-13 检验项目中增加“抽样方案、默认抽样比例”

java8
fengyuan_yang 3 years ago
parent
commit
156bc00d62
  1. 50
      src/main/java/com/xujie/sys/modules/pms/data/QcItemData.java
  2. 493
      src/main/java/com/xujie/sys/modules/pms/service/Impl/QcServiceImpl.java
  3. 51
      src/main/resources/mapper/pms/QcMapper.xml

50
src/main/java/com/xujie/sys/modules/pms/data/QcItemData.java

@ -59,6 +59,56 @@ public class QcItemData extends QueryPage {
private String inspectionTypeName; private String inspectionTypeName;
// 项目抽样数 // 项目抽样数
private BigDecimal itemSamplingQuantity; private BigDecimal itemSamplingQuantity;
// 抽样方案编码
private String samplingProgrammeNo;
// 抽样方案名称
private String samplingProgrammeDesc;
// 检验水平编码
private String samplingLevelNo;
// 检验水平名称
private String samplingLevelDesc;
// 抽样比例
private BigDecimal defaultSamplingProportion;
public String getSamplingProgrammeDesc() {
return samplingProgrammeDesc;
}
public void setSamplingProgrammeDesc(String samplingProgrammeDesc) {
this.samplingProgrammeDesc = samplingProgrammeDesc;
}
public String getSamplingLevelDesc() {
return samplingLevelDesc;
}
public void setSamplingLevelDesc(String samplingLevelDesc) {
this.samplingLevelDesc = samplingLevelDesc;
}
public String getSamplingProgrammeNo() {
return samplingProgrammeNo;
}
public void setSamplingProgrammeNo(String samplingProgrammeNo) {
this.samplingProgrammeNo = samplingProgrammeNo;
}
public String getSamplingLevelNo() {
return samplingLevelNo;
}
public void setSamplingLevelNo(String samplingLevelNo) {
this.samplingLevelNo = samplingLevelNo;
}
public BigDecimal getDefaultSamplingProportion() {
return defaultSamplingProportion;
}
public void setDefaultSamplingProportion(BigDecimal defaultSamplingProportion) {
this.defaultSamplingProportion = defaultSamplingProportion;
}
public BigDecimal getItemSamplingQuantity() { public BigDecimal getItemSamplingQuantity() {
return itemSamplingQuantity; return itemSamplingQuantity;

493
src/main/java/com/xujie/sys/modules/pms/service/Impl/QcServiceImpl.java

@ -1570,27 +1570,46 @@ public class QcServiceImpl implements QcService {
faiRecordData.setInspectionNo(data.getInspectionNo()); // 检验单号 faiRecordData.setInspectionNo(data.getInspectionNo()); // 检验单号
faiRecordData.setOrderNo(data.getOrderNo()); // 工单号 faiRecordData.setOrderNo(data.getOrderNo()); // 工单号
faiRecordData.setTemplateId(partAttribute.get(0).getTemplateId()); // 模板编码 faiRecordData.setTemplateId(partAttribute.get(0).getTemplateId()); // 模板编码
faiRecordData.setSamplingLevelNo(partAttribute.get(0).getSamplingLevelNo()); // 检验水平编码
faiRecordData.setSamplingLevelDesc(partAttribute.get(0).getSamplingLevelDesc()); // 检验水平名称
faiRecordData.setSamplingProgrammeNo(partAttribute.get(0).getSamplingProgrammeNo()); // 抽样方案编码
faiRecordData.setSamplingProgrammeDesc(partAttribute.get(0).getSamplingProgrammeDesc()); // 抽样方案名称
faiRecordData.setAql(partAttribute.get(0).getAql()); // aql faiRecordData.setAql(partAttribute.get(0).getAql()); // aql
faiRecordData.setAc(partAttribute.get(0).getAc()); // ac faiRecordData.setAc(partAttribute.get(0).getAc()); // ac
faiRecordData.setRe(partAttribute.get(0).getRe()); // re faiRecordData.setRe(partAttribute.get(0).getRe()); // re
for (int j = 0; j < itemList.size(); j++) {
faiRecordData.setItemNo(itemList.get(j).getItemNo()); // 项目编码
faiRecordData.setItemDesc(itemList.get(j).getItemDesc()); // 项目名称
faiRecordData.setObjectId(itemList.get(j).getObjectID()); // 设备编码
faiRecordData.setObjectDesc(itemList.get(j).getObjectDesc()); // 设备名称
faiRecordData.setDefaultValue(itemList.get(j).getDefaultValue()); // 默认值
faiRecordData.setMinValue(itemList.get(j).getMinValue()); // 最小值
faiRecordData.setMaxValue(itemList.get(j).getMaxValue()); // 最大值
faiRecordData.setValueType(itemList.get(j).getValueType()); // 检测值类型
faiRecordData.setValueTypeDb(itemList.get(j).getValueTypeDb());
if (itemList.get(j).getItemSamplingQuantity() == null) {
faiRecordData.setSamplingQty(data.getSamplingQty()); // 抽样数量
for (QcTemplateData qcTemplateData : itemList) {
faiRecordData.setSamplingQty(null);
faiRecordData.setSamplingLevelNo(qcTemplateData.getSamplingLevelNo()); // 检验水平编码
faiRecordData.setSamplingLevelDesc(qcTemplateData.getSamplingLevelDesc()); // 检验水平名称
faiRecordData.setSamplingProgrammeNo(qcTemplateData.getSamplingProgrammeNo()); // 抽样方案编码
faiRecordData.setSamplingProgrammeDesc(qcTemplateData.getSamplingProgrammeDesc()); // 抽样方案名称
faiRecordData.setItemNo(qcTemplateData.getItemNo()); // 项目编码
faiRecordData.setItemDesc(qcTemplateData.getItemDesc()); // 项目名称
faiRecordData.setObjectId(qcTemplateData.getObjectID()); // 设备编码
faiRecordData.setObjectDesc(qcTemplateData.getObjectDesc()); // 设备名称
faiRecordData.setDefaultValue(qcTemplateData.getDefaultValue()); // 默认值
faiRecordData.setMinValue(qcTemplateData.getMinValue()); // 最小值
faiRecordData.setMaxValue(qcTemplateData.getMaxValue()); // 最大值
faiRecordData.setValueType(qcTemplateData.getValueType()); // 检测值类型
faiRecordData.setValueTypeDb(qcTemplateData.getValueTypeDb());
// 获取抽样数量
// 如果该检验项目有维护抽样方案
if (StringUtils.isNotBlank(qcTemplateData.getSamplingProgrammeNo())) {
QcSamplingInspectionProgrammeData samplingInspectionProgrammeData = new QcSamplingInspectionProgrammeData();
samplingInspectionProgrammeData.setSamplingProgrammeNo(qcTemplateData.getSamplingProgrammeNo());
// 获取抽样方案维护的矩阵详情
List<QcSamplingInspectionProgrammeData> dataList = qcMapper.searchSamplingProgrammeDetails(samplingInspectionProgrammeData);
// 根据抽样方案确定抽样数
for (QcSamplingInspectionProgrammeData programmeData : dataList) {
if (programmeData.getSamplingLevelNo().equals(qcTemplateData.getSamplingLevelNo()) && (data.getRollQty().compareTo(programmeData.getMinQty()) > 0 || data.getRollQty().compareTo(programmeData.getMinQty()) == 0) && (data.getRollQty().compareTo(programmeData.getMaxQty()) < 0 || data.getRollQty().compareTo(programmeData.getMaxQty()) == 0)) {
faiRecordData.setSamplingQty(programmeData.getSamplingQty());
}
}
} else if (qcTemplateData.getItemSamplingQuantity() != null) {
// 没有维护抽样方案再根据默认抽样数来确定
faiRecordData.setSamplingQty(qcTemplateData.getItemSamplingQuantity());
} else if (qcTemplateData.getDefaultSamplingProportion() != null) {
// 也没有维护默认抽样数最后根据默认抽样比例来确定
faiRecordData.setSamplingQty(qcTemplateData.getDefaultSamplingProportion().multiply(data.getRollQty()).divide(new BigDecimal(100), 3, BigDecimal.ROUND_HALF_UP));
} else { } else {
faiRecordData.setSamplingQty(itemList.get(j).getItemSamplingQuantity()); // 抽样数量
// 最后则根据检验单抽样数量赋值
faiRecordData.setSamplingQty(data.getSamplingQty()); // 抽样数量
} }
// 新增FAI明细记录信息 // 新增FAI明细记录信息
qcMapper.saveFAIDetailedRecord(faiRecordData); qcMapper.saveFAIDetailedRecord(faiRecordData);
@ -1610,7 +1629,7 @@ public class QcServiceImpl implements QcService {
} }
partAttribute = qcMapper.selectPartAttributeByOperationAndResource(data.getSite(), partNo, attributeType1, data.getInspectionTypeNo(),operationDesc, resourceId); partAttribute = qcMapper.selectPartAttributeByOperationAndResource(data.getSite(), partNo, attributeType1, data.getInspectionTypeNo(),operationDesc, resourceId);
if (partAttribute.size() > 0) {
if (!partAttribute.isEmpty()) {
// 获取检验周期 // 获取检验周期
if (partAttribute.get(0).getInspectionCycle() != null) { if (partAttribute.get(0).getInspectionCycle() != null) {
data.setInspectionCycle(partAttribute.get(0).getInspectionCycle()); data.setInspectionCycle(partAttribute.get(0).getInspectionCycle());
@ -1647,27 +1666,46 @@ public class QcServiceImpl implements QcService {
faiRecordData.setInspectionNo(data.getInspectionNo()); // 检验单号 faiRecordData.setInspectionNo(data.getInspectionNo()); // 检验单号
faiRecordData.setOrderNo(data.getOrderNo()); // 工单号 faiRecordData.setOrderNo(data.getOrderNo()); // 工单号
faiRecordData.setTemplateId(partAttribute.get(0).getTemplateId()); // 模板编码 faiRecordData.setTemplateId(partAttribute.get(0).getTemplateId()); // 模板编码
faiRecordData.setSamplingLevelNo(partAttribute.get(0).getSamplingLevelNo()); // 检验水平编码
faiRecordData.setSamplingLevelDesc(partAttribute.get(0).getSamplingLevelDesc()); // 检验水平名称
faiRecordData.setSamplingProgrammeNo(partAttribute.get(0).getSamplingProgrammeNo()); // 抽样方案编码
faiRecordData.setSamplingProgrammeDesc(partAttribute.get(0).getSamplingProgrammeDesc()); // 抽样方案名称
faiRecordData.setAql(partAttribute.get(0).getAql()); // aql faiRecordData.setAql(partAttribute.get(0).getAql()); // aql
faiRecordData.setAc(partAttribute.get(0).getAc()); // ac faiRecordData.setAc(partAttribute.get(0).getAc()); // ac
faiRecordData.setRe(partAttribute.get(0).getRe()); // re faiRecordData.setRe(partAttribute.get(0).getRe()); // re
for (int j = 0; j < itemList.size(); j++) {
faiRecordData.setItemNo(itemList.get(j).getItemNo()); // 项目编码
faiRecordData.setItemDesc(itemList.get(j).getItemDesc()); // 项目名称
faiRecordData.setObjectId(itemList.get(j).getObjectID()); // 设备编码
faiRecordData.setObjectDesc(itemList.get(j).getObjectDesc()); // 设备名称
faiRecordData.setDefaultValue(itemList.get(j).getDefaultValue()); // 默认值
faiRecordData.setMinValue(itemList.get(j).getMinValue()); // 最小值
faiRecordData.setMaxValue(itemList.get(j).getMaxValue()); // 最大值
faiRecordData.setValueType(itemList.get(j).getValueType()); // 检测值类型
faiRecordData.setValueTypeDb(itemList.get(j).getValueTypeDb());
if (itemList.get(j).getItemSamplingQuantity() == null) {
faiRecordData.setSamplingQty(data.getSamplingQty()); // 抽样数量
for (QcTemplateData qcTemplateData : itemList) {
faiRecordData.setSamplingQty(null);
faiRecordData.setSamplingLevelNo(qcTemplateData.getSamplingLevelNo()); // 检验水平编码
faiRecordData.setSamplingLevelDesc(qcTemplateData.getSamplingLevelDesc()); // 检验水平名称
faiRecordData.setSamplingProgrammeNo(qcTemplateData.getSamplingProgrammeNo()); // 抽样方案编码
faiRecordData.setSamplingProgrammeDesc(qcTemplateData.getSamplingProgrammeDesc()); // 抽样方案名称
faiRecordData.setItemNo(qcTemplateData.getItemNo()); // 项目编码
faiRecordData.setItemDesc(qcTemplateData.getItemDesc()); // 项目名称
faiRecordData.setObjectId(qcTemplateData.getObjectID()); // 设备编码
faiRecordData.setObjectDesc(qcTemplateData.getObjectDesc()); // 设备名称
faiRecordData.setDefaultValue(qcTemplateData.getDefaultValue()); // 默认值
faiRecordData.setMinValue(qcTemplateData.getMinValue()); // 最小值
faiRecordData.setMaxValue(qcTemplateData.getMaxValue()); // 最大值
faiRecordData.setValueType(qcTemplateData.getValueType()); // 检测值类型
faiRecordData.setValueTypeDb(qcTemplateData.getValueTypeDb());
// 获取抽样数量
// 如果该检验项目有维护抽样方案
if (StringUtils.isNotBlank(qcTemplateData.getSamplingProgrammeNo())) {
QcSamplingInspectionProgrammeData samplingInspectionProgrammeData = new QcSamplingInspectionProgrammeData();
samplingInspectionProgrammeData.setSamplingProgrammeNo(qcTemplateData.getSamplingProgrammeNo());
// 获取抽样方案维护的矩阵详情
List<QcSamplingInspectionProgrammeData> dataList = qcMapper.searchSamplingProgrammeDetails(samplingInspectionProgrammeData);
// 根据抽样方案确定抽样数
for (QcSamplingInspectionProgrammeData programmeData : dataList) {
if (programmeData.getSamplingLevelNo().equals(qcTemplateData.getSamplingLevelNo()) && (data.getRollQty().compareTo(programmeData.getMinQty()) > 0 || data.getRollQty().compareTo(programmeData.getMinQty()) == 0) && (data.getRollQty().compareTo(programmeData.getMaxQty()) < 0 || data.getRollQty().compareTo(programmeData.getMaxQty()) == 0)) {
faiRecordData.setSamplingQty(programmeData.getSamplingQty());
}
}
} else if (qcTemplateData.getItemSamplingQuantity() != null) {
// 没有维护抽样方案再根据默认抽样数来确定
faiRecordData.setSamplingQty(qcTemplateData.getItemSamplingQuantity());
} else if (qcTemplateData.getDefaultSamplingProportion() != null) {
// 也没有维护默认抽样数最后根据默认抽样比例来确定
faiRecordData.setSamplingQty(qcTemplateData.getDefaultSamplingProportion().multiply(data.getRollQty()).divide(new BigDecimal(100), 3, BigDecimal.ROUND_HALF_UP));
} else { } else {
faiRecordData.setSamplingQty(itemList.get(j).getItemSamplingQuantity()); // 抽样数量
// 最后则根据检验单抽样数量赋值
faiRecordData.setSamplingQty(data.getSamplingQty()); // 抽样数量
} }
// 新增FAI明细记录信息 // 新增FAI明细记录信息
qcMapper.saveFAIDetailedRecord(faiRecordData); qcMapper.saveFAIDetailedRecord(faiRecordData);
@ -1678,7 +1716,7 @@ public class QcServiceImpl implements QcService {
String attributeType2 = "B"; String attributeType2 = "B";
// 获取该类别属性下维护的FAI检验模板 // 获取该类别属性下维护的FAI检验模板
List<QcFAIRecordData> familyAttribute = qcMapper.selectPartAttributeByOperationAndResource(data.getSite(), familyId, attributeType2, data.getInspectionTypeNo(),operationDesc, resourceId); List<QcFAIRecordData> familyAttribute = qcMapper.selectPartAttributeByOperationAndResource(data.getSite(), familyId, attributeType2, data.getInspectionTypeNo(),operationDesc, resourceId);
if (familyAttribute.size() > 0) {
if (!familyAttribute.isEmpty()) {
// 获取检验周期 // 获取检验周期
if (familyAttribute.get(0).getInspectionCycle() != null) { if (familyAttribute.get(0).getInspectionCycle() != null) {
data.setInspectionCycle(familyAttribute.get(0).getInspectionCycle()); data.setInspectionCycle(familyAttribute.get(0).getInspectionCycle());
@ -1715,27 +1753,46 @@ public class QcServiceImpl implements QcService {
faiRecordData.setInspectionNo(data.getInspectionNo()); // 检验单号 faiRecordData.setInspectionNo(data.getInspectionNo()); // 检验单号
faiRecordData.setOrderNo(data.getOrderNo()); // 工单号 faiRecordData.setOrderNo(data.getOrderNo()); // 工单号
faiRecordData.setTemplateId(familyAttribute.get(0).getTemplateId()); // 模板编码 faiRecordData.setTemplateId(familyAttribute.get(0).getTemplateId()); // 模板编码
faiRecordData.setSamplingLevelNo(familyAttribute.get(0).getSamplingLevelNo()); // 检验水平编码
faiRecordData.setSamplingLevelDesc(familyAttribute.get(0).getSamplingLevelDesc()); // 检验水平名称
faiRecordData.setSamplingProgrammeNo(familyAttribute.get(0).getSamplingProgrammeNo()); // 抽样方案编码
faiRecordData.setSamplingProgrammeDesc(familyAttribute.get(0).getSamplingProgrammeDesc()); // 抽样方案名称
faiRecordData.setAql(familyAttribute.get(0).getAql()); // aql faiRecordData.setAql(familyAttribute.get(0).getAql()); // aql
faiRecordData.setAc(familyAttribute.get(0).getAc()); // ac faiRecordData.setAc(familyAttribute.get(0).getAc()); // ac
faiRecordData.setRe(familyAttribute.get(0).getRe()); // re faiRecordData.setRe(familyAttribute.get(0).getRe()); // re
for (int j = 0; j < itemList.size(); j++) {
faiRecordData.setItemNo(itemList.get(j).getItemNo()); // 项目编码
faiRecordData.setItemDesc(itemList.get(j).getItemDesc()); // 项目名称
faiRecordData.setObjectId(itemList.get(j).getObjectID()); // 设备编码
faiRecordData.setObjectDesc(itemList.get(j).getObjectDesc()); // 设备名称
faiRecordData.setDefaultValue(itemList.get(j).getDefaultValue()); // 默认值
faiRecordData.setMinValue(itemList.get(j).getMinValue()); // 最小值
faiRecordData.setMaxValue(itemList.get(j).getMaxValue()); // 最大值
faiRecordData.setValueType(itemList.get(j).getValueType()); // 检测值类型
faiRecordData.setValueTypeDb(itemList.get(j).getValueTypeDb());
if (itemList.get(j).getItemSamplingQuantity() == null) {
faiRecordData.setSamplingQty(data.getSamplingQty()); // 抽样数量
for (QcTemplateData qcTemplateData : itemList) {
faiRecordData.setSamplingQty(null);
faiRecordData.setSamplingLevelNo(qcTemplateData.getSamplingLevelNo()); // 检验水平编码
faiRecordData.setSamplingLevelDesc(qcTemplateData.getSamplingLevelDesc()); // 检验水平名称
faiRecordData.setSamplingProgrammeNo(qcTemplateData.getSamplingProgrammeNo()); // 抽样方案编码
faiRecordData.setSamplingProgrammeDesc(qcTemplateData.getSamplingProgrammeDesc()); // 抽样方案名称
faiRecordData.setItemNo(qcTemplateData.getItemNo()); // 项目编码
faiRecordData.setItemDesc(qcTemplateData.getItemDesc()); // 项目名称
faiRecordData.setObjectId(qcTemplateData.getObjectID()); // 设备编码
faiRecordData.setObjectDesc(qcTemplateData.getObjectDesc()); // 设备名称
faiRecordData.setDefaultValue(qcTemplateData.getDefaultValue()); // 默认值
faiRecordData.setMinValue(qcTemplateData.getMinValue()); // 最小值
faiRecordData.setMaxValue(qcTemplateData.getMaxValue()); // 最大值
faiRecordData.setValueType(qcTemplateData.getValueType()); // 检测值类型
faiRecordData.setValueTypeDb(qcTemplateData.getValueTypeDb());
// 获取抽样数量
// 如果该检验项目有维护抽样方案
if (StringUtils.isNotBlank(qcTemplateData.getSamplingProgrammeNo())) {
QcSamplingInspectionProgrammeData samplingInspectionProgrammeData = new QcSamplingInspectionProgrammeData();
samplingInspectionProgrammeData.setSamplingProgrammeNo(qcTemplateData.getSamplingProgrammeNo());
// 获取抽样方案维护的矩阵详情
List<QcSamplingInspectionProgrammeData> dataList = qcMapper.searchSamplingProgrammeDetails(samplingInspectionProgrammeData);
// 根据抽样方案确定抽样数
for (QcSamplingInspectionProgrammeData programmeData : dataList) {
if (programmeData.getSamplingLevelNo().equals(qcTemplateData.getSamplingLevelNo()) && (data.getRollQty().compareTo(programmeData.getMinQty()) > 0 || data.getRollQty().compareTo(programmeData.getMinQty()) == 0) && (data.getRollQty().compareTo(programmeData.getMaxQty()) < 0 || data.getRollQty().compareTo(programmeData.getMaxQty()) == 0)) {
faiRecordData.setSamplingQty(programmeData.getSamplingQty());
}
}
} else if (qcTemplateData.getItemSamplingQuantity() != null) {
// 没有维护抽样方案再根据默认抽样数来确定
faiRecordData.setSamplingQty(qcTemplateData.getItemSamplingQuantity());
} else if (qcTemplateData.getDefaultSamplingProportion() != null) {
// 也没有维护默认抽样数最后根据默认抽样比例来确定
faiRecordData.setSamplingQty(qcTemplateData.getDefaultSamplingProportion().multiply(data.getRollQty()).divide(new BigDecimal(100), 3, BigDecimal.ROUND_HALF_UP));
} else { } else {
faiRecordData.setSamplingQty(itemList.get(j).getItemSamplingQuantity()); // 抽样数量
// 最后则根据检验单抽样数量赋值
faiRecordData.setSamplingQty(data.getSamplingQty()); // 抽样数量
} }
// 新增IPQC明细记录信息 // 新增IPQC明细记录信息
qcMapper.saveFAIDetailedRecord(faiRecordData); qcMapper.saveFAIDetailedRecord(faiRecordData);
@ -2014,27 +2071,46 @@ public class QcServiceImpl implements QcService {
faiRecordData.setInspectionNo(data.getInspectionNo()); // 检验单号 faiRecordData.setInspectionNo(data.getInspectionNo()); // 检验单号
faiRecordData.setOrderNo(data.getOrderNo()); // 工单号 faiRecordData.setOrderNo(data.getOrderNo()); // 工单号
faiRecordData.setTemplateId(partAttribute.get(0).getTemplateId()); // 模板编码 faiRecordData.setTemplateId(partAttribute.get(0).getTemplateId()); // 模板编码
faiRecordData.setSamplingLevelNo(partAttribute.get(0).getSamplingLevelNo()); // 检验水平编码
faiRecordData.setSamplingLevelDesc(partAttribute.get(0).getSamplingLevelDesc()); // 检验水平名称
faiRecordData.setSamplingProgrammeNo(partAttribute.get(0).getSamplingProgrammeNo()); // 抽样方案编码
faiRecordData.setSamplingProgrammeDesc(partAttribute.get(0).getSamplingProgrammeDesc()); // 抽样方案名称
faiRecordData.setAql(partAttribute.get(0).getAql()); // aql faiRecordData.setAql(partAttribute.get(0).getAql()); // aql
faiRecordData.setAc(partAttribute.get(0).getAc()); // ac faiRecordData.setAc(partAttribute.get(0).getAc()); // ac
faiRecordData.setRe(partAttribute.get(0).getRe()); // re faiRecordData.setRe(partAttribute.get(0).getRe()); // re
for (int j = 0; j < itemList.size(); j++) {
faiRecordData.setItemNo(itemList.get(j).getItemNo()); // 项目编码
faiRecordData.setItemDesc(itemList.get(j).getItemDesc()); // 项目名称
faiRecordData.setObjectId(itemList.get(j).getObjectID()); // 设备编码
faiRecordData.setObjectDesc(itemList.get(j).getObjectDesc()); // 设备名称
faiRecordData.setDefaultValue(itemList.get(j).getDefaultValue()); // 默认值
faiRecordData.setMinValue(itemList.get(j).getMinValue()); // 最小值
faiRecordData.setMaxValue(itemList.get(j).getMaxValue()); // 最大值
faiRecordData.setValueType(itemList.get(j).getValueType()); // 检测值类型
faiRecordData.setValueTypeDb(itemList.get(j).getValueTypeDb());
if (itemList.get(j).getItemSamplingQuantity() == null) {
faiRecordData.setSamplingQty(data.getSamplingQty()); // 抽样数量
for (QcTemplateData qcTemplateData : itemList) {
faiRecordData.setSamplingQty(null);
faiRecordData.setSamplingLevelNo(qcTemplateData.getSamplingLevelNo()); // 检验水平编码
faiRecordData.setSamplingLevelDesc(qcTemplateData.getSamplingLevelDesc()); // 检验水平名称
faiRecordData.setSamplingProgrammeNo(qcTemplateData.getSamplingProgrammeNo()); // 抽样方案编码
faiRecordData.setSamplingProgrammeDesc(qcTemplateData.getSamplingProgrammeDesc()); // 抽样方案名称
faiRecordData.setItemNo(qcTemplateData.getItemNo()); // 项目编码
faiRecordData.setItemDesc(qcTemplateData.getItemDesc()); // 项目名称
faiRecordData.setObjectId(qcTemplateData.getObjectID()); // 设备编码
faiRecordData.setObjectDesc(qcTemplateData.getObjectDesc()); // 设备名称
faiRecordData.setDefaultValue(qcTemplateData.getDefaultValue()); // 默认值
faiRecordData.setMinValue(qcTemplateData.getMinValue()); // 最小值
faiRecordData.setMaxValue(qcTemplateData.getMaxValue()); // 最大值
faiRecordData.setValueType(qcTemplateData.getValueType()); // 检测值类型
faiRecordData.setValueTypeDb(qcTemplateData.getValueTypeDb());
// 获取抽样数量
// 如果该检验项目有维护抽样方案
if (StringUtils.isNotBlank(qcTemplateData.getSamplingProgrammeNo())) {
QcSamplingInspectionProgrammeData samplingInspectionProgrammeData = new QcSamplingInspectionProgrammeData();
samplingInspectionProgrammeData.setSamplingProgrammeNo(qcTemplateData.getSamplingProgrammeNo());
// 获取抽样方案维护的矩阵详情
List<QcSamplingInspectionProgrammeData> dataList = qcMapper.searchSamplingProgrammeDetails(samplingInspectionProgrammeData);
// 根据抽样方案确定抽样数
for (QcSamplingInspectionProgrammeData programmeData : dataList) {
if (programmeData.getSamplingLevelNo().equals(qcTemplateData.getSamplingLevelNo()) && (data.getRollQty().compareTo(programmeData.getMinQty()) > 0 || data.getRollQty().compareTo(programmeData.getMinQty()) == 0) && (data.getRollQty().compareTo(programmeData.getMaxQty()) < 0 || data.getRollQty().compareTo(programmeData.getMaxQty()) == 0)) {
faiRecordData.setSamplingQty(programmeData.getSamplingQty());
}
}
} else if (qcTemplateData.getItemSamplingQuantity() != null) {
// 没有维护抽样方案再根据默认抽样数来确定
faiRecordData.setSamplingQty(qcTemplateData.getItemSamplingQuantity());
} else if (qcTemplateData.getDefaultSamplingProportion() != null) {
// 也没有维护默认抽样数最后根据默认抽样比例来确定
faiRecordData.setSamplingQty(qcTemplateData.getDefaultSamplingProportion().multiply(data.getRollQty()).divide(new BigDecimal(100), 3, BigDecimal.ROUND_HALF_UP));
} else { } else {
faiRecordData.setSamplingQty(itemList.get(j).getItemSamplingQuantity()); // 抽样数量
// 最后则根据检验单抽样数量赋值
faiRecordData.setSamplingQty(data.getSamplingQty()); // 抽样数量
} }
// 新增FQC明细记录信息 // 新增FQC明细记录信息
qcMapper.saveFQCDetailedRecord(faiRecordData); qcMapper.saveFQCDetailedRecord(faiRecordData);
@ -2053,7 +2129,7 @@ public class QcServiceImpl implements QcService {
resourceId = data.getResourceId(); resourceId = data.getResourceId();
} }
partAttribute = qcMapper.selectPartAttributeByOperationAndResource(data.getSite(), partNo, attributeType1, data.getInspectionTypeNo(),operationDesc, resourceId); partAttribute = qcMapper.selectPartAttributeByOperationAndResource(data.getSite(), partNo, attributeType1, data.getInspectionTypeNo(),operationDesc, resourceId);
if (partAttribute.size() > 0) {
if (!partAttribute.isEmpty()) {
// 获取检验周期 // 获取检验周期
if (partAttribute.get(0).getInspectionCycle() != null) { if (partAttribute.get(0).getInspectionCycle() != null) {
data.setInspectionCycle(partAttribute.get(0).getInspectionCycle()); data.setInspectionCycle(partAttribute.get(0).getInspectionCycle());
@ -2090,27 +2166,46 @@ public class QcServiceImpl implements QcService {
faiRecordData.setInspectionNo(data.getInspectionNo()); // 检验单号 faiRecordData.setInspectionNo(data.getInspectionNo()); // 检验单号
faiRecordData.setOrderNo(data.getOrderNo()); // 工单号 faiRecordData.setOrderNo(data.getOrderNo()); // 工单号
faiRecordData.setTemplateId(partAttribute.get(0).getTemplateId()); // 模板编码 faiRecordData.setTemplateId(partAttribute.get(0).getTemplateId()); // 模板编码
faiRecordData.setSamplingLevelNo(partAttribute.get(0).getSamplingLevelNo()); // 检验水平编码
faiRecordData.setSamplingLevelDesc(partAttribute.get(0).getSamplingLevelDesc()); // 检验水平名称
faiRecordData.setSamplingProgrammeNo(partAttribute.get(0).getSamplingProgrammeNo()); // 抽样方案编码
faiRecordData.setSamplingProgrammeDesc(partAttribute.get(0).getSamplingProgrammeDesc()); // 抽样方案名称
faiRecordData.setAql(partAttribute.get(0).getAql()); // aql faiRecordData.setAql(partAttribute.get(0).getAql()); // aql
faiRecordData.setAc(partAttribute.get(0).getAc()); // ac faiRecordData.setAc(partAttribute.get(0).getAc()); // ac
faiRecordData.setRe(partAttribute.get(0).getRe()); // re faiRecordData.setRe(partAttribute.get(0).getRe()); // re
for (int j = 0; j < itemList.size(); j++) {
faiRecordData.setItemNo(itemList.get(j).getItemNo()); // 项目编码
faiRecordData.setItemDesc(itemList.get(j).getItemDesc()); // 项目名称
faiRecordData.setObjectId(itemList.get(j).getObjectID()); // 设备编码
faiRecordData.setObjectDesc(itemList.get(j).getObjectDesc()); // 设备名称
faiRecordData.setDefaultValue(itemList.get(j).getDefaultValue()); // 默认值
faiRecordData.setMinValue(itemList.get(j).getMinValue()); // 最小值
faiRecordData.setMaxValue(itemList.get(j).getMaxValue()); // 最大值
faiRecordData.setValueType(itemList.get(j).getValueType()); // 检测值类型
faiRecordData.setValueTypeDb(itemList.get(j).getValueTypeDb());
if (itemList.get(j).getItemSamplingQuantity() == null) {
faiRecordData.setSamplingQty(data.getSamplingQty()); // 抽样数量
for (QcTemplateData qcTemplateData : itemList) {
faiRecordData.setSamplingQty(null);
faiRecordData.setSamplingLevelNo(qcTemplateData.getSamplingLevelNo()); // 检验水平编码
faiRecordData.setSamplingLevelDesc(qcTemplateData.getSamplingLevelDesc()); // 检验水平名称
faiRecordData.setSamplingProgrammeNo(qcTemplateData.getSamplingProgrammeNo()); // 抽样方案编码
faiRecordData.setSamplingProgrammeDesc(qcTemplateData.getSamplingProgrammeDesc()); // 抽样方案名称
faiRecordData.setItemNo(qcTemplateData.getItemNo()); // 项目编码
faiRecordData.setItemDesc(qcTemplateData.getItemDesc()); // 项目名称
faiRecordData.setObjectId(qcTemplateData.getObjectID()); // 设备编码
faiRecordData.setObjectDesc(qcTemplateData.getObjectDesc()); // 设备名称
faiRecordData.setDefaultValue(qcTemplateData.getDefaultValue()); // 默认值
faiRecordData.setMinValue(qcTemplateData.getMinValue()); // 最小值
faiRecordData.setMaxValue(qcTemplateData.getMaxValue()); // 最大值
faiRecordData.setValueType(qcTemplateData.getValueType()); // 检测值类型
faiRecordData.setValueTypeDb(qcTemplateData.getValueTypeDb());
// 获取抽样数量
// 如果该检验项目有维护抽样方案
if (StringUtils.isNotBlank(qcTemplateData.getSamplingProgrammeNo())) {
QcSamplingInspectionProgrammeData samplingInspectionProgrammeData = new QcSamplingInspectionProgrammeData();
samplingInspectionProgrammeData.setSamplingProgrammeNo(qcTemplateData.getSamplingProgrammeNo());
// 获取抽样方案维护的矩阵详情
List<QcSamplingInspectionProgrammeData> dataList = qcMapper.searchSamplingProgrammeDetails(samplingInspectionProgrammeData);
// 根据抽样方案确定抽样数
for (QcSamplingInspectionProgrammeData programmeData : dataList) {
if (programmeData.getSamplingLevelNo().equals(qcTemplateData.getSamplingLevelNo()) && (data.getRollQty().compareTo(programmeData.getMinQty()) > 0 || data.getRollQty().compareTo(programmeData.getMinQty()) == 0) && (data.getRollQty().compareTo(programmeData.getMaxQty()) < 0 || data.getRollQty().compareTo(programmeData.getMaxQty()) == 0)) {
faiRecordData.setSamplingQty(programmeData.getSamplingQty());
}
}
} else if (qcTemplateData.getItemSamplingQuantity() != null) {
// 没有维护抽样方案再根据默认抽样数来确定
faiRecordData.setSamplingQty(qcTemplateData.getItemSamplingQuantity());
} else if (qcTemplateData.getDefaultSamplingProportion() != null) {
// 也没有维护默认抽样数最后根据默认抽样比例来确定
faiRecordData.setSamplingQty(qcTemplateData.getDefaultSamplingProportion().multiply(data.getRollQty()).divide(new BigDecimal(100), 3, BigDecimal.ROUND_HALF_UP));
} else { } else {
faiRecordData.setSamplingQty(itemList.get(j).getItemSamplingQuantity()); // 抽样数量
// 最后则根据检验单抽样数量赋值
faiRecordData.setSamplingQty(data.getSamplingQty()); // 抽样数量
} }
// 新增FQC明细记录信息 // 新增FQC明细记录信息
qcMapper.saveFQCDetailedRecord(faiRecordData); qcMapper.saveFQCDetailedRecord(faiRecordData);
@ -2121,7 +2216,7 @@ public class QcServiceImpl implements QcService {
String attributeType2 = "B"; String attributeType2 = "B";
// 获取该类别属性下维护的FQC检验模板 // 获取该类别属性下维护的FQC检验模板
List<QcFAIRecordData> familyAttribute = qcMapper.selectPartAttributeByOperationAndResource(data.getSite(), familyId, attributeType2, data.getInspectionTypeNo(),operationDesc, resourceId); List<QcFAIRecordData> familyAttribute = qcMapper.selectPartAttributeByOperationAndResource(data.getSite(), familyId, attributeType2, data.getInspectionTypeNo(),operationDesc, resourceId);
if (familyAttribute.size() > 0) {
if (!familyAttribute.isEmpty()) {
// 获取检验周期 // 获取检验周期
if (familyAttribute.get(0).getInspectionCycle() != null) { if (familyAttribute.get(0).getInspectionCycle() != null) {
data.setInspectionCycle(familyAttribute.get(0).getInspectionCycle()); data.setInspectionCycle(familyAttribute.get(0).getInspectionCycle());
@ -2158,27 +2253,46 @@ public class QcServiceImpl implements QcService {
faiRecordData.setInspectionNo(data.getInspectionNo()); // 检验单号 faiRecordData.setInspectionNo(data.getInspectionNo()); // 检验单号
faiRecordData.setOrderNo(data.getOrderNo()); // 工单号 faiRecordData.setOrderNo(data.getOrderNo()); // 工单号
faiRecordData.setTemplateId(familyAttribute.get(0).getTemplateId()); // 模板编码 faiRecordData.setTemplateId(familyAttribute.get(0).getTemplateId()); // 模板编码
faiRecordData.setSamplingLevelNo(familyAttribute.get(0).getSamplingLevelNo()); // 检验水平编码
faiRecordData.setSamplingLevelDesc(familyAttribute.get(0).getSamplingLevelDesc()); // 检验水平名称
faiRecordData.setSamplingProgrammeNo(familyAttribute.get(0).getSamplingProgrammeNo()); // 抽样方案编码
faiRecordData.setSamplingProgrammeDesc(familyAttribute.get(0).getSamplingProgrammeDesc()); // 抽样方案名称
faiRecordData.setAql(familyAttribute.get(0).getAql()); // aql faiRecordData.setAql(familyAttribute.get(0).getAql()); // aql
faiRecordData.setAc(familyAttribute.get(0).getAc()); // ac faiRecordData.setAc(familyAttribute.get(0).getAc()); // ac
faiRecordData.setRe(familyAttribute.get(0).getRe()); // re faiRecordData.setRe(familyAttribute.get(0).getRe()); // re
for (int j = 0; j < itemList.size(); j++) {
faiRecordData.setItemNo(itemList.get(j).getItemNo()); // 项目编码
faiRecordData.setItemDesc(itemList.get(j).getItemDesc()); // 项目名称
faiRecordData.setObjectId(itemList.get(j).getObjectID()); // 设备编码
faiRecordData.setObjectDesc(itemList.get(j).getObjectDesc()); // 设备名称
faiRecordData.setDefaultValue(itemList.get(j).getDefaultValue()); // 默认值
faiRecordData.setMinValue(itemList.get(j).getMinValue()); // 最小值
faiRecordData.setMaxValue(itemList.get(j).getMaxValue()); // 最大值
faiRecordData.setValueType(itemList.get(j).getValueType()); // 检测值类型
faiRecordData.setValueTypeDb(itemList.get(j).getValueTypeDb());
if (itemList.get(j).getItemSamplingQuantity() == null) {
faiRecordData.setSamplingQty(data.getSamplingQty()); // 抽样数量
for (QcTemplateData qcTemplateData : itemList) {
faiRecordData.setSamplingQty(null);
faiRecordData.setSamplingLevelNo(qcTemplateData.getSamplingLevelNo()); // 检验水平编码
faiRecordData.setSamplingLevelDesc(qcTemplateData.getSamplingLevelDesc()); // 检验水平名称
faiRecordData.setSamplingProgrammeNo(qcTemplateData.getSamplingProgrammeNo()); // 抽样方案编码
faiRecordData.setSamplingProgrammeDesc(qcTemplateData.getSamplingProgrammeDesc()); // 抽样方案名称
faiRecordData.setItemNo(qcTemplateData.getItemNo()); // 项目编码
faiRecordData.setItemDesc(qcTemplateData.getItemDesc()); // 项目名称
faiRecordData.setObjectId(qcTemplateData.getObjectID()); // 设备编码
faiRecordData.setObjectDesc(qcTemplateData.getObjectDesc()); // 设备名称
faiRecordData.setDefaultValue(qcTemplateData.getDefaultValue()); // 默认值
faiRecordData.setMinValue(qcTemplateData.getMinValue()); // 最小值
faiRecordData.setMaxValue(qcTemplateData.getMaxValue()); // 最大值
faiRecordData.setValueType(qcTemplateData.getValueType()); // 检测值类型
faiRecordData.setValueTypeDb(qcTemplateData.getValueTypeDb());
// 获取抽样数量
// 如果该检验项目有维护抽样方案
if (StringUtils.isNotBlank(qcTemplateData.getSamplingProgrammeNo())) {
QcSamplingInspectionProgrammeData samplingInspectionProgrammeData = new QcSamplingInspectionProgrammeData();
samplingInspectionProgrammeData.setSamplingProgrammeNo(qcTemplateData.getSamplingProgrammeNo());
// 获取抽样方案维护的矩阵详情
List<QcSamplingInspectionProgrammeData> dataList = qcMapper.searchSamplingProgrammeDetails(samplingInspectionProgrammeData);
// 根据抽样方案确定抽样数
for (QcSamplingInspectionProgrammeData programmeData : dataList) {
if (programmeData.getSamplingLevelNo().equals(qcTemplateData.getSamplingLevelNo()) && (data.getRollQty().compareTo(programmeData.getMinQty()) > 0 || data.getRollQty().compareTo(programmeData.getMinQty()) == 0) && (data.getRollQty().compareTo(programmeData.getMaxQty()) < 0 || data.getRollQty().compareTo(programmeData.getMaxQty()) == 0)) {
faiRecordData.setSamplingQty(programmeData.getSamplingQty());
}
}
} else if (qcTemplateData.getItemSamplingQuantity() != null) {
// 没有维护抽样方案再根据默认抽样数来确定
faiRecordData.setSamplingQty(qcTemplateData.getItemSamplingQuantity());
} else if (qcTemplateData.getDefaultSamplingProportion() != null) {
// 也没有维护默认抽样数最后根据默认抽样比例来确定
faiRecordData.setSamplingQty(qcTemplateData.getDefaultSamplingProportion().multiply(data.getRollQty()).divide(new BigDecimal(100), 3, BigDecimal.ROUND_HALF_UP));
} else { } else {
faiRecordData.setSamplingQty(itemList.get(j).getItemSamplingQuantity()); // 抽样数量
// 最后则根据检验单抽样数量赋值
faiRecordData.setSamplingQty(data.getSamplingQty()); // 抽样数量
} }
// 新增FQC明细记录信息 // 新增FQC明细记录信息
qcMapper.saveFQCDetailedRecord(faiRecordData); qcMapper.saveFQCDetailedRecord(faiRecordData);
@ -2467,27 +2581,46 @@ public class QcServiceImpl implements QcService {
faiRecordData.setInspectionNo(data.getInspectionNo()); // 检验单号 faiRecordData.setInspectionNo(data.getInspectionNo()); // 检验单号
faiRecordData.setOrderNo(data.getOrderNo()); // 工单号 faiRecordData.setOrderNo(data.getOrderNo()); // 工单号
faiRecordData.setTemplateId(partAttribute.get(0).getTemplateId()); // 模板编码 faiRecordData.setTemplateId(partAttribute.get(0).getTemplateId()); // 模板编码
faiRecordData.setSamplingLevelNo(partAttribute.get(0).getSamplingLevelNo()); // 检验水平编码
faiRecordData.setSamplingLevelDesc(partAttribute.get(0).getSamplingLevelDesc()); // 检验水平名称
faiRecordData.setSamplingProgrammeNo(partAttribute.get(0).getSamplingProgrammeNo()); // 抽样方案编码
faiRecordData.setSamplingProgrammeDesc(partAttribute.get(0).getSamplingProgrammeDesc()); // 抽样方案名称
faiRecordData.setAql(partAttribute.get(0).getAql()); // aql faiRecordData.setAql(partAttribute.get(0).getAql()); // aql
faiRecordData.setAc(partAttribute.get(0).getAc()); // ac faiRecordData.setAc(partAttribute.get(0).getAc()); // ac
faiRecordData.setRe(partAttribute.get(0).getRe()); // re faiRecordData.setRe(partAttribute.get(0).getRe()); // re
for (int j = 0; j < itemList.size(); j++) {
faiRecordData.setItemNo(itemList.get(j).getItemNo()); // 项目编码
faiRecordData.setItemDesc(itemList.get(j).getItemDesc()); // 项目名称
faiRecordData.setObjectId(itemList.get(j).getObjectID()); // 设备编码
faiRecordData.setObjectDesc(itemList.get(j).getObjectDesc()); // 设备名称
faiRecordData.setDefaultValue(itemList.get(j).getDefaultValue()); // 默认值
faiRecordData.setMinValue(itemList.get(j).getMinValue()); // 最小值
faiRecordData.setMaxValue(itemList.get(j).getMaxValue()); // 最大值
faiRecordData.setValueType(itemList.get(j).getValueType()); // 检测值类型
faiRecordData.setValueTypeDb(itemList.get(j).getValueTypeDb());
if (itemList.get(j).getItemSamplingQuantity() == null) {
faiRecordData.setSamplingQty(data.getSamplingQty()); // 抽样数量
for (QcTemplateData qcTemplateData : itemList) {
faiRecordData.setSamplingQty(null);
faiRecordData.setSamplingLevelNo(qcTemplateData.getSamplingLevelNo()); // 检验水平编码
faiRecordData.setSamplingLevelDesc(qcTemplateData.getSamplingLevelDesc()); // 检验水平名称
faiRecordData.setSamplingProgrammeNo(qcTemplateData.getSamplingProgrammeNo()); // 抽样方案编码
faiRecordData.setSamplingProgrammeDesc(qcTemplateData.getSamplingProgrammeDesc()); // 抽样方案名称
faiRecordData.setItemNo(qcTemplateData.getItemNo()); // 项目编码
faiRecordData.setItemDesc(qcTemplateData.getItemDesc()); // 项目名称
faiRecordData.setObjectId(qcTemplateData.getObjectID()); // 设备编码
faiRecordData.setObjectDesc(qcTemplateData.getObjectDesc()); // 设备名称
faiRecordData.setDefaultValue(qcTemplateData.getDefaultValue()); // 默认值
faiRecordData.setMinValue(qcTemplateData.getMinValue()); // 最小值
faiRecordData.setMaxValue(qcTemplateData.getMaxValue()); // 最大值
faiRecordData.setValueType(qcTemplateData.getValueType()); // 检测值类型
faiRecordData.setValueTypeDb(qcTemplateData.getValueTypeDb());
// 获取抽样数量
// 如果该检验项目有维护抽样方案
if (StringUtils.isNotBlank(qcTemplateData.getSamplingProgrammeNo())) {
QcSamplingInspectionProgrammeData samplingInspectionProgrammeData = new QcSamplingInspectionProgrammeData();
samplingInspectionProgrammeData.setSamplingProgrammeNo(qcTemplateData.getSamplingProgrammeNo());
// 获取抽样方案维护的矩阵详情
List<QcSamplingInspectionProgrammeData> dataList = qcMapper.searchSamplingProgrammeDetails(samplingInspectionProgrammeData);
// 根据抽样方案确定抽样数
for (QcSamplingInspectionProgrammeData programmeData : dataList) {
if (programmeData.getSamplingLevelNo().equals(qcTemplateData.getSamplingLevelNo()) && (data.getRollQty().compareTo(programmeData.getMinQty()) > 0 || data.getRollQty().compareTo(programmeData.getMinQty()) == 0) && (data.getRollQty().compareTo(programmeData.getMaxQty()) < 0 || data.getRollQty().compareTo(programmeData.getMaxQty()) == 0)) {
faiRecordData.setSamplingQty(programmeData.getSamplingQty());
}
}
} else if (qcTemplateData.getItemSamplingQuantity() != null) {
// 没有维护抽样方案再根据默认抽样数来确定
faiRecordData.setSamplingQty(qcTemplateData.getItemSamplingQuantity());
} else if (qcTemplateData.getDefaultSamplingProportion() != null) {
// 也没有维护默认抽样数最后根据默认抽样比例来确定
faiRecordData.setSamplingQty(qcTemplateData.getDefaultSamplingProportion().multiply(data.getRollQty()).divide(new BigDecimal(100), 3, BigDecimal.ROUND_HALF_UP));
} else { } else {
faiRecordData.setSamplingQty(itemList.get(j).getItemSamplingQuantity()); // 抽样数量
// 最后则根据检验单抽样数量赋值
faiRecordData.setSamplingQty(data.getSamplingQty()); // 抽样数量
} }
// 新增IPQC明细记录信息 // 新增IPQC明细记录信息
qcMapper.saveIPQCDetailedRecord(faiRecordData); qcMapper.saveIPQCDetailedRecord(faiRecordData);
@ -2506,7 +2639,7 @@ public class QcServiceImpl implements QcService {
resourceId = data.getResourceId(); resourceId = data.getResourceId();
} }
partAttribute = qcMapper.selectPartAttributeByOperationAndResource(data.getSite(), partNo, attributeType1, data.getInspectionTypeNo(),operationDesc, resourceId); partAttribute = qcMapper.selectPartAttributeByOperationAndResource(data.getSite(), partNo, attributeType1, data.getInspectionTypeNo(),operationDesc, resourceId);
if (partAttribute.size() > 0) {
if (!partAttribute.isEmpty()) {
// 获取检验周期 // 获取检验周期
if (partAttribute.get(0).getInspectionCycle() != null) { if (partAttribute.get(0).getInspectionCycle() != null) {
data.setInspectionCycle(partAttribute.get(0).getInspectionCycle()); data.setInspectionCycle(partAttribute.get(0).getInspectionCycle());
@ -2544,27 +2677,46 @@ public class QcServiceImpl implements QcService {
faiRecordData.setInspectionNo(data.getInspectionNo()); // 检验单号 faiRecordData.setInspectionNo(data.getInspectionNo()); // 检验单号
faiRecordData.setOrderNo(data.getOrderNo()); // 工单号 faiRecordData.setOrderNo(data.getOrderNo()); // 工单号
faiRecordData.setTemplateId(partAttribute.get(0).getTemplateId()); // 模板编码 faiRecordData.setTemplateId(partAttribute.get(0).getTemplateId()); // 模板编码
faiRecordData.setSamplingLevelNo(partAttribute.get(0).getSamplingLevelNo()); // 检验水平编码
faiRecordData.setSamplingLevelDesc(partAttribute.get(0).getSamplingLevelDesc()); // 检验水平名称
faiRecordData.setSamplingProgrammeNo(partAttribute.get(0).getSamplingProgrammeNo()); // 抽样方案编码
faiRecordData.setSamplingProgrammeDesc(partAttribute.get(0).getSamplingProgrammeDesc()); // 抽样方案名称
faiRecordData.setAql(partAttribute.get(0).getAql()); // aql faiRecordData.setAql(partAttribute.get(0).getAql()); // aql
faiRecordData.setAc(partAttribute.get(0).getAc()); // ac faiRecordData.setAc(partAttribute.get(0).getAc()); // ac
faiRecordData.setRe(partAttribute.get(0).getRe()); // re faiRecordData.setRe(partAttribute.get(0).getRe()); // re
for (int j = 0; j < itemList.size(); j++) {
faiRecordData.setItemNo(itemList.get(j).getItemNo()); // 项目编码
faiRecordData.setItemDesc(itemList.get(j).getItemDesc()); // 项目名称
faiRecordData.setObjectId(itemList.get(j).getObjectID()); // 设备编码
faiRecordData.setObjectDesc(itemList.get(j).getObjectDesc()); // 设备名称
faiRecordData.setDefaultValue(itemList.get(j).getDefaultValue()); // 默认值
faiRecordData.setMinValue(itemList.get(j).getMinValue()); // 最小值
faiRecordData.setMaxValue(itemList.get(j).getMaxValue()); // 最大值
faiRecordData.setValueType(itemList.get(j).getValueType()); // 检测值类型
faiRecordData.setValueTypeDb(itemList.get(j).getValueTypeDb());
if (itemList.get(j).getItemSamplingQuantity() == null) {
faiRecordData.setSamplingQty(data.getSamplingQty()); // 抽样数量
for (QcTemplateData qcTemplateData : itemList) {
faiRecordData.setSamplingQty(null);
faiRecordData.setSamplingLevelNo(qcTemplateData.getSamplingLevelNo()); // 检验水平编码
faiRecordData.setSamplingLevelDesc(qcTemplateData.getSamplingLevelDesc()); // 检验水平名称
faiRecordData.setSamplingProgrammeNo(qcTemplateData.getSamplingProgrammeNo()); // 抽样方案编码
faiRecordData.setSamplingProgrammeDesc(qcTemplateData.getSamplingProgrammeDesc()); // 抽样方案名称
faiRecordData.setItemNo(qcTemplateData.getItemNo()); // 项目编码
faiRecordData.setItemDesc(qcTemplateData.getItemDesc()); // 项目名称
faiRecordData.setObjectId(qcTemplateData.getObjectID()); // 设备编码
faiRecordData.setObjectDesc(qcTemplateData.getObjectDesc()); // 设备名称
faiRecordData.setDefaultValue(qcTemplateData.getDefaultValue()); // 默认值
faiRecordData.setMinValue(qcTemplateData.getMinValue()); // 最小值
faiRecordData.setMaxValue(qcTemplateData.getMaxValue()); // 最大值
faiRecordData.setValueType(qcTemplateData.getValueType()); // 检测值类型
faiRecordData.setValueTypeDb(qcTemplateData.getValueTypeDb());
// 获取抽样数量
// 如果该检验项目有维护抽样方案
if (StringUtils.isNotBlank(qcTemplateData.getSamplingProgrammeNo())) {
QcSamplingInspectionProgrammeData samplingInspectionProgrammeData = new QcSamplingInspectionProgrammeData();
samplingInspectionProgrammeData.setSamplingProgrammeNo(qcTemplateData.getSamplingProgrammeNo());
// 获取抽样方案维护的矩阵详情
List<QcSamplingInspectionProgrammeData> dataList = qcMapper.searchSamplingProgrammeDetails(samplingInspectionProgrammeData);
// 根据抽样方案确定抽样数
for (QcSamplingInspectionProgrammeData programmeData : dataList) {
if (programmeData.getSamplingLevelNo().equals(qcTemplateData.getSamplingLevelNo()) && (data.getRollQty().compareTo(programmeData.getMinQty()) > 0 || data.getRollQty().compareTo(programmeData.getMinQty()) == 0) && (data.getRollQty().compareTo(programmeData.getMaxQty()) < 0 || data.getRollQty().compareTo(programmeData.getMaxQty()) == 0)) {
faiRecordData.setSamplingQty(programmeData.getSamplingQty());
}
}
} else if (qcTemplateData.getItemSamplingQuantity() != null) {
// 没有维护抽样方案再根据默认抽样数来确定
faiRecordData.setSamplingQty(qcTemplateData.getItemSamplingQuantity());
} else if (qcTemplateData.getDefaultSamplingProportion() != null) {
// 也没有维护默认抽样数最后根据默认抽样比例来确定
faiRecordData.setSamplingQty(qcTemplateData.getDefaultSamplingProportion().multiply(data.getRollQty()).divide(new BigDecimal(100), 3, BigDecimal.ROUND_HALF_UP));
} else { } else {
faiRecordData.setSamplingQty(itemList.get(j).getItemSamplingQuantity()); // 抽样数量
// 最后则根据检验单抽样数量赋值
faiRecordData.setSamplingQty(data.getSamplingQty()); // 抽样数量
} }
// 新增IPQC明细记录信息 // 新增IPQC明细记录信息
qcMapper.saveIPQCDetailedRecord(faiRecordData); qcMapper.saveIPQCDetailedRecord(faiRecordData);
@ -2575,7 +2727,7 @@ public class QcServiceImpl implements QcService {
String attributeType2 = "B"; String attributeType2 = "B";
// 获取该类别属性下维护的IPQC检验模板 // 获取该类别属性下维护的IPQC检验模板
List<QcFAIRecordData> familyAttribute = qcMapper.selectPartAttributeByOperationAndResource(data.getSite(), familyId, attributeType2, data.getInspectionTypeNo(),operationDesc, resourceId); List<QcFAIRecordData> familyAttribute = qcMapper.selectPartAttributeByOperationAndResource(data.getSite(), familyId, attributeType2, data.getInspectionTypeNo(),operationDesc, resourceId);
if (familyAttribute.size() > 0) {
if (!familyAttribute.isEmpty()) {
// 获取检验周期 // 获取检验周期
if (familyAttribute.get(0).getInspectionCycle() != null) { if (familyAttribute.get(0).getInspectionCycle() != null) {
data.setInspectionCycle(familyAttribute.get(0).getInspectionCycle()); data.setInspectionCycle(familyAttribute.get(0).getInspectionCycle());
@ -2612,27 +2764,46 @@ public class QcServiceImpl implements QcService {
faiRecordData.setInspectionNo(data.getInspectionNo()); // 检验单号 faiRecordData.setInspectionNo(data.getInspectionNo()); // 检验单号
faiRecordData.setOrderNo(data.getOrderNo()); // 工单号 faiRecordData.setOrderNo(data.getOrderNo()); // 工单号
faiRecordData.setTemplateId(familyAttribute.get(0).getTemplateId()); // 模板编码 faiRecordData.setTemplateId(familyAttribute.get(0).getTemplateId()); // 模板编码
faiRecordData.setSamplingLevelNo(familyAttribute.get(0).getSamplingLevelNo()); // 检验水平编码
faiRecordData.setSamplingLevelDesc(familyAttribute.get(0).getSamplingLevelDesc()); // 检验水平名称
faiRecordData.setSamplingProgrammeNo(familyAttribute.get(0).getSamplingProgrammeNo()); // 抽样方案编码
faiRecordData.setSamplingProgrammeDesc(familyAttribute.get(0).getSamplingProgrammeDesc()); // 抽样方案名称
faiRecordData.setAql(familyAttribute.get(0).getAql()); // aql faiRecordData.setAql(familyAttribute.get(0).getAql()); // aql
faiRecordData.setAc(familyAttribute.get(0).getAc()); // ac faiRecordData.setAc(familyAttribute.get(0).getAc()); // ac
faiRecordData.setRe(familyAttribute.get(0).getRe()); // re faiRecordData.setRe(familyAttribute.get(0).getRe()); // re
for (int j = 0; j < itemList.size(); j++) {
faiRecordData.setItemNo(itemList.get(j).getItemNo()); // 项目编码
faiRecordData.setItemDesc(itemList.get(j).getItemDesc()); // 项目名称
faiRecordData.setObjectId(itemList.get(j).getObjectID()); // 设备编码
faiRecordData.setObjectDesc(itemList.get(j).getObjectDesc()); // 设备名称
faiRecordData.setDefaultValue(itemList.get(j).getDefaultValue()); // 默认值
faiRecordData.setMinValue(itemList.get(j).getMinValue()); // 最小值
faiRecordData.setMaxValue(itemList.get(j).getMaxValue()); // 最大值
faiRecordData.setValueType(itemList.get(j).getValueType()); // 检测值类型
faiRecordData.setValueTypeDb(itemList.get(j).getValueTypeDb());
if (itemList.get(j).getItemSamplingQuantity() == null) {
faiRecordData.setSamplingQty(data.getSamplingQty()); // 抽样数量
for (QcTemplateData qcTemplateData : itemList) {
faiRecordData.setSamplingQty(null);
faiRecordData.setSamplingLevelNo(qcTemplateData.getSamplingLevelNo()); // 检验水平编码
faiRecordData.setSamplingLevelDesc(qcTemplateData.getSamplingLevelDesc()); // 检验水平名称
faiRecordData.setSamplingProgrammeNo(qcTemplateData.getSamplingProgrammeNo()); // 抽样方案编码
faiRecordData.setSamplingProgrammeDesc(qcTemplateData.getSamplingProgrammeDesc()); // 抽样方案名称
faiRecordData.setItemNo(qcTemplateData.getItemNo()); // 项目编码
faiRecordData.setItemDesc(qcTemplateData.getItemDesc()); // 项目名称
faiRecordData.setObjectId(qcTemplateData.getObjectID()); // 设备编码
faiRecordData.setObjectDesc(qcTemplateData.getObjectDesc()); // 设备名称
faiRecordData.setDefaultValue(qcTemplateData.getDefaultValue()); // 默认值
faiRecordData.setMinValue(qcTemplateData.getMinValue()); // 最小值
faiRecordData.setMaxValue(qcTemplateData.getMaxValue()); // 最大值
faiRecordData.setValueType(qcTemplateData.getValueType()); // 检测值类型
faiRecordData.setValueTypeDb(qcTemplateData.getValueTypeDb());
// 获取抽样数量
// 如果该检验项目有维护抽样方案
if (StringUtils.isNotBlank(qcTemplateData.getSamplingProgrammeNo())) {
QcSamplingInspectionProgrammeData samplingInspectionProgrammeData = new QcSamplingInspectionProgrammeData();
samplingInspectionProgrammeData.setSamplingProgrammeNo(qcTemplateData.getSamplingProgrammeNo());
// 获取抽样方案维护的矩阵详情
List<QcSamplingInspectionProgrammeData> dataList = qcMapper.searchSamplingProgrammeDetails(samplingInspectionProgrammeData);
// 根据抽样方案确定抽样数
for (QcSamplingInspectionProgrammeData programmeData : dataList) {
if (programmeData.getSamplingLevelNo().equals(qcTemplateData.getSamplingLevelNo()) && (data.getRollQty().compareTo(programmeData.getMinQty()) > 0 || data.getRollQty().compareTo(programmeData.getMinQty()) == 0) && (data.getRollQty().compareTo(programmeData.getMaxQty()) < 0 || data.getRollQty().compareTo(programmeData.getMaxQty()) == 0)) {
faiRecordData.setSamplingQty(programmeData.getSamplingQty());
}
}
} else if (qcTemplateData.getItemSamplingQuantity() != null) {
// 没有维护抽样方案再根据默认抽样数来确定
faiRecordData.setSamplingQty(qcTemplateData.getItemSamplingQuantity());
} else if (qcTemplateData.getDefaultSamplingProportion() != null) {
// 也没有维护默认抽样数最后根据默认抽样比例来确定
faiRecordData.setSamplingQty(qcTemplateData.getDefaultSamplingProportion().multiply(data.getRollQty()).divide(new BigDecimal(100), 3, BigDecimal.ROUND_HALF_UP));
} else { } else {
faiRecordData.setSamplingQty(itemList.get(j).getItemSamplingQuantity()); // 抽样数量
// 最后则根据检验单抽样数量赋值
faiRecordData.setSamplingQty(data.getSamplingQty()); // 抽样数量
} }
// 新增IPQC明细记录信息 // 新增IPQC明细记录信息
qcMapper.saveIPQCDetailedRecord(faiRecordData); qcMapper.saveIPQCDetailedRecord(faiRecordData);
@ -2920,7 +3091,7 @@ public class QcServiceImpl implements QcService {
String attributeType1 = "A"; String attributeType1 = "A";
// 获取该物料属性下维护的IQC检验模板 // 获取该物料属性下维护的IQC检验模板
List<QcFAIRecordData> partAttribute = qcMapper.selectPartAttributeByPartNo(data.getSite(), partNo, attributeType1, qcFAIRecordData.getInspectionTypeNo(), supplierNo); List<QcFAIRecordData> partAttribute = qcMapper.selectPartAttributeByPartNo(data.getSite(), partNo, attributeType1, qcFAIRecordData.getInspectionTypeNo(), supplierNo);
if (partAttribute.size() > 0) {
if (!partAttribute.isEmpty()) {
// 检验周期 // 检验周期
if (partAttribute.get(0).getInspectionCycle() != null) { if (partAttribute.get(0).getInspectionCycle() != null) {
qcFAIRecordData.setInspectionCycle(partAttribute.get(0).getInspectionCycle()); qcFAIRecordData.setInspectionCycle(partAttribute.get(0).getInspectionCycle());
@ -2983,7 +3154,7 @@ public class QcServiceImpl implements QcService {
String attributeType2 = "B"; String attributeType2 = "B";
// 获取该类别属性下维护的IQC检验模板 // 获取该类别属性下维护的IQC检验模板
List<QcFAIRecordData> familyAttribute = qcMapper.selectPartAttributeByPartNo(data.getSite(), familyId, attributeType2, qcFAIRecordData.getInspectionTypeNo(), supplierNo); List<QcFAIRecordData> familyAttribute = qcMapper.selectPartAttributeByPartNo(data.getSite(), familyId, attributeType2, qcFAIRecordData.getInspectionTypeNo(), supplierNo);
if (familyAttribute.size() > 0) {
if (!familyAttribute.isEmpty()) {
// 获取检验周期 // 获取检验周期
if (familyAttribute.get(0).getInspectionCycle() != null) { if (familyAttribute.get(0).getInspectionCycle() != null) {
qcFAIRecordData.setInspectionCycle(familyAttribute.get(0).getInspectionCycle()); qcFAIRecordData.setInspectionCycle(familyAttribute.get(0).getInspectionCycle());

51
src/main/resources/mapper/pms/QcMapper.xml

@ -100,11 +100,18 @@
qm.method_remark, qm.method_remark,
epi.inspection_type_no, epi.inspection_type_no,
qit.inspection_type_name, qit.inspection_type_name,
epi.item_sampling_quantity
epi.item_sampling_quantity,
epi.sampling_programme_no,
qsip.sampling_programme_desc,
epi.sampling_level_no,
qsil.sampling_level_desc,
epi.default_sampling_proportion
FROM eam_properties_item as epi FROM eam_properties_item as epi
LEFT JOIN qc_method_item as qmi on epi.ItemNo = qmi.ItemNo and epi.site = qmi.site LEFT JOIN qc_method_item as qmi on epi.ItemNo = qmi.ItemNo and epi.site = qmi.site
LEFT JOIN qc_method as qm on qmi.method_no = qm.method_no and qmi.site = qm.site LEFT JOIN qc_method as qm on qmi.method_no = qm.method_no and qmi.site = qm.site
LEFT JOIN qc_inspection_type as qit on qit.inspection_type_no = epi.inspection_type_no and qit.site = epi.site LEFT JOIN qc_inspection_type as qit on qit.inspection_type_no = epi.inspection_type_no and qit.site = epi.site
left join qc_sampling_inspection_programme as qsip on qsip.site = epi.site and qsip.sampling_programme_no = epi.sampling_programme_no
left join qc_sampling_inspection_level as qsil on qsil.site = epi.site and qsil.sampling_level_no = epi.sampling_level_no
<where> <where>
epi.site = #{query.site} epi.site = #{query.site}
and epi.ItemType = #{query.itemType} and epi.ItemType = #{query.itemType}
@ -138,8 +145,8 @@
<!-- 新增检验项目 --> <!-- 新增检验项目 -->
<insert id="qcItemSave" parameterType="QcItemData"> <insert id="qcItemSave" parameterType="QcItemData">
INSERT INTO eam_properties_item (site, ItemNo, ItemDesc, DefaultValue, ValueType, ValueType_DB, ValueChooseFlag, CreatedDate, CreatedBy, MaxValue, MinValue, ItemRemark, ItemType, update_date, update_by, inspection_type_no, item_sampling_quantity)
VALUES (#{site}, #{itemNo}, #{itemDesc}, #{defaultValue}, #{valueType}, #{valueTypeDb}, #{valueChooseFlag}, GetDate(), #{createdBy}, #{maxValue,jdbcType=DECIMAL}, #{minValue,jdbcType=DECIMAL}, #{itemRemark}, #{itemType}, getDate(), #{updateBy}, #{inspectionTypeNo}, #{itemSamplingQuantity})
INSERT INTO eam_properties_item (site, ItemNo, ItemDesc, DefaultValue, ValueType, ValueType_DB, ValueChooseFlag, CreatedDate, CreatedBy, MaxValue, MinValue, ItemRemark, ItemType, update_date, update_by, inspection_type_no, item_sampling_quantity, sampling_programme_no, sampling_level_no, default_sampling_proportion)
VALUES (#{site}, #{itemNo}, #{itemDesc}, #{defaultValue}, #{valueType}, #{valueTypeDb}, #{valueChooseFlag}, GetDate(), #{createdBy}, #{maxValue,jdbcType=DECIMAL}, #{minValue,jdbcType=DECIMAL}, #{itemRemark}, #{itemType}, getDate(), #{updateBy}, #{inspectionTypeNo}, #{itemSamplingQuantity}, #{samplingProgrammeNo}, #{samplingLevelNo}, #{defaultSamplingProportion})
</insert> </insert>
<!-- 新增项目里的方法 --> <!-- 新增项目里的方法 -->
@ -162,7 +169,10 @@
update_date = getDate(), update_date = getDate(),
update_by = #{updateBy}, update_by = #{updateBy},
inspection_type_no = #{inspectionTypeNo}, inspection_type_no = #{inspectionTypeNo},
item_sampling_quantity = #{itemSamplingQuantity}
item_sampling_quantity = #{itemSamplingQuantity},
sampling_programme_no = #{samplingProgrammeNo},
sampling_level_no = #{samplingLevelNo},
default_sampling_proportion = #{defaultSamplingProportion}
WHERE site = #{site} and ItemNo = #{itemNo} and ItemType = #{itemType} WHERE site = #{site} and ItemNo = #{itemNo} and ItemType = #{itemType}
</update> </update>
@ -439,9 +449,16 @@
b.ItemType, b.ItemType,
a.object_id, a.object_id,
eo.objectDesc, eo.objectDesc,
b.item_sampling_quantity
b.item_sampling_quantity,
b.sampling_programme_no,
c.sampling_programme_desc,
b.sampling_level_no,
d.sampling_level_desc,
b.default_sampling_proportion
FROM qc_template_detailed a FROM qc_template_detailed a
LEFT JOIN eam_properties_item b ON a.ItemNo = b.ItemNo and a.site = b.site LEFT JOIN eam_properties_item b ON a.ItemNo = b.ItemNo and a.site = b.site
left join qc_sampling_inspection_programme as c on b.site = c.site and b.sampling_programme_no = c.sampling_programme_no
left join qc_sampling_inspection_level as d on b.site = d.site and b.sampling_level_no = d.sampling_level_no
LEFT JOIN eam_object eo ON a.object_id = eo.ObjectID and a.site = b.site LEFT JOIN eam_object eo ON a.object_id = eo.ObjectID and a.site = b.site
WHERE a.template_id = #{templateId} AND b.ItemType = #{itemType} and a.site = #{site} WHERE a.template_id = #{templateId} AND b.ItemType = #{itemType} and a.site = #{site}
</select> </select>
@ -1512,6 +1529,15 @@
<if test = "query.inspectionNo != null and query.inspectionNo != ''"> <if test = "query.inspectionNo != null and query.inspectionNo != ''">
AND inspection_no LIKE '%' + #{query.inspectionNo} + '%' AND inspection_no LIKE '%' + #{query.inspectionNo} + '%'
</if> </if>
<if test = "query.partNo != null and query.partNo != ''">
AND part_no LIKE '%' + #{query.partNo} + '%'
</if>
<if test = "query.partDesc != null and query.partDesc != ''">
AND dbo.qc_get_part_desc(part_no) LIKE '%' + #{query.partDesc} + '%'
</if>
<if test = "query.disposalMeasures != null and query.disposalMeasures != ''">
AND disposal_measures LIKE '%' + #{query.disposalMeasures} + '%'
</if>
<if test = "query.state != null and query.state != ''"> <if test = "query.state != null and query.state != ''">
AND state = #{query.state} AND state = #{query.state}
</if> </if>
@ -1805,6 +1831,9 @@
<if test = "query.partNo != null and query.partNo != ''"> <if test = "query.partNo != null and query.partNo != ''">
AND part_no LIKE '%' + #{query.partNo} + '%' AND part_no LIKE '%' + #{query.partNo} + '%'
</if> </if>
<if test = "query.partDesc != null and query.partDesc != ''">
AND dbo.qc_get_part_desc(part_no) LIKE '%' + #{query.partDesc} + '%'
</if>
<if test = "query.state != null and query.state != ''"> <if test = "query.state != null and query.state != ''">
AND state = #{query.state} AND state = #{query.state}
</if> </if>
@ -1814,6 +1843,9 @@
<if test = "query.inspectionResult != null and query.inspectionResult != ''"> <if test = "query.inspectionResult != null and query.inspectionResult != ''">
AND inspection_result = #{query.inspectionResult} AND inspection_result = #{query.inspectionResult}
</if> </if>
<if test = "query.disposalMeasures != null and query.disposalMeasures != ''">
AND disposal_measures LIKE '%' + #{query.disposalMeasures} + '%'
</if>
<if test = "query.orderNo != null and query.orderNo != ''"> <if test = "query.orderNo != null and query.orderNo != ''">
AND order_no LIKE '%' + #{query.orderNo} + '%' AND order_no LIKE '%' + #{query.orderNo} + '%'
</if> </if>
@ -2419,6 +2451,15 @@
<if test = "query.inspectionNo != null and query.inspectionNo != ''"> <if test = "query.inspectionNo != null and query.inspectionNo != ''">
AND inspection_no LIKE '%' + #{query.inspectionNo} + '%' AND inspection_no LIKE '%' + #{query.inspectionNo} + '%'
</if> </if>
<if test = "query.partNo != null and query.partNo != ''">
AND part_no LIKE '%' + #{query.partNo} + '%'
</if>
<if test = "query.partDesc != null and query.partDesc != ''">
AND dbo.qc_get_part_desc(part_no) LIKE '%' + #{query.partDesc} + '%'
</if>
<if test = "query.disposalMeasures != null and query.disposalMeasures != ''">
AND disposal_measures LIKE '%' + #{query.disposalMeasures} + '%'
</if>
<if test = "query.state != null and query.state != ''"> <if test = "query.state != null and query.state != ''">
AND state = #{query.state} AND state = #{query.state}
</if> </if>

Loading…
Cancel
Save