组织排队开关,新增用户司机同步yms,oms预约单修改

This commit is contained in:
赵辉
2026-05-21 15:15:49 +08:00
parent a29ac3050e
commit 4f03f56126
26 changed files with 465 additions and 7 deletions
@@ -30,6 +30,7 @@ import com.mhd.system.api.FinanceServiceFeign;
import com.mhd.system.api.OrganizationServiceFeign;
import com.mhd.system.api.TicketServiceFeign;
import com.mhd.system.api.TransportFeign;
import com.mhd.system.api.YmsServiceFeign;
import com.mhd.system.api.domain.PlatformUserDTO;
import com.mhd.system.api.domain.cache.AssociationWarehouseCacheDO;
import com.mhd.system.api.domain.WlhyLoginUser;
@@ -181,6 +182,8 @@ public class UserApplicationService {
private TicketServiceFeign ticketServiceFeign;
@Resource
private UserWlhyDomainService wlhyDomainService;
@Resource
private UserYmsDomainService ymsDomainService;
@Resource
private UserShipperApplicationService userShipperApplicationService;
@@ -1381,6 +1384,7 @@ public class UserApplicationService {
@Transactional(rollbackFor = Exception.class)
public UserPo addUserYG(UserDO userDO) {
LoginUser loginUser = SecurityUtils.getLoginUser();
String password = userDO.getPlainPassword();
if (ObjectUtil.isNull(loginUser)) {
throw new DigitalLogisticsException(UserError.TIMEOUT);
}
@@ -1484,6 +1488,20 @@ public class UserApplicationService {
// 如果业务要求必须同步成功,可以取消下面的注释,让异常抛出
// throw e;
}
//获取组织信息
Long organizationId = loginUser.getUserPo().getOrganizationId();
Integer isQueue = userMapper.getOrdIsQueue(organizationId);
if (isQueue==1) {
//同步YMS员工信息
try {
userEntity.setUserPassword(password);
ymsDomainService.addOrEditYmsUser(userEntity);
} catch (Exception e) {
// 同步YMS失败时,记录日志但不影响用户保存
log.warn("同步YMS员工信息失败,但不影响用户保存: {}", e.getMessage());
}
}
return userPo;
}
}
@@ -2096,6 +2114,8 @@ public class UserApplicationService {
UserEntity userEntity = userDomainService.updateUser(userDO);
//同步网货平台员工信息
wlhyDomainService.addOrEditPlatformUser(userEntity);
//同步yms员工信息
ymsDomainService.addOrEditYmsUser(userEntity);
BeanUtils.copyProperties(userPo, userEntity);
@@ -29,6 +29,7 @@ import com.mhd.common.core.utils.poi.WpsImg;
import com.mhd.system.api.FinanceServiceFeign;
import com.mhd.system.api.TransportFeign;
import com.mhd.system.api.WlhyServiceFeign;
import com.mhd.system.api.YmsServiceFeign;
import com.mhd.system.api.service.webSocket.AsyncWebSocketApplicationService;
import com.mhd.user.application.strategy.VehicleBindingStrategy;
import com.mhd.user.domain.motorcade.entity.Motorcade;
@@ -119,6 +120,8 @@ public class UserDriverApplicationService {
private AsyncJPushApplicationService asyncJPushApplicationService;
@Resource
private SpecialLogisticsFeign specialLogisticsFeign;
@Resource
private UserYmsDomainService ymsDomainService;
@Resource
private UserDataPermissionApplicationService userDataPermissionApplicationService;
@@ -184,6 +187,7 @@ public class UserDriverApplicationService {
private DriverVehicleBindMapper driverVehicleBindMapper;
@Autowired
private UserMapper userMapper;
private YmsServiceFeign ymsServiceFeign;
/**
* @Description 承运人列表查询
@@ -515,6 +519,28 @@ public class UserDriverApplicationService {
// 同步信息到网络货运平台
wlhyDomainService.saveOrUpdateDriverInfo(userDriverDO);
Long organizationId = loginUser.getUserPo().getOrganizationId();
Integer isQueue = userMapper.getOrdIsQueue(organizationId);
if (isQueue==1) {
// 同步YMS员工信息
try {
UserEntity userEntity = new UserEntity();
userEntity.setUserId(userDriverDO.getUserId());
userEntity.setUserAccount(userDriverDO.getUserAccount());
userEntity.setUserName(userDriverDO.getUserName());
userEntity.setUserPhone(userDriverDO.getUserPhone());
userEntity.setUserPassword("Aa123456");
userEntity.setOrganizationId(userDriverDO.getOrganizationId());
userEntity.setOrganizationName(userDriverDO.getOrganizationName());
userEntity.setTopOrganizationId(userDriverDO.getTopOrganizationId());
userEntity.setUserAuthStatus(userDriverDO.getUserAuthStatus());
userEntity.setBusinessType(userDriverDO.getBusinessType());
ymsDomainService.addOrEditYmsUser(userEntity);
} catch (Exception e) {
// 同步YMS失败时,记录日志但不影响用户保存
log.warn("同步YMS员工信息失败,但不影响用户保存: {}", e.getMessage());
}
}
// 自动审核或提交审核
if (ObjectUtil.equal(configSwitch.getAutomaticCheckUserInfo(), UserDriverConstants.AUTOMATIC_CHECK_ENABLED)) {
@@ -1,6 +1,7 @@
package com.mhd.user.domain.userAggregate.repository.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.mhd.common.core.domain.dto.YmsSysUserDTO;
import com.mhd.user.domain.userAggregate.entity.UserEntity;
import com.mhd.user.domain.userAggregate.repository.po.UserDocumentWarningQueryPo;
import com.mhd.user.domain.userAggregate.repository.po.UserDriverCaptainAuthPo;
@@ -74,4 +75,8 @@ public interface UserMapper extends BaseMapper<UserEntity> {
String finShipperEnterpriseNamedByUserId(@Param("userId") Long userId);
YmsSysUserDTO selectYmsByUserId(Long userId);
Integer getOrdIsQueue(Long organizationId);
}
@@ -281,4 +281,10 @@ public class UserDO extends BaseVOEntity {
@ApiModelProperty("税号")
private String taxNumber;
@ApiModelProperty("yms密码")
private String plainPassword;
@ApiModelProperty("当前用户的组织是否开启排队")
private Integer isQueue;
}
@@ -289,4 +289,7 @@ public class UserDriverDO extends UserDO {
@ApiModelProperty(name = "车辆主体")
private String vehicleBody;
@ApiModelProperty("当前用户的组织是否开启排队")
private Integer isQueue;
}
@@ -0,0 +1,117 @@
package com.mhd.user.domain.userAggregate.service;
import com.mhd.common.core.domain.dto.YmsSysUserDTO;
import com.mhd.common.core.domain.entity.R;
import com.mhd.common.core.exception.ServiceException;
import com.mhd.common.core.utils.StringUtils;
import com.mhd.system.api.YmsServiceFeign;
import com.mhd.user.domain.userAggregate.entity.UserEntity;
import com.mhd.user.domain.userAggregate.repository.mapper.UserMapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.Arrays;
/**
* YMS平台用户同步领域服务
* @author AI
* @date 2026/05/12
*/
@Service
@Slf4j
public class UserYmsDomainService {
@Resource
private YmsServiceFeign ymsServiceFeign;
@Autowired
private UserMapper userMapper;
/**
* 同步YMS平台员工信息新增或修改
* @param userEntity 用户实体
* @return boolean
*/
public boolean addOrEditYmsUser(UserEntity userEntity){
if(userEntity == null){
log.warn("同步YMS平台员工信息失败:用户实体为空");
return false;
}
// R<Long> isAddOrEdit = ymsServiceFeign.innerGetInfo(userEntity.getUserId());
YmsSysUserDTO userEntityByYms = userMapper.selectYmsByUserId(userEntity.getUserId());
// if (R.FAIL == isAddOrEdit.getCode()) {
// throw new ServiceException(isAddOrEdit.getMsg());
// }
if (userEntityByYms == null) {
//新增
return addYmsUser(userEntity);
}else {
//修改
return editYmsUser(userEntity);
}
}
/**
* 新增YMS平台员工基本信息
* @param userEntity 用户实体
* @return boolean
*/
public boolean addYmsUser(UserEntity userEntity){
YmsSysUserDTO ymsSysUserDTO = new YmsSysUserDTO();
ymsSysUserDTO.setUserName(userEntity.getUserAccount());
ymsSysUserDTO.setOrganizationId(userEntity.getOrganizationId());
ymsSysUserDTO.setTopOrganizationId(userEntity.getTopOrganizationId());
ymsSysUserDTO.setSzwlUserId(userEntity.getUserId());
ymsSysUserDTO.setNickName(userEntity.getUserName());
ymsSysUserDTO.setPhonenumber(userEntity.getUserPhone());
ymsSysUserDTO.setAvatar(userEntity.getAvatar());
ymsSysUserDTO.setPromoCode(userEntity.getPromoCode());
ymsSysUserDTO.setUserAccountType(userEntity.getUserAccountType());
ymsSysUserDTO.setPassword(userEntity.getUserPassword());
ymsSysUserDTO.setDeptId(103L);
if (StringUtils.isNotBlank(userEntity.getRoleCode())){
ymsSysUserDTO.setRoleCodes(Arrays.asList(userEntity.getRoleCode().split(",")));
}
if (StringUtils.isNotBlank(userEntity.getRoleName())){
ymsSysUserDTO.setRoleNames(Arrays.asList(userEntity.getRoleName().split(",")));
}
R<Object> result = ymsServiceFeign.innerAdd(ymsSysUserDTO);
if (R.FAIL == result.getCode()) {
throw new ServiceException(result.getMsg());
}
return true;
}
/**
* 修改YMS平台员工基本信息
* @param userEntity 用户实体
* @return boolean
*/
public boolean editYmsUser(UserEntity userEntity){
YmsSysUserDTO ymsSysUserDTO = new YmsSysUserDTO();
ymsSysUserDTO.setUserName(userEntity.getUserAccount());
ymsSysUserDTO.setSzwlUserId(userEntity.getUserId());
ymsSysUserDTO.setNickName(userEntity.getUserName());
ymsSysUserDTO.setPhonenumber(userEntity.getUserPhone());
ymsSysUserDTO.setAvatar(userEntity.getAvatar());
ymsSysUserDTO.setUserAccountType(userEntity.getUserAccountType());
if (StringUtils.isNotBlank(userEntity.getRoleCode())){
ymsSysUserDTO.setRoleCodes(Arrays.asList(userEntity.getRoleCode().split(",")));
}
if (StringUtils.isNotBlank(userEntity.getRoleName())){
ymsSysUserDTO.setRoleNames(Arrays.asList(userEntity.getRoleName().split(",")));
}
R<Object> result = ymsServiceFeign.innerEdit(ymsSysUserDTO);
if (R.FAIL == result.getCode()) {
throw new ServiceException(result.getMsg());
}
return true;
}
}
@@ -247,4 +247,7 @@ public class UserDTO extends BaseVOEntity {
@ApiModelProperty(value = "紧急联系电话")
private String emergencyContactPhone;
@ApiModelProperty("yms密码")
private String plainPassword;
}