地质所 沉降监测网建设项目
zmk
2024-05-17 8722d2bb39c6c0697647e77a879d14b28d3ef0f5
javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/service/impl/HoleServiceImpl.java
@@ -1,7 +1,11 @@
package com.javaweb.geo.service.impl;
import java.io.File;
import java.util.List;
import cn.hutool.poi.excel.ExcelReader;
import cn.hutool.poi.excel.ExcelUtil;
import com.javaweb.common.config.Global;
import com.javaweb.common.utils.DateUtils;
import com.javaweb.common.utils.IdGenerate;
import com.javaweb.geo.domain.*;
@@ -11,6 +15,7 @@
import org.springframework.stereotype.Service;
import com.javaweb.common.core.text.Convert;
import org.springframework.util.ObjectUtils;
import org.springframework.web.multipart.MultipartFile;
/**
 * 钻孔Service业务层处理
@@ -41,6 +46,12 @@
    @Autowired
    private HoleYantuMapper holeYantuMapper;
    @Autowired
    private IProjectService projectService;
    private String fileSaveDir = Global.getProfile() + "\\template\\" ;
    /**
     * 查询钻孔
@@ -99,44 +110,43 @@
     */
    @Override
    public int deleteHoleByIds(String ids) {
        // 批量删除钻孔下面的关联数据
        String[] strings = Convert.toStrArray(ids);
        if (!ObjectUtils.isEmpty(strings)) {
            for (String holeId : strings) {
                // =======标贯==========
                List<HoleBiaoguan> biaoguans = holeBiaoguanMapper.selectHoleBiaoguanByHoleId(holeId);
                String[] biaoguanIds = biaoguans.stream().map(HoleBiaoguan::getIds).toArray(String[]::new);
                // =======回次==========
                List<HoleHuici> holeHuicis = holeHuiciMapper.selectHoleHuiciByHoleId(holeId);
                String[] huiCiIds = holeHuicis.stream().map(HoleHuici::getIds).toArray(String[]::new);
                // =======人员==========
                List<HolePerson> persons = holePersonMapper.selectHolePersonByHoleId(holeId);
                String[] personIds = persons.stream().map(HolePerson::getIds).toArray(String[]::new);
                // =======取土==========
                List<HoleQutu> qutus = holeQutuMapper.selectHoleQutuByHoleId(holeId);
                String[] qutuIds = qutus.stream().map(HoleQutu::getIds).toArray(String[]::new);
                // =======水位==========
                List<HoleShuiwei> shuiweis = holeShuiweiMapper.selectHoleShuiWeiByHoleId(holeId);
                String[] shuiweiIds = shuiweis.stream().map(HoleShuiwei::getIds).toArray(String[]::new);
                // =======岩土==========
                List<HoleYantu> yantus = holeYantuMapper.selectHoleYantuListByHoleId(holeId);
                String[] yantusIds = yantus.stream().map(HoleYantu::getIds).toArray(String[]::new);
                holeBiaoguanMapper.deleteHoleBiaoguanByIds(biaoguanIds);
                holeHuiciMapper.deleteHoleHuiciByIds(huiCiIds);
                holePersonMapper.deleteHolePersonByIds(personIds);
                holeQutuMapper.deleteHoleQutuByIds(qutuIds);
                holeShuiweiMapper.deleteHoleShuiweiByIds(shuiweiIds);
                holeYantuMapper.deleteHoleYantuByIds(yantusIds);
            }
        }
//        String[] strings = Convert.toStrArray(ids);
//        if (!ObjectUtils.isEmpty(strings)) {
//            for (String holeId : strings) {
//
//                // =======标贯==========
//                List<HoleBiaoguan> biaoguans = holeBiaoguanMapper.selectHoleBiaoguanByHoleId(holeId);
//                String[] biaoguanIds = biaoguans.stream().map(HoleBiaoguan::getIds).toArray(String[]::new);
//
//                // =======回次==========
//                List<HoleHuici> holeHuicis = holeHuiciMapper.selectHoleHuiciByHoleId(holeId);
//                String[] huiCiIds = holeHuicis.stream().map(HoleHuici::getIds).toArray(String[]::new);
//
//                // =======人员==========
//                List<HolePerson> persons = holePersonMapper.selectHolePersonByHoleId(holeId);
//                String[] personIds = persons.stream().map(HolePerson::getIds).toArray(String[]::new);
//
//                // =======取土==========
//                List<HoleQutu> qutus = holeQutuMapper.selectHoleQutuByHoleId(holeId);
//                String[] qutuIds = qutus.stream().map(HoleQutu::getIds).toArray(String[]::new);
//
//                // =======水位==========
//                List<HoleShuiwei> shuiweis = holeShuiweiMapper.selectHoleShuiWeiByHoleId(holeId);
//                String[] shuiweiIds = shuiweis.stream().map(HoleShuiwei::getIds).toArray(String[]::new);
//
//                // =======岩土==========
//                List<HoleYantu> yantus = holeYantuMapper.selectHoleYantuListByHoleId(holeId);
//                String[] yantusIds = yantus.stream().map(HoleYantu::getIds).toArray(String[]::new);
//
//                holeBiaoguanMapper.deleteHoleBiaoguanByIds(biaoguanIds);
//                holeHuiciMapper.deleteHoleHuiciByIds(huiCiIds);
//                holePersonMapper.deleteHolePersonByIds(personIds);
//                holeQutuMapper.deleteHoleQutuByIds(qutuIds);
//                holeShuiweiMapper.deleteHoleShuiweiByIds(shuiweiIds);
//                holeYantuMapper.deleteHoleYantuByIds(yantusIds);
//            }
//        }
        return holeMapper.deleteHoleByIds(Convert.toStrArray(ids));
    }
@@ -151,4 +161,56 @@
    public int deleteHoleById(String ids) {
        return holeMapper.deleteHoleById(ids);
    }
    /**
     * 导入钻孔
     */
    @Override
    public String importHole(String projectId, MultipartFile file, boolean updateSupport) {
        try {
            String dest = saveExcel(file);
            List<Hole> list = readData(dest);
            if(!ObjectUtils.isEmpty(list)){
                for (Hole item : list) {
                    item.setProjectId(projectId);
                    insertHole(item);
                }
            }
        } catch (Exception e) {
            return e.toString();
        }
        return "导入完毕" ;
    }
    private String saveExcel(MultipartFile file) {
        String filename = file.getOriginalFilename();
        File dir = new File(fileSaveDir);
        if (!dir.exists()) {
            dir.mkdir();
        }
        String addr = fileSaveDir + filename;
        try {
            File dest = new File(addr);
            file.transferTo(dest);
        } catch (Exception e) {
            return null;
        }
        return addr;
    }
    private List<Hole> readData(String filepath) {
        ExcelReader reader = ExcelUtil.getReader(filepath, 0);
        reader.addHeaderAlias("钻孔编号", "code");
        reader.addHeaderAlias("孔口高程", "elevation");
        reader.addHeaderAlias("设计孔深", "depth");
        reader.addHeaderAlias("钻孔经度", "longitude");
        reader.addHeaderAlias("钻孔纬度", "latitude");
        reader.addHeaderAlias("进度", "pic1");
        List<Hole> list = reader.readAll(Hole.class);
        return list;
    }
}