From 75b2316136fceb3e353297343422a1080e4b8fde Mon Sep 17 00:00:00 2001 From: fengyuan_yang <1976974459@qq.com> Date: Mon, 22 Jul 2024 17:29:17 +0800 Subject: [PATCH 1/2] =?UTF-8?q?2024-07-2=20IQC=E6=98=8E=E7=BB=86=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E8=BD=AC=E7=A7=BB=E5=88=B0mes=E4=B8=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pms/service/Impl/QcServiceImpl.java | 421 +++++++++--------- 1 file changed, 210 insertions(+), 211 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 d249c629..83319f0a 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 @@ -3658,218 +3658,217 @@ public class QcServiceImpl implements QcService { @Override @Transactional public PageUtils qcIQCInspectionSearch(QcFAIRecordData data) { - // 查询送检单里的全部数据 - List basicData = qcMapper.selectIQCBasicData(data); - // 新建对象存放主记录 - QcFAIRecordData qcFAIRecordData = new QcFAIRecordData(); - //qcFAIRecordData.setSite(data.getSite()); - for (QcFAIRecordData recordData : basicData) { - // 拿到供应商编码 - String supplierNo = ""; - if (StringUtils.isNotBlank(recordData.getSupplierNo())) { - supplierNo = recordData.getSupplierNo(); - } -// // 查询该记录是否已存在明细 -// List detailData = qcMapper.checkIQCDetail(recordData); -// if (detailData.size() > 0) { -// continue; +// // 查询送检单里的全部数据 +// List basicData = qcMapper.selectIQCBasicData(data); +// // 新建对象存放主记录 +// QcFAIRecordData qcFAIRecordData = new QcFAIRecordData(); +// for (QcFAIRecordData recordData : basicData) { +// // 拿到供应商编码 +// String supplierNo = ""; +// if (StringUtils.isNotBlank(recordData.getSupplierNo())) { +// supplierNo = recordData.getSupplierNo(); // } - // 主记录信息赋值 - qcFAIRecordData.setSite(recordData.getSite()); - qcFAIRecordData.setBuNo(recordData.getBuNo()); - qcFAIRecordData.setInspectionNo(recordData.getInspectionNo()); // 检验单号 - qcFAIRecordData.setInspectionTypeNo("105"); // 检验类型编码 - qcFAIRecordData.setPartDesc(recordData.getPartDesc()); - qcFAIRecordData.setRollQty(recordData.getRollQty()); - // 明细记录信息赋值 - String partNo = recordData.getPartNo(); - String attributeType1 = "A"; - // 获取该物料属性下维护的IQC检验模板 - List partAttribute = qcMapper.selectPartAttributeByPartNo(recordData.getSite(), recordData.getBuNo(), partNo, attributeType1, qcFAIRecordData.getInspectionTypeNo(), supplierNo); - if (!partAttribute.isEmpty()) { - // 检验周期 - if (partAttribute.get(0).getInspectionCycle() != null) { - qcFAIRecordData.setInspectionCycle(partAttribute.get(0).getInspectionCycle()); - } - // 获取抽样数量 - // 如果该检验模板有维护抽样方案 - if (StringUtils.isNotBlank(partAttribute.get(0).getSamplingProgrammeNo())) { - QcSamplingInspectionProgrammeData samplingInspectionProgrammeData = new QcSamplingInspectionProgrammeData(); - samplingInspectionProgrammeData.setSite(partAttribute.get(0).getSite()); - samplingInspectionProgrammeData.setBuNo(partAttribute.get(0).getBuNo()); - samplingInspectionProgrammeData.setSamplingProgrammeNo(partAttribute.get(0).getSamplingProgrammeNo()); - // 获取抽样方案维护的矩阵详情 - List dataList = qcMapper.searchSamplingProgrammeDetails(samplingInspectionProgrammeData); - // 根据抽样方案确定抽样数 - for (QcSamplingInspectionProgrammeData programmeData : dataList) { - if (programmeData.getSamplingLevelNo().equals(partAttribute.get(0).getSamplingLevelNo()) && (recordData.getRollCount().compareTo(programmeData.getMinQty()) > 0 || recordData.getRollCount().compareTo(programmeData.getMinQty()) == 0) && (recordData.getRollCount().compareTo(programmeData.getMaxQty()) < 0 || recordData.getRollCount().compareTo(programmeData.getMaxQty()) == 0) ){ - qcFAIRecordData.setSamplingQty(programmeData.getSamplingQty()); - } - } - } else if (partAttribute.get(0).getDefaultSamplingQuantity() != null) { - // 没有维护抽样方案,再根据默认抽样数来确定 - qcFAIRecordData.setSamplingQty(partAttribute.get(0).getDefaultSamplingQuantity()); - } else if (partAttribute.get(0).getDefaultSamplingProportion() != null) { - // 也没有维护默认抽样数,最后根据默认抽样比例来确定 - BigDecimal d = partAttribute.get(0).getDefaultSamplingProportion().multiply(recordData.getRollCount()).divide(new BigDecimal(100), 3, BigDecimal.ROUND_HALF_UP); - qcFAIRecordData.setSamplingQty(d); - } - - // 获取根据该检验模板下维护的检验项目 - QcTemplateData templateData = new QcTemplateData(); - templateData.setSite(recordData.getSite()); - templateData.setBuNo(recordData.getBuNo()); - templateData.setTemplateId(partAttribute.get(0).getTemplateId()); - templateData.setItemType("D"); - List itemList = qcMapper.templateDetailsSearch(templateData); - QcFAIRecordData faiRecordData = new QcFAIRecordData(); - faiRecordData.setSite(recordData.getSite()); // 工厂 - faiRecordData.setBuNo(recordData.getBuNo()); // BU - faiRecordData.setInspectionNo(qcFAIRecordData.getInspectionNo()); // 检验单号 - faiRecordData.setTemplateId(partAttribute.get(0).getTemplateId()); // 模板编码 - faiRecordData.setAql(partAttribute.get(0).getAql()); // aql - faiRecordData.setAc(partAttribute.get(0).getAc()); // ac - faiRecordData.setRe(partAttribute.get(0).getRe()); // re - for (QcTemplateData itemData : itemList) { - faiRecordData.setSamplingQty(null); - faiRecordData.setSamplingLevelNo(itemData.getSamplingLevelNo()); // 检验水平编码 - faiRecordData.setSamplingLevelDesc(itemData.getSamplingLevelDesc()); // 检验水平名称 - faiRecordData.setSamplingProgrammeNo(itemData.getSamplingProgrammeNo()); // 抽样方案编码 - faiRecordData.setSamplingProgrammeDesc(itemData.getSamplingProgrammeDesc()); // 抽样方案名称 - faiRecordData.setItemNo(itemData.getItemNo()); // 项目编码 - faiRecordData.setItemDesc(itemData.getItemDesc()); // 项目名称 - faiRecordData.setObjectId(itemData.getObjectID()); // 设备编码 - faiRecordData.setObjectDesc(itemData.getObjectDesc()); // 设备名称 - faiRecordData.setDefaultValue(itemData.getDefaultValue()); // 默认值 - faiRecordData.setMinValue(itemData.getMinValue()); // 最小值 - faiRecordData.setMaxValue(itemData.getMaxValue()); // 最大值 - faiRecordData.setValueType(itemData.getValueType()); // 检测值类型 - faiRecordData.setValueTypeDb(itemData.getValueTypeDb()); - // 获取抽样数量 - // 如果该检验项目有维护抽样方案 - if (StringUtils.isNotBlank(itemData.getSamplingProgrammeNo())) { - QcSamplingInspectionProgrammeData samplingInspectionProgrammeData = new QcSamplingInspectionProgrammeData(); - samplingInspectionProgrammeData.setSite(itemData.getSite()); - samplingInspectionProgrammeData.setBuNo(itemData.getBuNo()); - samplingInspectionProgrammeData.setSamplingProgrammeNo(itemData.getSamplingProgrammeNo()); - // 获取抽样方案维护的矩阵详情 - List 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); - } - } else { - // 获取物料的类别编码 - String familyId = qcMapper.selectFamilyIdByPartNo(partNo,recordData.getSite()); - String attributeType2 = "B"; - // 获取该类别属性下维护的IQC检验模板 - List familyAttribute = qcMapper.selectPartAttributeByPartNo(recordData.getSite(), recordData.getBuNo(), familyId, attributeType2, qcFAIRecordData.getInspectionTypeNo(), supplierNo); - if (!familyAttribute.isEmpty()) { - // 获取检验周期 - if (familyAttribute.get(0).getInspectionCycle() != null) { - qcFAIRecordData.setInspectionCycle(familyAttribute.get(0).getInspectionCycle()); - } - // 获取抽样数量 - // 如果该检验模板有维护抽样方案 - if (StringUtils.isNotBlank(familyAttribute.get(0).getSamplingProgrammeNo())) { - QcSamplingInspectionProgrammeData samplingInspectionProgrammeData = new QcSamplingInspectionProgrammeData(); - samplingInspectionProgrammeData.setSite(familyAttribute.get(0).getSite()); - samplingInspectionProgrammeData.setBuNo(familyAttribute.get(0).getBuNo()); - samplingInspectionProgrammeData.setSamplingProgrammeNo(familyAttribute.get(0).getSamplingProgrammeNo()); - // 获取抽样方案维护的矩阵详情 - List dataList = qcMapper.searchSamplingProgrammeDetails(samplingInspectionProgrammeData); - // 根据抽样方案确定抽样数 - for (QcSamplingInspectionProgrammeData programmeData : dataList) { - if (programmeData.getSamplingLevelNo().equals(familyAttribute.get(0).getSamplingLevelNo()) && (recordData.getRollCount().compareTo(programmeData.getMinQty()) > 0 || recordData.getRollCount().compareTo(programmeData.getMinQty()) == 0) && (recordData.getRollCount().compareTo(programmeData.getMaxQty()) < 0 || recordData.getRollCount().compareTo(programmeData.getMaxQty()) == 0) ){ - qcFAIRecordData.setSamplingQty(programmeData.getSamplingQty()); - } - } - } else if (familyAttribute.get(0).getDefaultSamplingQuantity() != null) { - // 没有维护抽样方案,再根据默认抽样数来确定 - qcFAIRecordData.setSamplingQty(familyAttribute.get(0).getDefaultSamplingQuantity()); - } else if (familyAttribute.get(0).getDefaultSamplingProportion() != null) { - // 也没有维护默认抽样数,最后根据默认抽样比例来确定 - qcFAIRecordData.setSamplingQty(familyAttribute.get(0).getDefaultSamplingProportion().multiply(qcFAIRecordData.getRollCount()).divide(new BigDecimal(100),3,BigDecimal.ROUND_HALF_UP)); - } - - // 获取根据该检验模板下维护的检验项目 - QcTemplateData templateData = new QcTemplateData(); - templateData.setTemplateId(familyAttribute.get(0).getTemplateId()); - templateData.setItemType("D"); - templateData.setSite(recordData.getSite()); - templateData.setBuNo(recordData.getBuNo()); - List itemList = qcMapper.templateDetailsSearch(templateData); - QcFAIRecordData faiRecordData = new QcFAIRecordData(); - faiRecordData.setSite(recordData.getSite()); // 工厂 - faiRecordData.setBuNo(recordData.getBuNo()); // BU - faiRecordData.setInspectionNo(qcFAIRecordData.getInspectionNo()); // 检验单号 - faiRecordData.setTemplateId(familyAttribute.get(0).getTemplateId()); // 模板编码 - 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()); // 设备编码 - faiRecordData.setObjectDesc(itemData.getObjectDesc()); // 设备名称 - faiRecordData.setDefaultValue(itemData.getDefaultValue()); // 默认值 - faiRecordData.setMinValue(itemData.getMinValue()); // 最小值 - faiRecordData.setMaxValue(itemData.getMaxValue()); // 最大值 - faiRecordData.setValueType(itemData.getValueType()); // 检测值类型 - faiRecordData.setValueTypeDb(itemData.getValueTypeDb()); - // 获取抽样数量 - // 如果该检验项目有维护抽样方案 - if (StringUtils.isNotBlank(itemData.getSamplingProgrammeNo())) { - QcSamplingInspectionProgrammeData samplingInspectionProgrammeData = new QcSamplingInspectionProgrammeData(); - samplingInspectionProgrammeData.setSite(itemData.getSite()); - samplingInspectionProgrammeData.setBuNo(itemData.getBuNo()); - samplingInspectionProgrammeData.setSamplingProgrammeNo(itemData.getSamplingProgrammeNo()); - // 获取抽样方案维护的矩阵详情 - List 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); - } - } - } - // 更新IQC主记录信息 - qcMapper.updateIQCRecord(qcFAIRecordData); - } +//// // 查询该记录是否已存在明细 +//// List detailData = qcMapper.checkIQCDetail(recordData); +//// if (detailData.size() > 0) { +//// continue; +//// } +// // 主记录信息赋值 +// qcFAIRecordData.setSite(recordData.getSite()); +// qcFAIRecordData.setBuNo(recordData.getBuNo()); +// qcFAIRecordData.setInspectionNo(recordData.getInspectionNo()); // 检验单号 +// qcFAIRecordData.setInspectionTypeNo("105"); // 检验类型编码 +// qcFAIRecordData.setPartDesc(recordData.getPartDesc()); +// qcFAIRecordData.setRollQty(recordData.getRollQty()); +// // 明细记录信息赋值 +// String partNo = recordData.getPartNo(); +// String attributeType1 = "A"; +// // 获取该物料属性下维护的IQC检验模板 +// List partAttribute = qcMapper.selectPartAttributeByPartNo(recordData.getSite(), recordData.getBuNo(), partNo, attributeType1, qcFAIRecordData.getInspectionTypeNo(), supplierNo); +// if (!partAttribute.isEmpty()) { +// // 检验周期 +// if (partAttribute.get(0).getInspectionCycle() != null) { +// qcFAIRecordData.setInspectionCycle(partAttribute.get(0).getInspectionCycle()); +// } +// // 获取抽样数量 +// // 如果该检验模板有维护抽样方案 +// if (StringUtils.isNotBlank(partAttribute.get(0).getSamplingProgrammeNo())) { +// QcSamplingInspectionProgrammeData samplingInspectionProgrammeData = new QcSamplingInspectionProgrammeData(); +// samplingInspectionProgrammeData.setSite(partAttribute.get(0).getSite()); +// samplingInspectionProgrammeData.setBuNo(partAttribute.get(0).getBuNo()); +// samplingInspectionProgrammeData.setSamplingProgrammeNo(partAttribute.get(0).getSamplingProgrammeNo()); +// // 获取抽样方案维护的矩阵详情 +// List dataList = qcMapper.searchSamplingProgrammeDetails(samplingInspectionProgrammeData); +// // 根据抽样方案确定抽样数 +// for (QcSamplingInspectionProgrammeData programmeData : dataList) { +// if (programmeData.getSamplingLevelNo().equals(partAttribute.get(0).getSamplingLevelNo()) && (recordData.getRollCount().compareTo(programmeData.getMinQty()) > 0 || recordData.getRollCount().compareTo(programmeData.getMinQty()) == 0) && (recordData.getRollCount().compareTo(programmeData.getMaxQty()) < 0 || recordData.getRollCount().compareTo(programmeData.getMaxQty()) == 0) ){ +// qcFAIRecordData.setSamplingQty(programmeData.getSamplingQty()); +// } +// } +// } else if (partAttribute.get(0).getDefaultSamplingQuantity() != null) { +// // 没有维护抽样方案,再根据默认抽样数来确定 +// qcFAIRecordData.setSamplingQty(partAttribute.get(0).getDefaultSamplingQuantity()); +// } else if (partAttribute.get(0).getDefaultSamplingProportion() != null) { +// // 也没有维护默认抽样数,最后根据默认抽样比例来确定 +// BigDecimal d = partAttribute.get(0).getDefaultSamplingProportion().multiply(recordData.getRollCount()).divide(new BigDecimal(100), 3, BigDecimal.ROUND_HALF_UP); +// qcFAIRecordData.setSamplingQty(d); +// } +// +// // 获取根据该检验模板下维护的检验项目 +// QcTemplateData templateData = new QcTemplateData(); +// templateData.setSite(recordData.getSite()); +// templateData.setBuNo(recordData.getBuNo()); +// templateData.setTemplateId(partAttribute.get(0).getTemplateId()); +// templateData.setItemType("D"); +// List itemList = qcMapper.templateDetailsSearch(templateData); +// QcFAIRecordData faiRecordData = new QcFAIRecordData(); +// faiRecordData.setSite(recordData.getSite()); // 工厂 +// faiRecordData.setBuNo(recordData.getBuNo()); // BU +// faiRecordData.setInspectionNo(qcFAIRecordData.getInspectionNo()); // 检验单号 +// faiRecordData.setTemplateId(partAttribute.get(0).getTemplateId()); // 模板编码 +// faiRecordData.setAql(partAttribute.get(0).getAql()); // aql +// faiRecordData.setAc(partAttribute.get(0).getAc()); // ac +// faiRecordData.setRe(partAttribute.get(0).getRe()); // re +// for (QcTemplateData itemData : itemList) { +// faiRecordData.setSamplingQty(null); +// faiRecordData.setSamplingLevelNo(itemData.getSamplingLevelNo()); // 检验水平编码 +// faiRecordData.setSamplingLevelDesc(itemData.getSamplingLevelDesc()); // 检验水平名称 +// faiRecordData.setSamplingProgrammeNo(itemData.getSamplingProgrammeNo()); // 抽样方案编码 +// faiRecordData.setSamplingProgrammeDesc(itemData.getSamplingProgrammeDesc()); // 抽样方案名称 +// faiRecordData.setItemNo(itemData.getItemNo()); // 项目编码 +// faiRecordData.setItemDesc(itemData.getItemDesc()); // 项目名称 +// faiRecordData.setObjectId(itemData.getObjectID()); // 设备编码 +// faiRecordData.setObjectDesc(itemData.getObjectDesc()); // 设备名称 +// faiRecordData.setDefaultValue(itemData.getDefaultValue()); // 默认值 +// faiRecordData.setMinValue(itemData.getMinValue()); // 最小值 +// faiRecordData.setMaxValue(itemData.getMaxValue()); // 最大值 +// faiRecordData.setValueType(itemData.getValueType()); // 检测值类型 +// faiRecordData.setValueTypeDb(itemData.getValueTypeDb()); +// // 获取抽样数量 +// // 如果该检验项目有维护抽样方案 +// if (StringUtils.isNotBlank(itemData.getSamplingProgrammeNo())) { +// QcSamplingInspectionProgrammeData samplingInspectionProgrammeData = new QcSamplingInspectionProgrammeData(); +// samplingInspectionProgrammeData.setSite(itemData.getSite()); +// samplingInspectionProgrammeData.setBuNo(itemData.getBuNo()); +// samplingInspectionProgrammeData.setSamplingProgrammeNo(itemData.getSamplingProgrammeNo()); +// // 获取抽样方案维护的矩阵详情 +// List 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); +// } +// } else { +// // 获取物料的类别编码 +// String familyId = qcMapper.selectFamilyIdByPartNo(partNo,recordData.getSite()); +// String attributeType2 = "B"; +// // 获取该类别属性下维护的IQC检验模板 +// List familyAttribute = qcMapper.selectPartAttributeByPartNo(recordData.getSite(), recordData.getBuNo(), familyId, attributeType2, qcFAIRecordData.getInspectionTypeNo(), supplierNo); +// if (!familyAttribute.isEmpty()) { +// // 获取检验周期 +// if (familyAttribute.get(0).getInspectionCycle() != null) { +// qcFAIRecordData.setInspectionCycle(familyAttribute.get(0).getInspectionCycle()); +// } +// // 获取抽样数量 +// // 如果该检验模板有维护抽样方案 +// if (StringUtils.isNotBlank(familyAttribute.get(0).getSamplingProgrammeNo())) { +// QcSamplingInspectionProgrammeData samplingInspectionProgrammeData = new QcSamplingInspectionProgrammeData(); +// samplingInspectionProgrammeData.setSite(familyAttribute.get(0).getSite()); +// samplingInspectionProgrammeData.setBuNo(familyAttribute.get(0).getBuNo()); +// samplingInspectionProgrammeData.setSamplingProgrammeNo(familyAttribute.get(0).getSamplingProgrammeNo()); +// // 获取抽样方案维护的矩阵详情 +// List dataList = qcMapper.searchSamplingProgrammeDetails(samplingInspectionProgrammeData); +// // 根据抽样方案确定抽样数 +// for (QcSamplingInspectionProgrammeData programmeData : dataList) { +// if (programmeData.getSamplingLevelNo().equals(familyAttribute.get(0).getSamplingLevelNo()) && (recordData.getRollCount().compareTo(programmeData.getMinQty()) > 0 || recordData.getRollCount().compareTo(programmeData.getMinQty()) == 0) && (recordData.getRollCount().compareTo(programmeData.getMaxQty()) < 0 || recordData.getRollCount().compareTo(programmeData.getMaxQty()) == 0) ){ +// qcFAIRecordData.setSamplingQty(programmeData.getSamplingQty()); +// } +// } +// } else if (familyAttribute.get(0).getDefaultSamplingQuantity() != null) { +// // 没有维护抽样方案,再根据默认抽样数来确定 +// qcFAIRecordData.setSamplingQty(familyAttribute.get(0).getDefaultSamplingQuantity()); +// } else if (familyAttribute.get(0).getDefaultSamplingProportion() != null) { +// // 也没有维护默认抽样数,最后根据默认抽样比例来确定 +// qcFAIRecordData.setSamplingQty(familyAttribute.get(0).getDefaultSamplingProportion().multiply(qcFAIRecordData.getRollCount()).divide(new BigDecimal(100),3,BigDecimal.ROUND_HALF_UP)); +// } +// +// // 获取根据该检验模板下维护的检验项目 +// QcTemplateData templateData = new QcTemplateData(); +// templateData.setTemplateId(familyAttribute.get(0).getTemplateId()); +// templateData.setItemType("D"); +// templateData.setSite(recordData.getSite()); +// templateData.setBuNo(recordData.getBuNo()); +// List itemList = qcMapper.templateDetailsSearch(templateData); +// QcFAIRecordData faiRecordData = new QcFAIRecordData(); +// faiRecordData.setSite(recordData.getSite()); // 工厂 +// faiRecordData.setBuNo(recordData.getBuNo()); // BU +// faiRecordData.setInspectionNo(qcFAIRecordData.getInspectionNo()); // 检验单号 +// faiRecordData.setTemplateId(familyAttribute.get(0).getTemplateId()); // 模板编码 +// 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()); // 设备编码 +// faiRecordData.setObjectDesc(itemData.getObjectDesc()); // 设备名称 +// faiRecordData.setDefaultValue(itemData.getDefaultValue()); // 默认值 +// faiRecordData.setMinValue(itemData.getMinValue()); // 最小值 +// faiRecordData.setMaxValue(itemData.getMaxValue()); // 最大值 +// faiRecordData.setValueType(itemData.getValueType()); // 检测值类型 +// faiRecordData.setValueTypeDb(itemData.getValueTypeDb()); +// // 获取抽样数量 +// // 如果该检验项目有维护抽样方案 +// if (StringUtils.isNotBlank(itemData.getSamplingProgrammeNo())) { +// QcSamplingInspectionProgrammeData samplingInspectionProgrammeData = new QcSamplingInspectionProgrammeData(); +// samplingInspectionProgrammeData.setSite(itemData.getSite()); +// samplingInspectionProgrammeData.setBuNo(itemData.getBuNo()); +// samplingInspectionProgrammeData.setSamplingProgrammeNo(itemData.getSamplingProgrammeNo()); +// // 获取抽样方案维护的矩阵详情 +// List 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); +// } +// } +// } +// // 更新IQC主记录信息 +// qcMapper.updateIQCRecord(qcFAIRecordData); +// } // 查询FAI主记录信息 IPage resultList = this.qcMapper.qcIQCInspectionSearch(new Page(data.getPage(), data.getLimit()), data); return new PageUtils(resultList); From 3507d38b3e14ef2c129a3522aebcdb943d5a99de Mon Sep 17 00:00:00 2001 From: fengyuan_yang <1976974459@qq.com> Date: Tue, 23 Jul 2024 17:47:54 +0800 Subject: [PATCH 2/2] =?UTF-8?q?2024-07-23=20=E6=9B=B4=E6=96=B0=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1=E9=87=8D=E8=BD=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pms/service/Impl/QcServiceImpl.java | 212 +++++++++++++++++- 1 file changed, 207 insertions(+), 5 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 83319f0a..054e8366 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 @@ -3881,13 +3881,215 @@ public class QcServiceImpl implements QcService { @Override @Transactional public void iqcRecordOverLoad(QcFAIRecordData data) { - for (QcFAIRecordData qcData : data.getSubmitList()){ + // 新建对象存放主记录 + QcFAIRecordData qcFAIRecordData = new QcFAIRecordData(); + for (QcFAIRecordData recordData : data.getSubmitList()) { // 删除明细记录信息 - qcMapper.deleteIQCDetailedRecord(qcData); + qcMapper.deleteIQCDetailedRecord(recordData); // 删除子明细记录信息 - qcMapper.deleteIQCSubDetailedRecord(qcData); - // 修改detailFlag字段为N - qcMapper.updateIQCDetailFlag(qcData); + qcMapper.deleteIQCSubDetailedRecord(recordData); +// // 修改detailFlag字段为N +// qcMapper.updateIQCDetailFlag(qcData); + // 拿到供应商编码 + String supplierNo = ""; + if (StringUtils.isNotBlank(recordData.getSupplierNo())) { + supplierNo = recordData.getSupplierNo(); + } + // 主记录信息赋值 + qcFAIRecordData.setSite(recordData.getSite()); + qcFAIRecordData.setBuNo(recordData.getBuNo()); + qcFAIRecordData.setInspectionNo(recordData.getInspectionNo()); // 检验单号 + qcFAIRecordData.setInspectionTypeNo("105"); // 检验类型编码 + qcFAIRecordData.setPartDesc(recordData.getPartDesc()); + qcFAIRecordData.setRollQty(recordData.getRollQty()); + // 明细记录信息赋值 + String partNo = recordData.getPartNo(); + String attributeType1 = "A"; + // 获取该物料属性下维护的IQC检验模板 + List partAttribute = qcMapper.selectPartAttributeByPartNo(recordData.getSite(), recordData.getBuNo(), partNo, attributeType1, qcFAIRecordData.getInspectionTypeNo(), supplierNo); + if (!partAttribute.isEmpty()) { + // 检验周期 + if (partAttribute.get(0).getInspectionCycle() != null) { + qcFAIRecordData.setInspectionCycle(partAttribute.get(0).getInspectionCycle()); + } + // 获取抽样数量 + // 如果该检验模板有维护抽样方案 + if (StringUtils.isNotBlank(partAttribute.get(0).getSamplingProgrammeNo())) { + QcSamplingInspectionProgrammeData samplingInspectionProgrammeData = new QcSamplingInspectionProgrammeData(); + samplingInspectionProgrammeData.setSite(partAttribute.get(0).getSite()); + samplingInspectionProgrammeData.setBuNo(partAttribute.get(0).getBuNo()); + samplingInspectionProgrammeData.setSamplingProgrammeNo(partAttribute.get(0).getSamplingProgrammeNo()); + // 获取抽样方案维护的矩阵详情 + List dataList = qcMapper.searchSamplingProgrammeDetails(samplingInspectionProgrammeData); + // 根据抽样方案确定抽样数 + for (QcSamplingInspectionProgrammeData programmeData : dataList) { + if (programmeData.getSamplingLevelNo().equals(partAttribute.get(0).getSamplingLevelNo()) && (recordData.getRollCount().compareTo(programmeData.getMinQty()) > 0 || recordData.getRollCount().compareTo(programmeData.getMinQty()) == 0) && (recordData.getRollCount().compareTo(programmeData.getMaxQty()) < 0 || recordData.getRollCount().compareTo(programmeData.getMaxQty()) == 0) ){ + qcFAIRecordData.setSamplingQty(programmeData.getSamplingQty()); + } + } + } else if (partAttribute.get(0).getDefaultSamplingQuantity() != null) { + // 没有维护抽样方案,再根据默认抽样数来确定 + qcFAIRecordData.setSamplingQty(partAttribute.get(0).getDefaultSamplingQuantity()); + } else if (partAttribute.get(0).getDefaultSamplingProportion() != null) { + // 也没有维护默认抽样数,最后根据默认抽样比例来确定 + BigDecimal d = partAttribute.get(0).getDefaultSamplingProportion().multiply(recordData.getRollCount()).divide(new BigDecimal(100), 3, BigDecimal.ROUND_HALF_UP); + qcFAIRecordData.setSamplingQty(d); + } + + // 获取根据该检验模板下维护的检验项目 + QcTemplateData templateData = new QcTemplateData(); + templateData.setSite(recordData.getSite()); + templateData.setBuNo(recordData.getBuNo()); + templateData.setTemplateId(partAttribute.get(0).getTemplateId()); + templateData.setItemType("D"); + List itemList = qcMapper.templateDetailsSearch(templateData); + QcFAIRecordData faiRecordData = new QcFAIRecordData(); + faiRecordData.setSite(recordData.getSite()); // 工厂 + faiRecordData.setBuNo(recordData.getBuNo()); // BU + faiRecordData.setInspectionNo(qcFAIRecordData.getInspectionNo()); // 检验单号 + faiRecordData.setTemplateId(partAttribute.get(0).getTemplateId()); // 模板编码 + faiRecordData.setAql(partAttribute.get(0).getAql()); // aql + faiRecordData.setAc(partAttribute.get(0).getAc()); // ac + faiRecordData.setRe(partAttribute.get(0).getRe()); // re + for (QcTemplateData itemData : itemList) { + faiRecordData.setSamplingQty(null); + faiRecordData.setSamplingLevelNo(itemData.getSamplingLevelNo()); // 检验水平编码 + faiRecordData.setSamplingLevelDesc(itemData.getSamplingLevelDesc()); // 检验水平名称 + faiRecordData.setSamplingProgrammeNo(itemData.getSamplingProgrammeNo()); // 抽样方案编码 + faiRecordData.setSamplingProgrammeDesc(itemData.getSamplingProgrammeDesc()); // 抽样方案名称 + faiRecordData.setItemNo(itemData.getItemNo()); // 项目编码 + faiRecordData.setItemDesc(itemData.getItemDesc()); // 项目名称 + faiRecordData.setObjectId(itemData.getObjectID()); // 设备编码 + faiRecordData.setObjectDesc(itemData.getObjectDesc()); // 设备名称 + faiRecordData.setDefaultValue(itemData.getDefaultValue()); // 默认值 + faiRecordData.setMinValue(itemData.getMinValue()); // 最小值 + faiRecordData.setMaxValue(itemData.getMaxValue()); // 最大值 + faiRecordData.setValueType(itemData.getValueType()); // 检测值类型 + faiRecordData.setValueTypeDb(itemData.getValueTypeDb()); + // 获取抽样数量 + // 如果该检验项目有维护抽样方案 + if (StringUtils.isNotBlank(itemData.getSamplingProgrammeNo())) { + QcSamplingInspectionProgrammeData samplingInspectionProgrammeData = new QcSamplingInspectionProgrammeData(); + samplingInspectionProgrammeData.setSite(itemData.getSite()); + samplingInspectionProgrammeData.setBuNo(itemData.getBuNo()); + samplingInspectionProgrammeData.setSamplingProgrammeNo(itemData.getSamplingProgrammeNo()); + // 获取抽样方案维护的矩阵详情 + List 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); + } + } else { + // 获取物料的类别编码 + String familyId = qcMapper.selectFamilyIdByPartNo(partNo,recordData.getSite()); + String attributeType2 = "B"; + // 获取该类别属性下维护的IQC检验模板 + List familyAttribute = qcMapper.selectPartAttributeByPartNo(recordData.getSite(), recordData.getBuNo(), familyId, attributeType2, qcFAIRecordData.getInspectionTypeNo(), supplierNo); + if (!familyAttribute.isEmpty()) { + // 获取检验周期 + if (familyAttribute.get(0).getInspectionCycle() != null) { + qcFAIRecordData.setInspectionCycle(familyAttribute.get(0).getInspectionCycle()); + } + // 获取抽样数量 + // 如果该检验模板有维护抽样方案 + if (StringUtils.isNotBlank(familyAttribute.get(0).getSamplingProgrammeNo())) { + QcSamplingInspectionProgrammeData samplingInspectionProgrammeData = new QcSamplingInspectionProgrammeData(); + samplingInspectionProgrammeData.setSite(familyAttribute.get(0).getSite()); + samplingInspectionProgrammeData.setBuNo(familyAttribute.get(0).getBuNo()); + samplingInspectionProgrammeData.setSamplingProgrammeNo(familyAttribute.get(0).getSamplingProgrammeNo()); + // 获取抽样方案维护的矩阵详情 + List dataList = qcMapper.searchSamplingProgrammeDetails(samplingInspectionProgrammeData); + // 根据抽样方案确定抽样数 + for (QcSamplingInspectionProgrammeData programmeData : dataList) { + if (programmeData.getSamplingLevelNo().equals(familyAttribute.get(0).getSamplingLevelNo()) && (recordData.getRollCount().compareTo(programmeData.getMinQty()) > 0 || recordData.getRollCount().compareTo(programmeData.getMinQty()) == 0) && (recordData.getRollCount().compareTo(programmeData.getMaxQty()) < 0 || recordData.getRollCount().compareTo(programmeData.getMaxQty()) == 0) ){ + qcFAIRecordData.setSamplingQty(programmeData.getSamplingQty()); + } + } + } else if (familyAttribute.get(0).getDefaultSamplingQuantity() != null) { + // 没有维护抽样方案,再根据默认抽样数来确定 + qcFAIRecordData.setSamplingQty(familyAttribute.get(0).getDefaultSamplingQuantity()); + } else if (familyAttribute.get(0).getDefaultSamplingProportion() != null) { + // 也没有维护默认抽样数,最后根据默认抽样比例来确定 + qcFAIRecordData.setSamplingQty(familyAttribute.get(0).getDefaultSamplingProportion().multiply(qcFAIRecordData.getRollCount()).divide(new BigDecimal(100),3,BigDecimal.ROUND_HALF_UP)); + } + + // 获取根据该检验模板下维护的检验项目 + QcTemplateData templateData = new QcTemplateData(); + templateData.setTemplateId(familyAttribute.get(0).getTemplateId()); + templateData.setItemType("D"); + templateData.setSite(recordData.getSite()); + templateData.setBuNo(recordData.getBuNo()); + List itemList = qcMapper.templateDetailsSearch(templateData); + QcFAIRecordData faiRecordData = new QcFAIRecordData(); + faiRecordData.setSite(recordData.getSite()); // 工厂 + faiRecordData.setBuNo(recordData.getBuNo()); // BU + faiRecordData.setInspectionNo(qcFAIRecordData.getInspectionNo()); // 检验单号 + faiRecordData.setTemplateId(familyAttribute.get(0).getTemplateId()); // 模板编码 + 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()); // 设备编码 + faiRecordData.setObjectDesc(itemData.getObjectDesc()); // 设备名称 + faiRecordData.setDefaultValue(itemData.getDefaultValue()); // 默认值 + faiRecordData.setMinValue(itemData.getMinValue()); // 最小值 + faiRecordData.setMaxValue(itemData.getMaxValue()); // 最大值 + faiRecordData.setValueType(itemData.getValueType()); // 检测值类型 + faiRecordData.setValueTypeDb(itemData.getValueTypeDb()); + // 获取抽样数量 + // 如果该检验项目有维护抽样方案 + if (StringUtils.isNotBlank(itemData.getSamplingProgrammeNo())) { + QcSamplingInspectionProgrammeData samplingInspectionProgrammeData = new QcSamplingInspectionProgrammeData(); + samplingInspectionProgrammeData.setSite(itemData.getSite()); + samplingInspectionProgrammeData.setBuNo(itemData.getBuNo()); + samplingInspectionProgrammeData.setSamplingProgrammeNo(itemData.getSamplingProgrammeNo()); + // 获取抽样方案维护的矩阵详情 + List 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); + } + } + } + // 更新IQC主记录信息 + qcMapper.updateIQCRecord(qcFAIRecordData); } }