diff --git a/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/other/MaterialinbillToNoContractBotpPlugin.java b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/other/MaterialinbillToNoContractBotpPlugin.java new file mode 100644 index 0000000..bf7d3d3 --- /dev/null +++ b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/other/MaterialinbillToNoContractBotpPlugin.java @@ -0,0 +1,70 @@ +package zcgj.zcdev.zcdev.fs.plugin.other; + +import kd.bos.coderule.api.CodeRuleInfo; +import kd.bos.dataentity.entity.DynamicObject; +import kd.bos.dataentity.entity.DynamicObjectCollection; +import kd.bos.entity.ExtendedDataEntity; +import kd.bos.entity.botp.plugin.AbstractConvertPlugIn; +import kd.bos.entity.botp.plugin.args.AfterConvertEventArgs; +import kd.bos.servicehelper.coderule.CodeRuleServiceHelper; +import kd.bos.servicehelper.operation.SaveServiceHelper; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 入库单下推无合同付款申请单botp插件 + */ +public class MaterialinbillToNoContractBotpPlugin extends AbstractConvertPlugIn { + + @Override + public void afterConvert(AfterConvertEventArgs e) { + super.afterConvert(e); + // 获取已生成的资产卡片 + ExtendedDataEntity[] billDataEntitys = e.getTargetExtDataEntitySet().FindByEntityKey("er_publicreimbursebill"); + + // 构造 ExtendedDataEntity 时需要的索引值 + int dataIndex = billDataEntitys.length; + List copyDataEntitys = new ArrayList<>(); + for(ExtendedDataEntity billDataEntity : billDataEntitys){ + System.out.println(); + DynamicObject dataEntity = billDataEntity.getDataEntity(); + + CodeRuleInfo codeRule = CodeRuleServiceHelper.getCodeRule(dataEntity.getDataEntityType().getName(), dataEntity, null); + String billno = CodeRuleServiceHelper.getNumber(codeRule, dataEntity); + dataEntity.set("billno", billno); + SaveServiceHelper.save(new DynamicObject[]{dataEntity}); + Map invoiceEntryMap = new HashMap();//发票信息分录 + Map expensEntryMap = new HashMap();//费用明细分录 + DynamicObjectCollection invoiceentry = dataEntity.getDynamicObjectCollection("invoiceentry"); + for (DynamicObject invoice : invoiceentry) { + String invoiceno = invoice.getString("invoiceno"); + long aLong = invoice.getLong("id"); + invoiceEntryMap.put(invoiceno, aLong); + } + DynamicObjectCollection expenseentryentity = dataEntity.getDynamicObjectCollection("expenseentryentity"); + for (DynamicObject expenseentry : expenseentryentity) { + String invoiceno = expenseentry.getString("invoiceno_entry"); + long aLong = expenseentry.getLong("id"); + expensEntryMap.put(invoiceno, aLong); + } + + //发票明细分录 + DynamicObjectCollection invoiceitementry = dataEntity.getDynamicObjectCollection("invoiceitementry"); + for (String invoiceno : expensEntryMap.keySet()) { + Long itemid = expensEntryMap.get(invoiceno);//费用明细分录id + Long invoiceId = invoiceEntryMap.get(invoiceno);//发票信息分录id + DynamicObject dynamicObject = invoiceitementry.addNew();//发票明细,费用明细和发票信息关联关系 + dynamicObject.set("itementryid", itemid); + dynamicObject.set("invoiceheadentryid", invoiceId); + } + SaveServiceHelper.save(new DynamicObject[]{dataEntity}); + + //dataEntity.getDynamicObjectCollection("invoiceentry").get(0).getLong("id"); + //dataEntity.getDynamicObjectCollection("expenseentryentity").get(0).getLong("id"); //invoiceno_entry + System.out.println(); + } + } +}