package tqq9.lc123.cloud.app.plugin.form.im; import kd.bos.bill.AbstractBillPlugIn; 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.events.ChangeData; import kd.bos.entity.datamodel.events.PropertyChangedArgs; import kd.bos.form.ShowType; import kd.bos.form.StyleCss; import kd.bos.form.control.Control; import kd.bos.form.field.BasedataEdit; import kd.bos.form.field.events.BeforeF7SelectEvent; import kd.bos.form.field.events.BeforeF7SelectListener; import kd.bos.list.ListShowParameter; import kd.bos.orm.query.QCP; import kd.bos.orm.query.QFilter; import kd.bos.servicehelper.BusinessDataServiceHelper; import java.util.EventObject; /** * 其他出库申请界面插件 */ public class OtherOutApplyBillPlugin extends AbstractBillPlugIn implements BeforeF7SelectListener { @Override public void registerListener(EventObject e) { super.registerListener(e); this.addItemClickListeners("tbmain"); BasedataEdit control = this.getControl("tqq9_lot"); control.addBeforeF7SelectListener(this); this.addClickListeners("tqq9_xsddh"); } /**出库批号根据了做筛选 * */ @Override public void beforeF7Select(BeforeF7SelectEvent beforeF7SelectEvent) { int index = this.getModel().getEntryCurrentRowIndex("entryentity"); DynamicObjectCollection entryentity = this.getModel().getDataEntity(true).getDynamicObjectCollection("entryentity"); DynamicObject dynamicObject = entryentity.get(index); DynamicObject tqq9_materiel = dynamicObject.getDynamicObject("tqq9_materiel"); if (tqq9_materiel == null) { beforeF7SelectEvent.setCancel(true); this.getView().showMessage("请先填物料信息"); } else { DynamicObject materiel = tqq9_materiel.getDynamicObject("masterid");//物料 Boolean enablelot = tqq9_materiel.getBoolean("enablelot");//是否启用批号管理 if (enablelot) { ListShowParameter param = (ListShowParameter) beforeF7SelectEvent.getFormShowParameter(); QFilter qF1 = new QFilter("material.number", QCP.equals, materiel.getString("number")); param.getListFilterParameter().getQFilters().add(qF1); } else { beforeF7SelectEvent.setCancel(true); this.getView().showMessage("该物料未启用批号管理"); } } } /**售后单号带出售后信息 * */ @Override public void propertyChanged(PropertyChangedArgs e) { super.propertyChanged(e); String name = e.getProperty().getName(); IDataModel model = this.getModel(); if (StringUtils.equals("tqq9_returnapply", name)) { ChangeData[] changeSet = e.getChangeSet(); DynamicObject newValue = (DynamicObject) changeSet[0].getNewValue();//销售退货申请单 DynamicObject dynamicObject = BusinessDataServiceHelper.loadSingle("sm_returnapply", new QFilter[]{new QFilter("billno", QCP.equals, newValue.getString("billno"))}); DynamicObjectCollection billentry = dynamicObject.getDynamicObjectCollection("billentry"); if (billentry.size() > 0) { DynamicObject entry = billentry.get(0); String mainbillnumber = entry.getString("mainbillnumber");//核心单据编号 String tqq9_kddh = dynamicObject.getString("tqq9_kddh");//快递单号 DynamicObject tqq9_sskf = dynamicObject.getDynamicObject("tqq9_sskf");//所属客服 DynamicObject operator = dynamicObject.getDynamicObject("operator");//所属客服 DynamicObject customer = dynamicObject.getDynamicObject("customer");//订货客户 model.setValue("tqq9_xsddh", mainbillnumber);//对应销售订单号 model.setValue("tqq9_dpdh", tqq9_kddh);//DP单号 model.setValue("tqq9_sskf", tqq9_sskf);//所属客服 model.setValue("tqq9_ssxs", operator);//所属销售 model.setValue("tqq9_kufptt", customer);//客户发票抬头 } } } /**点击对应销售订单号跳转 * */ @Override public void click(EventObject evt) { super.click(evt); Control source = (Control) evt.getSource(); if (StringUtils.equals("tqq9_xsddh", source.getKey())) { String tqq9_xsddh = (String) this.getModel().getValue("tqq9_xsddh"); DynamicObject sm_salorder = BusinessDataServiceHelper.loadSingle("sm_salorder", new QFilter[]{new QFilter("billno", QCP.equals, tqq9_xsddh)}); Long id = sm_salorder.getLong("id"); if (id != null) { BillShowParameter formshowParameter = new BillShowParameter(); formshowParameter.setFormId("sm_salorder"); formshowParameter.getOpenStyle().setInlineStyleCss(new StyleCss()); formshowParameter.setPkId(id); formshowParameter.getOpenStyle().setShowType(ShowType.Modal); formshowParameter.setStatus(OperationStatus.VIEW); this.getView().showForm(formshowParameter); } } } }