wu
2024-03-31 6db39c1dfb1dca966983652e4360672cb58a96f6
springboot-vue3/src/main/java/com/example/springboot/service/HomeService.java
@@ -21,6 +21,7 @@
import com.example.springboot.entity.GlassInfo;
import com.example.springboot.entity.MeasureSetting;
import com.example.springboot.entity.Queue;
import com.example.springboot.mapper.GlassInfoMapper;
import com.example.springboot.mapper.MeasureSettingMapper;
import com.example.springboot.mapper.QueueMapper;
@@ -61,64 +62,96 @@
        return Results;
    }
    //Execl表格 传入文件路径
    // 匹配逻辑
    public boolean Normal(double width, double height, String line) {
        List<Queue> ErrowQueues= QueueMapper.selectErrorQueues();
        if (ErrowQueues.size()>0) {
            //System.out.println("有匹配失败数据未去除");
            return false;
        }
        List<GlassInfo> Result = NormalGlassInfo(width, height, "1");
        if (Result.size() == 1) {
            // 匹配成功 就一种类型 添加数据
            GlassInfo GlassInfo = Result.get(0);
            QueueMapper.insert(GlassInfo.getGlassid(), width, height, 1);
            GlassInfoMapper.updatemeasurenumber(GlassInfo.getId());
            System.out.println("匹配成功");
            System.out.println(GlassInfo.getGlassid());
            return true;
        } else if (Result.size() > 1) {
            // 匹配失败 匹配到多条符合的数据 添加数据
            QueueMapper.insertMatchFailure(width, height, 0);
            System.out.println("匹配失败");
        } else {
            // 匹配失败 未找到符合的数据 添加数据
            QueueMapper.insertMatchFailure(width, height, -1);
            System.out.println("未找到符合的数据");
        }
        return false;
    }
    // Execl表格 传入文件路径
    public List ReadExecl(String filename) {
        try {
             // 创建文件对象
        File file = new File(filename);
        // 创建文件输入流对象
        FileInputStream inputStream = new FileInputStream(file);
        // 创建工作簿对象
        Workbook workbook = WorkbookFactory.create(inputStream);
        // 获取第一个工作表对象
        Sheet sheet = workbook.getSheetAt(0);
        // 创建一个实体类集合,用于存储Excel数据
        List Results=new ArrayList();
        int i=0;
        // 遍历行
        for (Row row : sheet) {
            // 遍历单元格
            List ResultRow=new ArrayList();
            //System.out.println();
            for (Cell cell : row) {
                String LastCellvalue="";
                // 判断单元格类型是否为公式类型
                if (cell.getCellType() == CellType.FORMULA) {
                    // 使用公式计算器计算单元格的值
                    FormulaEvaluator evaluator = workbook.getCreationHelper().createFormulaEvaluator();
                    CellValue cellValue = evaluator.evaluate(cell);
                    // 计算后的单元格值
                    LastCellvalue=cellValue.getNumberValue()+"";
                }else if(cell.getCellType() == CellType.NUMERIC){
                    double value = cell.getNumericCellValue();
                    if (value%1==0) {
                        LastCellvalue=Math.round(value)+"";
                    }else{
                        LastCellvalue=value+"";
                    }
                } else {
                    // 单元格值
                    LastCellvalue=cell.toString();
                }
                ResultRow.add(LastCellvalue);
                //System.out.print(LastCellvalue+"  ");
            // 创建文件对象
            File file = new File(filename);
            if (!file.exists()) {
                System.out.println("文件不存在! "+filename);
                return new ArrayList<>();
            }
            Results.add(ResultRow);
            i++;
        }
        System.out.println(i);
        // 关闭工作簿和输入流对象
        workbook.close();
        inputStream.close();
        return Results;
            // 创建文件输入流对象
            FileInputStream inputStream = new FileInputStream(file);
            // 创建工作簿对象
            Workbook workbook = WorkbookFactory.create(inputStream);
            // 获取第一个工作表对象
            Sheet sheet = workbook.getSheetAt(0);
            // 创建一个实体类集合,用于存储Excel数据
            List Results = new ArrayList();
            int i = 0;
            // 遍历行
            for (Row row : sheet) {
                // 遍历单元格
                List ResultRow = new ArrayList();
                // System.out.println();
                for (Cell cell : row) {
                    String LastCellvalue = "";
                    // 判断单元格类型是否为公式类型
                    if (cell.getCellType() == CellType.FORMULA) {
                        // 使用公式计算器计算单元格的值
                        FormulaEvaluator evaluator = workbook.getCreationHelper().createFormulaEvaluator();
                        CellValue cellValue = evaluator.evaluate(cell);
                        // 计算后的单元格值
                        LastCellvalue = cellValue.getNumberValue() + "";
                    } else if (cell.getCellType() == CellType.NUMERIC) {
                        double value = cell.getNumericCellValue();
                        if (value % 1 == 0) {
                            LastCellvalue = Math.round(value) + "";
                        } else {
                            LastCellvalue = value + "";
                        }
                    } else {
                        // 单元格值
                        LastCellvalue = cell.toString();
                    }
                    ResultRow.add(LastCellvalue);
                    // System.out.print(LastCellvalue+" ");
                }
                Results.add(ResultRow);
                i++;
            }
            System.out.println(i);
            // 关闭工作簿和输入流对象
            workbook.close();
            inputStream.close();
            return Results;
        } catch (Exception e) {
            // TODO: handle exception
            System.out.println("异常");
            return new ArrayList();
        }
    }
    }
}