fix:同步利元亨用户岗位数据

This commit is contained in:
2026-02-02 17:58:13 +08:00
parent 38048f94e0
commit 17288f9f21
12 changed files with 171 additions and 102 deletions

View File

@@ -93,7 +93,7 @@ public class SpdmTenantController {
} }
@PostMapping("/queryUserList") @PostMapping("/queryUserList")
public R<List<LyricUserDto>> queryUserList(@RequestParam String workType) { public R<List<LyricUserDto>> queryUserList(@RequestParam(required = false) String workType) {
ResponseR sdmResponse = spdmServiceFeignClient.queryUserList(workType); ResponseR sdmResponse = spdmServiceFeignClient.queryUserList(workType);
log.info("[queryUserList] sdmResponse:{}", sdmResponse); log.info("[queryUserList] sdmResponse:{}", sdmResponse);
if (sdmResponse.isSuccess() && sdmResponse.getData() != null) { if (sdmResponse.isSuccess() && sdmResponse.getData() != null) {

View File

@@ -80,21 +80,31 @@ public class SpdmUserController {
@Operation(summary = "条件查询用户列表") @Operation(summary = "条件查询用户列表")
@PostMapping(value = "/listUser") @PostMapping(value = "/listUser")
public ResponseR listUser(@RequestBody UserPageQueryDto userPageQueryDto) { public ResponseR listUser(@RequestBody UserPageQueryDto userPageQueryDto) {
R<Page<StaffPageResultDto>> sysStaffPageR = remoteTenantServiceFeign.listStaffForPage( // R<Page<StaffPageResultDto>> sysStaffPageR = remoteTenantServiceFeign.listStaffForPage(
StaffPageQueryDto.builder() // StaffPageQueryDto.builder()
.tenantId(userPageQueryDto.getTenantId()) // .tenantId(userPageQueryDto.getTenantId())
.nickname(userPageQueryDto.getNickname()) // .nickname(userPageQueryDto.getNickname())
.current(userPageQueryDto.getCurrent()).size(userPageQueryDto.getSize()) // .current(userPageQueryDto.getCurrent()).size(userPageQueryDto.getSize())
.build(), // .build(),
userPageQueryDto.getTenantId()); // userPageQueryDto.getTenantId());
Page<StaffPageResultDto> staffPage = sysStaffPageR.getData(); // Page<StaffPageResultDto> staffPage = sysStaffPageR.getData();
if (staffPage != null) { // if (staffPage != null) {
List<SysUserVO> userVOList = new ArrayList<>(); // List<SysUserVO> userVOList = new ArrayList<>();
staffPage.getRecords().forEach(i -> { // staffPage.getRecords().forEach(i -> {
R<SysUserVO> sysUserVO = remoteUserServiceFeign.getUserByUserId(Long.valueOf(i.getUserId()), SecurityConstants.FROM_IN, userPageQueryDto.getTenantId()); // R<SysUserVO> sysUserVO = remoteUserServiceFeign.getUserByUserId(Long.valueOf(i.getUserId()), SecurityConstants.FROM_IN, userPageQueryDto.getTenantId());
userVOList.add(sysUserVO.getData()); // userVOList.add(sysUserVO.getData());
}); // });
return ResponseR.ok(PageResult.of(staffPage.getTotal(), staffPage.getCurrent(), staffPage.getSize(), userVOList)); // return ResponseR.ok(PageResult.of(staffPage.getTotal(), staffPage.getCurrent(), staffPage.getSize(), userVOList));
// }
UserPageQueryDto queryDto = new UserPageQueryDto();
queryDto.setNickname(userPageQueryDto.getNickname());
queryDto.setTenantId(userPageQueryDto.getTenantId());
queryDto.setCurrent(userPageQueryDto.getCurrent());
queryDto.setSize(userPageQueryDto.getSize());
R<Page<SysUserVO>> listUserForPageR = remoteUserServiceFeign.listUserForPage(queryDto, userPageQueryDto.getTenantId());
if (listUserForPageR.isSuccess() && listUserForPageR.getData() != null) {
Page<SysUserVO> listUserForPage = listUserForPageR.getData();
return ResponseR.ok(PageResult.of(listUserForPage.getTotal(), listUserForPage.getCurrent(), listUserForPage.getSize(), listUserForPage.getRecords()));
} }
return ResponseR.ok(); return ResponseR.ok();
} }

View File

@@ -25,7 +25,7 @@ public interface RemoteUserServiceFeign {
@GetMapping("/user/infoByAccount/{phone}") @GetMapping("/user/infoByAccount/{phone}")
R<SysUserInfoVO> infoByAccount(@PathVariable String phone, @RequestHeader(SecurityConstants.FROM) String from, @RequestHeader(CommonConstants.TENANT_ID) String tenantId); R<SysUserInfoVO> infoByAccount(@PathVariable String phone, @RequestHeader(SecurityConstants.FROM) String from, @RequestHeader(CommonConstants.TENANT_ID) String tenantId);
@GetMapping("/user/page/inner") @GetMapping("/user/page/inner")
R<Page<UserPageResultDto>> listUserForPage(@SpringQueryMap UserPageQueryDto sysUser); R<Page<SysUserVO>> listUserForPage(@SpringQueryMap UserPageQueryDto sysUser, @RequestHeader(CommonConstants.TENANT_ID) String tenantId);
@GetMapping("/user/getUserListByUserName") @GetMapping("/user/getUserListByUserName")
R<List<SysUserVO>> getUserListByUserName(@RequestParam("username") String userName); R<List<SysUserVO>> getUserListByUserName(@RequestParam("username") String userName);

View File

@@ -23,6 +23,6 @@ public interface SpdmServiceFeignClient {
ResponseR initNewTenant(@RequestParam Long tenantId); ResponseR initNewTenant(@RequestParam Long tenantId);
@PostMapping("/lyricUser/queryUserList") @PostMapping("/lyricUser/queryUserList")
ResponseR queryUserList(@RequestParam String workType); ResponseR queryUserList(@RequestParam(required = false) String workType);
} }

View File

@@ -17,6 +17,6 @@ public interface RemoteSpdmService {
void initNewTenant(@RequestParam Long tenantId); void initNewTenant(@RequestParam Long tenantId);
@PostMapping("/honeycom-spdm/spdm-tenant/queryUserList") @PostMapping("/honeycom-spdm/spdm-tenant/queryUserList")
R<List<LyricUserDto>> queryUserList(@RequestParam String workType); R<List<LyricUserDto>> queryUserList(@RequestParam(required = false) String workType);
} }

View File

@@ -11,6 +11,7 @@ import com.honeycombis.honeycom.common.core.exception.HoneycomException;
import com.honeycombis.honeycom.common.core.util.R; import com.honeycombis.honeycom.common.core.util.R;
import com.honeycombis.honeycom.common.security.annotation.Inner; import com.honeycombis.honeycom.common.security.annotation.Inner;
import com.honeycombis.honeycom.tenant.entity.SysHrSyncLogEntity; import com.honeycombis.honeycom.tenant.entity.SysHrSyncLogEntity;
import com.honeycombis.honeycom.tenant.feign.RemoteSpdmService;
import com.honeycombis.honeycom.tenant.service.SysHrSyncLogService; import com.honeycombis.honeycom.tenant.service.SysHrSyncLogService;
import com.honeycombis.honeycom.tenant.service.SysTKMoldService; import com.honeycombis.honeycom.tenant.service.SysTKMoldService;
import com.honeycombis.honeycom.tenant.vo.hr.HrUserInfoAddDataVO; import com.honeycombis.honeycom.tenant.vo.hr.HrUserInfoAddDataVO;
@@ -28,6 +29,7 @@ import org.springframework.web.bind.annotation.*;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.stream.Collectors;
@Slf4j @Slf4j
@RestController @RestController
@@ -39,10 +41,11 @@ public class SysHrSyncController {
private final SysTKMoldService tkMoldService; private final SysTKMoldService tkMoldService;
private final SysHrSyncLogService sysHrSyncLogService; private final SysHrSyncLogService sysHrSyncLogService;
private final RemoteSpdmService remoteSpdmService;
public static final List<String> WORK_TYPES = Arrays.asList( // public static final List<String> WORK_TYPES = Arrays.asList(
"设计", "仿真", "产品工艺", "方案", "程序", "激光" // "设计", "仿真", "产品工艺", "方案", "程序", "激光"
); // );
/** /**
* 分页查询 * 分页查询
* @param page 分页对象 * @param page 分页对象
@@ -111,7 +114,12 @@ public class SysHrSyncController {
@Inner(value = false) @Inner(value = false)
@PostMapping("/allSyncLyricUsers") @PostMapping("/allSyncLyricUsers")
public R<Boolean> allSyncLyricUsers(@RequestBody List<LyricUserDto> userDtoList) { public R<Boolean> allSyncLyricUsers(@RequestBody List<LyricUserDto> userDtoList) {
for (String workType : WORK_TYPES) { // 获取利元亨用户数据(带部门)
R<List<LyricUserDto>> userListR = remoteSpdmService.queryUserList(null);
if (userListR.getData() != null) {
Map<String, List<LyricUserDto>> userMapByWorkType = userListR.getData().stream().collect(Collectors.groupingBy(LyricUserDto::getWork_type_name));
for (String workType : userMapByWorkType.keySet()) {
log.info("-------------------------开始同步{}的用户数据----------------------", workType);
try { try {
tkMoldService.allSyncLyricUsers(userDtoList, workType); tkMoldService.allSyncLyricUsers(userDtoList, workType);
} catch (Exception e) { } catch (Exception e) {
@@ -119,6 +127,7 @@ public class SysHrSyncController {
throw new HoneycomException(e.getMessage()); throw new HoneycomException(e.getMessage());
} }
} }
}
return R.ok(); return R.ok();
} }

View File

@@ -52,7 +52,6 @@ public class SysTKMoldServiceImpl implements SysTKMoldService {
private final SysHrSyncLogService sysHrSyncLogService; private final SysHrSyncLogService sysHrSyncLogService;
private final SysRoleService sysRoleService; private final SysRoleService sysRoleService;
private final SysStaffRoleService sysStaffRoleService; private final SysStaffRoleService sysStaffRoleService;
private final RemoteSpdmService remoteSpdmService;
@Async("tenantAsyncTask") @Async("tenantAsyncTask")
@Override @Override
@@ -362,19 +361,17 @@ public class SysTKMoldServiceImpl implements SysTKMoldService {
sysHrSyncLogService.save(sysHrSyncLogEntity); sysHrSyncLogService.save(sysHrSyncLogEntity);
} }
// @Async("tenantAsyncTask") @Async("tenantAsyncTask")
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void allSyncLyricUsers(List<LyricUserDto> userList, String workType) { public void allSyncLyricUsers(List<LyricUserDto> userList, String workType) {
// Long tenantId = 2001184963854700545L; // Long tenantId = 2001184963854700545L;
Long tenantId = 7244250568405852160L; Long tenantId = 7244250568405852160L;
// 获取利元亨用户数据(带部门)
// R<List<LyricUserDto>> userListR = remoteSpdmService.queryUserList(workType);
// List<LyricUserDto> userList = userListR.getData();
if (!userList.isEmpty()) { if (!userList.isEmpty()) {
// 筛选新用户 // 筛选新用户
userList = filerNewUserList(userList); userList = filerNewUserList(userList);
if (userList.size() > 0) {
log.info("开始同步,租户{}",tenantId); log.info("开始同步,租户{}",tenantId);
StringBuilder message = new StringBuilder("全量同步:"); StringBuilder message = new StringBuilder("全量同步:");
@@ -447,6 +444,7 @@ public class SysTKMoldServiceImpl implements SysTKMoldService {
} }
} }
} }
}
private List<LyricUserDto> filerNewUserList(List<LyricUserDto> allUserList) { private List<LyricUserDto> filerNewUserList(List<LyricUserDto> allUserList) {
// 1. 从Lyric系统获取所有员工工号数据 // 1. 从Lyric系统获取所有员工工号数据
@@ -489,8 +487,8 @@ public class SysTKMoldServiceImpl implements SysTKMoldService {
LyricUserDto::getJob_code, LyricUserDto::getJob_code,
dto -> { dto -> {
LyricUserDto newDto = new LyricUserDto(); LyricUserDto newDto = new LyricUserDto();
newDto.setDept_grp_code1(dto.getJob_code()); newDto.setJob_code(dto.getJob_code());
newDto.setDept_grp_name1(dto.getJob_name()); newDto.setJob_name(dto.getJob_name());
return newDto; return newDto;
}, },
(existing, replacement) -> existing // 重复时保留第一个,避免覆盖 (existing, replacement) -> existing // 重复时保留第一个,避免覆盖

View File

@@ -14,4 +14,6 @@ public class UserApiProperties {
*/ */
private String defaultPassword = "honeycom@2025."; private String defaultPassword = "honeycom@2025.";
private String defaultLyricPassword = "lyric@2026.";
} }

View File

@@ -87,8 +87,8 @@ public class SysUserController {
@Inner(false) @Inner(false)
@Operation(summary = "分页查询" , description = "分页查询" ) @Operation(summary = "分页查询" , description = "分页查询" )
@GetMapping("/page/inner" ) @GetMapping("/page/inner" )
public R<IPage<SysUserPageQueryVO>> getSysUserPageInner(@ParameterObject Page<SysUserEntity> page, @ParameterObject SysUserPageQueryDTO sysUser) { public R<IPage<SysUserVO>> getSysUserPageInner(@ParameterObject Page<SysUserEntity> page, @ParameterObject SysUserPageQueryDTO sysUser) {
return R.ok(sysUserService.page(page, sysUser)); return R.ok(sysUserService.pageInner(page, sysUser));
} }
/** /**

View File

@@ -32,6 +32,8 @@ public interface SysUserService extends IService<SysUserEntity> {
IPage<SysUserPageQueryVO> page(Page<SysUserEntity> page, SysUserPageQueryDTO sysUser); IPage<SysUserPageQueryVO> page(Page<SysUserEntity> page, SysUserPageQueryDTO sysUser);
IPage<SysUserVO> pageInner(Page<SysUserEntity> page, SysUserPageQueryDTO sysUser);
void changeStatus(SysUserChangeStatusDTO sysUser); void changeStatus(SysUserChangeStatusDTO sysUser);
List<SysUserVO> findLikeUsername(String username); List<SysUserVO> findLikeUsername(String username);

View File

@@ -185,7 +185,7 @@ public class SysHrSyncUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser
public Boolean batchAdd(List<TenantUserDto> tenantUserDtoList) { public Boolean batchAdd(List<TenantUserDto> tenantUserDtoList) {
List<SysUserEntity> sysUserEntitySaveList = new ArrayList<>(); List<SysUserEntity> sysUserEntitySaveList = new ArrayList<>();
List<SysPersonSaveOrUpdateDTO> sysPersonSaveOrUpdateDTOList = new ArrayList<>(); List<SysPersonSaveOrUpdateDTO> sysPersonSaveOrUpdateDTOList = new ArrayList<>();
String password = ENCODER.encode(userApiProperties.getDefaultPassword()); String password = ENCODER.encode(userApiProperties.getDefaultLyricPassword());
for (TenantUserDto tenantUserDto : tenantUserDtoList) { for (TenantUserDto tenantUserDto : tenantUserDtoList) {
SysUserEntity sysUserEntity = new SysUserEntity(); SysUserEntity sysUserEntity = new SysUserEntity();
if(tenantUserDto.getUserId()!=null){ if(tenantUserDto.getUserId()!=null){

View File

@@ -264,6 +264,54 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUserEntity
return pageData.convert(SysUserPageQueryVO::new); return pageData.convert(SysUserPageQueryVO::new);
} }
@Override
public IPage<SysUserVO> pageInner(Page<SysUserEntity> page, SysUserPageQueryDTO sysUser) {
if (Objects.isNull(page)) {
throw new HoneycomException(ErrorType.PARAM_ERROR.getCode());
}
LambdaQueryWrapper<SysUserEntity> queryWrapper = new LambdaQueryWrapper<>();
if (!Objects.isNull(sysUser)) {
if (ObjectUtil.isNotNull(sysUser.getUserId())) {
queryWrapper.like(SysUserEntity::getUserId, sysUser.getUserId());
}
if (ObjectUtil.isNotNull(sysUser.getUserName())) {
queryWrapper.like(SysUserEntity::getUsername, sysUser.getUserName());
}
if (StringUtils.isNotBlank(sysUser.getPhone())) {
queryWrapper.like(SysUserEntity::getPhone, sysUser.getPhone());
}
if (StringUtils.isNotBlank(sysUser.getNickname())) {
queryWrapper.like(SysUserEntity::getNickname, sysUser.getNickname());
}
if (StringUtils.isNotBlank(sysUser.getEmail())) {
queryWrapper.like(SysUserEntity::getEmail, sysUser.getEmail());
}
if (StringUtils.isNotBlank(sysUser.getStatus())) {
queryWrapper.like(SysUserEntity::getStatus, sysUser.getStatus());
}
if (!Objects.isNull(sysUser.getStartCreateTime())) {
queryWrapper.ge(SysUserEntity::getCreateTime, sdf.format(new Date(sysUser.getStartCreateTime())));
}
if (!Objects.isNull(sysUser.getEndCreateTime())) {
queryWrapper.le(SysUserEntity::getCreateTime, sdf.format(new Date(sysUser.getEndCreateTime())));
}
if (!Objects.isNull(sysUser.getStartUpdateTime())) {
queryWrapper.ge(SysUserEntity::getUpdateTime, sdf.format(new Date(sysUser.getStartUpdateTime())));
}
if (!Objects.isNull(sysUser.getEndUpdateTime())) {
queryWrapper.le(SysUserEntity::getUpdateTime, sdf.format(new Date(sysUser.getEndUpdateTime())));
}
}
Page<SysUserEntity> pageData = this.page(page, queryWrapper);
if (Objects.isNull(pageData)) {
throw new HoneycomException(UserErrorType.QUERY_USER_PAGE_ERROR.getCode());
}
return pageData.convert(SysUserVO::new);
}
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void changeStatus(SysUserChangeStatusDTO sysUser) { public void changeStatus(SysUserChangeStatusDTO sysUser) {