package cn.com.goldenwater.dcproj.service.impl; import cn.com.goldenwater.core.service.AbstractCrudService; import cn.com.goldenwater.dcproj.constValue.FlkdisProbleDealEnum; import cn.com.goldenwater.dcproj.constValue.FlkdisProbleTypeEnum; import cn.com.goldenwater.dcproj.dao.*; import cn.com.goldenwater.dcproj.dto.ExcelInspRsDto; import cn.com.goldenwater.dcproj.model.*; import cn.com.goldenwater.dcproj.param.AttAdXBaseParam; import cn.com.goldenwater.dcproj.param.ImpRsInfoParam; import cn.com.goldenwater.dcproj.service.AttAdXBaseService; import cn.com.goldenwater.dcproj.service.ImpXJFlkdisInfoService; import cn.com.goldenwater.dcproj.utils.GeoUtil; import cn.com.goldenwater.id.util.UuidUtil; import org.apache.commons.lang3.StringUtils; import org.apache.poi.xssf.usermodel.XSSFRow; import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFWorkbook; 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.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.util.*; /** * @author lune * @date 2019-7-23 */ @Service @Transactional public class ImpXJFlkdisInfoServiceImpl extends AbstractCrudService implements ImpXJFlkdisInfoService { @Autowired private ImpRsInfoDao impRsInfoDao; @Autowired private AttJskejianFlkdisBaseDao jskejianFlkdisBaseDao; @Autowired private AttAdXBaseService attAdXBaseService; public ImpXJFlkdisInfoServiceImpl(ImpRsInfoDao impRsInfoDao) { super(impRsInfoDao); this.impRsInfoDao = impRsInfoDao; } // @Override // public String insertFlkdisList(MultipartFile file) { // List rsvrObjList=new ArrayList<>(); // InputStream is = null; // try { // is = file.getInputStream(); // // 构造 XSSFWorkbook 对象,strPath 传入文件路径 // XSSFWorkbook xwb = new XSSFWorkbook(is); // // 读取第一章表格内容 // XSSFSheet sheet = xwb.getSheetAt(1); // // 定义 row、cell // XSSFRow row; // String cell; // for (int i = sheet.getFirstRowNum()+3; i < sheet.getPhysicalNumberOfRows(); i++) { // // row = sheet.getRow(i); // ExcelInspRsDto rsvrObj = new ExcelInspRsDto(); // int total = row.getPhysicalNumberOfCells(); // AttJskejianFlkdisBase jskejianFlkdisBase = new AttJskejianFlkdisBase(); // String shi=""; // String xian=""; // String lkName=""; // String cun=""; // String jdu=""; // String jfen=""; // String jm=""; // String wdu=""; // String wfen=""; // String wm=""; // String xianz=""; // String xiangz=""; // String cunz=""; // String pblmdesc=""; // String pblmType=""; // String zhan=""; // String cai=""; // String dui=""; // String jian=""; // String qita=""; // String xiao=""; // for (int j = row.getFirstCellNum(); j < total; j++) { // if(row.getCell(j)==null){ // continue; // } // cell = row.getCell(j).toString(); // cell = cell.trim(); // if(j==1){ // shi = cell; // }else if(j==2){ // xian = cell; // }else if(j==3){ // lkName = cell; // }else if(j==4){ // cun = cell; // }else if(j==5){ // jdu = cell; // }else if(j==6){ // jfen = cell; // }else if(j==7){ // jm = cell; // }else if(j==8){ // wdu = cell; // }else if(j==9){ // wfen = cell; // }else if(j==10){ // wm = cell; // }else if(j==11){ // xianz = cell; // }else if(j==12){ // xiangz = cell; // }else if(j==13){ // cunz = cell; // }else if(j==14){ // pblmdesc = cell; // }else if(j==15){ // zhan = cell; // if(StringUtils.isNotBlank(cell)) { // pblmType="1"; // } // }else if(j==16){ // cai = cell; // if(StringUtils.isNotBlank(cell)) { // pblmType="2"; // } // }else if(j==17){ // dui = cell; // if(StringUtils.isNotBlank(cell)) { // pblmType="3"; // } // }else if(j==18){ // jian = cell; // if(StringUtils.isNotBlank(cell)) { // pblmType="4"; // } // }else if(j==19){ // qita = cell; // if(StringUtils.isNotBlank(cell)) { // pblmType="5"; // } // }else if(j==20){ // xiao = cell; // if(xiao.contains(".")){ // xiao = xiao.substring(0,xiao.indexOf(".")); // } // } // } // jskejianFlkdisBase.setId(UuidUtil.uuid()); // String name = lkName + "("+shi+xian+cun+")"; // jskejianFlkdisBase.setName(name); // String adCode = getAdCd("福建省",shi,xian); // jskejianFlkdisBase.setAdCode(adCode); // jskejianFlkdisBase.setAdName(xian); // jskejianFlkdisBase.setRvReaLkName(lkName); // jskejianFlkdisBase.setLocation(cun); // jskejianFlkdisBase.setContRvonNameDuty(xianz); // jskejianFlkdisBase.setTownRvonNameDuty(xiangz); // jskejianFlkdisBase.setVilgRvonNameDuty(cunz); // jskejianFlkdisBase.setPblmDesc(pblmdesc); // jskejianFlkdisBase.setPblmType(pblmType); // jskejianFlkdisBase.setRectConc(xiao); // double d = 0.0; // double f = 0.0; // double m = 0.0; // if(StringUtils.isNotBlank(jdu)) { // d = Double.parseDouble(jdu); // } // if(StringUtils.isNotBlank(jfen)) { // f = Double.parseDouble(jfen); // } // if(StringUtils.isNotBlank(jm)) { // m = Double.parseDouble(jm); // } // double fen = f + (m / 60); // double du = (fen / 60) + Math.abs(d); // if (d < 0) { // du = -du; // } // jskejianFlkdisBase.setCenterX(Double.parseDouble(String.format("%.8f", du))); // d = 0.0; // f = 0.0; // m = 0.0; // if(StringUtils.isNotBlank(wdu)) { // d = Double.parseDouble(wdu); // } // if(StringUtils.isNotBlank(wfen)) { // f = Double.parseDouble(wfen); // } // if(StringUtils.isNotBlank(wm)) { // m = Double.parseDouble(wm); // } // fen = f + (m / 60); // du = (fen / 60) + Math.abs(d); // if (d < 0) { // du = -du; // } // jskejianFlkdisBase.setCenterY(Double.parseDouble(String.format("%.8f", du))); // Map map = GeoUtil.wgs84togcj02(jskejianFlkdisBase.getCenterX(),jskejianFlkdisBase.getCenterY()); // jskejianFlkdisBase.setGdX(map.get("lon")); // jskejianFlkdisBase.setGdY(map.get("lat")); // jskejianFlkdisBaseDao.insert(jskejianFlkdisBase); // } // } catch (Exception e) { // e.printStackTrace(); // } // return null; // } @Override public String insertFlkdisList(MultipartFile file,String persId) { List rsvrObjList=new ArrayList<>(); InputStream is = null; try { // 判断文件是否存在 is = file.getInputStream(); // 构造 XSSFWorkbook 对象,strPath 传入文件路径 XSSFWorkbook xwb = new XSSFWorkbook(is); // 读取第一章表格内容 XSSFSheet sheet = xwb.getSheetAt(0); // 定义 row、cell XSSFRow row; String cell; for (int i = sheet.getFirstRowNum()+2; i < sheet.getPhysicalNumberOfRows(); i++) { row = sheet.getRow(i); ExcelInspRsDto rsvrObj = new ExcelInspRsDto(); int total = row.getPhysicalNumberOfCells(); AttJskejianFlkdisBase jskejianFlkdisBase = new AttJskejianFlkdisBase(); String name=""; String river=""; String adname=""; String adcode=""; String loc=""; String xianz=""; String xiangz=""; String cunz=""; String pblmdesc=""; String pblmType=""; String xiao=""; String jd=""; String wd=""; for (int j = row.getFirstCellNum(); j < total; j++) { if(row.getCell(j)==null){ continue; } cell = row.getCell(j).toString(); cell = cell.trim(); if(j==1){ name = cell; }else if(j==2){ river = cell; }else if(j==3){ adcode = cell; }else if(j==4){ adname = cell; }else if(j==5){ loc = cell; }else if(j==6){ jd = cell; }else if(j==7){ wd = cell; }else if(j==8){ xianz = cell; }else if(j==9){ xiangz = cell; }else if(j==10){ cunz = cell; }else if(j==11){ pblmType = getFlkdisProblemNumByProblemName(cell); }else if(j==12){ pblmdesc = cell; }else if(j==13){ xiao = getFlkdisDealNumByDealName(cell); } } jskejianFlkdisBase.setId(UuidUtil.uuid()); // String name = lkName + "("+shi+xian+cun+")"; jskejianFlkdisBase.setName(name); // String adCode = getAdCd("福建省",shi,xian); jskejianFlkdisBase.setAdCode(adcode); jskejianFlkdisBase.setAdName(adname); jskejianFlkdisBase.setRvReaLkName(river); jskejianFlkdisBase.setLocation(loc); jskejianFlkdisBase.setContRvonNameDuty(xianz); jskejianFlkdisBase.setTownRvonNameDuty(xiangz); jskejianFlkdisBase.setVilgRvonNameDuty(cunz); jskejianFlkdisBase.setPblmDesc(pblmdesc); jskejianFlkdisBase.setPblmType(pblmType); jskejianFlkdisBase.setRectConc(xiao); jskejianFlkdisBase.setPersId(persId); jskejianFlkdisBase.setCenterX(Double.parseDouble(jd)); jskejianFlkdisBase.setCenterY(Double.parseDouble(wd)); Map map = GeoUtil.wgs84togcj02(jskejianFlkdisBase.getCenterX(),jskejianFlkdisBase.getCenterY()); jskejianFlkdisBase.setGdX(map.get("lon")); jskejianFlkdisBase.setGdY(map.get("lat")); jskejianFlkdisBase.setIntm(new Date()); jskejianFlkdisBase.setUptm(new Date()); jskejianFlkdisBaseDao.insert(jskejianFlkdisBase); } } catch (Exception e) { e.printStackTrace(); } return null; } @Override public String insertFlkdisListTest(String filepath,String persId) { List rsvrObjList=new ArrayList<>(); FileInputStream is = null; try { // 判断文件是否存在 File file = isExist(filepath); is = new FileInputStream(file); // 构造 XSSFWorkbook 对象,strPath 传入文件路径 XSSFWorkbook xwb = new XSSFWorkbook(is); // 读取第一章表格内容 XSSFSheet sheet = xwb.getSheetAt(0); // 定义 row、cell XSSFRow row; String cell; System.out.println(sheet.getPhysicalNumberOfRows()); System.out.println(sheet.getFirstRowNum()); for (int i = sheet.getFirstRowNum()+2; i < sheet.getPhysicalNumberOfRows(); i++) { row = sheet.getRow(i); ExcelInspRsDto rsvrObj = new ExcelInspRsDto(); int total = row.getPhysicalNumberOfCells(); AttJskejianFlkdisBase jskejianFlkdisBase = new AttJskejianFlkdisBase(); String name=""; String river=""; String adname=""; String adcode=""; String loc=""; String xianz=""; String xiangz=""; String cunz=""; String pblmdesc=""; String pblmType=""; String xiao=""; String jd=""; String wd=""; for (int j = row.getFirstCellNum(); j < total; j++) { if(row.getCell(j)==null){ continue; } cell = row.getCell(j).toString(); cell = cell.trim(); if(j==1){ name = cell; }else if(j==2){ river = cell; }else if(j==3){ adcode = cell; }else if(j==4){ adname = cell; }else if(j==5){ loc = cell; }else if(j==6){ jd = cell; }else if(j==7){ wd = cell; }else if(j==8){ xianz = cell; }else if(j==9){ xiangz = cell; }else if(j==10){ cunz = cell; }else if(j==11){ pblmType = getFlkdisProblemNumByProblemName(cell); }else if(j==12){ pblmdesc = cell; }else if(j==13){ xiao = getFlkdisDealNumByDealName(cell); } } jskejianFlkdisBase.setId(UuidUtil.uuid()); // String name = lkName + "("+shi+xian+cun+")"; jskejianFlkdisBase.setName(name); // String adCode = getAdCd("福建省",shi,xian); jskejianFlkdisBase.setAdCode(adcode); jskejianFlkdisBase.setAdName(adname); jskejianFlkdisBase.setRvReaLkName(river); jskejianFlkdisBase.setLocation(loc); jskejianFlkdisBase.setContRvonNameDuty(xianz); jskejianFlkdisBase.setTownRvonNameDuty(xiangz); jskejianFlkdisBase.setVilgRvonNameDuty(cunz); jskejianFlkdisBase.setPblmDesc(pblmdesc); jskejianFlkdisBase.setPblmType(pblmType); jskejianFlkdisBase.setRectConc(xiao); jskejianFlkdisBase.setPersId(persId); jskejianFlkdisBase.setCenterX(Double.parseDouble(jd)); jskejianFlkdisBase.setCenterY(Double.parseDouble(wd)); Map map = GeoUtil.wgs84togcj02(jskejianFlkdisBase.getCenterX(),jskejianFlkdisBase.getCenterY()); jskejianFlkdisBase.setGdX(map.get("lon")); jskejianFlkdisBase.setGdY(map.get("lat")); jskejianFlkdisBase.setIntm(new Date()); jskejianFlkdisBase.setUptm(new Date()); jskejianFlkdisBaseDao.insert(jskejianFlkdisBase); } } catch (Exception e) { e.printStackTrace(); } return null; } public String getFlkdisProblemNumByProblemName(String ProblemName){ FlkdisProbleTypeEnum flkdisProbleTypeEnum = FlkdisProbleTypeEnum.getEnumByProbNum(ProblemName); if(flkdisProbleTypeEnum == null){ return "填写有误!"; } return flkdisProbleTypeEnum.getProblemnum(); } public String getFlkdisDealNumByDealName(String DealName){ FlkdisProbleDealEnum flkdisProbleDealEnum = FlkdisProbleDealEnum.getEnumByDealName(DealName); if(flkdisProbleDealEnum == null){ return "填写有误!"; } return flkdisProbleDealEnum.getDealmnum(); } public String getAdCd(String sheng,String shi, String xian){ String adCd = ""; AttAdXBaseParam attAdXBaseParam = new AttAdXBaseParam(); AttAdXBase attAdXBase; if(StringUtils.isNotBlank(sheng)){ attAdXBaseParam.setAdName(sheng); attAdXBaseParam.setAdGrad("2"); attAdXBase = attAdXBaseService.getBy(attAdXBaseParam); if(attAdXBase!=null){ String shengCode = attAdXBase.getAdCode(); attAdXBaseParam.setAdFcode(shengCode); adCd = shengCode; }else { attAdXBaseParam.setAdName(""); attAdXBaseParam.setAdFullName(sheng); attAdXBase = attAdXBaseService.getBy(attAdXBaseParam); if(attAdXBase!=null){ String shengCode = attAdXBase.getAdCode(); attAdXBaseParam.setAdFcode(shengCode); adCd = shengCode; } } } if(StringUtils.isNotBlank(shi)){ attAdXBaseParam.setAdName(shi); attAdXBaseParam.setAdGrad("3"); attAdXBase = attAdXBaseService.getBy(attAdXBaseParam); if(attAdXBase!=null){ String shiCode = attAdXBase.getAdCode(); attAdXBaseParam.setAdFcode(shiCode); adCd = shiCode; }else { attAdXBaseParam.setAdName(""); attAdXBaseParam.setAdFullName(shi); attAdXBase = attAdXBaseService.getBy(attAdXBaseParam); if(attAdXBase!=null){ String shiCode = attAdXBase.getAdCode(); attAdXBaseParam.setAdFcode(shiCode); adCd = shiCode; } } } if(StringUtils.isNotBlank(xian)){ attAdXBaseParam.setAdName(xian); attAdXBaseParam.setAdGrad("4"); attAdXBase = attAdXBaseService.getBy(attAdXBaseParam); if(attAdXBase!=null){ adCd = attAdXBase.getAdCode(); }else{ attAdXBaseParam.setAdName(""); attAdXBaseParam.setAdFullName(xian); attAdXBase = attAdXBaseService.getBy(attAdXBaseParam); if(attAdXBase!=null){ adCd = attAdXBase.getAdCode(); } } } return adCd; } /** * 功能:判断文件是否存在 */ public static File isExist(String originUrl) throws IOException { // 判断文件是否存在 File file = new File(originUrl); if (!file.exists()) { throw new IOException("文件名为" + file.getName() + "Excel文件不存在!"); } return file; } }