Browse Source

数据采集优化

java8
wenkuan.shi 1 year ago
parent
commit
ef66fc3ed3
  1. 2
      src/main/java/com/xujie/sys/modules/reader/entity/EquipmentFolderLocation.java
  2. 22
      src/main/java/com/xujie/sys/modules/reader/service/impl/EquipmentFolderDetailServiceImpl.java
  3. 98
      src/main/java/com/xujie/sys/modules/reader/service/impl/GetInformationForExcelServiceImpl.java

2
src/main/java/com/xujie/sys/modules/reader/entity/EquipmentFolderLocation.java

@ -51,4 +51,6 @@ public class EquipmentFolderLocation {
private int registerNumInspection; private int registerNumInspection;
private String registerNumInspectionColumntype; private String registerNumInspectionColumntype;
private int unitId; private int unitId;
private String cuttingSymbol;
} }

22
src/main/java/com/xujie/sys/modules/reader/service/impl/EquipmentFolderDetailServiceImpl.java

@ -20,7 +20,7 @@ import java.util.Map;
public class EquipmentFolderDetailServiceImpl extends ServiceImpl<EquipmentFolderDetailMapper, EquipmentFolderDetailEntity> implements EquipmentFolderDetailService { public class EquipmentFolderDetailServiceImpl extends ServiceImpl<EquipmentFolderDetailMapper, EquipmentFolderDetailEntity> implements EquipmentFolderDetailService {
public static void main(String[] args) { public static void main(String[] args) {
String file = "D:\\桌面\\cs\\剥离力.xls";
String file = "D:\\桌面\\cs\\硬标-2.1.xls";
File excelFile = new File(file); File excelFile = new File(file);
List<Map<Integer, String>> list = new ArrayList<>(); List<Map<Integer, String>> list = new ArrayList<>();
try { try {
@ -30,7 +30,7 @@ public class EquipmentFolderDetailServiceImpl extends ServiceImpl<EquipmentFolde
.sheet() .sheet()
.doReadSync(); .doReadSync();
log.info("获取的内容: {}" ,list);
// log.info("获取的内容: {}" ,list);
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
log.info("读取文件失败,文件为:" + file + "失败日志:" + e.getMessage()); log.info("读取文件失败,文件为:" + file + "失败日志:" + e.getMessage());
@ -38,17 +38,11 @@ public class EquipmentFolderDetailServiceImpl extends ServiceImpl<EquipmentFolde
if (CollectionUtils.isEmpty(list)) { if (CollectionUtils.isEmpty(list)) {
log.info("读取的文件为空,或不是excel格式的"); log.info("读取的文件为空,或不是excel格式的");
} }
List<String> values = new ArrayList<>();
boolean value=false;
// for (int i = 0; i < list.size(); i++) {
// if (StringUtils.isNotEmpty(list.get(i).get(3)) && list.get(i).get(3).equals("1")){
// value=true;
// }
// if (value){
// values.add(list.get(i).get(3));
// values.add(list.get(i).get(4));
// }
// }
// log.info("获取的内容为: {}" ,values);
String[] split = list.get(1).get(0).split("\t");
String[] split1 = list.get(1).get(0).split("\\s+");
log.info("获取的内容: {}" ,split);
log.info("获取的内容: {}" ,split1);
} }
} }

98
src/main/java/com/xujie/sys/modules/reader/service/impl/GetInformationForExcelServiceImpl.java

@ -131,8 +131,7 @@ public class GetInformationForExcelServiceImpl extends ServiceImpl<GetInformatio
params.add(fileNo); params.add(fileNo);
List<Map<String, Object>> resultList = procedureDao.getProcedureData("Equipment_batch_no", params); List<Map<String, Object>> resultList = procedureDao.getProcedureData("Equipment_batch_no", params);
Integer batchNo ;
Integer batchNo =null;
//在所有的数据新增玩之后 , 对应的获取批次号进行新增或者修改(数据第一次就新增) //在所有的数据新增玩之后 , 对应的获取批次号进行新增或者修改(数据第一次就新增)
if (CollectionUtils.isEmpty(resultList)) { if (CollectionUtils.isEmpty(resultList)) {
EquipmentFolderSortEntity equipmentFolderSortEntity = new EquipmentFolderSortEntity(); EquipmentFolderSortEntity equipmentFolderSortEntity = new EquipmentFolderSortEntity();
@ -144,6 +143,15 @@ public class GetInformationForExcelServiceImpl extends ServiceImpl<GetInformatio
equipmentFolderSortService.save(equipmentFolderSortEntity); equipmentFolderSortService.save(equipmentFolderSortEntity);
//对应的批次号为1 //对应的批次号为1
batchNo = 1; batchNo = 1;
} else if ((Integer)resultList.get(0).get("batchNo")==null){
EquipmentFolderSortEntity equipmentFolderSortEntity = new EquipmentFolderSortEntity();
equipmentFolderSortEntity.setId((int)resultList.get(0).get("id"));
equipmentFolderSortEntity.setSite(equipmentFolderLocation.getSite());
equipmentFolderSortEntity.setBuNo(equipmentFolderLocation.getBuNo());
equipmentFolderSortEntity.setBatchNo(2);
equipmentFolderSortEntity.setFileNo(equipmentFolderLocation.getFileNo());
equipmentFolderSortEntity.setCreateDate(new Date());
equipmentFolderSortService.updateById(equipmentFolderSortEntity);
} else { } else {
Date createDate = (Date)resultList.get(0).get("createDate");//获取最近新增一条信息的时间 Date createDate = (Date)resultList.get(0).get("createDate");//获取最近新增一条信息的时间
Date date = new Date(); Date date = new Date();
@ -295,7 +303,7 @@ public class GetInformationForExcelServiceImpl extends ServiceImpl<GetInformatio
//判断什么时候开一开始获取数据的一个桥梁 //判断什么时候开一开始获取数据的一个桥梁
boolean value = false; boolean value = false;
//获取值
//获取值(根据某个字段对比或者从某一行开始获取值)
for (int i = 0; i < list.size(); i++) { for (int i = 0; i < list.size(); i++) {
if (StringUtils.isNotEmpty(equipmentFolderLocation.getExcelCompareFieldsX())) { if (StringUtils.isNotEmpty(equipmentFolderLocation.getExcelCompareFieldsX())) {
if (equipmentFolderLocation.getExcelCompareFieldsY() == 0 && equipmentFolderLocation.getExcelCompareFieldsY() == null) { if (equipmentFolderLocation.getExcelCompareFieldsY() == 0 && equipmentFolderLocation.getExcelCompareFieldsY() == null) {
@ -314,12 +322,22 @@ public class GetInformationForExcelServiceImpl extends ServiceImpl<GetInformatio
equipmentDataDetail.setItemNo(equipmentFolderLocation.getItemNo()); equipmentDataDetail.setItemNo(equipmentFolderLocation.getItemNo());
equipmentDataDetail.setFileNo(equipmentFolderLocation.getFileNo()); equipmentDataDetail.setFileNo(equipmentFolderLocation.getFileNo());
equipmentDataDetail.setCreateDate(new Date()); equipmentDataDetail.setCreateDate(new Date());
insertByEntity(equipmentDataDetail, list.get(i), null);
//如果数据在一个单元格里面那么需要切割数据
if (StringUtils.isNotEmpty(equipmentFolderLocation.getCuttingSymbol())){
if (equipmentFolderLocation.getExcelCompareFieldsY()==null){
throw new RuntimeException("读取设备信息为配置");
}
String data = list.get(i).get(equipmentFolderLocation.getExcelCompareFieldsY()-1);
String[] split = data.split(equipmentFolderLocation.getCuttingSymbol());
insertByEntity(equipmentDataDetail, new HashMap<>(), split);
}else {
insertByEntity(equipmentDataDetail, list.get(i), null);
}
equipmentDataDetail.setNum(index); equipmentDataDetail.setNum(index);
equipmentDataDetails.add(equipmentDataDetail); equipmentDataDetails.add(equipmentDataDetail);
index++; index++;
} }
} else if (equipmentFolderLocation.getInitialLine() != null) {
} else if (equipmentFolderLocation.getInitialLine() != null & equipmentFolderLocation.getDataRow()==null) {
if (i == equipmentFolderLocation.getInitialLine() - 1) { if (i == equipmentFolderLocation.getInitialLine() - 1) {
value = true; value = true;
} }
@ -332,13 +350,76 @@ public class GetInformationForExcelServiceImpl extends ServiceImpl<GetInformatio
equipmentDataDetail.setItemNo(equipmentFolderLocation.getItemNo()); equipmentDataDetail.setItemNo(equipmentFolderLocation.getItemNo());
equipmentDataDetail.setFileNo(equipmentFolderLocation.getFileNo()); equipmentDataDetail.setFileNo(equipmentFolderLocation.getFileNo());
equipmentDataDetail.setCreateDate(new Date()); equipmentDataDetail.setCreateDate(new Date());
insertByEntity(equipmentDataDetail, list.get(i), null);
if (StringUtils.isNotEmpty(equipmentFolderLocation.getCuttingSymbol())){
if (equipmentFolderLocation.getExcelCompareFieldsY()==null){
throw new RuntimeException("读取设备信息为配置");
}
String data = list.get(i).get(equipmentFolderLocation.getExcelCompareFieldsY()-1);
String[] split = data.split(equipmentFolderLocation.getCuttingSymbol());
insertByEntity(equipmentDataDetail, new HashMap<>(), split);
}else {
insertByEntity(equipmentDataDetail, list.get(i), null);
}
equipmentDataDetail.setNum(index); equipmentDataDetail.setNum(index);
equipmentDataDetails.add(equipmentDataDetail); equipmentDataDetails.add(equipmentDataDetail);
index++; index++;
} }
} }
} }
//从某一行开始获取多少行的值
if (equipmentFolderLocation.getDataRow()!=null && equipmentFolderLocation.getSkipLine()!=null){
List<Map<Integer, String>> record=new ArrayList<>();
Integer dataRow = equipmentFolderLocation.getDataRow();
Integer skipLine = equipmentFolderLocation.getSkipLine();
Integer initialLine = equipmentFolderLocation.getInitialLine();
while (initialLine < list.size()) {
// 取三个数据
if (initialLine + dataRow <= list.size()) {
List<Map<Integer, String>> threeItems = list.subList(initialLine, initialLine + dataRow);
record.addAll(threeItems); // 将取到的三个数据加入结果集合
} else {
for (int i = 1; i <= dataRow; i++) {
if (initialLine + i> list.size()){
dataRow=i-1;
if (dataRow!=0){
List<Map<Integer, String>> threeItems = list.subList(initialLine, initialLine + dataRow);
record.addAll(threeItems); // 将取到的三个数据加入结果集合
}
}
}
}
// 跳过两个数据
initialLine += dataRow+skipLine; // 跳过两个已取的数据继续下一个循环
}
for (int i = 0; i < record.size(); i++) {
EquipmentDataDetail equipmentDataDetail = new EquipmentDataDetail();
equipmentDataDetail.setEquipmentNo(equipmentFolderLocation.getEquipmentNo());
equipmentDataDetail.setBuNo(equipmentFolderLocation.getBuNo());
equipmentDataDetail.setSite(equipmentFolderLocation.getSite());
equipmentDataDetail.setBatchNo(batchNo);
equipmentDataDetail.setItemNo(equipmentFolderLocation.getItemNo());
equipmentDataDetail.setFileNo(equipmentFolderLocation.getFileNo());
equipmentDataDetail.setCreateDate(new Date());
if (StringUtils.isNotEmpty(equipmentFolderLocation.getCuttingSymbol())){
if (equipmentFolderLocation.getExcelCompareFieldsY()==null){
throw new RuntimeException("读取设备信息为配置");
}
String data = record.get(i).get(equipmentFolderLocation.getExcelCompareFieldsY()-1);
String[] split = data.split(equipmentFolderLocation.getCuttingSymbol());
insertByEntity(equipmentDataDetail, new HashMap<>(), split);
}else {
insertByEntity(equipmentDataDetail, record.get(i), null);
}
equipmentDataDetail.setNum(index);
equipmentDataDetails.add(equipmentDataDetail);
index++;
}
}
if (CollectionUtils.isNotEmpty(equipmentDataDetails)) { if (CollectionUtils.isNotEmpty(equipmentDataDetails)) {
equipmentDataDetails.get(equipmentDataDetails.size() - 1).setFileValue1(file); equipmentDataDetails.get(equipmentDataDetails.size() - 1).setFileValue1(file);
} else { } else {
@ -381,7 +462,7 @@ public class GetInformationForExcelServiceImpl extends ServiceImpl<GetInformatio
} }
for (String s : list) { for (String s : list) {
EquipmentDataDetail equipmentDataDetail = new EquipmentDataDetail(); EquipmentDataDetail equipmentDataDetail = new EquipmentDataDetail();
String[] data = s.split("\t");
String[] data = s.split(equipmentFolderLocation.getCuttingSymbol());
equipmentDataDetail.setEquipmentNo(equipmentFolderLocation.getEquipmentNo()); equipmentDataDetail.setEquipmentNo(equipmentFolderLocation.getEquipmentNo());
equipmentDataDetail.setBuNo(equipmentFolderLocation.getBuNo()); equipmentDataDetail.setBuNo(equipmentFolderLocation.getBuNo());
equipmentDataDetail.setSite(equipmentFolderLocation.getSite()); equipmentDataDetail.setSite(equipmentFolderLocation.getSite());
@ -440,7 +521,7 @@ public class GetInformationForExcelServiceImpl extends ServiceImpl<GetInformatio
} }
//对数据进行切割封装 //对数据进行切割封装
for (String info : list) { for (String info : list) {
String[] data = info.split("\t");
String[] data = info.split(equipmentFolderLocation.getCuttingSymbol());
EquipmentDataDetail equipmentDataDetail = new EquipmentDataDetail(); EquipmentDataDetail equipmentDataDetail = new EquipmentDataDetail();
equipmentDataDetail.setEquipmentNo(equipmentFolderLocation.getEquipmentNo()); equipmentDataDetail.setEquipmentNo(equipmentFolderLocation.getEquipmentNo());
equipmentDataDetail.setBuNo(equipmentFolderLocation.getBuNo()); equipmentDataDetail.setBuNo(equipmentFolderLocation.getBuNo());
@ -494,6 +575,7 @@ public class GetInformationForExcelServiceImpl extends ServiceImpl<GetInformatio
//保存数据到对应位置 //保存数据到对应位置
private static void insertByEntity(EquipmentDataDetail equipmentDataDetail, Map<Integer, String> hashMap, String[] strings) { private static void insertByEntity(EquipmentDataDetail equipmentDataDetail, Map<Integer, String> hashMap, String[] strings) {
if (!hashMap.isEmpty() && hashMap != null) { if (!hashMap.isEmpty() && hashMap != null) {
if (hashMap.get(0) != null) { if (hashMap.get(0) != null) {
equipmentDataDetail.setValue0(hashMap.get(0).trim()); equipmentDataDetail.setValue0(hashMap.get(0).trim());
} }

Loading…
Cancel
Save