diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/houselocation/WareHouseLocationController.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/houselocation/WareHouseLocationController.java index 95e303575..240a6d29a 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/houselocation/WareHouseLocationController.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/houselocation/WareHouseLocationController.java @@ -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 updateHouseLocationList(@Valid @RequestBody List list) { + houseLocationService.updateHouseLocationList(list); + return success(true); + } } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/houselocation/HouseLocationService.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/houselocation/HouseLocationService.java index 642e9e4e0..dc240a53d 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/houselocation/HouseLocationService.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/houselocation/HouseLocationService.java @@ -107,4 +107,10 @@ public interface HouseLocationService extends IService { * @param id */ void updateLocationLaneNameEmptyByLaneId(Long laneId); + + /** + * 批量更新库位 + * @param list + */ + void updateHouseLocationList(List list); } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/houselocation/HouseLocationServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/houselocation/HouseLocationServiceImpl.java index 206a7fa2a..028778496 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/houselocation/HouseLocationServiceImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/houselocation/HouseLocationServiceImpl.java @@ -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 list) { + List locationDOList = BeanUtils.toBean(list, WareHouseLocationDO.class); + houseLocationMapper.updateById(locationDOList); + + List 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) { diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/robot/RobotInformationServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/robot/RobotInformationServiceImpl.java index ba2d466ec..09b0d63ab 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/robot/RobotInformationServiceImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/robot/RobotInformationServiceImpl.java @@ -270,6 +270,9 @@ public class RobotInformationServiceImpl extends ServiceImpl taskDetailDOS = taskDetailMapper.selectList(new LambdaQueryWrapperX() + .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;