sangwenwei 5 місяців тому
батько
коміт
7a00a48a92

+ 2 - 0
src/main/java/com/jeeplus/modules/centerservice/config/ConnectionService.java

@@ -66,6 +66,8 @@ public class ConnectionService {
 //                }
 //                isConnected = true; // 更新连接状态
             }
+            responseEntity = null;
+            responseEntity1 = null;
         } catch (Exception e) {
 //            isConnected = false; // 连接失败,更新状态
             JedisUtils.set("ccpmConnect", "false", 24);

+ 64 - 41
src/main/java/com/jeeplus/modules/szCenterservice/service/szCloud/FinanceInvoiceService.java

@@ -667,66 +667,89 @@ public class FinanceInvoiceService {
     @Transactional(readOnly = false)
     public void getFinanceInvoiceList() throws Exception {
         Object financeInvoiceList = financeInvoiceRequest.getFinanceInvoiceList();
-        if (Objects.nonNull(financeInvoiceList)){
+
+        if (Objects.nonNull(financeInvoiceList)) {
             List<Map<String, Object>> financeInvoiceListMap = JSONObject.parseObject((String) financeInvoiceList, List.class);
+
             if (financeInvoiceListMap != null && !financeInvoiceListMap.isEmpty()) {
                 for (Map<String, Object> reim : financeInvoiceListMap) {
-                    WorkInvoice workInvoice = new WorkInvoice();
-                    workInvoice = convertFinanceInsert(reim); // 格式转换
-                    //保存信息
-                    if (workInvoice != null && StringUtils.isNotBlank(workInvoice.getId())){
+                    WorkInvoice workInvoice = convertFinanceInsert(reim); // 格式转换
+
+                    // 保存信息
+                    if (workInvoice != null && StringUtils.isNotBlank(workInvoice.getId())) {
                         WorkInvoice invoice = workInvoiceDao.getById(workInvoice.getId());
-                        if (invoice != null){
+                        if (invoice != null) {
                             workInvoiceDao.update(workInvoice);
-                        }else {
+                        } else {
                             workInvoiceDao.insert(workInvoice);
                         }
 
-                        //附件处理
-                        Workattachment workattachment = new Workattachment();
-                        workattachment.setAttachmentId(workInvoice.getId());
-                        workattachment.setAttachmentFlag("115");
-                        if (workInvoice.getCreateBy() != null){
-                            workattachment.setAttachmentUser(workInvoice.getCreateBy().getId());
-                        }
-                        workattachmentService.delete(workattachment);
-                        if (workInvoice.getWorkAttachments() != null && workInvoice.getWorkAttachments().size()>0){
-                            for (Workattachment workAttachment : workInvoice.getWorkAttachments()) {
-                                if (workAttachment != null){
-                                    workattachmentService.insertOnWorkAttachment(workAttachment);
-                                }
+                        // 附件处理
+                        handleAttachments(workInvoice);
 
-                            }
-                        }
+                        // 开票明细处理
+                        handleInvoiceDetails(workInvoice);
 
-                        //开票明细处理
-                        workInvoiceDetailDao.deleteByInvoiceId(workInvoice.getId());
-                        if (workInvoice.getWorkAccountList()!= null && workInvoice.getWorkAccountList().size()>0){
-                            for (WorkInvoiceDetail invoiceDetail : workInvoice.getWorkAccountList()) {
-                                if(invoiceDetail != null){
-                                    workInvoiceDetailDao.insert(invoiceDetail);
+                        // 开票与项目关系处理
+                        handleInvoiceCloudRelations(workInvoice);
+                    }
 
-                                }
+                    // 清理对象,帮助垃圾回收
+                    workInvoice = null; // 显式将对象置为 null,便于 GC 回收
+                }
+            }
+        }
+//        System.gc();
 
-                            }
-                        }
+    }
 
-                        //开票与项目关系处理
-                        workInvoiceCloudDao.deleteByInvoiceId(workInvoice.getId());
-                        if (workInvoice.getWorkInvoiceCloudList() != null && workInvoice.getWorkInvoiceCloudList().size()>0){
-                            for (WorkInvoiceCloud workInvoiceCloud : workInvoice.getWorkInvoiceCloudList()) {
-                                if (workInvoiceCloud != null){
-                                    workInvoiceCloudDao.insert(workInvoiceCloud);
-                                }
-                            }
-                        }
-                    }
+    // 处理附件
+    public void handleAttachments(WorkInvoice workInvoice) {
+        Workattachment workattachment = new Workattachment();
+        workattachment.setAttachmentId(workInvoice.getId());
+        workattachment.setAttachmentFlag("115");
+
+        if (workInvoice.getCreateBy() != null) {
+            workattachment.setAttachmentUser(workInvoice.getCreateBy().getId());
+        }
 
+        workattachmentService.delete(workattachment);  // 删除现有附件
 
+        if (workInvoice.getWorkAttachments() != null && workInvoice.getWorkAttachments().size() >0) {
+            for (Workattachment workAttachment : workInvoice.getWorkAttachments()) {
+                if (workAttachment != null) {
+                    workattachmentService.insertOnWorkAttachment(workAttachment);
                 }
             }
+        }
+        workattachment = null;
+    }
+
+    // 处理开票明细
+    public void handleInvoiceDetails(WorkInvoice workInvoice) {
+        workInvoiceDetailDao.deleteByInvoiceId(workInvoice.getId());
 
+        if (workInvoice.getWorkAccountList() != null && !workInvoice.getWorkAccountList().isEmpty()) {
+            for (WorkInvoiceDetail invoiceDetail : workInvoice.getWorkAccountList()) {
+                if (invoiceDetail != null) {
+                    workInvoiceDetailDao.insert(invoiceDetail);
+                }
+            }
         }
+        workInvoice.getWorkAccountList().clear();
+    }
+
+    // 处理开票与项目关系
+    public void handleInvoiceCloudRelations(WorkInvoice workInvoice) {
+        workInvoiceCloudDao.deleteByInvoiceId(workInvoice.getId());
 
+        if (workInvoice.getWorkInvoiceCloudList() != null && !workInvoice.getWorkInvoiceCloudList().isEmpty()) {
+            for (WorkInvoiceCloud workInvoiceCloud : workInvoice.getWorkInvoiceCloudList()) {
+                if (workInvoiceCloud != null) {
+                    workInvoiceCloudDao.insert(workInvoiceCloud);
+                }
+            }
+        }
+        workInvoice.getWorkInvoiceCloudList().clear();
     }
 }