diff --git a/src/main/java/com/budwk/app/sys/models/Sys_user.java b/src/main/java/com/budwk/app/sys/models/Sys_user.java index abe39e7b..4302b913 100644 --- a/src/main/java/com/budwk/app/sys/models/Sys_user.java +++ b/src/main/java/com/budwk/app/sys/models/Sys_user.java @@ -49,7 +49,7 @@ public class Sys_user extends BaseModel implements Serializable { @Column @Comment("性别") @ColDefine(type = ColType.VARCHAR, width = 10) - @DataCenterColumn(name = "姓别", key = "XBM", dict = "USER_SEX") + @DataCenterColumn(name = "性别", key = "XB", dict = "USER_SEX") private String sex; @Column diff --git a/src/main/java/com/budwk/app/sys/services/impl/SysDataUserPullServiceImpl.java b/src/main/java/com/budwk/app/sys/services/impl/SysDataUserPullServiceImpl.java index 660e15c3..e91cf323 100644 --- a/src/main/java/com/budwk/app/sys/services/impl/SysDataUserPullServiceImpl.java +++ b/src/main/java/com/budwk/app/sys/services/impl/SysDataUserPullServiceImpl.java @@ -21,6 +21,7 @@ import com.budwk.app.sys.annotation.DataCenterColumn; import com.budwk.app.sys.enums.Api2FinanceFiledMap; import com.budwk.app.sys.models.Sys_data_dict; import com.budwk.app.sys.models.Sys_dict; +import com.budwk.app.sys.models.Sys_unit; import com.budwk.app.sys.models.Sys_user; import com.budwk.app.sys.models.Sys_user_source; import com.budwk.app.sys.services.SysDataUnitPullService; @@ -170,6 +171,9 @@ public class SysDataUserPullServiceImpl extends BaseServiceImpl } } + sysUser.setUnitName(raw.getStr("SZDW")); + sysUser.setUnitId(resolveSourceUnitId(raw.getStr("SZDWH"))); + // 设置拉取时间 sysUser.setPullTime(nowDate); @@ -315,6 +319,22 @@ public class SysDataUserPullServiceImpl extends BaseServiceImpl return new ArrayList<>(userMap.values()); } + /** + * 根据接口返回的所在单位号转换数据源用户单位。 + * 入参 rawUnitId 对应人员接口 SZDWH:5位表示三级单位,需要写入其二级父单位;其他长度保持接口原值。 + * 返回值为 sys_user_source.unitId 使用的单位ID,找不到三级单位或父级为空时保留接口原始单位号,避免人员数据丢失。 + */ + private String resolveSourceUnitId(String rawUnitId) { + if (StrUtil.isBlank(rawUnitId) || rawUnitId.length() != 5) { + return rawUnitId; + } + Sys_unit unit = dao().fetch(Sys_unit.class, rawUnitId); + if (unit == null || StrUtil.isBlank(unit.getParentId())) { + return rawUnitId; + } + return unit.getParentId(); + } + @Async private void updateDict(List userSources) { //判断是否要更新在职状态字典