科目接口优化创建组织对象
This commit is contained in:
parent
9ab9643fe2
commit
722c92918c
|
|
@ -42,8 +42,10 @@ public class AspAccountControler {
|
||||||
private static final Log log = LogFactory.getLog(AspAccountControler.class);
|
private static final Log log = LogFactory.getLog(AspAccountControler.class);
|
||||||
private static final String apimenthod = "/account_sync";
|
private static final String apimenthod = "/account_sync";
|
||||||
|
|
||||||
private static final Map<String, DynamicObject> mapObject = new HashMap<>();//公司对象集合
|
private Map<String, DynamicObject> mapObject = new HashMap<>();//公司对象集合
|
||||||
private static final Map<String, DynamicObject> hsxmMaps = new HashMap<>();//核算维度对象集合
|
private Map<String, DynamicObject> hsxmMaps = new HashMap<>();//核算维度对象集合
|
||||||
|
private DynamicObject grouporginfo = EsbUtils.getGroupOrg();//获取默认科目表
|
||||||
|
DynamicObject tableinfo = EsbUtils.getTable();//获取默认科目表
|
||||||
|
|
||||||
// private static final String insertSql = "insert into T_BD_Account_U (fdataid,fuseorgid) values (?,?);";
|
// private static final String insertSql = "insert into T_BD_Account_U (fdataid,fuseorgid) values (?,?);";
|
||||||
|
|
||||||
|
|
@ -90,7 +92,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();
|
|
||||||
//先根据基础信息在集团层面生成科目,不考虑核算维度,使用逐级分配
|
//先根据基础信息在集团层面生成科目,不考虑核算维度,使用逐级分配
|
||||||
//再根据公司信息进行科目分配
|
//再根据公司信息进行科目分配
|
||||||
//最后处理每个公司下科目的核算维度和禁用状态
|
//最后处理每个公司下科目的核算维度和禁用状态
|
||||||
|
|
@ -145,7 +147,7 @@ public class AspAccountControler {
|
||||||
acctInfo.set("number", number);
|
acctInfo.set("number", number);
|
||||||
acctInfo.set("name", name);
|
acctInfo.set("name", name);
|
||||||
//处理父级科目
|
//处理父级科目
|
||||||
parentAcctInfo = getParentAcct(number,name,acctType,acctTypeInfo,tableinfo);
|
parentAcctInfo = getParentAcct(number,name,acctType,acctTypeInfo);
|
||||||
if(parentAcctInfo == null){
|
if(parentAcctInfo == null){
|
||||||
itemInfo = new JSONObject();
|
itemInfo = new JSONObject();
|
||||||
itemInfo.put("code",number);
|
itemInfo.put("code",number);
|
||||||
|
|
@ -157,8 +159,8 @@ public class AspAccountControler {
|
||||||
acctInfo.set("fullname", name);
|
acctInfo.set("fullname", name);
|
||||||
acctInfo.set("parent", parentAcctInfo);
|
acctInfo.set("parent", parentAcctInfo);
|
||||||
//创建组织
|
//创建组织
|
||||||
acctInfo.set("createorg", JhzjUtils.GROUPID);//创建组织
|
acctInfo.set("createorg", grouporginfo);//创建组织
|
||||||
acctInfo.set("org", JhzjUtils.GROUPID);//管理组织
|
acctInfo.set("org", grouporginfo);//管理组织
|
||||||
//科目类型
|
//科目类型
|
||||||
acctInfo.set("accounttype", acctTypeInfo);
|
acctInfo.set("accounttype", acctTypeInfo);
|
||||||
//币别核算--外币核算类型--集团科目新增时默认为allcurrency
|
//币别核算--外币核算类型--集团科目新增时默认为allcurrency
|
||||||
|
|
@ -208,7 +210,7 @@ public class AspAccountControler {
|
||||||
|
|
||||||
JSONArray companysJson = json_obj.getJSONArray("companys");
|
JSONArray companysJson = json_obj.getJSONArray("companys");
|
||||||
//处理科目在每个公司生成
|
//处理科目在每个公司生成
|
||||||
Map<String, DynamicObject> companyAcctMaps = handleAccountCompany(accountMaps,companysJson,tableinfo);
|
Map<String, DynamicObject> companyAcctMaps = handleAccountCompany(accountMaps,companysJson);
|
||||||
//处理科目分配和反分配
|
//处理科目分配和反分配
|
||||||
EsbUtils.handleAssignNew(companysJson, acctids, entityName);
|
EsbUtils.handleAssignNew(companysJson, acctids, entityName);
|
||||||
EsbUtils.handleUnAssignNew(companysJson, acctids, entityName);
|
EsbUtils.handleUnAssignNew(companysJson, acctids, entityName);
|
||||||
|
|
@ -305,7 +307,7 @@ public class AspAccountControler {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private Map<String, DynamicObject> handleAccountCompany(Map<String, DynamicObject> accountMaps,JSONArray companysJson,DynamicObject tableinfo){
|
private Map<String, DynamicObject> handleAccountCompany(Map<String, DynamicObject> accountMaps,JSONArray companysJson){
|
||||||
Map<String, DynamicObject> baseMaps = new HashMap<>();
|
Map<String, DynamicObject> baseMaps = new HashMap<>();
|
||||||
if(companysJson == null){
|
if(companysJson == null){
|
||||||
return baseMaps;
|
return baseMaps;
|
||||||
|
|
@ -336,7 +338,7 @@ public class AspAccountControler {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
//复制对象,修改其中的某些属性,比如id和组织id,新增币别相关属性
|
//复制对象,修改其中的某些属性,比如id和组织id,新增币别相关属性
|
||||||
newAcctInfo = copydo(oldAcctInfo,hsorgInfo,json_body,tableinfo);
|
newAcctInfo = copydo(oldAcctInfo,hsorgInfo,json_body);
|
||||||
}else{
|
}else{
|
||||||
//修改币别相关属性
|
//修改币别相关属性
|
||||||
newAcctInfo.set("acctcurrency", json_body.getString("acctcurrency"));
|
newAcctInfo.set("acctcurrency", json_body.getString("acctcurrency"));
|
||||||
|
|
@ -360,15 +362,15 @@ public class AspAccountControler {
|
||||||
return baseMaps;
|
return baseMaps;
|
||||||
}
|
}
|
||||||
|
|
||||||
private DynamicObject copydo(DynamicObject olddo, DynamicObject hsorgInfo, JSONObject json_body,DynamicObject tableinfo){
|
private DynamicObject copydo(DynamicObject olddo, DynamicObject hsorgInfo, JSONObject json_body){
|
||||||
DynamicObject newAcctInfo = BusinessDataServiceHelper.newDynamicObject(entityName);
|
DynamicObject newAcctInfo = BusinessDataServiceHelper.newDynamicObject(entityName);
|
||||||
newAcctInfo.set("accounttable", tableinfo);//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"));
|
||||||
newAcctInfo.set("fullname", olddo.getString("fullname"));
|
newAcctInfo.set("fullname", olddo.getString("fullname"));
|
||||||
newAcctInfo.set("createorg", hsorgInfo.getLong("id"));//创建组织
|
newAcctInfo.set("createorg", hsorgInfo);//创建组织
|
||||||
newAcctInfo.set("org", hsorgInfo.getLong("id"));//管理组织
|
newAcctInfo.set("org", hsorgInfo);//管理组织
|
||||||
//科目类型
|
//科目类型
|
||||||
newAcctInfo.set("accounttype", olddo.getDynamicObject("accounttype"));
|
newAcctInfo.set("accounttype", olddo.getDynamicObject("accounttype"));
|
||||||
//币别核算--外币核算类型
|
//币别核算--外币核算类型
|
||||||
|
|
@ -449,7 +451,7 @@ public class AspAccountControler {
|
||||||
return baseMaps;
|
return baseMaps;
|
||||||
}
|
}
|
||||||
|
|
||||||
private DynamicObject getParentAcct(String number,String name,String acctType,DynamicObject acctTypeInfo,DynamicObject tableinfo){
|
private DynamicObject getParentAcct(String number,String name,String acctType,DynamicObject acctTypeInfo){
|
||||||
//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,
|
||||||
|
|
@ -469,8 +471,8 @@ public class AspAccountControler {
|
||||||
acctInfo.set("longnumber", parentnumber);
|
acctInfo.set("longnumber", parentnumber);
|
||||||
acctInfo.set("fullname", parentname);
|
acctInfo.set("fullname", parentname);
|
||||||
//创建组织
|
//创建组织
|
||||||
acctInfo.set("createorg", JhzjUtils.GROUPID);//创建组织
|
acctInfo.set("createorg", grouporginfo);//创建组织
|
||||||
acctInfo.set("org", JhzjUtils.GROUPID);//管理组织
|
acctInfo.set("org", grouporginfo);//管理组织
|
||||||
//科目类型
|
//科目类型
|
||||||
acctInfo.set("accounttype", acctTypeInfo);
|
acctInfo.set("accounttype", acctTypeInfo);
|
||||||
//币别核算--外币核算类型--集团科目新增时默认为allcurrency
|
//币别核算--外币核算类型--集团科目新增时默认为allcurrency
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue