客商主数据查询BUG修改1
This commit is contained in:
+24
@@ -1,5 +1,7 @@
|
||||
package com.mhd.user.application.service;
|
||||
|
||||
import com.mhd.common.core.constant.SecurityConstants;
|
||||
import com.mhd.common.core.context.SecurityContextHolder;
|
||||
import com.mhd.common.redis.service.RedisLock;
|
||||
import com.mhd.system.api.model.LoginUser;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
@@ -23,12 +25,34 @@ public class AsyncUserShipperMasterDataSyncService {
|
||||
public void syncMasterDataAsync(LoginUser loginUser, String lockKey) {
|
||||
Long organizationId = loginUser.getUserPo().getOrganizationId();
|
||||
try {
|
||||
bindLoginUser(loginUser);
|
||||
userShipperMasterDataSyncService.executeSync(loginUser);
|
||||
} catch (Exception e) {
|
||||
log.error("异步同步主数据失败, organizationId={}", organizationId, e);
|
||||
userShipperMasterDataSyncService.markSyncFailed(organizationId, e.getMessage());
|
||||
} finally {
|
||||
SecurityContextHolder.remove();
|
||||
redisLock.unlock(lockKey);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 异步线程无 HTTP 请求上下文,需手动注入 LoginUser 供 addUser/authShipper 等使用。
|
||||
*/
|
||||
private void bindLoginUser(LoginUser loginUser) {
|
||||
SecurityContextHolder.set(SecurityConstants.LOGIN_USER, loginUser);
|
||||
if (loginUser.getUserid() != null) {
|
||||
SecurityContextHolder.setUserId(String.valueOf(loginUser.getUserid()));
|
||||
} else if (loginUser.getUserPo() != null && loginUser.getUserPo().getUserId() != null) {
|
||||
SecurityContextHolder.setUserId(String.valueOf(loginUser.getUserPo().getUserId()));
|
||||
}
|
||||
if (loginUser.getUsername() != null) {
|
||||
SecurityContextHolder.setUserName(loginUser.getUsername());
|
||||
} else if (loginUser.getUserPo() != null) {
|
||||
SecurityContextHolder.setUserName(loginUser.getUserPo().getUserAccount());
|
||||
}
|
||||
if (loginUser.getToken() != null) {
|
||||
SecurityContextHolder.setUserKey(loginUser.getToken());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+6
-2
@@ -237,10 +237,14 @@ public class UserShipperMasterDataSyncService {
|
||||
}
|
||||
entity.setLastSyncTime(syncTime);
|
||||
entity.setSyncStatus(resultVo.getFailCount() > 0 ? 2 : 1);
|
||||
entity.setSyncMessage(String.format(
|
||||
String syncMessage = String.format(
|
||||
"新增%d,更新%d,跳过%d,失败%d;组织NC=%s;跳过明细[组织不匹配:%d,非客户:%d,停用:%d,其他:%d]",
|
||||
resultVo.getAddCount(), resultVo.getUpdateCount(), resultVo.getSkipCount(), resultVo.getFailCount(),
|
||||
orgNcCode, skipOrgMismatch, skipNotCustomer, skipDisabled, skipOther));
|
||||
orgNcCode, skipOrgMismatch, skipNotCustomer, skipDisabled, skipOther);
|
||||
if (resultVo.getFailCount() > 0 && !resultVo.getErrorMessages().isEmpty()) {
|
||||
syncMessage += ";" + resultVo.getErrorMessages().get(0);
|
||||
}
|
||||
entity.setSyncMessage(syncMessage);
|
||||
entity.setUpdateTime(syncTime);
|
||||
if (entity.getId() == null) {
|
||||
userShipperMdmSyncMapper.insert(entity);
|
||||
|
||||
Reference in New Issue
Block a user