package tqq9.lc123.cloud.app.plugin.form.im; import kd.bos.bill.AbstractBillPlugIn; 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.field.BasedataEdit; import kd.bos.orm.query.QCP; import kd.bos.orm.query.QFilter; import kd.bos.servicehelper.BusinessDataServiceHelper; import java.math.BigDecimal; import java.util.Date; import java.util.EventObject; /** * 其他出库申请界面插件 */ public class OtherOutApplyBillPlugin extends AbstractBillPlugIn { @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");//订货客户 DynamicObject sm_salorder = BusinessDataServiceHelper.loadSingle("sm_salorder", new QFilter[]{new QFilter("billno", QCP.equals, mainbillnumber)}); model.setValue("tqq9_saleorderbill", sm_salorder);//对应销售订单号 model.setValue("tqq9_dpdh", tqq9_kddh);//DP单号 model.setValue("tqq9_sskf", tqq9_sskf);//所属客服 model.setValue("tqq9_ssxs", operator);//所属销售 model.setValue("tqq9_kufptt", customer);//客户发票抬头 } } //物料带出最近价格 if (StringUtils.equals("tqq9_materiel", name)) { ChangeData[] changeSet = e.getChangeSet(); DynamicObject newValue = (DynamicObject) changeSet[0].getNewValue();//物料库存信息 if (newValue != null) { DynamicObject masterid = newValue.getDynamicObject("masterid");//物料 if (masterid != null) { QFilter purinbillF = new QFilter("billentry.material.id", QCP.equals, newValue.getLong("id")); purinbillF = purinbillF.and("billstatus", QCP.equals, "C"); //price DynamicObject[] purinbills = BusinessDataServiceHelper.load("im_purinbill", "id,billno,billentry.material,billentry.price", purinbillF.toArray(), "auditdate desc"); if (purinbills != null && purinbills.length > 0) { DynamicObject purinbill = purinbills[0]; DynamicObjectCollection billentry = purinbill.getDynamicObjectCollection("billentry"); for (DynamicObject dynamicObject : billentry) { String number = dynamicObject.getString("material.masterid.number"); if (StringUtils.equals(number, masterid.getString("number"))) { BigDecimal price = dynamicObject.getBigDecimal("price"); this.getModel().setValue("tqq9_price", price); } break; } } } } } if (StringUtils.equals("tqq9_lotnumber", name)) { ChangeData[] changeSet = e.getChangeSet(); int rowIndex = changeSet[0].getRowIndex(); String lotNumber = (String) changeSet[0].getNewValue(); DynamicObject tqq9_materiel = (DynamicObject) this.getModel().getValue("tqq9_materiel"); if (StringUtils.isNotBlank(lotNumber) && null != tqq9_materiel) { DynamicObject[] objects = BusinessDataServiceHelper.load("im_inv_realbalance", "id,keycol,material,lotnum,producedate,expirydate,tqq9_goods,tqq9_registration" , new QFilter[]{new QFilter("lotnum", QCP.equals, lotNumber), new QFilter("material", QCP.equals, tqq9_materiel.getDynamicObject("masterid").getLong("id"))}); if (null != objects && objects.length > 0) { if (objects.length == 1) { DynamicObject object = objects[0]; Date producedate = object.getDate("producedate"); Date expirydate = object.getDate("expirydate"); DynamicObject tqq9_registration = object.getDynamicObject("tqq9_registration"); StringBuilder tqq9_cs = new StringBuilder(); StringBuilder tqq9_licenseno = new StringBuilder(); if (null != tqq9_registration) { tqq9_registration = BusinessDataServiceHelper.loadSingle("tqq9_registration", "id,number,tqq9_entry.tqq9_e_supplier,tqq9_entry.tqq9_e_supno,tqq9_proxy,tqq9_proxyno" , new QFilter[]{new QFilter("id", QCP.equals, tqq9_registration.getLong("id"))}); DynamicObjectCollection tqq9_entry = tqq9_registration.getDynamicObjectCollection("tqq9_entry"); for (int i = 0; i < tqq9_entry.size(); i++) { DynamicObject dynamicObject = tqq9_entry.get(i); DynamicObject tqq9_e_supplier = dynamicObject.getDynamicObject("tqq9_e_supplier"); if (null != tqq9_e_supplier) { tqq9_cs.append(tqq9_e_supplier.getString("name")); if (i != tqq9_entry.size() - 1) { tqq9_cs.append("#"); } } String tqq9_e_supno = dynamicObject.getString("tqq9_e_supno"); if (StringUtils.isNotBlank(tqq9_e_supno)) { tqq9_licenseno.append(tqq9_e_supno); if (i != tqq9_entry.size() - 1) { tqq9_licenseno.append("#"); } } } } this.getModel().setValue("tqq9_producedate", producedate, rowIndex); this.getModel().setValue("tqq9_expirydate", expirydate, rowIndex); this.getModel().setValue("tqq9_cs", tqq9_cs.toString(), rowIndex); this.getModel().setValue("tqq9_licenseno", tqq9_licenseno.toString(), rowIndex); this.getModel().setValue("tqq9_zczh", tqq9_registration, rowIndex); } } } } } // /** // * 点击退出回传其他出库单编号 // * // * @param afterDoOperationEventArgs // */ // @Override // public void afterDoOperation(AfterDoOperationEventArgs afterDoOperationEventArgs) { // super.afterDoOperation(afterDoOperationEventArgs); // String itemKey = afterDoOperationEventArgs.getOperateKey(); // if (StringUtils.equals("donothing", itemKey)) { // Object billno = this.getModel().getValue("billno"); // HashMap map = new HashMap<>(); // map.put("billno", billno); // this.getView().returnDataToParent(map); // this.getView().close(); // }else if(StringUtils.equals("submit", itemKey)){ // DynamicObject dataEntity = this.getModel().getDataEntity(true); // DynamicObjectCollection entryentity = dataEntity.getDynamicObjectCollection("entryentity"); // for (DynamicObject dynamicObject : entryentity) { // String tqq9_lotnumber = dynamicObject.getString("tqq9_lotnumber");//批号 // DynamicObject bd_lot= BusinessDataServiceHelper.loadSingle("bd_lot", new QFilter[]{new QFilter("number", QCP.equals, tqq9_lotnumber)}); // dynamicObject.set("tqq9_lot",bd_lot); // SaveServiceHelper.save(new DynamicObject[]{dataEntity}); // this.getView().updateView(); // // // } // } // } // /** // * 采购退货未异地退货保存跳转到其他出库申请 // */ // @Override // public void afterCreateNewData(EventObject e) { // super.afterCreateNewData(e); // FormShowParameter formShowParameter = this.getView().getFormShowParameter(); // String billno = formShowParameter.getCustomParam("tqq9_otheroutapplybillno"); // if (StringUtils.isNotBlank(billno)) { // DynamicObject pm_purrefundapplybill = BusinessDataServiceHelper.loadSingle("pm_purrefundapplybill", new QFilter[]{new QFilter("billno", QCP.equals, billno)}); // DynamicObject org = pm_purrefundapplybill.getDynamicObject("org");//采购组织 // DynamicObjectCollection billentry = pm_purrefundapplybill.getDynamicObjectCollection("billentry");//采购退货分录 // DynamicObject dataEntity = this.getModel().getDataEntity(true); // //业务类型 // DynamicObject bd_biztype = BusinessDataServiceHelper.loadSingle("bd_biztype", new QFilter[]{new QFilter("number", QCP.equals, "612")}); // dataEntity.set("tqq9_biztype", bd_biztype); // //库存事务 // DynamicObject im_invscheme = BusinessDataServiceHelper.loadSingle("im_invscheme", new QFilter[]{new QFilter("number", QCP.equals, "612.1")}); // dataEntity.set("tqq9_kcsw", im_invscheme); // //业务日期 // Date date = new Date(); // dataEntity.set("tqq9_bizdate", date); // dataEntity.set("tqq9_dblx", "A");//调拨类型 // dataEntity.set("tqq9_dbckfl", "G");//调拨出库分类 // dataEntity.set("org", org);//组织 // dataEntity.set("tqq9_dczz1", org);//调出组织 // dataEntity.set("tqq9_drck2", org);//调入组织 // DynamicObjectCollection entryentity = dataEntity.getDynamicObjectCollection("entryentity"); // entryentity.clear(); // // //库存类型-普通 // DynamicObject bd_invtype = BusinessDataServiceHelper.loadSingle("bd_invtype", new QFilter[]{new QFilter("number", QCP.equals, "110")}); // //库存类型-普通 // DynamicObject bd_invstatus = BusinessDataServiceHelper.loadSingle("bd_invstatus", new QFilter[]{new QFilter("number", QCP.equals, "110")}); // //出库货主类型 // String tqq9_outownertype = "bos_org"; // //出库保管者类型 // String tqq9_outkeepertype = "bos_org"; // for (DynamicObject entry : billentry) { // DynamicObject dynamicObject = entryentity.addNew(); // dynamicObject.set("tqq9_linetype", entry.getDynamicObject("linetype"));//行类型 // DynamicObject material = entry.getDynamicObject("material");//物料采购信息 // if (material != null) { // DynamicObject masterid = material.getDynamicObject("masterid");//物料信息 // //物料库存信息 // DynamicObject bd_materialinventoryinfo = BusinessDataServiceHelper.loadSingle("bd_materialinventoryinfo", new QFilter[]{new QFilter("masterid", QCP.equals, masterid.getLong("id"))}); // //商城商品 // DynamicObject tqq9_goodspackage = BusinessDataServiceHelper.loadSingle("tqq9_goodspackage", new QFilter[]{new QFilter("tqq9_mater.id", QCP.equals, masterid.getLong("id"))}); // dynamicObject.set("tqq9_materiel", bd_materialinventoryinfo);//物料库存信息 // dynamicObject.set("tqq9_goods", tqq9_goodspackage);//商城商品 // dynamicObject.set("tqq9_materialname", masterid.getString("name"));//物料名称 // dynamicObject.set("tqq9_unit", masterid.getDynamicObject("baseunit"));//计量单位 // dynamicObject.set("tqq9_baseunit", masterid.getDynamicObject("baseunit"));//基本单位 // } // dynamicObject.set("tqq9_dczz", org);//调出组织 // dynamicObject.set("tqq9_drzz", org);//调入组织 // dynamicObject.set("tqq9_zczh", entry.getDynamicObject("tqq9_registration"));//注册证号 // dynamicObject.set("tqq9_licenseno", entry.getString("tqq9_licenseno"));//许可证号 // dynamicObject.set("tqq9_producedate", entry.getDate("tqq9_createdate"));//生产日期 // dynamicObject.set("tqq9_expirydate", entry.getDate("tqq9_deadline"));//到期日期 // dynamicObject.set("tqq9_drck", entry.getDynamicObject("tqq9_thck"));//退货仓库 // dataEntity.set("tqq9_basedatafield1", entry.getDynamicObject("tqq9_thck"));//退货仓库 // dynamicObject.set("tqq9_lot", entry.getDynamicObject("tqq9_ph"));//批号 // dynamicObject.set("tqq9_qty", entry.getBigDecimal("qty"));//数量 // dynamicObject.set("tqq9_baseqty", entry.getBigDecimal("qty"));//数量 // dynamicObject.set("tqq9_price", entry.getBigDecimal("price"));//单价 // dynamicObject.set("tqq9_amount", entry.getBigDecimal("amount"));//金额 // dynamicObject.set("tqq9_outinvtype", bd_invtype);//出库库存类型 // dynamicObject.set("tqq9_outinvstatus", bd_invstatus);//出库库存状态 // dynamicObject.set("tqq9_outownertype", tqq9_outownertype);//出库货主类型 // dynamicObject.set("tqq9_outkeepertype", tqq9_outkeepertype);//出库保管者类型 // dynamicObject.set("tqq9_outowner", org);//出库货主 // dynamicObject.set("tqq9_outkeeper", org);//出库保管者 // } // this.getView().setVisible(true, "tqq9_confirm"); // this.getView().setVisible(false, "bar_close"); // } // } }