• 最新导出备份


        /**
         * 导出台账
         */
        @RequestMapping(params = "ExportXltz")
        @ResponseBody
        public void ExportXltz(HttpServletRequest request, ModelMap modelMap, HttpServletResponse response,
                OutputStream output) throws UnsupportedEncodingException { 
            String invoiceno = request.getParameter("invoiceno");//发票号
            String sendTime_begin = request.getParameter("sendTime_begin");//发送日期 
            String sendTime_end = request.getParameter("sendTime_end");//发送日期
            String orderSupply = request.getParameter("orderSupply");//代理商
            String zdDate_begin = request.getParameter("zdDate_begin");//账单日期
            String zdDate_end = request.getParameter("zdDate_end");//账单日期
            String declaredate_begin = request.getParameter("declaredate_begin");//申报日期开始时间
            String declaredate_end = request.getParameter("declaredate_end");//申报日期结束时间 
            
            
             
            String wheresql = " ";
     
            if(invoiceno!=null && !invoiceno.equals("")) {
                wheresql += " and a.invoice_code='" + invoiceno + "'";
            } 
            if(sendTime_begin!=null && !sendTime_begin.equals("")) {
                wheresql += " and a.send_time >='" + sendTime_begin + "'";
            }
            if(sendTime_end!=null && !sendTime_end.equals("")) {
                wheresql += " and a.send_time <='" + sendTime_end + "'";
            }
            if(orderSupply!=null && !orderSupply.equals("")) {
                wheresql += " and c.order_supplyid='" + orderSupply + "'";
            }
            if(zdDate_begin!=null && !zdDate_begin.equals("")) {
                wheresql += " and c.zdDate >='" + zdDate_begin + "'";
            }
            if(zdDate_end!=null && !zdDate_end.equals("")) {
                wheresql += " and c.zdDate <='" + zdDate_end + "'";
            }
            if(declaredate_begin!=null && !declaredate_begin.equals("")) {
                wheresql += " and b.declaration_data >='" + declaredate_begin + "'";
            }
            if(declaredate_end!=null && !declaredate_end.equals("")) {
                wheresql += " and b.declaration_data <='" + declaredate_end + "'";
            }
            
            String sql = " select * " +
                         "  from dec_order a " +
                         "  left join dec_main b on (b.erp_No = a.invoice_code)" +
                         "    left join (select Invoiceno,order_supply,order_supplyid,zdDate" +
                         "                                from ldc_order_tax " +
                         "                            group by Invoiceno) c on (c.Invoiceno = a.invoice_code)"+
                         wheresql + " order by b.create_date desc ";
    
            String lujing = request.getSession().getServletContext().getRealPath("/");
            String lujing1 = lujing + "export\template\jkfymx.xlsx";
            List<Map<String, Object>> maps = jdbcTemplate.queryForList(sql);
            InputStream in;
            try {
                in = new FileInputStream(new File(lujing1));
                XSSFWorkbook work = null;
                work = new XSSFWorkbook(in);
                this.ExportXltzOut(request, response, work, maps);
            } catch (Exception e) {
    
                e.printStackTrace();
            }
    
    
        }
        /**
         * 导出 
         */
        public void ExportXltzOut(HttpServletRequest request, HttpServletResponse response, XSSFWorkbook work, List<Map<String, Object>> list) {
            
            
            XSSFSheet sheetAt = work.getSheetAt(0);    
            XSSFCellStyle setBorder = work.createCellStyle();
            setBorder.setBorderBottom(XSSFCellStyle.BORDER_THIN); //下边框
            setBorder.setBorderLeft(XSSFCellStyle.BORDER_THIN);//左边框
            setBorder.setBorderTop(XSSFCellStyle.BORDER_THIN);//上边框
            setBorder.setBorderRight(XSSFCellStyle.BORDER_THIN);//右边框
            setBorder.setAlignment(XSSFCellStyle.ALIGN_CENTER); // 水平居中
            setBorder.setVerticalAlignment(XSSFCellStyle.VERTICAL_CENTER);//垂直居中
            
            SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); 
             
             Map<String, Object> map = new HashMap<>();
             String invoice_code_old = "";
             int cnt = 0;
             for(int i=0;i<list.size();i++){
                 if(i<list.size()){
                      map = list.get(i);
                 }
                 String invoice_code = String.valueOf(map.get("invoice_code"));
                
                 XSSFRow row =  sheetAt.createRow(i+2);
                //物流公司名称
                 if(map.get("order_supply") !=null) { 
                     row.createCell(0).setCellValue(String.valueOf(map.get("order_supply")));
                     row.getCell(0).setCellStyle(setBorder);
                 }else {
                     row.createCell(0).setCellValue("");  
                     row.getCell(0).setCellStyle(setBorder);       
                 }
                //进口发票号码
                
                 if(map.get("invoice_code") !=null) { 
                     row.createCell(1).setCellValue(String.valueOf(map.get("invoice_code")));
                     row.getCell(1).setCellStyle(setBorder);
                 }else {
                     row.createCell(1).setCellValue("");    
                     row.getCell(1).setCellStyle(setBorder);     
                 }
                 //到厂日期
                 JSONObject jsonb = JSONObject.parseObject(String.valueOf(map.get("content")));
                 if(StringUtils.isNotBlank(jsonb.getString("dcdate"))) { 
                     row.createCell(4).setCellValue(jsonb.getString("dcdate"));
                     row.getCell(4).setCellStyle(setBorder);
                 }else {
                     row.createCell(4).setCellValue("");    
                     row.getCell(4).setCellStyle(setBorder);     
                 }
                //报关单号 
                 if(map.get("entry_Id") !=null) { 
                     row.createCell(5).setCellValue(String.valueOf(map.get("entry_Id")));
                     row.getCell(5).setCellStyle(setBorder);
                 }else {
                     row.createCell(5).setCellValue("");    
                     row.getCell(5).setCellStyle(setBorder);     
                 }
                //贸易方式
                 if(StringUtils.isNotBlank(jsonb.getString("tradeMode_value"))) { 
                     row.createCell(6).setCellValue(jsonb.getString("tradeMode_value"));
                     row.getCell(6).setCellStyle(setBorder);
                 }else {
                     row.createCell(6).setCellValue("");    
                     row.getCell(6).setCellStyle(setBorder);     
                 }
               //申报日期
                 if(StringUtils.isNotBlank(jsonb.getString("declarationData"))) { 
                     row.createCell(7).setCellValue(jsonb.getString("declarationData"));
                     row.getCell(7).setCellStyle(setBorder);
                 }else {
                     row.createCell(7).setCellValue("");    
                     row.getCell(7).setCellStyle(setBorder);     
                 }
                  
                  String str = String.valueOf(map.get("json_extract"));
                  JSONObject json = JSONObject.parseObject(str);
                  if(json.containsKey("jsBLorawbNo")){
                      String jsBLorawbNo = json.getString("jsBLorawbNo");/**B/L OR AWB NO*/
                      row.createCell(2).setCellValue(jsBLorawbNo);
                      row.getCell(2).setCellStyle(setBorder); 
                  }else{
                      row.createCell(2).setCellValue("");
                      row.getCell(2).setCellStyle(setBorder); 
                  } 
                  if(json.containsKey("jsEta")){
                      String jsEta = json.getString("jsEta");/**ETA*/
                      row.createCell(3).setCellValue(jsEta);
                      row.getCell(3).setCellStyle(setBorder); 
                  }else{
                      row.createCell(3).setCellValue("");
                      row.getCell(3).setCellStyle(setBorder); 
                  }
                  if(json.containsKey("jsHy")){
                      String jsHy = json.getString("jsHy");/**海运整柜(注明箱型)*/
                      row.createCell(8).setCellValue(jsHy);
                      row.getCell(8).setCellStyle(setBorder); 
                  }else{
                      row.createCell(8).setCellValue("");
                      row.getCell(8).setCellStyle(setBorder); 
                  }
                  if(json.containsKey("jsJzxNum")){
                      String jsJzxNum = json.getString("jsJzxNum");/**集装箱数量*/
                      row.createCell(9).setCellValue(jsJzxNum);
                      row.getCell(9).setCellStyle(setBorder);
                  }else{
                      row.createCell(9).setCellValue("");
                      row.getCell(9).setCellStyle(setBorder);
                  }
                  if(json.containsKey("jsWeight")){
                      String jsWeight = json.getString("jsWeight");/**毛重*/
                      row.createCell(10).setCellValue(jsWeight);
                      row.getCell(10).setCellStyle(setBorder);
                  }else{
                      row.createCell(10).setCellValue("");
                      row.getCell(10).setCellStyle(setBorder);
                  } 
                  if(json.containsKey("jsTj")){
                      String jsTj = json.getString("jsTj");/**体积*/
                      row.createCell(11).setCellValue(jsTj);
                      row.getCell(11).setCellStyle(setBorder);
                  }else{
                      row.createCell(11).setCellValue("");
                      row.getCell(11).setCellStyle(setBorder);
                  }
                  if(json.containsKey("jsSumfy")){
                      String jsSumfy = json.getString("jsSumfy");/**物流费用合计金额*/
                      row.createCell(30).setCellValue(jsSumfy);
                      row.getCell(30).setCellStyle(setBorder);
                  }else{
                      row.createCell(30).setCellValue("");
                      row.getCell(30).setCellStyle(setBorder);
                  }
                  /**关税金额(必须和关税单金额核对)*/
                  String tariff = "";//关税
                  String addedTax = "";//增值税
                  double sumNum = 0;//同发票号关税和
                  double sumNum1 = 0;//同发票号增值税和
                  if(jsonb.containsKey("decLists")) { 
                      String string = jsonb.getString("decLists"); 
                      
                      JSONArray picArray = JSONArray.parseArray(string);
                      for(int q =0;q<picArray.size();q++){
                          JSONObject json1 = picArray.getJSONObject(q);
                          if(json1.get("tariff")!=null){
                              sumNum += Double.parseDouble(json1.getString("tariff")); //**关税金额(必须和关税单金额核对)*//*
                              sumNum1 += Double.parseDouble(json1.getString("addedTax"));
                        }
                      }
                      
                      
                      row.createCell(31).setCellValue(sumNum+" ");
                      row.getCell(31).setCellStyle(setBorder);
                       
                      row.createCell(32).setCellValue(sumNum1+" ");
                      row.getCell(32).setCellStyle(setBorder);
                 
                  } 
                 
                  if(json.containsKey("jsFybm")){
                      String jsFybm = json.getString("jsFybm");/**费用部门*/
                      row.createCell(33).setCellValue(jsFybm);
                      row.getCell(33).setCellStyle(setBorder);
                  }else{
                      row.createCell(33).setCellValue("");
                      row.getCell(33).setCellStyle(setBorder);
                  }
                 
                 
                  String sql = " select * from ldc_order_tax a where  a.Invoiceno = '"+invoice_code+"' ";
                  List<Map<String, Object>> list1 = jdbcTemplate.queryForList(sql);
                  for(int j=12;j<31;j++){
                      row.createCell(j).setCellValue(""); 
                    }
                  for(int k=0;k<list1.size();k++){
                      Map<String, Object> map1 = new HashMap<>();
                      if(k<list1.size()){
                          map1 = list1.get(k);
                      }
                      if(map1.get("order_tax_name")!=null){
                          String order_tax_name = String.valueOf(map1.get("order_tax_name"));
                          String order_tax = String.valueOf(map1.get("order_tax"));
                          if(map1.get("order_tax")!=null){
                              order_tax = String.valueOf(map1.get("order_tax"));       
                          }else{
                              order_tax = "";       
                          }
                          if("报关费".equals(order_tax_name)){ 
                              row.createCell(12).setCellValue(order_tax);       
                          }
                          if("换单费".equals(order_tax_name)) {
                              row.createCell(13).setCellValue(order_tax);
                            }
                            if("查验费".equals(order_tax_name)) {
                                row.createCell(14).setCellValue(order_tax);
                            }
                            if("港杂费".equals(order_tax_name)) {
                                row.createCell(15).setCellValue(order_tax);        
                            }
                            if("THC".equals(order_tax_name)) {
                                row.createCell(16).setCellValue(order_tax);
                            }
                            if("LSSBAFCAF".equals(order_tax_name.trim())) {
                                row.createCell(17).setCellValue(order_tax);            
                            }
                            if("报检费安保费".equals(order_tax_name)) { 
                                row.createCell(18).setCellValue(order_tax);
                            }
                            if("换单代理费".equals(order_tax_name)) {
                                row.createCell(19).setCellValue(order_tax);
                            }
                            if("三检费".equals(order_tax_name)) {
                                row.createCell(20).setCellValue(order_tax);            
                            }
                            if("代垫仓库理货费(港建 理货 搬移 )".equals(order_tax_name)) {                         
                                row.createCell(21).setCellValue(order_tax);                
                            }
                            if("仓储费".equals(order_tax_name)) {
                                row.createCell(22).setCellValue(order_tax);                 
                            }
                            if("木托销毁".equals(order_tax_name)) {
                                row.createCell(23).setCellValue(order_tax);                
                            }
                            if("检验代理费".equals(order_tax_name)) {
                                row.createCell(24).setCellValue(order_tax);    
                            }
                            if("拆箱费".equals(order_tax_name)) {
                                row.createCell(25).setCellValue(order_tax);    
                            }
                            if("运费".equals(order_tax_name)) {
                                row.createCell(26).setCellValue(order_tax);    
                            }
                            if("坏污箱费".equals(order_tax_name)) {
                                row.createCell(27).setCellValue(order_tax);    
                            }
                            if("集装箱超期费".equals(order_tax_name)) {
                                row.createCell(28).setCellValue(order_tax);    
                            }
                            if("其它".equals(order_tax_name)) {
                                row.createCell(29).setCellValue(order_tax);    
                            }
                            if("物流费".equals(order_tax_name)) {
                                row.createCell(30).setCellValue(order_tax);    
                            }
    //                        if("关税".equals(order_tax_name)) {
    //                           row.createCell(31).setCellValue(order_tax);    
    //                        }
    //                        if("增值税".equals(order_tax_name)) {
    //                           row.createCell(32).setCellValue(order_tax);    
    //                        }
                          
                          
                          
                      }
                      
                  }
                  if(invoice_code.equals(invoice_code_old)){
                      cnt++;
                      if(i==list.size()-1){
                          //当最后一行时看情况合并
                          for(int j=0;j<34;j++){
                              if(j!=4&&j!=5&&j!=6&&j!=7){
                                  row.getCell(j).setCellValue("");
                                  CellRangeAddress region1 = new CellRangeAddress(i-cnt+2, i+2, (short) j, (short) j);
                                  sheetAt.addMergedRegion(region1); 
                              }
                          }
                      }  
                      
                  }else{
                      if(cnt>0){
                          //合并单元格
                          for(int j=0;j<34;j++){
                              if(j!=4&&j!=5&&j!=6&&j!=7){
                                  row.getCell(j).setCellValue("");
                                  CellRangeAddress region1 = new CellRangeAddress(i+2-cnt-1, i-1+2, (short) j, (short) j);
                                  sheetAt.addMergedRegion(region1);
                              }
                          }
                      }  
                       cnt=0;
                  }
                  invoice_code_old=invoice_code;
                  for(int j=12;j<31;j++){
                    row.getCell(j).setCellStyle(setBorder);
                  }
                 
             }
             //合计
             XSSFRow row =  sheetAt.createRow(list.size()+3);
             for (int i = 0; i <34; i++) {
                 row.createCell(i);
                 row.getCell(i).setCellStyle(setBorder); 
             }
             row.createCell(0).setCellValue("合计:");
             row.getCell(0).setCellStyle(setBorder); 
    
             row.getCell(8).setCellStyle(setBorder); 
             for(int j=12;j<33;j++){
                 double sum = 0;
                 for(int i=2;i<list.size()+2;i++){
                     String value = sheetAt.getRow(i).getCell(j).getStringCellValue();
                     if(StringUtils.isEmpty(value)){
                         value="0";
                     }
                     sum += Double.parseDouble(value);
                 }
                 row.createCell(j).setCellValue(sum);
                 row.getCell(j).setCellStyle(setBorder); 
             }
            
            //前台反应
            response.reset();  
            response.setCharacterEncoding("UTF-8");  
            response.setContentType("application/vnd.ms-excel");  //保证不乱码  
            try
            {
                Date date=new Date();
                SimpleDateFormat format=new SimpleDateFormat("MMddHHmmss");
                String time="bb"+format.format(date)+".xlsx";
                response.setHeader("Content-Disposition","attachment;" + " filename=" + new String(time.getBytes("utf-8"), "ISO-8859-1"));
               
            }
            catch (UnsupportedEncodingException e1) {        
                e1.printStackTrace();
            }  
            try  
            {  
                ByteArrayOutputStream oss =new  ByteArrayOutputStream(); 
                OutputStream os = response.getOutputStream();
                work.write(oss);  
                  
                byte temp[] = oss.toByteArray();  
                ByteArrayInputStream in1 = new ByteArrayInputStream(temp);  
                int n = 0;      
                while ((n = in1.read(temp)) >0) {      
                     os.write(temp, 0, n);      
                 }    
                os.flush();  
                os.close();  
            } catch(Exception e){
            
                e.printStackTrace();
            }
            
        }
  • 相关阅读:
    完整版excel上传导入读写批量数据并将反馈结果写入远程exel中
    将数据写入已有的excel文件
    微服务项目启动问题
    通过POI实现上传EXCEL的批量读取数据写入数据库
    [转] VLAN原理详解
    [转载]git tag — 标签相关操作
    [转载]SQLite3性能优化
    [转载]提升SQLite数据插入效率低、速度慢的方法
    [转载]sqlite3遇到database is locked问题的完美解决
    一个Linux下C线程池的实现(转)
  • 原文地址:https://www.cnblogs.com/xueblvip/p/12579170.html
Copyright © 2020-2023  润新知