批量更新库位信息

This commit is contained in:
cbs 2025-04-01 09:10:56 +08:00
parent fce696c504
commit 35da84a95d
5 changed files with 42 additions and 0 deletions

View File

@ -108,4 +108,11 @@ public class WareHouseLocationController {
return success(houseLocationService.getLocationByName(requestVO));
}
@PutMapping("/updateBatch")
@Operation(summary = "批量更新库位")
@PreAuthorize("@ss.hasPermission('ware:house-location:updateBatch')")
public CommonResult<Boolean> updateHouseLocationList(@Valid @RequestBody List<WareHouseLocationSaveReqVO> list) {
houseLocationService.updateHouseLocationList(list);
return success(true);
}
}

View File

@ -107,4 +107,10 @@ public interface HouseLocationService extends IService<WareHouseLocationDO> {
* @param id
*/
void updateLocationLaneNameEmptyByLaneId(Long laneId);
/**
* 批量更新库位
* @param list
*/
void updateHouseLocationList(List<WareHouseLocationSaveReqVO> list);
}

View File

@ -17,6 +17,7 @@ import cn.iocoder.yudao.module.system.enums.robot.LocationUseStatusEnum;
import cn.iocoder.yudao.module.system.service.log.UserOperationLogService;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated;
@ -24,6 +25,7 @@ import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource;
import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;
import static cn.hutool.core.collection.CollUtil.isNotEmpty;
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
@ -153,6 +155,20 @@ public class HouseLocationServiceImpl extends ServiceImpl<WareHouseLocationMappe
houseLocationMapper.updateLocationLaneNameEmptyByLaneId(laneId);
}
@Override
public void updateHouseLocationList(List<WareHouseLocationSaveReqVO> list) {
List<WareHouseLocationDO> locationDOList = BeanUtils.toBean(list, WareHouseLocationDO.class);
houseLocationMapper.updateById(locationDOList);
List<String> locationNos = locationDOList.stream().map(WareHouseLocationDO::getLocationNo).collect(Collectors.toList());
String str = StringUtils.join(locationNos, ",");
UserOperationLogSaveReqVO operationLog = UserOperationLogSaveReqVO.builder()
.operateAction(str)
.nickName(SecurityFrameworkUtils.getLoginUserNickname()).build();
userOperationLogService.createUserOperationLog(operationLog);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void batchSaveOrEditOrDel(Long positionMapId, List<List<WareHouseLocationDO>> list) {

View File

@ -270,6 +270,9 @@ public class RobotInformationServiceImpl extends ServiceImpl<RobotInformationMap
throw exception(ROBOT_HAVE_DOING_TASK);
}
redisUtil.del(RobotTaskChcheConstant.ROBOT_GET_ROBOTNO_BY_MAC + robotInformationDO.getMacAddress());
redisUtil.del(RobotTaskChcheConstant.ROBOT_GET_MAC_BY_NO + robotInformationDO.getRobotNo());
UserOperationLogSaveReqVO operationLog = UserOperationLogSaveReqVO.builder()
.operateAction("删除车辆 " + robotInformationDO.getRobotNo())
.nickName(SecurityFrameworkUtils.getLoginUserNickname()).build();

View File

@ -138,6 +138,16 @@ public class RobotTaskDetailServiceImpl implements RobotTaskDetailService {
robotTaskDetailDO.setTaskStage(RobotTaskStageEnum.MANUALLY_COMPLETED.getType());
taskDetailMapper.updateById(robotTaskDetailDO);
List<RobotTaskDetailDO> taskDetailDOS = taskDetailMapper.selectList(new LambdaQueryWrapperX<RobotTaskDetailDO>()
.eq(RobotTaskDetailDO::getRobotTaskId, robotTaskDetailDO.getRobotTaskId())
.in(RobotTaskDetailDO::getTaskStatus, RobotTaskStatusEnum.NEW.getType(), RobotTaskStatusEnum.DOING.getType()));
if (ObjectUtil.isEmpty(taskDetailDOS)) {
RobotTaskDO robotTask = RobotTaskDO.builder()
.id(robotTaskDetailDO.getRobotTaskId())
.taskStatus(RobotTaskStatusEnum.DONE.getType()).build();
robotTaskMapper.updateRobot(robotTask);
}
RobotTaskDetailActionLogDO log = taskDetailActionLogService.getLastTaskByRobotNo(robotTaskDetailDO.getRobotNo());
if (ObjectUtil.isEmpty(log) || !log.getTaskDetailId().equals(taskDetailId)) {
return;