AGV小车对接表

mapper service等增加
liweidong
绫Umbrella 1 month ago
parent 7e3cd7857f
commit f56821459a
  1. 109
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/logistics/pojo/entity/TaskExecuteRecord.java
  2. 19
      blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/controller/AGVDockingController.java
  3. 10
      blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/mapper/TaskExecuteRecordMapper.java
  4. 15
      blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/mapper/TaskExecuteRecordMapper.xml
  5. 6
      blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/service/IStorageMonitoringService.java
  6. 40
      blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/service/ITaskExecuteRecordService.java
  7. 5
      blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/service/impl/IOrderBoxServiceImpl.java
  8. 50
      blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/service/impl/StorageMonitoringServiceImpl.java
  9. 49
      blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/service/impl/TaskExecuteRecordServiceImpl.java

@ -0,0 +1,109 @@
package org.springblade.desk.logistics.pojo.entity;
/**
* @author: liweidong
* @create: 2026-03-03
*/
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.core.mp.base.BaseEntity;
import java.io.Serial;
/**
* 物流库位实体类
*
* @author
* @since
*/
@Data
@TableName("LM_TASK_EXECUTE_RECORD")
@Schema(description = "AGV小车对接表")
@EqualsAndHashCode(callSuper = true)
public class TaskExecuteRecord extends BaseEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
* 状态常量任务开始
*/
public static final String STATUS_START = "start";
/**
* 状态常量走出储位
*/
public static final String STATUS_END = "end";
/**
* 状态常量任务单取消
*/
public static final String STATUS_CANCEL = "cancel";
/**
* 状态常量走出储位
*/
public static final String STATUS_OUTBIN = "outbin";
/**
* 状态常量CTU料箱取放申请
*/
public static final String STATUS_APPLY = "apply";
/**
* 状态常量送料申请
*/
public static final String STATUS_FROMAGV = "fromAgv";
/**
* 状态常量对接结束释放
*/
public static final String STATUS_RELEASE = "release";
/**
* 状态常量放料申请
*/
public static final String STATUS_TOAGV = "toAgv";
/**
* 任务的ID
*/
@Schema(description = "任务的ID")
private Long taskId;
/**
* 默认使用方式: start:任务开始 outbin:走出储位 end:任务结束 cancel:任务单取消 apply:CTU料箱取放申请
*/
@Schema(description = "默认使用方式: start:任务开始 outbin:走出储位 end:任务结束 cancel:任务单取消 apply:CTU料箱取放申请")
private String method;
/**
* 开始位置
*/
@Schema(description = "开始位置")
private String startPos;
/**
* 结束位置
*/
@Schema(description = "结束位置")
private String endPos;
/**
* AGV编号
*/
@Schema(description = "AGV编号")
private String robotCode;
/**
* 备注
*/
@Schema(description = "备注")
private String remark;
}

@ -0,0 +1,19 @@
package org.springblade.desk.logistics.controller;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.AllArgsConstructor;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* 订单箱子 控制器
*
* @author BladeX
* @since 2026-03-03
*/
@RestController
@AllArgsConstructor
@RequestMapping("/order")
@Tag(name = "订单箱子", description = "订单箱子称重接口")
public class AGVDockingController {
}

@ -0,0 +1,10 @@
package org.springblade.desk.logistics.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.springblade.desk.logistics.pojo.entity.TaskExecuteRecord;
import java.util.List;
public interface TaskExecuteRecordMapper extends BaseMapper<TaskExecuteRecord> {
}

@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace = "org.springblade.desk.logistics.mapper.TaskMapper">
<select id="selectByBoxBarcode" resultType="org.springblade.desk.logistics.pojo.entity.Task">
SELECT id, box_barcode, station_id, location_id, task_status, weight, machine_weight, status, create_user, create_time, create_dept, update_user, update_time, is_deleted, wc_id,remark
FROM LM_TASK
WHERE IS_DELETED = 0
AND BOX_BARCODE = #{boxBarcode}
AND TASK_STATUS NOT IN (2, 9);
</select>
</mapper>

@ -0,0 +1,6 @@
package org.springblade.desk.logistics.service;
public interface IStorageMonitoringService {
void monitoringStation();
}

@ -0,0 +1,40 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.desk.logistics.service;
import org.springblade.core.mp.base.BaseService;
import org.springblade.desk.logistics.pojo.entity.OrderBind;
import org.springblade.desk.logistics.pojo.entity.TaskExecuteRecord;
/**
* 物流小车对接实体类 服务类
*
* @author BladeX
* @since 2025-11-12
*/
public interface ITaskExecuteRecordService extends BaseService<TaskExecuteRecord> {
}

@ -3,11 +3,13 @@ package org.springblade.desk.logistics.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import lombok.extern.slf4j.Slf4j;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.api.R;
import org.springblade.desk.logistics.pojo.entity.*;
import org.springblade.desk.logistics.service.*;
import org.springblade.desk.order.pojo.entity.YieldOrder;
import org.springblade.desk.order.service.IYieldOrderService;
import org.springblade.system.pojo.entity.AuthClient;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
@ -156,7 +158,7 @@ public class IOrderBoxServiceImpl implements IOrderBoxService {
task= (Task) location.getData();
task.setTaskStatus(Task.STATUS_START); // 设置任务初始状态为启动
task.setCreateTime(new Date()); // 设置任务创建时间
task.setCreateUser(AuthUtil.getUserId());
// 7. 计算订单总重量(无订单则重量为0)
boolean orderBool = boxBinding.getOrderIdList() == null || boxBinding.getOrderIdList().size() == 0;
if (orderBool) {
@ -164,7 +166,6 @@ public class IOrderBoxServiceImpl implements IOrderBoxService {
}else {
task.setWeight(getWeightByOrderIdList(boxBinding.getOrderIdList()));
}
// 8. 重量校验(小于50kg才允许绑定,避免超重)
if (task.getWeight().compareTo(BigDecimal.valueOf(50)) > 0) {
return R.fail("箱条码绑定的订单重量过重,请重新进行绑定");

@ -0,0 +1,50 @@
package org.springblade.desk.logistics.service.impl;
import org.springblade.desk.logistics.pojo.entity.Task;
import org.springblade.desk.logistics.service.ILocationService;
import org.springblade.desk.logistics.service.IStationService;
import org.springblade.desk.logistics.service.IStorageMonitoringService;
import org.springblade.desk.logistics.service.ITaskService;
import org.springframework.stereotype.Service;
import java.util.HashSet;
import java.util.Set;
@Service
public class StorageMonitoringServiceImpl implements IStorageMonitoringService {
private static final Set<Integer> RUNNING_STATUSES = new HashSet<>();
static {
// 初始化运行中任务状态
RUNNING_STATUSES.add(Task.STATUS_START); // 任务启动
RUNNING_STATUSES.add(Task.STATUS_CONVEYOR_START); // 输送机启动
RUNNING_STATUSES.add(Task.STATUS_CONVEYOR_END); // 输送机结束
RUNNING_STATUSES.add(Task.STATUS_STATION); // 站点状态
RUNNING_STATUSES.add(Task.STATUS_LOCATION); // 库位状态
RUNNING_STATUSES.add(Task.STATUS_WAITING); // 等待状态
RUNNING_STATUSES.add(Task.STATUS_STATION_RECEIVE);// 站点接收
RUNNING_STATUSES.add(Task.STATUS_BACK_TO_STORAGE);// 返库状态
}
/**
* 任务服务处理箱绑定任务的创建状态更新删除等
*/
private final ITaskService iTaskService;
/**
* 站点服务处理站点状态占用/空闲管理
*/
private final IStationService iStationService;
/**
* 库位服务处理库位状态占用/空闲管理
*/
private final ILocationService iLocationService;
public StorageMonitoringServiceImpl(ITaskService iTaskService, IStationService iStationService, ILocationService iLocationService) {
this.iTaskService = iTaskService;
this.iStationService = iStationService;
this.iLocationService = iLocationService;
}
@Override
public void monitoringStation() {
}
}

@ -0,0 +1,49 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.desk.logistics.service.impl;
import lombok.extern.slf4j.Slf4j;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.desk.logistics.mapper.OrderBindMapper;
import org.springblade.desk.logistics.mapper.TaskExecuteRecordMapper;
import org.springblade.desk.logistics.pojo.entity.OrderBind;
import org.springblade.desk.logistics.pojo.entity.TaskExecuteRecord;
import org.springblade.desk.logistics.service.IOrderBindService;
import org.springblade.desk.logistics.service.ITaskExecuteRecordService;
import org.springframework.stereotype.Service;
/**
* 物流小车对接实体类 服务实现类
*
* @author BladeX
* @since 2025-11-12
*/
@Service
@Slf4j
public class TaskExecuteRecordServiceImpl extends BaseServiceImpl<TaskExecuteRecordMapper, TaskExecuteRecord> implements ITaskExecuteRecordService {
}
Loading…
Cancel
Save