青羊经侦大队-数据平台
baizonghao
2023-03-21 75591d24b70c37c5325f88b0f26888056eb2f20d
src/main/java/com/example/jz/service/impl/ReportServiceImpl.java
@@ -42,6 +42,7 @@
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.function.Consumer;
import java.util.stream.Collectors;
/**
@@ -105,60 +106,63 @@
        groupUserDao.delete(new QueryWrapper<GroupUser>().eq("user_id", id).eq("group_id", groupId));
    }
    @Override
    @SneakyThrows
    public void exportReporter(Integer id, HttpServletResponse response) {
        //查询报案人相关信息通过案件
        List<Report> reports = reportDao.selectList(new QueryWrapper<Report>().eq("cause_id", id).orderByDesc());
        ArrayList<ExportExcelReportVo> exportExcelReportVos = new ArrayList<>();
        reports.forEach(
                a -> {
                    ExportExcelReportVo exportExcelReportVo = new ExportExcelReportVo();
                    User user = userDao.selectOne(new QueryWrapper<User>().eq("id", a.getUserId()));
                    BeanUtils.copyProperties(a, exportExcelReportVo);
                    exportExcelReportVo.setUserIdcard(user.getUserIdcard());
                    exportExcelReportVo.setUserMobile(user.getUserMobile());
                    exportExcelReportVo.setRealName(user.getRealName());
                    WriteCellData<List<ImageData>> objectWriteCellData = new WriteCellData<>();
                    ArrayList<ImageData> imageDataList = new ArrayList<>();
                    if (StringUtils.isNotBlank(a.getReportMaterials())) {
                        String[] urls = a.getReportMaterials().split(",");
                        if (urls.length == 1) {
                            int width = 600;
                            try {
                                ImageData imageData = new ImageData();
                                imageData.setImage(IoUtils.toByteArray(new URL(minIOService.getPreviewFileUrl(urls[0])).openConnection().getInputStream()));
                                imageData.setRight(width / 2);
                                imageDataList.add(imageData);
                            } catch (Exception e) {
                                throw new RuntimeException(e);
                            }
                        } else {
                            for (int i = 0; i < urls.length; i++) {
                                int width = 600;
                                try {
                                    ImageData imageData = new ImageData();
                                    imageData.setImage(IoUtils.toByteArray(new URL(minIOService.getPreviewFileUrl(urls[i])).openConnection().getInputStream()));
                                    imageData.setLeft(width / urls.length * i);
                                    imageData.setRight(width - width / urls.length * (i + 1));
                                    imageDataList.add(imageData);
                                } catch (Exception e) {
                                    throw new RuntimeException(e);
                                }
                            }
                        }
                    }
                    objectWriteCellData.setImageDataList(imageDataList);
                    exportExcelReportVo.setWriteCellData(objectWriteCellData);
                    exportExcelReportVos.add(exportExcelReportVo);
                }
        );
        String name = causeDao.selectOne(new QueryWrapper<Cause>().eq("id", id)).getName();
        response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
        response.setCharacterEncoding("utf-8");
        response.setHeader("Content-disposition", "attachment;filename=" + LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd")) + URLEncoder.encode(name + ".xlsx", "utf-8"));
        EasyExcel.write(response.getOutputStream(), ExportExcelReportVo.class).sheet("材料导出").doWrite(exportExcelReportVos);
    }
//    @Override
//    @SneakyThrows
//    public void exportReporter(Integer id, HttpServletResponse response) {
//        //查询报案人相关信息通过案件
//        List<Report> reports = reportDao.selectList(new QueryWrapper<Report>().eq("cause_id", id).orderByDesc());
//        ArrayList<ExportExcelReportVo> exportExcelReportVos = new ArrayList<>();
//        reports.forEach(
//                new Consumer<Report>() {
//                    @Override
//                    public void accept(Report a) {
//                        ExportExcelReportVo exportExcelReportVo = new ExportExcelReportVo();
//                        User user = userDao.selectOne(new QueryWrapper<User>().eq("id", a.getUserId()));
//                        BeanUtils.copyProperties(a, exportExcelReportVo);
//                        exportExcelReportVo.setUserIdcard(user.getUserIdcard());
//                        exportExcelReportVo.setUserMobile(user.getUserMobile());
//                        exportExcelReportVo.setRealName(user.getRealName());
//                        WriteCellData<List<ImageData>> objectWriteCellData = new WriteCellData<>();
//                        ArrayList<ImageData> imageDataList = new ArrayList<>();
//                        if (StringUtils.isNotBlank(a.getReportMaterials())) {
//                            String[] urls = a.getReportMaterials().split(",");
//                            if (urls.length == 1) {
//                                int width = 600;
//                                try {
//                                    ImageData imageData = new ImageData();
//                                    imageData.setImage(IoUtils.toByteArray(new URL(minIOService.getPreviewFileUrl(urls[0])).openConnection().getInputStream()));
//                                    imageData.setRight(width / 2);
//                                    imageDataList.add(imageData);
//                                } catch (Exception e) {
//                                    throw new RuntimeException(e);
//                                }
//                            } else {
//                                for (int i = 0; i < urls.length; i++) {
//                                    int width = 600;
//                                    try {
//                                        ImageData imageData = new ImageData();
//                                        imageData.setImage(IoUtils.toByteArray(new URL(minIOService.getPreviewFileUrl(urls[i])).openConnection().getInputStream()));
//                                        imageData.setLeft(width / urls.length * i);
//                                        imageData.setRight(width - width / urls.length * (i + 1));
//                                        imageDataList.add(imageData);
//                                    } catch (Exception e) {
//                                        throw new RuntimeException(e);
//                                    }
//                                }
//                            }
//                        }
//                        objectWriteCellData.setImageDataList(imageDataList);
//                        exportExcelReportVo.setWriteCellData(objectWriteCellData);
//                        exportExcelReportVos.add(exportExcelReportVo);
//                    }
//                }
//        );
//        String name = causeDao.selectOne(new QueryWrapper<Cause>().eq("id", id)).getName();
//        response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
//        response.setCharacterEncoding("utf-8");
//        response.setHeader("Content-disposition", "attachment;filename=" + LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd")) + URLEncoder.encode(name + ".xlsx", "utf-8"));
//        EasyExcel.write(response.getOutputStream(), ExportExcelReportVo.class).sheet("材料导出").doWrite(exportExcelReportVos);
//    }
    @Override
    public Page<ReportListVo> getPage(Page<ReportListVo> page, ReportParamDto reportParamDto) {