diff --git a/src/main/java/com/xujie/sys/modules/pms/mapper/QcMapper.java b/src/main/java/com/xujie/sys/modules/pms/mapper/QcMapper.java index 9ae2a97a..168b1052 100644 --- a/src/main/java/com/xujie/sys/modules/pms/mapper/QcMapper.java +++ b/src/main/java/com/xujie/sys/modules/pms/mapper/QcMapper.java @@ -222,7 +222,7 @@ public interface QcMapper { void deletePlanByProgrammeNo(QcSamplingInspectionProgrammeData data); - QcTemplateData selectItem(String itemNo, String itemType); + QcTemplateData selectItem(String itemNo, String itemType,String buNo); QcPartAttributeData selectPartAttributeByNo(QcPartAttributeData data); 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 52fddfec..ae90274f 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 @@ -685,31 +685,77 @@ public class QcServiceImpl implements QcService { int rows = sheet.getPhysicalNumberOfRows(); // 声明对象 QcTemplateData task = null; + //排除标准数据下的空白行数据 + int nonEmptyRows = 0; + for (int i = 0; i < rows; i++) { + XSSFRow row = sheet.getRow(i); + if (row != null && row.getCell(0) != null && StringUtils.isNotBlank(row.getCell(0).toString())) { + nonEmptyRows++; + } + } // 遍历每一行(从第二行开始) - for (int j = 1; j < rows; j++) { + for (int j = 1; j < nonEmptyRows; j++) { // 实例化对象 task = new QcTemplateData(); // 获得该行 XSSFRow row = sheet.getRow(j); + //截取site和bu + String[] split = paraData.getSite().split("_"); // 为对象赋值 - task.setSite(paraData.getSite()); - task.setInspectionTypeNo(row.getCell(9).getRawValue()); - // 获取编码 - String templateNo = qcMapper.getTemplateNo(task); - if ("101".equals(task.getInspectionTypeNo()) || "102".equals(task.getInspectionTypeNo()) || "103".equals(task.getInspectionTypeNo()) || "104".equals(task.getInspectionTypeNo())) { - task.setTemplateId("IPQC-" + templateNo); - } else if ("105".equals(task.getInspectionTypeNo())) { - task.setTemplateId("IQC-" + templateNo); - } else if ("106".equals(task.getInspectionTypeNo())) { - task.setTemplateId("FAI-" + templateNo); - } else if ("107".equals(task.getInspectionTypeNo())) { - task.setTemplateId("FQC-" + templateNo); - } else if ("108".equals(task.getInspectionTypeNo())) { - task.setTemplateId("PQC-" + templateNo); + task.setSite(split[0]); + task.setBuNo(split[1]); + //获取用户传入的 检验类型描述 + String type = row.getCell(9).getStringCellValue(); + //根据type 设置检验类型编码 和 检验模板编码 + if (type.equals("IPQC")){ + task.setInspectionTypeNo("101"); + task.setTemplateId("IPQC-" + qcMapper.getTemplateNo(task)); + }else if (type.equals("IQC")){ + task.setInspectionTypeNo("105"); + task.setTemplateId("IQC-" + qcMapper.getTemplateNo(task)); + }else if (type.equals("FAI")){ + task.setInspectionTypeNo("106"); + task.setTemplateId("FAI-" + qcMapper.getTemplateNo(task)); + }else if (type.equals("FQC")){ + task.setInspectionTypeNo("107"); + task.setTemplateId("FQC-" + qcMapper.getTemplateNo(task)); + }else if (type.equals("PQC")){ + task.setInspectionTypeNo("108"); + task.setTemplateId("PQC-" + qcMapper.getTemplateNo(task)); } +// task.setInspectionTypeNo(row.getCell(9).getRawValue()); + + // 获取编码 +// String templateNo = qcMapper.getTemplateNo(task); +// if ("101".equals(task.getInspectionTypeNo()) || "102".equals(task.getInspectionTypeNo()) || "103".equals(task.getInspectionTypeNo()) || "104".equals(task.getInspectionTypeNo())) { +// task.setTemplateId("IPQC-" + templateNo); +// } else if ("105".equals(task.getInspectionTypeNo())) { +// task.setTemplateId("IQC-" + templateNo); +// } else if ("106".equals(task.getInspectionTypeNo())) { +// task.setTemplateId("FAI-" + templateNo); +// } else if ("107".equals(task.getInspectionTypeNo())) { +// task.setTemplateId("FQC-" + templateNo); +// } else if ("108".equals(task.getInspectionTypeNo())) { +// task.setTemplateId("PQC-" + templateNo); +// } + //判断用户是否输入 抽样方案编码、默认抽样数量和默认抽样比例 其中之一 + boolean isFlag = false; task.setTemplateName(row.getCell(0).getStringCellValue()); - task.setSamplingProgrammeNo(row.getCell(1).getRawValue()); - task.setSamplingLevelNo(row.getCell(2).getRawValue()); +// task.setSamplingProgrammeNo(row.getCell(1).getRawValue()); +// task.setSamplingLevelNo(row.getCell(2).getRawValue()); + if (row.getCell(1)==null){ + task.setSamplingProgrammeNo(null); + }else { + isFlag = true; + task.setSamplingProgrammeNo(row.getCell(1).getRawValue()); + } + + if (row.getCell(2)==null){ + task.setSamplingLevelNo(null); + }else { + task.setSamplingLevelNo(row.getCell(2).getRawValue()); + } + if (row.getCell(3) == null){ task.setInspectionCycle(null); }else { @@ -718,13 +764,18 @@ public class QcServiceImpl implements QcService { if (row.getCell(4) == null){ task.setDefaultSamplingQuantity(null); }else { + isFlag = true; task.setDefaultSamplingQuantity(BigDecimal.valueOf(row.getCell(4).getNumericCellValue())); } if (row.getCell(5) == null){ task.setDefaultSamplingProportion(null); }else { + isFlag = true; task.setDefaultSamplingProportion(BigDecimal.valueOf(row.getCell(5).getNumericCellValue())); } + if (!isFlag){ + throw new RuntimeException("抽象方案编码、默认抽样数量和默认抽样比例至少填写一个!"); + } if (row.getCell(6) == null){ task.setAql(null); }else { @@ -747,7 +798,12 @@ public class QcServiceImpl implements QcService { }else { task.setTemplateRemark(row.getCell(10).getStringCellValue()); } - task.setTemplateVersion(row.getCell(11).getRawValue()); +// task.setTemplateVersion(row.getCell(11).getRawValue()); + if (row.getCell(11)==null){ + task.setTemplateVersion(null); + }else { + task.setTemplateVersion(row.getCell(11).getRawValue()); + } task.setCreateBy(paraData.getCreateBy()); // 查重 QcTemplateData templateData = qcMapper.selectTemplateByDesc(task); @@ -761,7 +817,10 @@ public class QcServiceImpl implements QcService { for (int i = 1; i <= cells - 12; i++) { String itemNo = row.getCell(11 + i).getStringCellValue(); String itemType = "D"; - QcTemplateData data = qcMapper.selectItem(itemNo,itemType); + QcTemplateData data = qcMapper.selectItem(itemNo,itemType,split[1]); + if (data== null){ + throw new RuntimeException("BU为"+split[1]+"时,检验项目不存在:"+itemNo); + } data.setTemplateId(task.getTemplateId()); // 新增 qcMapper.addItemDetails(data); diff --git a/src/main/resources/mapper/pms/QcMapper.xml b/src/main/resources/mapper/pms/QcMapper.xml index 1a156b89..1ad3fc20 100644 --- a/src/main/resources/mapper/pms/QcMapper.xml +++ b/src/main/resources/mapper/pms/QcMapper.xml @@ -433,6 +433,7 @@ AND qt.inspection_type_no = #{query.inspectionTypeNo} + order by qt.create_time desc @@ -677,9 +678,11 @@ MaxValue, MinValue, ItemRemark, - ItemType + ItemType, + site, + bu_no FROM eam_properties_item - WHERE ItemNo = #{itemNo} AND ItemType = #{itemType} + WHERE ItemNo = #{itemNo} AND ItemType = #{itemType} AND bu_no = #{buNo}