diff --git a/Zero.Extension.Commerce.Finance.DB/src/main/java/io/zerows/extension/commerce/finance/agent/api/FetchActor.java b/Zero.Extension.Commerce.Finance.DB/src/main/java/io/zerows/extension/commerce/finance/agent/api/FetchActor.java index c48c114960e5bb2184d200744532e1694c9184c2..81107edbb62681b6fc1e5b864c5ba63f7b3c1523 100644 --- a/Zero.Extension.Commerce.Finance.DB/src/main/java/io/zerows/extension/commerce/finance/agent/api/FetchActor.java +++ b/Zero.Extension.Commerce.Finance.DB/src/main/java/io/zerows/extension/commerce/finance/agent/api/FetchActor.java @@ -2,6 +2,8 @@ package io.zerows.extension.commerce.finance.agent.api; import io.zerows.extension.commerce.finance.domain.tables.daos.FBillDao; import io.zerows.extension.commerce.finance.domain.tables.daos.FBillItemDao; +import io.zerows.extension.commerce.finance.domain.tables.daos.FTransDao; +import io.zerows.extension.commerce.finance.domain.tables.daos.FTransItemDao; import io.zerows.extension.commerce.finance.domain.tables.pojos.FBill; import io.zerows.extension.commerce.finance.agent.service.BookStub; import io.zerows.extension.commerce.finance.agent.service.FetchStub; @@ -10,6 +12,9 @@ import io.zerows.extension.commerce.finance.agent.service.end.TransStub; import io.vertx.core.Future; import io.vertx.core.json.JsonArray; import io.vertx.core.json.JsonObject; +import io.zerows.extension.commerce.finance.domain.tables.pojos.FSettlement; +import io.zerows.extension.commerce.finance.domain.tables.pojos.FTrans; +import io.zerows.extension.commerce.finance.domain.tables.pojos.FTransItem; import io.zerows.extension.commerce.finance.eon.Addr; import io.vertx.up.annotations.Address; import io.vertx.up.annotations.Queue; @@ -111,9 +116,28 @@ public class FetchActor { response.put(KName.ITEMS, Ux.toJson(items)); return this.fetchStub.fetchSettlements(items); }).compose(settlements -> { - final JsonArray settlementJ = Ux.toJson(settlements); - response.put("settlements", settlementJ); - return Ux.future(response); + Set serial = null; + for (FSettlement item : settlements) { + serial = Set.of("ST:" + item.getSerial()); + } + return Ux.Jooq.on(FTransDao.class).fetchAsync("NAME", serial) + .compose(fTrans -> { + Set seria = null; + for (FTrans item : fTrans) { + seria = Set.of(item.getKey()); + } + return Ux.Jooq.on(FTransItemDao.class).fetchAsync("TRANSACTION_ID", seria); + }).compose(fTransItems -> { + final JsonArray settlementJ = Ux.toJson(settlements); + final JsonArray newSettlements = new JsonArray(); + settlementJ.forEach(item -> { + final JsonObject entries = Ux.toJson(item); + entries.put("payment", Ux.toJson(fTransItems)); + newSettlements.add(entries); + }); + response.put("settlements", newSettlements); + return Ux.future(response); + }); }).otherwise(Ux.otherwise(new JsonObject())); }); } diff --git a/Zero.Extension.Commerce.Finance.DB/src/main/java/io/zerows/extension/commerce/finance/uca/trans/Step05Debt.java b/Zero.Extension.Commerce.Finance.DB/src/main/java/io/zerows/extension/commerce/finance/uca/trans/Step05Debt.java index 6fe12e944d6bb5b9cdb94f4e2f6b3108d3ba07ad..337593d3fb6269da2f66864948083e003f5e716f 100644 --- a/Zero.Extension.Commerce.Finance.DB/src/main/java/io/zerows/extension/commerce/finance/uca/trans/Step05Debt.java +++ b/Zero.Extension.Commerce.Finance.DB/src/main/java/io/zerows/extension/commerce/finance/uca/trans/Step05Debt.java @@ -66,7 +66,10 @@ class Step05Debt implements Trade, FDebt> { return this.executeItems(settlements, keySelected) .compose(ref::future) .compose(items -> Maker.ofD().buildAsync(data, items)) - .compose(Ux.Jooq.on(FDebtDao.class)::insertAsync) + .compose(entity -> { + entity.setKey(null); + return Ux.Jooq.on(FDebtDao.class).insertAsync(entity); + }) .compose(inserted -> { // 更新 items final List items = ref.get(); diff --git a/Zero.Extension.Commerce.Finance.DB/src/main/java/io/zerows/extension/commerce/finance/uca/trans/Step06TransSettle.java b/Zero.Extension.Commerce.Finance.DB/src/main/java/io/zerows/extension/commerce/finance/uca/trans/Step06TransSettle.java index c1b70d477758d05c8968734b7917e8594d5159a2..3e438214bfb3bc805ceede125b261985ec938e5d 100644 --- a/Zero.Extension.Commerce.Finance.DB/src/main/java/io/zerows/extension/commerce/finance/uca/trans/Step06TransSettle.java +++ b/Zero.Extension.Commerce.Finance.DB/src/main/java/io/zerows/extension/commerce/finance/uca/trans/Step06TransSettle.java @@ -13,6 +13,7 @@ import io.zerows.extension.commerce.finance.uca.enter.Maker; import java.util.ArrayList; import java.util.List; import java.util.Objects; +import java.util.UUID; /** * @author lang : 2024-01-24 @@ -35,6 +36,7 @@ class Step06TransSettle implements Trade, FTrans> { } trans.setType(EmTran.Type.SETTLEMENT.name()); trans.setName("ST:" + Ut.fromJoin(nameList)); + trans.setKey(UUID.randomUUID().toString()); // 此处构造完成 return Ux.future(trans); }) diff --git a/Zero.Extension.Commerce.Finance.DB/src/main/java/io/zerows/extension/commerce/finance/uca/trans/Step07TransDebt.java b/Zero.Extension.Commerce.Finance.DB/src/main/java/io/zerows/extension/commerce/finance/uca/trans/Step07TransDebt.java index d78cfac7fd597a75edf88b0f97cee25e94593e5e..62cdf01f2dfc3cd16f0eafb4f5a6d1b52d4dda3a 100644 --- a/Zero.Extension.Commerce.Finance.DB/src/main/java/io/zerows/extension/commerce/finance/uca/trans/Step07TransDebt.java +++ b/Zero.Extension.Commerce.Finance.DB/src/main/java/io/zerows/extension/commerce/finance/uca/trans/Step07TransDebt.java @@ -29,6 +29,7 @@ class Step07TransDebt implements Trade, FTrans> { nameList.add(debt.getCode()); } } + trans.setKey(null); trans.setName("DR: " + Ut.fromJoin(nameList)); // 此处构造完成 return Ux.future(trans); diff --git a/Zero.Extension.Commerce.Finance.DB/src/main/java/io/zerows/extension/commerce/finance/uca/trans/Sync01Debt.java b/Zero.Extension.Commerce.Finance.DB/src/main/java/io/zerows/extension/commerce/finance/uca/trans/Sync01Debt.java index c38bb2233d66b22d7f2e26783497b2abf2a05ca9..3508137bc7fc52727bf6729e273f74e06d927d58 100644 --- a/Zero.Extension.Commerce.Finance.DB/src/main/java/io/zerows/extension/commerce/finance/uca/trans/Sync01Debt.java +++ b/Zero.Extension.Commerce.Finance.DB/src/main/java/io/zerows/extension/commerce/finance/uca/trans/Sync01Debt.java @@ -64,7 +64,7 @@ class Sync01Debt implements Trade { * finished = true * amountBalance = amount - finishedAmount */ - final BigDecimal amount = debt.getAmount(); + final BigDecimal amount = debt.getAmountBalance(); final BigDecimal amountFinished = new BigDecimal(Ut.valueString(dataJ, "finishedAmount")); final BigDecimal amountBalance = amount.subtract(amountFinished); diff --git a/Zero.Extension.Commerce.Finance.DB/src/main/resources/plugins/zero-extension-commerce-finance/model/fm.trans/column.json b/Zero.Extension.Commerce.Finance.DB/src/main/resources/plugins/zero-extension-commerce-finance/model/fm.trans/column.json index 231ab455ed48c75be5668b73e811dc5e383a2937..82f1f21773ead686839c33b4aa32e23b2230854e 100644 --- a/Zero.Extension.Commerce.Finance.DB/src/main/resources/plugins/zero-extension-commerce-finance/model/fm.trans/column.json +++ b/Zero.Extension.Commerce.Finance.DB/src/main/resources/plugins/zero-extension-commerce-finance/model/fm.trans/column.json @@ -1,6 +1,8 @@ [ "serial,交易单号,,true", + "name,应收单号,,true", "amount,交易金额,CURRENCY", + { "metadata": "type,交易类型,MAPPING", "$mapping": {