组织禁用,项目增加日志保存

This commit is contained in:
yuxueliang0813 2025-04-12 22:16:17 +08:00
parent 6bd349cc42
commit b6bd171de6
2 changed files with 38 additions and 4 deletions

View File

@ -12,9 +12,12 @@ import kd.bos.logging.Log;
import kd.bos.logging.LogFactory; import kd.bos.logging.LogFactory;
import kd.bos.org.model.OrgDutyView; import kd.bos.org.model.OrgDutyView;
import kd.bos.org.model.OrgParam; import kd.bos.org.model.OrgParam;
import kd.bos.orm.query.QCP;
import kd.bos.orm.query.QFilter; import kd.bos.orm.query.QFilter;
import kd.bos.schedule.executor.AbstractTask; import kd.bos.schedule.executor.AbstractTask;
import kd.bos.servicehelper.BusinessDataServiceHelper;
import kd.bos.servicehelper.QueryServiceHelper; import kd.bos.servicehelper.QueryServiceHelper;
import kd.bos.servicehelper.operation.SaveServiceHelper;
import kd.bos.servicehelper.org.OrgUnitServiceHelper; import kd.bos.servicehelper.org.OrgUnitServiceHelper;
import kd.bos.servicehelper.org.OrgViewType; import kd.bos.servicehelper.org.OrgViewType;
import kd.sdk.plugin.Plugin; import kd.sdk.plugin.Plugin;
@ -62,8 +65,13 @@ public class DobeDWorgTask extends AbstractTask implements Plugin {
JSONObject json_body = JSON.parseObject(resultData); JSONObject json_body = JSON.parseObject(resultData);
//接口返回的数据进行了分页 //接口返回的数据进行了分页
int totalNum = json_body.getIntValue("totalNum");//分页-SQL查询总数据量 int totalNum = json_body.getIntValue("totalNum");//分页-SQL查询总数据量
List<String> exprtNumber = new ArrayList<>();//存储此次入参的所有编号用于后续排除
//解析接口返回值与系统数据比较 //解析接口返回值与系统数据比较
handleOrg(json_body); handleOrg(json_body,exprtNumber);
//定时任务获取的参数和参数值是配置调度程序和作业的时候设置根据参数值保存从数仓获取到的完整json
if(map != null && "yes".equals(map.get("savedwjson"))){
DobeDWUtils.saveLog("savedwjson1","组织接口",resultData,null,true,"定时任务");
}
int queryCount = DobeDWUtils.getQueryCount(totalNum); int queryCount = DobeDWUtils.getQueryCount(totalNum);
if(queryCount > 1){ if(queryCount > 1){
//查询次数不止一次需要分页查询 //查询次数不止一次需要分页查询
@ -82,7 +90,26 @@ public class DobeDWorgTask extends AbstractTask implements Plugin {
throw new RuntimeException(e); throw new RuntimeException(e);
} }
json_body = JSON.parseObject(resultData); json_body = JSON.parseObject(resultData);
handleOrg(json_body); handleOrg(json_body,exprtNumber);
if(map != null && "yes".equals(map.get("savedwjson"))){
DobeDWUtils.saveLog("savedwjson"+i,"组织接口",resultData,null,true,"定时任务");
}
}
}
//处理组织禁用
QFilter exprtFilter = new QFilter("number", QCP.not_in, exprtNumber);
QFilter enableFilter = new QFilter("enable", QCP.equals, "1");
DynamicObject[] dos = BusinessDataServiceHelper.load(entityName,"id,number,fyzjorgid,enable",new QFilter[]{exprtFilter.and(enableFilter)});
if(dos.length > 0){
String yzjorgid;
for (DynamicObject doinfo : dos) {
yzjorgid = doinfo.getString("fyzjorgid");//保存数仓组织ID不为空且剔除根节点的组织需要禁用
if(!DobeDWUtils.isEmpty(yzjorgid) && !"900110458".equals(yzjorgid)){
doinfo.set("enable", "0");//组织禁用
//保存数据直接保存入库不走操作校验
SaveServiceHelper.save(new DynamicObject[]{doinfo});
log.info("组织禁用 "+doinfo.getString("number"));
}
} }
} }
} }
@ -101,7 +128,7 @@ public class DobeDWorgTask extends AbstractTask implements Plugin {
return false; return false;
} }
private void handleOrg(JSONObject json_body) { private void handleOrg(JSONObject json_body,List<String> exprtNumber) {
JSONArray detailsJson = json_body.getJSONArray("data"); JSONArray detailsJson = json_body.getJSONArray("data");
// List<OrgParam> paramList = new ArrayList<>(); // List<OrgParam> paramList = new ArrayList<>();
OrgParam param = null; OrgParam param = null;
@ -130,6 +157,7 @@ public class DobeDWorgTask extends AbstractTask implements Plugin {
log.info(String.format("组织入参为空异常:%s", json_body.toJSONString())); log.info(String.format("组织入参为空异常:%s", json_body.toJSONString()));
continue; continue;
} }
exprtNumber.add(orgNumber);
//根据父级ID获取父级组织对象,组织的主数据id存在于星瀚组织的fyzjorgid字段中 //根据父级ID获取父级组织对象,组织的主数据id存在于星瀚组织的fyzjorgid字段中
parentOrg = QueryServiceHelper.queryOne(entityName,"id,number,name",new QFilter[]{new QFilter("fyzjorgid","=",parentId)}); parentOrg = QueryServiceHelper.queryOne(entityName,"id,number,name",new QFilter[]{new QFilter("fyzjorgid","=",parentId)});
if(parentOrg == null){ if(parentOrg == null){

View File

@ -63,6 +63,10 @@ public class DobeDWprojectTask extends AbstractTask implements Plugin {
//接口返回的数据进行了分页 //接口返回的数据进行了分页
int totalNum = json_body.getIntValue("totalNum");//分页-SQL查询总数据量 int totalNum = json_body.getIntValue("totalNum");//分页-SQL查询总数据量
handleProject(json_body); handleProject(json_body);
//定时任务获取的参数和参数值是配置调度程序和作业的时候设置根据参数值保存从数仓获取到的完整json
if(map != null && "yes".equals(map.get("savedwjson"))){
DobeDWUtils.saveLog("savedwjson1","项目接口",resultData,null,true,"定时任务");
}
int queryCount = DobeDWUtils.getQueryCount(totalNum); int queryCount = DobeDWUtils.getQueryCount(totalNum);
if(queryCount > 1){ if(queryCount > 1){
//查询次数不止一次需要分页查询 //查询次数不止一次需要分页查询
@ -81,9 +85,11 @@ public class DobeDWprojectTask extends AbstractTask implements Plugin {
} }
json_body = JSON.parseObject(resultData); json_body = JSON.parseObject(resultData);
handleProject(json_body); handleProject(json_body);
if(map != null && "yes".equals(map.get("savedwjson"))){
DobeDWUtils.saveLog("savedwjson"+i,"项目接口",resultData,null,true,"定时任务");
}
} }
} }
} }
private void handleProject(JSONObject json_body) { private void handleProject(JSONObject json_body) {