# Conflicts:
#	yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/houselocation/HouseLocationService.java
#	yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/houselocation/HouseLocationServiceImpl.java
This commit is contained in:
aikai 2025-04-01 15:45:09 +08:00
commit 2c7efa2e0f
8 changed files with 53 additions and 1 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

@ -38,4 +38,7 @@ public class RobotTaskDetailLogResoVO {
@Schema(description = "计算后的来源库位编号")
private String fromLocationNo;
@Schema(description = "任务阶段(0:待执行、1前往取货、2取货中、3前往放货、4放货中、5结束、6移动中、7:正在充电、8:取消、9:人工完成、10:异常)")
private Long taskStage;
}

View File

@ -30,4 +30,7 @@ public class RobotTaskDetailLogVO extends PageParam {
@Schema(description = "关键词")
private String msg;
@Schema(description = "任务阶段(0:待执行、1前往取货、2取货中、3前往放货、4放货中、5结束、6移动中、7:正在充电、8:取消、9:人工完成、10:异常)")
private Long taskStage;
}

View File

@ -108,6 +108,12 @@ public interface HouseLocationService extends IService<WareHouseLocationDO> {
*/
void updateLocationLaneNameEmptyByLaneId(Long laneId);
/**
* 批量更新库位
* @param list
*/
void updateHouseLocationList(List<WareHouseLocationSaveReqVO> list);
/**
* 设置库区名称和id为空
* @param id

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;
@ -158,6 +160,20 @@ public class HouseLocationServiceImpl extends ServiceImpl<WareHouseLocationMappe
houseLocationMapper.updateLocationAreaNameEmptyByAreaId(areaId);
}
@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;

View File

@ -299,7 +299,8 @@
t2.start_time as startTime,
t2.end_time as endTime,
t2.from_location_no as fromLocationNo,
t2.to_location_no as toLocationNo
t2.to_location_no as toLocationNo,
t2.task_stage as taskStage
from
robot_task t1 inner join robot_task_detail t2
on t1.id = t2.robot_task_id
@ -324,6 +325,9 @@
<if test="pageReqVO.endTime!=null ">
AND t1.create_time &lt;= #{pageReqVO.endTime}
</if>
<if test="pageReqVO.taskStage != null">
and t2.task_stage = #{pageReqVO.taskStage}
</if>
</where>
order by t1.create_time desc
</select>