Browse Source

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

wuyx 6 months ago
parent
commit
d05e9391f4

+ 2 - 1
src/main/java/com/uas/eis/dto/QueryInvoiceResultDTO.java

@@ -83,7 +83,8 @@ public class QueryInvoiceResultDTO extends QSqlDTO {
     public String updatePdfUrlSql(){//更新 红票PDFURL附件
         String sql = "";
         if(StringUtil.hasText(serialNo)){
-            sql= "update ElecInvoice set EI_REDPDFURL = "+stringField(pdfUrl)+ " where ei_allelectronicinvoicenumber = "+getBlueRefno()+" and ei_relativerefno = "+stringField(allElectronicInvoiceNumber);
+            sql= "update ElecInvoice set EI_REDPDFURL = (case when EI_REDPDFURL is not null then EI_REDPDFURL||';' else '' end)||"+stringField(pdfUrl)+ " where ei_allelectronicinvoicenumber = "+getBlueRefno()
+                    +" and ei_relativerefno like "+((allElectronicInvoiceNumber == null || "".equals(allElectronicInvoiceNumber) || "NULL".equals(allElectronicInvoiceNumber.toUpperCase())) ? "null" : "'%"+allElectronicInvoiceNumber+"%'");
         }
         return sql;
     }

+ 12 - 3
src/main/java/com/uas/eis/service/Impl/ERPServiceImpl.java

@@ -613,9 +613,18 @@ public class ERPServiceImpl implements ERPService {
             logger.info("ElecI-queryRedPdfUrl:master {} ,serialNosAll {}", SpObserver.getSp(), serialNosAll.toString());
             List<String> rSql = new ArrayList<String>();
             if (serialNosAll.size() > 0) {
+                List<String> serialNosToDoc = new ArrayList<>();
+                for (String serialNo : serialNosAll) {
+                    if(serialNo.indexOf(",")>0){
+                        String[] s = serialNo.split(",");
+                        serialNosToDoc.addAll(Arrays.asList(s));
+                    }else {
+                        serialNosToDoc.add(serialNo);
+                    }
+                }
                 Stream.iterate(0, n -> n + 1)
-                        .limit((int) Math.ceil((double) serialNosAll.size() / 50)).forEach(page -> {
-                    List<String> serialNos = serialNosAll.stream().skip(page * 50).limit(50).collect(Collectors.toList());
+                        .limit((int) Math.ceil((double) serialNosToDoc.size() / 50)).forEach(page -> {
+                    List<String> serialNos = serialNosToDoc.stream().skip(page * 50).limit(50).collect(Collectors.toList());
                     QueryInvoiceResultReq qirReq = new QueryInvoiceResultReq();
                     qirReq.setIsOfferInvoiceDetail("0");
                     qirReq.setSerialNos(serialNos);
@@ -631,7 +640,7 @@ public class ERPServiceImpl implements ERPService {
                     }
                 });
             }
-//            System.out.println("rSql:" + rSql.toString());
+            System.out.println("rSql:" + rSql.toString());
             baseDao.execute(rSql);
         } catch (Exception e) {
             e.printStackTrace();