From ce7170abd61cc2734febdd62a711a5adaf92be1e Mon Sep 17 00:00:00 2001 From: zhangzhiguo Date: Thu, 5 Jun 2025 11:30:39 +0800 Subject: [PATCH] =?UTF-8?q?1=EF=BC=8C=E6=94=AF=E5=87=BA=E5=90=88=E5=90=8C?= =?UTF-8?q?=E7=BB=93=E7=AE=97=E5=AE=A1=E6=A0=B8=E9=80=9A=E8=BF=87=E5=90=8E?= =?UTF-8?q?=E8=87=AA=E5=8A=A8=E7=94=9F=E6=88=90=E8=B4=A2=E5=8A=A1=E7=A1=AE?= =?UTF-8?q?=E8=AE=A4=E5=8D=95=202=EF=BC=8C=E6=94=B6=E5=85=A5=E5=90=88?= =?UTF-8?q?=E5=90=8C=E7=BB=93=E7=AE=97=E5=AE=A1=E6=A0=B8=E9=80=9A=E8=BF=87?= =?UTF-8?q?=E5=90=8E=E8=87=AA=E5=8A=A8=E7=94=9F=E6=88=90=E8=B4=A2=E5=8A=A1?= =?UTF-8?q?=E7=A1=AE=E8=AE=A4=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../form/OutContractSettleReversalPlugin.java | 4 +- .../OutContractSettleUnauditCheckOp.java | 12 ++- ...ContractSettleFiConfirmWorkFlowPlugin.java | 76 +++++++++++++++++ ...ContractSettleFiConfirmWorkFlowPlugin.java | 82 +++++++++++++++++++ ...tContractSettleReversalWorkFlowPlugin.java | 43 +++++++++- 5 files changed, 213 insertions(+), 4 deletions(-) create mode 100644 code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/workflow/InContractSettleFiConfirmWorkFlowPlugin.java create mode 100644 code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/workflow/OutContractSettleFiConfirmWorkFlowPlugin.java diff --git a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/OutContractSettleReversalPlugin.java b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/OutContractSettleReversalPlugin.java index f05e79b..102c02f 100644 --- a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/OutContractSettleReversalPlugin.java +++ b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/OutContractSettleReversalPlugin.java @@ -42,8 +42,7 @@ public class OutContractSettleReversalPlugin extends AbstractBillPlugIn implemen Object contractSettleIdObj = formShowParameter.getCustomParam("reversabillid"); if (contractSettleIdObj != null) { initData(contractSettleIdObj); - this.getView().setEnable(false,"contract","org","period","begindate","enddate"); - + this.getView().setEnable(false,"contract","org","period","begindate","enddate","iseqsettle"); //this.getView().invokeOperation("save"); } } @@ -101,6 +100,7 @@ public class OutContractSettleReversalPlugin extends AbstractBillPlugIn implemen getModel().setValue("settleoftaxamount",settleoftaxamount); if(ecoutcontractsettle.getBoolean("isonlist")){ this.getView().setVisible(false,"zcgj_adjustmounttax"); + } this.getView().updateView("itementry"); } diff --git a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/operate/OutContractSettleUnauditCheckOp.java b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/operate/OutContractSettleUnauditCheckOp.java index 9516cee..5df747c 100644 --- a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/operate/OutContractSettleUnauditCheckOp.java +++ b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/operate/OutContractSettleUnauditCheckOp.java @@ -48,9 +48,19 @@ public class OutContractSettleUnauditCheckOp extends AbstractOperationServicePlu DynamicObject[] load = BusinessDataServiceHelper.load("ec_in_contract_settle", "id,zcgj_reversabillid", new QFilter[]{new QFilter("zcgj_ec_outsettleid", QCP.equals, billId)}); if (load != null && load.length > 0) { this.addFatalErrorMessage(extendedDataEntity, "支出合同结算冲销单【"+billno+"】存在收入合同结算冲销单,请删除收入合同结算冲销单后再进行反审核操作。"); - + return; } } + + DynamicObject[] load = BusinessDataServiceHelper.load("zcgj_ec_out_finaceconfirm", "id,zcgj_ec_out_contractid", new QFilter[]{new QFilter("zcgj_ec_out_contractid", QCP.equals, billId)}); + if (load != null && load.length > 0) { + if(isReversabillid){ + this.addFatalErrorMessage(extendedDataEntity, "支出合同结算冲销单【"+billno+"】存在支出合同确认单,请删除支出合同确认单后再进行反审核操作。"); + }else{ + this.addFatalErrorMessage(extendedDataEntity, "支出合同结算单【"+billno+"】存在支出合同确认单,请删除支出合同确认单后再进行反审核操作。"); + } + return; + } } } } diff --git a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/workflow/InContractSettleFiConfirmWorkFlowPlugin.java b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/workflow/InContractSettleFiConfirmWorkFlowPlugin.java new file mode 100644 index 0000000..d83ac32 --- /dev/null +++ b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/workflow/InContractSettleFiConfirmWorkFlowPlugin.java @@ -0,0 +1,76 @@ +package zcgj.zcdev.zcdev.pr.plugin.workflow; + +import kd.bos.dataentity.entity.DynamicObject; +import kd.bos.dataentity.entity.DynamicObjectCollection; +import kd.bos.orm.query.QCP; +import kd.bos.orm.query.QFilter; +import kd.bos.servicehelper.BusinessDataServiceHelper; +import kd.bos.servicehelper.operation.SaveServiceHelper; +import kd.bos.workflow.api.AgentExecution; +import kd.bos.workflow.engine.extitf.IWorkflowPlugin; + +import java.math.BigDecimal; + +/** + * 收入合同结算单-生成财务确认单工作流插件 + */ +public class InContractSettleFiConfirmWorkFlowPlugin implements IWorkflowPlugin { + + @Override + public void notify(AgentExecution execution) { + String eventName = execution.getEventName(); + String businessKey = execution.getBusinessKey(); + String entityNumber = execution.getEntityNumber(); + DynamicObject inContractSettle = BusinessDataServiceHelper.loadSingle(businessKey, entityNumber); + DynamicObject inFinaceconfirm =BusinessDataServiceHelper.newDynamicObject("zcgj_ec_in_finaceconfirm"); + + inFinaceconfirm.set("zcgj_ec_in_contract_sett",inContractSettle.getLong("id")); + inFinaceconfirm.set("zcgj_ec_in_contract_name",inContractSettle.getString("billname")); + inFinaceconfirm.set("zcgj_ec_in_contractid", inContractSettle.getLong("id")); //id文本,冗余 + inFinaceconfirm.set("zcgj_billname",inContractSettle.getString("billname")); + inFinaceconfirm.set("zcgj_contract",inContractSettle.getDynamicObject("contract")); + inFinaceconfirm.set("zcgj_contattr",inContractSettle.getDynamicObject("contattr")); + inFinaceconfirm.set("zcgj_project",inContractSettle.getDynamicObject("project")); + inFinaceconfirm.set("zcgj_period",inContractSettle.getDynamicObject("period")); + inFinaceconfirm.set("zcgj_begindate",inContractSettle.getDate("begindate")); + inFinaceconfirm.set("zcgj_enddate",inContractSettle.getDate("enddate")); + inFinaceconfirm.set("zcgj_conttotaloftaxamount",inContractSettle.getBigDecimal("conttotaloftaxamount")); + inFinaceconfirm.set("zcgj_description",inContractSettle.getString("description")); + inFinaceconfirm.set("zcgj_currency",inContractSettle.getDynamicObject("currency")); + inFinaceconfirm.set("zcgj_invoice_org",inContractSettle.getDynamicObject("project").getDynamicObject("projectorg")); + // getModel().setValue("zcgj_jscustomer",ecincontractsettle.getDynamicObject("zcgj_jscustomer")); + inFinaceconfirm.set("billstatus","A"); + + DynamicObjectCollection itementry = inContractSettle.getDynamicObjectCollection("itementry"); + + DynamicObjectCollection entryEntity1 = inFinaceconfirm.getDynamicObjectCollection("zcgj_itementry"); + entryEntity1.clear(); + BigDecimal oftaxamountAll = BigDecimal.ZERO; + BigDecimal amountAll = BigDecimal.ZERO; + BigDecimal taxamtAll = BigDecimal.ZERO; + for (DynamicObject dynamicObject : itementry) { + DynamicObject item = entryEntity1.addNew(); + item.set("zcgj_payitem",dynamicObject.getDynamicObject("payitem")); + BigDecimal oftaxamount = dynamicObject.getBigDecimal("oftaxamount"); + item.set("zcgj_oftaxamount",oftaxamount); + oftaxamountAll = oftaxamountAll.add(oftaxamount); + BigDecimal amount = dynamicObject.getBigDecimal("amount"); + item.set("zcgj_amount",amount); + amountAll = amountAll.add(amount); + item.set("zcgj_rate",dynamicObject.getBigDecimal("rate")); + BigDecimal taxamt = dynamicObject.getBigDecimal("taxamt"); + item.set("zcgj_taxamt",taxamt); + taxamtAll = taxamtAll.add(taxamt); + item.set("zcgj_remark",dynamicObject.getString("remark")); + } + inFinaceconfirm.set("zcgj_oftaxamount_all",oftaxamountAll); + inFinaceconfirm.set("zcgj_amount_all",amountAll); + inFinaceconfirm.set("zcgj_taxamt_all",taxamtAll); + + SaveServiceHelper.saveOperate("zcgj_ec_in_finaceconfirm", new DynamicObject[]{inFinaceconfirm}, null);//支出合同实体 + + //生成支出财务确认单 end + + IWorkflowPlugin.super.notify(execution); + } +} diff --git a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/workflow/OutContractSettleFiConfirmWorkFlowPlugin.java b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/workflow/OutContractSettleFiConfirmWorkFlowPlugin.java new file mode 100644 index 0000000..5b1dc68 --- /dev/null +++ b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/workflow/OutContractSettleFiConfirmWorkFlowPlugin.java @@ -0,0 +1,82 @@ +package zcgj.zcdev.zcdev.pr.plugin.workflow; + +import kd.bos.dataentity.entity.DynamicObject; +import kd.bos.dataentity.entity.DynamicObjectCollection; +import kd.bos.entity.operate.result.OperationResult; +import kd.bos.orm.query.QCP; +import kd.bos.orm.query.QFilter; +import kd.bos.servicehelper.BusinessDataServiceHelper; +import kd.bos.servicehelper.coderule.CodeRuleServiceHelper; +import kd.bos.servicehelper.operation.SaveServiceHelper; +import kd.bos.workflow.api.AgentExecution; +import kd.bos.workflow.engine.extitf.IWorkflowPlugin; + +import java.math.BigDecimal; + +/** + * 支出合同结算单-生成财务确认单工作流插件 + */ +public class OutContractSettleFiConfirmWorkFlowPlugin implements IWorkflowPlugin { + + @Override + public void notify(AgentExecution execution) { + String eventName = execution.getEventName(); + String businessKey = execution.getBusinessKey(); + String entityNumber = execution.getEntityNumber(); + DynamicObject outContractSettle = BusinessDataServiceHelper.loadSingle(businessKey, entityNumber); + boolean isReversabillid = outContractSettle.getBoolean("zcgj_is_reversabillid"); + if(!isReversabillid) { + //如果时冲销单据 + //生成支出财务确认单 start + //收入合同结算 + DynamicObject outFinaceconfirm =BusinessDataServiceHelper.newDynamicObject("zcgj_ec_out_finaceconfirm"); + + outFinaceconfirm.set("zcgj_ec_out_contract_sett",outContractSettle.getLong("id")); + outFinaceconfirm.set("zcgj_ec_out_contract_name",outContractSettle.getString("billname")); + outFinaceconfirm.set("zcgj_ec_out_contractid", outContractSettle.getLong("id")); //id文本,冗余 + outFinaceconfirm.set("zcgj_billname",outContractSettle.getString("billname")); + outFinaceconfirm.set("zcgj_contract",outContractSettle.getDynamicObject("contract")); + outFinaceconfirm.set("zcgj_contattr",outContractSettle.getDynamicObject("contattr")); + outFinaceconfirm.set("zcgj_project",outContractSettle.getDynamicObject("project")); + outFinaceconfirm.set("zcgj_period",outContractSettle.getDynamicObject("period")); + outFinaceconfirm.set("zcgj_begindate",outContractSettle.getDate("begindate")); + outFinaceconfirm.set("zcgj_enddate",outContractSettle.getDate("enddate")); + outFinaceconfirm.set("zcgj_conttotaloftaxamount",outContractSettle.getBigDecimal("conttotaloftaxamount")); + outFinaceconfirm.set("zcgj_description",outContractSettle.getString("description")); + outFinaceconfirm.set("zcgj_currency",outContractSettle.getDynamicObject("currency")); + outFinaceconfirm.set("zcgj_invoice_org",outContractSettle.getDynamicObject("project").getDynamicObject("projectorg")); + outFinaceconfirm.set("zcgj_jscustomer",outContractSettle.getDynamicObject("zcgj_jscustomer")); + outFinaceconfirm.set("billstatus","A"); + outFinaceconfirm.set("zcgj_is_reversabillid",true); + DynamicObjectCollection itementry = outContractSettle.getDynamicObjectCollection("itementry"); + + DynamicObjectCollection entryEntity1 = outFinaceconfirm.getDynamicObjectCollection("zcgj_itementry"); + entryEntity1.clear(); + BigDecimal oftaxamountAll = BigDecimal.ZERO; + BigDecimal amountAll = BigDecimal.ZERO; + BigDecimal taxamtAll = BigDecimal.ZERO; + for (DynamicObject dynamicObject : itementry) { + DynamicObject item = entryEntity1.addNew(); + item.set("zcgj_payitem",dynamicObject.getDynamicObject("payitem")); + BigDecimal oftaxamount = dynamicObject.getBigDecimal("oftaxamount"); + item.set("zcgj_oftaxamount",oftaxamount); + oftaxamountAll = oftaxamountAll.add(oftaxamount); + BigDecimal amount = dynamicObject.getBigDecimal("amount"); + item.set("zcgj_amount",amount); + amountAll = amountAll.add(amount); + item.set("zcgj_rate",dynamicObject.getBigDecimal("rate")); + BigDecimal taxamt = dynamicObject.getBigDecimal("taxamt"); + item.set("zcgj_taxamt",taxamt); + taxamtAll = taxamtAll.add(taxamt); + item.set("zcgj_remark",dynamicObject.getString("remark")); + } + outFinaceconfirm.set("zcgj_oftaxamount_all",oftaxamountAll); + outFinaceconfirm.set("zcgj_amount_all",amountAll); + outFinaceconfirm.set("zcgj_taxamt_all",taxamtAll); + SaveServiceHelper.saveOperate("zcgj_ec_out_finaceconfirm", new DynamicObject[]{outFinaceconfirm}, null);//支出合同实体 + //生成支出财务确认单 end + } + + IWorkflowPlugin.super.notify(execution); + } +} diff --git a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/workflow/OutContractSettleReversalWorkFlowPlugin.java b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/workflow/OutContractSettleReversalWorkFlowPlugin.java index 03ec750..0e2a9eb 100644 --- a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/workflow/OutContractSettleReversalWorkFlowPlugin.java +++ b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/workflow/OutContractSettleReversalWorkFlowPlugin.java @@ -27,6 +27,7 @@ public class OutContractSettleReversalWorkFlowPlugin implements IWorkflowPlugin //如果时冲销单据 boolean isReversabillid = outContractSettle.getBoolean("zcgj_is_reversabillid"); if(isReversabillid) { + //生成收入合同结算冲销单 start //收入合同 DynamicObject contractInfo = outContractSettle.getDynamicObject("zcgj_in_contract"); //收入合同结算 @@ -57,8 +58,8 @@ public class OutContractSettleReversalWorkFlowPlugin implements IWorkflowPlugin DynamicObject payitem = BusinessDataServiceHelper.loadSingle("ec_payitem", new QFilter[]{new QFilter("number", QCP.equals,"HTCX")}); DynamicObjectCollection itementry = outContractSettle.getDynamicObjectCollection("itementry"); - DynamicObjectCollection entryEntity = inContractSettle.getDynamicObjectCollection("itementry"); + DynamicObjectCollection entryEntity = inContractSettle.getDynamicObjectCollection("itementry"); BigDecimal settleamount = BigDecimal.ZERO; BigDecimal taxamount = BigDecimal.ZERO; BigDecimal settleoftaxamount = BigDecimal.ZERO; @@ -83,6 +84,46 @@ public class OutContractSettleReversalWorkFlowPlugin implements IWorkflowPlugin inContractSettle.set("settleoftaxamount",settleoftaxamount); OperationResult ecInContractSettle = SaveServiceHelper.saveOperate("ec_in_contract_settle", new DynamicObject[]{inContractSettle}, null);//支出合同实体 + + //生成收入合同结算冲销单 end + + //生成支出财务确认单 start + //收入合同结算 + DynamicObject outFinaceconfirm =BusinessDataServiceHelper.newDynamicObject("zcgj_ec_out_finaceconfirm"); + + outFinaceconfirm.set("zcgj_ec_out_contract_sett",outContractSettle.getLong("id")); + outFinaceconfirm.set("zcgj_ec_out_contract_name",outContractSettle.getString("billname")); + outFinaceconfirm.set("zcgj_ec_out_contractid", outContractSettle.getLong("id")); //id文本,冗余 + outFinaceconfirm.set("zcgj_billname",outContractSettle.getString("billname")); + outFinaceconfirm.set("zcgj_contract",outContractSettle.getDynamicObject("contract")); + outFinaceconfirm.set("zcgj_contattr",outContractSettle.getDynamicObject("contattr")); + outFinaceconfirm.set("zcgj_project",outContractSettle.getDynamicObject("project")); + outFinaceconfirm.set("zcgj_period",outContractSettle.getDynamicObject("period")); + outFinaceconfirm.set("zcgj_begindate",outContractSettle.getDate("begindate")); + outFinaceconfirm.set("zcgj_enddate",outContractSettle.getDate("enddate")); + outFinaceconfirm.set("zcgj_conttotaloftaxamount",outContractSettle.getBigDecimal("conttotaloftaxamount")); + outFinaceconfirm.set("zcgj_description",outContractSettle.getString("description")); + outFinaceconfirm.set("zcgj_currency",outContractSettle.getDynamicObject("currency")); + outFinaceconfirm.set("zcgj_invoice_org",outContractSettle.getDynamicObject("project").getDynamicObject("projectorg")); + outFinaceconfirm.set("zcgj_jscustomer",outContractSettle.getDynamicObject("zcgj_jscustomer")); + outFinaceconfirm.set("billstatus","C"); + outFinaceconfirm.set("zcgj_is_reversabillid",true); + + DynamicObjectCollection entryEntity1 = outFinaceconfirm.getDynamicObjectCollection("zcgj_itementry"); + entryEntity1.clear(); + for (DynamicObject dynamicObject : itementry) { + DynamicObject item = entryEntity1.addNew(); + item.set("zcgj_payitem",dynamicObject.getDynamicObject("payitem")); + item.set("zcgj_oftaxamount",dynamicObject.getBigDecimal("oftaxamount")); + item.set("zcgj_amount",dynamicObject.getBigDecimal("amount")); + item.set("zcgj_rate",dynamicObject.getBigDecimal("rate")); + item.set("zcgj_taxamt",dynamicObject.getBigDecimal("taxamt")); + item.set("zcgj_remark",dynamicObject.getString("remark")); + } + SaveServiceHelper.saveOperate("zcgj_ec_out_finaceconfirm", new DynamicObject[]{outFinaceconfirm}, null);//支出合同实体 + + //生成支出财务确认单 end + } IWorkflowPlugin.super.notify(execution); }