parent
27e927dae8
commit
27f5e8eddf
@ -0,0 +1,37 @@ |
|||||||
|
package com.jianshui.web.controller.platform; |
||||||
|
|
||||||
|
import com.jianshui.common.constant.InvoiceCommonConstants; |
||||||
|
import com.jianshui.platform.service.InvoiceDownloadService; |
||||||
|
import io.swagger.annotations.Api; |
||||||
|
import io.swagger.annotations.ApiOperation; |
||||||
|
import org.springframework.beans.factory.annotation.Autowired; |
||||||
|
import org.springframework.web.bind.annotation.GetMapping; |
||||||
|
import org.springframework.web.bind.annotation.PathVariable; |
||||||
|
import org.springframework.web.bind.annotation.RequestMapping; |
||||||
|
import org.springframework.web.bind.annotation.RestController; |
||||||
|
import javax.servlet.http.HttpServletResponse; |
||||||
|
|
||||||
|
/** |
||||||
|
* @Author: kane |
||||||
|
* @Description: 发票批量下载接口 |
||||||
|
* @CreateTime: 2023-06-08 14:27 |
||||||
|
* @Version: 1.0 |
||||||
|
**/ |
||||||
|
@Api(tags = "发票批量下载") |
||||||
|
@RestController |
||||||
|
@RequestMapping("/platForm/invoiceDownLoad") |
||||||
|
public class InvoiceDownloadController { |
||||||
|
|
||||||
|
@Autowired |
||||||
|
private InvoiceDownloadService invoiceDownloadService; |
||||||
|
@ApiOperation("发票批量下载") |
||||||
|
@GetMapping("/dowmLoadPdf/{ids}/{status}") |
||||||
|
public Object downLoad(@PathVariable Long[] ids,@PathVariable String status,HttpServletResponse response){ |
||||||
|
if (InvoiceCommonConstants.PDFSTATUS.equals(status)){ |
||||||
|
return invoiceDownloadService.dowmLoadPdf(ids,response); |
||||||
|
}else { |
||||||
|
return invoiceDownloadService.dowmLoadOfd(ids,response); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
} |
@ -1,20 +0,0 @@ |
|||||||
package com.jianshui.common.constant; |
|
||||||
|
|
||||||
/** |
|
||||||
* @Author: xinzge |
|
||||||
* @Description: 用户登记信息常量类 |
|
||||||
* @CreateTime: 2023-06-06 13:35 |
|
||||||
* @Version: 1.0 |
|
||||||
**/ |
|
||||||
public class InvoiceAllYhdjConstants { |
|
||||||
/** |
|
||||||
* 异步 |
|
||||||
*/ |
|
||||||
public final static String ASYNC = "true"; |
|
||||||
|
|
||||||
/** |
|
||||||
* 同步 |
|
||||||
*/ |
|
||||||
public final static String SYNC = "false"; |
|
||||||
|
|
||||||
} |
|
@ -0,0 +1,96 @@ |
|||||||
|
package com.jianshui.common.constant; |
||||||
|
|
||||||
|
/** |
||||||
|
* @Author: xinzge |
||||||
|
* @Description: 用户登记信息常量类 |
||||||
|
* @CreateTime: 2023-06-06 13:35 |
||||||
|
* @Version: 1.0 |
||||||
|
**/ |
||||||
|
public class InvoiceCommonConstants { |
||||||
|
/** |
||||||
|
* 异步 |
||||||
|
*/ |
||||||
|
public final static String ASYNC = "true"; |
||||||
|
|
||||||
|
/** |
||||||
|
* 同步 |
||||||
|
*/ |
||||||
|
public final static String SYNC = "false"; |
||||||
|
/** |
||||||
|
* 信息为空 |
||||||
|
*/ |
||||||
|
public final static String INVOICEINFORMATIONISEMPTY = "未传入发票信息,请检查!"; |
||||||
|
/** |
||||||
|
* 未查询到登记信息 |
||||||
|
*/ |
||||||
|
public final static String NOINFORMATIONISFOUND = "未查询到登记信息!"; |
||||||
|
|
||||||
|
/** |
||||||
|
* 开票日期格式 |
||||||
|
*/ |
||||||
|
public final static String DATEFORMAT = "yyyyMMddHHmmss"; |
||||||
|
|
||||||
|
/** |
||||||
|
* 发票号码 |
||||||
|
*/ |
||||||
|
public final static String FPHM = "fphm"; |
||||||
|
|
||||||
|
|
||||||
|
/** |
||||||
|
* 开票日期 |
||||||
|
*/ |
||||||
|
public final static String KPRQ = "kprq"; |
||||||
|
|
||||||
|
/** |
||||||
|
* 响应码 |
||||||
|
*/ |
||||||
|
public final static String CODE = "code"; |
||||||
|
|
||||||
|
/** |
||||||
|
* 错误信息 |
||||||
|
*/ |
||||||
|
public final static String MSG = "msg"; |
||||||
|
|
||||||
|
|
||||||
|
/** |
||||||
|
* 响应数据 |
||||||
|
*/ |
||||||
|
public final static String DATA = "data"; |
||||||
|
|
||||||
|
/** |
||||||
|
* 成功响应状态码 |
||||||
|
*/ |
||||||
|
public final static String SUCCESSCODE = "0000"; |
||||||
|
|
||||||
|
/** |
||||||
|
* pdf地址 |
||||||
|
*/ |
||||||
|
public final static String PDFURL = "pdfUrl"; |
||||||
|
|
||||||
|
|
||||||
|
/** |
||||||
|
* 发票下载地址错误 |
||||||
|
*/ |
||||||
|
public final static String DOWNLOADADDRESSERROR = "获取发票下载地址错误!"; |
||||||
|
|
||||||
|
/** |
||||||
|
* 下载成功 |
||||||
|
*/ |
||||||
|
public final static String DOWNLOADSUCCESSCODE = "下载成功!"; |
||||||
|
|
||||||
|
/** |
||||||
|
* ofd地址 |
||||||
|
*/ |
||||||
|
public final static String OFDURL = "ofdUrl"; |
||||||
|
|
||||||
|
/** |
||||||
|
* pdf状态 |
||||||
|
*/ |
||||||
|
public final static String PDFSTATUS = "0"; |
||||||
|
|
||||||
|
/** |
||||||
|
* ofd状态 |
||||||
|
*/ |
||||||
|
public final static String OFDSTATUS = "1"; |
||||||
|
|
||||||
|
} |
@ -0,0 +1,29 @@ |
|||||||
|
package com.jianshui.platform.service; |
||||||
|
|
||||||
|
import javax.servlet.http.HttpServletResponse; |
||||||
|
|
||||||
|
/** |
||||||
|
* @Author: kane |
||||||
|
* @Description: 发票下载业务层 |
||||||
|
* @CreateTime: 2023-06-08 14:36 |
||||||
|
* @Version: 1.0 |
||||||
|
**/ |
||||||
|
public interface InvoiceDownloadService { |
||||||
|
|
||||||
|
/** |
||||||
|
* 功能描述: 发票(pdf版)下载 |
||||||
|
* @param ids |
||||||
|
* @param response |
||||||
|
* @return : java.lang.Object |
||||||
|
*/ |
||||||
|
Object dowmLoadPdf(Long[] ids, HttpServletResponse response); |
||||||
|
|
||||||
|
/** |
||||||
|
* 功能描述: 发票(ofd版)下载 |
||||||
|
* @param ids |
||||||
|
* @param response |
||||||
|
* @return : java.lang.Object |
||||||
|
*/ |
||||||
|
Object dowmLoadOfd(Long[] ids, HttpServletResponse response); |
||||||
|
|
||||||
|
} |
@ -0,0 +1,196 @@ |
|||||||
|
package com.jianshui.platform.service.impl; |
||||||
|
|
||||||
|
import cn.hutool.core.bean.BeanUtil; |
||||||
|
import cn.hutool.core.util.StrUtil; |
||||||
|
import cn.hutool.json.JSONUtil; |
||||||
|
import com.alibaba.fastjson.JSONObject; |
||||||
|
import com.jianshui.common.constant.InvoiceCommonConstants; |
||||||
|
import com.jianshui.common.constant.WebServiceConstant; |
||||||
|
import com.jianshui.common.core.domain.AjaxResult; |
||||||
|
import com.jianshui.common.core.domain.entity.Companyservice; |
||||||
|
import com.jianshui.common.core.domain.entity.SysUser; |
||||||
|
import com.jianshui.common.utils.SecurityUtils; |
||||||
|
import com.jianshui.common.utils.jcsk.ApiHttp; |
||||||
|
import com.jianshui.invoice.domain.Invoice; |
||||||
|
import com.jianshui.invoice.domain.dto.HXResponse; |
||||||
|
import com.jianshui.invoice.domain.dto.api.jcsk.FileAcquisitionTwoDTO; |
||||||
|
import com.jianshui.invoice.mapper.InvoiceMapper; |
||||||
|
import com.jianshui.platform.service.InvoiceDownloadService; |
||||||
|
import com.jianshui.platform.utils.BatchDownloadUtils; |
||||||
|
import com.jianshui.platform.utils.InvoiceAllYhdjUtils; |
||||||
|
import com.jianshui.system.domain.InvoiceAllYhdj; |
||||||
|
import com.jianshui.system.mapper.CompanyserviceMapper; |
||||||
|
import com.jianshui.system.mapper.SysUserMapper; |
||||||
|
import lombok.extern.slf4j.Slf4j; |
||||||
|
import org.springframework.beans.factory.annotation.Autowired; |
||||||
|
import org.springframework.stereotype.Service; |
||||||
|
import javax.servlet.http.HttpServletResponse; |
||||||
|
import java.text.SimpleDateFormat; |
||||||
|
import java.util.*; |
||||||
|
|
||||||
|
/** |
||||||
|
* @Author: kane |
||||||
|
* @Description: 发票下载业务层 |
||||||
|
* @CreateTime: 2023-06-08 14:36 |
||||||
|
* @Version: 1.0 |
||||||
|
**/ |
||||||
|
@Service |
||||||
|
@Slf4j |
||||||
|
public class InvoiceDownloadServiceImpl implements InvoiceDownloadService { |
||||||
|
|
||||||
|
@Autowired |
||||||
|
private SysUserMapper sysUserMapper; |
||||||
|
@Autowired |
||||||
|
private CompanyserviceMapper companyServiceMapper; |
||||||
|
|
||||||
|
@Autowired |
||||||
|
private InvoiceMapper invoiceMapper; |
||||||
|
|
||||||
|
/** |
||||||
|
* 功能描述: 发票(pfd版)下载 |
||||||
|
* @param ids |
||||||
|
* @param response |
||||||
|
* @return : java.lang.Object |
||||||
|
*/ |
||||||
|
@Override |
||||||
|
public Object dowmLoadPdf(Long[] ids, HttpServletResponse response) { |
||||||
|
//判空
|
||||||
|
if (ids == null) { |
||||||
|
return AjaxResult.error(InvoiceCommonConstants.INVOICEINFORMATIONISEMPTY); |
||||||
|
} |
||||||
|
//获取用户id
|
||||||
|
Long userId = SecurityUtils.getUserId(); |
||||||
|
//根据用户id获取用户信息
|
||||||
|
SysUser sysUser = sysUserMapper.selectUserById(userId); |
||||||
|
//根据企业id获取企业信息
|
||||||
|
Companyservice companyservice = companyServiceMapper.selectCompanyserviceByCompanyid(sysUser.getCompanyId()); |
||||||
|
//获取登记用户信息
|
||||||
|
InvoiceAllYhdjUtils invoiceAllYhdjUtils = new InvoiceAllYhdjUtils(); |
||||||
|
InvoiceAllYhdj userInfo = invoiceAllYhdjUtils.getUserInfo(companyservice); |
||||||
|
if (BeanUtil.isEmpty(userInfo)) { |
||||||
|
return AjaxResult.error(InvoiceCommonConstants.NOINFORMATIONISFOUND); |
||||||
|
} |
||||||
|
//pfd文件集合
|
||||||
|
List<String> pdfList = new ArrayList<>(); |
||||||
|
for (Long id : ids) { |
||||||
|
Invoice invoice = invoiceMapper.selectInvoiceById(id); |
||||||
|
String invoicePdfUrl = invoice.getInvoicePdfUrl(); |
||||||
|
if (invoicePdfUrl != null) { |
||||||
|
pdfList.add(invoicePdfUrl); |
||||||
|
} else { |
||||||
|
//获取pfd下载地址
|
||||||
|
//封装请求实体类
|
||||||
|
FileAcquisitionTwoDTO fileAcquisitionDTO = new FileAcquisitionTwoDTO(); |
||||||
|
//发送同步请求
|
||||||
|
fileAcquisitionDTO.setAsync(InvoiceCommonConstants.SYNC); |
||||||
|
fileAcquisitionDTO.setNsrsbh(userInfo.getNsrsbh()); |
||||||
|
fileAcquisitionDTO.setBsrysfzjhm(userInfo.getBsrysfzjhm()); |
||||||
|
fileAcquisitionDTO.setDqbm(userInfo.getDqbm()); |
||||||
|
Map<String, Object> map = new JSONObject(); |
||||||
|
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(InvoiceCommonConstants.DATEFORMAT); |
||||||
|
map.put(InvoiceCommonConstants.FPHM, invoice.getFphm()); |
||||||
|
Date kprq = invoice.getKprq(); |
||||||
|
//修改日期格式(请求接口要求)
|
||||||
|
String kprqFormat = simpleDateFormat.format(kprq); |
||||||
|
map.put(InvoiceCommonConstants.KPRQ, kprqFormat); |
||||||
|
fileAcquisitionDTO.setJsonData(map); |
||||||
|
cn.hutool.json.JSONObject result = null; |
||||||
|
try { |
||||||
|
result = ApiHttp.request(WebServiceConstant.FPEWMXZ, WebServiceConstant.URL, fileAcquisitionDTO, companyservice); |
||||||
|
String code = result.get(InvoiceCommonConstants.CODE) != null ? result.get(InvoiceCommonConstants.CODE).toString() : ""; |
||||||
|
String msg = result.get(InvoiceCommonConstants.MSG) != null ? result.get(InvoiceCommonConstants.MSG).toString() : ""; |
||||||
|
String data = result.get(InvoiceCommonConstants.DATA) != null ? result.get(InvoiceCommonConstants.DATA).toString() : ""; |
||||||
|
if (InvoiceCommonConstants.SUCCESSCODE.equals(code) && StrUtil.isNotEmpty(data)) { |
||||||
|
cn.hutool.json.JSONObject json = JSONUtil.parseObj(data); |
||||||
|
String pdfUrl = json.get(InvoiceCommonConstants.PDFURL) != null ? json.get(InvoiceCommonConstants.PDFURL).toString() : ""; |
||||||
|
pdfList.add(pdfUrl); |
||||||
|
} else { |
||||||
|
return AjaxResult.error(msg); |
||||||
|
} |
||||||
|
} catch (Exception e) { |
||||||
|
e.printStackTrace(); |
||||||
|
log.error("【金四服务类】【金财数科】【获取发票下载地址】API请求异常,外部报文返回code非0000。错误信息:{}", e.getMessage()); |
||||||
|
return AjaxResult.error(InvoiceCommonConstants.DOWNLOADADDRESSERROR); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
//下载pfd文件
|
||||||
|
BatchDownloadUtils.downloadAndZipFiles(pdfList,InvoiceCommonConstants.PDFSTATUS,response); |
||||||
|
return AjaxResult.success(InvoiceCommonConstants.DOWNLOADSUCCESSCODE); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 功能描述: 发票(ofd版)下载 |
||||||
|
* @param ids |
||||||
|
* @param response |
||||||
|
* @return : java.lang.Object |
||||||
|
*/ |
||||||
|
@Override |
||||||
|
public Object dowmLoadOfd(Long[] ids, HttpServletResponse response) { |
||||||
|
//判空
|
||||||
|
if (ids == null) { |
||||||
|
return AjaxResult.error(InvoiceCommonConstants.INVOICEINFORMATIONISEMPTY); |
||||||
|
} |
||||||
|
//获取用户id
|
||||||
|
Long userId = SecurityUtils.getUserId(); |
||||||
|
//根据用户id获取用户信息
|
||||||
|
SysUser sysUser = sysUserMapper.selectUserById(userId); |
||||||
|
//根据企业id获取企业信息
|
||||||
|
Companyservice companyservice = companyServiceMapper.selectCompanyserviceByCompanyid(sysUser.getCompanyId()); |
||||||
|
//获取登记用户信息
|
||||||
|
InvoiceAllYhdjUtils invoiceAllYhdjUtils = new InvoiceAllYhdjUtils(); |
||||||
|
InvoiceAllYhdj userInfo = invoiceAllYhdjUtils.getUserInfo(companyservice); |
||||||
|
if (BeanUtil.isEmpty(userInfo)) { |
||||||
|
return new HXResponse(InvoiceCommonConstants.NOINFORMATIONISFOUND); |
||||||
|
} |
||||||
|
//ofd文件集合
|
||||||
|
List<String> ofdList = new ArrayList<>(); |
||||||
|
for (Long id : ids) { |
||||||
|
Invoice invoice = invoiceMapper.selectInvoiceById(id); |
||||||
|
String invoiceOfdUrl = invoice.getcOfdUrl(); |
||||||
|
if (invoiceOfdUrl != null) { |
||||||
|
ofdList.add(invoiceOfdUrl); |
||||||
|
} else { |
||||||
|
//获取ofd下载地址
|
||||||
|
//封装请求实体类
|
||||||
|
FileAcquisitionTwoDTO fileAcquisitionDTO = new FileAcquisitionTwoDTO(); |
||||||
|
//发送同步请求
|
||||||
|
fileAcquisitionDTO.setAsync(InvoiceCommonConstants.SYNC); |
||||||
|
fileAcquisitionDTO.setNsrsbh(userInfo.getNsrsbh()); |
||||||
|
fileAcquisitionDTO.setBsrysfzjhm(userInfo.getBsrysfzjhm()); |
||||||
|
fileAcquisitionDTO.setDqbm(userInfo.getDqbm()); |
||||||
|
Map<String, Object> map = new JSONObject(); |
||||||
|
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(InvoiceCommonConstants.DATEFORMAT); |
||||||
|
map.put(InvoiceCommonConstants.FPHM, invoice.getFphm()); |
||||||
|
Date kprq = invoice.getKprq(); |
||||||
|
//修改日期格式(请求接口要求)
|
||||||
|
String kprqFormat = simpleDateFormat.format(kprq); |
||||||
|
map.put(InvoiceCommonConstants.KPRQ, kprqFormat); |
||||||
|
fileAcquisitionDTO.setJsonData(map); |
||||||
|
cn.hutool.json.JSONObject result = null; |
||||||
|
try { |
||||||
|
result = ApiHttp.request(WebServiceConstant.FPEWMXZ, WebServiceConstant.URL, fileAcquisitionDTO, companyservice); |
||||||
|
String code = result.get(InvoiceCommonConstants.CODE) != null ? result.get(InvoiceCommonConstants.CODE).toString() : ""; |
||||||
|
String msg = result.get(InvoiceCommonConstants.MSG) != null ? result.get(InvoiceCommonConstants.MSG).toString() : ""; |
||||||
|
String data = result.get(InvoiceCommonConstants.DATA) != null ? result.get(InvoiceCommonConstants.DATA).toString() : ""; |
||||||
|
if (InvoiceCommonConstants.SUCCESSCODE.equals(code) && StrUtil.isNotEmpty(data)) { |
||||||
|
cn.hutool.json.JSONObject json = JSONUtil.parseObj(data); |
||||||
|
String ofdUrl = json.get(InvoiceCommonConstants.OFDURL) != null ? json.get(InvoiceCommonConstants.OFDURL).toString() : ""; |
||||||
|
ofdList.add(ofdUrl); |
||||||
|
} else { |
||||||
|
return AjaxResult.error(msg); |
||||||
|
} |
||||||
|
} catch (Exception e) { |
||||||
|
e.printStackTrace(); |
||||||
|
log.error("【金四服务类】【金财数科】【获取发票下载地址】API请求异常,外部报文返回code非0000。错误信息:{}", e.getMessage()); |
||||||
|
return AjaxResult.error(InvoiceCommonConstants.DOWNLOADADDRESSERROR); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
//下载ofd文件集合
|
||||||
|
BatchDownloadUtils.downloadAndZipFiles(ofdList,InvoiceCommonConstants.OFDSTATUS,response); |
||||||
|
return AjaxResult.success(InvoiceCommonConstants.DOWNLOADSUCCESSCODE); |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
} |
@ -0,0 +1,125 @@ |
|||||||
|
package com.jianshui.platform.utils; |
||||||
|
|
||||||
|
import com.jianshui.common.constant.InvoiceCommonConstants; |
||||||
|
import org.springframework.util.StringUtils; |
||||||
|
import javax.servlet.http.HttpServletResponse; |
||||||
|
import java.io.IOException; |
||||||
|
import java.io.InputStream; |
||||||
|
import java.io.OutputStream; |
||||||
|
import java.net.HttpURLConnection; |
||||||
|
import java.net.URL; |
||||||
|
import java.text.SimpleDateFormat; |
||||||
|
import java.util.Date; |
||||||
|
import java.util.List; |
||||||
|
import java.util.zip.ZipEntry; |
||||||
|
import java.util.zip.ZipOutputStream; |
||||||
|
|
||||||
|
/** |
||||||
|
* @Author: kane |
||||||
|
* @Description: 批量下载工具类 |
||||||
|
* @CreateTime: 2023-06-09 15:46 |
||||||
|
* @Version: 1.0 |
||||||
|
**/ |
||||||
|
public class BatchDownloadUtils { |
||||||
|
/** |
||||||
|
* 功能描述: 批量下载 |
||||||
|
* @param status 文件类型0-pfd 1-ofd |
||||||
|
* @param urls |
||||||
|
* @return : void |
||||||
|
*/ |
||||||
|
public static void downloadAndZipFiles(List<String> urls, String status, HttpServletResponse response) { |
||||||
|
Date now = new Date(); |
||||||
|
SimpleDateFormat format = new SimpleDateFormat(InvoiceCommonConstants.DATEFORMAT); |
||||||
|
String name = format.format(now); |
||||||
|
String zipFileName = name + ".zip"; |
||||||
|
OutputStream ops = null; |
||||||
|
ZipOutputStream zos = null; |
||||||
|
InputStream inputStream = null; |
||||||
|
try { |
||||||
|
response.setHeader("Content-Disposition", "attachment;filename=" + zipFileName); |
||||||
|
response.setCharacterEncoding("utf-8"); |
||||||
|
ops = response.getOutputStream(); |
||||||
|
zos = new ZipOutputStream(ops); |
||||||
|
for (String url : urls) { |
||||||
|
if (StringUtils.hasText(url)) { |
||||||
|
URL downloadUrl = new URL(url); |
||||||
|
HttpURLConnection httpConn = (HttpURLConnection) downloadUrl.openConnection(); |
||||||
|
int responseCode = httpConn.getResponseCode(); |
||||||
|
if (responseCode == HttpURLConnection.HTTP_OK) { |
||||||
|
String fileName = getFileName(httpConn, status); |
||||||
|
inputStream = httpConn.getInputStream(); |
||||||
|
ZipEntry zipEntry = new ZipEntry(fileName); |
||||||
|
zos.putNextEntry(zipEntry); |
||||||
|
int bytesRead = -1; |
||||||
|
byte[] buffer = new byte[4096]; |
||||||
|
while ((bytesRead = inputStream.read(buffer)) != -1) { |
||||||
|
zos.write(buffer, 0, bytesRead); |
||||||
|
} |
||||||
|
} |
||||||
|
httpConn.disconnect(); |
||||||
|
} |
||||||
|
} |
||||||
|
} catch (Exception ex) { |
||||||
|
ex.printStackTrace(); |
||||||
|
}finally { |
||||||
|
if (inputStream != null){ |
||||||
|
try { |
||||||
|
inputStream.close(); |
||||||
|
} catch (IOException e) { |
||||||
|
e.printStackTrace(); |
||||||
|
} |
||||||
|
} |
||||||
|
if (zos != null){ |
||||||
|
try { |
||||||
|
zos.close(); |
||||||
|
} catch (IOException e) { |
||||||
|
e.printStackTrace(); |
||||||
|
} |
||||||
|
} |
||||||
|
if (ops != null){ |
||||||
|
try { |
||||||
|
ops.close(); |
||||||
|
} catch (IOException e) { |
||||||
|
e.printStackTrace(); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
/** |
||||||
|
* 功能描述: 获取下载后的文件名 |
||||||
|
* @param httpConn |
||||||
|
* @return : java.lang.String |
||||||
|
*/ |
||||||
|
private static String getFileName(HttpURLConnection httpConn, String status) { |
||||||
|
String fileName = ""; |
||||||
|
String disposition = httpConn.getHeaderField("Content-Disposition"); |
||||||
|
Date date = new Date(); |
||||||
|
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(InvoiceCommonConstants.DATEFORMAT); |
||||||
|
if (disposition != null) { |
||||||
|
int index = disposition.indexOf("filename="); |
||||||
|
if (index > 0) { |
||||||
|
fileName = disposition.substring(index + 10, disposition.length() - 1); |
||||||
|
if ("0".equals(status)) { |
||||||
|
String name = simpleDateFormat.format(date); |
||||||
|
fileName = name + ".pdf"; |
||||||
|
} else { |
||||||
|
String name = simpleDateFormat.format(date); |
||||||
|
fileName = name + ".ofd"; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
if (StringUtils.isEmpty(fileName)) { |
||||||
|
fileName = httpConn.getURL().getFile().substring(httpConn.getURL().getFile().lastIndexOf("/") + 1); |
||||||
|
if ("0".equals(status)) { |
||||||
|
String name = simpleDateFormat.format(date); |
||||||
|
fileName = name + ".pdf"; |
||||||
|
} else { |
||||||
|
String name = simpleDateFormat.format(date); |
||||||
|
fileName = name + ".ofd"; |
||||||
|
} |
||||||
|
} |
||||||
|
return fileName; |
||||||
|
} |
||||||
|
} |
Loading…
Reference in new issue