diff --git a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/CostAllocatorBillPlugin.java b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/CostAllocatorBillPlugin.java index 52a0c23..f6b2632 100644 --- a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/CostAllocatorBillPlugin.java +++ b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/CostAllocatorBillPlugin.java @@ -6,7 +6,9 @@ import kd.bos.dataentity.metadata.dynamicobject.DynamicObjectType; import kd.bos.entity.datamodel.events.ChangeData; import kd.bos.entity.datamodel.events.PropertyChangedArgs; import kd.bos.form.control.events.ItemClickEvent; +import kd.bos.form.events.AfterDoOperationEventArgs; import kd.bos.form.plugin.AbstractFormPlugin; +import kd.bos.list.BillList; import kd.bos.orm.query.QCP; import kd.bos.orm.query.QFilter; import kd.bos.servicehelper.BusinessDataServiceHelper; @@ -28,7 +30,15 @@ public class CostAllocatorBillPlugin extends AbstractFormPlugin { this.addItemClickListeners("payitemdetaitoolap");//合同支付项明细工具栏 this.addItemClickListeners("entrytoolbar1");//入库单明细工具栏 } - + @Override + public void afterDoOperation(AfterDoOperationEventArgs afterDoOperationEventArgs) { + super.afterDoOperation(afterDoOperationEventArgs); + String operateKey = afterDoOperationEventArgs.getOperateKey(); + if (operateKey.equals("submit") || operateKey.equals("unsubmit") || operateKey.equals("unaudit")) { + // 刷新列表 + this.getView().invokeOperation("refresh"); + } + } @Override public void itemClick(ItemClickEvent evt) { super.itemClick(evt); diff --git a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/OutContractSettleEditPluginExt.java b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/OutContractSettleEditPluginExt.java index 1de3132..16c78b2 100644 --- a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/OutContractSettleEditPluginExt.java +++ b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/OutContractSettleEditPluginExt.java @@ -347,6 +347,10 @@ public class OutContractSettleEditPluginExt extends AbstractBillPlugIn implement protected void sumMaterialInAmountToItemEntry() { this.getModel().updateCache(); + Object contract = this.getModel().getValue("contract");//合同名称 + if (contract == null) { + return; + } DynamicObjectCollection materialInEntry = this.getModel().getEntryEntity("materialinentry");//入库单分录 if (materialInEntry != null && materialInEntry.size() != 0) { BigDecimal amount = BigDecimal.ZERO;//入库单明细-材料不含税金额汇总 @@ -574,10 +578,24 @@ public class OutContractSettleEditPluginExt extends AbstractBillPlugIn implement //二开添加逻辑↓ } else if (StringUtils.equals(name, "zcgj_transset")) { //按入库运费结算 + Object contract = this.getModel().getValue("contract");//合同名称 + if (contract == null) { + return; + } + boolean issettlebymatin = (boolean) this.getModel().getValue("issettlebymatin");//按入库单结算 + boolean zcgj_transset = (boolean) changeData.getNewValue();//按入库运费结算新值 + DynamicObject transSettleItem1 = this.getModel().getEntryRowEntity("itementry", 1); + DynamicObject payItem1 = transSettleItem1.getDynamicObject("payitem");//合同支付项-名称 + boolean hasSettleTrans1 = "YFJS".equals(payItem1.getString("number")); + if (!issettlebymatin && !zcgj_transset && hasSettleTrans1) { + this.getModel().setValue("oftaxamount", BigDecimal.ZERO, 1);//合同支付项-价税合计 + this.getModel().setValue("amount", BigDecimal.ZERO, 1);//合同支付项-金额 + this.getModel().deleteEntryRow("itementry", 1); + return; + } this.autoFetch(); this.sumMaterialInAmountToItemEntry(); SettleUpdateAmtUtils.calAllTypeAmount(this.getModel()); - Boolean zcgj_transset = (Boolean) changeData.getNewValue();//按入库运费结算新值 DynamicObjectCollection materialInEntry = this.getModel().getEntryEntity("materialinentry");//入库单分录 if (materialInEntry != null && materialInEntry.size() != 0) { BigDecimal amount = BigDecimal.ZERO;//入库单明细-材料不含税金额汇总 diff --git a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/operate/OutContractSubmitOp.java b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/operate/OutContractSubmitOp.java new file mode 100644 index 0000000..81de1ba --- /dev/null +++ b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/operate/OutContractSubmitOp.java @@ -0,0 +1,47 @@ +package zcgj.zcdev.zcdev.pr.plugin.operate; + +import kd.bos.dataentity.entity.DynamicObject; +import kd.bos.dataentity.entity.DynamicObjectCollection; +import kd.bos.entity.plugin.AbstractOperationServicePlugIn; +import kd.bos.entity.plugin.args.AfterOperationArgs; +import kd.bos.orm.query.QFilter; +import kd.bos.servicehelper.BusinessDataServiceHelper; +import kd.bos.servicehelper.operation.SaveServiceHelper; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +/** + * 支出合同结算提交操作插件 + */ +public class OutContractSubmitOp extends AbstractOperationServicePlugIn { + + @Override + public void afterExecuteOperationTransaction(AfterOperationArgs e) { + super.afterExecuteOperationTransaction(e); + DynamicObject[] dataEntities = e.getDataEntities(); + List modifiedEntities = new ArrayList<>(); + for (DynamicObject model : dataEntities) { + long id = model.getLong("id"); + QFilter f1 = new QFilter("id", "=", id); + DynamicObject ec_out_contract_settle = BusinessDataServiceHelper.loadSingle("ec_out_contract_settle", new QFilter[]{f1});//支出合同结算 + boolean zcgj_transset = ec_out_contract_settle.getBoolean("zcgj_transset");//按入库运费结算 + if (zcgj_transset) { + DynamicObjectCollection itemEntryCollection = ec_out_contract_settle.getDynamicObjectCollection("itementry");//支付项分录 + if (itemEntryCollection != null && itemEntryCollection.size() > 0) { + Iterator iterator = itemEntryCollection.iterator();//迭代器 + while (iterator.hasNext()) { + DynamicObject itemEntry = iterator.next(); + DynamicObject payItem1 = itemEntry.getDynamicObject("payitem");//合同支付项-名称 + boolean hasSettleTrans1 = "HTJL".equals(payItem1.getString("number")); + if (hasSettleTrans1) { + iterator.remove();//注意一定要用迭代器remove + } + } + } + } + SaveServiceHelper.save(new DynamicObject[]{ec_out_contract_settle});//保存 + } + } +} diff --git a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/operate/OutContractUnSubmitUnAuditOp.java b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/operate/OutContractUnSubmitUnAuditOp.java new file mode 100644 index 0000000..080528f --- /dev/null +++ b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/operate/OutContractUnSubmitUnAuditOp.java @@ -0,0 +1,42 @@ +package zcgj.zcdev.zcdev.pr.plugin.operate; + +import kd.bos.dataentity.entity.DynamicObject; +import kd.bos.dataentity.entity.DynamicObjectCollection; +import kd.bos.dataentity.metadata.dynamicobject.DynamicObjectType; +import kd.bos.entity.plugin.AbstractOperationServicePlugIn; +import kd.bos.entity.plugin.args.AfterOperationArgs; +import kd.bos.orm.query.QFilter; +import kd.bos.servicehelper.BusinessDataServiceHelper; +import kd.bos.servicehelper.operation.SaveServiceHelper; + +/** + * 支出合同结算撤销反审核操作插件 + */ +public class OutContractUnSubmitUnAuditOp extends AbstractOperationServicePlugIn { + @Override + public void afterExecuteOperationTransaction(AfterOperationArgs e) { + super.afterExecuteOperationTransaction(e); + DynamicObject[] dataEntities = e.getDataEntities(); + for (DynamicObject model : dataEntities) { + long id = model.getLong("id"); + QFilter f1 = new QFilter("id", "=", id); + DynamicObject ec_out_contract_settle = BusinessDataServiceHelper.loadSingle("ec_out_contract_settle", new QFilter[]{f1});//支出合同结算 + boolean zcgj_transset = ec_out_contract_settle.getBoolean("zcgj_transset");//按入库运费结算 + if (zcgj_transset) { + DynamicObjectCollection itemEntryCollection = ec_out_contract_settle.getDynamicObjectCollection("itementry");//支付项分录 + if (itemEntryCollection != null && itemEntryCollection.size() > 0) { + DynamicObject itemEntry = itemEntryCollection.get(0); + DynamicObject payItem1 = itemEntry.getDynamicObject("payitem");//合同支付项-名称 + boolean hasSettleTrans1 = "YFJS".equals(payItem1.getString("number")); + if (hasSettleTrans1) { + DynamicObjectType entrytype = ec_out_contract_settle.getDynamicObjectCollection("itementry").getDynamicObjectType(); + DynamicObject newItemEntry = new DynamicObject(entrytype); + newItemEntry.set("payitem", "506427748873442304"); + itemEntryCollection.add(0, newItemEntry); + } + } + } + SaveServiceHelper.save(new DynamicObject[]{ec_out_contract_settle});//保存 + } + } +}