1,支出合同结算审核通过后自动生成财务确认单

2,收入合同结算审核通过后自动生成财务确认单
This commit is contained in:
zhangzhiguo 2025-06-05 11:30:39 +08:00
parent 00b4dd02ee
commit ce7170abd6
5 changed files with 213 additions and 4 deletions

View File

@ -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");
}

View File

@ -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;
}
}
}
}

View File

@ -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);
}
}

View File

@ -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);
}
}

View File

@ -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);
}