From 417d8ff9e101d8fdeacaba8e12e9af1c62982195 Mon Sep 17 00:00:00 2001 From: b2894lxlx <517289602@qq.com> Date: Wed, 21 Oct 2026 13:57:32 +0800 Subject: [PATCH] =?UTF-8?q?:bug:=20OA=E9=83=A8=E9=97=A8=E5=90=8C=E6=AD=A5?= =?UTF-8?q?=E5=90=8D=E7=A7=B0=E6=94=B9=E7=94=A8departmentmark=EF=BC=8C?= =?UTF-8?q?=E5=90=8D=E7=A7=B0=E4=B8=8D=E4=B8=80=E8=87=B4=E6=97=B6=E5=BC=BA?= =?UTF-8?q?=E5=88=B6=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Cursor --- .../springblade/system/convert/DeptConvert.java | 4 ++-- .../system/service/impl/OASyncServiceImpl.java | 17 +++++++++++++---- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/convert/DeptConvert.java b/blade-service/blade-system/src/main/java/org/springblade/system/convert/DeptConvert.java index ba5bdf43..dc045868 100644 --- a/blade-service/blade-system/src/main/java/org/springblade/system/convert/DeptConvert.java +++ b/blade-service/blade-system/src/main/java/org/springblade/system/convert/DeptConvert.java @@ -49,8 +49,8 @@ public interface DeptConvert { @Mapping(source = "modified", target = "oaModified") Dept baseConvert(OACompanyResponse company); - @Mapping(source = "departmentname", target = "deptName") - @Mapping(source = "departmentmark", target = "fullName") + @Mapping(source = "departmentmark", target = "deptName") + @Mapping(source = "departmentname", target = "fullName") @Mapping(source = "supdepid", target = "parentCode") @Mapping(source = "subcompanyid1", target = "belongCompanyCode") @Mapping(source = "created", target = "createTime", dateFormat = "yyyy-MM-dd HH:mm:ss") diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/OASyncServiceImpl.java b/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/OASyncServiceImpl.java index e133b6c5..90588373 100644 --- a/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/OASyncServiceImpl.java +++ b/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/OASyncServiceImpl.java @@ -761,7 +761,7 @@ public class OASyncServiceImpl implements IOASyncService { .filter(oaDept -> syncAll || rootCompanyId == null || !rootCompanyId.equals(oaDept.getSubcompanyid1()) - || (OAConstant.ROOT_COMPANY_ID.equals(oaDept.getSupdepid()) && rootCompanyDeptNames.contains(oaDept.getDepartmentname()))) + || (OAConstant.ROOT_COMPANY_ID.equals(oaDept.getSupdepid()) && rootCompanyDeptNames.contains(oaDept.getDepartmentmark()))) .map(dept -> deptConvert.dept2dept(dept, companyByOaId)) .toList(); int filteredSkipCount = oaDepts.size() - allParam.size(); @@ -921,8 +921,9 @@ public class OASyncServiceImpl implements IOASyncService { .eq(Dept::getDeptCategory, deptCategory.getCode()) .isNotNull(Dept::getOaId) .ne(Dept::getOaId, "") - .select(Dept::getId, Dept::getDeptCode, Dept::getOaModified, Dept::getParentId, - Dept::getOaId, Dept::getBelongCompanyCode, Dept::getParentCode, Dept::getOaSupSubComId)); + .select(Dept::getId, Dept::getDeptCode, Dept::getDeptName, Dept::getFullName, + Dept::getOaModified, Dept::getParentId, Dept::getOaId, Dept::getBelongCompanyCode, + Dept::getParentCode, Dept::getOaSupSubComId)); Map byOaId = new HashMap<>(); for (Dept dept : deptList) { if (StringUtils.isNotBlank(dept.getOaId())) { @@ -1047,7 +1048,7 @@ public class OASyncServiceImpl implements IOASyncService { /** * oaModified 一致则跳过更新;任一侧为空无法确认一致,执行更新以补齐字段。 - * 组织编码已按新规则重算、或父子挂载与库中不一致时,即使 modified 相同也要更新。 + * 组织编码已按新规则重算、父子挂载不一致、或名称字段与当前映射不一致时,即使 modified 相同也要更新。 */ private boolean shouldSkipOaUpdate(Dept existing, Dept incoming) { if (existing == null) { @@ -1066,6 +1067,14 @@ public class OASyncServiceImpl implements IOASyncService { StringUtils.trimToEmpty(incoming.getParentCode()))) { return false; } + if (incoming != null && !StringUtils.equals(StringUtils.trimToEmpty(existing.getDeptName()), + StringUtils.trimToEmpty(incoming.getDeptName()))) { + return false; + } + if (incoming != null && !StringUtils.equals(StringUtils.trimToEmpty(existing.getFullName()), + StringUtils.trimToEmpty(incoming.getFullName()))) { + return false; + } String localModified = StringUtils.trimToEmpty(existing.getOaModified()); String remoteModified = StringUtils.trimToEmpty(incoming == null ? null : incoming.getOaModified()); if (localModified.isEmpty() || remoteModified.isEmpty()) {