|
@@ -1,6 +1,8 @@
|
|
|
package com.zjugis.ysgzybz.service.impl;
|
|
|
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
+import com.vividsolutions.jts.io.WKBWriter;
|
|
|
+import com.vividsolutions.jts.io.WKTReader;
|
|
|
import com.zjugis.ysgzybz.dao.BjkgMapper;
|
|
|
import com.zjugis.ysgzybz.domain.entity.BjKgDO;
|
|
|
import com.zjugis.ysgzybz.domain.vo.BjKgReqVO;
|
|
@@ -14,6 +16,7 @@ import org.springframework.stereotype.Service;
|
|
|
import javax.annotation.Resource;
|
|
|
import java.util.List;
|
|
|
import java.util.Objects;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
@Service
|
|
|
public class BjkgServiceImpl extends ServiceImpl<BjkgMapper, BjKgDO> implements BjkgService {
|
|
@@ -24,6 +27,68 @@ public class BjkgServiceImpl extends ServiceImpl<BjkgMapper, BjKgDO> implements
|
|
|
@Override
|
|
|
public Integer addBath(BjKgReqVO reqVO) {
|
|
|
if(Objects.isNull(reqVO.getData())) throw new NullPointerException("请求data字段数据不能为空!");
|
|
|
- return bjkgMapper.insertOrUpdate(reqVO.getData());
|
|
|
+ List<BjKgDO> datas = reqVO.getData();
|
|
|
+ System.out.println("获取推送的数据:"+datas.size());
|
|
|
+ List<BjKgDO> bjKgDOS = datas.stream().map(d->{
|
|
|
+ try{
|
|
|
+ com.vividsolutions.jts.geom.Geometry g = new WKTReader().read(d.getShape().toString());
|
|
|
+ byte[] wkb = new WKBWriter().write(g);
|
|
|
+ d.setShape(wkb);
|
|
|
+ }catch (Exception ex){
|
|
|
+ ex.printStackTrace();
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ return d;
|
|
|
+ }).collect(Collectors.toList());
|
|
|
+ new Thread(()->bjkgMapper.insertOrUpdate(bjKgDOS)).start();
|
|
|
+ return reqVO.getData().size();
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private SqlSessionFactory sqlSessionFactory;
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 批量插入功能优化,待定
|
|
|
+ * **/
|
|
|
+ @Override
|
|
|
+ public Integer addBath2(BjKgReqVO reqVO) {
|
|
|
+ if(Objects.isNull(reqVO.getData())) throw new NullPointerException("请求data字段数据不能为空!");
|
|
|
+ List<BjKgDO> datas = reqVO.getData();
|
|
|
+ System.out.println("获取推送的数据:"+datas.size());
|
|
|
+ List<BjKgDO> bjKgDOS = datas.stream().map(d->{
|
|
|
+ try{
|
|
|
+ com.vividsolutions.jts.geom.Geometry g = new WKTReader().read(d.getShape().toString());
|
|
|
+ byte[] wkb = new WKBWriter().write(g);
|
|
|
+ d.setShape(wkb);
|
|
|
+ }catch (Exception ex){
|
|
|
+ ex.printStackTrace();
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ return d;
|
|
|
+ }).collect(Collectors.toList());
|
|
|
+ if(bjKgDOS.size() > 0){
|
|
|
+ new Thread(()->{
|
|
|
+ Long start = System.currentTimeMillis();
|
|
|
+ SqlSession sqlSession = null;
|
|
|
+ try{
|
|
|
+ sqlSession = sqlSessionFactory.openSession(ExecutorType.BATCH);
|
|
|
+ BjkgMapper bjkgMapper1 = sqlSession.getMapper(BjkgMapper.class);
|
|
|
+ bjkgMapper1.delete(null);
|
|
|
+ for(BjKgDO item: bjKgDOS){
|
|
|
+ bjkgMapper1.insert(item);
|
|
|
+ }
|
|
|
+ sqlSession.commit();
|
|
|
+ }catch (Exception ex){
|
|
|
+ sqlSession.rollback();
|
|
|
+ ex.printStackTrace();
|
|
|
+ }finally {
|
|
|
+ sqlSession.close();
|
|
|
+ }
|
|
|
+ Long end = System.currentTimeMillis();
|
|
|
+ System.out.println("共耗时:"+(end - start));
|
|
|
+ }).start();
|
|
|
+ }
|
|
|
+ return datas.size();
|
|
|
}
|
|
|
}
|