Browse Source

【英唐-CATL条码对接】【调整支持下载多个红票附件】

wuyx 6 months ago
parent
commit
bb3e41f9e8
1 changed files with 44 additions and 39 deletions
  1. 44 39
      src/main/java/com/uas/eis/task/ElecInvoiceTask.java

+ 44 - 39
src/main/java/com/uas/eis/task/ElecInvoiceTask.java

@@ -247,7 +247,7 @@ public class ElecInvoiceTask {
                 m.put("taxnum",taxnum);
                 logger.info("ElecI-redPdfUrlUpdate: master: {} Begin ",master);
                 SpObserver.putSp(master);
-                List<String> serialNosAll = baseDao.queryForList("select ei_redsid from ElecInvoice left join InvoiceOrder on ei_ioid = io_id where io_ordertype=1 and EI_RELATIVEREFNO is not null and ei_redpdfurl is null and nvl(EI_BILLSTATUS,' ') in (' ','01','04')",String.class);
+                List<String> serialNosAll = baseDao.queryForList("select ei_redsid from ElecInvoice left join InvoiceOrder on ei_ioid = io_id where  io_ordertype=1 and EI_RELATIVEREFNO is not null and ei_redpdfurl is null and nvl(EI_BILLSTATUS,' ') in (' ','01','04')",String.class);
                 if (serialNosAll == null){
                     logger.info("ElecI-redPdfUrlUpdate: master: {} size: {} ",master,0);
                 }else {
@@ -281,47 +281,52 @@ public class ElecInvoiceTask {
                 while (ioList.next()){
                     //下载地址
                     String fileUrl = ioList.getGeneralString("ei_redpdfurl"); // "https://inv.jss.com.cn/fp2/2zpnwyKkdvu9dWzE8BhmSnER0Iux3xQRMLidDJhiIE2PziVXY4lL3k83OsK0K06YctW5cf1FFHxraffj-bf16A.pdf";
-                    // 定义要保存的文件的路径
-                    String fileName = ioList.getGeneralString("cu_name")+ioList.getGeneralString("ei_relativerefno")+".pdf";//发票号码
-                    String fileBasePath = "C:\\invoice\\"+fileName;//发票号码
-                    fileBasePath = String.valueOf(obs[5])+fileName;//发票储存路径
-                    try {
-                        // 创建URL对象
-                        URL url = new URL(fileUrl);
-                        // 打开连接
-                        URLConnection conn = url.openConnection();
-                        // 获取输入流
-                        InputStream in = conn.getInputStream();
-                        // 创建输出流
-                        FileOutputStream out = new FileOutputStream(fileBasePath);
-                        // 创建缓冲区
-                        byte[] buffer = new byte[104857600];
-                        // 读取并写入数据
-                        int len;
-                        while ((len = in.read(buffer)) != -1) {
-                            out.write(buffer, 0, len);
-                        }
-                        long size = out.getChannel().size();
-                        // 关闭流
-                        in.close();
-                        out.close();
+                    String[] fileUrls = fileUrl.split(",");
+                    StringBuffer fIds = new StringBuffer();
+                    for (String downFileurl:fileUrls) {
+                        // 定义要保存的文件的路径
+                        String fileName = ioList.getGeneralString("cu_name")+ioList.getGeneralString("ei_relativerefno")+".pdf";//发票号码
+                        String fileBasePath = "C:\\invoice\\"+fileName;//发票号码
+                        fileBasePath = String.valueOf(obs[5])+fileName;//发票储存路径
+                        try {
+                            // 创建URL对象
+                            URL url = new URL(downFileurl);
+                            // 打开连接
+                            URLConnection conn = url.openConnection();
+                            // 获取输入流
+                            InputStream in = conn.getInputStream();
+                            // 创建输出流
+                            FileOutputStream out = new FileOutputStream(fileBasePath);
+                            // 创建缓冲区
+                            byte[] buffer = new byte[104857600];
+                            // 读取并写入数据
+                            int len;
+                            while ((len = in.read(buffer)) != -1) {
+                                out.write(buffer, 0, len);
+                            }
+                            long size = out.getChannel().size();
+                            // 关闭流
+                            in.close();
+                            out.close();
 //                        System.out.println("size:"+size);
-                        //存文件 filepath
-                        int id = commonService.saveFilePath(fileBasePath, (int) size, fileName, "管理员");
-                        baseDao.execute("update ELECINVOICE set ei_redpdfattach ='"+id+";' where ei_relativerefno='"+ioList.getGeneralString("ei_relativerefno")+"' and ei_allelectronicinvoicenumber = "+ioList.getGeneralString("ei_allelectronicinvoicenumber"));
-                        //关联退货单 开票订单信息更新
-                        baseDao.execute("update Invoiceorder set io_attach = '"+id+";' where io_ordertype=2 and io_yfphm='"+ioList.getGeneralString("ei_allelectronicinvoicenumber")+"' and io_refno = '"+ioList.getGeneralString("ei_relativerefno")+"'");
-                        System.out.println("下载成功");
-                    } catch (Exception e) {
-                        e.printStackTrace();
-                        String errMsg = "文件转存异常";
-                        if(StringUtil.hasText(e.getMessage())){
-                            errMsg = e.getMessage();
-                        }else if(e.getCause()!=null&&StringUtil.hasText(e.getCause().getMessage())){
-                            errMsg = e.getCause().getMessage();
+                            //存文件 filepath
+                            int id = commonService.saveFilePath(fileBasePath, (int) size, fileName, "管理员");
+                            fIds.append(id).append(";");
+                        } catch (Exception e) {
+                            e.printStackTrace();
+                            String errMsg = "文件转存异常";
+                            if(StringUtil.hasText(e.getMessage())){
+                                errMsg = e.getMessage();
+                            }else if(e.getCause()!=null&&StringUtil.hasText(e.getCause().getMessage())){
+                                errMsg = e.getCause().getMessage();
+                            }
+                            commonService.logFRecord("订单关联发票对接",errMsg.replaceAll("'","''"),ioList.getGeneralInt("ei_id"));
                         }
-                        commonService.logFRecord("订单关联发票对接",errMsg.replaceAll("'","''"),ioList.getGeneralInt("ei_id"));
                     }
+                    baseDao.execute("update ELECINVOICE set ei_redpdfattach = '"+fIds+"' where ei_relativerefno='"+ioList.getGeneralString("ei_relativerefno")+"' and ei_allelectronicinvoicenumber = "+ioList.getGeneralString("ei_allelectronicinvoicenumber"));
+                    //关联退货单 开票订单信息更新
+                    baseDao.execute("update Invoiceorder set io_attach = '"+fIds+"' where io_ordertype=2 and io_yfphm='"+ioList.getGeneralString("ei_allelectronicinvoicenumber")+"' and io_refno = '"+ioList.getGeneralString("ei_relativerefno")+"'");
+                    System.out.println("下载成功");
                 }
                 logger.info("ElecI-AttachSave: master: {} End ",master);
             }