From b6bd171de618c4391aa8280c09891cd14c4f9510 Mon Sep 17 00:00:00 2001 From: yuxueliang0813 <407010292@qq.com> Date: Sat, 12 Apr 2025 22:16:17 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=84=E7=BB=87=E7=A6=81=E7=94=A8=EF=BC=8C?= =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E5=A2=9E=E5=8A=A0=E6=97=A5=E5=BF=97=E4=BF=9D?= =?UTF-8?q?=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../shkd/bamp/base/task/DobeDWorgTask.java | 34 +++++++++++++++++-- .../shkd/repc/task/DobeDWprojectTask.java | 8 ++++- 2 files changed, 38 insertions(+), 4 deletions(-) diff --git a/main/java/shkd/bamp/base/task/DobeDWorgTask.java b/main/java/shkd/bamp/base/task/DobeDWorgTask.java index e5b2ec5..af0b23f 100644 --- a/main/java/shkd/bamp/base/task/DobeDWorgTask.java +++ b/main/java/shkd/bamp/base/task/DobeDWorgTask.java @@ -12,9 +12,12 @@ import kd.bos.logging.Log; import kd.bos.logging.LogFactory; import kd.bos.org.model.OrgDutyView; import kd.bos.org.model.OrgParam; +import kd.bos.orm.query.QCP; import kd.bos.orm.query.QFilter; import kd.bos.schedule.executor.AbstractTask; +import kd.bos.servicehelper.BusinessDataServiceHelper; import kd.bos.servicehelper.QueryServiceHelper; +import kd.bos.servicehelper.operation.SaveServiceHelper; import kd.bos.servicehelper.org.OrgUnitServiceHelper; import kd.bos.servicehelper.org.OrgViewType; import kd.sdk.plugin.Plugin; @@ -62,8 +65,13 @@ public class DobeDWorgTask extends AbstractTask implements Plugin { JSONObject json_body = JSON.parseObject(resultData); //接口返回的数据进行了分页 int totalNum = json_body.getIntValue("totalNum");//分页-SQL查询总数据量 + List 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); if(queryCount > 1){ //查询次数不止一次,需要分页查询 @@ -82,7 +90,26 @@ public class DobeDWorgTask extends AbstractTask implements Plugin { throw new RuntimeException(e); } 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; } - private void handleOrg(JSONObject json_body) { + private void handleOrg(JSONObject json_body,List exprtNumber) { JSONArray detailsJson = json_body.getJSONArray("data"); // List paramList = new ArrayList<>(); OrgParam param = null; @@ -130,6 +157,7 @@ public class DobeDWorgTask extends AbstractTask implements Plugin { log.info(String.format("组织入参为空异常:%s", json_body.toJSONString())); continue; } + exprtNumber.add(orgNumber); //根据父级ID获取父级组织对象,组织的主数据id存在于星瀚组织的fyzjorgid字段中 parentOrg = QueryServiceHelper.queryOne(entityName,"id,number,name",new QFilter[]{new QFilter("fyzjorgid","=",parentId)}); if(parentOrg == null){ diff --git a/main/java/shkd/repc/task/DobeDWprojectTask.java b/main/java/shkd/repc/task/DobeDWprojectTask.java index 4966457..4449bab 100644 --- a/main/java/shkd/repc/task/DobeDWprojectTask.java +++ b/main/java/shkd/repc/task/DobeDWprojectTask.java @@ -63,6 +63,10 @@ public class DobeDWprojectTask extends AbstractTask implements Plugin { //接口返回的数据进行了分页 int totalNum = json_body.getIntValue("totalNum");//分页-SQL查询总数据量 handleProject(json_body); + //定时任务获取的参数和参数值是配置调度程序和作业的时候设置,根据参数值保存从数仓获取到的完整json + if(map != null && "yes".equals(map.get("savedwjson"))){ + DobeDWUtils.saveLog("savedwjson1","项目接口",resultData,null,true,"定时任务"); + } int queryCount = DobeDWUtils.getQueryCount(totalNum); if(queryCount > 1){ //查询次数不止一次,需要分页查询 @@ -81,9 +85,11 @@ public class DobeDWprojectTask extends AbstractTask implements Plugin { } json_body = JSON.parseObject(resultData); handleProject(json_body); + if(map != null && "yes".equals(map.get("savedwjson"))){ + DobeDWUtils.saveLog("savedwjson"+i,"项目接口",resultData,null,true,"定时任务"); + } } } - } private void handleProject(JSONObject json_body) {