From 156bc00d6262128bcfebb18a810ddb8d18ace185 Mon Sep 17 00:00:00 2001 From: fengyuan_yang <1976974459@qq.com> Date: Wed, 13 Dec 2023 13:58:35 +0800 Subject: [PATCH] =?UTF-8?q?2023-12-13=20=E6=A3=80=E9=AA=8C=E9=A1=B9?= =?UTF-8?q?=E7=9B=AE=E4=B8=AD=E5=A2=9E=E5=8A=A0=E2=80=9C=E6=8A=BD=E6=A0=B7?= =?UTF-8?q?=E6=96=B9=E6=A1=88=E3=80=81=E9=BB=98=E8=AE=A4=E6=8A=BD=E6=A0=B7?= =?UTF-8?q?=E6=AF=94=E4=BE=8B=E2=80=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sys/modules/pms/data/QcItemData.java | 50 ++ .../pms/service/Impl/QcServiceImpl.java | 493 ++++++++++++------ src/main/resources/mapper/pms/QcMapper.xml | 51 +- 3 files changed, 428 insertions(+), 166 deletions(-) diff --git a/src/main/java/com/xujie/sys/modules/pms/data/QcItemData.java b/src/main/java/com/xujie/sys/modules/pms/data/QcItemData.java index 0ec875fc..1c100bb0 100644 --- a/src/main/java/com/xujie/sys/modules/pms/data/QcItemData.java +++ b/src/main/java/com/xujie/sys/modules/pms/data/QcItemData.java @@ -59,6 +59,56 @@ public class QcItemData extends QueryPage { private String inspectionTypeName; // 项目抽样数 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() { return itemSamplingQuantity; diff --git a/src/main/java/com/xujie/sys/modules/pms/service/Impl/QcServiceImpl.java b/src/main/java/com/xujie/sys/modules/pms/service/Impl/QcServiceImpl.java index d1780727..df5c7c4b 100644 --- a/src/main/java/com/xujie/sys/modules/pms/service/Impl/QcServiceImpl.java +++ b/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.setOrderNo(data.getOrderNo()); // 工单号 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.setAc(partAttribute.get(0).getAc()); // ac 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 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 { - faiRecordData.setSamplingQty(itemList.get(j).getItemSamplingQuantity()); // 抽样数量 + // 最后则根据检验单抽样数量赋值 + faiRecordData.setSamplingQty(data.getSamplingQty()); // 抽样数量 } // 新增FAI明细记录信息 qcMapper.saveFAIDetailedRecord(faiRecordData); @@ -1610,7 +1629,7 @@ public class QcServiceImpl implements QcService { } partAttribute = qcMapper.selectPartAttributeByOperationAndResource(data.getSite(), partNo, attributeType1, data.getInspectionTypeNo(),operationDesc, resourceId); - if (partAttribute.size() > 0) { + if (!partAttribute.isEmpty()) { // 获取检验周期 if (partAttribute.get(0).getInspectionCycle() != null) { data.setInspectionCycle(partAttribute.get(0).getInspectionCycle()); @@ -1647,27 +1666,46 @@ public class QcServiceImpl implements QcService { faiRecordData.setInspectionNo(data.getInspectionNo()); // 检验单号 faiRecordData.setOrderNo(data.getOrderNo()); // 工单号 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.setAc(partAttribute.get(0).getAc()); // ac 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 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 { - faiRecordData.setSamplingQty(itemList.get(j).getItemSamplingQuantity()); // 抽样数量 + // 最后则根据检验单抽样数量赋值 + faiRecordData.setSamplingQty(data.getSamplingQty()); // 抽样数量 } // 新增FAI明细记录信息 qcMapper.saveFAIDetailedRecord(faiRecordData); @@ -1678,7 +1716,7 @@ public class QcServiceImpl implements QcService { String attributeType2 = "B"; // 获取该类别属性下维护的FAI检验模板 List familyAttribute = qcMapper.selectPartAttributeByOperationAndResource(data.getSite(), familyId, attributeType2, data.getInspectionTypeNo(),operationDesc, resourceId); - if (familyAttribute.size() > 0) { + if (!familyAttribute.isEmpty()) { // 获取检验周期 if (familyAttribute.get(0).getInspectionCycle() != null) { data.setInspectionCycle(familyAttribute.get(0).getInspectionCycle()); @@ -1715,27 +1753,46 @@ public class QcServiceImpl implements QcService { faiRecordData.setInspectionNo(data.getInspectionNo()); // 检验单号 faiRecordData.setOrderNo(data.getOrderNo()); // 工单号 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.setAc(familyAttribute.get(0).getAc()); // ac 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 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 { - faiRecordData.setSamplingQty(itemList.get(j).getItemSamplingQuantity()); // 抽样数量 + // 最后则根据检验单抽样数量赋值 + faiRecordData.setSamplingQty(data.getSamplingQty()); // 抽样数量 } // 新增IPQC明细记录信息 qcMapper.saveFAIDetailedRecord(faiRecordData); @@ -2014,27 +2071,46 @@ public class QcServiceImpl implements QcService { faiRecordData.setInspectionNo(data.getInspectionNo()); // 检验单号 faiRecordData.setOrderNo(data.getOrderNo()); // 工单号 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.setAc(partAttribute.get(0).getAc()); // ac 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 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 { - faiRecordData.setSamplingQty(itemList.get(j).getItemSamplingQuantity()); // 抽样数量 + // 最后则根据检验单抽样数量赋值 + faiRecordData.setSamplingQty(data.getSamplingQty()); // 抽样数量 } // 新增FQC明细记录信息 qcMapper.saveFQCDetailedRecord(faiRecordData); @@ -2053,7 +2129,7 @@ public class QcServiceImpl implements QcService { resourceId = data.getResourceId(); } partAttribute = qcMapper.selectPartAttributeByOperationAndResource(data.getSite(), partNo, attributeType1, data.getInspectionTypeNo(),operationDesc, resourceId); - if (partAttribute.size() > 0) { + if (!partAttribute.isEmpty()) { // 获取检验周期 if (partAttribute.get(0).getInspectionCycle() != null) { data.setInspectionCycle(partAttribute.get(0).getInspectionCycle()); @@ -2090,27 +2166,46 @@ public class QcServiceImpl implements QcService { faiRecordData.setInspectionNo(data.getInspectionNo()); // 检验单号 faiRecordData.setOrderNo(data.getOrderNo()); // 工单号 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.setAc(partAttribute.get(0).getAc()); // ac 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 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 { - faiRecordData.setSamplingQty(itemList.get(j).getItemSamplingQuantity()); // 抽样数量 + // 最后则根据检验单抽样数量赋值 + faiRecordData.setSamplingQty(data.getSamplingQty()); // 抽样数量 } // 新增FQC明细记录信息 qcMapper.saveFQCDetailedRecord(faiRecordData); @@ -2121,7 +2216,7 @@ public class QcServiceImpl implements QcService { String attributeType2 = "B"; // 获取该类别属性下维护的FQC检验模板 List familyAttribute = qcMapper.selectPartAttributeByOperationAndResource(data.getSite(), familyId, attributeType2, data.getInspectionTypeNo(),operationDesc, resourceId); - if (familyAttribute.size() > 0) { + if (!familyAttribute.isEmpty()) { // 获取检验周期 if (familyAttribute.get(0).getInspectionCycle() != null) { data.setInspectionCycle(familyAttribute.get(0).getInspectionCycle()); @@ -2158,27 +2253,46 @@ public class QcServiceImpl implements QcService { faiRecordData.setInspectionNo(data.getInspectionNo()); // 检验单号 faiRecordData.setOrderNo(data.getOrderNo()); // 工单号 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.setAc(familyAttribute.get(0).getAc()); // ac 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 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 { - faiRecordData.setSamplingQty(itemList.get(j).getItemSamplingQuantity()); // 抽样数量 + // 最后则根据检验单抽样数量赋值 + faiRecordData.setSamplingQty(data.getSamplingQty()); // 抽样数量 } // 新增FQC明细记录信息 qcMapper.saveFQCDetailedRecord(faiRecordData); @@ -2467,27 +2581,46 @@ public class QcServiceImpl implements QcService { faiRecordData.setInspectionNo(data.getInspectionNo()); // 检验单号 faiRecordData.setOrderNo(data.getOrderNo()); // 工单号 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.setAc(partAttribute.get(0).getAc()); // ac 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 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 { - faiRecordData.setSamplingQty(itemList.get(j).getItemSamplingQuantity()); // 抽样数量 + // 最后则根据检验单抽样数量赋值 + faiRecordData.setSamplingQty(data.getSamplingQty()); // 抽样数量 } // 新增IPQC明细记录信息 qcMapper.saveIPQCDetailedRecord(faiRecordData); @@ -2506,7 +2639,7 @@ public class QcServiceImpl implements QcService { resourceId = data.getResourceId(); } partAttribute = qcMapper.selectPartAttributeByOperationAndResource(data.getSite(), partNo, attributeType1, data.getInspectionTypeNo(),operationDesc, resourceId); - if (partAttribute.size() > 0) { + if (!partAttribute.isEmpty()) { // 获取检验周期 if (partAttribute.get(0).getInspectionCycle() != null) { data.setInspectionCycle(partAttribute.get(0).getInspectionCycle()); @@ -2544,27 +2677,46 @@ public class QcServiceImpl implements QcService { faiRecordData.setInspectionNo(data.getInspectionNo()); // 检验单号 faiRecordData.setOrderNo(data.getOrderNo()); // 工单号 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.setAc(partAttribute.get(0).getAc()); // ac 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 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 { - faiRecordData.setSamplingQty(itemList.get(j).getItemSamplingQuantity()); // 抽样数量 + // 最后则根据检验单抽样数量赋值 + faiRecordData.setSamplingQty(data.getSamplingQty()); // 抽样数量 } // 新增IPQC明细记录信息 qcMapper.saveIPQCDetailedRecord(faiRecordData); @@ -2575,7 +2727,7 @@ public class QcServiceImpl implements QcService { String attributeType2 = "B"; // 获取该类别属性下维护的IPQC检验模板 List familyAttribute = qcMapper.selectPartAttributeByOperationAndResource(data.getSite(), familyId, attributeType2, data.getInspectionTypeNo(),operationDesc, resourceId); - if (familyAttribute.size() > 0) { + if (!familyAttribute.isEmpty()) { // 获取检验周期 if (familyAttribute.get(0).getInspectionCycle() != null) { data.setInspectionCycle(familyAttribute.get(0).getInspectionCycle()); @@ -2612,27 +2764,46 @@ public class QcServiceImpl implements QcService { faiRecordData.setInspectionNo(data.getInspectionNo()); // 检验单号 faiRecordData.setOrderNo(data.getOrderNo()); // 工单号 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.setAc(familyAttribute.get(0).getAc()); // ac 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 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 { - faiRecordData.setSamplingQty(itemList.get(j).getItemSamplingQuantity()); // 抽样数量 + // 最后则根据检验单抽样数量赋值 + faiRecordData.setSamplingQty(data.getSamplingQty()); // 抽样数量 } // 新增IPQC明细记录信息 qcMapper.saveIPQCDetailedRecord(faiRecordData); @@ -2920,7 +3091,7 @@ public class QcServiceImpl implements QcService { String attributeType1 = "A"; // 获取该物料属性下维护的IQC检验模板 List partAttribute = qcMapper.selectPartAttributeByPartNo(data.getSite(), partNo, attributeType1, qcFAIRecordData.getInspectionTypeNo(), supplierNo); - if (partAttribute.size() > 0) { + if (!partAttribute.isEmpty()) { // 检验周期 if (partAttribute.get(0).getInspectionCycle() != null) { qcFAIRecordData.setInspectionCycle(partAttribute.get(0).getInspectionCycle()); @@ -2983,7 +3154,7 @@ public class QcServiceImpl implements QcService { String attributeType2 = "B"; // 获取该类别属性下维护的IQC检验模板 List familyAttribute = qcMapper.selectPartAttributeByPartNo(data.getSite(), familyId, attributeType2, qcFAIRecordData.getInspectionTypeNo(), supplierNo); - if (familyAttribute.size() > 0) { + if (!familyAttribute.isEmpty()) { // 获取检验周期 if (familyAttribute.get(0).getInspectionCycle() != null) { qcFAIRecordData.setInspectionCycle(familyAttribute.get(0).getInspectionCycle()); diff --git a/src/main/resources/mapper/pms/QcMapper.xml b/src/main/resources/mapper/pms/QcMapper.xml index cf202873..dd8c45da 100644 --- a/src/main/resources/mapper/pms/QcMapper.xml +++ b/src/main/resources/mapper/pms/QcMapper.xml @@ -100,11 +100,18 @@ qm.method_remark, epi.inspection_type_no, 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 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_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 epi.site = #{query.site} and epi.ItemType = #{query.itemType} @@ -138,8 +145,8 @@ - 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}) @@ -162,7 +169,10 @@ update_date = getDate(), update_by = #{updateBy}, 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} @@ -439,9 +449,16 @@ b.ItemType, a.object_id, 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 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 WHERE a.template_id = #{templateId} AND b.ItemType = #{itemType} and a.site = #{site} @@ -1512,6 +1529,15 @@ AND inspection_no LIKE '%' + #{query.inspectionNo} + '%' + + AND part_no LIKE '%' + #{query.partNo} + '%' + + + AND dbo.qc_get_part_desc(part_no) LIKE '%' + #{query.partDesc} + '%' + + + AND disposal_measures LIKE '%' + #{query.disposalMeasures} + '%' + AND state = #{query.state} @@ -1805,6 +1831,9 @@ AND part_no LIKE '%' + #{query.partNo} + '%' + + AND dbo.qc_get_part_desc(part_no) LIKE '%' + #{query.partDesc} + '%' + AND state = #{query.state} @@ -1814,6 +1843,9 @@ AND inspection_result = #{query.inspectionResult} + + AND disposal_measures LIKE '%' + #{query.disposalMeasures} + '%' + AND order_no LIKE '%' + #{query.orderNo} + '%' @@ -2419,6 +2451,15 @@ AND inspection_no LIKE '%' + #{query.inspectionNo} + '%' + + AND part_no LIKE '%' + #{query.partNo} + '%' + + + AND dbo.qc_get_part_desc(part_no) LIKE '%' + #{query.partDesc} + '%' + + + AND disposal_measures LIKE '%' + #{query.disposalMeasures} + '%' + AND state = #{query.state}