Skip to content

Commit

Permalink
添加excel导入功能,批量新增数据失败。
Browse files Browse the repository at this point in the history
  • Loading branch information
hellowHuaairen committed Apr 13, 2020
1 parent 4b9a447 commit 2a887b3
Show file tree
Hide file tree
Showing 9 changed files with 136 additions and 8 deletions.
Binary file added doc/快递.xls
Binary file not shown.
41 changes: 36 additions & 5 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -44,11 +44,10 @@
</dependency>

<!-- 热部署工具 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
<!-- <dependency>-->
<!-- <groupId>org.springframework.boot</groupId>-->
<!-- <artifactId>spring-boot-devtools</artifactId>-->
<!-- </dependency>-->

<dependency>
<groupId>org.springframework.boot</groupId>
Expand Down Expand Up @@ -122,6 +121,38 @@
<version>1.2.17</version>
</dependency>

<!-- hutools-->
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.3.0</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>4.1.2</version>
</dependency>
<dependency>
<groupId>xerces</groupId>
<artifactId>xercesImpl</artifactId>
<version>2.12.0</version>
</dependency>

<!-- https://mvnrepository.com/artifact/com.baomidou/mybatis-plus -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus</artifactId>
<version>3.3.0</version>
</dependency>


<dependency>
<groupId>commons-beanutils</groupId>
<artifactId>commons-beanutils</artifactId>
<version>1.9.3</version>
</dependency>


</dependencies>

<build>
Expand Down
1 change: 1 addition & 0 deletions src/main/java/com/wangzg/kuaidi/KuaiDiApplication.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.wangzg.kuaidi;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
Expand Down
10 changes: 10 additions & 0 deletions src/main/java/com/wangzg/kuaidi/domain/KuaiDi.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package com.wangzg.kuaidi.domain;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Builder;
import lombok.Data;

Expand All @@ -10,7 +12,9 @@
*/
@Data
@Builder
@TableName("kuaidi")
public class KuaiDi {
public KuaiDi(){}
public KuaiDi(Integer id, String userName, String phone, String kuaidiNo, String company, Date createTime) {
this.id = id;
this.userName = userName;
Expand All @@ -27,30 +31,36 @@ public KuaiDi(Integer id, String userName, String phone, String kuaidiNo, String
this.company = company;
}

@TableField("ID")
private Integer id;

/**
* 收件人姓名
*/
@TableField("ID")
private String userName;
/**
* 收件人电话
*/
@TableField("PHONE")
private String phone;

/**
* 快递单号
*/
@TableField("KUAIDI_NO")
private String kuaidiNo;

/**
* 快递公司名称(拼音)
*/
@TableField("COMPANY")
private String company;

/**
* 订单创建时间
*/
@TableField("CREATE_TIME")
private Date createTime;

}
3 changes: 2 additions & 1 deletion src/main/java/com/wangzg/kuaidi/mapper/KuaiDiMapper.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.wangzg.kuaidi.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.wangzg.kuaidi.domain.KuaiDi;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
Expand All @@ -9,7 +10,7 @@

@Component
@Mapper
public interface KuaiDiMapper {
public interface KuaiDiMapper extends BaseMapper<KuaiDi> {

// 查询
List<KuaiDi> selectList(KuaiDi kuaiDi);
Expand Down
7 changes: 6 additions & 1 deletion src/main/java/com/wangzg/kuaidi/service/KuaiDiService.java
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
package com.wangzg.kuaidi.service;


import com.baomidou.mybatisplus.extension.service.IService;
import com.wangzg.kuaidi.domain.KuaiDi;
import com.wangzg.kuaidi.util.Message;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

public interface KuaiDiService {
public interface KuaiDiService extends IService<KuaiDi> {

// 查询
List<KuaiDi> getList(String username, String phone);
Expand All @@ -19,4 +21,7 @@ public interface KuaiDiService {

// 删除
Message<KuaiDi> removeById(Integer id);

//导入文件内容
void importData(MultipartFile multipartFile) throws Exception;
}
Original file line number Diff line number Diff line change
@@ -1,19 +1,23 @@
package com.wangzg.kuaidi.service.impl;

import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.wangzg.kuaidi.domain.KuaiDi;
import com.wangzg.kuaidi.mapper.KuaiDiMapper;
import com.wangzg.kuaidi.service.KuaiDiService;
import com.wangzg.kuaidi.util.ExcelUtils;
import com.wangzg.kuaidi.util.Message;
import com.wangzg.kuaidi.util.MessageEnum;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;

import java.util.Date;
import java.util.List;

@Service
public class KuaiDiServiceImpl implements KuaiDiService {
public class KuaiDiServiceImpl extends ServiceImpl<KuaiDiMapper, KuaiDi> implements KuaiDiService {

// private final Logger log = LoggerFactory.getLogger(this.getClass());

Expand Down Expand Up @@ -97,4 +101,13 @@ public Message<KuaiDi> removeById(Integer id) {
return msg;
}

@Override
public void importData(MultipartFile multipartFile) throws Exception{
List<KuaiDi> kuaiDiList = ExcelUtils.getKuaiDiList(multipartFile.getInputStream());
if(CollectionUtil.isNotEmpty(kuaiDiList)){
//批量插入
this.saveBatch(kuaiDiList);
}
}

}
60 changes: 60 additions & 0 deletions src/main/java/com/wangzg/kuaidi/util/ExcelUtils.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
package com.wangzg.kuaidi.util;

import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.resource.ResourceUtil;
import cn.hutool.core.map.MapUtil;
import cn.hutool.poi.excel.ExcelReader;
import cn.hutool.poi.excel.ExcelUtil;
import com.wangzg.kuaidi.domain.KuaiDi;
import org.apache.commons.beanutils.BeanUtils;

import java.io.InputStream;
import java.io.InputStreamReader;
import java.lang.reflect.InvocationTargetException;
import java.util.*;

import static org.apache.commons.beanutils.BeanUtils.populate;

/**
* @author wangzg
* @date 2020/4/13
*/
public class ExcelUtils {

/**
* 获取第一个sheet页的内容
* @param inputStream
* @return
*/
public static List<KuaiDi> getKuaiDiList(InputStream inputStream) {
List<KuaiDi> kuaiDiList = new ArrayList<>();
if(Objects.nonNull(inputStream)){
ExcelReader excelReader = ExcelUtil.getReader(inputStream);
excelReader.addHeaderAlias("快递单号","kuaidiNo");
excelReader.addHeaderAlias("用户名","userName");
excelReader.addHeaderAlias("电话","phone");
excelReader.addHeaderAlias("快递公司","company");
List<Map<String,Object>> rowList = excelReader.readAll();
if(CollectionUtil.isNotEmpty(rowList)){
rowList.stream().forEach(r->{
KuaiDi kuaiDi = new KuaiDi();
try {
populate(kuaiDi,r);
kuaiDi.setCreateTime(new Date());
kuaiDiList.add(kuaiDi);
} catch (Exception e) {
e.printStackTrace();
}
});
}
}
return kuaiDiList;
}

public static void main(String[] args) {
List<KuaiDi> kuaiDiList = getKuaiDiList(ResourceUtil.getStream("D:\\快递.xls"));
kuaiDiList.stream().forEach(System.out::println);
}
}
7 changes: 7 additions & 0 deletions src/main/java/com/wangzg/kuaidi/web/KuaiDiController.java
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

Expand Down Expand Up @@ -47,4 +48,10 @@ Message delKuaiDi(Integer id) {
Message modifyKuaiDi(Integer id, String userName, String phone, String kuaiDiNo, String company) {
return kuaiDiService.modify(id, userName, phone, kuaiDiNo, company);
}

@PostMapping("/import")
public Message importData(MultipartFile multipartFile) throws Exception{
kuaiDiService.importData(multipartFile);
return new Message(200);
}
}

0 comments on commit 2a887b3

Please sign in to comment.