数据源:
需求:
对科目代码进行处理,保留汇总(父节点)科目的最下级(最后的子节点)科目,如只有一个汇总科目,就保留该科目。
比如:有a-->b-->c(151199)-->d(1511991)
d的上级科目是C
思路:
观察得到,表中数据的科目代码至多有10位,8位,6位,汇总科目的科目代码只有4位。
每拿到一条数据中的科目代码,进行判断,如果有10位,截取前面的8位,截取的科目代码这就是该条数据的上级科目的代码
如果是8位,截取前面的6位,截取的科目代码这就是该条数据的上级科目的代码,前提是满足的条件是有大于4位的
实现代码:
public String doDataRead(String Account){
private String AccountCode;
for(int i=0;i<4;i++){
int m=10-2*i;
int n=8-2*i;
if(Account.length()==m && n>=4){
AccountCode=Account.subString(0,n);
}
}
return AccountCode;
}
在doTransform的方法中调用:
output.上级科目=doDataRead(input.科目代码);