苍穹下推插件代码原创
金蝶云社区-阿伟仔
阿伟仔
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");
		        }
		        
	}

}


赞 5