From bb0a5912d662fa73f70ec18a1e1e51d735ef7c91 Mon Sep 17 00:00:00 2001 From: zhangxiongfeng Date: Tue, 4 Aug 2026 14:13:09 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A4=A7=E5=8D=8E=E5=8F=A3=E9=97=A8=E5=AF=B9?= =?UTF-8?q?=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit (cherry picked from commit 65ad2b538e17143405490877880f2e62d3d596fb) --- web-app/pom.xml | 6 +- .../zcloud/basic/info/command/UserAddExe.java | 93 ++++++++-------- .../basic/info/command/UserRemoveExe.java | 75 +++++-------- .../basic/info/command/UserUpdateExe.java | 102 +++++++----------- .../info/persistence/mapper/UserMapper.java | 3 +- 5 files changed, 115 insertions(+), 164 deletions(-) diff --git a/web-app/pom.xml b/web-app/pom.xml index 2dab249b..d1df56b5 100644 --- a/web-app/pom.xml +++ b/web-app/pom.xml @@ -21,6 +21,10 @@ com.zcloud.basic.info web-infrastructure - + + com.zcloud.primeport + web-client + ${project.version} + diff --git a/web-app/src/main/java/com/zcloud/basic/info/command/UserAddExe.java b/web-app/src/main/java/com/zcloud/basic/info/command/UserAddExe.java index f63d5f1f..fb16133d 100644 --- a/web-app/src/main/java/com/zcloud/basic/info/command/UserAddExe.java +++ b/web-app/src/main/java/com/zcloud/basic/info/command/UserAddExe.java @@ -31,6 +31,8 @@ import com.zcloud.basic.info.domain.model.*; import com.zcloud.basic.info.dto.*; import com.zcloud.basic.info.persistence.dataobject.*; import com.zcloud.basic.info.persistence.repository.*; +import com.zcloud.gbscommon.dahua.cmd.DaHuaPersonSyncCmd; +import com.zcloud.gbscommon.dahua.facade.ZcloudDaHuaFacade; import com.zcloud.gbscommon.utils.*; import lombok.AllArgsConstructor; import lombok.Data; @@ -98,6 +100,8 @@ public class UserAddExe { private final UserExpandInfoRepository userExpandInfoRepository; private final ImgFilesRepository imgFilesRepository; private final DaHuaConfig daHuaConfig; + @DubboReference + private ZcloudDaHuaFacade zcloudDaHuaFacade; @Transactional(rollbackFor = Exception.class) public boolean execute(UserAddCmd cmd) { @@ -184,7 +188,6 @@ public class UserAddExe { userE.setUserType(CorpTypeEnum.getUserTypeByCode(corpInfoDO.getType())); userE.resetPassword(corpInfoDO.getType()); - // ① 先本地落库 + 底座GBS新增。GBS失败抛 RuntimeException,整个事务回滚 res = userGateway.add(userE); if (corpInfoDO != null && !ObjectUtils.isEmpty(corpInfoDO.getCorpName())) { corpName = corpInfoDO.getCorpName(); @@ -200,7 +203,6 @@ public class UserAddExe { } catch (Exception e) { log.error("用户变更记录保存失败(不影响用户主体), userId: {}, error: {}", userE.getId(), e.getMessage(), e); } - // ② 本地和底座都成功后,最后才同步大华。失败→抛异常→回滚本地+GBS(避免留下"大华人成功但本地没数据") DaHuaSyncResult syncResult = syncDaHuaPerson(userE); if (syncResult.dahuaId != null || (syncResult.dahuaCode != null && !syncResult.dahuaCode.trim().isEmpty())) { try { @@ -373,11 +375,11 @@ public class UserAddExe { log.error("同步大华人员失败:人脸图片base64主体长度过短({}),缩略图可能损坏", bodyLen); } - List> personBiosignatures = new ArrayList<>(); - Map biosignature = new java.util.LinkedHashMap<>(); - biosignature.put("type", 3); - biosignature.put("index", 1); - biosignature.put("base64Data", cleanBase64); + List personBiosignatures = new ArrayList<>(); + DaHuaPersonSyncCmd.PersonBiosignature biosignature = new DaHuaPersonSyncCmd.PersonBiosignature(); + biosignature.setType(3); + biosignature.setIndex(1); + biosignature.setBase64Data(cleanBase64); personBiosignatures.add(biosignature); personMap.put("personBiosignatures", personBiosignatures); } else { @@ -430,44 +432,35 @@ public class UserAddExe { } personMap.put("age", age); personMap.put("sex", sex); - Map extraHeaders = new HashMap<>(); - try { - ServletRequestAttributes attrs = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); - if (attrs != null) { - HttpServletRequest req = attrs.getRequest(); - String token = req.getHeader("token"); - String orgid = req.getHeader("orgid"); - String tenantId = req.getHeader("tenantId"); - if (token != null && !token.trim().isEmpty()) { - extraHeaders.put("token", token); - } - if (orgid != null && !orgid.trim().isEmpty()) { - extraHeaders.put("orgid", orgid); - } - if (tenantId != null && !tenantId.trim().isEmpty()) { - extraHeaders.put("tenantId", tenantId); - } - } - } catch (Exception e) { - log.warn("获取当前请求头异常: {}", e.getMessage()); - } - Map syncResult = daHuaConfig.syncPerson(personMap, extraHeaders); - Boolean success = (Boolean) syncResult.get("success"); - Boolean skipped = (Boolean) syncResult.get("skipped"); + DaHuaSyncResult result = new DaHuaSyncResult(); result.setDahuaCode(plainIdCard); - if (skipped != null && skipped) { + if (daHuaConfig.getDockFlag() == null || daHuaConfig.getDockFlag() != 1) { + log.info("大华对接未开启(dockFlag={}), 跳过同步人员到大华", daHuaConfig.getDockFlag()); + userE.setDahuaCode(plainIdCard); return result; } + + DaHuaPersonSyncCmd cmd = cn.hutool.core.bean.BeanUtil.toBean(personMap, DaHuaPersonSyncCmd.class); + Object biosObj = personMap.get("personBiosignatures"); + if (biosObj instanceof List) { + @SuppressWarnings("unchecked") + List bioList = (List) biosObj; + cmd.setPersonBiosignatures(bioList); + } + log.info("Dubbo调用primeport.zcloudDaHuaFacade.syncPerson, name={}, departmentId(corpId)={}", + cmd.getName(), cmd.getDepartmentId()); + SingleResponse syncResp = zcloudDaHuaFacade.syncPerson(cmd); String maskedIdCard = plainIdCard; if (plainIdCard != null && plainIdCard.length() >= 14) { maskedIdCard = plainIdCard.substring(0, 6) + "********" + plainIdCard.substring(plainIdCard.length() - 4); } result.setDahuaCode(plainIdCard); userE.setDahuaCode(plainIdCard); - if (success == null || !success) { - String errCode = (String) syncResult.getOrDefault("errCode", ""); - String errMessage = (String) syncResult.getOrDefault("errMessage", "大华人员同步失败"); + if (syncResp == null || !syncResp.isSuccess()) { + String errCode = syncResp == null ? "" : syncResp.getErrCode(); + String errMessage = syncResp == null ? "大华Dubbo返回为空" : syncResp.getErrMessage(); + if (errMessage == null || errMessage.trim().isEmpty()) errMessage = "大华人员同步失败"; if (throwOnFail) { throw new BizException("同步大华平台失败:" + errMessage); } else { @@ -476,7 +469,7 @@ public class UserAddExe { return result; } } - Object data = syncResult.get("data"); + Object data = syncResp.getData(); if (data != null) { if (data instanceof Map) { Map dataMap = (Map) data; @@ -996,28 +989,28 @@ public class UserAddExe { userExpandInfoRepository.updateByPhone(userE.getPhone(),userE.getFlowFlag()); } - // ========== 相关方用户同步大华(统一用 /person/sync;重复信息返回false直接跳过不影响本地)========== + // ========== 相关方用户同步大华(仅修改场景调大华,新增场景跳过)========== Long xgfUserId = addFlag ? userE.getId() : userDOUpdate.getId(); if (xgfUserId == null) { log.warn("相关方用户保存后未获取到userId,跳过大华同步及dahua信息写回, addFlag={}", addFlag); } else { - Object xgfAvatarSource = cmd.getUserImg(); - if (xgfAvatarSource == null) { - xgfAvatarSource = cmd.getUserAvatarUrl(); - } DaHuaSyncResult xgfSyncResult = null; - try { - xgfSyncResult = syncDaHuaPerson(userE, xgfAvatarSource, false); - } catch (Exception e) { - log.error("相关方用户同步大华异常(不影响本地保存,继续执行写回身份证号为dahuaCode), userId={}, addFlag={}, error={}", - xgfUserId, addFlag, e.getMessage(), e); + if (!addFlag) { + Object xgfAvatarSource = cmd.getUserImg(); + if (xgfAvatarSource == null) { + xgfAvatarSource = cmd.getUserAvatarUrl(); + } + try { + xgfSyncResult = syncDaHuaPerson(userE, xgfAvatarSource, false); + } catch (Exception e) { + log.error("相关方用户同步大华异常(不影响本地保存,继续执行写回身份证号为dahuaCode), userId={}, addFlag={}, error={}", + xgfUserId, addFlag, e.getMessage(), e); + } + } else { + log.info("相关方用户新增场景,跳过大华同步, userId={}", xgfUserId); } - // 无论大华同步成功/失败/返回false/抛异常,都尝试写回dahuaId/dahuaCode: - // dahuaId = 大华返回的id(成功时才有,失败/异常/重复时为null) - // dahuaCode = 前端传的身份证号(经过Base64解码的明文,syncDaHuaPerson里即使失败也已经set到result了) Integer xgfDahuaId = xgfSyncResult != null ? xgfSyncResult.dahuaId : null; String xgfDahuaCode = xgfSyncResult != null ? xgfSyncResult.dahuaCode : null; - // 如果xgfSyncResult异常或dahuaCode为空兜底:直接把userE.getUserIdCard()做一次Base64解码写入dahuaCode,保证100%写回 if ((xgfDahuaCode == null || xgfDahuaCode.trim().isEmpty()) && userE.getUserIdCard() != null && !userE.getUserIdCard().trim().isEmpty()) { String idCardRaw = userE.getUserIdCard().trim(); try { diff --git a/web-app/src/main/java/com/zcloud/basic/info/command/UserRemoveExe.java b/web-app/src/main/java/com/zcloud/basic/info/command/UserRemoveExe.java index bdde32bd..7d11b445 100644 --- a/web-app/src/main/java/com/zcloud/basic/info/command/UserRemoveExe.java +++ b/web-app/src/main/java/com/zcloud/basic/info/command/UserRemoveExe.java @@ -21,6 +21,8 @@ import com.zcloud.basic.info.persistence.repository.UserCorpRecordRepository; import com.zcloud.basic.info.persistence.repository.UserJobHandoverRepository; import com.zcloud.basic.info.persistence.repository.UserRepository; import com.zcloud.basic.info.domain.config.DaHuaConfig; +import com.zcloud.gbscommon.dahua.cmd.DaHuaPersonDeleteCmd; +import com.zcloud.gbscommon.dahua.facade.ZcloudDaHuaFacade; import com.zcloud.gbscommon.utils.ZcloudRedisUtil; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -28,10 +30,7 @@ import org.apache.dubbo.config.annotation.DubboReference; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; -import org.springframework.web.context.request.RequestContextHolder; -import org.springframework.web.context.request.ServletRequestAttributes; -import javax.servlet.http.HttpServletRequest; import java.util.*; import java.util.stream.Collectors; @@ -53,9 +52,11 @@ public class UserRemoveExe { @DubboReference(check = false) private UserFacade userFacade; // @Autowired - private ZcloudRedisUtil zcloudRedisUtil; + private final ZcloudRedisUtil zcloudRedisUtil; private final UserCorpRecordRepository userCorpRecordRepository; private final DaHuaConfig daHuaConfig; + @DubboReference + private ZcloudDaHuaFacade zcloudDaHuaFacade; @Transactional(rollbackFor = Exception.class) public boolean execute(Long id) { @@ -79,21 +80,21 @@ public class UserRemoveExe { // ② 本地操作完成后再删大华。若大华失败 → throw BizException → 本地全部回滚 if (needDeleteDaHua) { - Map deleteResult = daHuaConfig.deletePerson( - Collections.singletonList(dahuaId), getDaHuaExtraHeaders()); - Boolean skipped = (Boolean) deleteResult.get("skipped"); - if (skipped == null || !skipped) { - Boolean success = (Boolean) deleteResult.get("success"); - String errCode = (String) deleteResult.getOrDefault("errCode", ""); - String errMessage = (String) deleteResult.getOrDefault("errMessage", ""); - if (success == null || !success) { + if (daHuaConfig.getDockFlag() == null || daHuaConfig.getDockFlag() != 1) { + log.info("【单个删除-大华删除跳过】dockFlag未开启, userId={}", id); + } else { + DaHuaPersonDeleteCmd delCmd = new DaHuaPersonDeleteCmd(); + delCmd.setIds(Collections.singletonList(dahuaId.longValue())); + SingleResponse delResp = zcloudDaHuaFacade.deletePerson(delCmd); + if (delResp == null || !delResp.isSuccess()) { + String errCode = delResp == null ? "" : delResp.getErrCode(); + String errMessage = delResp == null ? "大华Dubbo返回为空" : delResp.getErrMessage(); + if (errMessage == null || errMessage.trim().isEmpty()) errMessage = "大华人员删除失败"; log.error("【单个删除-大华删除失败→触发本地回滚】userId={}, dahuaId={}, errCode={}, errMessage={}", id, dahuaId, errCode, errMessage); throw new BizException("删除大华平台人员失败:" + errMessage); } log.info("【单个删除-大华删除成功】userId={}, dahuaId={}", id, dahuaId); - } else { - log.info("【单个删除-大华删除跳过】dockFlag未开启, userId={}", id); } } } catch (BizException e) { @@ -195,32 +196,6 @@ public class UserRemoveExe { return true; } - private Map getDaHuaExtraHeaders() { - Map extraHeaders = new HashMap<>(); - try { - ServletRequestAttributes attrs = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); - if (attrs != null) { - HttpServletRequest req = attrs.getRequest(); - String token = req.getHeader("token"); - String orgid = req.getHeader("orgid"); - String tenantId = req.getHeader("tenantId"); - if (token != null && !token.trim().isEmpty()) { - extraHeaders.put("token", token); - } - if (orgid != null && !orgid.trim().isEmpty()) { - extraHeaders.put("orgid", orgid); - } - if (tenantId != null && !tenantId.trim().isEmpty()) { - extraHeaders.put("tenantId", tenantId); - } - } - } catch (Exception e) { - log.warn("获取大华透传请求头失败: {}", e.getMessage()); - } - return extraHeaders; - } - - @Transactional(rollbackFor = Exception.class) public boolean execute(Long[] ids) { try { @@ -242,21 +217,21 @@ public class UserRemoveExe { // ② 本地成功后再删大华。大华失败→throw→本地回滚 if (!dahuaIds.isEmpty()) { - Map extraHeaders = getDaHuaExtraHeaders(); - Map deleteResult = daHuaConfig.deletePerson(dahuaIds, extraHeaders); - Boolean skipped = (Boolean) deleteResult.get("skipped"); - if (skipped == null || !skipped) { - Boolean success = (Boolean) deleteResult.get("success"); - String errCode = (String) deleteResult.getOrDefault("errCode", ""); - String errMessage = (String) deleteResult.getOrDefault("errMessage", ""); - if (success == null || !success) { + if (daHuaConfig.getDockFlag() == null || daHuaConfig.getDockFlag() != 1) { + log.info("【批量删除-大华删除跳过】dockFlag未开启, idList={}", idList); + } else { + DaHuaPersonDeleteCmd delCmd = new DaHuaPersonDeleteCmd(); + delCmd.setIds(dahuaIds.stream().map(Integer::longValue).collect(Collectors.toList())); + SingleResponse delResp = zcloudDaHuaFacade.deletePerson(delCmd); + if (delResp == null || !delResp.isSuccess()) { + String errCode = delResp == null ? "" : delResp.getErrCode(); + String errMessage = delResp == null ? "大华Dubbo返回为空" : delResp.getErrMessage(); + if (errMessage == null || errMessage.trim().isEmpty()) errMessage = "大华人员删除失败"; log.error("【批量删除-大华删除失败→触发本地回滚】localIds={}, dahuaIds={}, errCode={}, errMessage={}", idList, dahuaIds, errCode, errMessage); throw new BizException("删除大华平台人员失败:" + errMessage); } log.info("【批量删除-大华删除成功】dahuaIds={}", dahuaIds); - } else { - log.info("【批量删除-大华删除跳过】dockFlag未开启, idList={}", idList); } } return true; diff --git a/web-app/src/main/java/com/zcloud/basic/info/command/UserUpdateExe.java b/web-app/src/main/java/com/zcloud/basic/info/command/UserUpdateExe.java index 5c8997ce..2a57aa8b 100644 --- a/web-app/src/main/java/com/zcloud/basic/info/command/UserUpdateExe.java +++ b/web-app/src/main/java/com/zcloud/basic/info/command/UserUpdateExe.java @@ -21,6 +21,9 @@ import com.zcloud.basic.info.domain.model.*; import com.zcloud.basic.info.dto.*; import com.zcloud.basic.info.persistence.dataobject.*; import com.zcloud.basic.info.persistence.repository.*; +import com.zcloud.gbscommon.dahua.cmd.DaHuaPersonDeleteCmd; +import com.zcloud.gbscommon.dahua.cmd.DaHuaPersonSyncCmd; +import com.zcloud.gbscommon.dahua.facade.ZcloudDaHuaFacade; import com.zcloud.gbscommon.utils.Tools; import com.zcloud.gbscommon.utils.ZcloudRedisUtil; import com.zcloud.gbscommon.zcloudhidden.face.ZcloudHiddenFacade; @@ -35,10 +38,7 @@ import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.ObjectUtils; -import org.springframework.web.context.request.RequestContextHolder; -import org.springframework.web.context.request.ServletRequestAttributes; -import javax.servlet.http.HttpServletRequest; import java.nio.charset.StandardCharsets; import java.time.LocalDate; import java.time.LocalDateTime; @@ -78,6 +78,8 @@ public class UserUpdateExe { @DubboReference private ZcloudRiskFacade zcloudRiskFacade; private final DaHuaConfig daHuaConfig; + @DubboReference + private ZcloudDaHuaFacade zcloudDaHuaFacade; @Transactional(rollbackFor = Exception.class) @@ -442,50 +444,38 @@ public class UserUpdateExe { throw new BizException("同步大华平台失败:人脸图片不完整"); } - List> personBiosignatures = new ArrayList<>(); - Map biosignature = new java.util.LinkedHashMap<>(); - biosignature.put("type", 3); - biosignature.put("index", 1); - biosignature.put("base64Data", cleanBase64); + List personBiosignatures = new ArrayList<>(); + DaHuaPersonSyncCmd.PersonBiosignature biosignature = new DaHuaPersonSyncCmd.PersonBiosignature(); + biosignature.setType(3); + biosignature.setIndex(1); + biosignature.setBase64Data(cleanBase64); personBiosignatures.add(biosignature); personMap.put("personBiosignatures", personBiosignatures); } - Map extraHeaders = new HashMap<>(); - try { - ServletRequestAttributes attrs = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); - if (attrs != null) { - HttpServletRequest req = attrs.getRequest(); - String token = req.getHeader("token"); - String orgid = req.getHeader("orgid"); - String tenantId = req.getHeader("tenantId"); - if (token != null && !token.trim().isEmpty()) { - extraHeaders.put("token", token); - } - if (orgid != null && !orgid.trim().isEmpty()) { - extraHeaders.put("orgid", orgid); - } - if (tenantId != null && !tenantId.trim().isEmpty()) { - extraHeaders.put("tenantId", tenantId); - } - } - } catch (Exception e) { - log.warn("获取当前请求头异常: {}", e.getMessage()); - } - - Map syncResult = daHuaConfig.updatePerson(personMap, extraHeaders); - Boolean success = (Boolean) syncResult.get("success"); - Boolean skipped = (Boolean) syncResult.get("skipped"); - if (skipped != null && skipped) { + if (daHuaConfig.getDockFlag() == null || daHuaConfig.getDockFlag() != 1) { + log.info("大华对接未开启(dockFlag={}), 跳过更新大华人员", daHuaConfig.getDockFlag()); return; } + + DaHuaPersonSyncCmd cmd = cn.hutool.core.bean.BeanUtil.toBean(personMap, DaHuaPersonSyncCmd.class); + Object biosObj = personMap.get("personBiosignatures"); + if (biosObj instanceof List) { + @SuppressWarnings("unchecked") + List bioList = (List) biosObj; + cmd.setPersonBiosignatures(bioList); + } + log.info("Dubbo调用primeport.zcloudDaHuaFacade.updatePerson, name={}, departmentId(corpId)={}", + cmd.getName(), cmd.getDepartmentId()); + SingleResponse updateResp = zcloudDaHuaFacade.updatePerson(cmd); String maskedIdCard = plainIdCard; if (plainIdCard != null && plainIdCard.length() >= 14) { maskedIdCard = plainIdCard.substring(0, 6) + "********" + plainIdCard.substring(plainIdCard.length() - 4); } - if (success == null || !success) { - String errCode = (String) syncResult.getOrDefault("errCode", ""); - String errMessage = (String) syncResult.getOrDefault("errMessage", "大华人员更新失败"); + if (updateResp == null || !updateResp.isSuccess()) { + String errCode = updateResp == null ? "" : updateResp.getErrCode(); + String errMessage = updateResp == null ? "大华Dubbo返回为空" : updateResp.getErrMessage(); + if (errMessage == null || errMessage.trim().isEmpty()) errMessage = "大华人员更新失败"; log.error("同步大华人员(更新)失败, errCode={}, errMessage={}, name={}, idCard={}", errCode, errMessage, newName, maskedIdCard); throw new BizException("同步大华平台失败:" + errMessage); } @@ -776,35 +766,21 @@ public class UserUpdateExe { Integer dahuaId = userDO.getDahuaId(); if (dahuaId != null) { log.info("【离职-同步删除大华人员】userId={}, name={}, dahuaId={}", userDO.getId(), userDO.getName(), dahuaId); - Map extraHeaders = new HashMap<>(); - try { - ServletRequestAttributes attrs = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); - if (attrs != null) { - HttpServletRequest req = attrs.getRequest(); - String token = req.getHeader("token"); - String orgid = req.getHeader("orgid"); - String tenantId = req.getHeader("tenantId"); - if (token != null && !token.trim().isEmpty()) extraHeaders.put("token", token); - if (orgid != null && !orgid.trim().isEmpty()) extraHeaders.put("orgid", orgid); - if (tenantId != null && !tenantId.trim().isEmpty()) extraHeaders.put("tenantId", tenantId); - } - } catch (Exception e) { - log.warn("【离职-获取大华透传请求头异常】: {}", e.getMessage()); - } - Map deleteResult = daHuaConfig.deletePerson(Collections.singletonList(dahuaId), extraHeaders); - Boolean skipped = (Boolean) deleteResult.get("skipped"); - if (skipped == null || !skipped) { - Boolean success = (Boolean) deleteResult.get("success"); - String errCode = (String) deleteResult.getOrDefault("errCode", ""); - String errMessage = (String) deleteResult.getOrDefault("errMessage", ""); - if (success == null || !success) { + if (daHuaConfig.getDockFlag() == null || daHuaConfig.getDockFlag() != 1) { + log.info("【离职-大华删除跳过】dockFlag未开启, userId={}", userDO.getId()); + } else { + DaHuaPersonDeleteCmd delCmd = new DaHuaPersonDeleteCmd(); + delCmd.setIds(Collections.singletonList(dahuaId.longValue())); + SingleResponse delResp = zcloudDaHuaFacade.deletePerson(delCmd); + if (delResp == null || !delResp.isSuccess()) { + String errCode = delResp == null ? "" : delResp.getErrCode(); + String errMessage = delResp == null ? "大华Dubbo返回为空" : delResp.getErrMessage(); + if (errMessage == null || errMessage.trim().isEmpty()) errMessage = "大华人员删除失败"; log.error("【离职-大华删除失败→触发本地回滚】userId={}, dahuaId={}, errCode={}, errMessage={}", userDO.getId(), dahuaId, errCode, errMessage); throw new BizException("同步大华平台删除离职人员失败:" + errMessage); } log.info("【离职-大华删除成功】userId={}, dahuaId={}", userDO.getId(), dahuaId); - } else { - log.info("【离职-大华删除跳过】dockFlag未开启, userId={}", userDO.getId()); } } else { log.info("【离职-跳过同步大华】用户dahuaId为空,未同步过大华平台, userId={}, name={}", userDO.getId(), userDO.getName()); @@ -1033,6 +1009,10 @@ public class UserUpdateExe { } } + public List collectUserJob(Long userId, Long departmentId, Long corpinfoId, String userChangeRecordId) { + return getUserJob(userId, corpinfoId, userChangeRecordId); + } + private List getUserJob(Long userId, Long corpinfoId, String userChangeRecordId) { List allJob = new ArrayList<>(); //隐患id diff --git a/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/mapper/UserMapper.java b/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/mapper/UserMapper.java index fd8553be..47d4aa8c 100644 --- a/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/mapper/UserMapper.java +++ b/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/mapper/UserMapper.java @@ -57,5 +57,4 @@ public interface UserMapper extends BaseMapper { void updateEmploymentFlagAndDeleteEnum(Long userId, Integer employmentFlag, String deleteEnum); IPage pageByNopermissionAll(IPage iPage, @Param("ew") QueryWrapper queryWrapper); -} - +} \ No newline at end of file