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. 25
      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(); getInformationForExcelService.saveByExcel();
return R.ok(); 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") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private String createDate; private String createDate;
private Date createBy; 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 site;
private String buNo; private String buNo;
private String itemNo; private String itemNo;
//文件编号
private String fileNo;
} }

25
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.EasyExcel;
import com.alibaba.excel.support.ExcelTypeEnum; import com.alibaba.excel.support.ExcelTypeEnum;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.xujie.sys.modules.reader.dao.GetInformationForExcelMapper; import com.xujie.sys.modules.reader.dao.GetInformationForExcelMapper;
import com.xujie.sys.modules.reader.entity.EquipmentDataDetail; import com.xujie.sys.modules.reader.entity.EquipmentDataDetail;
@ -59,17 +60,37 @@ public class GetInformationForExcelServiceImpl extends ServiceImpl<GetInformatio
} }
private void saveInformation(String folderFiler,EquipmentFolderLocation excel) { private void saveInformation(String folderFiler,EquipmentFolderLocation excel) {
List<EquipmentDataDetail> equipmentDataDetails =new ArrayList<>();
//获取文件夹下所有文件 //获取文件夹下所有文件
List<File> files=getExcelFiles(folderFiler); List<File> files=getExcelFiles(folderFiler);
if(CollectionUtils.isEmpty(files)){ if(CollectionUtils.isEmpty(files)){
return; 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用来存储所有的的excel文件路径
List<String> fileName = new ArrayList<>(); List<String> fileName = new ArrayList<>();
for (File file : files) { for (File file : files) {
//找到.的索引
int dotIndex = file.getName().lastIndexOf(".");
String s = file.getName().substring(dotIndex + 1);
if (s.equals("csv")){
fileName.add(folderFiler+"\\"+file.getName()); fileName.add(folderFiler+"\\"+file.getName());
} }
}
//获取每个excel下的所有关于Test的两个值并保存 //获取每个excel下的所有关于Test的两个值并保存
for (String s : fileName) { for (String s : fileName) {
File excelFile = new File(s); File excelFile = new File(s);
@ -90,7 +111,9 @@ public class GetInformationForExcelServiceImpl extends ServiceImpl<GetInformatio
equipmentDataDetail.setEquipmentNo(excel.getEquipmentNo()); equipmentDataDetail.setEquipmentNo(excel.getEquipmentNo());
equipmentDataDetail.setBuNo(excel.getBuNo()); equipmentDataDetail.setBuNo(excel.getBuNo());
equipmentDataDetail.setSite(excel.getSite()); equipmentDataDetail.setSite(excel.getSite());
equipmentDataDetail.setBatchNo(batchNo);
equipmentDataDetail.setItemNo(excel.getItemNo()); equipmentDataDetail.setItemNo(excel.getItemNo());
equipmentDataDetail.setFileNo(excel.getFileNo());
equipmentDataDetail.setValue0(list.get(i).get(1)); equipmentDataDetail.setValue0(list.get(i).get(1));
equipmentDataDetail.setValue1(list.get(i).get(3)); equipmentDataDetail.setValue1(list.get(i).get(3));
equipmentDataDetails.add(equipmentDataDetail); equipmentDataDetails.add(equipmentDataDetail);

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

@ -18,12 +18,14 @@
<result column="value9" jdbcType="VARCHAR" property="value9" /> <result column="value9" jdbcType="VARCHAR" property="value9" />
<result column="create_date" jdbcType="VARCHAR" property="createDate" /> <result column="create_date" jdbcType="VARCHAR" property="createDate" />
<result column="create_by" jdbcType="VARCHAR" property="createBy" /> <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> </resultMap>
<insert id="saveByExcels" parameterType="com.xujie.sys.modules.reader.entity.EquipmentDataDetail"> <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 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> </foreach>
</insert> </insert>
</mapper> </mapper>
Loading…
Cancel
Save