diff --git a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/MaintenanceAckBillPlugin.java b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/MaintenanceAckBillPlugin.java index 8142b83..542692e 100644 --- a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/MaintenanceAckBillPlugin.java +++ b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/MaintenanceAckBillPlugin.java @@ -1,5 +1,6 @@ package zcgj.zcdev.zcdev.pr.plugin.form; +import com.alibaba.fastjson.JSONObject; import kd.bos.bill.AbstractBillPlugIn; import kd.bos.context.RequestContext; import kd.bos.dataentity.entity.DynamicObject; @@ -8,6 +9,7 @@ import kd.bos.dataentity.metadata.dynamicobject.DynamicObjectType; import kd.bos.dataentity.resource.ResManager; import kd.bos.entity.datamodel.ListSelectedRow; import kd.bos.entity.datamodel.ListSelectedRowCollection; +import kd.bos.entity.datamodel.events.PropertyChangedArgs; import kd.bos.form.CloseCallBack; import kd.bos.form.ShowFormHelper; import kd.bos.form.ShowType; @@ -18,6 +20,7 @@ import kd.bos.form.operate.FormOperate; 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.bos.servicehelper.QueryServiceHelper; @@ -316,4 +319,46 @@ public class MaintenanceAckBillPlugin extends AbstractBillPlugIn implements Plug } } //删除发票 结束 + + @Override + public void propertyChanged(PropertyChangedArgs e) { + super.propertyChanged(e); + String name = e.getProperty().getName(); + if (name.equals("zcgj_maintenance")){ + Object value = this.getModel().getValue("zcgj_maintenance"); + if (value!=null){ + DynamicObject maintenance = (DynamicObject) value; + QFilter filter = new QFilter("zcgj_maintenance.id", QCP.equals, maintenance.getLong("id")); + DynamicObject[] maintenanceackbill = BusinessDataServiceHelper.load("zcgj_maintenanceackbill", "entryentity.zcgj_sourceid", new QFilter[]{filter}); + Set set = new HashSet(); + set.add("9999999"); + for (DynamicObject dynamicObject : maintenanceackbill) { + for (DynamicObject object : dynamicObject.getDynamicObjectCollection("entryentity")) { + set.add(object.getString("zcgj_sourceid")); + } + } + QFilter qf = new QFilter("id", QCP.equals, maintenance.getLong("id")); + DynamicObject maintenancebill = BusinessDataServiceHelper.loadSingle("zcgj_maintenancebill", new QFilter[]{qf}); + this.getModel().setValue("zcgj_project",maintenancebill.getDynamicObject("zcgj_project"));//项目 + this.getModel().setValue("zcgj_accountorg",maintenancebill.getDynamicObject("zcgj_accountorg"));//财务记账组织 + this.getModel().setValue("zcgj_totalamount",maintenancebill.getBigDecimal("zcgj_totalamount"));//预估维修金额 + this.getModel().setValue("zcgj_currency",maintenancebill.getDynamicObject("zcgj_currency"));//币别 + DynamicObjectCollection entrys = (DynamicObjectCollection) getModel().getValue("entryentity"); + DynamicObjectCollection maintenanceentry = maintenancebill.getDynamicObjectCollection("entryentity"); + maintenanceentry.removeIf(entry -> set.contains(entry.getString("id")));//去除之前单据已有的数据 + for (int i = 0; i