已85版本为例子,目前业务类别查询使用的query为:com.kingdee.eas.cp.bc.app.OperationTypeInitTreeQuery。
如果当前组织是实体财务组织,会查询关联了当前组织及其上级组织中没有关联任何财务组织的业务类别与关联了当前财务组织的业务类别取并集,其查出来数据放入operIdsInCompany集合中,具体查询sql如下:
SELECT DISTINCT oper.FID AS FID FROM T_BC_OPERATIONTYPE oper
WHERE oper.FCOMPANYID in ('当前财务组织id以及上级财务组织id') AND operce.FOPERATIONTYPEID IS NULL UNION ALL
SELECT FOPERATIONTYPEID AS FID FROM T_BC_OPERATIONTYPECOMPANYENTRY WHERE FCOMPANYORGUNITID = ('当前财务组织id')
继续查询当前组织没有关联当前成本中心、关联了其他成本中心的业务类别,其查询表为T_BC_OperationTypeCCEntry,其查询出来数据放入operIdsNotInCost集合中,查询sql如下:
SELECT * from T_BC_OperationTypeCCEntry WHERE FCOMPANYID = '财务组织id' AND FCOSTCENTERID <> '成本中心'
最后过滤出的数据为当前组织和上级组织下所有启用的业务类别,operIdsInCompany存在时取交集或去掉operIdsNotInCost数据。
总结:
A.业务类别没有启用
B.业务类别关联了其他财务组织和成本中心
C.业务类别调整时存在脏数据(之前关联成本中心和财务组织数据还在)
推荐阅读