修复bug

This commit is contained in:
cbs 2025-04-01 16:08:40 +08:00
parent 35da84a95d
commit 51d283bbbf
8 changed files with 167 additions and 21 deletions

View File

@ -191,7 +191,7 @@ public interface ErrorCodeConstants {
ErrorCode ROBOT_LAST_TASK_DELETE = new ErrorCode(1-002-034-005, "超过限制的时间,无法继续执行前一个任务"); ErrorCode ROBOT_LAST_TASK_DELETE = new ErrorCode(1-002-034-005, "超过限制的时间,无法继续执行前一个任务");
ErrorCode ROBOT_NOT_FOUND_WAIT_ITEM = new ErrorCode(1-002-034-006, "没有空闲的停车点"); ErrorCode ROBOT_NOT_FOUND_WAIT_ITEM = new ErrorCode(1-002-034-006, "没有空闲的停车点");
ErrorCode ROBOT_NOT_FOUND_FREE_CHARGING_STATION = new ErrorCode(1-002-034-007, "没有空闲的充电桩"); ErrorCode ROBOT_NOT_FOUND_FREE_CHARGING_STATION = new ErrorCode(1-002-034-007, "没有空闲的充电桩");
ErrorCode ROBOT_HAVE_DOING_TASK = new ErrorCode(1-002-034-010, "车辆有处理中的任务"); ErrorCode ROBOT_HAVE_DOING_TASK = new ErrorCode(1-002-034-010, "车辆有处理中的任务,不允许修改/删除车辆编号和Mac地址");
// ========== 机器人任务主表 1-002-035-000 ========== // ========== 机器人任务主表 1-002-035-000 ==========
ErrorCode TASK_NOT_EXISTS = new ErrorCode(1-002-035-001, "机器人任务主表不存在"); ErrorCode TASK_NOT_EXISTS = new ErrorCode(1-002-035-001, "机器人任务主表不存在");

View File

@ -156,4 +156,11 @@ public class RobotInformationController {
informationService.doTaskContinue(robotNo); informationService.doTaskContinue(robotNo);
return success(true); return success(true);
} }
@PostMapping("/getRobotByFloorAndArea")
@Operation(summary = "获取楼层区域对应的机器人编号")
@PreAuthorize("@ss.hasPermission('robot:information:getRobotByFloorAndArea')")
public CommonResult<List<String>> getRobotByFloorAndArea(@RequestParam("floor") String floor,@RequestParam("area") String area) {
return success(informationService.getRobotByFloorAndArea(floor,area));
}
} }

View File

@ -5,6 +5,7 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils; import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils;
import cn.iocoder.yudao.module.system.api.robot.vo.RobotInformationVO;
import cn.iocoder.yudao.module.system.controller.admin.houselocation.vo.WareHouseLocationPageReqVO; import cn.iocoder.yudao.module.system.controller.admin.houselocation.vo.WareHouseLocationPageReqVO;
import cn.iocoder.yudao.module.system.controller.admin.houselocation.vo.WareHouseLocationRespVO; import cn.iocoder.yudao.module.system.controller.admin.houselocation.vo.WareHouseLocationRespVO;
import cn.iocoder.yudao.module.system.controller.admin.houselocation.vo.WareHouseLocationSaveReqVO; import cn.iocoder.yudao.module.system.controller.admin.houselocation.vo.WareHouseLocationSaveReqVO;
@ -12,6 +13,7 @@ import cn.iocoder.yudao.module.system.controller.admin.houselocation.vo.WareHous
import cn.iocoder.yudao.module.system.controller.admin.log.vo.UserOperationLogSaveReqVO; import cn.iocoder.yudao.module.system.controller.admin.log.vo.UserOperationLogSaveReqVO;
import cn.iocoder.yudao.module.system.dal.dataobject.houselocation.WareHouseLocationDO; import cn.iocoder.yudao.module.system.dal.dataobject.houselocation.WareHouseLocationDO;
import cn.iocoder.yudao.module.system.dal.mysql.houselocation.WareHouseLocationMapper; import cn.iocoder.yudao.module.system.dal.mysql.houselocation.WareHouseLocationMapper;
import cn.iocoder.yudao.module.system.enums.common.ZeroOneEnum;
import cn.iocoder.yudao.module.system.enums.robot.LocationEnableEnum; import cn.iocoder.yudao.module.system.enums.robot.LocationEnableEnum;
import cn.iocoder.yudao.module.system.enums.robot.LocationUseStatusEnum; import cn.iocoder.yudao.module.system.enums.robot.LocationUseStatusEnum;
import cn.iocoder.yudao.module.system.service.log.UserOperationLogService; import cn.iocoder.yudao.module.system.service.log.UserOperationLogService;
@ -25,6 +27,8 @@ import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.function.Function;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import static cn.hutool.core.collection.CollUtil.isNotEmpty; import static cn.hutool.core.collection.CollUtil.isNotEmpty;
@ -62,8 +66,27 @@ public class HouseLocationServiceImpl extends ServiceImpl<WareHouseLocationMappe
public void updateHouseLocation(WareHouseLocationSaveReqVO updateReqVO) { public void updateHouseLocation(WareHouseLocationSaveReqVO updateReqVO) {
// 校验存在 // 校验存在
validateHouseLocationExists(updateReqVO.getId()); validateHouseLocationExists(updateReqVO.getId());
String str = "修改库位信息 ";
WareHouseLocationDO wareHouseLocationDO = houseLocationMapper.selectById(updateReqVO.getId()); WareHouseLocationDO wareHouseLocationDO = houseLocationMapper.selectById(updateReqVO.getId());
// 更新
WareHouseLocationDO updateObj = BeanUtils.toBean(updateReqVO, WareHouseLocationDO.class);
String str = getChangeInfo(wareHouseLocationDO, updateObj);
if (ObjectUtil.isNotEmpty(str)) {
str = "修改库位信息:" + updateReqVO.getLocationNo() + "_" + str;
}
UserOperationLogSaveReqVO operationLog = UserOperationLogSaveReqVO.builder()
.operateAction(str)
.nickName(SecurityFrameworkUtils.getLoginUserNickname()).build();
userOperationLogService.createUserOperationLog(operationLog);
houseLocationMapper.updateById(updateObj);
}
public String getChangeInfo(WareHouseLocationDO wareHouseLocationDO, WareHouseLocationDO updateReqVO) {
String str = "";
if (!wareHouseLocationDO.getLocationEnable().equals(updateReqVO.getLocationEnable())) { if (!wareHouseLocationDO.getLocationEnable().equals(updateReqVO.getLocationEnable())) {
if (LocationEnableEnum.YES.getType().equals(updateReqVO.getLocationEnable())) { if (LocationEnableEnum.YES.getType().equals(updateReqVO.getLocationEnable())) {
str = str + "设置库位" + LocationEnableEnum.YES.getMsg() + " "; str = str + "设置库位" + LocationEnableEnum.YES.getMsg() + " ";
@ -91,15 +114,16 @@ public class HouseLocationServiceImpl extends ServiceImpl<WareHouseLocationMappe
str = str + "设置库位物料信息为 " + updateReqVO.getSkuInfo(); str = str + "设置库位物料信息为 " + updateReqVO.getSkuInfo();
} }
UserOperationLogSaveReqVO operationLog = UserOperationLogSaveReqVO.builder() if (!wareHouseLocationDO.getLocationUseStatus().equals(updateReqVO.getLocationUseStatus())
.operateAction(str) && ZeroOneEnum.ZERO.getType().equals(updateReqVO.getLocationUseStatus())) {
.nickName(SecurityFrameworkUtils.getLoginUserNickname()).build(); str = str + "设置库位锁定状态为正常" ;
userOperationLogService.createUserOperationLog(operationLog); }else if (!wareHouseLocationDO.getLocationUseStatus().equals(updateReqVO.getLocationUseStatus())
// 更新 && ZeroOneEnum.ONE.getType().equals(updateReqVO.getLocationUseStatus())) {
WareHouseLocationDO updateObj = BeanUtils.toBean(updateReqVO, WareHouseLocationDO.class); str = str + "设置库位锁定状态为锁定" ;
houseLocationMapper.updateById(updateObj); }
return str;
} }
@Override @Override
@ -147,7 +171,7 @@ public class HouseLocationServiceImpl extends ServiceImpl<WareHouseLocationMappe
@Override @Override
public void updateLocationLaneNameByLaneId(Long laneId, String laneName) { public void updateLocationLaneNameByLaneId(Long laneId, String laneName) {
houseLocationMapper.updateLocationLaneNameByLaneId(laneId,laneName); houseLocationMapper.updateLocationLaneNameByLaneId(laneId, laneName);
} }
@Override @Override
@ -156,15 +180,39 @@ public class HouseLocationServiceImpl extends ServiceImpl<WareHouseLocationMappe
} }
@Override @Override
@Transactional(rollbackFor = Exception.class)
public void updateHouseLocationList(List<WareHouseLocationSaveReqVO> list) { public void updateHouseLocationList(List<WareHouseLocationSaveReqVO> list) {
List<WareHouseLocationDO> locationDOList = BeanUtils.toBean(list, WareHouseLocationDO.class); List<WareHouseLocationDO> locationDOList = BeanUtils.toBean(list, WareHouseLocationDO.class);
List<String> locationNos = locationDOList.stream().map(WareHouseLocationDO::getLocationNo).collect(Collectors.toList());
List<WareHouseLocationDO> locations = houseLocationMapper.selectList(new LambdaQueryWrapper<WareHouseLocationDO>()
.in(WareHouseLocationDO::getLocationNo, locationNos));
Map<Long, WareHouseLocationDO> locationMap =
locations.stream().collect(Collectors.toMap(WareHouseLocationDO::getId, Function.identity(), (v1, v2) -> v1));
houseLocationMapper.updateById(locationDOList); houseLocationMapper.updateById(locationDOList);
List<String> locationNos = locationDOList.stream().map(WareHouseLocationDO::getLocationNo).collect(Collectors.toList()); StringBuilder str = new StringBuilder();
String str = StringUtils.join(locationNos, ","); for (WareHouseLocationDO updateLocation : locationDOList) {
WareHouseLocationDO oldLocation = locationMap.get(updateLocation.getId());
if (ObjectUtil.isEmpty(oldLocation)) {
continue;
}
String updateStr = getChangeInfo(oldLocation, updateLocation);
if (ObjectUtil.isNotEmpty(updateStr)) {
str.append("修改库位信息:").append(oldLocation.getLocationNo()).append("_").append(updateStr).append(";");
}
}
if (ObjectUtil.isEmpty(str.toString())) {
return;
}
if (str.length() > 100) {
str = new StringBuilder(str.substring(0, 95));
}
UserOperationLogSaveReqVO operationLog = UserOperationLogSaveReqVO.builder() UserOperationLogSaveReqVO operationLog = UserOperationLogSaveReqVO.builder()
.operateAction(str) .operateAction(str.toString())
.nickName(SecurityFrameworkUtils.getLoginUserNickname()).build(); .nickName(SecurityFrameworkUtils.getLoginUserNickname()).build();
userOperationLogService.createUserOperationLog(operationLog); userOperationLogService.createUserOperationLog(operationLog);
} }

View File

@ -17,15 +17,18 @@ import cn.iocoder.yudao.module.system.dal.dataobject.config.CommonConfigDO;
import cn.iocoder.yudao.module.system.dal.dataobject.dict.DictDataDO; import cn.iocoder.yudao.module.system.dal.dataobject.dict.DictDataDO;
import cn.iocoder.yudao.module.system.dal.dataobject.information.DeviceInformationDO; import cn.iocoder.yudao.module.system.dal.dataobject.information.DeviceInformationDO;
import cn.iocoder.yudao.module.system.dal.dataobject.positionmap.PositionMapDO; import cn.iocoder.yudao.module.system.dal.dataobject.positionmap.PositionMapDO;
import cn.iocoder.yudao.module.system.dal.dataobject.positionmap.PositionMapItemDO;
import cn.iocoder.yudao.module.system.dal.mysql.information.DeviceInformationMapper; import cn.iocoder.yudao.module.system.dal.mysql.information.DeviceInformationMapper;
import cn.iocoder.yudao.module.system.dal.mysql.positionmap.PositionMapMapper; import cn.iocoder.yudao.module.system.dal.mysql.positionmap.PositionMapMapper;
import cn.iocoder.yudao.module.system.enums.device.DeviceAttributeEnum; import cn.iocoder.yudao.module.system.enums.device.DeviceAttributeEnum;
import cn.iocoder.yudao.module.system.enums.device.DeviceStatusEnum; import cn.iocoder.yudao.module.system.enums.device.DeviceStatusEnum;
import cn.iocoder.yudao.module.system.enums.device.DeviceTypeEnum; import cn.iocoder.yudao.module.system.enums.device.DeviceTypeEnum;
import cn.iocoder.yudao.module.system.enums.device.PictureConfigEnum; import cn.iocoder.yudao.module.system.enums.device.PictureConfigEnum;
import cn.iocoder.yudao.module.system.enums.item.PositionMapItemEnum;
import cn.iocoder.yudao.module.system.service.config.CommonConfigService; import cn.iocoder.yudao.module.system.service.config.CommonConfigService;
import cn.iocoder.yudao.module.system.service.dict.DictDataService; import cn.iocoder.yudao.module.system.service.dict.DictDataService;
import cn.iocoder.yudao.module.system.service.log.UserOperationLogService; import cn.iocoder.yudao.module.system.service.log.UserOperationLogService;
import cn.iocoder.yudao.module.system.service.positionmap.PositionMapItemService;
import cn.iocoder.yudao.module.system.service.robot.RobotWarnMsgService; import cn.iocoder.yudao.module.system.service.robot.RobotWarnMsgService;
import cn.iocoder.yudao.module.system.util.modbus3.ModbusUtils; import cn.iocoder.yudao.module.system.util.modbus3.ModbusUtils;
import cn.iocoder.yudao.module.system.util.redis.RedisUtil; import cn.iocoder.yudao.module.system.util.redis.RedisUtil;
@ -83,6 +86,9 @@ public class DeviceInformationServiceImpl extends ServiceImpl<DeviceInformationM
@Resource @Resource
private CommonConfigService configService; private CommonConfigService configService;
@Resource
private PositionMapItemService positionMapItemService;
@Override @Override
public Long createInformation(DeviceInformationSaveReqVO createReqVO) { public Long createInformation(DeviceInformationSaveReqVO createReqVO) {
// -- 先判断库里是否有相通的mac地址数据 // -- 先判断库里是否有相通的mac地址数据
@ -138,6 +144,7 @@ public class DeviceInformationServiceImpl extends ServiceImpl<DeviceInformationM
} }
@Override @Override
@Transactional(rollbackFor = Exception.class)
public void deleteInformation(Long id) { public void deleteInformation(Long id) {
// 校验存在 // 校验存在
validateInformationExists(id); validateInformationExists(id);
@ -148,6 +155,13 @@ public class DeviceInformationServiceImpl extends ServiceImpl<DeviceInformationM
// 删除 // 删除
informationMapper.deleteById(id); informationMapper.deleteById(id);
if (ObjectUtil.isNotEmpty(deviceInformationDO.getPositionMapItemId())) {
PositionMapItemDO positionMapItem = positionMapItemService.getPositionMapItem(deviceInformationDO.getPositionMapItemId());
positionMapItem.setType(PositionMapItemEnum.PATH.getType());
positionMapItem.setDataJson(null);
positionMapItemService.updateById(positionMapItem);
}
userOperationLogService.createUserOperationLog(operationLog); userOperationLogService.createUserOperationLog(operationLog);
} }
@ -307,10 +321,12 @@ public class DeviceInformationServiceImpl extends ServiceImpl<DeviceInformationM
// todo 需要设置设备通讯的时间 // todo 需要设置设备通讯的时间
for (DeviceInformationRespVO deviceInformationDO : beans) { for (DeviceInformationRespVO deviceInformationDO : beans) {
PositionMapDO positionMapDO = positionMap.get(deviceInformationDO.getPositionMapId());
if (ObjectUtil.isNotEmpty(deviceInformationDO.getPositionMapId()) if (ObjectUtil.isNotEmpty(deviceInformationDO.getPositionMapId())
&& ObjectUtil.isNotEmpty(positionMap.get(deviceInformationDO.getPositionMapId()))) { && ObjectUtil.isNotEmpty(positionMapDO)) {
deviceInformationDO.setFloor(positionMap.get(deviceInformationDO.getPositionMapId()).getFloor() + ""); deviceInformationDO.setFloor(positionMapDO.getFloor() + "");
deviceInformationDO.setArea(positionMap.get(deviceInformationDO.getPositionMapId()).getArea()); deviceInformationDO.setArea(positionMapDO.getArea());
deviceInformationDO.setDeviceLocation(positionMapDO.getFloor()+"层-"+positionMapDO.getArea());
} }
String deviceKey = DeviceChcheConstant.DEVICE_LAST_TIME + deviceInformationDO.getMacAddress(); String deviceKey = DeviceChcheConstant.DEVICE_LAST_TIME + deviceInformationDO.getMacAddress();

View File

@ -158,4 +158,12 @@ public interface RobotInformationService extends IService<RobotInformationDO> {
* @param orderType * @param orderType
*/ */
void robotCloseTaskDetail(String id, String mac, String orderType); void robotCloseTaskDetail(String id, String mac, String orderType);
/**
* 获取楼层区域对应的机器人编号
* @param floor
* @param area
* @return
*/
List<String> getRobotByFloorAndArea(String floor, String area);
} }

View File

@ -208,8 +208,14 @@ public class RobotInformationServiceImpl extends ServiceImpl<RobotInformationMap
// 校验存在 // 校验存在
validateInformationExists(updateReqVO.getId()); validateInformationExists(updateReqVO.getId());
RobotInformationDO robotInformationDO = informationMapper.selectById(updateReqVO.getId()); RobotInformationDO robotInformationDO = informationMapper.selectById(updateReqVO.getId());
if (robotInformationDO == null) {
throw exception(ROBOT_INFORMATION_NOT_EXISTS); if (!updateReqVO.getRobotNo().equals(robotInformationDO.getRobotNo())
|| !updateReqVO.getMacAddress().equals(robotInformationDO.getMacAddress())) {
List<RobotTaskDO> list = taskMapper.selectDoingTaskByRobotNo(robotInformationDO.getRobotNo());
if (ObjectUtil.isNotEmpty(list)) {
throw exception(ROBOT_HAVE_DOING_TASK);
}
} }
//校验MAC地址 //校验MAC地址
@ -747,14 +753,21 @@ public class RobotInformationServiceImpl extends ServiceImpl<RobotInformationMap
|| PathTaskTypeEnum.RELEASE.getType().equals(log.getCommandType())) { || PathTaskTypeEnum.RELEASE.getType().equals(log.getCommandType())) {
takeReleaseCleanTrafficManagement(robotTaskDetail); takeReleaseCleanTrafficManagement(robotTaskDetail);
} }
//不释放机器人状态怕机器人接新任务
RobotInformationDO robotInformationDO = informationMapper.selectOne(new LambdaQueryWrapper<RobotInformationDO>()
.eq(RobotInformationDO::getRobotNo, robotNo)
.last("limit 1"));
robotInformationDO.setRobotStatus(RobotStatusEnum.STAND_BY.getType());
robotInformationDO.setRobotTaskModel(RobotTaskModelEnum.REJECTION.getType());
informationMapper.updateById(robotInformationDO);
} }
public RobotTaskDetailActionLogDO closeTask(String robotNo) { public RobotTaskDetailActionLogDO closeTask(String robotNo) {
CleanAgvDTO build = CleanAgvDTO.builder().robotNo(robotNo).build(); CleanAgvDTO build = CleanAgvDTO.builder().robotNo(robotNo).build();
commonApi.commonMethod(build, PathPlanningTopicConstant.CLEAN_AGV); commonApi.commonMethod(build, PathPlanningTopicConstant.CLEAN_AGV);
RobotTaskDetailActionLogDO log = taskDetailActionLogService.getLastTaskByRobotNo(robotNo); RobotTaskDetailActionLogDO log = taskDetailActionLogService.getLastTaskByRobotNo(robotNo);
if (ObjectUtil.isEmpty(log) || ActionStatusEnum.DONE.getType().equals(log.getActionStatus())) { if (ObjectUtil.isEmpty(log) || ActionStatusEnum.DONE.getType().equals(log.getActionStatus())
|| ActionStatusEnum.CLOSE.getType().equals(log.getActionStatus())) {
return null; return null;
} }
String mac = getMacByRobotNo(robotNo); String mac = getMacByRobotNo(robotNo);
@ -768,6 +781,7 @@ public class RobotInformationServiceImpl extends ServiceImpl<RobotInformationMap
* @param robotNo * @param robotNo
*/ */
@Override @Override
@Transactional(rollbackFor = Exception.class)
public void doTaskContinue(String robotNo) { public void doTaskContinue(String robotNo) {
UserOperationLogSaveReqVO operationLog = UserOperationLogSaveReqVO.builder() UserOperationLogSaveReqVO operationLog = UserOperationLogSaveReqVO.builder()
.operateAction("继续做任务 " + robotNo) .operateAction("继续做任务 " + robotNo)
@ -805,6 +819,17 @@ public class RobotInformationServiceImpl extends ServiceImpl<RobotInformationMap
if (ObjectUtil.isNotEmpty(msg)) { if (ObjectUtil.isNotEmpty(msg)) {
throw exception0(TASK_CHECK_EXCEPTION.getCode(), msg); throw exception0(TASK_CHECK_EXCEPTION.getCode(), msg);
} }
RobotInformationDO robotInformationDO = informationMapper.selectOne(new LambdaQueryWrapper<RobotInformationDO>()
.eq(RobotInformationDO::getRobotNo, robotNo)
.last("limit 1"));
if (PathTaskTypeEnum.CHARGE.getType().equals(pathPlanning.getOrderType())
|| PathTaskTypeEnum.AUTO_CHARGE.getType().equals(pathPlanning.getOrderType())) {
robotInformationDO.setRobotStatus(RobotStatusEnum.CHARGE.getType());
}else {
robotInformationDO.setRobotStatus(RobotStatusEnum.DOING.getType());
}
informationMapper.updateById(robotInformationDO);
} }
/** /**
@ -1050,5 +1075,36 @@ public class RobotInformationServiceImpl extends ServiceImpl<RobotInformationMap
commonApi.commonMethod(robotTask, robotTask.getTopic()); commonApi.commonMethod(robotTask, robotTask.getTopic());
} }
/**
* 获取楼层区域对应的机器人编号
* @param floor
* @param area
* @return
*/
@Override
public List<String> getRobotByFloorAndArea(String floor, String area) {
RobotInformationDO query = new RobotInformationDO();
List<RobotInformationDO> robotInformations = informationMapper.queryAllByLimit(query);
List<String> list = new ArrayList<>();
if (ObjectUtil.isEmpty(robotInformations)) {
return list;
}
for (RobotInformationDO robotInformationDO : robotInformations) {
String floorAreaKey = RobotTaskChcheConstant.ROBOT_FLOOR_AREA + robotInformationDO.getMacAddress();
Object floorAreaObject = redisUtil.get(floorAreaKey);
if (ObjectUtil.isEmpty(floorAreaObject)) {
continue;
}
FloorZoneDTO floorZoneDTO = JSONUtil.toBean((String) floorAreaObject, FloorZoneDTO.class);
if (floor.equals(floorZoneDTO.getFloor()) && area.equals(floorZoneDTO.getArea()) ) {
list.add(robotInformationDO.getRobotNo());
}
}
return list;
}
} }

View File

@ -181,13 +181,19 @@ public class RobotTaskServiceImpl extends ServiceImpl<RobotTaskMapper, RobotTask
String addResult = ""; String addResult = "";
if (lock.tryLock(60l, TimeUnit.MINUTES)) { if (lock.tryLock(60l, TimeUnit.MINUTES)) {
try { /*try {
addResult = addTask(createReqVO); addResult = addTask(createReqVO);
} catch (Exception e) { } catch (Exception e) {
log.error("下发任务出现异常 :{}", e); log.error("下发任务出现异常 :{}", e);
addResult = ObjectUtil.isNotEmpty(e.getMessage()) ? e.getMessage(): "创建任务失败"; addResult = ObjectUtil.isNotEmpty(e.getMessage()) ? e.getMessage(): "创建任务失败";
} finally { } finally {
lock.unlock(); lock.unlock();
}*/
try {
addResult = addTask(createReqVO);
} finally {
lock.unlock();
} }
} else { } else {
throw exception(REDISSON_NOT_OBTAIN_LOCK); throw exception(REDISSON_NOT_OBTAIN_LOCK);

View File

@ -272,6 +272,11 @@ public class AdminUserServiceImpl implements AdminUserService {
// 2.2 删除用户岗位 // 2.2 删除用户岗位
userPostMapper.deleteByUserId(id); userPostMapper.deleteByUserId(id);
UserOperationLogSaveReqVO operationLog = UserOperationLogSaveReqVO.builder()
.operateAction("删除用户 " + user.getUsername())
.nickName(SecurityFrameworkUtils.getLoginUserNickname()).build();
userOperationLogService.createUserOperationLog(operationLog);
// 3. 记录操作日志上下文 // 3. 记录操作日志上下文
LogRecordContext.putVariable("user", user); LogRecordContext.putVariable("user", user);
} }