导入--单页签

1.前台传文件
2.后台接收文件并转为实体List
@RequestMapping(value = "/to_impt", method = RequestMethod.POST)
public WebResponseContext toImpt(HttpServletRequest request
    , @RequestParam("file") MultipartFile multipartFile
    , @RequestParam(value = "handbookNo", required = true) String handbookNo
) {
   List<HandbookExportExg> list = FileUtils.importExcel(multipartFile, 0, 1, HandbookExportExg.class);
//把File文件转为List
public static <T> List<T> importExcel(MultipartFile file, Integer titleRows, Integer headerRows, Class<T> pojoClass) {
    if (file == null) {
        return null;
    }
    ImportParams params = new ImportParams();
    params.setTitleRows(titleRows);
    params.setHeadRows(headerRows);

    List<T> list = null;
    try {
        list = ExcelImportUtil.importExcel(file.getInputStream(), pojoClass, params);
    } catch (NoSuchElementException e) {
        // throw new NormalException("excel文件不能为空");
        e.printStackTrace();
    } catch (Exception e) {
        //throw new NormalException(e.getMessage());
        e.printStackTrace();
    }
    return list;
}

3.进行相关效验后,批量保存到数据库

public void bacthUpdateExg(List<HandbookExgInput> exgInputList, String handbookNo) {
    if (exgInputList == null || exgInputList.size() == 0) {
        return;
    }

    //3是测试数据,后续改成50
    if (exgInputList.size() <= BATCH_PERSIZE) {
        exgInputRepository.batchUpdateExgInput(exgInputList, handbookNo);
        return;
    }

    //对于数量超过N条的分批执行
    int exgInputSize = exgInputList.size();
    int times = exgInputSize % BATCH_PERSIZE == 0 ? exgInputSize / BATCH_PERSIZE : exgInputSize / BATCH_PERSIZE + 1;
    for (int i = 0; i < times; i++) {
        int beginIndex = i * BATCH_PERSIZE;
        int endIndex = (i + 1) * BATCH_PERSIZE > exgInputSize ? exgInputSize : (i + 1) * BATCH_PERSIZE;

        logger.info("批量保存--成品---数据,beginIndex:" + beginIndex + ",endIndex:" + endIndex);

        exgInputRepository.batchUpdateExgInput(exgInputList.subList(beginIndex, endIndex), handbookNo);
    }

}
发布了68 篇原创文章 · 获赞 19 · 访问量 24万+

猜你喜欢

转载自blog.csdn.net/tyjlearning/article/details/102685562
今日推荐