From 8091fc772120944e941636f4a0a61584100c2a0c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E5=A5=89=E6=BA=90?= <1976974459@qq.com> Date: Mon, 13 Nov 2023 19:52:43 +0800 Subject: [PATCH] =?UTF-8?q?2023-11-13=EF=BC=8C=E8=AE=BE=E5=A4=87=E5=92=8C?= =?UTF-8?q?=E8=B4=A8=E9=87=8F=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sys/modules/pms/data/SubDetailValues.java | 9 +++++ .../sys/modules/pms/mapper/QcMapper.java | 2 + .../pms/service/Impl/QcServiceImpl.java | 32 +++++++++++++--- src/main/resources/mapper/pms/QcMapper.xml | 37 +++++++++++++++---- 4 files changed, 67 insertions(+), 13 deletions(-) diff --git a/src/main/java/com/xujie/sys/modules/pms/data/SubDetailValues.java b/src/main/java/com/xujie/sys/modules/pms/data/SubDetailValues.java index 970c477a..36aa2262 100644 --- a/src/main/java/com/xujie/sys/modules/pms/data/SubDetailValues.java +++ b/src/main/java/com/xujie/sys/modules/pms/data/SubDetailValues.java @@ -18,6 +18,15 @@ public class SubDetailValues { private String isSubmit; // 抽样位置B private String samplingLocationB; + private String flag; + + public String getFlag() { + return flag; + } + + public void setFlag(String flag) { + this.flag = flag; + } public String getSamplingLocationB() { return samplingLocationB; 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 81f0efbb..7410dc20 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 @@ -432,4 +432,6 @@ public interface QcMapper { List queryPartList(QcFAIRecordData data); List umSearch(QcFAIRecordData data); + + SubDetailValues checkItem(SubDetailValues task); } 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 424978b9..65a754c6 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 @@ -11,6 +11,9 @@ import com.xujie.sys.modules.pms.service.QcService; import com.xujie.sys.modules.pms.util.ResponseData; import com.xujie.sys.modules.sys.entity.SysSceneDynamicControlModelEntity; import org.apache.commons.lang3.StringUtils; +import org.apache.poi.ss.usermodel.Cell; +import org.apache.poi.ss.usermodel.CellType; +import org.apache.poi.xssf.usermodel.XSSFCell; import org.apache.poi.xssf.usermodel.XSSFRow; import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFWorkbook; @@ -22,6 +25,7 @@ import org.springframework.web.multipart.MultipartFile; import java.io.InputStream; import java.math.BigDecimal; +import java.text.DecimalFormat; import java.util.*; import java.util.stream.Collectors; @@ -3294,8 +3298,11 @@ public class QcServiceImpl implements QcService { int rows = sheet.getPhysicalNumberOfRows(); // 新建集合 ArrayList SubDetailList = new ArrayList<>(); - // 遍历每一行(从第二行开始) - for (int j = 1; j < rows; j++) { + // 创建集合存放错误信息 + ArrayList errInfo1 = new ArrayList<>(); + ArrayList errInfo2 = new ArrayList<>(); + // 遍历每一行, 从第三行开始 + for (int j = 2; j < rows; j++) { // 创建对象 SubDetailValues task = new SubDetailValues(); // 获得该行 @@ -3303,28 +3310,43 @@ public class QcServiceImpl implements QcService { // 为对象赋值 task.setSite(data.getSite()); task.setInspectionNo(data.getInspectionNo()); - if (row.getCell(0) == null) { - task.setItemNo(null); + if (row.getCell(0) == null || "".equals(row.getCell(0).getStringCellValue())) { + // task.setItemNo(null); + errInfo1.add(j + 1); } else { + row.getCell(0).setCellType(CellType.STRING); // 强转类型为String task.setItemNo(row.getCell(0).getStringCellValue()); + // 判断项目是否合规 + task.setFlag(data.getFlag()); + SubDetailValues itemData = qcMapper.checkItem(task); + if (itemData == null) { // 明细中不存在该项目 + errInfo2.add(j + 1); + } } if (row.getCell(1) == null) { task.setSamplingLocation(null); } else { + row.getCell(1).setCellType(CellType.STRING); task.setSamplingLocation(row.getCell(1).getStringCellValue()); } if (row.getCell(2) == null) { task.setSamplingLocationB(null); } else { + row.getCell(2).setCellType(CellType.STRING); task.setSamplingLocationB(row.getCell(2).getStringCellValue()); } if (row.getCell(3) == null) { task.setSubDetailValue(null); } else { + row.getCell(3).setCellType(CellType.STRING); task.setSubDetailValue(row.getCell(3).getStringCellValue()); } SubDetailList.add(task); } + // 查看错误信息 + if (errInfo1.size() > 0 || errInfo2.size() > 0) { + throw new RuntimeException("请检查:导入模板中的第 " + errInfo1.toString() + " 行项目编码为空;请检查:导入模板中的第 " + errInfo2.toString() + " 行项目编码不在本次检验单中"); + } // 新增子明细 if ("IPQC".equals(data.getFlag())) { qcMapper.saveIPQCSubDetailed(SubDetailList); @@ -3336,7 +3358,7 @@ public class QcServiceImpl implements QcService { qcMapper.saveIQCSubDetailed(SubDetailList); } } catch (Exception e) { - throw new RuntimeException("导入失败:"+e.getMessage()); + throw new RuntimeException(e.getMessage()); } } diff --git a/src/main/resources/mapper/pms/QcMapper.xml b/src/main/resources/mapper/pms/QcMapper.xml index e4a524c9..5a89287e 100644 --- a/src/main/resources/mapper/pms/QcMapper.xml +++ b/src/main/resources/mapper/pms/QcMapper.xml @@ -1496,10 +1496,10 @@ AND operation_desc LIKE '%' + #{query.operationDesc} + '%' - AND task_date >= #{query.startDate} + AND inspector_date >= #{query.startDate} - AND #{query.endDate} >= task_date + AND #{query.endDate} >= inspector_date ORDER BY @@ -1781,10 +1781,10 @@ AND operation_desc LIKE '%' + #{query.operationDesc} + '%' - AND task_date >= #{query.startDate} + AND inspector_date >= #{query.startDate} - AND #{query.endDate} >= task_date + AND #{query.endDate} >= inspector_date ORDER BY @@ -2078,10 +2078,10 @@ AND part_desc LIKE '%' + #{query.partDesc} + '%' - AND create_date >= #{query.startDate} + AND inspector_date >= #{query.startDate} - AND #{query.endDate} >= create_date + AND #{query.endDate} >= inspector_date ORDER BY @@ -2367,10 +2367,10 @@ AND operation_desc LIKE '%' + #{query.operationDesc} + '%' - AND task_date >= #{query.startDate} + AND inspector_date >= #{query.startDate} - AND #{query.endDate} >= task_date + AND #{query.endDate} >= inspector_date ORDER BY @@ -2733,6 +2733,27 @@ WHERE site = #{site} and active = #{active} + + +