diff --git a/modules/i3plus-ext-mes-apiservice/pom.xml b/modules/i3plus-ext-mes-apiservice/pom.xml
index 3794804..339ba20 100644
--- a/modules/i3plus-ext-mes-apiservice/pom.xml
+++ b/modules/i3plus-ext-mes-apiservice/pom.xml
@@ -110,7 +110,12 @@
com.itextpdf
itextpdf
-
+
+ cn.hutool
+ hutool-all
+ 5.8.16
+ compile
+
org.apache.cxf
diff --git a/modules/i3plus-ext-mes-apiservice/src/groovy/Mes2Pisces/MesToPiscesProductionAssembly.groovy b/modules/i3plus-ext-mes-apiservice/src/groovy/Mes2Pisces/MesToPiscesProductionAssembly.groovy
index 15bea67..deb8a58 100644
--- a/modules/i3plus-ext-mes-apiservice/src/groovy/Mes2Pisces/MesToPiscesProductionAssembly.groovy
+++ b/modules/i3plus-ext-mes-apiservice/src/groovy/Mes2Pisces/MesToPiscesProductionAssembly.groovy
@@ -49,6 +49,8 @@ class MesToPiscesProductionAssembly {
} else {
LOGGER.info("条码:{}信息不存在", String.valueOf(rowMap.get("assembly_sn")))
}
+ }else{
+ rowMap.put("ASSEMBLY_BARCODE_ID", null)
}
//条码
if (!StringUtils.isEmpty(rowMap.get("product_sn"))) {
@@ -58,6 +60,8 @@ class MesToPiscesProductionAssembly {
} else {
LOGGER.info("条码:{}信息不存在", String.valueOf(rowMap.get("product_sn")))
}
+ }else{
+ rowMap.put("BARCODE_ID", null)
}
//加工记录表
if (!StringUtils.isEmpty(rowMap.get("production_record_id"))) {
@@ -71,6 +75,8 @@ class MesToPiscesProductionAssembly {
} else {
LOGGER.info("原材料容器id:{},信息不存在", String.valueOf(rowMap.get(rowMap.get("production_record_id"))))
}
+ }else{
+ rowMap.put("PRODUCTION_LOG_FID", null)
}
//获取设备FID
if (!StringUtils.isEmpty(rowMap.get("equipment_code"))) {
@@ -78,8 +84,10 @@ class MesToPiscesProductionAssembly {
if (!Objects.isNull(mesEquipment)) {
rowMap.put("EQUIPMENT_FID", mesEquipment.getFid())
} else {
- LOGGER.info("设备代码:{}信息不存在", String.valueOf(rowMap.get("EQUIPMENT_FID")))
+ LOGGER.info("设备代码:{}信息不存在", String.valueOf(rowMap.get("equipment_code")))
}
+ }else{
+ rowMap.put("EQUIPMENT_FID", null)
}
}
return srcData;
diff --git a/modules/i3plus-ext-mes-apiservice/src/groovy/Mes2Pisces/MesToPiscesRawPartCharging.groovy b/modules/i3plus-ext-mes-apiservice/src/groovy/Mes2Pisces/MesToPiscesRawPartCharging.groovy
index 5cba587..a7158af 100644
--- a/modules/i3plus-ext-mes-apiservice/src/groovy/Mes2Pisces/MesToPiscesRawPartCharging.groovy
+++ b/modules/i3plus-ext-mes-apiservice/src/groovy/Mes2Pisces/MesToPiscesRawPartCharging.groovy
@@ -51,6 +51,9 @@ class MesToPiscesRawPartCharging {
} else {
LOGGER.info("原材料容器id:{},信息不存在", String.valueOf(rowMap.get(rowMap.get("package_id"))))
}
+ }else{
+ rowMap.put("PACKAGE_NAME", null)
+ rowMap.put("PACKAGE_FID", null)
}
//防错配置明细
if (!StringUtils.isEmpty(rowMap.get("package_detail_id"))) {
@@ -64,6 +67,8 @@ class MesToPiscesRawPartCharging {
} else {
LOGGER.info("原材料容器明细id:{},信息不存在", String.valueOf(rowMap.get(rowMap.get("package_detail_id"))))
}
+ }else{
+ rowMap.put("PACKAGE_DETAIL_FID", null)
}
//原材料容器零件关系表
if (!StringUtils.isEmpty(rowMap.get("package_part_id"))) {
@@ -77,6 +82,8 @@ class MesToPiscesRawPartCharging {
} else {
LOGGER.info("原材料容器明细id:{},信息不存在", String.valueOf(rowMap.get(rowMap.get("package_part_id"))))
}
+ }else {
+ rowMap.put("PACKAGE_PART_FID", null)
}
}
return srcData;
diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/utils/CsvImportUtil.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/utils/CsvImportUtil.java
new file mode 100644
index 0000000..28b98cd
--- /dev/null
+++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/utils/CsvImportUtil.java
@@ -0,0 +1,59 @@
+package cn.estsh.i3plus.ext.mes.apiservice.utils;
+
+import cn.estsh.i3plus.mes.apiservice.util.BeanMapUtils;
+import cn.hutool.core.text.csv.*;
+import cn.hutool.core.util.CharsetUtil;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+@Slf4j
+public class CsvImportUtil {
+
+ // 读取csv中的数据
+ public static List csvImports(MultipartFile file, Class dbClass) {
+ //2. 进行配置
+ CsvReadConfig csvReadConfig = new CsvReadConfig();
+ // 是否跳过空白行
+ csvReadConfig.setSkipEmptyRows(true);
+ // 是否设置首行为标题行
+ csvReadConfig.setContainsHeader(true);
+ //构建 CsvReader 对象
+ CsvReader csvReader = CsvUtil.getReader(csvReadConfig);
+ // 这里转了下 可能会产生临时文件,临时文件目录可以设置,也可以立马删除
+ CsvData read = csvReader.read(multipartFile2File(file), CharsetUtil.CHARSET_UTF_8);
+ List