苍穹下推插件代码原创
5人赞赏了该文章
3645次浏览
编辑于2022年02月15日 11:05:37
下推插件基类:AbstractConvertPlugln
package kd.batm.FI.plugin; import java.math.BigDecimal; import java.text.SimpleDateFormat; import java.util.List; import kd.bos.dataentity.entity.DynamicObject; import kd.bos.entity.ExtendedDataEntity; import kd.bos.entity.botp.plugin.AbstractConvertPlugIn; import kd.bos.entity.botp.plugin.args.AfterBuildQueryParemeterEventArgs; import kd.bos.entity.botp.plugin.args.AfterConvertEventArgs; import kd.bos.entity.botp.plugin.args.AfterFieldMappingEventArgs; import kd.bos.entity.botp.runtime.ConvertConst; public class BankBatchBOTP extends AbstractConvertPlugIn { //private final static String KEY_CONTENT = "content"; private final static String KEY_costdept = "costdept"; private final static String KEY_batm__costdept = "batm_basedatafield1";//源单部门 @Override public void afterBuildQueryParemeter(AfterBuildQueryParemeterEventArgs e) { e.addSrcField(KEY_costdept); e.addSrcField(KEY_batm__costdept); } @Override public void afterFieldMapping(AfterFieldMappingEventArgs e) { //取目标单,单据头数据包(可能会生成多张单,是个数组) String targetEntityNumber=this.getTgtMainType().getName(); ExtendedDataEntity[] billDataEntitys=e.getTargetExtDataEntitySet().FindByEntityKey(targetEntityNumber); //SimpleDateFormat timesdf=new SimpleDateFormat("yyyy-MM-dd"); // 逐单处理 for(ExtendedDataEntity billDataEntity : billDataEntitys){ // 取当前目标单,对应的源单行 List<DynamicObject> srcRows = (List<DynamicObject>)billDataEntity.getValue(ConvertConst.ConvExtDataKey_SourceRows); // 取源单第一行上的字段值,忽略其他行 DynamicObject srcRow = srcRows.get(0); // 开始格式化字段值 StringBuilder sBuilder = new StringBuilder(); sBuilder.append(this.getSrcMainType().getDisplayName().toString()); // 单据编号字段值 //String billno = (String)e.getFldProperties().get(KEY_BILLNO).getValue(srcRow); //sBuilder.append(billno).append("; "); Object date = e.getFldProperties().get("batm_basedatafield1").getValue(srcRow); // 日期 //Object date = e.getFldProperties().get(KEY_DATE).getValue(srcRow); //if (date != null){ // sBuilder.append("日期: ").append(timesdf.format((Date)date)).append("; "); //} // 金额 // BigDecimal amount = (BigDecimal)e.getFldProperties().get(KEY_AMOUNT).getValue(srcRow); // sBuilder.append("金额: ").append(amount.toString()); // // // 币别 // String currency = (String)e.getFldProperties().get(KEY_CURRENCYNAME).getValue(srcRow); // sBuilder.append(currency); // 给目标单字段赋值 billDataEntity.setValue(KEY_costdept, date.toString()); } } @Override public void afterConvert(AfterConvertEventArgs e) { //取目标单,单据头数据包(可能会生成多张单,是个数组) String targetEntityNumber=this.getTgtMainType().getName(); ExtendedDataEntity[] billDataEntitys=e.getTargetExtDataEntitySet().FindByEntityKey(targetEntityNumber); //SimpleDateFormat timesdf=new SimpleDateFormat("yyyy-MM-dd"); // 逐单处理 for(ExtendedDataEntity billDataEntity : billDataEntitys){ // 取当前目标单,对应的源单行 List<DynamicObject> srcRows = (List<DynamicObject>)billDataEntity.getValue(ConvertConst.ConvExtDataKey_SourceRows); // 取源单第一行上的字段值,忽略其他行 DynamicObject srcRow = srcRows.get(0); // 开始格式化字段值 StringBuilder sBuilder = new StringBuilder(); sBuilder.append(this.getSrcMainType().getDisplayName().toString()); // 单据编号字段值 //String billno = (String)e.getFldProperties().get(KEY_BILLNO).getValue(srcRow); //sBuilder.append(billno).append("; "); Object date = e.getFldProperties().get("batm_basedatafield1").getValue(srcRow); // 日期 //Object date = e.getFldProperties().get(KEY_DATE).getValue(srcRow); //if (date != null){ // sBuilder.append("日期: ").append(timesdf.format((Date)date)).append("; "); //} // 金额 // BigDecimal amount = (BigDecimal)e.getFldProperties().get(KEY_AMOUNT).getValue(srcRow); // sBuilder.append("金额: ").append(amount.toString()); // // // 币别 // String currency = (String)e.getFldProperties().get(KEY_CURRENCYNAME).getValue(srcRow); // sBuilder.append(currency); // 给目标单字段赋值 billDataEntity.setValue("description", "Org"); } } }
推荐阅读