From 9e17c6dd0db4e0ec5661604ad6b8031c21bd4603 Mon Sep 17 00:00:00 2001 From: fengyuan_yang <1976974459@qq.com> Date: Wed, 13 Dec 2023 17:35:47 +0800 Subject: [PATCH] =?UTF-8?q?2023-12-13=20IQC=E6=8A=BD=E6=A0=B7=E6=95=B0?= =?UTF-8?q?=E9=87=8F=E5=85=81=E8=AE=B8=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pms/service/Impl/QcServiceImpl.java | 66 ++++++++++++++++--- src/main/resources/mapper/pms/QcMapper.xml | 12 ++-- 2 files changed, 65 insertions(+), 13 deletions(-) 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 22f71201..d660a1ec 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 @@ -3116,7 +3116,7 @@ public class QcServiceImpl implements QcService { List dataList = qcMapper.searchSamplingProgrammeDetails(samplingInspectionProgrammeData); // 根据抽样方案确定抽样数 for (QcSamplingInspectionProgrammeData programmeData : dataList) { - if (programmeData.getSamplingLevelNo().equals(partAttribute.get(0).getSamplingLevelNo()) && (recordData.getRollCount().compareTo(programmeData.getMinQty()) == 1 || recordData.getRollCount().compareTo(programmeData.getMinQty()) == 0) && (recordData.getRollCount().compareTo(programmeData.getMaxQty()) == -1 || recordData.getRollCount().compareTo(programmeData.getMaxQty()) == 0) ){ + if (programmeData.getSamplingLevelNo().equals(partAttribute.get(0).getSamplingLevelNo()) && (recordData.getRollCount().compareTo(programmeData.getMinQty()) > 0 || recordData.getRollCount().compareTo(programmeData.getMinQty()) == 0) && (recordData.getRollCount().compareTo(programmeData.getMaxQty()) < 0 || recordData.getRollCount().compareTo(programmeData.getMaxQty()) == 0) ){ qcFAIRecordData.setSamplingQty(programmeData.getSamplingQty()); } } @@ -3139,14 +3139,15 @@ public class QcServiceImpl implements QcService { faiRecordData.setSite(data.getSite()); // 工厂 faiRecordData.setInspectionNo(qcFAIRecordData.getInspectionNo()); // 检验单号 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 (QcTemplateData itemData : itemList) { + faiRecordData.setSamplingQty(null); + faiRecordData.setSamplingLevelNo(itemData.getSamplingLevelNo()); // 检验水平编码 + faiRecordData.setSamplingLevelDesc(itemData.getSamplingLevelDesc()); // 检验水平名称 + faiRecordData.setSamplingProgrammeNo(itemData.getSamplingProgrammeNo()); // 抽样方案编码 + faiRecordData.setSamplingProgrammeDesc(itemData.getSamplingProgrammeDesc()); // 抽样方案名称 faiRecordData.setItemNo(itemData.getItemNo()); // 项目编码 faiRecordData.setItemDesc(itemData.getItemDesc()); // 项目名称 faiRecordData.setObjectId(itemData.getObjectID()); // 设备编码 @@ -3156,6 +3157,29 @@ public class QcServiceImpl implements QcService { faiRecordData.setMaxValue(itemData.getMaxValue()); // 最大值 faiRecordData.setValueType(itemData.getValueType()); // 检测值类型 faiRecordData.setValueTypeDb(itemData.getValueTypeDb()); + // 获取抽样数量 + // 如果该检验项目有维护抽样方案 + if (StringUtils.isNotBlank(itemData.getSamplingProgrammeNo())) { + QcSamplingInspectionProgrammeData samplingInspectionProgrammeData = new QcSamplingInspectionProgrammeData(); + samplingInspectionProgrammeData.setSamplingProgrammeNo(itemData.getSamplingProgrammeNo()); + // 获取抽样方案维护的矩阵详情 + List dataList = qcMapper.searchSamplingProgrammeDetails(samplingInspectionProgrammeData); + // 根据抽样方案确定抽样数 + for (QcSamplingInspectionProgrammeData programmeData : dataList) { + if (programmeData.getSamplingLevelNo().equals(itemData.getSamplingLevelNo()) && (recordData.getRollCount().compareTo(programmeData.getMinQty()) > 0 || recordData.getRollCount().compareTo(programmeData.getMinQty()) == 0) && (recordData.getRollCount().compareTo(programmeData.getMaxQty()) < 0 || recordData.getRollCount().compareTo(programmeData.getMaxQty()) == 0)) { + faiRecordData.setSamplingQty(programmeData.getSamplingQty()); + } + } + } else if (itemData.getItemSamplingQuantity() != null) { + // 没有维护抽样方案,再根据默认抽样数来确定 + faiRecordData.setSamplingQty(itemData.getItemSamplingQuantity()); + } else if (itemData.getDefaultSamplingProportion() != null) { + // 也没有维护默认抽样数,最后根据默认抽样比例来确定 + faiRecordData.setSamplingQty(itemData.getDefaultSamplingProportion().multiply(recordData.getRollCount()).divide(new BigDecimal(100), 3, BigDecimal.ROUND_HALF_UP)); + } else { + // 最后则根据检验单抽样数量赋值 + faiRecordData.setSamplingQty(qcFAIRecordData.getSamplingQty()); // 抽样数量 + } // 新增IQC明细记录信息 qcMapper.saveIQCDetailedRecord(faiRecordData); } @@ -3200,14 +3224,15 @@ public class QcServiceImpl implements QcService { QcFAIRecordData faiRecordData = new QcFAIRecordData(); faiRecordData.setInspectionNo(qcFAIRecordData.getInspectionNo()); // 检验单号 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 (QcTemplateData itemData : itemList) { + faiRecordData.setSamplingQty(null); + faiRecordData.setSamplingLevelNo(itemData.getSamplingLevelNo()); // 检验水平编码 + faiRecordData.setSamplingLevelDesc(itemData.getSamplingLevelDesc()); // 检验水平名称 + faiRecordData.setSamplingProgrammeNo(itemData.getSamplingProgrammeNo()); // 抽样方案编码 + faiRecordData.setSamplingProgrammeDesc(itemData.getSamplingProgrammeDesc()); // 抽样方案名称 faiRecordData.setItemNo(itemData.getItemNo()); // 项目编码 faiRecordData.setItemDesc(itemData.getItemDesc()); // 项目名称 faiRecordData.setObjectId(itemData.getObjectID()); // 设备编码 @@ -3217,6 +3242,29 @@ public class QcServiceImpl implements QcService { faiRecordData.setMaxValue(itemData.getMaxValue()); // 最大值 faiRecordData.setValueType(itemData.getValueType()); // 检测值类型 faiRecordData.setValueTypeDb(itemData.getValueTypeDb()); + // 获取抽样数量 + // 如果该检验项目有维护抽样方案 + if (StringUtils.isNotBlank(itemData.getSamplingProgrammeNo())) { + QcSamplingInspectionProgrammeData samplingInspectionProgrammeData = new QcSamplingInspectionProgrammeData(); + samplingInspectionProgrammeData.setSamplingProgrammeNo(itemData.getSamplingProgrammeNo()); + // 获取抽样方案维护的矩阵详情 + List dataList = qcMapper.searchSamplingProgrammeDetails(samplingInspectionProgrammeData); + // 根据抽样方案确定抽样数 + for (QcSamplingInspectionProgrammeData programmeData : dataList) { + if (programmeData.getSamplingLevelNo().equals(itemData.getSamplingLevelNo()) && (recordData.getRollCount().compareTo(programmeData.getMinQty()) > 0 || recordData.getRollCount().compareTo(programmeData.getMinQty()) == 0) && (recordData.getRollCount().compareTo(programmeData.getMaxQty()) < 0 || recordData.getRollCount().compareTo(programmeData.getMaxQty()) == 0)) { + faiRecordData.setSamplingQty(programmeData.getSamplingQty()); + } + } + } else if (itemData.getItemSamplingQuantity() != null) { + // 没有维护抽样方案,再根据默认抽样数来确定 + faiRecordData.setSamplingQty(itemData.getItemSamplingQuantity()); + } else if (itemData.getDefaultSamplingProportion() != null) { + // 也没有维护默认抽样数,最后根据默认抽样比例来确定 + faiRecordData.setSamplingQty(itemData.getDefaultSamplingProportion().multiply(recordData.getRollCount()).divide(new BigDecimal(100), 3, BigDecimal.ROUND_HALF_UP)); + } else { + // 最后则根据检验单抽样数量赋值 + faiRecordData.setSamplingQty(qcFAIRecordData.getSamplingQty()); // 抽样数量 + } // 新增IQC明细记录信息 qcMapper.saveIQCDetailedRecord(faiRecordData); } diff --git a/src/main/resources/mapper/pms/QcMapper.xml b/src/main/resources/mapper/pms/QcMapper.xml index d700b85e..9f8d5fbe 100644 --- a/src/main/resources/mapper/pms/QcMapper.xml +++ b/src/main/resources/mapper/pms/QcMapper.xml @@ -1077,7 +1077,7 @@ qat.resource_id FROM qc_attribute_template as qat LEFT JOIN qc_template as qt ON qat.template_id = qt.template_id and qat.site = qt.site - LEFT JOIN qc_inspection_type AS qit ON qt.inspection_type_no = qit.inspection_type_no + LEFT JOIN qc_inspection_type AS qit ON qt.inspection_type_no = qit.inspection_type_no and qt.site = qit.site WHERE qt.site = #{site} AND qat.attribute_no = #{attributeNo} @@ -2098,8 +2098,8 @@ - INSERT INTO qc_iqc_detailed_record (inspection_no, template_id, sampling_level_no, sampling_level_desc, sampling_programme_no, sampling_programme_desc, AQL, AC, RE, item_no, item_desc, object_id, object_desc, default_value, min_value, max_value, value_type_db, value_type, site) - VALUES(#{inspectionNo}, #{templateId}, #{samplingLevelNo}, #{samplingLevelDesc}, #{samplingProgrammeNo}, #{samplingProgrammeDesc}, #{aql,jdbcType=DECIMAL}, #{ac,jdbcType=DECIMAL}, #{re,jdbcType=DECIMAL}, #{itemNo}, #{itemDesc}, #{objectId}, #{objectDesc}, #{defaultValue}, #{minValue,jdbcType=DECIMAL}, #{maxValue,jdbcType=DECIMAL}, #{valueTypeDb}, #{valueType}, #{site}) + INSERT INTO qc_iqc_detailed_record (inspection_no, template_id, sampling_level_no, sampling_level_desc, sampling_programme_no, sampling_programme_desc, AQL, AC, RE, item_no, item_desc, object_id, object_desc, default_value, min_value, max_value, value_type_db, value_type, site, sampling_qty) + VALUES(#{inspectionNo}, #{templateId}, #{samplingLevelNo}, #{samplingLevelDesc}, #{samplingProgrammeNo}, #{samplingProgrammeDesc}, #{aql,jdbcType=DECIMAL}, #{ac,jdbcType=DECIMAL}, #{re,jdbcType=DECIMAL}, #{itemNo}, #{itemDesc}, #{objectId}, #{objectDesc}, #{defaultValue}, #{minValue,jdbcType=DECIMAL}, #{maxValue,jdbcType=DECIMAL}, #{valueTypeDb}, #{valueType}, #{site}, #{samplingQty}) @@ -2213,7 +2213,8 @@ dbo.qc_get_iqc_sub_record_num(a.site, a.inspection_no, a.item_no) as subDetailRecordNum, c.method_no, c.method_name, - c.method_remark + c.method_remark, + a.sampling_qty FROM qc_iqc_detailed_record as a LEFT JOIN qc_method_item as b on a.site = b.site and a.item_no = b.ItemNo LEFT JOIN qc_method as c on b.site = c.site and b.method_no = c.method_no @@ -2251,6 +2252,8 @@ state = #{state}, inspection_remark = #{inspectionRemark}, inspector_date = getDate(), + roll_count = #{rollCount,jdbcType=DECIMAL}, + sampling_qty = #{samplingQty,jdbcType=DECIMAL}, unqualified_qty = #{unqualifiedQty,jdbcType=DECIMAL} WHERE site = #{site} and inspection_no = #{inspectionNo} @@ -2260,6 +2263,7 @@ UPDATE qc_iqc_detailed_record SET item_result = #{itemResult}, unqualified_quantity = #{unqualifiedQuantity,jdbcType=DECIMAL}, + sampling_qty = #{samplingQty,jdbcType=DECIMAL}, text_value = #{textValue}, number_value = #{numberValue,jdbcType=DECIMAL} WHERE inspection_no = #{inspectionNo} and item_no = #{itemNo} and site = #{site}