导出2
程序员文章站
2022-05-07 19:28:37
...
@RequestMapping(value = "/export") @SkipAutoHandleReturnMsg public void export(@RequestBody Map<String, Object> params) { try { if(params.get("sum") == null ) { throw new BizException("请按照查询结果再做导出数据,不允许无条件导出。"); } int sum = (int)params.get("sum");//经过条件筛选查询出来的总数据量sum logger.info("导出数量为:*******"+sum+"条******************** "); String tableName = (String) params.get("cdVal"); if(null==tableName || tableName.length()==0 || tableName.equals("")){ throw new BizException("未传入表名"); } Object daDt=params.get("dataDt"); SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); if (daDt!=null){ params.put("dataDt",simpleDateFormat.parse(daDt.toString())); } if(sum>500000){ sum = 500000; } int pageSize = 10000; int count = (sum / pageSize)+1; params.put("pageSize",pageSize); CountDownLatch latch = new CountDownLatch(count); Map<String,StringBuffer> strMap = new Hashtable<>(); Map<String, String> curCdMap = ListUtil.toMap(ti9vBcurBaseInfService.queryListAll(), TI9vBCurBaseInf::getCurCd, TI9vBCurBaseInf::getCurCnDesc); for (int i = 0; i < count; i++) { Map<String, Object> xparms = new HashMap<>(); int pageNum = i+1; System.out.println(pageNum +"============================================================================================="); threadPoolExecutor.execute(() -> { long startTime = System.currentTimeMillis(); try { xparms.putAll(params); xparms.put("pageNum",pageNum); StringBuffer strout = new StringBuffer(); switch (tableName) { case ZConstUtils.netProdTyp://净值型理财产品 PageInfo<TI9vBFinProductNet>netProdTyp01 = tI9vBFinProductNetService.queryPageByMap(xparms, (Integer) xparms.get("pageNum"), (Integer) xparms.get("pageSize")); case ZConstUtils.nonetProdTyp02: PageInfo<TI9vBFinProductNonet>pagenonetTyp02 = tI9vBFinProductNonetService.queryPageByMap(xparms, (Integer) xparms.get("pageNum"), (Integer) xparms.get("pageSize")); for(TI9vBFinProductNonet item : pagenonetTyp02.getList()){ strout.append(daDt.toString()+PubConstUtils.CUT); strout.append(PubConstUtils.toU(item.getDubilId())+PubConstUtils.CUT); strout.append("类信贷估值资产"+PubConstUtils.CUT); strout.append(PubConstUtils.toU(item.getContrId())+PubConstUtils.CUT); strout.append(PubConstUtils.toU(item.getCustId())+PubConstUtils.CUT); strout.append(item.getCustNm()+PubConstUtils.CUT); strout.append(item.getIssuerRateLvl()+PubConstUtils.CUT); strout.append(PubConstUtils.toU(item.getOrgId())+PubConstUtils.CUT); strout.append(item.getOrgNm()+PubConstUtils.CUT); strout.append(PubConstUtils.toU(item.getCoreProdCd())+PubConstUtils.CUT); strout.append(item.getCoreProdNm()+PubConstUtils.CUT); strout.append(PubConstUtils.toU(item.getAcctiSubj())+PubConstUtils.CUT); strout.append(item.getAcctiThreeCls()+PubConstUtils.CUT); strout.append(item.getDubilAmt()+PubConstUtils.CUT); strout.append(item.getDubilBal()+PubConstUtils.CUT); strout.append(curCdMap.get(item.getCurCd())+PubConstUtils.CUT); strout.append(item.getProspPrftRate()+PubConstUtils.CUT); if(null!=item.getStIntDay()){ strout.append(DateUtil.dateToString2(item.getStIntDay())+PubConstUtils.CUT); }else{ strout.append(""+PubConstUtils.CUT); } if(null!=item.getMatrDay()){ strout.append(DateUtil.dateToString2(item.getMatrDay())+PubConstUtils.CUT); }else{ strout.append(""+PubConstUtils.CUT); } if(null!=item.getAdjRepayDt()){ strout.append(DateUtil.dateToString2(item.getAdjRepayDt())+PubConstUtils.CUT); }else{ strout.append(""+PubConstUtils.CUT); } if(null!=item.getTxDt()){ strout.append(DateUtil.dateToString2(item.getTxDt())+PubConstUtils.CUT); }else{ strout.append(""+PubConstUtils.CUT); } strout.append(item.getTxPrc()+PubConstUtils.CUT); strout.append(item.getRepayModeCd()+PubConstUtils.CUT); strout.append(item.getRepayPlanMakeMode()+PubConstUtils.CUT); strout.append(item.getIntMode()+PubConstUtils.CUT); strout.append(item.getIntPayFrq()+PubConstUtils.CUT); strout.append(item.getIntCreateRule()+PubConstUtils.CUT); strout.append(item.getWorkUpdateRule()+PubConstUtils.CUT); strout.append(item.getAccureBasic()+PubConstUtils.CUT); strout.append(item.getRecStat()+PubConstUtils.CUT); strout.append(item.getOvrdIntBal()+PubConstUtils.CUT); strout.append(item.getNormDebtIntBal()+PubConstUtils.CUT); strout.append(item.getInBalPnshIntBal()+PubConstUtils.CUT); strout.append(item.getPrepAmtblIntIncom()+PubConstUtils.CUT); strout.append(item.getPrepStlRecvblInt()+PubConstUtils.CUT); strout.append(item.getPrepStlRecvblPnshInt()+PubConstUtils.CUT); strout.append(item.getSrcSys()+"\n"); } break; case ZConstUtils.billDisProdTyp: //票据转贴现(有问题)T_I9V_B_BILL_DISCOUNT PageInfo<TI9vBBillDiscount> pagebillDis = tI9vBBillDiscountService.queryPageByMap( xparms, (Integer) xparms.get("pageNum"), (Integer) xparms.get("pageSize") ); for(TI9vBBillDiscount item : pagebillDis.getList()){ strout.append(daDt.toString()+PubConstUtils.CUT); // strout.append(item.getBankNum()+PubConstUtils.CUT); strout.append(PubConstUtils.toU(item.getDubilId())+PubConstUtils.CUT); // strout.append(item.getDubilModfr()+PubConstUtils.CUT); strout.append("票据转贴现"+PubConstUtils.CUT); // strout.append(item.getAgmtId()+PubConstUtils.CUT); // strout.append(item.getDubilOrdrNum()+PubConstUtils.CUT); strout.append(PubConstUtils.toU(item.getBillNum())+PubConstUtils.CUT); strout.append(PubConstUtils.toU(item.getContrId())+PubConstUtils.CUT); strout.append(PubConstUtils.toU(item.getCustId())+PubConstUtils.CUT); strout.append(item.getCustNm()+PubConstUtils.CUT); strout.append(PubConstUtils.toU(item.getOrgId())+PubConstUtils.CUT); strout.append(item.getOrgNm()+PubConstUtils.CUT); strout.append(PubConstUtils.toU(item.getCoreProdCd())+PubConstUtils.CUT); strout.append(item.getCoreProdNm()+PubConstUtils.CUT); strout.append(PubConstUtils.toU(item.getAcctiSubj())+PubConstUtils.CUT); strout.append(item.getAcctiThreeCls()+PubConstUtils.CUT); strout.append(curCdMap.get(item.getCurCd())+PubConstUtils.CUT); strout.append(item.getDubilAmt()+PubConstUtils.CUT); strout.append(item.getDubilBal()+PubConstUtils.CUT); strout.append(item.getProspPrftRate()+PubConstUtils.CUT); if(null!=item.getStIntDay()){ strout.append(simpleDateFormat.format(item.getStIntDay())+PubConstUtils.CUT); }else{ strout.append(""+PubConstUtils.CUT); } if(null!=item.getMatrDay()){ strout.append(simpleDateFormat.format(item.getMatrDay())+PubConstUtils.CUT); }else{ strout.append(""+PubConstUtils.CUT); } if(null!=item.getTxDt()){ strout.append(simpleDateFormat.format(item.getTxDt())+PubConstUtils.CUT); }else{ strout.append(""+PubConstUtils.CUT); } strout.append(item.getTxPrc()+PubConstUtils.CUT); strout.append(item.getRepayPlanMakeMode()+PubConstUtils.CUT); strout.append(item.getIntPayFrq()+PubConstUtils.CUT); strout.append(item.getIntMode()+PubConstUtils.CUT); strout.append(item.getIntCreateRule()+PubConstUtils.CUT); strout.append(item.getWorkUpdateRule()+PubConstUtils.CUT); strout.append(item.getAccureBasic()+PubConstUtils.CUT); strout.append(item.getRecStat()+PubConstUtils.CUT); strout.append(item.getOvrdIntBal()+PubConstUtils.CUT); strout.append(item.getNormDebtIntBal()+PubConstUtils.CUT); strout.append(item.getInBalPnshIntBal()+PubConstUtils.CUT); strout.append(item.getPrepAmtblIntIncom()+PubConstUtils.CUT); strout.append(item.getPrepStlRecvblInt()+PubConstUtils.CUT); strout.append(item.getPrepStlRecvblPnshInt()+PubConstUtils.CUT); strout.append(item.getSrcSys()+"\n"); } break; } strMap.put(pageNum+"",strout); } catch (Exception e) { e.printStackTrace(); throw new BizException("拼数据异常:"+e.getMessage()); }finally{ long endTime = System.currentTimeMillis(); logger.info("打开"+pageNum+"号栅栏:**********用时:"+ (endTime - startTime) + "ms***************** "); latch.countDown(); } }); } latch.await(); logger.info("拼数据结束:*************************** "); if (strMap.size()==0){ throw new BizException("数据为空"); } if(ZConstUtils.nonetProdTyp02.equals(tableName)) { strMap.put("0",new StringBuffer("数据日期"+PubConstUtils.CUT+"借据号"+PubConstUtils.CUT+"产品类型"+PubConstUtils.CUT+"合同编号"+PubConstUtils.CUT+"客户编号"+PubConstUtils.CUT+"客户名称"+PubConstUtils.CUT+"客户内部评级"+PubConstUtils.CUT+"机构编号"+PubConstUtils.CUT+"机构名称"+PubConstUtils.CUT+"核心产品代码"+PubConstUtils.CUT+"核心产品名称"+PubConstUtils.CUT+"会计科目"+PubConstUtils.CUT+"会计三分类"+PubConstUtils.CUT+"借据金额"+PubConstUtils.CUT+"借据余额"+PubConstUtils.CUT+"币种代码"+PubConstUtils.CUT+"预期收益率"+PubConstUtils.CUT+"起息日"+PubConstUtils.CUT+"到期日"+PubConstUtils.CUT+"调整还款日"+PubConstUtils.CUT+"交易日期"+PubConstUtils.CUT+"交易价格"+PubConstUtils.CUT+"还款方式代码"+PubConstUtils.CUT+"还款计划生成方式"+PubConstUtils.CUT+"计息方式"+PubConstUtils.CUT+"付息频率"+PubConstUtils.CUT+"计息区间生成规则"+PubConstUtils.CUT+"工作日调整规则"+PubConstUtils.CUT+"日算惯例"+PubConstUtils.CUT+"借据状态"+PubConstUtils.CUT+"逾期利息余额"+PubConstUtils.CUT+"正常欠息余额"+PubConstUtils.CUT+"表内罚息余额"+PubConstUtils.CUT+"待摊利息收入"+PubConstUtils.CUT+"待结应收利息"+PubConstUtils.CUT+"待结应收罚息"+PubConstUtils.CUT+"来源系统\n")); sysTabsService.exportCsv(this.getResponse(),"非净值型保本浮动收益型理财产品",strMap,count); }else if(ZConstUtils.billDisProdTyp.equals(tableName)){ strMap.put("0",new StringBuffer("数据日期"+PubConstUtils.CUT+"借据号"+PubConstUtils.CUT+"产品类型"+PubConstUtils.CUT+"票据号"+PubConstUtils.CUT+"合同编号"+PubConstUtils.CUT+"客户编号"+PubConstUtils.CUT+"客户名称"+PubConstUtils.CUT+"机构编号"+PubConstUtils.CUT+"机构名称"+PubConstUtils.CUT+"核心产品代码"+PubConstUtils.CUT+"核心产品名称"+PubConstUtils.CUT+"会计科目"+PubConstUtils.CUT+"会计三分类"+PubConstUtils.CUT+"币种代码"+PubConstUtils.CUT+"借据金额"+PubConstUtils.CUT+"借据余额"+PubConstUtils.CUT+"预期收益率"+PubConstUtils.CUT+"起息日"+PubConstUtils.CUT+"到期日"+PubConstUtils.CUT+"交易日期"+PubConstUtils.CUT+"交易价格"+PubConstUtils.CUT+"还款计划生成方式"+PubConstUtils.CUT+"付息频率"+PubConstUtils.CUT+"计息方式"+PubConstUtils.CUT+"计息区间生成规则"+PubConstUtils.CUT+"工作日调整规则"+PubConstUtils.CUT+"日算惯例"+PubConstUtils.CUT+"借据状态"+PubConstUtils.CUT+"逾期利息余额"+PubConstUtils.CUT+"正常欠息余额"+PubConstUtils.CUT+"表内罚息余额"+PubConstUtils.CUT+"待摊利息收入"+PubConstUtils.CUT+"待结应收利息"+PubConstUtils.CUT+"待结应收罚息"+PubConstUtils.CUT+"来源系统\n")); sysTabsService.exportCsv(this.getResponse(),"票据转贴现",strMap,count); } } catch (Exception e) { e.printStackTrace(); logger.info(e.getMessage()); throw new BizException("导出失败:"+e.getMessage()); } }
推荐阅读
-
【C#常用方法】2.DataTable(或DataSet)与Excel文件之间的导出与导入(使用NPOI)
-
3.App Inventor 2项目导入与导出
-
struts2整合poi导出excel文件名乱码或不显示解决办法
-
tableExport.js导出数据身份证以科学计数代替(2)
-
struts2整合poi导出excel文件名乱码或不显示解决办法
-
struts2整合poi导出excel文件名乱码或不显示解决办法
-
亲测可用!微信小程序实现下载预览文件,导出及保存文件及excel(2)
-
JAVA:Excel导入导出详解(2)--导入
-
java dubbo服务导出excel数据量过大解决方案--2(bug修复)
-
poi(2)---excel导出