From 810152443bc76d1477765075665087201ea235eb Mon Sep 17 00:00:00 2001 From: wuyilin <2658378522@qq.com> Date: Thu, 7 May 2026 10:48:22 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8A=A5=E4=BB=B7=E5=8D=95=E6=8F=92=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tenantadmin/tenant/plugin/QuotationPlugin.java | 76 ++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 application-tenant/tenant-admin/src/main/java/apelet/tenantadmin/tenant/plugin/QuotationPlugin.java diff --git a/application-tenant/tenant-admin/src/main/java/apelet/tenantadmin/tenant/plugin/QuotationPlugin.java b/application-tenant/tenant-admin/src/main/java/apelet/tenantadmin/tenant/plugin/QuotationPlugin.java new file mode 100644 index 0000000..40e08bc --- /dev/null +++ b/application-tenant/tenant-admin/src/main/java/apelet/tenantadmin/tenant/plugin/QuotationPlugin.java @@ -0,0 +1,76 @@ +package apelet.tenantadmin.tenant.plugin; + +import apelet.common.core.object.ObjectCollection; +import apelet.common.core.object.ObjectValue; +import apelet.common.core.object.TokenData; +import apelet.common.core.util.ApplicationContextHolder; +import apelet.common.generator.utils.OrmGenDataSourceUtil; +import apelet.common.online.abstractplugin.ExecutePluginParent; +import apelet.common.online.model.constant.AttributeEnum; + +import java.math.BigDecimal; + +/* +报价单插件 + */ +public class QuotationPlugin extends ExecutePluginParent { + private static final OrmGenDataSourceUtil ORM_GEN_DATA_SOURCE_UTIL = ApplicationContextHolder.getBean(OrmGenDataSourceUtil.class); + @Override + public void formCreated(String widgetVariableName, ObjectValue objectValue){ + super.formCreated(widgetVariableName, objectValue); + //获取当前登录的用户ID + TokenData tokenData = TokenData.takeFromRequest(); + Long userId = tokenData.getUserId(); + //查询当前用户信息 + ObjectValue sysUserInfo = ORM_GEN_DATA_SOURCE_UTIL.queryOne("xy_sys_user", userId); + //赋值 + if (sysUserInfo != null){ + this.setWidgetAttribute("managerperson", AttributeEnum.VALUE_CHANGE, sysUserInfo); + } + + //隐藏拒绝理由 + this.setWidgetAttribute("canaelreason",AttributeEnum.SHOW,false); + //设置报价单状态 + this.setWidgetAttribute("status",AttributeEnum.VALUE_CHANGE,"1"); + //设置总价初始值为0 + this.setWidgetAttribute("qty",AttributeEnum.VALUE_CHANGE,0); + } + + @Override + public void change(String widgetVariableName, ObjectValue objectValue){ + super.change(widgetVariableName, objectValue); + //获取报价单状态 + String status = objectValue.getString("status"); + //若status为"4" + if(status.equals("4")){ + this.setWidgetAttribute("canaelreason",AttributeEnum.SHOW,true); + }else { + this.setWidgetAttribute("canaelreason",AttributeEnum.SHOW,false); + } + + //获取单据体 + ObjectCollection quotationE = objectValue.getObjectCollection("quotation_e"); + // 总金额 + BigDecimal allTotalAmount = BigDecimal.ZERO; + //判断是否有数据 + if (quotationE != null && !quotationE.isEmpty()){ + for (int i = 0; i < quotationE.size(); i++ ){ + // 获取行数据 + ObjectValue row = quotationE.getObject(i); + //获取指导折扣价 + BigDecimal discount = row.getBigDecimal("discount"); + // 判空处理 + if (discount == null) { + discount = BigDecimal.ZERO; + } + //获取数量 + int num = row.getInt("num"); + + // 计算总价 = 折扣价 * 数量 + BigDecimal totalAmount = discount.multiply(BigDecimal.valueOf(num)); + allTotalAmount = allTotalAmount.add(totalAmount); + } + this.setWidgetAttribute("qty",AttributeEnum.VALUE_CHANGE,allTotalAmount); + } + } +}