package tqq9.lc123.cloud.app.plugin.form.conm; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import kd.bos.bill.AbstractBillPlugIn; import kd.bos.dataentity.entity.DynamicObject; import kd.bos.dataentity.entity.DynamicObjectCollection; import kd.bos.dataentity.utils.ObjectUtils; import kd.bos.dataentity.utils.StringUtils; import kd.bos.entity.datamodel.IDataModel; import kd.bos.entity.param.CustomParam; import kd.bos.form.CloseCallBack; import kd.bos.form.FormShowParameter; import kd.bos.form.IFormView; import kd.bos.form.ShowFormHelper; import kd.bos.form.control.Control; import kd.bos.form.control.events.ItemClickEvent; import kd.bos.form.events.AfterDoOperationEventArgs; import kd.bos.form.field.BasedataEdit; import kd.bos.form.field.MulBasedataEdit; import kd.bos.form.field.RefBillEdit; import kd.bos.form.field.events.BeforeF7SelectEvent; import kd.bos.form.field.events.BeforeF7SelectListener; import kd.bos.list.ListFilterParameter; import kd.bos.list.ListShowParameter; 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.sdk.plugin.Plugin; import java.math.BigDecimal; import java.util.*; /** * 返利规则表单插件 * 同步采购合同信息 */ public class RebateRulesBillPlugin extends AbstractBillPlugIn implements BeforeF7SelectListener { private final static Log logger = LogFactory.getLog(RebateRulesBillPlugin.class); @Override public void registerListener(EventObject e) { super.registerListener(e); this.addItemClickListeners("tbmain"); MulBasedataEdit control = this.getControl("tqq9_exclunopur"); control.addBeforeF7SelectListener(this); } @Override public void beforeF7Select(BeforeF7SelectEvent beforeF7SelectEvent) { IDataModel model = this.getModel(); String tqq9_excludnum = model.getDataEntity().getString("tqq9_excludnum"); Date tqq9_startexcludate = model.getDataEntity().getDate("tqq9_startexcludate"); Date tqq9_endexcludate = model.getDataEntity().getDate("tqq9_endexcludate"); if (tqq9_startexcludate == null || tqq9_endexcludate == null) { beforeF7SelectEvent.setCancel(true); this.getView().showMessage("请先填写排除时间段"); } if (StringUtils.equals("1", tqq9_excludnum)) { ListShowParameter param = (ListShowParameter) beforeF7SelectEvent.getFormShowParameter(); QFilter qF1 = new QFilter("biztime", QCP.large_equals, tqq9_startexcludate); QFilter qF2 = new QFilter("biztime", QCP.less_equals, tqq9_endexcludate); param.getListFilterParameter().getQFilters().add(qF1.and(qF2)); } } @Override public void afterDoOperation(AfterDoOperationEventArgs afterDoOperationEventArgs) { super.afterDoOperation(afterDoOperationEventArgs); String itemKey = afterDoOperationEventArgs.getOperateKey(); if (StringUtils.equals("donothing", itemKey)) { Object name = this.getModel().getValue("name"); Object tqq9_supplier = this.getModel().getValue("tqq9_supplier"); Object tqq9_startdate = this.getModel().getValue("tqq9_startdate"); Object tqq9_enddate = this.getModel().getValue("tqq9_enddate"); Object tqq9_estimatepro = this.getModel().getValue("tqq9_estimatepro"); Object tqq9_rebatebrand = this.getModel().getValue("tqq9_rebatebrand"); Object tqq9_rebategoods = this.getModel().getValue("tqq9_rebategoods"); if (name == null || tqq9_supplier == null || tqq9_startdate == null || tqq9_enddate == null || tqq9_estimatepro == null || tqq9_rebatebrand == null || tqq9_rebategoods == null) { this.getView().showErrorNotification("请确认必录项是否为空"); } else { DynamicObject dataEntity = this.getModel().getDataEntity(true); HashMap map = new HashMap<>(); map.put("tqq9_pur_rebate", dataEntity); this.getView().returnDataToParent(map); this.getView().close(); } } } @Override public void afterCreateNewData(EventObject e) { // 获取当前页面的FormShowParameter对象 FormShowParameter formShowParameter = this.getView().getFormShowParameter(); // 获取自定义参数 String billno = formShowParameter.getCustomParam("purcontract_billno"); JSONObject purcontract_supplier = formShowParameter.getCustomParam("purcontract_supplier"); JSONArray purcontract_tqq9_dxpp = formShowParameter.getCustomParam("purcontract_tqq9_dxpp"); DynamicObject supplier = null; // DynamicObject tqq9_dxpp = null; DynamicObject purcontract = BusinessDataServiceHelper.loadSingle("conm_purcontract", new QFilter[]{new QFilter("billno", QCP.equals, billno)}); DynamicObjectCollection tqq9_supplier = this.getModel().getDataEntity().getDynamicObjectCollection("tqq9_supplier"); DynamicObjectCollection tqq9_rebatebrand = this.getModel().getDataEntity().getDynamicObjectCollection("tqq9_rebatebrand"); DynamicObject newsupplier = new DynamicObject(tqq9_supplier.getDynamicObjectType()); if (purcontract_supplier != null) { String number = purcontract_supplier.get("number").toString(); supplier = BusinessDataServiceHelper.loadSingle("bd_supplier", new QFilter[]{new QFilter("number", QCP.equals, number)}); } if (purcontract_tqq9_dxpp != null) { for (int i = 0; i < purcontract_tqq9_dxpp.size(); i++) { JSONObject jsonObject = (JSONObject) purcontract_tqq9_dxpp.get(i); JSONObject fbasedataid = jsonObject.getJSONObject("fbasedataid"); String number = fbasedataid.getString("number"); DynamicObject tqq9_dxpp = BusinessDataServiceHelper.loadSingle("tqq9_brand", new QFilter[]{new QFilter("number", QCP.equals, number)}); if (tqq9_dxpp != null) { DynamicObject newbrand = new DynamicObject(tqq9_rebatebrand.getDynamicObjectType()); newbrand.set("fbasedataId", tqq9_dxpp); tqq9_rebatebrand.add(newbrand); } } } // 把参数值赋值到页面文本字段上 if (supplier != null) { newsupplier.set("fbasedataId", supplier); tqq9_supplier.add(newsupplier); this.getModel().setValue("tqq9_supplier", tqq9_supplier); } this.getModel().setValue("tqq9_conm_purcontract", purcontract); this.getModel().setValue("tqq9_rebatebrand", tqq9_rebatebrand); } }