From ce426b1c79dc467909e694d03dd883ded80bd9dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BE=9A=E8=B1=86=E8=B1=86?= <13356128+sunandmoon60@user.noreply.gitee.com> Date: Thu, 21 Aug 2025 16:48:38 +0800 Subject: [PATCH] =?UTF-8?q?1.=E8=BF=94=E5=88=A9=E8=A7=84=E5=88=99=E8=B0=83?= =?UTF-8?q?=E6=95=B4=202.=E9=87=87=E8=B4=AD=E8=AE=A2=E5=8D=95=E6=9C=80?= =?UTF-8?q?=E9=AB=98=E9=99=90=E4=BB=B7=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../form/ap/ApHandSettleFormPlugin.java | 2 +- .../plugin/form/ap/PayApplyFormPlugin.java | 2 +- .../conm/purconmAddRebateRulesPlugin.java | 180 +++++++++++++++++- .../form/pm/PurSuggestRptFromPlugin.java | 2 +- .../form/pm/PuroderBillShareRefundPlugin.java | 6 +- 5 files changed, 177 insertions(+), 15 deletions(-) diff --git a/lc123/cloud/app/plugin/form/ap/ApHandSettleFormPlugin.java b/lc123/cloud/app/plugin/form/ap/ApHandSettleFormPlugin.java index 93b6650..02ac1be 100644 --- a/lc123/cloud/app/plugin/form/ap/ApHandSettleFormPlugin.java +++ b/lc123/cloud/app/plugin/form/ap/ApHandSettleFormPlugin.java @@ -17,7 +17,7 @@ import java.util.List; /** - * 动态表单插件 + * 手工结算赋值及自动查询 */ public class ApHandSettleFormPlugin extends ManualSettleBasePlugin { private final static Log logger = LogFactory.getLog(ApHandSettleFormPlugin.class); diff --git a/lc123/cloud/app/plugin/form/ap/PayApplyFormPlugin.java b/lc123/cloud/app/plugin/form/ap/PayApplyFormPlugin.java index bdb4efa..e92938a 100644 --- a/lc123/cloud/app/plugin/form/ap/PayApplyFormPlugin.java +++ b/lc123/cloud/app/plugin/form/ap/PayApplyFormPlugin.java @@ -21,7 +21,7 @@ import tqq9.lc123.cloud.app.plugin.form.conm.purconmAddRebateRulesPlugin; import java.util.EventObject; /** - * 单据界面插件 + * 付款申请新增抵扣订单按钮 */ public class PayApplyFormPlugin extends AbstractBillPlugIn implements Plugin { private final static Log logger = LogFactory.getLog(PayApplyFormPlugin.class); diff --git a/lc123/cloud/app/plugin/form/conm/purconmAddRebateRulesPlugin.java b/lc123/cloud/app/plugin/form/conm/purconmAddRebateRulesPlugin.java index 7502db2..7cc5598 100644 --- a/lc123/cloud/app/plugin/form/conm/purconmAddRebateRulesPlugin.java +++ b/lc123/cloud/app/plugin/form/conm/purconmAddRebateRulesPlugin.java @@ -1,38 +1,41 @@ package tqq9.lc123.cloud.app.plugin.form.conm; import kd.bos.bill.BillShowParameter; +import kd.bos.bill.OperationStatus; import kd.bos.dataentity.entity.DynamicObject; import kd.bos.dataentity.entity.DynamicObjectCollection; import kd.bos.dataentity.utils.StringUtils; import kd.bos.entity.datamodel.IDataModel; import kd.bos.entity.datamodel.ListSelectedRow; import kd.bos.entity.datamodel.ListSelectedRowCollection; -import kd.bos.form.CloseCallBack; -import kd.bos.form.FormShowParameter; -import kd.bos.form.IFormView; -import kd.bos.form.ShowType; +import kd.bos.entity.datamodel.events.BeforeDeleteRowEventArgs; +import kd.bos.form.*; +import kd.bos.form.control.Control; +import kd.bos.form.control.EntryGrid; import kd.bos.form.control.events.BeforeItemClickEvent; import kd.bos.form.control.events.ItemClickEvent; import kd.bos.form.events.ClosedCallBackEvent; +import kd.bos.form.events.HyperLinkClickEvent; +import kd.bos.form.events.HyperLinkClickListener; import kd.bos.form.plugin.AbstractFormPlugin; import kd.bos.logging.Log; import kd.bos.logging.LogFactory; import kd.bos.orm.query.QCP; import kd.bos.orm.query.QFilter; import kd.bos.servicehelper.BusinessDataServiceHelper; +import kd.bos.servicehelper.operation.DeleteServiceHelper; +import kd.bos.servicehelper.operation.SaveServiceHelper; import kd.sdk.plugin.Plugin; +import scala.annotation.meta.param; import java.math.BigDecimal; -import java.util.Date; -import java.util.EventObject; -import java.util.HashMap; -import java.util.Map; +import java.util.*; /** * 采购合同表单插件 * 点击按钮新增返利规则 */ -public class purconmAddRebateRulesPlugin extends AbstractFormPlugin implements Plugin { +public class purconmAddRebateRulesPlugin extends AbstractFormPlugin implements HyperLinkClickListener { private final static Log logger = LogFactory.getLog(purconmAddRebateRulesPlugin.class); @@ -41,8 +44,36 @@ public class purconmAddRebateRulesPlugin extends AbstractFormPlugin implements P super.registerListener(e); this.addItemClickListeners("tbmain"); this.addItemClickListeners("tqq9_rebatetoolbarap"); + this.addClickListeners(new String[]{"tqq9_paybillno"}); + EntryGrid preEntry = (EntryGrid) this.getView().getControl("tqq9_entryentity"); + preEntry.addHyperClickListener(this); } + @Override + public void beforeDeleteRow(BeforeDeleteRowEventArgs e) { + super.beforeDeleteRow(e); + int[] selectRows = e.getRowIndexs(); + DynamicObjectCollection tqq9_entryentity = this.getModel().getDataEntity(true).getDynamicObjectCollection("tqq9_entryentity"); + List rebate = new ArrayList<>(); + StringBuilder stringBuilder = new StringBuilder(); + for (int i = 0; i < selectRows.length; i++) { + int selectRow = selectRows[i]; + DynamicObject dynamicObject = tqq9_entryentity.get(selectRow); + DynamicObject tqq9_pur_rebate = dynamicObject.getDynamicObject("tqq9_pur_rebate"); + if (tqq9_pur_rebate != null) { + String name = dynamicObject.getString("tqq9_rulename"); + if (tqq9_pur_rebate.getString("status").equals("A")) { + rebate.add(tqq9_pur_rebate.getLong("id")); + } else { + this.getView().showMessage("名称为:'" + name + "'的返利规则为非暂存状态,无法删除"); + e.setCancel(true); + return; + } + } + } + DeleteServiceHelper.delete("tqq9_pur_rebate", new QFilter[]{new QFilter("id", QCP.in, rebate)}); + this.getView().showMessage("返利规则删除成功"); + } @Override public void itemClick(ItemClickEvent evt) { @@ -58,6 +89,71 @@ public class purconmAddRebateRulesPlugin extends AbstractFormPlugin implements P param.getOpenStyle().setShowType(ShowType.Modal); this.getView().showForm(param); } +// else if (StringUtils.equals("tqq9_rebate_deleterow", itemKey)) { +// EntryGrid entryGrid = this.getControl("tqq9_entryentity"); +// int[] selectRows = entryGrid.getSelectRows(); +// DynamicObjectCollection tqq9_entryentity = this.getModel().getDataEntity(true).getDynamicObjectCollection("tqq9_entryentity"); +// List rebate = new ArrayList<>(); +// StringBuilder stringBuilder = new StringBuilder(); +// for (int i = 0; i < selectRows.length; i++) { +// int selectRow = selectRows[i]; +// DynamicObject dynamicObject = tqq9_entryentity.get(selectRow); +// DynamicObject tqq9_pur_rebate = dynamicObject.getDynamicObject("tqq9_pur_rebate"); +// if (tqq9_pur_rebate != null) { +// String name = dynamicObject.getString("name"); +// if (tqq9_pur_rebate.getString("status").equals("A")) { +// rebate.add(tqq9_pur_rebate.getLong("id")); +// } else { +// stringBuilder.append(",").append("名称为:'" + name + "'的返利规则为非暂存状态,无法删除"); +// } +// } +// } +// DeleteServiceHelper.delete("tqq9_pur_rebate", new QFilter[]{new QFilter("id", QCP.in, rebate)}); +// if (stringBuilder.length() > 0) { +// this.getView().showMessage(stringBuilder.substring(1)); +// } else { +// this.getView().showMessage("选择编码规则均为暂存状态,删除成功"); +// } +// +// } + } + +// @Override +// public void click(EventObject evt) { +// Control c = (Control) evt.getSource(); +// String key = c.getKey().toLowerCase(); +// if ("tqq9_rulename".equals(key)) { +// BillShowParameter param = new BillShowParameter(); +// param.setFormId("tqq9_pur_rebate"); +// param.setCustomParam("purcontract_billno", this.getModel().getValue("billno")); +// param.setCustomParam("purcontract_supplier", this.getModel().getValue("supplier")); +// param.setCustomParam("purcontract_tqq9_dxpp", this.getModel().getValue("tqq9_dxpp")); +// param.setCloseCallBack(new CloseCallBack(this, "entry_rebateSync_click")); +// param.getOpenStyle().setShowType(ShowType.Modal); +// this.getView().showForm(param); +// } +// } + + @Override + public void hyperLinkClick(HyperLinkClickEvent hyperLinkClickEvent) { + int rowIndex = hyperLinkClickEvent.getRowIndex(); + String tqq9_rulename = (String) this.getModel().getValue("tqq9_rulename", rowIndex); + DynamicObject tqq9_pur_rebate = BusinessDataServiceHelper.loadSingle("tqq9_pur_rebate", new QFilter[]{new QFilter("name", QCP.equals, tqq9_rulename)}); + if (tqq9_pur_rebate != null) { + Long id = tqq9_pur_rebate.getLong("id"); + BillShowParameter formshowParameter = new BillShowParameter(); + formshowParameter.setFormId("tqq9_pur_rebate"); + formshowParameter.getOpenStyle().setInlineStyleCss(new StyleCss()); + formshowParameter.setPkId(id); + formshowParameter.getOpenStyle().setShowType(ShowType.Modal); + formshowParameter.setCustomParam("purcontract_billno", this.getModel().getValue("billno")); + formshowParameter.setCustomParam("purcontract_supplier", this.getModel().getValue("supplier")); + formshowParameter.setCustomParam("purcontract_tqq9_dxpp", this.getModel().getValue("tqq9_dxpp")); + formshowParameter.setCloseCallBack(new CloseCallBack(this, "entry_rebateSync_click")); + this.getView().showForm(formshowParameter); + } else { + this.getView().showErrorNotification("名称为:'" + tqq9_rulename + "'的返利规则不存在或者已删除,请删除该分录后重新编辑"); + } } @@ -131,10 +227,76 @@ public class purconmAddRebateRulesPlugin extends AbstractFormPlugin implements P model.setValue("tqq9_creatdate", createtime, size - 1);//创建时间 model.setValue("tqq9_lastdate", tqq9_lastdate, size - 1);//最后一次执行时间 model.setValue("tqq9_pur_rebate", dynamicObject, size - 1);//返利规则 + } else if ("entry_rebateSync_click".equals(actionId)) { + DynamicObjectCollection tqq9_entryentity = this.getModel().getDataEntity(true).getDynamicObjectCollection("tqq9_entryentity"); + int size = 0; + DynamicObject dynamicObject = (DynamicObject) ((HashMap) returnData).get("tqq9_pur_rebate"); + String name = dynamicObject.getString("name"); + String id = dynamicObject.getString("id"); + for (int i = 0; i < tqq9_entryentity.size(); i++) { + if (StringUtils.equals(tqq9_entryentity.get(i).getString("tqq9_pur_rebate.id"), id)) { + size = i; + } + } + DynamicObjectCollection tqq9_rebatebrand = dynamicObject.getDynamicObjectCollection("tqq9_rebatebrand");//品牌 + DynamicObjectCollection tqq9_supplier = dynamicObject.getDynamicObjectCollection("tqq9_supplier");//供应商 + Date tqq9_startdate = dynamicObject.getDate("tqq9_startdate");//返利开始时间 + Date tqq9_enddate = dynamicObject.getDate("tqq9_enddate");//返利结束时间 + String tqq9_status = dynamicObject.getString("tqq9_status");//返利状态 + DynamicObject creator = dynamicObject.getDynamicObject("creator");//创建人 + Date createtime = dynamicObject.getDate("createtime");//创建时间 + Date tqq9_lastdate = dynamicObject.getDate("tqq9_lastdate");//最后一次执行时间 + String tqq9_rebatesub = dynamicObject.getString("tqq9_rebatesub");//返利主体 + StringBuilder stringBuilder = new StringBuilder(); + if (StringUtils.equals("A", tqq9_rebatesub)) { + Boolean tqq9_shanghailici = dynamicObject.getBoolean("tqq9_shanghailici"); + if (tqq9_shanghailici) { + stringBuilder.append(",").append("上海励齿"); + } + Boolean tqq9_beijinglichi = dynamicObject.getBoolean("tqq9_beijinglichi"); + if (tqq9_beijinglichi) { + stringBuilder.append(",").append("北京励齿"); + + } + Boolean tqq9_guangzhoulici = dynamicObject.getBoolean("tqq9_guangzhoulici"); + if (tqq9_guangzhoulici) { + stringBuilder.append(",").append("广州励齿"); + } + } else if (StringUtils.equals("B", tqq9_rebatesub)) { + BigDecimal tqq9_shlcbl = dynamicObject.getBigDecimal("tqq9_shlcbl"); + if (tqq9_shlcbl.compareTo(BigDecimal.ZERO) == 0) { + stringBuilder.append(",").append("上海励齿"); + } + BigDecimal tqq9_bjlcbl = dynamicObject.getBigDecimal("tqq9_bjlcbl"); + if (tqq9_bjlcbl.compareTo(BigDecimal.ZERO) == 0) { + stringBuilder.append(",").append("北京励齿"); + } + BigDecimal tqq9_gzlcbl = dynamicObject.getBigDecimal("tqq9_gzlcbl"); + if (tqq9_gzlcbl.compareTo(BigDecimal.ZERO) == 0) { + stringBuilder.append(",").append("广州励齿"); + } + } + + + model.setValue("tqq9_rulename", name, size);//规则名称 + if (stringBuilder.length() > 0) { + model.setValue("tqq9_company", stringBuilder.substring(1), size);//主体 + } + model.setValue("tqq9_brand", tqq9_rebatebrand, size);//品牌 + model.setValue("tqq9_supplier", tqq9_supplier, size);//供应商 + model.setValue("tqq9_startdate", tqq9_startdate, size);//返利开始时间 + model.setValue("tqq9_enddate", tqq9_enddate, size);//返利结束时间 + model.setValue("tqq9_status", tqq9_status, size);//返利状态 + model.setValue("tqq9_creatuser", creator, size);//创建人 + model.setValue("tqq9_creatdate", createtime, size);//创建时间 + model.setValue("tqq9_lastdate", tqq9_lastdate, size);//最后一次执行时间 + model.setValue("tqq9_pur_rebate", dynamicObject, size);//返利规则 } } this.getView().updateView(); } + + } diff --git a/lc123/cloud/app/plugin/form/pm/PurSuggestRptFromPlugin.java b/lc123/cloud/app/plugin/form/pm/PurSuggestRptFromPlugin.java index a5d3c8a..3cfe0ab 100644 --- a/lc123/cloud/app/plugin/form/pm/PurSuggestRptFromPlugin.java +++ b/lc123/cloud/app/plugin/form/pm/PurSuggestRptFromPlugin.java @@ -30,7 +30,7 @@ import java.math.BigDecimal; import java.util.*; /** - * 动态表单插件 + * 采购建议报表 */ public class PurSuggestRptFromPlugin extends AbstractFormPlugin implements Plugin { private final static Log logger = LogFactory.getLog(PurSuggestRptFromPlugin.class); diff --git a/lc123/cloud/app/plugin/form/pm/PuroderBillShareRefundPlugin.java b/lc123/cloud/app/plugin/form/pm/PuroderBillShareRefundPlugin.java index 368906f..1936891 100644 --- a/lc123/cloud/app/plugin/form/pm/PuroderBillShareRefundPlugin.java +++ b/lc123/cloud/app/plugin/form/pm/PuroderBillShareRefundPlugin.java @@ -300,11 +300,11 @@ public class PuroderBillShareRefundPlugin extends AbstractBillPlugIn { if (StringUtils.equals("priceandtax", name)) { ChangeData changeData = e.getChangeSet()[0]; int rowIndex = changeData.getRowIndex(); - int seq = rowIndex + 1; + int seq = rowIndex; BigDecimal newValue = (BigDecimal) changeData.getNewValue(); - BigDecimal tqq9_zgcgxj = (BigDecimal) getModel().getValue("tqq9_zgcgxj"); + BigDecimal tqq9_zgcgxj = (BigDecimal) getModel().getValue("tqq9_zgcgxj",seq); if (newValue.compareTo(tqq9_zgcgxj) > 0 && tqq9_zgcgxj.compareTo(BigDecimal.ZERO) > 0) { - getModel().setValue("priceandtax", 0); + getModel().setValue("priceandtax", 0,seq); this.getView().showErrorNotification("物料明细分录行" + seq + "含税单价超过最高采购限价,请修改"); }