数仓成本科目同步接口2.0
This commit is contained in:
parent
d181caf69a
commit
c1f8d27004
|
@ -27,10 +27,7 @@ import okhttp3.Response;
|
||||||
import shkd.utils.DobeDWUtils;
|
import shkd.utils.DobeDWUtils;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.ArrayList;
|
import java.util.*;
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 后台任务插件
|
* 后台任务插件
|
||||||
|
@ -113,6 +110,7 @@ public class DobeDWaccountTask extends AbstractTask implements Plugin {
|
||||||
List<JSONObject> toAddList = new ArrayList<>();
|
List<JSONObject> toAddList = new ArrayList<>();
|
||||||
int updateCount = 0; // 记录更新条数
|
int updateCount = 0; // 记录更新条数
|
||||||
int addCount = 0; // 记录新增条数
|
int addCount = 0; // 记录新增条数
|
||||||
|
Set<String> processedCodes = new HashSet<>(); // 记录已处理的编码
|
||||||
|
|
||||||
for (int i = 0; i < detailsJson.size(); i++) {
|
for (int i = 0; i < detailsJson.size(); i++) {
|
||||||
JSONObject jsonObject = detailsJson.getJSONObject(i);
|
JSONObject jsonObject = detailsJson.getJSONObject(i);
|
||||||
|
@ -120,6 +118,13 @@ public class DobeDWaccountTask extends AbstractTask implements Plugin {
|
||||||
|
|
||||||
if ("启用".equals(status)) {
|
if ("启用".equals(status)) {
|
||||||
String code = jsonObject.getString("costsubject_code");
|
String code = jsonObject.getString("costsubject_code");
|
||||||
|
// 如果已经处理过这个编码,则跳过
|
||||||
|
if (processedCodes.contains(code)) {
|
||||||
|
logger.info("跳过重复编码: {}", code);
|
||||||
|
System.out.println("[MyLog]跳过重复编码: " + code);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
processedCodes.add(code); // 标记为已处理
|
||||||
if (code != null) {
|
if (code != null) {
|
||||||
boolean found = false;
|
boolean found = false;
|
||||||
|
|
||||||
|
@ -144,31 +149,35 @@ public class DobeDWaccountTask extends AbstractTask implements Plugin {
|
||||||
System.out.println("[MyLog]更新科目: " + jsonName + ", 编码: " + code);
|
System.out.println("[MyLog]更新科目: " + jsonName + ", 编码: " + code);
|
||||||
logger.info("更新科目名称: {}, 编码: {}", jsonName, code);
|
logger.info("更新科目名称: {}, 编码: {}", jsonName, code);
|
||||||
}
|
}
|
||||||
|
int caentryLevel = dynamicObject.getInt("caentry_level");
|
||||||
|
if (caentryLevel!=3){
|
||||||
|
continue;
|
||||||
|
}
|
||||||
//会计科目
|
//会计科目
|
||||||
String accSubjectCode = jsonObject.getString("accsubject_code");
|
String accSubjectCode = jsonObject.getString("accsubject_code");
|
||||||
if (accSubjectCode!=null){
|
if (accSubjectCode!=null){
|
||||||
DynamicObject sysAccount = dynamicObject.getDynamicObject("caentry_account");
|
DynamicObject sysAccount = dynamicObject.getDynamicObject("caentry_account");
|
||||||
if (sysAccount==null){
|
if (sysAccount==null){
|
||||||
//直接匹配会计科目赋值id
|
//直接匹配会计科目赋值id
|
||||||
Long accountId=this.getSysAccountId(accSubjectCode);
|
DynamicObject accountId=this.getSysAccountId(accSubjectCode);
|
||||||
if (accountId!=null){
|
|
||||||
dynamicObject.set("caentry_account",accountId);
|
|
||||||
logger.info("成功关联会计科目,科目编码: {}, 会计科目ID: {}", code, accountId);
|
|
||||||
System.out.println("[MyLog]关联会计科目: " + code + " -> " + accountId);
|
|
||||||
}
|
|
||||||
}else {
|
|
||||||
//编码匹配是否改变
|
|
||||||
String number = sysAccount.getString("number");
|
|
||||||
if (!accSubjectCode.equals(number)){
|
|
||||||
//匹配会计科目赋值id
|
|
||||||
Long accountId=this.getSysAccountId(accSubjectCode);
|
|
||||||
if (accountId!=null){
|
if (accountId!=null){
|
||||||
dynamicObject.set("caentry_account",accountId);
|
dynamicObject.set("caentry_account",accountId);
|
||||||
logger.info("更新会计科目关联成功,科目编码: {}, 新会计科目ID: {}", code, accountId);
|
logger.info("成功关联会计科目,科目编码: {}, 会计科目ID: {}", code, accountId);
|
||||||
System.out.println("[MyLog]更新会计科目关联: " + code + " -> " + accountId);
|
System.out.println("[MyLog]关联会计科目: " + code + " -> " + accountId);
|
||||||
|
}
|
||||||
|
}else {
|
||||||
|
//编码匹配是否改变
|
||||||
|
String number = sysAccount.getString("number");
|
||||||
|
if (!accSubjectCode.equals(number)){
|
||||||
|
//匹配会计科目赋值id
|
||||||
|
DynamicObject accountId=this.getSysAccountId(accSubjectCode);
|
||||||
|
if (accountId!=null){
|
||||||
|
dynamicObject.set("caentry_account",accountId);
|
||||||
|
logger.info("更新会计科目关联成功,科目编码: {}, 新会计科目ID: {}", code, accountId);
|
||||||
|
System.out.println("[MyLog]更新会计科目关联: " + code + " -> " + accountId);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
break; // 找到匹配项后跳出循环
|
break; // 找到匹配项后跳出循环
|
||||||
}
|
}
|
||||||
|
@ -201,14 +210,10 @@ public class DobeDWaccountTask extends AbstractTask implements Plugin {
|
||||||
* @param accSubjectCode
|
* @param accSubjectCode
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
private Long getSysAccountId(String accSubjectCode) {
|
private DynamicObject getSysAccountId(String accSubjectCode) {
|
||||||
Long pkValue = null;
|
|
||||||
QFilter number = new QFilter("number", QCP.equals, accSubjectCode);
|
QFilter number = new QFilter("number", QCP.equals, accSubjectCode);
|
||||||
DynamicObject dynamicObject = BusinessDataServiceHelper.loadSingle("bd_accountview", number.toArray());
|
|
||||||
if (dynamicObject!=null){
|
return BusinessDataServiceHelper.loadSingle("bd_accountview", number.toArray());
|
||||||
pkValue= (Long) dynamicObject.getPkValue();
|
|
||||||
}
|
|
||||||
return pkValue;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -360,7 +365,7 @@ public class DobeDWaccountTask extends AbstractTask implements Plugin {
|
||||||
// 3. 会计科目
|
// 3. 会计科目
|
||||||
String accSubjectCode = jsonObject.getString("accsubject_code");
|
String accSubjectCode = jsonObject.getString("accsubject_code");
|
||||||
if (jsonObject.getString("accsubject_code") != null) {
|
if (jsonObject.getString("accsubject_code") != null) {
|
||||||
Long accountId=this.getSysAccountId(accSubjectCode);
|
DynamicObject accountId=this.getSysAccountId(accSubjectCode);
|
||||||
if (accountId!=null){
|
if (accountId!=null){
|
||||||
dynamicObject.set("caentry_account",accountId);
|
dynamicObject.set("caentry_account",accountId);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue