Browse Source

每十秒读取文件夹下的excel文件并保存到数据库,修改

java8
文宽 史 2 years ago
parent
commit
fd59fc1d43
  1. 10
      src/main/java/com/xujie/sys/modules/reader/controller/GetInformationForExcelController.java
  2. 4
      src/main/java/com/xujie/sys/modules/reader/entity/EquipmentDataDetail.java
  3. 2
      src/main/java/com/xujie/sys/modules/reader/entity/EquipmentFolderLocation.java
  4. 29
      src/main/java/com/xujie/sys/modules/reader/service/impl/GetInformationForExcelServiceImpl.java
  5. 8
      src/main/resources/mapper/reader/GetInformationForExcelMapper.xml

10
src/main/java/com/xujie/sys/modules/reader/controller/GetInformationForExcelController.java

@ -21,4 +21,14 @@ public class GetInformationForExcelController {
getInformationForExcelService.saveByExcel();
return R.ok();
}
// public static void main(String[] args) throws Exception {
// String filePath ="E:\\file\\cs.tff";
// BufferedReader bufferedReader = new BufferedReader(new FileReader(filePath));
// String line;
// while ((line=bufferedReader.readLine())!=null){
// System.out.println(line);
// }
// }
}

4
src/main/java/com/xujie/sys/modules/reader/entity/EquipmentDataDetail.java

@ -30,6 +30,10 @@ public class EquipmentDataDetail {
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private String createDate;
private Date createBy;
//批次号
private int batchNo;
//文件编号
private String fileNo;
}

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

@ -15,5 +15,7 @@ public class EquipmentFolderLocation {
private String site;
private String buNo;
private String itemNo;
//文件编号
private String fileNo;
}

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

@ -2,6 +2,7 @@ package com.xujie.sys.modules.reader.service.impl;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.support.ExcelTypeEnum;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.xujie.sys.modules.reader.dao.GetInformationForExcelMapper;
import com.xujie.sys.modules.reader.entity.EquipmentDataDetail;
@ -59,16 +60,36 @@ public class GetInformationForExcelServiceImpl extends ServiceImpl<GetInformatio
}
private void saveInformation(String folderFiler,EquipmentFolderLocation excel) {
List<EquipmentDataDetail> equipmentDataDetails =new ArrayList<>();
//获取文件夹下所有文件
List<File> files=getExcelFiles(folderFiler);
if(CollectionUtils.isEmpty(files)){
return;
}
//判断这个批次号应该是多少
LambdaQueryWrapper<EquipmentDataDetail> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(EquipmentDataDetail::getBuNo,excel.getBuNo());
queryWrapper.eq(EquipmentDataDetail::getSite,excel.getSite());
queryWrapper.eq(EquipmentDataDetail::getFileNo,excel.getFileNo());
List<EquipmentDataDetail> equipments = this.list(queryWrapper);
//定义批次号
Integer batchNo;
if (CollectionUtils.isEmpty(equipments)){
batchNo=1;
}else {
batchNo=equipments.get(equipments.size()-1).getBatchNo()+1;
}
List<EquipmentDataDetail> equipmentDataDetails =new ArrayList<>();
//创建一个list用来存储所有的的excel文件路径
List<String> fileName = new ArrayList<>();
for (File file : files) {
fileName.add(folderFiler+"\\"+file.getName());
//找到.的索引
int dotIndex = file.getName().lastIndexOf(".");
String s = file.getName().substring(dotIndex + 1);
if (s.equals("csv")){
fileName.add(folderFiler+"\\"+file.getName());
}
}
//获取每个excel下的所有关于Test的两个值并保存
for (String s : fileName) {
@ -90,7 +111,9 @@ public class GetInformationForExcelServiceImpl extends ServiceImpl<GetInformatio
equipmentDataDetail.setEquipmentNo(excel.getEquipmentNo());
equipmentDataDetail.setBuNo(excel.getBuNo());
equipmentDataDetail.setSite(excel.getSite());
equipmentDataDetail.setBatchNo(batchNo);
equipmentDataDetail.setItemNo(excel.getItemNo());
equipmentDataDetail.setFileNo(excel.getFileNo());
equipmentDataDetail.setValue0(list.get(i).get(1));
equipmentDataDetail.setValue1(list.get(i).get(3));
equipmentDataDetails.add(equipmentDataDetail);
@ -107,7 +130,7 @@ public class GetInformationForExcelServiceImpl extends ServiceImpl<GetInformatio
//获取本地文件夹下所有excel表格
File[] files = file.listFiles();
List<File> excelFiles=new ArrayList<>();
if (file !=null){
if (file !=null ){
for (File file1 : files) {
if (file1.isFile()){
excelFiles.add(file1);

8
src/main/resources/mapper/reader/GetInformationForExcelMapper.xml

@ -18,12 +18,14 @@
<result column="value9" jdbcType="VARCHAR" property="value9" />
<result column="create_date" jdbcType="VARCHAR" property="createDate" />
<result column="create_by" jdbcType="VARCHAR" property="createBy" />
<result column="batch_no" jdbcType="VARCHAR" property="batchNo" />
<result column="file_no" jdbcType="VARCHAR" property="fileNo" />
</resultMap>
<insert id="saveByExcels" parameterType="com.xujie.sys.modules.reader.entity.EquipmentDataDetail">
insert into Equipment_data_detail(site,bu_no,equipment_no,item_no,value0,value1,value2,value3,value4,value5,value6,value7,value8,value9,create_date,create_by)
insert into Equipment_data_detail(site,bu_no,equipment_no,item_no,value0,value1,value2,value3,value4,value5,value6,value7,value8,value9,create_date,create_by,batch_no,file_no)
values
<foreach collection="list" item="item" index="inder" separator=",">
(#{item.site},#{item.buNo},#{item.equipmentNo},#{item.itemNo},#{item.value0},#{item.value1},#{item.value2},#{item.value3},#{item.value4},#{item.value5},#{item.value6},#{item.value7},#{item.value8},#{item.value9},#{item.createDate},#{item.createBy})
<foreach collection="list" item="item" index="index" separator=",">
(#{item.site},#{item.buNo},#{item.equipmentNo},#{item.itemNo},#{item.value0},#{item.value1},#{item.value2},#{item.value3},#{item.value4},#{item.value5},#{item.value6},#{item.value7},#{item.value8},#{item.value9},#{item.createDate},#{item.createBy},#{item.batchNo},#{item.fileNo})
</foreach>
</insert>
</mapper>
Loading…
Cancel
Save