From 9b7fa08b1ed75dd30ca44861317721fb2291b606 Mon Sep 17 00:00:00 2001 From: chenshaoxin <1981897232@qq.com> Date: Mon, 21 Jul 2025 10:13:50 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BA=BA=EF=BC=9A=E9=99=88?= =?UTF-8?q?=E7=BB=8D=E9=91=AB=20=E6=97=A5=E6=9C=9F=EF=BC=9A2025/7/19=2017?= =?UTF-8?q?=EF=BC=9A00=20=E5=86=85=E5=AE=B9:=E8=87=AA=E5=8A=A8=E5=85=91?= =?UTF-8?q?=E4=BB=98=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../plugin/operation/DrafttradebillOP.java | 114 +++++++++--------- 1 file changed, 58 insertions(+), 56 deletions(-) diff --git a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/operation/DrafttradebillOP.java b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/operation/DrafttradebillOP.java index a39e108..a05281f 100644 --- a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/operation/DrafttradebillOP.java +++ b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/operation/DrafttradebillOP.java @@ -116,67 +116,69 @@ public class DrafttradebillOP extends AbstractOperationServicePlugIn { Map> srcBills = BFTrackerServiceHelper.findSourceBills("cdm_drafttradebill", new Long[]{id});//上查开票登记 if (srcBills.containsKey(CdmEntityConst.CDM_PAYABLEBILL)) { HashSet ar_invoice = srcBills.get(CdmEntityConst.CDM_PAYABLEBILL); - // 获取第一个元素,如果集合不为空 - Long firstElement = ar_invoice.stream().findFirst().orElse(null); - DynamicObject cdm_payablebill = BusinessDataServiceHelper.loadSingle(firstElement, CdmEntityConst.CDM_PAYABLEBILL); - String draftbillstatus = cdm_payablebill.getString("draftbillstatus"); - String settlementtype = cdm_payablebill.getString("draftbilltype.settlementtype"); - if (!draftbillstatus.equals("payoffed")) { - continue; - } - if (!settlementtype.equals("5")) { - continue; - } - - QFilter filter = new QFilter("id", QCP.equals, firstElement); - DynamicObject[] CDM_PAYABLEBILLs = BusinessDataServiceHelper.load(CdmEntityConst.CDM_PAYABLEBILL, "id,billno,amount,billstatus,draftbilltranstatus", filter.toArray()); - Set draftIds = Arrays.stream(CDM_PAYABLEBILLs).map((s) -> { - return s.getPkValue(); - }).collect(Collectors.toSet()); - QFilter filter1 = new QFilter("entrys.draftbill.id", "in", draftIds); - filter1.and("tradetype", "=", DraftTradeTypeEnum.REDEEM.getValue()); - filter1.and("draftbilltranstatus", "=", "success"); - Map amountMap = new HashMap(16); - DataSet rows = QueryServiceHelper.queryDataSet("PayableBillRedeemValidator", "cdm_drafttradebill", "entrys.draftbill.id,entrys.billamt", filter1.toArray(), null); - Throwable var8 = null; - try { - Iterator var9 = rows.iterator(); - - while (var9.hasNext()) { - Row row = (Row) var9.next(); - Long draftBillId = row.getLong("entrys.draftbill.id"); - BigDecimal orDefault = amountMap.getOrDefault(draftBillId, BigDecimal.ZERO); - amountMap.put(draftBillId, orDefault.add(row.getBigDecimal("entrys.billamt"))); + List invoiceList = new ArrayList<>(ar_invoice); + for (int i = 0; i < invoiceList.size(); i++) { + Long firstElement = invoiceList.get(i); + DynamicObject cdm_payablebill = BusinessDataServiceHelper.loadSingle(firstElement, CdmEntityConst.CDM_PAYABLEBILL); + String draftbillstatus = cdm_payablebill.getString("draftbillstatus"); + String settlementtype = cdm_payablebill.getString("draftbilltype.settlementtype"); + if (!draftbillstatus.equals("payoffed")) { + continue; } - } catch (Throwable throwable) { - var8 = throwable; - throw throwable; - } finally { - if (rows != null) { - if (var8 != null) { - try { - rows.close(); - } catch (Throwable var25) { - var8.addSuppressed(var25); - } - } else { - rows.close(); + if (!settlementtype.equals("5")) { + continue; + } + + QFilter filter = new QFilter("id", QCP.equals, firstElement); + DynamicObject[] CDM_PAYABLEBILLs = BusinessDataServiceHelper.load(CdmEntityConst.CDM_PAYABLEBILL, "id,billno,amount,billstatus,draftbilltranstatus", filter.toArray()); + Set draftIds = Arrays.stream(CDM_PAYABLEBILLs).map((s) -> { + return s.getPkValue(); + }).collect(Collectors.toSet()); + QFilter filter1 = new QFilter("entrys.draftbill.id", "in", draftIds); + filter1.and("tradetype", "=", DraftTradeTypeEnum.REDEEM.getValue()); + filter1.and("draftbilltranstatus", "=", "success"); + Map amountMap = new HashMap(16); + DataSet rows = QueryServiceHelper.queryDataSet("PayableBillRedeemValidator", "cdm_drafttradebill", "entrys.draftbill.id,entrys.billamt", filter1.toArray(), null); + Throwable var8 = null; + try { + Iterator var9 = rows.iterator(); + + while (var9.hasNext()) { + Row row = (Row) var9.next(); + Long draftBillId = row.getLong("entrys.draftbill.id"); + BigDecimal orDefault = amountMap.getOrDefault(draftBillId, BigDecimal.ZERO); + amountMap.put(draftBillId, orDefault.add(row.getBigDecimal("entrys.billamt"))); } + } catch (Throwable throwable) { + var8 = throwable; + throw throwable; + } finally { + if (rows != null) { + if (var8 != null) { + try { + rows.close(); + } catch (Throwable var25) { + var8.addSuppressed(var25); + } + } else { + rows.close(); + } + } + + } + Long draftId = cdm_payablebill.getLong("id"); + BigDecimal sumBillAmt = amountMap.getOrDefault(draftId, BigDecimal.ZERO); + BigDecimal amount = cdm_payablebill.getBigDecimal("amount"); + boolean isNoAmount = sumBillAmt.compareTo(BigDecimal.ZERO) != 0 && amount.compareTo(sumBillAmt) == 0; + String billStatus = cdm_payablebill.getString("billstatus"); + String draftbillTranstatus = cdm_payablebill.getString("draftbilltranstatus"); + if (!BillStatusEnum.AUDIT.getValue().equals(billStatus) || !DraftTranStatusEnum.SUCCESS.getValue().equals(draftbillTranstatus) || isNoAmount) { + logger.info("单据编号:" + cdm_payablebill.getString("billno") + "单据状态为“已审核”且票据交易状态为“交易成功”的未兑付票据才能操作票据兑付。"); + continue; } + list.add(Long.parseLong(cdm_payablebill.getString("id"))); } - Long draftId = cdm_payablebill.getLong("id"); - BigDecimal sumBillAmt = amountMap.getOrDefault(draftId, BigDecimal.ZERO); - BigDecimal amount = cdm_payablebill.getBigDecimal("amount"); - boolean isNoAmount = sumBillAmt.compareTo(BigDecimal.ZERO) != 0 && amount.compareTo(sumBillAmt) == 0; - String billStatus = cdm_payablebill.getString("billstatus"); - String draftbillTranstatus = cdm_payablebill.getString("draftbilltranstatus"); - if (!BillStatusEnum.AUDIT.getValue().equals(billStatus) || !DraftTranStatusEnum.SUCCESS.getValue().equals(draftbillTranstatus) || isNoAmount) { - logger.info("单据编号:" + cdm_payablebill.getString("billno") + "单据状态为“已审核”且票据交易状态为“交易成功”的未兑付票据才能操作票据兑付。"); - continue; - } - - list.add(Long.parseLong(cdm_payablebill.getString("id"))); } } }