package com.terra.coal.service; import com.terra.coal.entity.Coal54Entity; import com.terra.coal.entity.StaticData; import com.terra.coal.helper.StringHelper; import com.terra.coal.mapper.Coal54Mapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.io.IOException; import java.math.BigDecimal; import java.util.ArrayList; import java.util.List; /** * CoalService * @author WWW */ @Service public class MainService { @Autowired Coal54Mapper coal54Mapper; /** * 加载54数据(入库) */ public Integer load54Data(File f) throws IOException { FileReader fr = new FileReader(f); BufferedReader reader = new BufferedReader(fr); int rows = 0, cc = 0; String line = reader.readLine(); List list = new ArrayList<>(); while (null != line) { cc++; if (cc > 2) { Coal54Entity entity = getCoal54(line); if (null != entity) { list.add(entity); } } if (list.size() > 99) { rows += coal54Mapper.insertBatch(list); list.clear(); } line = reader.readLine(); } reader.close(); if (list.size() > 0) { rows += coal54Mapper.insertBatch(list); list.clear(); } return rows; } private Coal54Entity getCoal54(String str) { if (StringHelper.isEmpty(str)) { return null; } String[] strs = str.split(","); if (strs.length < StaticData.NINE) { return null; } // 36240.00000,-69460.00000,634.00000,1280.000,1280.000,128.000,岩石,1,1, try { BigDecimal x = new BigDecimal("4" + strs[1].replace("-", "")); BigDecimal y = new BigDecimal("50" + strs[0]); BigDecimal top = new BigDecimal(strs[2]); BigDecimal clong = new BigDecimal(strs[3]); BigDecimal width = new BigDecimal(strs[4]); BigDecimal height = new BigDecimal(strs[5]); String ctype = strs[6]; BigDecimal density = new BigDecimal(strs[7]); BigDecimal gangue = new BigDecimal(strs[8]); return new Coal54Entity(x, y, top, clong, width, height, ctype, density, gangue); } catch (Exception ex) { return null; } } }