From 3f63f4d3b37ebb5afd568aa958438ff650658754 Mon Sep 17 00:00:00 2001 From: wuyilin <2658378522@qq.com> Date: Fri, 8 May 2026 17:14:12 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8A=A5=E4=BB=B7=E5=8D=95=E5=AE=A1=E6=89=B9?= =?UTF-8?q?=E6=8F=92=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tenantadmin/tenant/plugin/ConfirmPlugin.java | 74 ++++++++++++++++++++++ .../tenantadmin/tenant/plugin/OpenPopupPlugin.java | 53 ++++++++++++++++ .../tenant/plugin/PopupGetIdPlugin.java | 29 +++++++++ .../tenant/plugin/ReviewPastPlugin.java | 55 ++++++++++++++++ .../tenant/plugin/ReviewRefusePlugin.java | 54 ++++++++++++++++ 5 files changed, 265 insertions(+) create mode 100644 application-tenant/tenant-admin/src/main/java/apelet/tenantadmin/tenant/plugin/ConfirmPlugin.java create mode 100644 application-tenant/tenant-admin/src/main/java/apelet/tenantadmin/tenant/plugin/OpenPopupPlugin.java create mode 100644 application-tenant/tenant-admin/src/main/java/apelet/tenantadmin/tenant/plugin/PopupGetIdPlugin.java create mode 100644 application-tenant/tenant-admin/src/main/java/apelet/tenantadmin/tenant/plugin/ReviewPastPlugin.java create mode 100644 application-tenant/tenant-admin/src/main/java/apelet/tenantadmin/tenant/plugin/ReviewRefusePlugin.java diff --git a/application-tenant/tenant-admin/src/main/java/apelet/tenantadmin/tenant/plugin/ConfirmPlugin.java b/application-tenant/tenant-admin/src/main/java/apelet/tenantadmin/tenant/plugin/ConfirmPlugin.java new file mode 100644 index 0000000..adb7707 --- /dev/null +++ b/application-tenant/tenant-admin/src/main/java/apelet/tenantadmin/tenant/plugin/ConfirmPlugin.java @@ -0,0 +1,74 @@ +package apelet.tenantadmin.tenant.plugin; + +import apelet.common.core.object.ObjectCollection; +import apelet.common.core.object.ObjectValue; +import apelet.common.core.util.ApplicationContextHolder; +import apelet.common.generator.utils.OrmGenDataSourceUtil; +import apelet.common.online.plugin.BeginOperationTransactionArgs; +import apelet.common.online.plugin.OperationServicePlugIn; +import apelet.common.online.plugin.OperationServicePlugInArgs; +import apelet.common.online.service.impl.OnlineFormServiceImpl; +import apelet.common.orm.impl.Filter; +import apelet.common.orm.impl.FilterItem; +import apelet.common.orm.impl.Selector; +import apelet.common.orm.impl.SelectorItem; + +/* +弹窗确认后,保存数据库 + */ +public class ConfirmPlugin extends OperationServicePlugIn { + private OnlineFormServiceImpl onlineFormService; + private OrmGenDataSourceUtil ormGenDataSourceUtil; + + public ConfirmPlugin() { + onlineFormService = ApplicationContextHolder.getBean("onlineFormService"); + ormGenDataSourceUtil = ApplicationContextHolder.getBean("ormGenDataSourceUtil"); + } + @Override + public void onPreparePropertys(OperationServicePlugInArgs e) { + e.addFiledKey("id"); + e.addFiledKey("canaelreason"); + } + + @Override + public void beginOperationTransaction(BeginOperationTransactionArgs e){ + super.beginOperationTransaction(e); + ObjectCollection modelCollcetion = e.getModelCollcetion(); + + if (ormGenDataSourceUtil == null) { + throw new RuntimeException("ORM工具类初始化失败,无法执行数据库操作"); + } + + if (modelCollcetion != null && !modelCollcetion.isEmpty()) { + for (int i = 0; i < modelCollcetion.size(); i++) { + try { + ObjectValue object = modelCollcetion.getObject(i); + Object id = object.get("id"); + String reason = object.getString("canaelreason"); + //根据id查找对应单据 + OrmGenDataSourceUtil ormUtil = ormGenDataSourceUtil; + + if (ormUtil == null) { + return; + } + + Filter pkFilter = new Filter(); + pkFilter.add(new FilterItem("id", "=", id)); + ObjectCollection oldCollection = ormUtil.query("quotation", pkFilter, null); + ObjectValue oldBill = oldCollection.getObject(0); + oldBill.put("status", "4"); + oldBill.put("canaelreason", reason); + oldBill.put("billstatus","A"); + Selector selector = new Selector(); + selector.getList().add(new SelectorItem("status")); + selector.getList().add(new SelectorItem("canaelreason")); + selector.getList().add(new SelectorItem("billstatus")); + ormGenDataSourceUtil.update(oldBill.getTableName(), oldBill, selector); + }catch (Exception ex) { + // 抛出运行时异常,使事务回滚 + throw new RuntimeException("更新单据状态失败: " + ex.getMessage(), ex); + } + } + } + } +} diff --git a/application-tenant/tenant-admin/src/main/java/apelet/tenantadmin/tenant/plugin/OpenPopupPlugin.java b/application-tenant/tenant-admin/src/main/java/apelet/tenantadmin/tenant/plugin/OpenPopupPlugin.java new file mode 100644 index 0000000..75f20a2 --- /dev/null +++ b/application-tenant/tenant-admin/src/main/java/apelet/tenantadmin/tenant/plugin/OpenPopupPlugin.java @@ -0,0 +1,53 @@ +package apelet.tenantadmin.tenant.plugin; + + +import apelet.common.core.object.ObjectValue; +import apelet.common.online.abstractplugin.ListPlugin; +import apelet.common.online.model.ShowParameter; +import apelet.common.online.model.constant.ShowTypeEnum; +import apelet.common.online.model.constant.ViewStatus; + +import java.util.HashMap; +import java.util.Map; + +/* +取消报价插件,打开弹窗 + */ +public class OpenPopupPlugin extends ListPlugin { + + /** + * 目标表单ID - 表单在平台中的表单ID + */ + private static final Object FORM_ID = "2052578317407621120"; + + /** + * 触发按钮的标识 - 对应表单上按钮的 key/标识 + * 点击此按钮时触发弹窗 + */ + private static final String BUTTON_KEY = "取消报价"; + + /** + * 按钮点击事件 + * + * @param widgetVariableName 按钮名称 + * @param objectValue 数据 + */ + @Override + public void buttonTriggered(String widgetVariableName, ObjectValue objectValue){ + super.buttonTriggered(widgetVariableName, objectValue); + if (BUTTON_KEY.equals(widgetVariableName)){ + //打开弹窗 + ShowParameter showParameter = new ShowParameter(); + showParameter.setFormId(FORM_ID.toString()); + showParameter.setHowType(ShowTypeEnum.OPEN_ONLINE_MODAL); + showParameter.setStatus(ViewStatus.EDIT); + // 传参 + Map map = new HashMap<>(); + // 为弹窗中的隐藏字段标识 + map.put("id",""); + // 设置参数 + showParameter.setCustomParam(map); + super.showForm(showParameter); + } + } +} diff --git a/application-tenant/tenant-admin/src/main/java/apelet/tenantadmin/tenant/plugin/PopupGetIdPlugin.java b/application-tenant/tenant-admin/src/main/java/apelet/tenantadmin/tenant/plugin/PopupGetIdPlugin.java new file mode 100644 index 0000000..0328b69 --- /dev/null +++ b/application-tenant/tenant-admin/src/main/java/apelet/tenantadmin/tenant/plugin/PopupGetIdPlugin.java @@ -0,0 +1,29 @@ +package apelet.tenantadmin.tenant.plugin; + +import apelet.common.core.object.ObjectValue; +import apelet.common.online.abstractplugin.ExecutePluginParent; +import apelet.common.online.dto.OnlineEventPluginExecuteDto; +import apelet.common.online.model.constant.AttributeEnum; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import java.util.Collection; +import java.util.Map; + +/* +弹窗获取id + */ +public class PopupGetIdPlugin extends ExecutePluginParent { + @Override + public void formCreated(String widgetVariableName, ObjectValue objectValue){ + OnlineEventPluginExecuteDto dto = getDto(); + Map rowData = dto.getModel().getRowData(); + if (rowData != null && !rowData.isEmpty()){ + Collection values = rowData.values(); + Object firstValue = values.iterator().next(); + JSONArray jsonArray = (JSONArray) firstValue; + JSONObject item = jsonArray.getJSONObject(0); + String id = item.getString("id"); + this.setWidgetAttribute("id", AttributeEnum.VALUE_CHANGE,id); + } + } +} diff --git a/application-tenant/tenant-admin/src/main/java/apelet/tenantadmin/tenant/plugin/ReviewPastPlugin.java b/application-tenant/tenant-admin/src/main/java/apelet/tenantadmin/tenant/plugin/ReviewPastPlugin.java new file mode 100644 index 0000000..be36246 --- /dev/null +++ b/application-tenant/tenant-admin/src/main/java/apelet/tenantadmin/tenant/plugin/ReviewPastPlugin.java @@ -0,0 +1,55 @@ +package apelet.tenantadmin.tenant.plugin; + +import apelet.common.core.object.ObjectCollection; +import apelet.common.core.object.ObjectValue; +import apelet.common.core.util.ApplicationContextHolder; +import apelet.common.generator.utils.OrmGenDataSourceUtil; +import apelet.common.online.plugin.BeginOperationTransactionArgs; +import apelet.common.online.plugin.OperationServicePlugIn; +import apelet.common.online.plugin.OperationServicePlugInArgs; +import apelet.common.online.service.impl.OnlineFormServiceImpl; +import apelet.common.orm.impl.Selector; +import apelet.common.orm.impl.SelectorItem; + +/* +审核通过插件 + */ +public class ReviewPastPlugin extends OperationServicePlugIn { + + private OnlineFormServiceImpl onlineFormService; + private OrmGenDataSourceUtil ormGenDataSourceUtil; + + public void AuditOperationServicePlugIn() { + onlineFormService = ApplicationContextHolder.getBean("onlineFormService"); + ormGenDataSourceUtil = ApplicationContextHolder.getBean("ormGenDataSourceUtil"); + } + + @Override + public void onPreparePropertys(OperationServicePlugInArgs e) { + e.addFiledKey("id"); + e.addFiledKey("status"); + } + + @Override + public void beginOperationTransaction(BeginOperationTransactionArgs e){ + super.beginOperationTransaction(e); + ObjectCollection modelCollcetion = e.getModelCollcetion(); + + if(modelCollcetion != null && !modelCollcetion.isEmpty()){ + for (int i = 0; i < modelCollcetion.size(); i++) { + try { + // 获取单据对象 + ObjectValue bill = modelCollcetion.getObject(i); + bill.put("status", "3"); + bill.put("billstatus","C"); + Selector selector = new Selector(); + selector.getList().add(new SelectorItem("status")); + selector.getList().add(new SelectorItem("billstatus")); + ormGenDataSourceUtil().update(bill.getTableName(), bill, selector); + }catch (Exception ex) { + throw new RuntimeException(ex); + } + } + } + } +} diff --git a/application-tenant/tenant-admin/src/main/java/apelet/tenantadmin/tenant/plugin/ReviewRefusePlugin.java b/application-tenant/tenant-admin/src/main/java/apelet/tenantadmin/tenant/plugin/ReviewRefusePlugin.java new file mode 100644 index 0000000..c0fd1cc --- /dev/null +++ b/application-tenant/tenant-admin/src/main/java/apelet/tenantadmin/tenant/plugin/ReviewRefusePlugin.java @@ -0,0 +1,54 @@ +package apelet.tenantadmin.tenant.plugin; + +import apelet.common.core.object.ObjectCollection; +import apelet.common.core.object.ObjectValue; +import apelet.common.core.util.ApplicationContextHolder; +import apelet.common.generator.utils.OrmGenDataSourceUtil; +import apelet.common.online.plugin.BeginOperationTransactionArgs; +import apelet.common.online.plugin.OperationServicePlugIn; +import apelet.common.online.plugin.OperationServicePlugInArgs; +import apelet.common.online.service.impl.OnlineFormServiceImpl; +import apelet.common.orm.impl.Selector; +import apelet.common.orm.impl.SelectorItem; + +/* +审核驳回插件 + */ +public class ReviewRefusePlugin extends OperationServicePlugIn { + private OnlineFormServiceImpl onlineFormService; + private OrmGenDataSourceUtil ormGenDataSourceUtil; + + public void AuditOperationServicePlugIn() { + onlineFormService = ApplicationContextHolder.getBean("onlineFormService"); + ormGenDataSourceUtil = ApplicationContextHolder.getBean("ormGenDataSourceUtil"); + } + + @Override + public void onPreparePropertys(OperationServicePlugInArgs e) { + e.addFiledKey("id"); + e.addFiledKey("status"); + } + + @Override + public void beginOperationTransaction(BeginOperationTransactionArgs e){ + super.beginOperationTransaction(e); + ObjectCollection modelCollcetion = e.getModelCollcetion(); + + if(modelCollcetion != null && !modelCollcetion.isEmpty()){ + for (int i = 0; i < modelCollcetion.size(); i++) { + try { + // 获取单据对象 + ObjectValue bill = modelCollcetion.getObject(i); + bill.put("status", "1"); + bill.put("billstatus","A"); + Selector selector = new Selector(); + selector.getList().add(new SelectorItem("status")); + selector.getList().add(new SelectorItem("billstatus")); + ormGenDataSourceUtil().update(bill.getTableName(), bill, selector); + }catch (Exception ex) { + throw new RuntimeException(ex); + } + } + } + } +}