曲树通 6 years ago
parent
commit
5854bf826c
  1. 56
      esua-epdc/epdc-module/epdc-custom/epdc-custom-server/src/main/java/com/elink/esua/epdc/config/StreamUtils.java
  2. 14
      esua-epdc/epdc-module/epdc-custom/epdc-custom-server/src/main/java/com/elink/esua/epdc/modules/epidemic/controller/EpidemicSentryPostController.java
  3. 11
      esua-epdc/epdc-module/epdc-custom/epdc-custom-server/src/main/java/com/elink/esua/epdc/modules/epidemic/service/EpidemicSentryPostService.java
  4. 50
      esua-epdc/epdc-module/epdc-custom/epdc-custom-server/src/main/java/com/elink/esua/epdc/modules/epidemic/service/impl/EpidemicSentryPostServiceImpl.java

56
esua-epdc/epdc-module/epdc-custom/epdc-custom-server/src/main/java/com/elink/esua/epdc/config/StreamUtils.java

@ -0,0 +1,56 @@
package com.elink.esua.epdc.config;
import com.elink.esua.epdc.commons.tools.exception.RenException;
import org.springframework.web.multipart.MultipartFile;
import java.io.*;
/**
* 接收文件转化File
* Created by liuhongwei on 2019/6/21.
*/
public class StreamUtils {
public static File conversionFile(MultipartFile file){
File toFile =null;
InputStream ins = null;
try {
// 转化字节流
ins = file.getInputStream();
// 获取文件名字
toFile = new File(file.getOriginalFilename());
// 字节转化文件
inputStreamToFile(ins, toFile);
ins.close();
} catch (IOException e) {
new RenException(500,"文件转化失败");
}
return toFile;
}
/**
* 流转化
* @param ins file
* @return
* @author liuhongwei
* @date 2019/6/14 14:07
*/
public static void inputStreamToFile(InputStream ins, File file) {
try {
OutputStream os = new FileOutputStream(file);
int bytesRead = 0;
byte[] buffer = new byte[8192];
while ((bytesRead = ins.read(buffer, 0, 8192)) != -1) {
os.write(buffer, 0, bytesRead);
}
os.close();
ins.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}

14
esua-epdc/epdc-module/epdc-custom/epdc-custom-server/src/main/java/com/elink/esua/epdc/modules/epidemic/controller/EpidemicSentryPostController.java

@ -30,6 +30,7 @@ import com.elink.esua.epdc.modules.epidemic.excel.EpidemicSentryPostExcel;
import com.elink.esua.epdc.modules.epidemic.service.EpidemicSentryPostService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
@ -104,4 +105,17 @@ public class EpidemicSentryPostController {
return new Result<List<EpidemicSentryPostDTO>>().ok(data);
}
/***
* 导入
* @param file
* @return com.elink.esua.epdc.commons.tools.utils.Result
* @author qushutong
* @date 2020/2/14 12:34
*/
@PostMapping("importExcel")
public Result importExcel(@RequestParam("file") MultipartFile file) {
return epidemicSentryPostService.insertEpidemicList(file);
}
}

11
esua-epdc/epdc-module/epdc-custom/epdc-custom-server/src/main/java/com/elink/esua/epdc/modules/epidemic/service/EpidemicSentryPostService.java

@ -19,8 +19,10 @@ package com.elink.esua.epdc.modules.epidemic.service;
import com.elink.esua.epdc.commons.mybatis.service.BaseService;
import com.elink.esua.epdc.commons.tools.page.PageData;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.dto.EpidemicSentryPostDTO;
import com.elink.esua.epdc.modules.epidemic.entity.EpidemicSentryPostEntity;
import org.springframework.web.multipart.MultipartFile;
import java.util.List;
import java.util.Map;
@ -101,4 +103,13 @@ public interface EpidemicSentryPostService extends BaseService<EpidemicSentryPos
* @Date: 2020-02-14
*/
List<EpidemicSentryPostDTO> listSentryPostName(EpidemicSentryPostDTO dto);
/***
* 导入表格
* @param
* @return void
* @author qushutong
* @date 2020/2/14 12:38
*/
Result insertEpidemicList(MultipartFile file);
}

50
esua-epdc/epdc-module/epdc-custom/epdc-custom-server/src/main/java/com/elink/esua/epdc/modules/epidemic/service/impl/EpidemicSentryPostServiceImpl.java

@ -17,22 +17,32 @@
package com.elink.esua.epdc.modules.epidemic.service.impl;
import cn.afterturn.easypoi.excel.ExcelImportUtil;
import cn.afterturn.easypoi.excel.entity.ImportParams;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.toolkit.SqlHelper;
import com.elink.esua.epdc.commons.mybatis.service.impl.BaseServiceImpl;
import com.elink.esua.epdc.commons.tools.page.PageData;
import com.elink.esua.epdc.commons.tools.utils.ConvertUtils;
import com.elink.esua.epdc.commons.tools.constant.FieldConstant;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.config.StreamUtils;
import com.elink.esua.epdc.modules.epidemic.dao.EpidemicSentryPostDao;
import com.elink.esua.epdc.dto.EpidemicSentryPostDTO;
import com.elink.esua.epdc.modules.epidemic.entity.EpidemicSentryPostEntity;
import com.elink.esua.epdc.modules.epidemic.excel.EpidemicSentryPostExcel;
import com.elink.esua.epdc.modules.epidemic.redis.EpidemicSentryPostRedis;
import com.elink.esua.epdc.modules.epidemic.service.EpidemicSentryPostService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
@ -65,8 +75,8 @@ public class EpidemicSentryPostServiceImpl extends BaseServiceImpl<EpidemicSentr
return ConvertUtils.sourceToTarget(entityList, EpidemicSentryPostDTO.class);
}
private QueryWrapper<EpidemicSentryPostEntity> getWrapper(Map<String, Object> params){
String id = (String)params.get(FieldConstant.ID_HUMP);
private QueryWrapper<EpidemicSentryPostEntity> getWrapper(Map<String, Object> params) {
String id = (String) params.get(FieldConstant.ID_HUMP);
QueryWrapper<EpidemicSentryPostEntity> wrapper = new QueryWrapper<>();
wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id);
@ -106,4 +116,40 @@ public class EpidemicSentryPostServiceImpl extends BaseServiceImpl<EpidemicSentr
return baseDao.selectListSentryPostName(dto);
}
@Override
public Result insertEpidemicList(MultipartFile file) {
File f = StreamUtils.conversionFile(file);
ImportParams importParams = new ImportParams();
List<EpidemicSentryPostEntity> oldEntityList = baseDao.selectList(new QueryWrapper<>());
List<EpidemicSentryPostExcel> epidemicExcelList = ExcelImportUtil.importExcel(f, EpidemicSentryPostExcel.class, importParams);
// third_sentry_post_id 已存在更新 不存在插入
List<EpidemicSentryPostDTO> newEpidemicList = this.updataOrSaveExcel(epidemicExcelList, oldEntityList);
List<EpidemicSentryPostEntity> epidemicList = ConvertUtils.sourceToTarget(newEpidemicList, EpidemicSentryPostEntity.class);
boolean b = insertBatch(epidemicList);
return new Result();
}
private List<EpidemicSentryPostDTO> updataOrSaveExcel(List<EpidemicSentryPostExcel> epidemicExcelList, List<EpidemicSentryPostEntity> oldEntityList) {
List<EpidemicSentryPostDTO> newEpidemicList = new ArrayList<>();
QueryWrapper<EpidemicSentryPostEntity> wrapper;
for (EpidemicSentryPostExcel item : epidemicExcelList) {
if (StringUtils.isNotBlank(item.getThirdSentryPostId())) {
item.setThirdSentryPostId(item.getThirdSentryPostId().trim());
}
for (EpidemicSentryPostEntity oldItem : oldEntityList) {
if (StringUtils.isNotBlank(item.getThirdSentryPostId()) && item.getThirdSentryPostId().equals(oldItem.getThirdSentryPostId())) {
//三方哨卡Id相同时 更新
EpidemicSentryPostEntity epidemicSentryPostEntity = ConvertUtils.sourceToTarget(item, EpidemicSentryPostEntity.class);
wrapper = new QueryWrapper<>();
wrapper.eq("third_sentry_post_id", epidemicSentryPostEntity.getThirdSentryPostId());
update(epidemicSentryPostEntity, wrapper);
epidemicExcelList.remove(item);
}
}
}
newEpidemicList = ConvertUtils.sourceToTarget(epidemicExcelList, EpidemicSentryPostDTO.class);
return newEpidemicList;
}
}
Loading…
Cancel
Save