| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153 |
- package cn.com.goldenwater.dcproj.service.impl.general;
- import cn.com.goldenwater.dcproj.model.AttJskejianFlkdisBase;
- import cn.com.goldenwater.dcproj.service.AttJskejianFlkdisBaseService;
- import cn.com.goldenwater.dcproj.service.ExcelImportService;
- import cn.com.goldenwater.dcproj.util.MultipartFileToFileUtil;
- import cn.com.goldenwater.dcproj.util.ReadExcelUtil;
- import cn.com.goldenwater.dcproj.utils.GeoUtil;
- import cn.com.goldenwater.id.util.UuidUtil;
- import org.apache.commons.lang3.StringUtils;
- import org.apache.poi.ss.usermodel.Row;
- 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.util.Date;
- import java.util.List;
- import java.util.Map;
- @Service
- @Transactional(rollbackFor = Exception.class)
- public class ExcelImportServiceImpl implements ExcelImportService {
- @Autowired
- private AttJskejianFlkdisBaseService attJskejianFlkdisBaseService;
- @Override
- public String excelImport(MultipartFile file) throws Exception {
- List<Row> list = ReadExcelUtil.readExcelData(MultipartFileToFileUtil.multipartFileToFile(file));
- if (list == null || list.size() == 0) {
- return "读取表格 0 条数据!";
- }
- int ret = 0;
- for (Row row : list) {
- try {
- AttJskejianFlkdisBase base = row2Base(row);
- if (base != null) {
- int res = attJskejianFlkdisBaseService.insert(base);
- if (res != 0) {
- ret++;
- }
- }
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- return "读取表格" + list.size() + "条数据,成功导入" + ret + "条数据。";
- }
- private AttJskejianFlkdisBase row2Base(Row row) {
- AttJskejianFlkdisBase base = new AttJskejianFlkdisBase();
- base.setId(UuidUtil.uuid());
- base.setName(String.valueOf(row.getCell(1)));
- base.setRvReaLkName(String.valueOf(row.getCell(2)));
- base.setAdCode(String.valueOf(row.getCell(3)));
- base.setAdName(String.valueOf(row.getCell(4)));
- base.setLocation(String.valueOf(row.getCell(5)));
- Double centerX = null;
- Double gdX = null;
- if (StringUtils.isNotBlank(ReadExcelUtil.getValue(row.getCell(6)))) {
- centerX = Double.parseDouble(String.valueOf(row.getCell(6)));
- }
- base.setCenterX(centerX);
- Double centerY = null;
- if (StringUtils.isNotBlank(ReadExcelUtil.getValue(row.getCell(7)))) {
- centerY = Double.parseDouble(String.valueOf(row.getCell(7)));
- }
- if (centerX != null && centerY != null) {
- Map<String, Double> map = GeoUtil.wgs84togcj02(centerX, centerY);
- base.setGdX(map.get("lon"));
- base.setGdY(map.get("lat"));
- }
- base.setCenterY(centerY);
- base.setContRvonNameDuty(String.valueOf(row.getCell(8)));
- base.setTownRvonNameDuty(String.valueOf(row.getCell(9)));
- base.setVilgRvonNameDuty(String.valueOf(row.getCell(10)));
- base.setPblmType(pblmTypeConversion(String.valueOf(row.getCell(11))));
- base.setPblmDesc(String.valueOf(row.getCell(12)));
- base.setRectConc(rectConcConversion(String.valueOf(row.getCell(13))));
- base.setIntm(new Date());
- base.setUptm(new Date());
- // 名称不能为空
- if (StringUtils.isBlank(base.getName())) {
- return null;
- }
- // 去重判断
- // AttJskejianFlkdisBaseParam baseParam = Builder.of(AttJskejianFlkdisBaseParam::new)
- // .with(AttJskejianFlkdisBaseParam::setName, base.getName())
- // .with(AttJskejianFlkdisBaseParam::setPblmType, base.getPblmType())
- // .with(AttJskejianFlkdisBaseParam::setPblmDesc, base.getPblmDesc())
- // .build();
- //
- // List<AttJskejianFlkdisBase> attJskejianFlkdisBaseList = attJskejianFlkdisBaseService.findList(baseParam);
- //
- // if (attJskejianFlkdisBaseList != null && attJskejianFlkdisBaseList.size() > 0) {
- // return null;
- // }
- return base;
- }
- private String pblmTypeConversion(String pblmType) {
- if (StringUtils.isBlank(pblmType)) {
- return pblmType;
- }
- switch (pblmType) {
- case "乱占":
- return "1";
- case "乱采":
- return "2";
- case "乱堆":
- return "3";
- case "乱建":
- return "4";
- case "其他":
- return "5";
- default:
- if (pblmType.length() == 1) {
- return pblmType;
- } else {
- return "";
- }
- }
- }
- private String rectConcConversion(String rectConc) {
- if (StringUtils.isBlank(rectConc)) {
- return rectConc;
- }
- switch (rectConc) {
- case "已销号":
- return "1";
- case "未销号":
- return "2";
- case "新增":
- return "3";
- default:
- if (rectConc.length() == 1) {
- return rectConc;
- } else {
- return "";
- }
- }
- }
- }
|