diff --git a/zero-erp/src/main/resources/plugin/erp/oob/data/erp.wf.view-oa.xlsx b/zero-erp/src/main/resources/plugin/erp/oob/data/erp.wf.view-oa.xlsx index ada09cd2b76bbb785263212d5d1f45f642c8597d..eb65fb5130dcc5a21e1362af4a24c736dabc4ab3 100644 Binary files a/zero-erp/src/main/resources/plugin/erp/oob/data/erp.wf.view-oa.xlsx and b/zero-erp/src/main/resources/plugin/erp/oob/data/erp.wf.view-oa.xlsx differ diff --git a/zero-wf/src/main/modulat/io/vertx/mod/workflow/plugin/query/HQrHistory.java b/zero-wf/src/main/modulat/io/vertx/mod/workflow/plugin/query/HQrHistory.java new file mode 100644 index 0000000000000000000000000000000000000000..95d8c3cafd79e0caf6b32e0fed188e303fe5d61f --- /dev/null +++ b/zero-wf/src/main/modulat/io/vertx/mod/workflow/plugin/query/HQrHistory.java @@ -0,0 +1,41 @@ +package io.vertx.mod.workflow.plugin.query; + +import io.horizon.eon.VString; +import io.horizon.specification.action.HQR; +import io.horizon.spi.business.ExUser; +import io.vertx.core.Future; +import io.vertx.core.json.JsonObject; +import io.vertx.up.eon.KName; +import io.vertx.up.unity.Ux; +import io.vertx.up.util.Ut; + +/** + * 本组专用查询组件 + * + * @author Lang + */ +public class HQrHistory implements HQR { + /* + * openGroup 包含本组 + */ + @Override + public Future compile(final JsonObject data, final JsonObject qr) { + final String userKey = Ut.valueString(data, KName.USER); + // 默认条件: openGroup is null + final JsonObject defaultQr = Ux.whereAnd() + .put("openGroup,n", VString.EMPTY); + + return Ux.channel(ExUser.class, () -> defaultQr, stub -> stub.userGroup(userKey).compose(groups -> { + // groups information + if (groups.isEmpty()) { + return Ux.future(defaultQr); + } + final JsonObject combineQr = new JsonObject(); + combineQr.put("$DFT$", defaultQr); + // openGroup + combineQr.put("openGroup,i", groups); + + return Ux.future(combineQr); + })); + } +}