java导出excel easypoi

做个记录

 /**
     * 导出excel
     * @author wangchen
     * @Date 2020-9-8
     */
    @RequestMapping("/nvr/exportExcel")
    public void exportExcel(String nvrIdsStr,ModelMap modelMap, HttpServletRequest request, HttpServletResponse response){
        //导出nvr信息
        List<Map> totalMaps = deviceNvrService.getNvrExcel(nvrIdsStr);

        //初始化表头
        List<ExcelExportEntity> entity = new ArrayList<>();
        entity.add(new ExcelExportEntityCustom("工程编号", "projectId", 10));
        entity.add(new ExcelExportEntityCustom("工程名称", "projectName2", 22));
        entity.add(new ExcelExportEntityCustom("NVR名称", "nvrName", 10));
        entity.add(new ExcelExportEntityCustom("SIP认证ID", "nvrSipAccount", 22));
        entity.add(new ExcelExportEntityCustom("密码", "sipPassword", 10));
        entity.add(new ExcelExportEntity("通道", "nvrChannelNum", 10));
        entity.add(new ExcelExportEntity("SIP通道ID", "deviceSipAccount", 22));
        entity.add(new ExcelExportEntity("设备ID", "deviceCameraId", 22));
        entity.add(new ExcelExportEntity("设备名称", "cameraName", 22));
        entity.add(new ExcelExportEntity("IP地址", "nvrNetIp", 22));
        entity.add(new ExcelExportEntity("子网掩码", "nvrMask", 22));
        entity.add(new ExcelExportEntity("网关", "nvrGateway", 22));
        entity.add(new ExcelExportEntity("远程端口", "httpPort", 10));
        entity.add(new ExcelExportEntity("配置时间", "bindStateTime", 15));
        entity.add(new ExcelExportEntity("4G卡号", "simCardNum", 10));
        entity.add(new ExcelExportEntity("信号源", "netTypeName", 10));
        entity.add(new ExcelExportEntity("合同号", "contractId", 10));
        entity.add(new ExcelExportEntity("SIP服务器信息", "sipServer", 90));

        ExportParams params = new ExportParams("NVR通道信息表(导出数据)", "NVR表", ExcelType.XSSF);
        short titleHeight = 15;
        params.setTitleHeight(titleHeight);
        modelMap.put(MapExcelConstants.MAP_LIST, totalMaps);
        modelMap.put(MapExcelConstants.ENTITY_LIST, entity);
        modelMap.put(MapExcelConstants.PARAMS, params);
        modelMap.put(MapExcelConstants.FILE_NAME, "NVR通道信息表");
        PoiBaseView.render(modelMap, request, response, MapExcelConstants.EASYPOI_MAP_EXCEL_VIEW);
    }

    public class ExcelExportEntityCustom extends ExcelExportEntity {
        public ExcelExportEntityCustom(String name, Object key, int width) {
            super.name = name;
            super.setWidth((double) width);
            super.setKey(key);
            super.setNeedMerge(true);
            super.setMergeVertical(true);
        }
    }

/**
     * nvr导出信息
     * @author wangchen
     * @param nvrIdsStr
     * @Date 2020-9-8 9:42
     */
    public List<Map> getNvrExcel(String nvrIdsStr){
        List<Map> totalMaps = new ArrayList<>();
        String[] nvrStrs = nvrIdsStr.split(",");

        List<String> nvrIds = Arrays.asList(nvrStrs);
        for (String nvrId : nvrIds) {
            //获取nvr导出数据
            DeviceNvrResult result = new DeviceNvrResult();
            //获取nvr,过滤作废
            LambdaQueryWrapper<DeviceNvr> queryWrapperNvr = new LambdaQueryWrapper<>();
            queryWrapperNvr.eq(DeviceNvr::getDeviceNvrId, Integer.parseInt(nvrId));
            queryWrapperNvr.eq(DeviceNvr::getIsEnable,YesOrNotEnum.Y.getCode());
            DeviceNvr nvr = deviceNvrService.getOne(queryWrapperNvr);
            BeanUtil.copyProperties(nvr,result);
            //获取设备list
            LambdaQueryWrapper<DeviceCamera> queryWrapperDevice = new LambdaQueryWrapper<>();
            queryWrapperDevice.eq(DeviceCamera::getNvrId, Integer.parseInt(nvrId));
            List<DeviceCamera> deviceCameras = deviceCameraService.list(queryWrapperDevice);
            //获取设备返回集map
            List<Map> deviceMaps = deviceCameras.stream().map(v->{
                //获取工程信息
                Project project = projectService.getById(v.getProjectId());
                //获取设备类型信息
                DeviceTypeResult deviceTypeResult = deviceTypeService.getDeviceTypeByCode(v.getDeviceTypeCode());
                //获取合同设备信息
                LambdaQueryWrapper<OrderContractCamera> queryWrapper = new LambdaQueryWrapper<>();
                queryWrapper.eq(OrderContractCamera::getIsDel, YesOrNotEnum.N.getCode());
                queryWrapper.eq(OrderContractCamera::getDeviceCameraId, v.getDeviceCameraId());
                List<OrderContractCamera> orderContractCameras = orderContractCameraService.list(queryWrapper);
                String orderContractIdStr = "";

                if (orderContractCameras != null) {
                    List<Integer> orderContractIds = orderContractCameras.stream()
                            .filter(temp -> !YesOrNotEnum.Y.getCode().equals(temp.getIsContractShare()))
                            .map(OrderContractCamera::getOrderContractId).collect(Collectors.toList());

                    if (orderContractIds != null) {
                        orderContractIdStr = Joiner.on(",").join(orderContractIds);
                    }
                }
//                OrderContractCamera orderContractCamera = orderContractCameraService.getOne(queryWrapper);
                //获取sip服务器信息
                SipServer sipServer = sipServerService.getById(result.getSipServerId());
                Map map = new HashMap();
                if(ToolUtil.isNotEmpty(project)){
                    map.put("projectId",project.getProjectId());
                    map.put("projectName2", project.getProjectName2());
                }
                map.put("nvrName", result.getNvrName());
                map.put("nvrSipAccount", result.getSipAccount());
                map.put("sipPassword", result.getSipPassword());
                map.put("nvrChannelNum", v.getNvrChannelNum());
                map.put("deviceSipAccount", v.getSipAccount());
                map.put("deviceCameraId", v.getDeviceCameraId());
                map.put("cameraName", v.getCameraName());
                map.put("nvrNetIp", result.getNvrNetIp());
                map.put("nvrMask", result.getNvrMask());
                map.put("nvrGateway", result.getNvrGateway());
                map.put("httpPort", result.getHttpPort());
                if(ToolUtil.isNotEmpty(result.getBindStateTime())){
                    String bindStateTime = DateUtil.DateToStr(result.getBindStateTime(),"yyyy-MM-dd");
                    map.put("bindStateTime", bindStateTime);
                }
                map.put("simCardNum", result.getSimCardNum());
                if(ToolUtil.isNotEmpty(deviceTypeResult.getNetType())){
                    String netTypeName = ConstantFactory.me().getDictName(DictEnum.NET_TYPE.getCode(),String.valueOf(deviceTypeResult.getNetType()));
                    map.put("netTypeName", netTypeName + "信号");
                }
//                map.put("contractId", orderContractCamera.getOrderContractId());
                map.put("contractId", orderContractIdStr);
                if(ToolUtil.isNotEmpty(sipServer)){
                    StringBuffer stringBuffer = new StringBuffer();
                    stringBuffer.append("SIP服务器【ID:");
                    stringBuffer.append(sipServer.getSipServerNum());
                    stringBuffer.append("; ");
                    stringBuffer.append("域:");
                    stringBuffer.append(sipServer.getSipServerDomain());
                    stringBuffer.append("; ");
                    stringBuffer.append("地址:");
                    stringBuffer.append(sipServer.getSipServerIp());
                    stringBuffer.append("; ");
                    stringBuffer.append("端口:");
                    stringBuffer.append(sipServer.getSipServerPort());
                    stringBuffer.append("】");

                    map.put("sipServer", stringBuffer.toString());
                }
                return map;
            }).collect(Collectors.toList());
            totalMaps.addAll(deviceMaps);
        }
        //对项目id进行排序
        totalMaps = totalMaps.stream()
                .sorted((map1, map2) -> (Integer)map1.get("projectId") - (Integer)map2.get("projectId"))
                .collect(Collectors.toList());

        return totalMaps;
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值