科目接口优化科目表对象
This commit is contained in:
parent
67048086ba
commit
9ab9643fe2
|
|
@ -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);
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue