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.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.*; /** * 采购合同表单插件 * 点击按钮新增返利规则 */ public class purconmAddRebateRulesPlugin extends AbstractFormPlugin implements HyperLinkClickListener { private final static Log logger = LogFactory.getLog(purconmAddRebateRulesPlugin.class); @Override public void registerListener(EventObject e) { 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); if (e.getEntryProp().equals("tqq9_entryentity")){ 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) { super.itemClick(evt); String itemKey = evt.getItemKey(); if (StringUtils.equals("tqq9_rebate_addrow", itemKey)) { 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")); 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 + "'的返利规则不存在或者已删除,请删除该分录后重新编辑"); } } /** * 点击增行分录返回值 * * @param closedCallBackEvent */ @Override public void closedCallBack(ClosedCallBackEvent closedCallBackEvent) { super.closedCallBack(closedCallBackEvent); IDataModel model = this.getModel(); String actionId = closedCallBackEvent.getActionId(); Object returnData = closedCallBackEvent.getReturnData(); if (returnData != null) { if ("entry_rebateSync".equals(actionId)) { DynamicObjectCollection tqq9_entryentity = this.getModel().getDataEntity(true).getDynamicObjectCollection("tqq9_entryentity"); int size = tqq9_entryentity.size(); DynamicObject dynamicObject = (DynamicObject) ((HashMap) returnData).get("tqq9_pur_rebate"); String name = dynamicObject.getString("name");//规则名称 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 - 1);//规则名称 if (stringBuilder.length() > 0) { model.setValue("tqq9_company", stringBuilder.substring(1), size - 1);//主体 } model.setValue("tqq9_brand", tqq9_rebatebrand, size - 1);//品牌 model.setValue("tqq9_supplier", tqq9_supplier, size - 1);//供应商 model.setValue("tqq9_startdate", tqq9_startdate, size - 1);//返利开始时间 model.setValue("tqq9_enddate", tqq9_enddate, size - 1);//返利结束时间 model.setValue("tqq9_status", tqq9_status, size - 1);//返利状态 model.setValue("tqq9_creatuser", creator, size - 1);//创建人 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(); } }