科目接口优化科目表对象

This commit is contained in:
yuxueliang0813 2025-05-22 15:42:17 +08:00
parent 67048086ba
commit 9ab9643fe2
2 changed files with 16 additions and 9 deletions

View File

@ -24,6 +24,7 @@ public class EsbUtils {
public static final Long CUSTOMERSTAND = 712984405228187648L;//客户分类标准 public static final Long CUSTOMERSTAND = 712984405228187648L;//客户分类标准
// public static final Long CUSTOMERSTATUS = 1122390034075371520L;//客户状态 默认合格 // public static final Long CUSTOMERSTATUS = 1122390034075371520L;//客户状态 默认合格
private static final String acctTableName = "bd_accounttable";//科目表
public static final Long ACCTABLE = 2184297498435138560L;//科目表 财务库 T_BD_Accounttable public static final Long ACCTABLE = 2184297498435138560L;//科目表 财务库 T_BD_Accounttable
private static final String orgName = "bos_org";//系统库 表名 t_org_org private static final String orgName = "bos_org";//系统库 表名 t_org_org
@ -47,6 +48,11 @@ public class EsbUtils {
return null; return null;
} }
public static DynamicObject getTable(){
//获取科目表对象
return BusinessDataServiceHelper.loadSingleFromCache(ACCTABLE,acctTableName);
}
public static DynamicObject getGroupOrg(){ public static DynamicObject getGroupOrg(){
//获取集团组织对象 //获取集团组织对象
return BusinessDataServiceHelper.loadSingleFromCache(JhzjUtils.GROUPID,orgName); return BusinessDataServiceHelper.loadSingleFromCache(JhzjUtils.GROUPID,orgName);

View File

@ -90,6 +90,7 @@ public class AspAccountControler {
OperationResult operResult; OperationResult operResult;
Map<String, Long> acctids = new HashMap<>();//科目编号和ID对应关系 Map<String, Long> acctids = new HashMap<>();//科目编号和ID对应关系
Map<String, DynamicObject> accountMaps = new HashMap<>();//将科目编号与对象关联 Map<String, DynamicObject> accountMaps = new HashMap<>();//将科目编号与对象关联
DynamicObject tableinfo = EsbUtils.getTable();
//先根据基础信息在集团层面生成科目不考虑核算维度使用逐级分配 //先根据基础信息在集团层面生成科目不考虑核算维度使用逐级分配
//再根据公司信息进行科目分配 //再根据公司信息进行科目分配
//最后处理每个公司下科目的核算维度和禁用状态 //最后处理每个公司下科目的核算维度和禁用状态
@ -140,11 +141,11 @@ public class AspAccountControler {
} }
//不存在做新增 根据实体名称创建动态对象 //不存在做新增 根据实体名称创建动态对象
acctInfo = BusinessDataServiceHelper.newDynamicObject(entityName); acctInfo = BusinessDataServiceHelper.newDynamicObject(entityName);
acctInfo.set("accounttable", EsbUtils.ACCTABLE);//科目表fid上正式时注意此ID acctInfo.set("accounttable", tableinfo);//科目表fid上正式时注意此ID
acctInfo.set("number", number); acctInfo.set("number", number);
acctInfo.set("name", name); acctInfo.set("name", name);
//处理父级科目 //处理父级科目
parentAcctInfo = getParentAcct(number,name,acctType,acctTypeInfo); parentAcctInfo = getParentAcct(number,name,acctType,acctTypeInfo,tableinfo);
if(parentAcctInfo == null){ if(parentAcctInfo == null){
itemInfo = new JSONObject(); itemInfo = new JSONObject();
itemInfo.put("code",number); itemInfo.put("code",number);
@ -207,7 +208,7 @@ public class AspAccountControler {
JSONArray companysJson = json_obj.getJSONArray("companys"); JSONArray companysJson = json_obj.getJSONArray("companys");
//处理科目在每个公司生成 //处理科目在每个公司生成
Map<String, DynamicObject> companyAcctMaps = handleAccountCompany(accountMaps,companysJson); Map<String, DynamicObject> companyAcctMaps = handleAccountCompany(accountMaps,companysJson,tableinfo);
//处理科目分配和反分配 //处理科目分配和反分配
EsbUtils.handleAssignNew(companysJson, acctids, entityName); EsbUtils.handleAssignNew(companysJson, acctids, entityName);
EsbUtils.handleUnAssignNew(companysJson, acctids, entityName); EsbUtils.handleUnAssignNew(companysJson, acctids, entityName);
@ -304,7 +305,7 @@ public class AspAccountControler {
} }
} }
private Map<String, DynamicObject> handleAccountCompany(Map<String, DynamicObject> accountMaps,JSONArray companysJson){ private Map<String, DynamicObject> handleAccountCompany(Map<String, DynamicObject> accountMaps,JSONArray companysJson,DynamicObject tableinfo){
Map<String, DynamicObject> baseMaps = new HashMap<>(); Map<String, DynamicObject> baseMaps = new HashMap<>();
if(companysJson == null){ if(companysJson == null){
return baseMaps; return baseMaps;
@ -335,7 +336,7 @@ public class AspAccountControler {
continue; continue;
} }
//复制对象修改其中的某些属性比如id和组织id新增币别相关属性 //复制对象修改其中的某些属性比如id和组织id新增币别相关属性
newAcctInfo = copydo(oldAcctInfo,hsorgInfo,json_body); newAcctInfo = copydo(oldAcctInfo,hsorgInfo,json_body,tableinfo);
}else{ }else{
//修改币别相关属性 //修改币别相关属性
newAcctInfo.set("acctcurrency", json_body.getString("acctcurrency")); newAcctInfo.set("acctcurrency", json_body.getString("acctcurrency"));
@ -359,9 +360,9 @@ public class AspAccountControler {
return baseMaps; return baseMaps;
} }
private DynamicObject copydo(DynamicObject olddo, DynamicObject hsorgInfo, JSONObject json_body){ private DynamicObject copydo(DynamicObject olddo, DynamicObject hsorgInfo, JSONObject json_body,DynamicObject tableinfo){
DynamicObject newAcctInfo = BusinessDataServiceHelper.newDynamicObject(entityName); DynamicObject newAcctInfo = BusinessDataServiceHelper.newDynamicObject(entityName);
newAcctInfo.set("accounttable", EsbUtils.ACCTABLE);//TODO 科目表fid上正式时注意此ID newAcctInfo.set("accounttable", tableinfo);//TODO 科目表fid上正式时注意此ID
newAcctInfo.set("number", olddo.getString("number")); newAcctInfo.set("number", olddo.getString("number"));
newAcctInfo.set("name", olddo.getString("name")); newAcctInfo.set("name", olddo.getString("name"));
newAcctInfo.set("longnumber", olddo.getString("longnumber")); newAcctInfo.set("longnumber", olddo.getString("longnumber"));
@ -448,7 +449,7 @@ public class AspAccountControler {
return baseMaps; return baseMaps;
} }
private DynamicObject getParentAcct(String number,String name,String acctType,DynamicObject acctTypeInfo){ private DynamicObject getParentAcct(String number,String name,String acctType,DynamicObject acctTypeInfo,DynamicObject tableinfo){
//sap科目编号为10位且没有层级关系金蝶按照4-6分两级自行处理 //sap科目编号为10位且没有层级关系金蝶按照4-6分两级自行处理
String parentnumber = number.substring(0,4); String parentnumber = number.substring(0,4);
DynamicObject acctInfo = BusinessDataServiceHelper.loadSingleFromCache(entityName, DynamicObject acctInfo = BusinessDataServiceHelper.loadSingleFromCache(entityName,
@ -462,7 +463,7 @@ public class AspAccountControler {
parentname = name.substring(0, name.indexOf("-")); parentname = name.substring(0, name.indexOf("-"));
} }
acctInfo = BusinessDataServiceHelper.newDynamicObject(entityName); acctInfo = BusinessDataServiceHelper.newDynamicObject(entityName);
acctInfo.set("accounttable", EsbUtils.ACCTABLE);//科目表fid上正式时注意此ID acctInfo.set("accounttable", tableinfo);//科目表fid上正式时注意此ID
acctInfo.set("number", parentnumber); acctInfo.set("number", parentnumber);
acctInfo.set("name", parentname); acctInfo.set("name", parentname);
acctInfo.set("longnumber", parentnumber); acctInfo.set("longnumber", parentnumber);