科目初始化-科目维度
This commit is contained in:
parent
afd416e4b5
commit
984942b5ae
|
|
@ -48,20 +48,23 @@ public class InitAccountFormPlugin extends AbstractFormPlugin {
|
||||||
//处理导入的excel数据 注意 excel中的列名必须与分录的列标识一致,否则无法识别到excel中的数据
|
//处理导入的excel数据 注意 excel中的列名必须与分录的列标识一致,否则无法识别到excel中的数据
|
||||||
HashMap itemEntry = (HashMap) e.getSource();//excel表格全量数据
|
HashMap itemEntry = (HashMap) e.getSource();//excel表格全量数据
|
||||||
ArrayList list = (ArrayList) itemEntry.get("shjh_details");//excel表格的某个页签-科目基本信息
|
ArrayList list = (ArrayList) itemEntry.get("shjh_details");//excel表格的某个页签-科目基本信息
|
||||||
Iterator iterator = list.iterator();//遍历页签
|
Iterator iterator;//遍历页签
|
||||||
ImportEntryData importData;
|
ImportEntryData importData;
|
||||||
JSONObject rowdata;
|
JSONObject rowdata;
|
||||||
String number;//科目编号
|
|
||||||
String name;//科目名称
|
|
||||||
String acctType;//科目类型 资产负债类 损益类
|
|
||||||
DynamicObject acctInfo;
|
|
||||||
DynamicObject acctTypeInfo;
|
|
||||||
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<>();//将科目编号与对象关联
|
||||||
|
StringBuilder resultstr = new StringBuilder();
|
||||||
|
DynamicObject acctInfo;//科目对象
|
||||||
|
String number;//科目编号
|
||||||
|
if(list != null){
|
||||||
|
log.info("科目导入shjh_details"+list.size());
|
||||||
|
iterator = list.iterator();//遍历页签
|
||||||
|
String name;//科目名称
|
||||||
|
String acctType;//科目类型 资产负债类 损益类
|
||||||
|
DynamicObject acctTypeInfo;
|
||||||
//先根据基础信息在集团层面生成科目,不考虑核算维度,使用逐级分配
|
//先根据基础信息在集团层面生成科目,不考虑核算维度,使用逐级分配
|
||||||
//再根据公司信息进行科目分配
|
//再根据公司信息进行科目分配
|
||||||
//最后处理每个公司下科目的核算维度和禁用状态
|
//最后处理每个公司下科目的核算维度和禁用状态
|
||||||
StringBuilder resultstr = new StringBuilder();
|
|
||||||
while (iterator.hasNext()) {
|
while (iterator.hasNext()) {
|
||||||
importData = (ImportEntryData) iterator.next();
|
importData = (ImportEntryData) iterator.next();
|
||||||
rowdata = importData.getData();//具体的某行数据,key值为列名
|
rowdata = importData.getData();//具体的某行数据,key值为列名
|
||||||
|
|
@ -75,7 +78,7 @@ public class InitAccountFormPlugin extends AbstractFormPlugin {
|
||||||
acctTypeInfo = BusinessDataServiceHelper.loadSingleFromCache(acctTypeName,new QFilter[]{
|
acctTypeInfo = BusinessDataServiceHelper.loadSingleFromCache(acctTypeName,new QFilter[]{
|
||||||
new QFilter("number","=",acctType)});
|
new QFilter("number","=",acctType)});
|
||||||
if(acctTypeInfo == null){
|
if(acctTypeInfo == null){
|
||||||
log.error(String.format("科目类型在金蝶中找不到:%s", acctType));
|
log.error(String.format("科目导入科目类型在金蝶中找不到:%s", acctType));
|
||||||
resultstr.append(number);
|
resultstr.append(number);
|
||||||
resultstr.append("科目类型在金蝶中找不到");
|
resultstr.append("科目类型在金蝶中找不到");
|
||||||
continue;
|
continue;
|
||||||
|
|
@ -128,7 +131,13 @@ public class InitAccountFormPlugin extends AbstractFormPlugin {
|
||||||
acctids.put(number,acctInfo.getLong("id"));
|
acctids.put(number,acctInfo.getLong("id"));
|
||||||
accountMaps.put(number,acctInfo);
|
accountMaps.put(number,acctInfo);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
list = (ArrayList) itemEntry.get("shjh_companys");//excel表格的某个页签-科目公司信息
|
list = (ArrayList) itemEntry.get("shjh_companys");//excel表格的某个页签-科目公司信息
|
||||||
|
//处理科目在每个公司生成
|
||||||
|
Map<String, DynamicObject> companyAcctMaps = null;
|
||||||
|
if(list != null){
|
||||||
|
log.info("科目导入shjh_companys"+list.size());
|
||||||
iterator = list.iterator();//遍历页签
|
iterator = list.iterator();//遍历页签
|
||||||
JSONArray companysJson = new JSONArray();
|
JSONArray companysJson = new JSONArray();
|
||||||
while (iterator.hasNext()) {
|
while (iterator.hasNext()) {
|
||||||
|
|
@ -137,11 +146,24 @@ public class InitAccountFormPlugin extends AbstractFormPlugin {
|
||||||
companysJson.add(rowdata);
|
companysJson.add(rowdata);
|
||||||
}
|
}
|
||||||
//处理科目在每个公司生成
|
//处理科目在每个公司生成
|
||||||
Map<String, DynamicObject> companyAcctMaps = handleAccountCompany(accountMaps,companysJson);
|
companyAcctMaps = handleAccountCompany(accountMaps,companysJson);
|
||||||
//处理科目分配
|
//处理科目分配
|
||||||
EsbUtils.handleAssignInit(companysJson, acctids, entityName);
|
EsbUtils.handleAssignInit(companysJson, acctids, entityName);
|
||||||
|
}
|
||||||
|
if(companyAcctMaps == null){
|
||||||
|
companyAcctMaps = new HashMap<>();
|
||||||
|
//本次只导入核算维度数据 companyAcctMaps 手动获取一次各个分公司的科目数据
|
||||||
|
DynamicObject[] accts = BusinessDataServiceHelper.load(entityName,"id",new QFilter[]{new QFilter("accounttable.id","=",EsbUtils.ACCTABLE),
|
||||||
|
new QFilter("createorg.id","<>", JhzjUtils.GROUPID)});
|
||||||
|
for (DynamicObject acct : accts){
|
||||||
|
acct = BusinessDataServiceHelper.loadSingle(acct.getPkValue(),entityName);
|
||||||
|
companyAcctMaps.put(acct.getString("number")+acct.getDynamicObject("createorg").getString("number"),
|
||||||
|
acct);
|
||||||
|
}
|
||||||
|
}
|
||||||
//处理每个公司下科目的核算维度和禁用状态
|
//处理每个公司下科目的核算维度和禁用状态
|
||||||
list = (ArrayList) itemEntry.get("shjh_hswds");//excel表格的某个页签-科目核算维度信息
|
list = (ArrayList) itemEntry.get("shjh_hswds");//excel表格的某个页签-科目核算维度信息
|
||||||
|
log.info("科目导入shjh_hswds"+list.size());
|
||||||
iterator = list.iterator();//遍历页签
|
iterator = list.iterator();//遍历页签
|
||||||
JSONArray asstacttypesJson = new JSONArray();
|
JSONArray asstacttypesJson = new JSONArray();
|
||||||
while (iterator.hasNext()) {
|
while (iterator.hasNext()) {
|
||||||
|
|
@ -161,7 +183,7 @@ public class InitAccountFormPlugin extends AbstractFormPlugin {
|
||||||
hsxm = json_body.getString("shjh_asstactname");
|
hsxm = json_body.getString("shjh_asstactname");
|
||||||
number = json_body.getString("shjh_hcode");
|
number = json_body.getString("shjh_hcode");
|
||||||
if(EsbUtils.isEmpty(hsxm)){
|
if(EsbUtils.isEmpty(hsxm)){
|
||||||
log.error(String.format("核算维度为空:%s", number));
|
log.error(String.format("科目导入核算维度为空:%s", number));
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
companynum = json_body.getString("shjh_companynums");
|
companynum = json_body.getString("shjh_companynums");
|
||||||
|
|
@ -172,7 +194,7 @@ public class InitAccountFormPlugin extends AbstractFormPlugin {
|
||||||
}
|
}
|
||||||
hsxmInfo = getHsxmInfo(hsxm);
|
hsxmInfo = getHsxmInfo(hsxm);
|
||||||
if(hsxmInfo == null){
|
if(hsxmInfo == null){
|
||||||
log.error(String.format("核算维度在金蝶中找不到:%s", hsxm));
|
log.error(String.format("科目导入核算维度在金蝶中找不到:%s", hsxm));
|
||||||
resultstr.append(number);
|
resultstr.append(number);
|
||||||
resultstr.append("核算维度在金蝶中找不到");
|
resultstr.append("核算维度在金蝶中找不到");
|
||||||
continue;
|
continue;
|
||||||
|
|
@ -203,9 +225,11 @@ public class InitAccountFormPlugin extends AbstractFormPlugin {
|
||||||
}
|
}
|
||||||
|
|
||||||
if(resultstr.length() > 0){
|
if(resultstr.length() > 0){
|
||||||
this.getView().showMessage("科目数据处理异常"+resultstr);;
|
this.getView().showMessage("科目导入数据处理异常"+resultstr);
|
||||||
|
log.info("科目导入数据处理异常"+resultstr);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
log.info("科目导入处理成功");
|
||||||
this.getView().showMessage("处理成功");
|
this.getView().showMessage("处理成功");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue