客商主数据查询BUG修改1
This commit is contained in:
+24
@@ -1,5 +1,7 @@
|
|||||||
package com.mhd.user.application.service;
|
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.common.redis.service.RedisLock;
|
||||||
import com.mhd.system.api.model.LoginUser;
|
import com.mhd.system.api.model.LoginUser;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
@@ -23,12 +25,34 @@ public class AsyncUserShipperMasterDataSyncService {
|
|||||||
public void syncMasterDataAsync(LoginUser loginUser, String lockKey) {
|
public void syncMasterDataAsync(LoginUser loginUser, String lockKey) {
|
||||||
Long organizationId = loginUser.getUserPo().getOrganizationId();
|
Long organizationId = loginUser.getUserPo().getOrganizationId();
|
||||||
try {
|
try {
|
||||||
|
bindLoginUser(loginUser);
|
||||||
userShipperMasterDataSyncService.executeSync(loginUser);
|
userShipperMasterDataSyncService.executeSync(loginUser);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error("异步同步主数据失败, organizationId={}", organizationId, e);
|
log.error("异步同步主数据失败, organizationId={}", organizationId, e);
|
||||||
userShipperMasterDataSyncService.markSyncFailed(organizationId, e.getMessage());
|
userShipperMasterDataSyncService.markSyncFailed(organizationId, e.getMessage());
|
||||||
} finally {
|
} finally {
|
||||||
|
SecurityContextHolder.remove();
|
||||||
redisLock.unlock(lockKey);
|
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.setLastSyncTime(syncTime);
|
||||||
entity.setSyncStatus(resultVo.getFailCount() > 0 ? 2 : 1);
|
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]",
|
"新增%d,更新%d,跳过%d,失败%d;组织NC=%s;跳过明细[组织不匹配:%d,非客户:%d,停用:%d,其他:%d]",
|
||||||
resultVo.getAddCount(), resultVo.getUpdateCount(), resultVo.getSkipCount(), resultVo.getFailCount(),
|
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);
|
entity.setUpdateTime(syncTime);
|
||||||
if (entity.getId() == null) {
|
if (entity.getId() == null) {
|
||||||
userShipperMdmSyncMapper.insert(entity);
|
userShipperMdmSyncMapper.insert(entity);
|
||||||
|
|||||||
Reference in New Issue
Block a user