From 74d0352ba47fd3c39db899a10bab57c16b561222 Mon Sep 17 00:00:00 2001 From: zhangzhiguo Date: Thu, 27 Feb 2025 16:21:44 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=AF=E5=87=BA=E5=90=88=E5=90=8C=E5=AE=9E?= =?UTF-8?q?=E9=99=85=E7=BB=93=E7=AE=97=E4=B9=99=E6=96=B9=E6=8F=92=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../plugin/form/EcInContartVoucherPlugin.java | 122 ------------------ .../form/EcInFinalsettleJusCustPlugin.java | 3 + .../form/EcOutContartVoucherPlugin.java | 118 ----------------- ...tContractEcInFinalsettleJusCustPlugin.java | 57 ++++++++ .../operate/OutContractSettlementOp.java | 10 -- 5 files changed, 60 insertions(+), 250 deletions(-) delete mode 100644 code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/EcInContartVoucherPlugin.java delete mode 100644 code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/EcOutContartVoucherPlugin.java create mode 100644 code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/OutContractEcInFinalsettleJusCustPlugin.java diff --git a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/EcInContartVoucherPlugin.java b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/EcInContartVoucherPlugin.java deleted file mode 100644 index ed75b8e..0000000 --- a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/EcInContartVoucherPlugin.java +++ /dev/null @@ -1,122 +0,0 @@ -package zcgj.zcdev.zcdev.pr.plugin.form; - -import kd.bos.db.DB; -import kd.bos.db.DBRoute; -import kd.bos.entity.EntityMetadataCache; -import kd.bos.entity.MainEntityType; -import kd.bos.ext.fi.ai.AbstractDapWriteBackImpl; -import kd.bos.ext.fi.ai.Voucher; -import kd.bos.ext.fi.ai.VoucherOperation; -import kd.bos.logging.Log; -import kd.bos.logging.LogFactory; - -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.Set; - -/** - * 指出合同结算凭证反写插件 - */ -public class EcInContartVoucherPlugin extends AbstractDapWriteBackImpl { - - public static final Log log = LogFactory.getLog(EcInContartVoucherPlugin.class); - //采购申请单上,要反写的凭证号字段名 - public static final String voucherNoFile="fk_zcgj_voucherbillno"; - @Override - protected DBRoute getDBRoute() { - // 扩展开发库的分库标识,实际值可以查看mc分库标识 - DBRoute DBR = DBRoute.of("scm"); - return DBR; - } - - // 删除凭证写入的值这里是复选框- 布尔false - @Override - protected Object getVchDisableStatus() { - Boolean disRchValue = false; - return disRchValue; - } - - // 生成凭证时写入的值,这里是复选框- 布尔 true。 - @Override - protected Object getVchEnableStatus() { - Boolean rchValue = true; - log.info("AbstractDapWriteBackImpl#keySet:getVchEnableStatus---生成凭证时写入的值" ); - return rchValue; - } - - // 要反写的字段,反写的是常量值,反写凭证的一些其他信息回单据只能重写writeBack方法 - @Override - protected String getVchStatusField() { - //String vchField = "fisvoucher"; //已经被隐藏 - String vchField = "fk_zcgj_isvoucher"; - log.info("AbstractDapWriteBackImpl#keySet:getVchEnableStatus---生成凭证时写入的值:"+vchField ); - return vchField; - } - - @Override - public void writeBack(VoucherOperation operation, String billEntityNumber, Map billToVch) { - log.info("AbstractDapWriteBackImpl#keySet:getVchEnableStatus---生成凭证时写入的值billEntityNumber:"+billEntityNumber ); - MainEntityType mt = EntityMetadataCache.getDataEntityType(billEntityNumber); - Set keySet = billToVch.keySet(); - log.info("AbstractDapWriteBackImpl#keySet:" + keySet); - if (VoucherOperation.Create.equals(operation)) { - log.info("AbstractDapWriteBackImpl#开始执行生成凭证反写:" + operation); - Object vchStatusField = getVchEnableStatus(); - List params = new ArrayList<>(); - for (Long me : keySet) { - log.info("AbstractDapWriteBackImpl#生成凭证的单据ID:" + me); - Voucher voucher=billToVch.get(me);//凭证 - String voucherNo = voucher.getVoucherNo(); - //这里处理的是一个单据只有一个凭证的时候,如果是多个凭证,可以先获取已经生成的凭证号,再拼接上字符串。 - Object[] param = new Object[] { vchStatusField,voucherNo, me };// - params.add(param); - if (params.size() >= 10000) { - log.info("AbstractDapWriteBackImpl#开始执行生成凭证反写SQL"); - log.info("AbstractDapWriteBackImpl#mt.getAlias()" + mt.getAlias()); - log.info("AbstractDapWriteBackImpl#mt.getVchStatusField()" + getVchStatusField()); - DB.executeBatch(getDBRoute(), - "update " + mt.getAlias() + " set " + getVchStatusField() + " = ? , "+voucherNoFile+" = ? where fid = ?", params); - log.info("AbstractDapWriteBackImpl#结束执行生成凭证反写SQL"); - params.clear(); - } - } - log.info("AbstractDapWriteBackImpl#最后#开始执行生成凭证反写SQL"); - log.info("AbstractDapWriteBackImpl#最后#mt.getAlias()" + mt.getAlias()); - log.info("AbstractDapWriteBackImpl#最后#mt.getVchStatusField()" + getVchStatusField()); - if (params.size() > 0) { - DB.executeBatch(getDBRoute(), - "update " + mt.getAlias() + " set " + getVchStatusField() + " = ? , "+voucherNoFile+" = ? where fid = ?", params); - } - log.info("AbstractDapWriteBackImpl#最后#结束执行生成凭证反写SQL"); - } else if (VoucherOperation.Delete.equals(operation)) { - log.info("AbstractDapWriteBackImpl#开始执行删除凭证反写:" + operation); - Object vchDisableStatus = getVchDisableStatus(); - List params = new ArrayList<>(); - for (Long me : keySet) { - log.info("AbstractDapWriteBackImpl#删除凭证的单据ID:" + me); - //这里处理的是一个单据只有一个凭证的时候,如果是多个凭证,可以先获取已经生成的凭证号,再去掉本凭证之后的凭证号 - Object[] param = new Object[] {vchDisableStatus, "",me };// getVchDisableStatus - params.add(param); - if (params.size() >= 10000) { - log.info("AbstractDapWriteBackImpl#开始执行删除凭证反写SQL"); - log.info("AbstractDapWriteBackImpl#mt.getAlias()" + mt.getAlias()); - log.info("AbstractDapWriteBackImpl#mt.getVchStatusField()" + getVchStatusField()); - DB.executeBatch(getDBRoute(), - "update " + mt.getAlias() + " set " + getVchStatusField() + " = ? , "+voucherNoFile+" = ? where fid = ?", params); - params.clear(); - log.info("AbstractDapWriteBackImpl#结束执行删除凭证反写SQL"); - } - } - log.info("AbstractDapWriteBackImpl#最后#开始执行删除凭证反写SQL"); - log.info("AbstractDapWriteBackImpl#最后#mt.getAlias()" + mt.getAlias()); - log.info("AbstractDapWriteBackImpl#最后#mt.getVchStatusField()" + getVchStatusField()); - if (params.size() > 0) { - DB.executeBatch(getDBRoute(), - "update " + mt.getAlias() + " set " + getVchStatusField() + " = ? , "+voucherNoFile+" = ? where fid = ?", params); - } - log.info("AbstractDapWriteBackImpl#最后#结束执行删除凭证反写SQL"); - } - } - -} diff --git a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/EcInFinalsettleJusCustPlugin.java b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/EcInFinalsettleJusCustPlugin.java index 8dd7285..61f6daa 100644 --- a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/EcInFinalsettleJusCustPlugin.java +++ b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/EcInFinalsettleJusCustPlugin.java @@ -18,6 +18,9 @@ import java.util.ArrayList; import java.util.EventObject; import java.util.List; +/** + * 收入合同结算实际结算甲方过滤 + */ public class EcInFinalsettleJusCustPlugin extends AbstractBillPlugIn implements Plugin, BeforeF7SelectListener { @Override diff --git a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/EcOutContartVoucherPlugin.java b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/EcOutContartVoucherPlugin.java deleted file mode 100644 index 604cbe3..0000000 --- a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/EcOutContartVoucherPlugin.java +++ /dev/null @@ -1,118 +0,0 @@ -package zcgj.zcdev.zcdev.pr.plugin.form; - -import kd.bos.ext.fi.ai.AbstractDapWriteBackImpl; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.Set; - -import kd.bos.db.DB; -import kd.bos.db.DBRoute; -import kd.bos.entity.EntityMetadataCache; -import kd.bos.entity.MainEntityType; -import kd.bos.ext.fi.ai.AbstractDapWriteBackImpl; -import kd.bos.ext.fi.ai.Voucher; -import kd.bos.ext.fi.ai.VoucherOperation; -import kd.bos.logging.Log; -import kd.bos.logging.LogFactory; -/** - * 指出合同结算凭证反写插件 - */ -public class EcOutContartVoucherPlugin extends AbstractDapWriteBackImpl { - - public static final Log log = LogFactory.getLog(EcOutContartVoucherPlugin.class); - //采购申请单上,要反写的凭证号字段名 - public static final String voucherNoFile="fk_zcgj_voucherbillno"; - @Override - protected DBRoute getDBRoute() { - // 扩展开发库的分库标识,实际值可以查看mc分库标识 - DBRoute DBR = DBRoute.of("scm"); - return DBR; - } - - // 删除凭证写入的值这里是复选框- 布尔false - @Override - protected Object getVchDisableStatus() { - Boolean disRchValue = false; - return disRchValue; - } - - // 生成凭证时写入的值,这里是复选框- 布尔 true。 - @Override - protected Object getVchEnableStatus() { - Boolean rchValue = true; - return rchValue; - } - - // 要反写的字段,反写的是常量值,反写凭证的一些其他信息回单据只能重写writeBack方法 - @Override - protected String getVchStatusField() { - String vchField = "fisvoucher"; - return vchField; - } - - @Override - public void writeBack(VoucherOperation operation, String billEntityNumber, Map billToVch) { - MainEntityType mt = EntityMetadataCache.getDataEntityType(billEntityNumber); - Set keySet = billToVch.keySet(); - log.info("AbstractDapWriteBackImpl#keySet:" + keySet); - if (VoucherOperation.Create.equals(operation)) { - log.info("AbstractDapWriteBackImpl#开始执行生成凭证反写:" + operation); - Object vchStatusField = getVchEnableStatus(); - List params = new ArrayList<>(); - for (Long me : keySet) { - log.info("AbstractDapWriteBackImpl#生成凭证的单据ID:" + me); - Voucher voucher=billToVch.get(me);//凭证 - String voucherNo = voucher.getVoucherNo(); - //这里处理的是一个单据只有一个凭证的时候,如果是多个凭证,可以先获取已经生成的凭证号,再拼接上字符串。 - Object[] param = new Object[] { vchStatusField,voucherNo, me };// - params.add(param); - if (params.size() >= 10000) { - log.info("AbstractDapWriteBackImpl#开始执行生成凭证反写SQL"); - log.info("AbstractDapWriteBackImpl#mt.getAlias()" + mt.getAlias()); - log.info("AbstractDapWriteBackImpl#mt.getVchStatusField()" + getVchStatusField()); - DB.executeBatch(getDBRoute(), - "update " + mt.getAlias() + " set " + getVchStatusField() + " = ? , "+voucherNoFile+" = ? where fid = ?", params); - log.info("AbstractDapWriteBackImpl#结束执行生成凭证反写SQL"); - params.clear(); - } - } - log.info("AbstractDapWriteBackImpl#最后#开始执行生成凭证反写SQL"); - log.info("AbstractDapWriteBackImpl#最后#mt.getAlias()" + mt.getAlias()); - log.info("AbstractDapWriteBackImpl#最后#mt.getVchStatusField()" + getVchStatusField()); - if (params.size() > 0) { - DB.executeBatch(getDBRoute(), - "update " + mt.getAlias() + " set " + getVchStatusField() + " = ? , "+voucherNoFile+" = ? where fid = ?", params); - } - log.info("AbstractDapWriteBackImpl#最后#结束执行生成凭证反写SQL"); - } else if (VoucherOperation.Delete.equals(operation)) { - log.info("AbstractDapWriteBackImpl#开始执行删除凭证反写:" + operation); - Object vchDisableStatus = getVchDisableStatus(); - List params = new ArrayList<>(); - for (Long me : keySet) { - log.info("AbstractDapWriteBackImpl#删除凭证的单据ID:" + me); - //这里处理的是一个单据只有一个凭证的时候,如果是多个凭证,可以先获取已经生成的凭证号,再去掉本凭证之后的凭证号 - Object[] param = new Object[] {vchDisableStatus, "",me };// getVchDisableStatus - params.add(param); - if (params.size() >= 10000) { - log.info("AbstractDapWriteBackImpl#开始执行删除凭证反写SQL"); - log.info("AbstractDapWriteBackImpl#mt.getAlias()" + mt.getAlias()); - log.info("AbstractDapWriteBackImpl#mt.getVchStatusField()" + getVchStatusField()); - DB.executeBatch(getDBRoute(), - "update " + mt.getAlias() + " set " + getVchStatusField() + " = ? , "+voucherNoFile+" = ? where fid = ?", params); - params.clear(); - log.info("AbstractDapWriteBackImpl#结束执行删除凭证反写SQL"); - } - } - log.info("AbstractDapWriteBackImpl#最后#开始执行删除凭证反写SQL"); - log.info("AbstractDapWriteBackImpl#最后#mt.getAlias()" + mt.getAlias()); - log.info("AbstractDapWriteBackImpl#最后#mt.getVchStatusField()" + getVchStatusField()); - if (params.size() > 0) { - DB.executeBatch(getDBRoute(), - "update " + mt.getAlias() + " set " + getVchStatusField() + " = ? , "+voucherNoFile+" = ? where fid = ?", params); - } - log.info("AbstractDapWriteBackImpl#最后#结束执行删除凭证反写SQL"); - } - } - -} diff --git a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/OutContractEcInFinalsettleJusCustPlugin.java b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/OutContractEcInFinalsettleJusCustPlugin.java new file mode 100644 index 0000000..61bfd08 --- /dev/null +++ b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/OutContractEcInFinalsettleJusCustPlugin.java @@ -0,0 +1,57 @@ +package zcgj.zcdev.zcdev.pr.plugin.form; + +import kd.bos.bill.AbstractBillPlugIn; +import kd.bos.dataentity.entity.DynamicObject; +import kd.bos.dataentity.entity.DynamicObjectCollection; +import kd.bos.form.field.BasedataEdit; +import kd.bos.form.field.events.BeforeF7SelectEvent; +import kd.bos.form.field.events.BeforeF7SelectListener; +import kd.bos.orm.query.QCP; +import kd.bos.orm.query.QFilter; +import kd.bos.servicehelper.BusinessDataServiceHelper; +import kd.sdk.plugin.Plugin; + +import java.util.ArrayList; +import java.util.EventObject; +import java.util.List; + +/** + * 支出合同结算实际结算乙方过滤 + */ +public class OutContractEcInFinalsettleJusCustPlugin extends AbstractBillPlugIn implements Plugin, BeforeF7SelectListener { + + @Override + public void registerListener(EventObject e) { + super.registerListener(e); + BasedataEdit fieldEdit = this.getView().getControl("zcgj_jscustomer"); + fieldEdit.addBeforeF7SelectListener(this); + } + + @Override + public void beforeF7Select(BeforeF7SelectEvent arg0) { + String name = arg0.getProperty().getName(); + if(name.equals("zcgj_jscustomer")){ + Object contractObj = this.getModel().getValue("contract"); + if(contractObj != null){ + DynamicObject contract = (DynamicObject)contractObj; + QFilter filter = new QFilter("id", "=", contract.getPkValue()); + DynamicObject contractData = BusinessDataServiceHelper.loadSingle("ec_out_contract", "id,ismulticontract,partb,otherpart", new QFilter[]{filter}); + + boolean ismulticontract = contractData.getBoolean("ismulticontract");//多方合同 + DynamicObject partb = contractData.getDynamicObject("partb"); + List ids = new ArrayList<>(); + ids.add(partb.getLong("id")); + if(ismulticontract){ + DynamicObjectCollection otherpart = contractData.getDynamicObjectCollection("otherpart"); + for (DynamicObject dynamicObject : otherpart) { + ids.add(dynamicObject.getLong(2)); + } + } + List qFilterList = new ArrayList<>(); + qFilterList.add(new QFilter("id", QCP.in,ids)); + arg0.setCustomQFilters(qFilterList); + } + + } + } +} diff --git a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/operate/OutContractSettlementOp.java b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/operate/OutContractSettlementOp.java index 604df58..ee48af5 100644 --- a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/operate/OutContractSettlementOp.java +++ b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/operate/OutContractSettlementOp.java @@ -1,22 +1,12 @@ 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.operate.result.OperationResult; import kd.bos.entity.plugin.AddValidatorsEventArgs; import kd.bos.entity.validate.AbstractValidator; -import kd.bos.servicehelper.QueryServiceHelper; -import kd.bos.servicehelper.operation.SaveServiceHelper; -import kd.ec.basedata.common.utils.EcDynamicObjectUtil; -import kd.bos.orm.query.QFilter; -import kd.bos.servicehelper.BusinessDataServiceHelper; import kd.ec.contract.opplugin.OutContractSettleOp; import kd.ec.contract.opplugin.validator.OutContractSettleValidator; -import java.util.HashSet; import java.util.List; -import java.util.Set; public class OutContractSettlementOp extends OutContractSettleOp {