1. 优化is_working字段,防止阻塞。2. 优化sender,每次只下发一个任务给wcs,修改睡眠为扫描wait状态的任务。3. 优化项目结构,解决warning

This commit is contained in:
李宇奇 2025-08-12 19:56:11 +08:00
parent 52586a5d92
commit 3b53a31cb3
115 changed files with 588 additions and 990 deletions

View File

@ -11,12 +11,42 @@
Target Server Version : 80042 (8.0.42) Target Server Version : 80042 (8.0.42)
File Encoding : 65001 File Encoding : 65001
Date: 21/07/2025 17:09:56 Date: 12/08/2025 19:51:22
*/ */
SET NAMES utf8mb4; SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0; SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for t_app_agv_lock
-- ----------------------------
DROP TABLE IF EXISTS `t_app_agv_lock`;
CREATE TABLE `t_app_agv_lock` (
`lock_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '锁定ID主键',
`agv_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT 'AGV设备ID',
`feed_station` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '上料站点(入库口编号)',
`lock_status` tinyint(1) NOT NULL DEFAULT 1 COMMENT '锁定状态: 1-锁定中, 0-已释放',
`lock_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '锁定类型: INBOUND_PORT_LOCK-入库口锁定',
`priority` int NULL DEFAULT 1 COMMENT '优先级: 数字越小优先级越高',
`queue_position` int NULL DEFAULT 1 COMMENT '队列位置',
`lock_time` datetime NOT NULL COMMENT '锁定时间',
`unlock_time` datetime NULL DEFAULT NULL COMMENT '释放时间',
`timeout_seconds` int NULL DEFAULT 600 COMMENT '超时时间(秒)',
`remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '备注',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`lock_id`) USING BTREE,
INDEX `idx_feed_station_status`(`feed_station` ASC, `lock_status` ASC) USING BTREE,
INDEX `idx_agv_id`(`agv_id` ASC) USING BTREE,
INDEX `idx_lock_time`(`lock_time` ASC) USING BTREE,
INDEX `idx_create_time`(`create_time` ASC) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = 'AGV入库口互锁表' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of t_app_agv_lock
-- ----------------------------
INSERT INTO `t_app_agv_lock` VALUES ('1754998691995010000', 'AGV', 'CR', 0, 'INBOUND_PORT_LOCK', 1, 1, '2025-08-12 19:49:47', '2025-08-12 19:50:41', 600, '入库任务完成,批量释放锁定', '2025-08-12 19:38:12', '2025-08-12 19:50:41');
-- ---------------------------- -- ----------------------------
-- Table structure for t_app_config -- Table structure for t_app_config
-- ---------------------------- -- ----------------------------
@ -36,6 +66,9 @@ CREATE TABLE `t_app_config` (
INSERT INTO `t_app_config` VALUES ('1', 'WcsPickTaskUrl', 'http://10.90.83.39:9980/api/wms/convey/conveyTask', 1, '发送拣选任务地址'); INSERT INTO `t_app_config` VALUES ('1', 'WcsPickTaskUrl', 'http://10.90.83.39:9980/api/wms/convey/conveyTask', 1, '发送拣选任务地址');
INSERT INTO `t_app_config` VALUES ('10', 'NormalDataClearInterval', '180', 1, '普通数据清理时间(入库记录、出库记录、拣选任务记录)'); INSERT INTO `t_app_config` VALUES ('10', 'NormalDataClearInterval', '180', 1, '普通数据清理时间(入库记录、出库记录、拣选任务记录)');
INSERT INTO `t_app_config` VALUES ('11', 'ImportantDataClearInterval', '365', 1, '重要数据清理时间库存更新记录、工作记录、盘点记录、出库请求记录、DBS计划'); INSERT INTO `t_app_config` VALUES ('11', 'ImportantDataClearInterval', '365', 1, '重要数据清理时间库存更新记录、工作记录、盘点记录、出库请求记录、DBS计划');
INSERT INTO `t_app_config` VALUES ('12', 'wcsCanFeedUrl', 'http://10.90.83.39:9980/api/wms/wcsCanFeedUrl', 1, '查询wcs是否可上料');
INSERT INTO `t_app_config` VALUES ('13', 'WmsOrderInCallback', 'http://test/palletstacker/orderin/feedback', 1, 'WMS接受的入库执行后回调地址');
INSERT INTO `t_app_config` VALUES ('14', 'WmsOrderOutCallback', 'http://test/palletstacker/orderout/feedback', 1, 'WMS接受的出库执行后回调地址');
INSERT INTO `t_app_config` VALUES ('2', 'WcsStackerTaskUrl', 'http://10.90.83.39:9980/api/wms/wmsTask/setStackerTask', 1, '发送堆垛机任务地址'); INSERT INTO `t_app_config` VALUES ('2', 'WcsStackerTaskUrl', 'http://10.90.83.39:9980/api/wms/wmsTask/setStackerTask', 1, '发送堆垛机任务地址');
INSERT INTO `t_app_config` VALUES ('3', 'WcsReleaseBoxUrl', 'http://10.90.83.39:9980/api/wms/convey/disposeVehicle', 1, '发送释放站台箱子地址'); INSERT INTO `t_app_config` VALUES ('3', 'WcsReleaseBoxUrl', 'http://10.90.83.39:9980/api/wms/convey/disposeVehicle', 1, '发送释放站台箱子地址');
INSERT INTO `t_app_config` VALUES ('4', 'WcsCancelPickTaskUrl', 'http://10.90.83.39:9980/api/wms/convey/cancel', 1, '发送取消拣选任务地址'); INSERT INTO `t_app_config` VALUES ('4', 'WcsCancelPickTaskUrl', 'http://10.90.83.39:9980/api/wms/convey/cancel', 1, '发送取消拣选任务地址');
@ -2202,8 +2235,8 @@ CREATE TABLE `t_app_location` (
INSERT INTO `t_app_location` VALUES ('A01-01-01-01', '', 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, '', 1, ''); INSERT INTO `t_app_location` VALUES ('A01-01-01-01', '', 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, '', 1, '');
INSERT INTO `t_app_location` VALUES ('A01-01-01-02', '', 1, 0, 0, 0, 1, 1, 1, 1, 1, 2, '', 1, ''); INSERT INTO `t_app_location` VALUES ('A01-01-01-02', '', 1, 0, 0, 0, 1, 1, 1, 1, 1, 2, '', 1, '');
INSERT INTO `t_app_location` VALUES ('A01-01-02-01', '', 1, 0, 0, 0, 1, 1, 1, 1, 2, 1, '', 1, ''); INSERT INTO `t_app_location` VALUES ('A01-01-02-01', '', 1, 0, 0, 0, 1, 1, 1, 1, 2, 1, '', 1, '');
INSERT INTO `t_app_location` VALUES ('A01-01-02-02', '', 1, 0, 0, 0, 1, 1, 1, 1, 2, 2, '', 1, ''); INSERT INTO `t_app_location` VALUES ('A01-01-02-02', '', 1, 0, 1, 0, 1, 1, 1, 1, 2, 2, '1004', 1, '');
INSERT INTO `t_app_location` VALUES ('A01-01-03-01', '', 1, 0, 0, 0, 1, 1, 1, 1, 3, 1, '', 1, ''); INSERT INTO `t_app_location` VALUES ('A01-01-03-01', '', 1, 0, 1, 0, 1, 1, 1, 1, 3, 1, '1001', 1, '');
INSERT INTO `t_app_location` VALUES ('A01-01-03-02', '', 1, 0, 0, 0, 1, 1, 1, 1, 3, 2, '', 1, ''); INSERT INTO `t_app_location` VALUES ('A01-01-03-02', '', 1, 0, 0, 0, 1, 1, 1, 1, 3, 2, '', 1, '');
INSERT INTO `t_app_location` VALUES ('A01-01-04-01', '', 1, 0, 0, 0, 1, 1, 1, 1, 4, 1, '', 1, ''); INSERT INTO `t_app_location` VALUES ('A01-01-04-01', '', 1, 0, 0, 0, 1, 1, 1, 1, 4, 1, '', 1, '');
INSERT INTO `t_app_location` VALUES ('A01-01-04-02', '', 1, 0, 0, 0, 1, 1, 1, 1, 4, 2, '', 1, ''); INSERT INTO `t_app_location` VALUES ('A01-01-04-02', '', 1, 0, 0, 0, 1, 1, 1, 1, 4, 2, '', 1, '');
@ -2250,7 +2283,7 @@ INSERT INTO `t_app_location` VALUES ('A01-01-24-02', '', 1, 0, 0, 0, 1, 1, 1, 1,
INSERT INTO `t_app_location` VALUES ('A01-01-25-01', '', 1, 0, 0, 0, 1, 1, 1, 1, 25, 1, '', 1, ''); INSERT INTO `t_app_location` VALUES ('A01-01-25-01', '', 1, 0, 0, 0, 1, 1, 1, 1, 25, 1, '', 1, '');
INSERT INTO `t_app_location` VALUES ('A01-01-25-02', '', 1, 0, 0, 0, 1, 1, 1, 1, 25, 2, '', 1, ''); INSERT INTO `t_app_location` VALUES ('A01-01-25-02', '', 1, 0, 0, 0, 1, 1, 1, 1, 25, 2, '', 1, '');
INSERT INTO `t_app_location` VALUES ('A01-02-01-01', '', 1, 0, 0, 0, 1, 1, 1, 2, 1, 1, '', 1, ''); INSERT INTO `t_app_location` VALUES ('A01-02-01-01', '', 1, 0, 0, 0, 1, 1, 1, 2, 1, 1, '', 1, '');
INSERT INTO `t_app_location` VALUES ('A01-02-01-02', '', 1, 0, 0, 0, 1, 1, 1, 2, 1, 2, '', 1, ''); INSERT INTO `t_app_location` VALUES ('A01-02-01-02', '', 1, 0, 1, 0, 1, 1, 1, 2, 1, 2, '1005', 1, '');
INSERT INTO `t_app_location` VALUES ('A01-02-02-01', '', 1, 0, 0, 0, 1, 1, 1, 2, 2, 1, '', 1, ''); INSERT INTO `t_app_location` VALUES ('A01-02-02-01', '', 1, 0, 0, 0, 1, 1, 1, 2, 2, 1, '', 1, '');
INSERT INTO `t_app_location` VALUES ('A01-02-02-02', '', 1, 0, 0, 0, 1, 1, 1, 2, 2, 2, '', 1, ''); INSERT INTO `t_app_location` VALUES ('A01-02-02-02', '', 1, 0, 0, 0, 1, 1, 1, 2, 2, 2, '', 1, '');
INSERT INTO `t_app_location` VALUES ('A01-02-03-01', '', 1, 0, 0, 0, 1, 1, 1, 2, 3, 1, '', 1, ''); INSERT INTO `t_app_location` VALUES ('A01-02-03-01', '', 1, 0, 0, 0, 1, 1, 1, 2, 3, 1, '', 1, '');
@ -3199,10 +3232,10 @@ INSERT INTO `t_app_location` VALUES ('A01-20-24-01', '', 1, 0, 0, 0, 1, 1, 1, 20
INSERT INTO `t_app_location` VALUES ('A01-20-24-02', '', 1, 0, 0, 0, 1, 1, 1, 20, 24, 2, '', 1, ''); INSERT INTO `t_app_location` VALUES ('A01-20-24-02', '', 1, 0, 0, 0, 1, 1, 1, 20, 24, 2, '', 1, '');
INSERT INTO `t_app_location` VALUES ('A01-20-25-01', '', 1, 0, 0, 0, 1, 1, 1, 20, 25, 1, '', 1, ''); INSERT INTO `t_app_location` VALUES ('A01-20-25-01', '', 1, 0, 0, 0, 1, 1, 1, 20, 25, 1, '', 1, '');
INSERT INTO `t_app_location` VALUES ('A01-20-25-02', '', 1, 0, 0, 0, 1, 1, 1, 20, 25, 2, '', 1, ''); INSERT INTO `t_app_location` VALUES ('A01-20-25-02', '', 1, 0, 0, 0, 1, 1, 1, 20, 25, 2, '', 1, '');
INSERT INTO `t_app_location` VALUES ('A02-01-01-01', '', 1, 0, 0, 0, 1, 1, 2, 1, 1, 1, '', 1, ''); INSERT INTO `t_app_location` VALUES ('A02-01-01-01', '', 1, 0, 1, 0, 1, 1, 2, 1, 1, 1, '1007', 1, '');
INSERT INTO `t_app_location` VALUES ('A02-01-01-02', '', 1, 0, 0, 0, 1, 1, 2, 1, 1, 2, '', 1, ''); INSERT INTO `t_app_location` VALUES ('A02-01-01-02', '', 1, 0, 0, 0, 1, 1, 2, 1, 1, 2, '', 1, '');
INSERT INTO `t_app_location` VALUES ('A02-01-02-01', '', 1, 0, 0, 0, 1, 1, 2, 1, 2, 1, '', 1, ''); INSERT INTO `t_app_location` VALUES ('A02-01-02-01', '', 1, 0, 0, 0, 1, 1, 2, 1, 2, 1, '', 1, '');
INSERT INTO `t_app_location` VALUES ('A02-01-02-02', '', 1, 0, 0, 0, 1, 1, 2, 1, 2, 2, '', 1, ''); INSERT INTO `t_app_location` VALUES ('A02-01-02-02', '', 1, 0, 1, 0, 1, 1, 2, 1, 2, 2, '1003', 1, '');
INSERT INTO `t_app_location` VALUES ('A02-01-03-01', '', 1, 0, 0, 0, 1, 1, 2, 1, 3, 1, '', 1, ''); INSERT INTO `t_app_location` VALUES ('A02-01-03-01', '', 1, 0, 0, 0, 1, 1, 2, 1, 3, 1, '', 1, '');
INSERT INTO `t_app_location` VALUES ('A02-01-03-02', '', 1, 0, 0, 0, 1, 1, 2, 1, 3, 2, '', 1, ''); INSERT INTO `t_app_location` VALUES ('A02-01-03-02', '', 1, 0, 0, 0, 1, 1, 2, 1, 3, 2, '', 1, '');
INSERT INTO `t_app_location` VALUES ('A02-01-04-01', '', 1, 0, 0, 0, 1, 1, 2, 1, 4, 1, '', 1, ''); INSERT INTO `t_app_location` VALUES ('A02-01-04-01', '', 1, 0, 0, 0, 1, 1, 2, 1, 4, 1, '', 1, '');
@ -3299,7 +3332,7 @@ INSERT INTO `t_app_location` VALUES ('A02-02-24-01', '', 1, 0, 0, 0, 1, 1, 2, 2,
INSERT INTO `t_app_location` VALUES ('A02-02-24-02', '', 1, 0, 0, 0, 1, 1, 2, 2, 24, 2, '', 1, ''); INSERT INTO `t_app_location` VALUES ('A02-02-24-02', '', 1, 0, 0, 0, 1, 1, 2, 2, 24, 2, '', 1, '');
INSERT INTO `t_app_location` VALUES ('A02-02-25-01', '', 1, 0, 0, 0, 1, 1, 2, 2, 25, 1, '', 1, ''); INSERT INTO `t_app_location` VALUES ('A02-02-25-01', '', 1, 0, 0, 0, 1, 1, 2, 2, 25, 1, '', 1, '');
INSERT INTO `t_app_location` VALUES ('A02-02-25-02', '', 1, 0, 0, 0, 1, 1, 2, 2, 25, 2, '', 1, ''); INSERT INTO `t_app_location` VALUES ('A02-02-25-02', '', 1, 0, 0, 0, 1, 1, 2, 2, 25, 2, '', 1, '');
INSERT INTO `t_app_location` VALUES ('A02-03-01-01', '', 1, 0, 0, 0, 1, 1, 2, 3, 1, 1, '', 1, ''); INSERT INTO `t_app_location` VALUES ('A02-03-01-01', '', 1, 0, 1, 0, 1, 1, 2, 3, 1, 1, '1008', 1, '');
INSERT INTO `t_app_location` VALUES ('A02-03-01-02', '', 1, 0, 0, 0, 1, 1, 2, 3, 1, 2, '', 1, ''); INSERT INTO `t_app_location` VALUES ('A02-03-01-02', '', 1, 0, 0, 0, 1, 1, 2, 3, 1, 2, '', 1, '');
INSERT INTO `t_app_location` VALUES ('A02-03-02-01', '', 1, 0, 0, 0, 1, 1, 2, 3, 2, 1, '', 1, ''); INSERT INTO `t_app_location` VALUES ('A02-03-02-01', '', 1, 0, 0, 0, 1, 1, 2, 3, 2, 1, '', 1, '');
INSERT INTO `t_app_location` VALUES ('A02-03-02-02', '', 1, 0, 0, 0, 1, 1, 2, 3, 2, 2, '', 1, ''); INSERT INTO `t_app_location` VALUES ('A02-03-02-02', '', 1, 0, 0, 0, 1, 1, 2, 3, 2, 2, '', 1, '');
@ -4218,7 +4251,7 @@ CREATE TABLE `t_app_order_in` (
`complete_time` datetime NULL DEFAULT NULL COMMENT '完成时间', `complete_time` datetime NULL DEFAULT NULL COMMENT '完成时间',
`remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '备注', `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '备注',
PRIMARY KEY (`record_id`) USING BTREE PRIMARY KEY (`record_id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '入库订单表' ROW_FORMAT = Dynamic; ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '入库订单表' ROW_FORMAT = DYNAMIC;
-- ---------------------------- -- ----------------------------
-- Records of t_app_order_in -- Records of t_app_order_in
@ -4231,7 +4264,7 @@ DROP TABLE IF EXISTS `t_app_order_out`;
CREATE TABLE `t_app_order_out` ( CREATE TABLE `t_app_order_out` (
`record_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '主键ID', `record_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '主键ID',
`order_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '出库任务ID', `order_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '出库任务ID',
`in_task_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '关联的入库任务ID', `vehicle_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
`order_status` int NULL DEFAULT 0 COMMENT '出库状态(0-待出库 1-出库中 2-已完成)', `order_status` int NULL DEFAULT 0 COMMENT '出库状态(0-待出库 1-出库中 2-已完成)',
`depth_strategy` int NULL DEFAULT NULL, `depth_strategy` int NULL DEFAULT NULL,
`depth_strategy_detail` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL, `depth_strategy_detail` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
@ -4240,9 +4273,8 @@ CREATE TABLE `t_app_order_out` (
`complete_time` datetime NULL DEFAULT NULL COMMENT '完成时间', `complete_time` datetime NULL DEFAULT NULL COMMENT '完成时间',
`remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '备注', `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '备注',
PRIMARY KEY (`record_id`) USING BTREE, PRIMARY KEY (`record_id`) USING BTREE,
INDEX `idx_task_id`(`order_id` ASC) USING BTREE, INDEX `idx_task_id`(`order_id` ASC) USING BTREE
INDEX `idx_in_task_id`(`in_task_id` ASC) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '出库订单表' ROW_FORMAT = DYNAMIC;
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '出库订单表' ROW_FORMAT = Dynamic;
-- ---------------------------- -- ----------------------------
-- Records of t_app_order_out -- Records of t_app_order_out
@ -15662,9 +15694,15 @@ CREATE TABLE `t_app_stock` (
-- ---------------------------- -- ----------------------------
-- Records of t_app_stock -- Records of t_app_stock
-- ---------------------------- -- ----------------------------
INSERT INTO `t_app_stock` VALUES ('1752563208728010000', '1001', '', 2, 'testTaskId1', '2025-07-15 15:06:49', 'wms', NULL, ''); INSERT INTO `t_app_stock` VALUES ('1752563208728010000', '1001', 'A01-01-03-01', 0, 'testTaskId1', '2025-07-15 15:06:49', 'wms', NULL, '');
INSERT INTO `t_app_stock` VALUES ('1752564042871010000', '1002', '', 2, 'testTaskId2', '2025-07-15 15:20:43', 'wms', NULL, ''); INSERT INTO `t_app_stock` VALUES ('1752564042871010000', '1002', '', 2, 'testTaskId2', '2025-07-15 15:20:43', 'wms', NULL, '');
INSERT INTO `t_app_stock` VALUES ('1752564113411010000', '1003', '', 2, 'testTaskId3', '2025-07-15 15:21:53', 'wms', NULL, ''); INSERT INTO `t_app_stock` VALUES ('1752564113411010000', '1003', 'A02-01-02-02', 0, 'testTaskId3', '2025-07-15 15:21:53', 'wms', NULL, '');
INSERT INTO `t_app_stock` VALUES ('1753068264063010000', '1004', 'A01-01-02-02', 0, 'testOrderId4', '2025-07-21 11:24:24', 'wms', NULL, '');
INSERT INTO `t_app_stock` VALUES ('1753068333061010000', '1005', 'A01-02-01-02', 0, 'testOrderId5', '2025-07-21 11:25:33', 'wms', NULL, '');
INSERT INTO `t_app_stock` VALUES ('1753078978369010000', '1007', 'A02-01-01-01', 0, 'testOrderId7', '2025-07-21 14:22:58', 'wms', NULL, '');
INSERT INTO `t_app_stock` VALUES ('1753403808305010000', '1006', '', 2, 'testOrderId6', '2025-07-25 08:36:48', 'wms', NULL, '');
INSERT INTO `t_app_stock` VALUES ('1753505174463010000', '1008', 'A02-03-01-01', 0, 'testOrderId8', '2025-07-26 12:46:14', 'wms', NULL, '');
INSERT INTO `t_app_stock` VALUES ('1753505243747010000', '1009', '', 2, 'testOrderId9', '2025-07-26 12:47:24', 'wms', NULL, '');
-- ---------------------------- -- ----------------------------
-- Table structure for t_app_stock_update -- Table structure for t_app_stock_update
@ -17756,6 +17794,36 @@ INSERT INTO `t_app_task_bak` VALUES ('1752565265318010000', 2, 4, 1, 'testOutTas
INSERT INTO `t_app_task_bak` VALUES ('1752565265349010000', 9, 4, 2, 'testOutTaskId1', '1002', 'A01-01-01-01', 'A02-01-01-02', '1752565265349010000', '2025-07-15 15:41:05', '2025-07-15 15:41:20', NULL, '移走深度1阻挡货物'); INSERT INTO `t_app_task_bak` VALUES ('1752565265349010000', 9, 4, 2, 'testOutTaskId1', '1002', 'A01-01-01-01', 'A02-01-01-02', '1752565265349010000', '2025-07-15 15:41:05', '2025-07-15 15:41:20', NULL, '移走深度1阻挡货物');
INSERT INTO `t_app_task_bak` VALUES ('1752565265350010000', 2, 4, 1, 'testOutTaskId1', '1001', 'A01-01-01-02', 'C1', '1752565265350010000', '2025-07-15 15:41:05', '2025-07-15 15:41:44', NULL, '深度2出库'); INSERT INTO `t_app_task_bak` VALUES ('1752565265350010000', 2, 4, 1, 'testOutTaskId1', '1001', 'A01-01-01-02', 'C1', '1752565265350010000', '2025-07-15 15:41:05', '2025-07-15 15:41:44', NULL, '深度2出库');
INSERT INTO `t_app_task_bak` VALUES ('1752565351308010000', 2, 4, 1, 'testOutTaskId1', '1002', 'A02-01-01-02', 'C1', '1752565351308010000', '2025-07-15 15:42:31', '2025-07-15 15:42:43', NULL, '深度2出库'); INSERT INTO `t_app_task_bak` VALUES ('1752565351308010000', 2, 4, 1, 'testOutTaskId1', '1002', 'A02-01-01-02', 'C1', '1752565351308010000', '2025-07-15 15:42:31', '2025-07-15 15:42:43', NULL, '深度2出库');
INSERT INTO `t_app_task_bak` VALUES ('1753066443339010000', 1, 4, 1, 'testOrderId1', '1001', 'R1', 'A01-01-01-02', '1753066443339010000', '2025-07-21 10:54:03', '2025-07-21 10:54:38', 'wcs', NULL);
INSERT INTO `t_app_task_bak` VALUES ('1753066720882010000', 1, 4, 1, 'testOrderId2', '1002', 'R1', 'A02-01-01-02', '1753066720882010000', '2025-07-21 10:58:41', '2025-07-21 10:58:59', 'wcs', NULL);
INSERT INTO `t_app_task_bak` VALUES ('1753067226584010000', 1, 4, 1, 'testOrderId3', '1003', 'R1', 'A01-01-01-01', '1753067226584010000', '2025-07-21 11:07:07', '2025-07-21 11:07:28', 'wcs', NULL);
INSERT INTO `t_app_task_bak` VALUES ('1753067346433010000', 9, 4, 2, 'testOrderId', '1003', 'A01-01-01-01', 'A02-01-01-01', '1753067346433010000', '2025-07-21 11:09:06', '2025-07-21 11:10:09', NULL, '移走深度1阻挡货物');
INSERT INTO `t_app_task_bak` VALUES ('1753067346434010000', 2, 4, 1, 'testOrderId', '1001', 'A01-01-01-02', 'C1', '1753067346434010000', '2025-07-21 11:09:06', '2025-07-21 11:10:28', NULL, '深度2出库');
INSERT INTO `t_app_task_bak` VALUES ('1753067659231010000', 1, 4, 1, 'testOrderId1', '1001', 'R1', 'A01-01-01-02', '1753067659231010000', '2025-07-21 11:14:19', '2025-07-21 11:17:03', 'wcs', NULL);
INSERT INTO `t_app_task_bak` VALUES ('1753068193854010000', 1, 4, 1, 'testOrderId4', '1004', 'R1', 'A01-01-02-02', '1753068193854010000', '2025-07-21 11:23:14', '2025-07-21 11:24:24', 'wcs', NULL);
INSERT INTO `t_app_task_bak` VALUES ('1753068293620010000', 1, 4, 1, 'testOrderId5', '1005', 'R1', 'A01-02-01-02', '1753068293620010000', '2025-07-21 11:24:54', '2025-07-21 11:25:32', 'wcs', NULL);
INSERT INTO `t_app_task_bak` VALUES ('1753068368094010000', 9, 4, 2, 'testOrderI2', '1003', 'A02-01-01-01', 'A02-01-02-02', '1753068368094010000', '2025-07-21 11:26:08', '2025-07-21 11:26:37', NULL, '移走深度1阻挡货物');
INSERT INTO `t_app_task_bak` VALUES ('1753068368095010000', 2, 4, 1, 'testOrderI2', '1002', 'A02-01-01-02', 'C1', '1753068368095010000', '2025-07-21 11:26:08', '2025-07-21 11:26:51', NULL, '深度2出库');
INSERT INTO `t_app_task_bak` VALUES ('1753078496789010000', 1, 4, 1, 'testOrderId2', '1002', 'R1', 'A02-01-01-02', '1753078496789010000', '2025-07-21 14:14:57', '2025-07-21 14:15:44', 'wcs', NULL);
INSERT INTO `t_app_task_bak` VALUES ('1753078910378010000', 2, 4, 1, 'testOrderI2', '1002', 'A02-01-01-02', 'C1', '1753078910378010000', '2025-07-21 14:21:50', '2025-07-21 14:22:32', NULL, '深度2出库');
INSERT INTO `t_app_task_bak` VALUES ('1753078936593010000', 1, 4, 1, 'testOrderId7', '1007', 'R1', 'A02-01-01-01', '1753078936593010000', '2025-07-21 14:22:17', '2025-07-21 14:22:58', 'wcs', NULL);
INSERT INTO `t_app_task_bak` VALUES ('1753403424775010000', 1, 4, 1, 'testOrderId2', '1002', 'R1', 'A02-02-01-02', '1753403424775010000', '2025-07-25 08:30:25', '2025-07-25 08:30:44', 'wcs', NULL);
INSERT INTO `t_app_task_bak` VALUES ('1753403764587010000', 1, 4, 1, 'testOrderId6', '1006', 'R1', 'A01-01-02-01', '1753403764587010000', '2025-07-25 08:36:05', '2025-07-25 08:36:48', 'wcs', NULL);
INSERT INTO `t_app_task_bak` VALUES ('1753403954324010000', 9, 4, 2, 'testOrderId1', '1006', 'A01-01-02-01', 'A01-01-01-01', '1753403954324010000', '2025-07-25 08:39:14', '2025-07-25 08:40:32', NULL, '移走深度1阻挡货物');
INSERT INTO `t_app_task_bak` VALUES ('1753403954324010001', 2, 4, 1, 'testOrderId1', '1004', 'A01-01-02-02', 'C1', '1753403954324010001', '2025-07-25 08:39:14', '2025-07-25 08:40:47', NULL, '深度2出库');
INSERT INTO `t_app_task_bak` VALUES ('1753504869791010000', 1, 4, 1, 'testOrderId4', '1004', 'R1', 'A01-01-02-02', '1753504869791010000', '2025-07-26 12:41:10', '2025-07-26 12:41:52', 'wcs', NULL);
INSERT INTO `t_app_task_bak` VALUES ('1753505146606010000', 1, 4, 1, 'testOrderId8', '1008', 'R1', 'A01-02-01-01', '1753505146606010000', '2025-07-26 12:45:47', '2025-07-26 12:46:14', 'wcs', NULL);
INSERT INTO `t_app_task_bak` VALUES ('1753505227890010000', 1, 4, 1, 'testOrderId9', '1009', 'R1', 'A02-02-01-01', '1753505227890010000', '2025-07-26 12:47:08', '2025-07-26 12:47:23', 'wcs', NULL);
INSERT INTO `t_app_task_bak` VALUES ('1753505539367010000', 9, 4, 2, 'testOrderId1', '1006', 'A01-01-01-01', 'A02-01-03-02', '1753505539367010000', '2025-07-26 12:52:19', '2025-07-26 12:52:49', NULL, '移走深度1阻挡货物');
INSERT INTO `t_app_task_bak` VALUES ('1753505539367010001', 2, 4, 1, 'testOrderId1', '1001', 'A01-01-01-02', 'C1', '1753505539367010001', '2025-07-26 12:52:19', '2025-07-26 12:53:19', NULL, '深度2出库');
INSERT INTO `t_app_task_bak` VALUES ('1754998057462010000', 1, 4, 1, 'testOrderId9', '1001', 'R1', 'A01-01-03-01', '1754998057462010000', '2025-08-12 19:27:37', '2025-08-12 19:28:00', 'wcs', NULL);
INSERT INTO `t_app_task_bak` VALUES ('1754998118329010000', 9, 4, 2, 'testOrderId1', '1008', 'A01-02-01-01', 'A02-01-03-01', '1754998118329010000', '2025-08-12 19:28:38', '2025-08-12 19:29:10', NULL, '移走深度1阻挡货物');
INSERT INTO `t_app_task_bak` VALUES ('1754998661134010000', 9, 4, 2, 'testOrderId1', '1008', 'A02-01-03-01', 'A02-03-01-01', '1754998661134010000', '2025-08-12 19:37:41', '2025-08-12 19:38:11', NULL, '移走深度1阻挡货物');
INSERT INTO `t_app_task_bak` VALUES ('1754998661139010000', 2, 4, 1, 'testOrderId1', '1006', 'A02-01-03-02', 'CR', '1754998661139010000', '2025-08-12 19:37:41', '2025-08-12 19:38:46', NULL, '深度2出库');
INSERT INTO `t_app_task_bak` VALUES ('1754998924999010000', 9, 4, 2, 'testOrderId1', '1009', 'A02-02-01-01', 'A01-01-01-02', '1754998924999010000', '2025-08-12 19:42:05', '2025-08-12 19:42:39', NULL, '移走深度1阻挡货物');
INSERT INTO `t_app_task_bak` VALUES ('1754998925002010000', 2, 4, 1, 'testOrderId1', '1002', 'A02-02-01-02', 'CR', '1754998925002010000', '2025-08-12 19:42:05', '2025-08-12 19:43:17', NULL, '深度2出库');
INSERT INTO `t_app_task_bak` VALUES ('1754999361384010000', 9, 4, 2, 'testOrderId1', '1004', 'A01-01-01-01', 'A01-01-02-02', '1754999361384010000', '2025-08-12 19:49:21', '2025-08-12 19:49:47', NULL, '移走深度1阻挡货物');
INSERT INTO `t_app_task_bak` VALUES ('1754999361391010000', 2, 4, 1, 'testOrderId1', '1009', 'A01-01-01-02', 'CR', '1754999361391010000', '2025-08-12 19:49:21', '2025-08-12 19:50:40', NULL, '深度2出库');
INSERT INTO `t_app_task_bak` VALUES ('BACK_1742627181353010000', 1, 4, 1, NULL, 'ASRS-0348', 'P3', 'A02-35-08', '1742627207227010000', '2025-03-22 15:06:21', '2025-03-22 15:07:39', 'wms_auto', ''); INSERT INTO `t_app_task_bak` VALUES ('BACK_1742627181353010000', 1, 4, 1, NULL, 'ASRS-0348', 'P3', 'A02-35-08', '1742627207227010000', '2025-03-22 15:06:21', '2025-03-22 15:07:39', 'wms_auto', '');
INSERT INTO `t_app_task_bak` VALUES ('BACK_1742627210434010000', 1, 4, 1, NULL, 'ASRS-0347', 'P3', 'A04-32-07', '1742627236328010000', '2025-03-22 15:06:50', '2025-03-22 15:08:04', 'wms_auto', ''); INSERT INTO `t_app_task_bak` VALUES ('BACK_1742627210434010000', 1, 4, 1, NULL, 'ASRS-0347', 'P3', 'A04-32-07', '1742627236328010000', '2025-03-22 15:06:50', '2025-03-22 15:08:04', 'wms_auto', '');
INSERT INTO `t_app_task_bak` VALUES ('BACK_1742775892056010000', 1, 4, 1, NULL, 'ASRS-0315', 'P3', 'A01-34-06', '1742775918384010000', '2025-03-24 08:24:52', '2025-03-24 08:26:22', 'wms_auto', ''); INSERT INTO `t_app_task_bak` VALUES ('BACK_1742775892056010000', 1, 4, 1, NULL, 'ASRS-0315', 'P3', 'A01-34-06', '1742775918384010000', '2025-03-24 08:24:52', '2025-03-24 08:26:22', 'wms_auto', '');
@ -18574,9 +18642,15 @@ CREATE TABLE `t_app_vehicle` (
-- ---------------------------- -- ----------------------------
-- Records of t_app_vehicle -- Records of t_app_vehicle
-- ---------------------------- -- ----------------------------
INSERT INTO `t_app_vehicle` VALUES ('1001', 3, NULL, 0, '', '2025-07-15 15:14:57'); INSERT INTO `t_app_vehicle` VALUES ('1001', 2, NULL, 0, 'A01-01-03-01', '2025-08-12 19:28:00');
INSERT INTO `t_app_vehicle` VALUES ('1002', 3, NULL, 0, '', '2025-07-15 15:20:43'); INSERT INTO `t_app_vehicle` VALUES ('1002', 3, NULL, 0, '', '2025-07-25 08:32:34');
INSERT INTO `t_app_vehicle` VALUES ('1003', 3, NULL, 0, '', '2025-07-15 15:21:53'); INSERT INTO `t_app_vehicle` VALUES ('1003', 2, NULL, 0, 'A02-01-02-02', '2025-07-21 11:07:28');
INSERT INTO `t_app_vehicle` VALUES ('1004', 2, NULL, 0, 'A01-01-02-02', '2025-07-26 12:41:52');
INSERT INTO `t_app_vehicle` VALUES ('1005', 2, NULL, 0, 'A01-02-01-02', '2025-07-21 11:25:33');
INSERT INTO `t_app_vehicle` VALUES ('1006', 3, NULL, 0, '', '2025-07-25 08:36:48');
INSERT INTO `t_app_vehicle` VALUES ('1007', 2, NULL, 0, 'A02-01-01-01', '2025-07-21 14:22:58');
INSERT INTO `t_app_vehicle` VALUES ('1008', 2, NULL, 0, 'A02-03-01-01', '2025-07-26 12:46:14');
INSERT INTO `t_app_vehicle` VALUES ('1009', 3, NULL, 0, '', '2025-07-26 12:47:24');
-- ---------------------------- -- ----------------------------
-- Table structure for t_app_wcs_task -- Table structure for t_app_wcs_task
@ -20592,6 +20666,36 @@ INSERT INTO `t_app_wcs_task_bak` VALUES ('1752565265318010000', 1, 2, 1, '1003',
INSERT INTO `t_app_wcs_task_bak` VALUES ('1752565265349010000', 1, 9, 2, '1002', 'A01-01-01-01', 'A02-01-01-02', '2025-07-15 15:41:06', '2025-07-15 15:41:12', NULL, NULL); INSERT INTO `t_app_wcs_task_bak` VALUES ('1752565265349010000', 1, 9, 2, '1002', 'A01-01-01-01', 'A02-01-01-02', '2025-07-15 15:41:06', '2025-07-15 15:41:12', NULL, NULL);
INSERT INTO `t_app_wcs_task_bak` VALUES ('1752565265350010000', 1, 2, 1, '1001', 'A01-01-01-02', 'C1', '2025-07-15 15:41:06', '2025-07-15 15:41:39', NULL, NULL); INSERT INTO `t_app_wcs_task_bak` VALUES ('1752565265350010000', 1, 2, 1, '1001', 'A01-01-01-02', 'C1', '2025-07-15 15:41:06', '2025-07-15 15:41:39', NULL, NULL);
INSERT INTO `t_app_wcs_task_bak` VALUES ('1752565351308010000', 1, 2, 1, '1002', 'A02-01-01-02', 'C1', '2025-07-15 15:42:32', '2025-07-15 15:42:38', NULL, NULL); INSERT INTO `t_app_wcs_task_bak` VALUES ('1752565351308010000', 1, 2, 1, '1002', 'A02-01-01-02', 'C1', '2025-07-15 15:42:32', '2025-07-15 15:42:38', NULL, NULL);
INSERT INTO `t_app_wcs_task_bak` VALUES ('1753066443339010000', 1, 1, 1, '1001', 'R1', 'A01-01-01-02', '2025-07-21 10:54:04', '2025-07-21 10:54:11', NULL, NULL);
INSERT INTO `t_app_wcs_task_bak` VALUES ('1753066720882010000', 1, 1, 1, '1002', 'R1', 'A02-01-01-02', '2025-07-21 10:58:41', '2025-07-21 10:58:48', NULL, NULL);
INSERT INTO `t_app_wcs_task_bak` VALUES ('1753067226584010000', 1, 1, 1, '1003', 'R1', 'A01-01-01-01', '2025-07-21 11:07:07', '2025-07-21 11:07:14', NULL, NULL);
INSERT INTO `t_app_wcs_task_bak` VALUES ('1753067346433010000', 1, 9, 2, '1003', 'A01-01-01-01', 'A02-01-01-01', '2025-07-21 11:09:07', '2025-07-21 11:09:13', NULL, NULL);
INSERT INTO `t_app_wcs_task_bak` VALUES ('1753067346434010000', 1, 2, 1, '1001', 'A01-01-01-02', 'C1', '2025-07-21 11:09:07', '2025-07-21 11:10:16', NULL, NULL);
INSERT INTO `t_app_wcs_task_bak` VALUES ('1753067659231010000', 1, 1, 1, '1001', 'R1', 'A01-01-01-02', '2025-07-21 11:14:19', '2025-07-21 11:14:25', NULL, NULL);
INSERT INTO `t_app_wcs_task_bak` VALUES ('1753068193854010000', 1, 1, 1, '1004', 'R1', 'A01-01-02-02', '2025-07-21 11:23:14', '2025-07-21 11:23:20', NULL, NULL);
INSERT INTO `t_app_wcs_task_bak` VALUES ('1753068293620010000', 1, 1, 1, '1005', 'R1', 'A01-02-01-02', '2025-07-21 11:24:54', '2025-07-21 11:25:00', NULL, NULL);
INSERT INTO `t_app_wcs_task_bak` VALUES ('1753068368094010000', 1, 9, 2, '1003', 'A02-01-01-01', 'A02-01-02-02', '2025-07-21 11:26:09', '2025-07-21 11:26:15', NULL, NULL);
INSERT INTO `t_app_wcs_task_bak` VALUES ('1753068368095010000', 1, 2, 1, '1002', 'A02-01-01-02', 'C1', '2025-07-21 11:26:09', '2025-07-21 11:26:43', NULL, NULL);
INSERT INTO `t_app_wcs_task_bak` VALUES ('1753078496789010000', 1, 1, 1, '1002', 'R1', 'A02-01-01-02', '2025-07-21 14:14:57', '2025-07-21 14:15:03', NULL, NULL);
INSERT INTO `t_app_wcs_task_bak` VALUES ('1753078910378010000', 1, 2, 1, '1002', 'A02-01-01-02', 'C1', '2025-07-21 14:21:51', '2025-07-21 14:21:58', NULL, NULL);
INSERT INTO `t_app_wcs_task_bak` VALUES ('1753078936593010000', 1, 1, 1, '1007', 'R1', 'A02-01-01-01', '2025-07-21 14:22:17', '2025-07-21 14:22:39', NULL, NULL);
INSERT INTO `t_app_wcs_task_bak` VALUES ('1753403424775010000', 1, 1, 1, '1002', 'R1', 'A02-02-01-02', '2025-07-25 08:30:25', '2025-07-25 08:30:31', NULL, NULL);
INSERT INTO `t_app_wcs_task_bak` VALUES ('1753403764587010000', 1, 1, 1, '1006', 'R1', 'A01-01-02-01', '2025-07-25 08:36:05', '2025-07-25 08:36:11', NULL, NULL);
INSERT INTO `t_app_wcs_task_bak` VALUES ('1753403954324010000', 1, 9, 2, '1006', 'A01-01-02-01', 'A01-01-01-01', '2025-07-25 08:39:15', '2025-07-25 08:39:21', NULL, NULL);
INSERT INTO `t_app_wcs_task_bak` VALUES ('1753403954324010001', 1, 2, 1, '1004', 'A01-01-02-02', 'C1', '2025-07-25 08:39:15', '2025-07-25 08:40:38', NULL, NULL);
INSERT INTO `t_app_wcs_task_bak` VALUES ('1753504869791010000', 1, 1, 1, '1004', 'R1', 'A01-01-02-02', '2025-07-26 12:41:10', '2025-07-26 12:41:17', NULL, NULL);
INSERT INTO `t_app_wcs_task_bak` VALUES ('1753505146606010000', 1, 1, 1, '1008', 'R1', 'A01-02-01-01', '2025-07-26 12:45:47', '2025-07-26 12:45:53', NULL, NULL);
INSERT INTO `t_app_wcs_task_bak` VALUES ('1753505227890010000', 1, 1, 1, '1009', 'R1', 'A02-02-01-01', '2025-07-26 12:47:09', '2025-07-26 12:47:15', NULL, NULL);
INSERT INTO `t_app_wcs_task_bak` VALUES ('1753505539367010000', 1, 9, 2, '1006', 'A01-01-01-01', 'A02-01-03-02', '2025-07-26 12:52:20', '2025-07-26 12:52:26', NULL, NULL);
INSERT INTO `t_app_wcs_task_bak` VALUES ('1753505539367010001', 1, 2, 1, '1001', 'A01-01-01-02', 'C1', '2025-07-26 12:52:20', '2025-07-26 12:52:56', NULL, NULL);
INSERT INTO `t_app_wcs_task_bak` VALUES ('1754998057462010000', 1, 1, 1, '1001', 'R1', 'A01-01-03-01', '2025-08-12 19:27:38', '2025-08-12 19:27:39', NULL, NULL);
INSERT INTO `t_app_wcs_task_bak` VALUES ('1754998118329010000', 1, 9, 2, '1008', 'A01-02-01-01', 'A02-01-03-01', '2025-08-12 19:28:39', '2025-08-12 19:28:40', NULL, NULL);
INSERT INTO `t_app_wcs_task_bak` VALUES ('1754998661134010000', 1, 9, 2, '1008', 'A02-01-03-01', 'A02-03-01-01', '2025-08-12 19:37:42', '2025-08-12 19:37:43', NULL, NULL);
INSERT INTO `t_app_wcs_task_bak` VALUES ('1754998661139010000', 1, 2, 1, '1006', 'A02-01-03-02', 'CR', '2025-08-12 19:37:42', '2025-08-12 19:38:12', NULL, NULL);
INSERT INTO `t_app_wcs_task_bak` VALUES ('1754998924999010000', 1, 9, 2, '1009', 'A02-02-01-01', 'A01-01-01-02', '2025-08-12 19:42:06', '2025-08-12 19:42:07', NULL, NULL);
INSERT INTO `t_app_wcs_task_bak` VALUES ('1754998925002010000', 1, 2, 1, '1002', 'A02-02-01-02', 'CR', '2025-08-12 19:42:06', '2025-08-12 19:42:39', NULL, NULL);
INSERT INTO `t_app_wcs_task_bak` VALUES ('1754999361384010000', 1, 9, 2, '1004', 'A01-01-01-01', 'A01-01-02-02', '2025-08-12 19:49:22', '2025-08-12 19:49:23', NULL, NULL);
INSERT INTO `t_app_wcs_task_bak` VALUES ('1754999361391010000', 1, 2, 1, '1009', 'A01-01-01-02', 'CR', '2025-08-12 19:49:22', '2025-08-12 19:49:47', NULL, NULL);
-- ---------------------------- -- ----------------------------
-- Table structure for t_app_work -- Table structure for t_app_work

View File

@ -8,7 +8,7 @@ Content-Type: application/json
{ {
"taskId": "testOrderId9", "taskId": "testOrderId9",
"vehicleNo": "1009" "vehicleNo": "1001"
} }
### 2. 出库订单接口 ### 2. 出库订单接口
@ -17,7 +17,7 @@ Content-Type: application/json
{ {
"taskId": "testOrderId1", "taskId": "testOrderId1",
"vehicleNo": "1001" "vehicleNo": "1009"
} }
### 3. 库存查询接口 - 仅按载具查询 ### 3. 库存查询接口 - 仅按载具查询
@ -28,7 +28,7 @@ Content-Type: application/json
"requestId": "testOrderId1", "requestId": "testOrderId1",
"details": [ "details": [
{ {
"vehicleNo": "1001" "vehicleNo": "1002"
} }
] ]
} }

View File

@ -8,7 +8,7 @@ Content-Type: application/json
{ {
"origin": "R1", "origin": "R1",
"vehicleNo": "1009", "vehicleNo": "1001",
"codeMessage": "test", "codeMessage": "test",
"remark": "载具入库测试" "remark": "载具入库测试"
} }
@ -18,10 +18,10 @@ POST {{baseUrl}}/wms/task/sendTaskResult
Content-Type: application/json Content-Type: application/json
{ {
"taskId": "1753505539367010001", "taskId": "1754999361391010000",
"taskStatus": 100, "taskStatus": 100,
"vehicleNo": "1001", "vehicleNo": "1009",
"destination": "A01-02-01-01", "destination": "CR",
"message": "任务执行成功" "message": "任务执行成功"
} }

View File

@ -1,15 +1,19 @@
package com.wms_main.app; package com.wms_main.app;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.wms_main.dao.ITAppConfigService; import com.wms_main.dao.ITAppConfigService;
import com.wms_main.dao.ITAppGoodsService; import com.wms_main.dao.ITAppGoodsService;
import com.wms_main.dao.ITAppLocationService; import com.wms_main.dao.ITAppLocationService;
import com.wms_main.model.po.TAppConfig; import com.wms_main.model.po.TAppConfig;
import com.wms_main.model.po.TAppGoods; import com.wms_main.model.po.TAppGoods;
import com.wms_main.model.po.TAppLocation; import com.wms_main.model.po.TAppLocation;
import com.wms_main.repository.utils.StringUtils;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -21,6 +25,8 @@ import java.util.Map;
@RequiredArgsConstructor @RequiredArgsConstructor
@Slf4j @Slf4j
public class AppCommon { public class AppCommon {
private final static Integer MIN_DEPTH = 1;
private final static Integer MAX_DEPTH = 3;
/** /**
* 配置服务 * 配置服务
*/ */
@ -112,6 +118,38 @@ public class AppCommon {
} }
} }
/**
* 根据库位id获取排列层所有深度的库位信息列表
* @param locationId 库位id
* @return 库位详情列表
*/
public List<TAppLocation> getLocationListByLocationId(String locationId) {
List<TAppLocation> resList = new ArrayList<>();
List<String> strList = List.of(locationId.split("-")).subList(0, 3);
for (int depth = MIN_DEPTH; depth <= MAX_DEPTH; ++depth) {
String queryLocationId = String.join("-", strList) + String.format("-%02d", depth);
TAppLocation tempLocation = getInstantLocationByLocationId(queryLocationId);
if (tempLocation != null) {
resList.add(tempLocation);
}
}
return resList;
}
public Boolean updateWorkingLocations(String locationId, Integer val) {
if (!StringUtils.isEmpty(locationId)) {
List<TAppLocation> updateLocations = getLocationListByLocationId(locationId);
if (updateLocations.size() > 0) {
return appLocationService.update(new LambdaUpdateWrapper<TAppLocation>()
.in(TAppLocation::getLocationId, updateLocations.stream().map(TAppLocation::getLocationId).toList())
.set(TAppLocation::getIsWorking, val));
}
return false;
}
return false;
}
/** /**
* 根据料号获取物料信息 * 根据料号获取物料信息
* @param goodsId 料号 * @param goodsId 料号

View File

@ -1,6 +1,5 @@
package com.wms_main.constant.enums.wms; package com.wms_main.constant.enums.wms;
import lombok.AllArgsConstructor;
import lombok.Getter; import lombok.Getter;
@Getter @Getter

View File

@ -12,8 +12,6 @@ import org.springframework.web.bind.annotation.*;
import java.util.List; import java.util.List;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
@RestController @RestController
@ResponseBody @ResponseBody

View File

@ -3,7 +3,6 @@ package com.wms_main.controller.wms;
import com.wms_main.model.dto.query.LocationQuery; import com.wms_main.model.dto.query.LocationQuery;
import com.wms_main.model.dto.response.wms.BaseWmsApiResponse; import com.wms_main.model.dto.response.wms.BaseWmsApiResponse;
import com.wms_main.model.dto.response.wms.WmsApiResponse; import com.wms_main.model.dto.response.wms.WmsApiResponse;
import com.wms_main.model.po.TAppLocation;
import com.wms_main.service.controller.ILocationControllerService; import com.wms_main.service.controller.ILocationControllerService;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;

View File

@ -1,12 +1,6 @@
package com.wms_main.controller.wms; package com.wms_main.controller.wms;
import com.wms_main.app.AppCommon;
import com.wms_main.dao.ITSysMenuService;
import com.wms_main.dao.ITSysPermissionService;
import com.wms_main.dao.ITSysRoleService;
import com.wms_main.dao.ITSysUserService;
import com.wms_main.excel.easypoi.service.IImportExcelEasyPoi; import com.wms_main.excel.easypoi.service.IImportExcelEasyPoi;
import com.wms_main.model.dto.request.wms.BaseWmsRequest;
import com.wms_main.model.dto.query.DbsQuery; import com.wms_main.model.dto.query.DbsQuery;
import com.wms_main.model.dto.request.wms.InitKateWorkRequest; import com.wms_main.model.dto.request.wms.InitKateWorkRequest;
import com.wms_main.model.vo.others.FileVo; import com.wms_main.model.vo.others.FileVo;
@ -17,7 +11,6 @@ import com.wms_main.repository.utils.UUIDUtils;
import com.wms_main.service.controller.ITestControllerService; import com.wms_main.service.controller.ITestControllerService;
import jakarta.servlet.http.HttpServletResponse; import jakarta.servlet.http.HttpServletResponse;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.quartz.Scheduler;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
@ -33,16 +26,9 @@ import java.util.List;
@RequestMapping("/test") @RequestMapping("/test")
public class TestController { public class TestController {
private final AppCommon appCommon;
private final Scheduler scheduler;
private final IImportExcelEasyPoi importExcelEasyPoi; private final IImportExcelEasyPoi importExcelEasyPoi;
private final ITestControllerService testService; private final ITestControllerService testService;
private final ITSysUserService userService;// User服务
private final ITSysRoleService roleService;// Role服务
private final ITSysPermissionService permissionService;// Permission服务
private final ITSysMenuService menuService;// Menu服务
@GetMapping(value = "/test") @GetMapping(value = "/test")
public String testApi() { public String testApi() {
return UUIDUtils.getNewUUID(); return UUIDUtils.getNewUUID();

View File

@ -1,7 +1,6 @@
package com.wms_main.dao; package com.wms_main.dao;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.wms_main.model.po.TAppDbs;
import com.wms_main.model.po.TAppImage; import com.wms_main.model.po.TAppImage;
import java.util.List; import java.util.List;

View File

@ -1,7 +1,6 @@
package com.wms_main.dao; package com.wms_main.dao;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.wms_main.model.po.TAppDbs;
import com.wms_main.model.po.TAppProductExtend; import com.wms_main.model.po.TAppProductExtend;
import java.util.List; import java.util.List;

View File

@ -1,7 +1,6 @@
package com.wms_main.dao; package com.wms_main.dao;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.wms_main.model.po.TAppDbs;
import com.wms_main.model.po.TAppProduct; import com.wms_main.model.po.TAppProduct;
import java.util.List; import java.util.List;

View File

@ -1,7 +1,6 @@
package com.wms_main.dao; package com.wms_main.dao;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.wms_main.model.po.TAppStand;
import com.wms_main.model.po.TAppStandWork; import com.wms_main.model.po.TAppStandWork;
/** /**

View File

@ -3,8 +3,6 @@ package com.wms_main.dao;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.wms_main.model.po.TAppWcsTask; import com.wms_main.model.po.TAppWcsTask;
import java.util.List;
/** /**
* wcs任务表服务 * wcs任务表服务
*/ */

View File

@ -1,7 +1,6 @@
package com.wms_main.dao; package com.wms_main.dao;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.wms_main.model.po.TAppWork;
import com.wms_main.model.po.TAppWorkRecord; import com.wms_main.model.po.TAppWorkRecord;
/** /**

View File

@ -1,11 +1,8 @@
package com.wms_main.dao.impl; package com.wms_main.dao.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.wms_main.dao.ITAppDbsService;
import com.wms_main.dao.ITAppImageService; import com.wms_main.dao.ITAppImageService;
import com.wms_main.mapper.AppDbsMapper;
import com.wms_main.mapper.AppImageMapper; import com.wms_main.mapper.AppImageMapper;
import com.wms_main.model.po.TAppDbs;
import com.wms_main.model.po.TAppImage; import com.wms_main.model.po.TAppImage;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;

View File

@ -8,7 +8,6 @@ import com.wms_main.mapper.AppLocationMapper;
import com.wms_main.model.po.TAppLocation; import com.wms_main.model.po.TAppLocation;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.EmptyStackException;
import java.util.List; import java.util.List;
/** /**

View File

@ -1,11 +1,8 @@
package com.wms_main.dao.impl; package com.wms_main.dao.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.wms_main.dao.ITAppDbsService;
import com.wms_main.dao.ITAppProductExtendService; import com.wms_main.dao.ITAppProductExtendService;
import com.wms_main.mapper.AppDbsMapper;
import com.wms_main.mapper.AppProductExtendsMapper; import com.wms_main.mapper.AppProductExtendsMapper;
import com.wms_main.model.po.TAppDbs;
import com.wms_main.model.po.TAppProductExtend; import com.wms_main.model.po.TAppProductExtend;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;

View File

@ -1,13 +1,9 @@
package com.wms_main.dao.impl; package com.wms_main.dao.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.wms_main.dao.ITAppDbsService;
import com.wms_main.dao.ITAppProductService; import com.wms_main.dao.ITAppProductService;
import com.wms_main.mapper.AppDbsMapper;
import com.wms_main.mapper.AppProductMapper; import com.wms_main.mapper.AppProductMapper;
import com.wms_main.model.po.TAppDbs;
import com.wms_main.model.po.TAppProduct; import com.wms_main.model.po.TAppProduct;
import com.wms_main.model.po.TAppSingleProduct;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.List; import java.util.List;

View File

@ -38,7 +38,6 @@ public class TAppWcsTaskServiceImpl extends ServiceImpl<AppWcsTaskMapper, TAppWc
@Override @Override
public Integer getEquipmentByLocation(String locationId) { public Integer getEquipmentByLocation(String locationId) {
String[] str_lst = locationId.split("-"); String[] str_lst = locationId.split("-");
int depth = Integer.parseInt(str_lst[str_lst.length - 1]);
int row = Integer.parseInt(str_lst[0].replace("A", "")); int row = Integer.parseInt(str_lst[0].replace("A", ""));
return (int) Math.floor((double) (row + 1) / 2); return (int) Math.floor((double) (row + 1) / 2);
} }

View File

@ -465,7 +465,6 @@ public class ImportExcelEasyPoi implements IImportExcelEasyPoi {
* @param fileVo 文件Vo * @param fileVo 文件Vo
*/ */
private void saveFileVo(FileVo fileVo) { private void saveFileVo(FileVo fileVo) {
// TODO 待建表
} }
/** /**

View File

@ -44,7 +44,6 @@ public class RequestLogFilter extends HttpFilter {
String responseContentString = formatContentString(new String(responseContent)); String responseContentString = formatContentString(new String(responseContent));
RequestLog logInfo = new RequestLog(method, uri, remoteHost, remoteAddr, requestContentString, String.valueOf(status), responseContentString); RequestLog logInfo = new RequestLog(method, uri, remoteHost, remoteAddr, requestContentString, String.valueOf(status), responseContentString);
log.info(logInfo.toString()); log.info(logInfo.toString());
// TODO 增加存储数据库的操作
// 把缓存的响应数据响应给客户端 // 把缓存的响应数据响应给客户端
responseWrapper.copyBodyToResponse(); responseWrapper.copyBodyToResponse();

View File

@ -1,7 +1,6 @@
package com.wms_main.mapper; package com.wms_main.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.wms_main.model.po.TAppDbs;
import com.wms_main.model.po.TAppImage; import com.wms_main.model.po.TAppImage;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;

View File

@ -1,7 +1,6 @@
package com.wms_main.mapper; package com.wms_main.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.wms_main.model.po.TAppDbs;
import com.wms_main.model.po.TAppProductExtend; import com.wms_main.model.po.TAppProductExtend;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;

View File

@ -1,7 +1,6 @@
package com.wms_main.mapper; package com.wms_main.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.wms_main.model.po.TAppDbs;
import com.wms_main.model.po.TAppSingleProduct; import com.wms_main.model.po.TAppSingleProduct;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;

View File

@ -1,7 +1,6 @@
package com.wms_main.mapper; package com.wms_main.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.wms_main.model.po.TAppStand;
import com.wms_main.model.po.TAppStandWork; import com.wms_main.model.po.TAppStandWork;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;

View File

@ -1,7 +1,6 @@
package com.wms_main.mapper; package com.wms_main.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.wms_main.model.po.TAppWork;
import com.wms_main.model.po.TAppWorkRecord; import com.wms_main.model.po.TAppWorkRecord;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;

View File

@ -3,7 +3,6 @@ package com.wms_main.model.dto.query;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
/** /**

View File

@ -1,14 +1,11 @@
package com.wms_main.model.dto.request.mywms; package com.wms_main.model.dto.request.mywms;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import com.wms_main.repository.utils.StringUtils; import com.wms_main.repository.utils.StringUtils;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.List; import java.util.List;
import java.util.Objects;
@Getter @Getter
@Setter @Setter

View File

@ -4,7 +4,6 @@ import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import java.time.LocalDateTime;
@Getter @Getter
@Setter @Setter

View File

@ -1,7 +1,6 @@
package com.wms_main.model.dto.request.wcs; package com.wms_main.model.dto.request.wcs;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import com.wms_main.model.bo.wcs.WcsStackerTask;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;

View File

@ -1,12 +1,10 @@
package com.wms_main.model.dto.request.wms; package com.wms_main.model.dto.request.wms;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDate; import java.time.LocalDate;

View File

@ -2,8 +2,6 @@ package com.wms_main.model.dto.response.wcs;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import com.wms_main.constant.enums.wcs.WcsApiResponseCodeEnums; import com.wms_main.constant.enums.wcs.WcsApiResponseCodeEnums;
import com.wms_main.constant.enums.wms.WmsApiResponseCodeEnums;
import com.wms_main.model.dto.response.wms.WmsApiResponse;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;

View File

@ -8,8 +8,6 @@ import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import java.time.LocalDateTime;
/** /**
* DBS表映射 * DBS表映射
*/ */

View File

@ -44,7 +44,6 @@ public class TAppImage extends BaseImportEntity {
private String imageName; private String imageName;
/** /**
* 图纸详情 * 图纸详情
* TODO 是否存在数据流
*/ */
@TableField(value = "image_detail") @TableField(value = "image_detail")
private String imageDetail; private String imageDetail;

View File

@ -7,8 +7,6 @@ import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime; import java.time.LocalDateTime;
/** /**

View File

@ -7,7 +7,6 @@ import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import java.math.BigDecimal;
import java.time.LocalDateTime; import java.time.LocalDateTime;
/** /**

View File

@ -7,7 +7,6 @@ import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import java.math.BigDecimal;
import java.time.LocalDateTime; import java.time.LocalDateTime;
/** /**

View File

@ -1,7 +1,6 @@
package com.wms_main.model.vo.wms; package com.wms_main.model.vo.wms;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import com.wms_main.model.po.TAppImage;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;

View File

@ -9,7 +9,6 @@ import java.time.LocalDate;
/** /**
* 工作界面显示 * 工作界面显示
* // TODO 数据待补充
*/ */
@Data @Data
@AllArgsConstructor @AllArgsConstructor

View File

@ -8,7 +8,6 @@ import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat; import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDate;
import java.time.LocalDateTime; import java.time.LocalDateTime;
/** /**

View File

@ -14,8 +14,6 @@ import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
public class TcpClient { public class TcpClient {

View File

@ -8,11 +8,6 @@ import org.springframework.util.DigestUtils;
* 字符串工具类 * 字符串工具类
*/ */
public class StringUtils { public class StringUtils {
private static final String CHARS_AZ = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
private static final String CHARS_az = "abcdefghijklmnopqrstuvwxyz";
private static final String CHARS_09 = "0123456789";
/** 下划线 */ /** 下划线 */
private static final char SEPARATOR = '_'; private static final char SEPARATOR = '_';

View File

@ -11,13 +11,10 @@ import com.wms_main.model.dto.request.wcs.WcsStackerTaskRequest;
import com.wms_main.model.dto.response.wcs.BaseWcsApiResponse; import com.wms_main.model.dto.response.wcs.BaseWcsApiResponse;
import com.wms_main.model.dto.response.wcs.WcsApiResponse; import com.wms_main.model.dto.response.wcs.WcsApiResponse;
import com.wms_main.model.dto.response.wcs.WcsCanFeedResponse; import com.wms_main.model.dto.response.wcs.WcsCanFeedResponse;
import com.wms_main.model.po.TAppAgvLock;
import com.wms_main.repository.http.HttpClient; import com.wms_main.repository.http.HttpClient;
import com.wms_main.repository.http.entity.HttpRequest; import com.wms_main.repository.http.entity.HttpRequest;
import com.wms_main.repository.http.entity.HttpResponse; import com.wms_main.repository.http.entity.HttpResponse;
import com.wms_main.service.api.IWcsApiService; import com.wms_main.service.api.IWcsApiService;
import com.wms_main.service.business.IAgvLockService;
import com.wms_main.service.business.IStackerTaskService;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -33,8 +30,6 @@ import java.time.LocalDateTime;
public class WcsApiServiceImpl implements IWcsApiService { public class WcsApiServiceImpl implements IWcsApiService {
private final HttpClient httpClient;// http客户端 private final HttpClient httpClient;// http客户端
private final AppCommon appCommon;// 应用共通 private final AppCommon appCommon;// 应用共通
private final IAgvLockService agvLockService;// AGV互锁服务
private final IStackerTaskService stackerTaskService;// 库位分配服务
/** /**
* 发送堆垛机任务 * 发送堆垛机任务
@ -45,12 +40,12 @@ public class WcsApiServiceImpl implements IWcsApiService {
public WcsApiResponse<WcsStackerTask> sendWcsStackerTask(WcsStackerTaskRequest request) { public WcsApiResponse<WcsStackerTask> sendWcsStackerTask(WcsStackerTaskRequest request) {
// 设置http请求 // 设置http请求
HttpRequest httpRequest = HttpRequest.postInstanceOf(appCommon.getConfigByKey(AppConfigKeyEnums.WCS_STACKER_TASK_URL.getKey()), request); HttpRequest httpRequest = HttpRequest.postInstanceOf(appCommon.getConfigByKey(AppConfigKeyEnums.WCS_STACKER_TASK_URL.getKey()), request);
HttpResponse httpResponse = httpClient.httpPost(httpRequest); // HttpResponse httpResponse = httpClient.httpPost(httpRequest);
if (httpResponse != null && httpResponse.isSuccess()) { // if (httpResponse != null && httpResponse.isSuccess()) {
WcsApiResponse<WcsStackerTask> response = new WcsApiResponse<>(); // WcsApiResponse<WcsStackerTask> response = new WcsApiResponse<>();
response = httpResponse.getData(response.getClass().asSubclass(WcsApiResponse.class)); // response = httpResponse.getData(response.getClass().asSubclass(WcsApiResponse.class));
return response; // return response;
} // }
// TODO success -> error // TODO success -> error
return WcsApiResponse.success("请求未获得响应信息。", null); return WcsApiResponse.success("请求未获得响应信息。", null);
} }

View File

@ -1,28 +0,0 @@
package com.wms_main.service.business;
import com.wms_main.model.bo.wms.DepthStrategyResult;
import com.wms_main.model.po.TAppOrderOut;
import com.wms_main.model.po.TAppStock;
import java.util.List;
/**
* 深度策略服务接口
* 负责分析货物深度并生成相应的出库策略
*/
public interface IDepthStrategyService {
/**
* 基于载具号分析深度策略
* @param vehicleNo 载具号
* @return 深度策略分析结果
*/
DepthStrategyResult analyzeDepthStrategyByVehicle(String vehicleNo);
/**
* 获取指定库位的深度信息
* @param locationId 库位ID
* @return 深度值
*/
Integer getLocationDepth(String locationId);
}

View File

@ -1,178 +0,0 @@
package com.wms_main.service.business.serviceImpl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.wms_main.constant.enums.wms.WmsStockStatusEnums;
import com.wms_main.dao.ITAppLocationService;
import com.wms_main.dao.ITAppStockService;
import com.wms_main.model.bo.wms.DepthStrategyResult;
import com.wms_main.model.po.TAppLocation;
import com.wms_main.model.po.TAppOrderOut;
import com.wms_main.model.po.TAppStock;
import com.wms_main.repository.utils.StringUtils;
import com.wms_main.service.business.IDepthStrategyService;
import com.wms_main.service.business.IStackerTaskService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* 简化后的深度策略服务实现
* 核心逻辑基于载具号查询库存检测深度策略
*/
@Service
@RequiredArgsConstructor
@Slf4j
public class DepthStrategyServiceImpl implements IDepthStrategyService {
private final ITAppStockService appStockService;
private final ITAppLocationService appLocationService;
private final IStackerTaskService stackerTaskService;
/**
* 基于载具号分析深度策略新核心方法
*/
@Override
public DepthStrategyResult analyzeDepthStrategyByVehicle(String vehicleNo) {
if (StringUtils.isEmpty(vehicleNo)) {
log.warn("载具号为空");
return DepthStrategyResult.createError("载具号不能为空");
}
TAppStock stock = appStockService.getOne(
new LambdaQueryWrapper<TAppStock>()
.eq(TAppStock::getVehicleId, vehicleNo)
.eq(TAppStock::getStockStatus, WmsStockStatusEnums.OK.getCode())
);
if (stock == null) {
log.warn("载具号{}对应的库存不存在", vehicleNo);
return DepthStrategyResult.createError("载具库存不存在");
}
Integer depth = getLocationDepth(stock.getLocationId());
if (depth == null) {
log.warn("无法解析库存位置深度: {}", stock.getLocationId());
return DepthStrategyResult.createError("库位深度解析失败");
}
if (depth == 1) {
return DepthStrategyResult.createDirectOut("深度1直接出库");
} else if (depth == 2) {
return handleDepth2Stock(stock);
} else {
log.warn("不支持的库存深度: {}", depth);
return DepthStrategyResult.createError("仅支持1-2深度库存");
}
}
/**
* 处理深度2的库存策略
*/
private DepthStrategyResult handleDepth2Stock(TAppStock stock) {
// 检查深度1是否有阻挡
List<TAppStock> blockingStocks = getBlockingStocks(stock.getLocationId(), 1);
if (blockingStocks.isEmpty()) {
return DepthStrategyResult.createDirectOut("深度2无阻挡直接出库");
} else {
// 检查阻挡货物是否可移库
for (TAppStock blockingStock : blockingStocks) {
if (!canFindAlternativeLocation(blockingStock)) {
log.warn("深度2库存{}被阻挡,且无法移走阻挡货物{}",
stock.getStockId(), blockingStock.getStockId());
return DepthStrategyResult.createError("无法移走阻挡货物");
}
}
return DepthStrategyResult.createSingleTransfer("深度2有阻挡需要移库后出库");
}
}
/**
* 获取库位深度
*/
@Override
public Integer getLocationDepth(String locationId) {
if (StringUtils.isEmpty(locationId)) return null;
try {
String[] parts = locationId.split("-");
if (parts.length >= 4) {
return Integer.parseInt(parts[3]);
}
} catch (Exception e) {
log.warn("解析库位深度失败: {}", locationId, e);
}
return null;
}
/**
* 获取阻挡货物按载具去重
*/
private List<TAppStock> getBlockingStocks(String locationId, Integer blockingDepth) {
if (StringUtils.isEmpty(locationId) || blockingDepth == null) {
return List.of();
}
try {
String[] parts = locationId.split("-");
if (parts.length < 4) return List.of();
String blockingLocationId = parts[0] + "-" + parts[1] + "-" + parts[2] + "-0" + blockingDepth;
return appStockService.list(
new LambdaQueryWrapper<TAppStock>()
.eq(TAppStock::getLocationId, blockingLocationId)
.eq(TAppStock::getStockStatus, WmsStockStatusEnums.OK.getCode())
);
} catch (Exception e) {
log.warn("获取阻挡货物失败: {}, 深度: {}", locationId, blockingDepth, e);
return List.of();
}
}
/**
* 检查能否为阻挡货物找到空闲库位
*/
private boolean canFindAlternativeLocation(TAppStock blockingStock) {
try {
TAppLocation locationFilter = new TAppLocation();
String currentLocationId = blockingStock.getLocationId();
String[] parts = currentLocationId.split("-");
if (parts.length >= 4) {
locationFilter.setLRow(Integer.parseInt(parts[0].replaceAll("\\D", "")));
locationFilter.setLCol(Integer.parseInt(parts[1]));
}
TAppLocation targetLocation = stackerTaskService.requestOneLocation(
locationFilter, blockingStock.getVehicleId());
if (targetLocation != null) {
releaseLocation(targetLocation);
return true;
}
return false;
} catch (Exception e) {
log.error("检查空闲库位失败: {}", blockingStock.getStockId(), e);
return false;
}
}
/**
* 释放临时占用的库位
*/
private void releaseLocation(TAppLocation location) {
try {
appLocationService.update(
new com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper<TAppLocation>()
.eq(TAppLocation::getLocationId, location.getLocationId())
.set(TAppLocation::getIsOccupy, 0)
.set(TAppLocation::getVehicleId, "")
);
} catch (Exception e) {
log.warn("释放库位失败: {}", location.getLocationId(), e);
}
}
}

View File

@ -9,12 +9,12 @@ import com.wms_main.constant.enums.wms.*;
import com.wms_main.dao.*; import com.wms_main.dao.*;
import com.wms_main.model.dto.request.mywms.OrderInCBReq; import com.wms_main.model.dto.request.mywms.OrderInCBReq;
import com.wms_main.model.dto.request.mywms.OrderOutCBReq; import com.wms_main.model.dto.request.mywms.OrderOutCBReq;
import com.wms_main.model.dto.response.mes.MesApiResponse;
import com.wms_main.model.po.*; import com.wms_main.model.po.*;
import com.wms_main.repository.utils.ConvertUtils; import com.wms_main.repository.utils.ConvertUtils;
import com.wms_main.repository.utils.StringUtils; import com.wms_main.repository.utils.StringUtils;
import com.wms_main.repository.utils.UUIDUtils; import com.wms_main.repository.utils.UUIDUtils;
import com.wms_main.service.api.IExternalApiService; import com.wms_main.service.api.IExternalApiService;
import com.wms_main.service.business.IAgvLockService;
import com.wms_main.service.business.IStackerTaskService; import com.wms_main.service.business.IStackerTaskService;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@ -58,11 +58,6 @@ public class StackerTaskServiceImpl implements IStackerTaskService {
*/ */
private final ITAppTaskBakService appTaskBakService; private final ITAppTaskBakService appTaskBakService;
private final ITAppWcsTaskBakService appWcsTaskBakService;
/**
* 拣选任务服务
*/
private final ITAppPickTaskService appPickTaskService;
/** /**
* 设备服务 * 设备服务
*/ */
@ -78,6 +73,8 @@ public class StackerTaskServiceImpl implements IStackerTaskService {
*/ */
private final AppCommon appCommon; private final AppCommon appCommon;
private final IAgvLockService agvLockService;
/** /**
* 存WcsTask表 * 存WcsTask表
* 更新WmsTask表 * 更新WmsTask表
@ -186,6 +183,9 @@ public class StackerTaskServiceImpl implements IStackerTaskService {
break; break;
} }
} }
if (targetLocation != null) {
appCommon.updateWorkingLocations(targetLocation.getLocationId(), 1);
}
// 返回库位如果返回null则表示没有可用库位 // 返回库位如果返回null则表示没有可用库位
return targetLocation; return targetLocation;
@ -422,6 +422,9 @@ public class StackerTaskServiceImpl implements IStackerTaskService {
vehicle.setLocationId(wmsTask.getDestination()); vehicle.setLocationId(wmsTask.getDestination());
vehicle.setLastInTime(LocalDateTime.now()); vehicle.setLastInTime(LocalDateTime.now());
appVehicleService.saveOrUpdate(vehicle); appVehicleService.saveOrUpdate(vehicle);
appCommon.updateWorkingLocations(wmsTask.getDestination(), 0);
agvLockService.releaseAllInboundPortLocks("CR");
// 备份并删除任务 // 备份并删除任务
if (!appTaskService.removeById(wmsTask.getTaskId())) { if (!appTaskService.removeById(wmsTask.getTaskId())) {
log.info("删除入库任务失败,任务:{}", wmsTask.getTaskId()); log.info("删除入库任务失败,任务:{}", wmsTask.getTaskId());
@ -456,6 +459,8 @@ public class StackerTaskServiceImpl implements IStackerTaskService {
.eq(TAppVehicle::getVehicleId, wmsTask.getVehicleId()) .eq(TAppVehicle::getVehicleId, wmsTask.getVehicleId())
.set(TAppVehicle::getLocationId, wmsTask.getDestination()) .set(TAppVehicle::getLocationId, wmsTask.getDestination())
); );
appCommon.updateWorkingLocations(wmsTask.getDestination(), 0);
appCommon.updateWorkingLocations(wmsTask.getOrigin(), 0);
appTaskService.removeById(wmsTask.getTaskId()); appTaskService.removeById(wmsTask.getTaskId());
appTaskBakService.save(wmsTask.of()); appTaskBakService.save(wmsTask.of());
} }
@ -509,6 +514,8 @@ public class StackerTaskServiceImpl implements IStackerTaskService {
.set(TAppStock::getStockStatus, WmsStockStatusEnums.OUTED.getCode()) .set(TAppStock::getStockStatus, WmsStockStatusEnums.OUTED.getCode())
.set(TAppStock::getLocationId, "") .set(TAppStock::getLocationId, "")
.eq(TAppStock::getVehicleId, vehicleId)); .eq(TAppStock::getVehicleId, vehicleId));
appCommon.updateWorkingLocations(thisVehicle.getLocationId(), 0);
agvLockService.releaseAllInboundPortLocks("CR");
// 当前载具的任务列表 // 当前载具的任务列表
List<TAppTask> thisVehicleOutTasks = vehicleIdToTaskMap.get(vehicleId); List<TAppTask> thisVehicleOutTasks = vehicleIdToTaskMap.get(vehicleId);
if (thisVehicleOutTasks.isEmpty()) { if (thisVehicleOutTasks.isEmpty()) {

View File

@ -3,7 +3,6 @@ package com.wms_main.service.controller;
import com.wms_main.model.dto.query.LocationQuery; import com.wms_main.model.dto.query.LocationQuery;
import com.wms_main.model.dto.response.wms.BaseWmsApiResponse; import com.wms_main.model.dto.response.wms.BaseWmsApiResponse;
import com.wms_main.model.dto.response.wms.WmsApiResponse; import com.wms_main.model.dto.response.wms.WmsApiResponse;
import com.wms_main.model.po.TAppLocation;
/** /**
* 库位控制类服务 * 库位控制类服务

View File

@ -1,22 +1,9 @@
package com.wms_main.service.controller; package com.wms_main.service.controller;
import com.wms_main.model.bo.wcs.WcsStackerTask;
import com.wms_main.model.dto.request.wcs.WcsBoxArriveRequest;
import com.wms_main.model.dto.request.wcs.WcsTaskResultRequest; import com.wms_main.model.dto.request.wcs.WcsTaskResultRequest;
import com.wms_main.model.dto.request.wcs.WcsVehicleInRequest; import com.wms_main.model.dto.request.wcs.WcsVehicleInRequest;
import com.wms_main.model.dto.request.wms.*;
import com.wms_main.model.dto.response.wcs.BaseWcsApiResponse; import com.wms_main.model.dto.response.wcs.BaseWcsApiResponse;
import com.wms_main.model.dto.response.wcs.InTaskResp;
import com.wms_main.model.dto.response.wcs.WcsApiResponse;
import com.wms_main.model.dto.response.wcs.WcsVehicleInResponse; import com.wms_main.model.dto.response.wcs.WcsVehicleInResponse;
import com.wms_main.model.dto.response.wms.BaseWmsApiResponse;
import com.wms_main.model.dto.response.wms.WmsApiResponse;
import com.wms_main.model.po.TAppTaskBak;
import com.wms_main.model.po.TAppWcsTaskBak;
import com.wms_main.model.vo.wms.TaskConfirmVo;
import org.apache.poi.ss.formula.functions.T;
import java.util.List;
/** /**
* 任务控制类 服务接口 * 任务控制类 服务接口

View File

@ -1,6 +1,5 @@
package com.wms_main.service.controller; package com.wms_main.service.controller;
import com.wms_main.model.dto.request.wms.BaseWmsRequest;
import com.wms_main.model.dto.query.DbsQuery; import com.wms_main.model.dto.query.DbsQuery;
import com.wms_main.model.dto.request.wms.InitKateWorkRequest; import com.wms_main.model.dto.request.wms.InitKateWorkRequest;
import com.wms_main.model.vo.wms.ImageVo; import com.wms_main.model.vo.wms.ImageVo;

View File

@ -110,7 +110,6 @@ public class LoginControllerServiceImpl implements ILoginControllerService {
} }
List<MenuVo> menuVoList = new LinkedList<>(); List<MenuVo> menuVoList = new LinkedList<>();
// 查找一级菜单 // 查找一级菜单
// TODO 这里可以用递归优化减少代码量
for (TSysMenu firstMenu : menuPoList) { for (TSysMenu firstMenu : menuPoList) {
if (AppConstant.ROOT_MENU_ID.equals(firstMenu.getParentId())) {// 查找到所有的一级子菜单 if (AppConstant.ROOT_MENU_ID.equals(firstMenu.getParentId())) {// 查找到所有的一级子菜单
MenuVo tempFirstMenu = new MenuVo(); MenuVo tempFirstMenu = new MenuVo();

View File

@ -2,16 +2,13 @@ package com.wms_main.service.controller.serviceImpl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.fasterxml.jackson.databind.ObjectMapper; import com.wms_main.app.AppCommon;
import com.wms_main.constant.enums.wms.OrderStatusEnum; import com.wms_main.constant.enums.wms.OrderStatusEnum;
import com.wms_main.constant.enums.wms.WmsDepthStrategyEnums;
import com.wms_main.constant.enums.wms.WmsStockStatusEnums; import com.wms_main.constant.enums.wms.WmsStockStatusEnums;
import com.wms_main.dao.ITAppAgvLockService;
import com.wms_main.dao.ITAppLocationService; import com.wms_main.dao.ITAppLocationService;
import com.wms_main.dao.ITAppOrderInService; import com.wms_main.dao.ITAppOrderInService;
import com.wms_main.dao.ITAppOrderOutService; import com.wms_main.dao.ITAppOrderOutService;
import com.wms_main.dao.ITAppStockService; import com.wms_main.dao.ITAppStockService;
import com.wms_main.model.bo.wms.DepthStrategyResult;
import com.wms_main.model.dto.request.mywms.*; import com.wms_main.model.dto.request.mywms.*;
import com.wms_main.model.dto.request.wcs.WcsCanFeedRequest; import com.wms_main.model.dto.request.wcs.WcsCanFeedRequest;
import com.wms_main.model.dto.response.mywms.MyWmsResponse; import com.wms_main.model.dto.response.mywms.MyWmsResponse;
@ -25,7 +22,6 @@ import com.wms_main.repository.utils.StringUtils;
import com.wms_main.repository.utils.UUIDUtils; import com.wms_main.repository.utils.UUIDUtils;
import com.wms_main.service.api.IWcsApiService; import com.wms_main.service.api.IWcsApiService;
import com.wms_main.service.business.IAgvLockService; import com.wms_main.service.business.IAgvLockService;
import com.wms_main.service.business.IDepthStrategyService;
import com.wms_main.service.business.IStackerTaskService; import com.wms_main.service.business.IStackerTaskService;
import com.wms_main.service.controller.IMyWmsControllerService; import com.wms_main.service.controller.IMyWmsControllerService;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
@ -43,13 +39,11 @@ public class MyWmsControllerServiceImpl implements IMyWmsControllerService {
private final ITAppOrderInService appOrderInService; private final ITAppOrderInService appOrderInService;
private final ITAppOrderOutService appOrderOutService; private final ITAppOrderOutService appOrderOutService;
private final ITAppStockService appStockService; private final ITAppStockService appStockService;
private final IDepthStrategyService depthStrategyService;
private final ITAppLocationService appLocationService; private final ITAppLocationService appLocationService;
private final IStackerTaskService stackerTaskService; private final IStackerTaskService stackerTaskService;
private final IAgvLockService agvLockService; private final IAgvLockService agvLockService;
private final IWcsApiService wcsApiService; private final IWcsApiService wcsApiService;
private final ObjectMapper objectMapper = new ObjectMapper(); private final AppCommon appCommon;
private static final String L_TEMP_FLAG = "temp"; private static final String L_TEMP_FLAG = "temp";
@Override @Override
@ -71,7 +65,7 @@ public class MyWmsControllerServiceImpl implements IMyWmsControllerService {
orderIn.setRecordId(UUIDUtils.getNewUUID()); orderIn.setRecordId(UUIDUtils.getNewUUID());
orderIn.setOrderId(request.getTaskId()); orderIn.setOrderId(request.getTaskId());
orderIn.setVehicleNo(request.getVehicleNo()); orderIn.setVehicleNo(request.getVehicleNo());
orderIn.setInStand("R1"); orderIn.setInStand("CR");
orderIn.setRequestUser("wms"); orderIn.setRequestUser("wms");
orderIn.setOrderStatus(OrderStatusEnum.CREATE.getCode()); orderIn.setOrderStatus(OrderStatusEnum.CREATE.getCode());
orderIn.setCreateTime(LocalDateTime.now()); orderIn.setCreateTime(LocalDateTime.now());
@ -118,14 +112,6 @@ public class MyWmsControllerServiceImpl implements IMyWmsControllerService {
orderOut.setCreateTime(LocalDateTime.now()); orderOut.setCreateTime(LocalDateTime.now());
orderOut.setUpdateTime(LocalDateTime.now()); orderOut.setUpdateTime(LocalDateTime.now());
DepthStrategyResult depthStrategy = depthStrategyService.analyzeDepthStrategyByVehicle(request.getVehicleNo());
orderOut.setDepthStrategy(depthStrategy.getStrategy().getCode());
orderOut.setDepthStrategyDetail(objectMapper.writeValueAsString(depthStrategy));
if (orderOut.getDepthStrategy().equals(WmsDepthStrategyEnums.NO_ACTION.getCode())) {
return MyWmsResponse.error("载具出库任务添加失败:" + request.getVehicleNo(), null);
}
if (!appOrderOutService.save(orderOut)) { if (!appOrderOutService.save(orderOut)) {
return MyWmsResponse.error("出库单保存失败,请稍后再试", null); return MyWmsResponse.error("出库单保存失败,请稍后再试", null);
} }
@ -183,9 +169,15 @@ public class MyWmsControllerServiceImpl implements IMyWmsControllerService {
if (location == null || StringUtils.isEmpty(location.getLocationId())) { if (location == null || StringUtils.isEmpty(location.getLocationId())) {
return MyWmsResponse.error("无剩余可用库位", false); return MyWmsResponse.error("无剩余可用库位", false);
} }
// 释放预占的库位
appLocationService.update(new LambdaUpdateWrapper<TAppLocation>()
.eq(TAppLocation::getLocationId, location.getLocationId())
.set(TAppLocation::getIsOccupy, 0)
.set(TAppLocation::getVehicleId, ""));
appCommon.updateWorkingLocations(location.getLocationId(), 0);
// 2. 调用wcs.canFeed检查wcs状态 // 2. 调用wcs.canFeed检查wcs状态
WcsApiResponse<WcsCanFeedResponse> wcsResponse = wcsApiService.canFeed(new WcsCanFeedRequest("R1")); WcsApiResponse<WcsCanFeedResponse> wcsResponse = wcsApiService.canFeed(new WcsCanFeedRequest("CR"));
if (wcsResponse == null || wcsResponse.getData() == null) { if (wcsResponse == null || wcsResponse.getData() == null) {
return MyWmsResponse.error("WCS系统查询失败", false); return MyWmsResponse.error("WCS系统查询失败", false);
} }
@ -196,17 +188,11 @@ public class MyWmsControllerServiceImpl implements IMyWmsControllerService {
} }
// 3. 检查agvLock服务获取wms状态 // 3. 检查agvLock服务获取wms状态
Boolean wmsAllow = agvLockService.canFeedToInboundPort("R1"); Boolean wmsAllow = agvLockService.canFeedToInboundPort("CR");
if (!wmsAllow) { if (!wmsAllow) {
return MyWmsResponse.error("入库口锁定中", false); return MyWmsResponse.error("入库口锁定中", false);
} }
// 释放预占的库位
appLocationService.update(new LambdaUpdateWrapper<TAppLocation>()
.eq(TAppLocation::getLocationId, location.getLocationId())
.set(TAppLocation::getIsOccupy, 0)
.set(TAppLocation::getVehicleId, ""));
return MyWmsResponse.success(true); return MyWmsResponse.success(true);
} catch (Exception e) { } catch (Exception e) {
return MyWmsResponse.error("系统异常,请稍后重试", false); return MyWmsResponse.error("系统异常,请稍后重试", false);
@ -216,8 +202,8 @@ public class MyWmsControllerServiceImpl implements IMyWmsControllerService {
@Override @Override
public MyWmsResponse<Boolean> queryCanOut() { public MyWmsResponse<Boolean> queryCanOut() {
try { try {
// 1. 调用wcs.canFeed检查wcs状态 (使用R1) // 1. 调用wcs.canFeed检查wcs状态 (使用CR口)
WcsApiResponse<WcsCanFeedResponse> wcsResponse = wcsApiService.canFeed(new WcsCanFeedRequest("R1")); WcsApiResponse<WcsCanFeedResponse> wcsResponse = wcsApiService.canFeed(new WcsCanFeedRequest("CR"));
if (wcsResponse == null || wcsResponse.getData() == null) { if (wcsResponse == null || wcsResponse.getData() == null) {
return MyWmsResponse.error("WCS系统查询失败", false); return MyWmsResponse.error("WCS系统查询失败", false);
} }
@ -227,8 +213,8 @@ public class MyWmsControllerServiceImpl implements IMyWmsControllerService {
return MyWmsResponse.error("WCS系统不允许出库", false); return MyWmsResponse.error("WCS系统不允许出库", false);
} }
// 2. 检查agvLock服务获取wms状态 (使用R1) // 2. 检查agvLock服务获取wms状态 (使用CR口)
Boolean wmsAllow = agvLockService.canFeedToInboundPort("R1"); Boolean wmsAllow = agvLockService.canFeedToInboundPort("CR");
if (!wmsAllow) { if (!wmsAllow) {
return MyWmsResponse.error("出库口锁定中", false); return MyWmsResponse.error("出库口锁定中", false);
} }

View File

@ -13,7 +13,6 @@ import com.wms_main.model.po.*;
import com.wms_main.repository.utils.ConvertUtils; import com.wms_main.repository.utils.ConvertUtils;
import com.wms_main.repository.utils.StringUtils; import com.wms_main.repository.utils.StringUtils;
import com.wms_main.repository.utils.UUIDUtils; import com.wms_main.repository.utils.UUIDUtils;
import com.wms_main.service.business.IAgvLockService;
import com.wms_main.service.business.IStackerTaskService; import com.wms_main.service.business.IStackerTaskService;
import com.wms_main.service.controller.ITaskControllerService; import com.wms_main.service.controller.ITaskControllerService;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
@ -36,7 +35,6 @@ public class TaskControllerServiceImpl implements ITaskControllerService {
private final IStackerTaskService stackerTaskService;// 堆垛机任务服务 private final IStackerTaskService stackerTaskService;// 堆垛机任务服务
private final ITAppOrderInService orderInService; private final ITAppOrderInService orderInService;
private final ITAppWcsTaskBakService appWcsTaskBakService; private final ITAppWcsTaskBakService appWcsTaskBakService;
private final IAgvLockService agvLockService;// AGV互锁服务
@Override @Override
@Transactional @Transactional
@ -147,18 +145,6 @@ public class TaskControllerServiceImpl implements ITaskControllerService {
.set(TAppOrderIn::getOrderStatus, OrderStatusEnum.COMPLETE.getCode()) .set(TAppOrderIn::getOrderStatus, OrderStatusEnum.COMPLETE.getCode())
.set(TAppOrderIn::getCompleteTime, LocalDateTime.now())); .set(TAppOrderIn::getCompleteTime, LocalDateTime.now()));
// 任务完成时释放R1口锁定box仓库出入库都使用同一个R1口
if (wmsTask != null) {
try {
String port = "R1"; // box仓库统一使用R1口
// 释放该口的所有活动锁定不关心具体是哪台AGV
int releasedCount = agvLockService.releaseAllInboundPortLocks(port);
log.info("任务完成释放R1口的锁定任务类型: {}, 共释放 {} 个锁定", wmsTask.getTaskType(), releasedCount);
} catch (Exception e) {
log.error("释放R1口锁定时发生异常", e);
}
}
// 移除wcs任务并向wcs备份表添加记录 // 移除wcs任务并向wcs备份表添加记录
TAppWcsTaskBak wcsTaskBak = new TAppWcsTaskBak( TAppWcsTaskBak wcsTaskBak = new TAppWcsTaskBak(
wcsTask.getWcsTaskId(), wcsTask.getWcsTaskId(),

View File

@ -4,7 +4,6 @@ import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.wms_main.dao.ITAppImageService; import com.wms_main.dao.ITAppImageService;
import com.wms_main.excel.easypoi.service.IExportExcelEasyPoi; import com.wms_main.excel.easypoi.service.IExportExcelEasyPoi;
import com.wms_main.model.dto.request.wms.BaseWmsRequest;
import com.wms_main.model.dto.query.DbsQuery; import com.wms_main.model.dto.query.DbsQuery;
import com.wms_main.model.dto.request.wms.InitKateWorkRequest; import com.wms_main.model.dto.request.wms.InitKateWorkRequest;
import com.wms_main.model.po.TAppImage; import com.wms_main.model.po.TAppImage;

View File

@ -18,7 +18,6 @@ public class JobTest implements Job {
*/ */
@Override @Override
public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
// TODO 需要增加定时器的全局异常捕获
// 测试定时任务 // 测试定时任务
System.out.println("本次Test执行时间" + jobExecutionContext.getFireTime()); System.out.println("本次Test执行时间" + jobExecutionContext.getFireTime());
try { try {

View File

@ -2,6 +2,7 @@ package com.wms_main.service.quartz_job.job_executor;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.wms_main.app.AppCommon;
import com.wms_main.constant.enums.wms.OrderStatusEnum; import com.wms_main.constant.enums.wms.OrderStatusEnum;
import com.wms_main.constant.enums.wms.WmsStackerTaskStatusEnums; import com.wms_main.constant.enums.wms.WmsStackerTaskStatusEnums;
import com.wms_main.constant.enums.wms.WmsStockStatusEnums; import com.wms_main.constant.enums.wms.WmsStockStatusEnums;
@ -13,8 +14,8 @@ import com.wms_main.model.po.TAppLocation;
import com.wms_main.model.po.TAppOrderOut; import com.wms_main.model.po.TAppOrderOut;
import com.wms_main.model.po.TAppStock; import com.wms_main.model.po.TAppStock;
import com.wms_main.model.po.TAppTask; import com.wms_main.model.po.TAppTask;
import com.wms_main.repository.utils.StringUtils;
import com.wms_main.repository.utils.UUIDUtils; import com.wms_main.repository.utils.UUIDUtils;
import com.wms_main.service.business.IDepthStrategyService;
import com.wms_main.service.business.IStackerTaskService; import com.wms_main.service.business.IStackerTaskService;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@ -37,8 +38,8 @@ public class MyOutExecutor implements Job {
private final ITAppOrderOutService appOrderOutService; private final ITAppOrderOutService appOrderOutService;
private final ITAppStockService appStockService; private final ITAppStockService appStockService;
private final ITAppTaskService appTaskService; private final ITAppTaskService appTaskService;
private final IDepthStrategyService depthStrategyService;
private final IStackerTaskService stackerTaskService; private final IStackerTaskService stackerTaskService;
private final AppCommon appCommon;
@Override @Override
public void execute(JobExecutionContext context) { public void execute(JobExecutionContext context) {
@ -52,8 +53,7 @@ public class MyOutExecutor implements Job {
// 获取状态为CREATE的出库订单 // 获取状态为CREATE的出库订单
List<TAppOrderOut> orders = appOrderOutService.list( List<TAppOrderOut> orders = appOrderOutService.list(
new LambdaQueryWrapper<TAppOrderOut>() new LambdaQueryWrapper<TAppOrderOut>()
.eq(TAppOrderOut::getOrderStatus, OrderStatusEnum.CREATE.getCode()) .eq(TAppOrderOut::getOrderStatus, OrderStatusEnum.CREATE.getCode()));
);
orders.forEach(this::processSingleOrder); orders.forEach(this::processSingleOrder);
} }
@ -71,7 +71,7 @@ public class MyOutExecutor implements Job {
} }
// 2. 获取库位深度 // 2. 获取库位深度
Integer depth = depthStrategyService.getLocationDepth(stock.getLocationId()); Integer depth = getLocationDepth(stock.getLocationId());
if (depth == null) { if (depth == null) {
log.error("无法解析库位深度: {}", stock.getLocationId()); log.error("无法解析库位深度: {}", stock.getLocationId());
return; return;
@ -86,9 +86,7 @@ public class MyOutExecutor implements Job {
List<TAppStock> blockingStocks = getBlockingStocks(stock.getLocationId()); List<TAppStock> blockingStocks = getBlockingStocks(stock.getLocationId());
if (!blockingStocks.isEmpty()) { if (!blockingStocks.isEmpty()) {
// 生成移库任务移走阻挡货物 // 生成移库任务移走阻挡货物
blockingStocks.forEach(blocking -> blockingStocks.forEach(blocking -> tasks.add(createTransferTask(blocking, order)));
tasks.add(createTransferTask(blocking, order))
);
} }
tasks.add(createOutTask(order, stock)); tasks.add(createOutTask(order, stock));
} else { } else {
@ -113,8 +111,7 @@ public class MyOutExecutor implements Job {
return appStockService.getOne( return appStockService.getOne(
new LambdaQueryWrapper<TAppStock>() new LambdaQueryWrapper<TAppStock>()
.eq(TAppStock::getVehicleId, vehicleNo) .eq(TAppStock::getVehicleId, vehicleNo)
.eq(TAppStock::getStockStatus, WmsStockStatusEnums.OK.getCode()) .eq(TAppStock::getStockStatus, WmsStockStatusEnums.OK.getCode()));
);
} }
/** /**
@ -122,7 +119,8 @@ public class MyOutExecutor implements Job {
*/ */
private List<TAppStock> getBlockingStocks(String locationId) { private List<TAppStock> getBlockingStocks(String locationId) {
String[] parts = locationId.split("-"); String[] parts = locationId.split("-");
if (parts.length < 4) return Collections.emptyList(); if (parts.length < 4)
return Collections.emptyList();
// 构建深度1库位ID (格式: ---01) // 构建深度1库位ID (格式: ---01)
String depth1Loc = parts[0] + "-" + parts[1] + "-" + parts[2] + "-01"; String depth1Loc = parts[0] + "-" + parts[1] + "-" + parts[2] + "-01";
@ -130,8 +128,7 @@ public class MyOutExecutor implements Job {
return appStockService.list( return appStockService.list(
new LambdaQueryWrapper<TAppStock>() new LambdaQueryWrapper<TAppStock>()
.eq(TAppStock::getLocationId, depth1Loc) .eq(TAppStock::getLocationId, depth1Loc)
.eq(TAppStock::getStockStatus, WmsStockStatusEnums.OK.getCode()) .eq(TAppStock::getStockStatus, WmsStockStatusEnums.OK.getCode()));
);
} }
/** /**
@ -152,6 +149,9 @@ public class MyOutExecutor implements Job {
task.setCreateTime(LocalDateTime.now()); task.setCreateTime(LocalDateTime.now());
task.setTaskPriority(2); task.setTaskPriority(2);
task.setRemark("移走深度1阻挡货物"); task.setRemark("移走深度1阻挡货物");
appCommon.updateWorkingLocations(blockingStock.getLocationId(), 1);
appCommon.updateWorkingLocations(target.getLocationId(), 1);
return task; return task;
} }
@ -165,12 +165,13 @@ public class MyOutExecutor implements Job {
task.setTaskGroup(order.getOrderId()); task.setTaskGroup(order.getOrderId());
task.setTaskStatus(WmsStackerTaskStatusEnums.WAIT.getCode()); task.setTaskStatus(WmsStackerTaskStatusEnums.WAIT.getCode());
task.setOrigin(stock.getLocationId()); task.setOrigin(stock.getLocationId());
task.setDestination("C1"); task.setDestination("CR");
task.setVehicleId(stock.getVehicleId()); task.setVehicleId(stock.getVehicleId());
task.setCreateTime(LocalDateTime.now()); task.setCreateTime(LocalDateTime.now());
task.setTaskPriority(1); task.setTaskPriority(1);
task.setRemark(stock.getLocationId().endsWith("-01") ? task.setRemark(stock.getLocationId().endsWith("-01") ? "深度1直接出库" : "深度2出库");
"深度1直接出库" : "深度2出库");
appCommon.updateWorkingLocations(stock.getLocationId(), 1);
return task; return task;
} }
@ -188,8 +189,7 @@ public class MyOutExecutor implements Job {
appStockService.update( appStockService.update(
new LambdaUpdateWrapper<TAppStock>() new LambdaUpdateWrapper<TAppStock>()
.eq(TAppStock::getStockId, stock.getStockId()) .eq(TAppStock::getStockId, stock.getStockId())
.set(TAppStock::getStockStatus, WmsStockStatusEnums.OUTING.getCode()) .set(TAppStock::getStockStatus, WmsStockStatusEnums.OUTING.getCode()));
);
} }
/** /**
@ -199,7 +199,28 @@ public class MyOutExecutor implements Job {
appOrderOutService.update( appOrderOutService.update(
new LambdaUpdateWrapper<TAppOrderOut>() new LambdaUpdateWrapper<TAppOrderOut>()
.eq(TAppOrderOut::getRecordId, order.getRecordId()) .eq(TAppOrderOut::getRecordId, order.getRecordId())
.set(TAppOrderOut::getOrderStatus, OrderStatusEnum.RUNNING.getCode()) .set(TAppOrderOut::getOrderStatus, OrderStatusEnum.RUNNING.getCode()));
); }
/**
* 获取指定库位的深度信息
* 解析库位ID获取深度值
*/
private Integer getLocationDepth(String locationId) {
if (StringUtils.isEmpty(locationId)) {
return 0;
}
try {
// 解析库位ID格式A03-1-2-3---深度
String[] parts = locationId.split("-");
if (parts.length >= 4) {
return Integer.parseInt(parts[3]);
}
} catch (Exception e) {
log.warn("解析库位深度失败:{}", locationId, e);
}
return 0;
} }
} }

View File

@ -6,6 +6,7 @@ import com.wms_main.constant.enums.wcs.WcsApiResponseCodeEnums;
import com.wms_main.constant.enums.wcs.WcsStackerTaskStatusEnums; import com.wms_main.constant.enums.wcs.WcsStackerTaskStatusEnums;
import com.wms_main.constant.enums.wcs.WcsStackerTaskTypeEnums; import com.wms_main.constant.enums.wcs.WcsStackerTaskTypeEnums;
import com.wms_main.constant.enums.wms.WmsStackerTaskStatusEnums; import com.wms_main.constant.enums.wms.WmsStackerTaskStatusEnums;
import com.wms_main.constant.enums.wms.WmsTaskTypeEnums;
import com.wms_main.dao.ITAppTaskService; import com.wms_main.dao.ITAppTaskService;
import com.wms_main.dao.ITAppWcsTaskService; import com.wms_main.dao.ITAppWcsTaskService;
import com.wms_main.model.bo.wcs.WcsStackerTask; import com.wms_main.model.bo.wcs.WcsStackerTask;
@ -19,10 +20,8 @@ import com.wms_main.service.business.IAgvLockService;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.quartz.*; import org.quartz.*;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.List; import java.util.List;
import java.util.Objects;
/** /**
* 定时任务定义类---发送堆垛机任务 * 定时任务定义类---发送堆垛机任务
@ -58,73 +57,83 @@ public class WcsStackerTaskSender implements Job {
*/ */
@Override @Override
public void execute(JobExecutionContext jobExecutionContext) { public void execute(JobExecutionContext jobExecutionContext) {
if (appWcsTaskService.exists(new LambdaQueryWrapper<TAppWcsTask>().eq(TAppWcsTask::getWcsTaskStatus,
WcsStackerTaskStatusEnums.WAIT.getCode()))) {
return;
}
// 查询到所有的待下发的wcsTask并按优先级排序 // 查询到所有的待下发的wcsTask并按优先级排序
List<TAppWcsTask> waitSendWcsTaskList = appWcsTaskService.list( List<TAppWcsTask> waitSendWcsTaskList = appWcsTaskService.list(
new LambdaQueryWrapper<TAppWcsTask>() new LambdaQueryWrapper<TAppWcsTask>()
.eq(TAppWcsTask::getWcsTaskStatus, WcsStackerTaskStatusEnums.INIT.getCode())); .eq(TAppWcsTask::getWcsTaskStatus, WcsStackerTaskStatusEnums.INIT.getCode()));
if (waitSendWcsTaskList == null || waitSendWcsTaskList.isEmpty()) {
return;
}
// 按任务优先级排序优先级高的先发送数值大的优先级高 // 按任务优先级排序优先级高的先发送数值大的优先级高
waitSendWcsTaskList.sort((task1, task2) -> Integer.compare(task2.getTaskPriority(), task1.getTaskPriority())); waitSendWcsTaskList.sort((task1, task2) -> Integer.compare(task2.getTaskPriority(), task1.getTaskPriority()));
// 发送任务 // 发送任务
for (TAppWcsTask wcsTask : waitSendWcsTaskList) { TAppWcsTask wcsTask = waitSendWcsTaskList.getFirst();
// 生成请求 if (wcsTask.getWcsTaskType().equals(WcsStackerTaskTypeEnums.OUT.getCode())) {
WcsStackerTaskRequest request = new WcsStackerTaskRequest( Boolean wmsAllow = agvLockService.canFeedToInboundPort(wcsTask.getDestination());
wcsTask.getWcsTaskId(), if (!wmsAllow) {
wcsTask.getWcsTaskType(), return;
wcsTask.getTaskPriority(),
wcsTask.getOrigin(),
wcsTask.getDestination(),
wcsTask.getVehicleId());
try {
WcsApiResponse<WcsStackerTask> wcsResponse = wcsApiService.sendWcsStackerTask(request);
if (wcsResponse != null && WcsApiResponseCodeEnums.SUCCESS.getCode() == wcsResponse.getCode()) {
// 更新当前的wcs任务状态为已发送
appWcsTaskService.update(
new LambdaUpdateWrapper<TAppWcsTask>()
.set(TAppWcsTask::getWcsTaskStatus, WcsStackerTaskStatusEnums.WAIT.getCode())
.set(TAppWcsTask::getSendTime, LocalDateTime.now())
.eq(TAppWcsTask::getWcsTaskId, wcsTask.getWcsTaskId()));
// 更新当前wcs任务对应的wms任务为已发送
appTaskService.update(
new LambdaUpdateWrapper<TAppTask>()
.set(TAppTask::getTaskStatus, WmsStackerTaskStatusEnums.SEND.getCode())
.eq(TAppTask::getWcsTaskId, wcsTask.getWcsTaskId()));
if (!wcsTask.getWcsTaskType().equals(WcsStackerTaskTypeEnums.TRANSFER.getCode())) {
// 任务发送成功后锁定资源不区分出入库都使用R1口
try {
agvLockService.lockInboundPort("AGV", "R1");
log.info("任务发送成功后锁定R1口成功任务ID: {}", wcsTask.getWcsTaskId());
} catch (Exception e) {
log.error("任务发送成功后锁定R1口失败任务ID: {}", wcsTask.getWcsTaskId(), e);
}
}
TAppWcsTask doingWcsTask;
do {
doingWcsTask = appWcsTaskService.getOne(new LambdaQueryWrapper<TAppWcsTask>()
.eq(TAppWcsTask::getWcsTaskId, wcsTask.getWcsTaskId()));
Thread.sleep(1000);
} while (doingWcsTask != null && !Objects.equals(doingWcsTask.getWcsTaskStatus(),
WcsStackerTaskStatusEnums.FINISH.getCode()));
} else {
log.error("堆垛机任务发送失败,请求{},响应信息{}。", StringUtils.objectToString(request),
StringUtils.objectToString(wcsResponse));
// 更新当前的wcs任务状态为异常
appWcsTaskService.update(
new LambdaUpdateWrapper<TAppWcsTask>()
.set(TAppWcsTask::getWcsTaskStatus, WcsStackerTaskStatusEnums.EXCEPTION.getCode())
.set(TAppWcsTask::getSendTime, LocalDateTime.now())
.eq(TAppWcsTask::getWcsTaskId, wcsTask.getWcsTaskId()));
// 更新当前wcs任务对应的wms任务为异常
appTaskService.update(
new LambdaUpdateWrapper<TAppTask>()
.set(TAppTask::getTaskStatus, WmsStackerTaskStatusEnums.EXCEPTION.getCode())
.eq(TAppTask::getWcsTaskId, wcsTask.getWcsTaskId()));
}
} catch (Exception e) {
log.error("堆垛机任务发送失败,任务号:{},载具号:{},起点:{},终点:{}。", request.getTaskId(), request.getVehicleNo(),
request.getOrigin(), request.getDestination());
} }
} }
// 生成请求
WcsStackerTaskRequest request = new WcsStackerTaskRequest(
wcsTask.getWcsTaskId(),
wcsTask.getWcsTaskType(),
wcsTask.getTaskPriority(),
wcsTask.getOrigin(),
wcsTask.getDestination(),
wcsTask.getVehicleId());
try {
WcsApiResponse<WcsStackerTask> wcsResponse = wcsApiService.sendWcsStackerTask(request);
if (wcsResponse != null && WcsApiResponseCodeEnums.SUCCESS.getCode() == wcsResponse.getCode()) {
// 更新当前的wcs任务状态为已发送
appWcsTaskService.update(
new LambdaUpdateWrapper<TAppWcsTask>()
.set(TAppWcsTask::getWcsTaskStatus, WcsStackerTaskStatusEnums.WAIT.getCode())
.set(TAppWcsTask::getSendTime, LocalDateTime.now())
.eq(TAppWcsTask::getWcsTaskId, wcsTask.getWcsTaskId()));
// 更新当前wcs任务对应的wms任务为已发送
appTaskService.update(
new LambdaUpdateWrapper<TAppTask>()
.set(TAppTask::getTaskStatus, WmsStackerTaskStatusEnums.SEND.getCode())
.eq(TAppTask::getWcsTaskId, wcsTask.getWcsTaskId()));
if (wcsTask.getWcsTaskType().equals(WcsStackerTaskTypeEnums.OUT.getCode())) {
try {
agvLockService.lockInboundPort("AGV", wcsTask.getDestination());
} catch (Exception e) {
log.error("任务发送成功后锁定{}口失败任务ID: {}", wcsTask.getDestination(), wcsTask.getWcsTaskId());
}
} else if (wcsTask.getWcsTaskType().equals(WcsStackerTaskTypeEnums.IN.getCode())) {
try {
agvLockService.lockInboundPort("AGV", wcsTask.getOrigin());
} catch (Exception e) {
log.error("任务发送成功后锁定{}口失败任务ID: {}", wcsTask.getOrigin(), wcsTask.getWcsTaskId());
}
}
} else {
log.error("堆垛机任务发送失败,请求{},响应信息{}。", StringUtils.objectToString(request),
StringUtils.objectToString(wcsResponse));
// 更新当前的wcs任务状态为异常
appWcsTaskService.update(
new LambdaUpdateWrapper<TAppWcsTask>()
.set(TAppWcsTask::getWcsTaskStatus, WcsStackerTaskStatusEnums.EXCEPTION.getCode())
.set(TAppWcsTask::getSendTime, LocalDateTime.now())
.eq(TAppWcsTask::getWcsTaskId, wcsTask.getWcsTaskId()));
// 更新当前wcs任务对应的wms任务为异常
appTaskService.update(
new LambdaUpdateWrapper<TAppTask>()
.set(TAppTask::getTaskStatus, WmsStackerTaskStatusEnums.EXCEPTION.getCode())
.eq(TAppTask::getWcsTaskId, wcsTask.getWcsTaskId()));
}
} catch (Exception e) {
log.error("堆垛机任务发送失败,任务号:{},载具号:{},起点:{},终点:{}。", request.getTaskId(), request.getVehicleNo(),
request.getOrigin(), request.getDestination());
}
} }
} }

View File

@ -11,7 +11,6 @@ import com.wms_main.model.po.TAppTask;
import com.wms_main.model.po.TAppWcsTask; import com.wms_main.model.po.TAppWcsTask;
import com.wms_main.repository.utils.ConvertUtils; import com.wms_main.repository.utils.ConvertUtils;
import com.wms_main.repository.utils.StringUtils; import com.wms_main.repository.utils.StringUtils;
import com.wms_main.repository.utils.UUIDUtils;
import com.wms_main.service.business.IStackerTaskService; import com.wms_main.service.business.IStackerTaskService;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;

View File

@ -1,16 +1,10 @@
package com.wms_main.service.quartz_job.job_executor; package com.wms_main.service.quartz_job.job_executor;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.wms_main.constant.enums.wcs.WcsStackerTaskStatusEnums;
import com.wms_main.constant.enums.wcs.WcsStackerTaskTypeEnums;
import com.wms_main.constant.enums.wms.WmsStackerTaskStatusEnums; import com.wms_main.constant.enums.wms.WmsStackerTaskStatusEnums;
import com.wms_main.constant.enums.wms.WmsTaskTypeEnums; import com.wms_main.constant.enums.wms.WmsTaskTypeEnums;
import com.wms_main.dao.ITAppOrderInService;
import com.wms_main.dao.ITAppTaskService; import com.wms_main.dao.ITAppTaskService;
import com.wms_main.dao.ITAppWcsTaskService;
import com.wms_main.model.po.TAppOrderIn;
import com.wms_main.model.po.TAppTask; import com.wms_main.model.po.TAppTask;
import com.wms_main.model.po.TAppWcsTask;
import com.wms_main.repository.utils.StringUtils; import com.wms_main.repository.utils.StringUtils;
import com.wms_main.service.business.IStackerTaskService; import com.wms_main.service.business.IStackerTaskService;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
@ -36,11 +30,6 @@ public class WmsTaskFinisher implements Job {
* 堆垛机任务业务服务 * 堆垛机任务业务服务
*/ */
private final IStackerTaskService stackerTaskService; private final IStackerTaskService stackerTaskService;
private final ITAppOrderInService appOrderInService;
private final ITAppWcsTaskService appWcsTaskService;
/** /**
* 运行定时任务 * 运行定时任务
* 完成堆垛机任务 * 完成堆垛机任务

View File

@ -11,7 +11,7 @@
Target Server Version : 80042 (8.0.42) Target Server Version : 80042 (8.0.42)
File Encoding : 65001 File Encoding : 65001
Date: 21/07/2025 17:09:43 Date: 12/08/2025 19:24:47
*/ */
SET NAMES utf8mb4; SET NAMES utf8mb4;
@ -45,7 +45,8 @@ CREATE TABLE `t_app_agv_lock` (
-- ---------------------------- -- ----------------------------
-- Records of t_app_agv_lock -- Records of t_app_agv_lock
-- ---------------------------- -- ----------------------------
INSERT INTO `t_app_agv_lock` VALUES ('1753067226623010000', 'AGV', 'R1', 0, 'INBOUND_PORT_LOCK', 1, 1, '2025-07-21 14:22:17', '2025-07-21 14:22:58', 600, '入库任务完成,批量释放锁定', '2025-07-21 11:07:07', '2025-07-21 14:22:58'); INSERT INTO `t_app_agv_lock` VALUES ('1753067226623010000', 'AGV', 'R1', 0, 'INBOUND_PORT_LOCK', 1, 1, '2025-08-12 18:40:19', '2025-08-12 18:40:31', 600, '入库任务完成,批量释放锁定', '2025-07-21 11:07:07', '2025-08-12 18:40:31');
INSERT INTO `t_app_agv_lock` VALUES ('1753502538890010000', '1003', 'C1', 0, 'OUTBOUND_PORT_LOCK', 1, 1, '2025-08-12 19:23:39', '2025-08-12 19:23:58', 600, '出库任务完成,批量释放锁定', '2025-07-26 12:02:19', '2025-08-12 19:23:57');
-- ---------------------------- -- ----------------------------
-- Table structure for t_app_config -- Table structure for t_app_config
@ -69,6 +70,7 @@ INSERT INTO `t_app_config` VALUES ('11', 'ImportantDataClearInterval', '365', 1,
INSERT INTO `t_app_config` VALUES ('12', 'wcsCanFeedUrl', 'http://10.90.83.39:9980/api/wms/wcsCanFeedUrl', 1, '查询wcs是否可上料'); INSERT INTO `t_app_config` VALUES ('12', 'wcsCanFeedUrl', 'http://10.90.83.39:9980/api/wms/wcsCanFeedUrl', 1, '查询wcs是否可上料');
INSERT INTO `t_app_config` VALUES ('13', 'WmsOrderInCallback', 'http://test/palletstacker/orderin/feedback', 1, 'WMS接受的入库执行后回调地址'); INSERT INTO `t_app_config` VALUES ('13', 'WmsOrderInCallback', 'http://test/palletstacker/orderin/feedback', 1, 'WMS接受的入库执行后回调地址');
INSERT INTO `t_app_config` VALUES ('14', 'WmsOrderOutCallback', 'http://test/palletstacker/orderout/feedback', 1, 'WMS接受的出库执行后回调地址'); INSERT INTO `t_app_config` VALUES ('14', 'WmsOrderOutCallback', 'http://test/palletstacker/orderout/feedback', 1, 'WMS接受的出库执行后回调地址');
INSERT INTO `t_app_config` VALUES ('15', 'wcsCanOutUrl', 'http://10.90.83.39:9980/api/wms/wcsCanOutUrl', 1, '查询wcs是否可出库');
INSERT INTO `t_app_config` VALUES ('2', 'WcsStackerTaskUrl', 'http://10.90.83.39:9980/api/wms/wmsTask/setStackerTask', 1, '发送堆垛机任务地址'); INSERT INTO `t_app_config` VALUES ('2', 'WcsStackerTaskUrl', 'http://10.90.83.39:9980/api/wms/wmsTask/setStackerTask', 1, '发送堆垛机任务地址');
INSERT INTO `t_app_config` VALUES ('3', 'WcsReleaseBoxUrl', 'http://10.90.83.39:9980/api/wms/convey/disposeVehicle', 1, '发送释放站台箱子地址'); INSERT INTO `t_app_config` VALUES ('3', 'WcsReleaseBoxUrl', 'http://10.90.83.39:9980/api/wms/convey/disposeVehicle', 1, '发送释放站台箱子地址');
INSERT INTO `t_app_config` VALUES ('4', 'WcsCancelPickTaskUrl', 'http://10.90.83.39:9980/api/wms/convey/cancel', 1, '发送取消拣选任务地址'); INSERT INTO `t_app_config` VALUES ('4', 'WcsCancelPickTaskUrl', 'http://10.90.83.39:9980/api/wms/convey/cancel', 1, '发送取消拣选任务地址');
@ -2232,10 +2234,10 @@ CREATE TABLE `t_app_location` (
-- ---------------------------- -- ----------------------------
-- Records of t_app_location -- Records of t_app_location
-- ---------------------------- -- ----------------------------
INSERT INTO `t_app_location` VALUES ('A01-01-01-01', '', 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, '1004', 1, ''); INSERT INTO `t_app_location` VALUES ('A01-01-01-01', '', 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, '', 1, '');
INSERT INTO `t_app_location` VALUES ('A01-01-01-02', '', 1, 0, 1, 0, 1, 1, 1, 1, 1, 2, '1001', 1, ''); INSERT INTO `t_app_location` VALUES ('A01-01-01-02', '', 1, 0, 0, 0, 1, 1, 1, 1, 1, 2, '', 1, '');
INSERT INTO `t_app_location` VALUES ('A01-01-02-01', '', 1, 0, 0, 0, 1, 1, 1, 1, 2, 1, '', 1, ''); INSERT INTO `t_app_location` VALUES ('A01-01-02-01', '', 1, 0, 0, 0, 1, 1, 1, 1, 2, 1, '', 1, '');
INSERT INTO `t_app_location` VALUES ('A01-01-02-02', '', 1, 0, 1, 0, 1, 1, 1, 1, 2, 2, '1004', 1, ''); INSERT INTO `t_app_location` VALUES ('A01-01-02-02', '', 1, 0, 0, 0, 1, 1, 1, 1, 2, 2, '', 1, '');
INSERT INTO `t_app_location` VALUES ('A01-01-03-01', '', 1, 0, 0, 0, 1, 1, 1, 1, 3, 1, '', 1, ''); INSERT INTO `t_app_location` VALUES ('A01-01-03-01', '', 1, 0, 0, 0, 1, 1, 1, 1, 3, 1, '', 1, '');
INSERT INTO `t_app_location` VALUES ('A01-01-03-02', '', 1, 0, 0, 0, 1, 1, 1, 1, 3, 2, '', 1, ''); INSERT INTO `t_app_location` VALUES ('A01-01-03-02', '', 1, 0, 0, 0, 1, 1, 1, 1, 3, 2, '', 1, '');
INSERT INTO `t_app_location` VALUES ('A01-01-04-01', '', 1, 0, 0, 0, 1, 1, 1, 1, 4, 1, '', 1, ''); INSERT INTO `t_app_location` VALUES ('A01-01-04-01', '', 1, 0, 0, 0, 1, 1, 1, 1, 4, 1, '', 1, '');
@ -2283,7 +2285,7 @@ INSERT INTO `t_app_location` VALUES ('A01-01-24-02', '', 1, 0, 0, 0, 1, 1, 1, 1,
INSERT INTO `t_app_location` VALUES ('A01-01-25-01', '', 1, 0, 0, 0, 1, 1, 1, 1, 25, 1, '', 1, ''); INSERT INTO `t_app_location` VALUES ('A01-01-25-01', '', 1, 0, 0, 0, 1, 1, 1, 1, 25, 1, '', 1, '');
INSERT INTO `t_app_location` VALUES ('A01-01-25-02', '', 1, 0, 0, 0, 1, 1, 1, 1, 25, 2, '', 1, ''); INSERT INTO `t_app_location` VALUES ('A01-01-25-02', '', 1, 0, 0, 0, 1, 1, 1, 1, 25, 2, '', 1, '');
INSERT INTO `t_app_location` VALUES ('A01-02-01-01', '', 1, 0, 0, 0, 1, 1, 1, 2, 1, 1, '', 1, ''); INSERT INTO `t_app_location` VALUES ('A01-02-01-01', '', 1, 0, 0, 0, 1, 1, 1, 2, 1, 1, '', 1, '');
INSERT INTO `t_app_location` VALUES ('A01-02-01-02', '', 1, 0, 1, 0, 1, 1, 1, 2, 1, 2, '1005', 1, ''); INSERT INTO `t_app_location` VALUES ('A01-02-01-02', '', 1, 0, 0, 0, 1, 1, 1, 2, 1, 2, '', 1, '');
INSERT INTO `t_app_location` VALUES ('A01-02-02-01', '', 1, 0, 0, 0, 1, 1, 1, 2, 2, 1, '', 1, ''); INSERT INTO `t_app_location` VALUES ('A01-02-02-01', '', 1, 0, 0, 0, 1, 1, 1, 2, 2, 1, '', 1, '');
INSERT INTO `t_app_location` VALUES ('A01-02-02-02', '', 1, 0, 0, 0, 1, 1, 1, 2, 2, 2, '', 1, ''); INSERT INTO `t_app_location` VALUES ('A01-02-02-02', '', 1, 0, 0, 0, 1, 1, 1, 2, 2, 2, '', 1, '');
INSERT INTO `t_app_location` VALUES ('A01-02-03-01', '', 1, 0, 0, 0, 1, 1, 1, 2, 3, 1, '', 1, ''); INSERT INTO `t_app_location` VALUES ('A01-02-03-01', '', 1, 0, 0, 0, 1, 1, 1, 2, 3, 1, '', 1, '');
@ -3232,10 +3234,10 @@ INSERT INTO `t_app_location` VALUES ('A01-20-24-01', '', 1, 0, 0, 0, 1, 1, 1, 20
INSERT INTO `t_app_location` VALUES ('A01-20-24-02', '', 1, 0, 0, 0, 1, 1, 1, 20, 24, 2, '', 1, ''); INSERT INTO `t_app_location` VALUES ('A01-20-24-02', '', 1, 0, 0, 0, 1, 1, 1, 20, 24, 2, '', 1, '');
INSERT INTO `t_app_location` VALUES ('A01-20-25-01', '', 1, 0, 0, 0, 1, 1, 1, 20, 25, 1, '', 1, ''); INSERT INTO `t_app_location` VALUES ('A01-20-25-01', '', 1, 0, 0, 0, 1, 1, 1, 20, 25, 1, '', 1, '');
INSERT INTO `t_app_location` VALUES ('A01-20-25-02', '', 1, 0, 0, 0, 1, 1, 1, 20, 25, 2, '', 1, ''); INSERT INTO `t_app_location` VALUES ('A01-20-25-02', '', 1, 0, 0, 0, 1, 1, 1, 20, 25, 2, '', 1, '');
INSERT INTO `t_app_location` VALUES ('A02-01-01-01', '', 1, 0, 1, 0, 1, 1, 2, 1, 1, 1, '1007', 1, ''); INSERT INTO `t_app_location` VALUES ('A02-01-01-01', '', 1, 0, 0, 1, 1, 1, 2, 1, 1, 1, '', 1, '');
INSERT INTO `t_app_location` VALUES ('A02-01-01-02', '', 1, 0, 0, 0, 1, 1, 2, 1, 1, 2, '', 1, ''); INSERT INTO `t_app_location` VALUES ('A02-01-01-02', '', 1, 0, 0, 1, 1, 1, 2, 1, 1, 2, '', 1, '');
INSERT INTO `t_app_location` VALUES ('A02-01-02-01', '', 1, 0, 0, 0, 1, 1, 2, 1, 2, 1, '', 1, ''); INSERT INTO `t_app_location` VALUES ('A02-01-02-01', '', 1, 0, 0, 0, 1, 1, 2, 1, 2, 1, '', 1, '');
INSERT INTO `t_app_location` VALUES ('A02-01-02-02', '', 1, 0, 1, 0, 1, 1, 2, 1, 2, 2, '1003', 1, ''); INSERT INTO `t_app_location` VALUES ('A02-01-02-02', '', 1, 0, 0, 0, 1, 1, 2, 1, 2, 2, '1007', 1, '');
INSERT INTO `t_app_location` VALUES ('A02-01-03-01', '', 1, 0, 0, 0, 1, 1, 2, 1, 3, 1, '', 1, ''); INSERT INTO `t_app_location` VALUES ('A02-01-03-01', '', 1, 0, 0, 0, 1, 1, 2, 1, 3, 1, '', 1, '');
INSERT INTO `t_app_location` VALUES ('A02-01-03-02', '', 1, 0, 0, 0, 1, 1, 2, 1, 3, 2, '', 1, ''); INSERT INTO `t_app_location` VALUES ('A02-01-03-02', '', 1, 0, 0, 0, 1, 1, 2, 1, 3, 2, '', 1, '');
INSERT INTO `t_app_location` VALUES ('A02-01-04-01', '', 1, 0, 0, 0, 1, 1, 2, 1, 4, 1, '', 1, ''); INSERT INTO `t_app_location` VALUES ('A02-01-04-01', '', 1, 0, 0, 0, 1, 1, 2, 1, 4, 1, '', 1, '');
@ -15694,12 +15696,13 @@ CREATE TABLE `t_app_stock` (
-- ---------------------------- -- ----------------------------
-- Records of t_app_stock -- Records of t_app_stock
-- ---------------------------- -- ----------------------------
INSERT INTO `t_app_stock` VALUES ('1752563208728010000', '1001', 'A01-01-01-02', 0, 'testTaskId1', '2025-07-15 15:06:49', 'wms', NULL, ''); INSERT INTO `t_app_stock` VALUES ('1752563208728010000', '1001', '', 2, 'testTaskId1', '2025-07-15 15:06:49', 'wms', NULL, '');
INSERT INTO `t_app_stock` VALUES ('1752564042871010000', '1002', '', 2, 'testTaskId2', '2025-07-15 15:20:43', 'wms', NULL, ''); INSERT INTO `t_app_stock` VALUES ('1752564042871010000', '1002', '', 2, 'testTaskId2', '2025-07-15 15:20:43', 'wms', NULL, '');
INSERT INTO `t_app_stock` VALUES ('1752564113411010000', '1003', 'A02-01-02-02', 0, 'testTaskId3', '2025-07-15 15:21:53', 'wms', NULL, ''); INSERT INTO `t_app_stock` VALUES ('1752564113411010000', '1003', '', 2, 'testTaskId3', '2025-07-15 15:21:53', 'wms', NULL, '');
INSERT INTO `t_app_stock` VALUES ('1753068264063010000', '1004', 'A01-01-02-02', 0, 'testOrderId4', '2025-07-21 11:24:24', 'wms', NULL, ''); INSERT INTO `t_app_stock` VALUES ('1753068264063010000', '1004', '', 2, 'testOrderId4', '2025-07-21 11:24:24', 'wms', NULL, '');
INSERT INTO `t_app_stock` VALUES ('1753068333061010000', '1005', 'A01-02-01-02', 0, 'testOrderId5', '2025-07-21 11:25:33', 'wms', NULL, ''); INSERT INTO `t_app_stock` VALUES ('1753068333061010000', '1005', '', 2, 'testOrderId5', '2025-07-21 11:25:33', 'wms', NULL, '');
INSERT INTO `t_app_stock` VALUES ('1753078978369010000', '1007', 'A02-01-01-01', 0, 'testOrderId7', '2025-07-21 14:22:58', 'wms', NULL, ''); INSERT INTO `t_app_stock` VALUES ('1753078978369010000', '1007', '', 2, 'testOrderId7', '2025-07-21 14:22:58', 'wms', NULL, '');
INSERT INTO `t_app_stock` VALUES ('1754995231251010000', '1006', '', 2, 'testOrderId2', '2025-08-12 18:40:31', 'wms', NULL, '');
-- ---------------------------- -- ----------------------------
-- Table structure for t_app_stock_update -- Table structure for t_app_stock_update
@ -17804,6 +17807,23 @@ INSERT INTO `t_app_task_bak` VALUES ('1753068368095010000', 2, 4, 1, 'testOrderI
INSERT INTO `t_app_task_bak` VALUES ('1753078496789010000', 1, 4, 1, 'testOrderId2', '1002', 'R1', 'A02-01-01-02', '1753078496789010000', '2025-07-21 14:14:57', '2025-07-21 14:15:44', 'wcs', NULL); INSERT INTO `t_app_task_bak` VALUES ('1753078496789010000', 1, 4, 1, 'testOrderId2', '1002', 'R1', 'A02-01-01-02', '1753078496789010000', '2025-07-21 14:14:57', '2025-07-21 14:15:44', 'wcs', NULL);
INSERT INTO `t_app_task_bak` VALUES ('1753078910378010000', 2, 4, 1, 'testOrderI2', '1002', 'A02-01-01-02', 'C1', '1753078910378010000', '2025-07-21 14:21:50', '2025-07-21 14:22:32', NULL, '深度2出库'); INSERT INTO `t_app_task_bak` VALUES ('1753078910378010000', 2, 4, 1, 'testOrderI2', '1002', 'A02-01-01-02', 'C1', '1753078910378010000', '2025-07-21 14:21:50', '2025-07-21 14:22:32', NULL, '深度2出库');
INSERT INTO `t_app_task_bak` VALUES ('1753078936593010000', 1, 4, 1, 'testOrderId7', '1007', 'R1', 'A02-01-01-01', '1753078936593010000', '2025-07-21 14:22:17', '2025-07-21 14:22:58', 'wcs', NULL); INSERT INTO `t_app_task_bak` VALUES ('1753078936593010000', 1, 4, 1, 'testOrderId7', '1007', 'R1', 'A02-01-01-01', '1753078936593010000', '2025-07-21 14:22:17', '2025-07-21 14:22:58', 'wcs', NULL);
INSERT INTO `t_app_task_bak` VALUES ('1753501954248010000', 1, 4, 1, 'testOrderId2', '1002', 'R1', 'A02-02-01-02', '1753501954248010000', '2025-07-26 11:52:34', '2025-07-26 11:53:22', 'wcs', NULL);
INSERT INTO `t_app_task_bak` VALUES ('1753502199802010000', 9, 4, 2, 'testOrderId3', '1007', 'A02-01-01-01', 'A01-01-01-01', '1753502199802010000', '2025-07-26 11:56:40', '2025-07-26 12:02:12', NULL, '移走深度1阻挡货物');
INSERT INTO `t_app_task_bak` VALUES ('1753502199802010001', 2, 4, 1, 'testOrderId3', '1003', 'A02-01-01-02', 'C1', '1753502199802010001', '2025-07-26 11:56:40', '2025-07-26 12:02:49', NULL, '深度2出库');
INSERT INTO `t_app_task_bak` VALUES ('1754995145109010000', 1, 4, 1, 'testOrderId2', '1003', 'R1', 'A02-01-01-02', '1754995145109010000', '2025-08-12 18:39:05', '2025-08-12 18:39:17', 'wcs', NULL);
INSERT INTO `t_app_task_bak` VALUES ('1754995212290010000', 1, 4, 1, 'testOrderId2', '1006', 'R1', 'A02-01-01-01', '1754995212290010000', '2025-08-12 18:40:12', '2025-08-12 18:40:31', 'wcs', NULL);
INSERT INTO `t_app_task_bak` VALUES ('1754995262283010000', 9, 4, 2, 'testOrderId3', '1007', 'A01-01-01-01', 'A02-01-02-02', '1754995262283010000', '2025-08-12 18:41:02', '2025-08-12 18:42:31', NULL, '移走深度1阻挡货物');
INSERT INTO `t_app_task_bak` VALUES ('1754995262286010000', 2, 4, 1, 'testOrderId3', '1001', 'A01-01-01-02', 'C1', '1754995262286010000', '2025-08-12 18:41:02', '2025-08-12 19:00:08', NULL, '深度2出库');
INSERT INTO `t_app_task_bak` VALUES ('1754996433086010000', 9, 4, 2, 'testOrderId3', '1006', 'A02-01-01-01', 'A01-01-01-02', '1754996433086010000', '2025-08-12 19:00:33', '2025-08-12 19:01:24', NULL, '移走深度1阻挡货物');
INSERT INTO `t_app_task_bak` VALUES ('1754996433091010000', 2, 4, 1, 'testOrderId3', '1003', 'A02-01-01-02', 'C1', '1754996433091010000', '2025-08-12 19:00:33', '2025-08-12 19:02:37', NULL, '深度2出库');
INSERT INTO `t_app_task_bak` VALUES ('1754996601955010000', 2, 4, 1, 'testOrderId3', '1005', 'A01-02-01-02', 'C1', '1754996601955010000', '2025-08-12 19:03:22', '2025-08-12 19:05:20', NULL, '深度2出库');
INSERT INTO `t_app_task_bak` VALUES ('1754996825111010000', 9, 4, 2, 'testOrderId3', '1004', 'A01-01-01-01', 'A02-01-01-02', '1754996825111010000', '2025-08-12 19:07:05', '2025-08-12 19:08:16', NULL, '移走深度1阻挡货物');
INSERT INTO `t_app_task_bak` VALUES ('1754996825117010000', 2, 4, 1, 'testOrderId3', '1006', 'A01-01-01-02', 'C1', '1754996825117010000', '2025-08-12 19:07:05', '2025-08-12 19:09:07', NULL, '深度2出库');
INSERT INTO `t_app_task_bak` VALUES ('1754997163437010000', 9, 4, 2, 'testOrderId3', '1002', 'A02-01-01-01', 'A01-01-01-02', '1754997163437010000', '2025-08-12 19:12:43', '2025-08-12 19:13:09', NULL, '移走深度1阻挡货物');
INSERT INTO `t_app_task_bak` VALUES ('1754997163441010000', 2, 4, 1, 'testOrderId3', '1004', 'A02-01-01-02', 'C1', '1754997163441010000', '2025-08-12 19:12:43', '2025-08-12 19:13:40', NULL, '深度2出库');
INSERT INTO `t_app_task_bak` VALUES ('1754997669944010000', 9, 4, 2, 'testOrderId3', '1007', 'A01-01-01-01', 'A02-01-01-02', '1754997669944010000', '2025-08-12 19:21:10', '2025-08-12 19:21:53', NULL, '移走深度1阻挡货物');
INSERT INTO `t_app_task_bak` VALUES ('1754997669949010000', 2, 4, 1, 'testOrderId3', '1002', 'A01-01-01-02', 'C1', '1754997669949010000', '2025-08-12 19:21:10', '2025-08-12 19:23:12', NULL, '深度2出库');
INSERT INTO `t_app_task_bak` VALUES ('1754997816795010000', 2, 4, 1, 'testOrderId3', '1007', 'A02-01-01-02', 'C1', '1754997816795010000', '2025-08-12 19:23:37', '2025-08-12 19:23:57', NULL, '深度2出库');
INSERT INTO `t_app_task_bak` VALUES ('BACK_1742627181353010000', 1, 4, 1, NULL, 'ASRS-0348', 'P3', 'A02-35-08', '1742627207227010000', '2025-03-22 15:06:21', '2025-03-22 15:07:39', 'wms_auto', ''); INSERT INTO `t_app_task_bak` VALUES ('BACK_1742627181353010000', 1, 4, 1, NULL, 'ASRS-0348', 'P3', 'A02-35-08', '1742627207227010000', '2025-03-22 15:06:21', '2025-03-22 15:07:39', 'wms_auto', '');
INSERT INTO `t_app_task_bak` VALUES ('BACK_1742627210434010000', 1, 4, 1, NULL, 'ASRS-0347', 'P3', 'A04-32-07', '1742627236328010000', '2025-03-22 15:06:50', '2025-03-22 15:08:04', 'wms_auto', ''); INSERT INTO `t_app_task_bak` VALUES ('BACK_1742627210434010000', 1, 4, 1, NULL, 'ASRS-0347', 'P3', 'A04-32-07', '1742627236328010000', '2025-03-22 15:06:50', '2025-03-22 15:08:04', 'wms_auto', '');
INSERT INTO `t_app_task_bak` VALUES ('BACK_1742775892056010000', 1, 4, 1, NULL, 'ASRS-0315', 'P3', 'A01-34-06', '1742775918384010000', '2025-03-24 08:24:52', '2025-03-24 08:26:22', 'wms_auto', ''); INSERT INTO `t_app_task_bak` VALUES ('BACK_1742775892056010000', 1, 4, 1, NULL, 'ASRS-0315', 'P3', 'A01-34-06', '1742775918384010000', '2025-03-24 08:24:52', '2025-03-24 08:26:22', 'wms_auto', '');
@ -18622,12 +18642,13 @@ CREATE TABLE `t_app_vehicle` (
-- ---------------------------- -- ----------------------------
-- Records of t_app_vehicle -- Records of t_app_vehicle
-- ---------------------------- -- ----------------------------
INSERT INTO `t_app_vehicle` VALUES ('1001', 2, NULL, 0, 'A01-01-01-02', '2025-07-21 11:17:03'); INSERT INTO `t_app_vehicle` VALUES ('1001', 3, NULL, 0, '', '2025-07-21 11:17:03');
INSERT INTO `t_app_vehicle` VALUES ('1002', 3, NULL, 0, '', '2025-07-21 14:15:45'); INSERT INTO `t_app_vehicle` VALUES ('1002', 3, NULL, 0, '', '2025-07-26 11:53:23');
INSERT INTO `t_app_vehicle` VALUES ('1003', 2, NULL, 0, 'A02-01-02-02', '2025-07-21 11:07:28'); INSERT INTO `t_app_vehicle` VALUES ('1003', 3, NULL, 0, '', '2025-08-12 18:39:17');
INSERT INTO `t_app_vehicle` VALUES ('1004', 2, NULL, 0, 'A01-01-02-02', '2025-07-21 11:24:24'); INSERT INTO `t_app_vehicle` VALUES ('1004', 3, NULL, 0, '', '2025-07-21 11:24:24');
INSERT INTO `t_app_vehicle` VALUES ('1005', 2, NULL, 0, 'A01-02-01-02', '2025-07-21 11:25:33'); INSERT INTO `t_app_vehicle` VALUES ('1005', 3, NULL, 0, '', '2025-07-21 11:25:33');
INSERT INTO `t_app_vehicle` VALUES ('1007', 2, NULL, 0, 'A02-01-01-01', '2025-07-21 14:22:58'); INSERT INTO `t_app_vehicle` VALUES ('1006', 3, NULL, 0, '', '2025-08-12 18:40:31');
INSERT INTO `t_app_vehicle` VALUES ('1007', 3, NULL, 0, '', '2025-07-21 14:22:58');
-- ---------------------------- -- ----------------------------
-- Table structure for t_app_wcs_task -- Table structure for t_app_wcs_task
@ -20656,6 +20677,23 @@ INSERT INTO `t_app_wcs_task_bak` VALUES ('1753068368095010000', 1, 2, 1, '1002',
INSERT INTO `t_app_wcs_task_bak` VALUES ('1753078496789010000', 1, 1, 1, '1002', 'R1', 'A02-01-01-02', '2025-07-21 14:14:57', '2025-07-21 14:15:03', NULL, NULL); INSERT INTO `t_app_wcs_task_bak` VALUES ('1753078496789010000', 1, 1, 1, '1002', 'R1', 'A02-01-01-02', '2025-07-21 14:14:57', '2025-07-21 14:15:03', NULL, NULL);
INSERT INTO `t_app_wcs_task_bak` VALUES ('1753078910378010000', 1, 2, 1, '1002', 'A02-01-01-02', 'C1', '2025-07-21 14:21:51', '2025-07-21 14:21:58', NULL, NULL); INSERT INTO `t_app_wcs_task_bak` VALUES ('1753078910378010000', 1, 2, 1, '1002', 'A02-01-01-02', 'C1', '2025-07-21 14:21:51', '2025-07-21 14:21:58', NULL, NULL);
INSERT INTO `t_app_wcs_task_bak` VALUES ('1753078936593010000', 1, 1, 1, '1007', 'R1', 'A02-01-01-01', '2025-07-21 14:22:17', '2025-07-21 14:22:39', NULL, NULL); INSERT INTO `t_app_wcs_task_bak` VALUES ('1753078936593010000', 1, 1, 1, '1007', 'R1', 'A02-01-01-01', '2025-07-21 14:22:17', '2025-07-21 14:22:39', NULL, NULL);
INSERT INTO `t_app_wcs_task_bak` VALUES ('1753501954248010000', 1, 1, 1, '1002', 'R1', 'A02-02-01-02', '2025-07-26 11:52:35', '2025-07-26 11:52:41', NULL, NULL);
INSERT INTO `t_app_wcs_task_bak` VALUES ('1753502199802010000', 1, 9, 2, '1007', 'A02-01-01-01', 'A01-01-01-01', '2025-07-26 11:56:41', '2025-07-26 11:56:47', NULL, NULL);
INSERT INTO `t_app_wcs_task_bak` VALUES ('1753502199802010001', 1, 2, 1, '1003', 'A02-01-01-02', 'C1', '2025-07-26 11:56:41', '2025-07-26 12:02:19', NULL, NULL);
INSERT INTO `t_app_wcs_task_bak` VALUES ('1754995145109010000', 1, 1, 1, '1003', 'R1', 'A02-01-01-02', '2025-08-12 18:39:05', '2025-08-12 18:39:11', NULL, NULL);
INSERT INTO `t_app_wcs_task_bak` VALUES ('1754995212290010000', 1, 1, 1, '1006', 'R1', 'A02-01-01-01', '2025-08-12 18:40:13', '2025-08-12 18:40:19', NULL, NULL);
INSERT INTO `t_app_wcs_task_bak` VALUES ('1754995262283010000', 1, 9, 2, '1007', 'A01-01-01-01', 'A02-01-02-02', '2025-08-12 18:41:03', '2025-08-12 18:41:09', NULL, NULL);
INSERT INTO `t_app_wcs_task_bak` VALUES ('1754995262286010000', 1, 2, 1, '1001', 'A01-01-01-02', 'C1', '2025-08-12 18:41:03', '2025-08-12 18:42:38', NULL, NULL);
INSERT INTO `t_app_wcs_task_bak` VALUES ('1754996433086010000', 1, 9, 2, '1006', 'A02-01-01-01', 'A01-01-01-02', '2025-08-12 19:00:34', '2025-08-12 19:00:40', NULL, NULL);
INSERT INTO `t_app_wcs_task_bak` VALUES ('1754996433091010000', 1, 2, 1, '1003', 'A02-01-01-02', 'C1', '2025-08-12 19:00:34', '2025-08-12 19:01:29', NULL, NULL);
INSERT INTO `t_app_wcs_task_bak` VALUES ('1754996601955010000', 1, 2, 1, '1005', 'A01-02-01-02', 'C1', '2025-08-12 19:03:23', '2025-08-12 19:03:29', NULL, NULL);
INSERT INTO `t_app_wcs_task_bak` VALUES ('1754996825111010000', 1, 9, 2, '1004', 'A01-01-01-01', 'A02-01-01-02', '2025-08-12 19:07:06', '2025-08-12 19:07:12', NULL, NULL);
INSERT INTO `t_app_wcs_task_bak` VALUES ('1754996825117010000', 1, 2, 1, '1006', 'A01-01-01-02', 'C1', '2025-08-12 19:07:06', '2025-08-12 19:08:21', NULL, NULL);
INSERT INTO `t_app_wcs_task_bak` VALUES ('1754997163437010000', 1, 9, 2, '1002', 'A02-01-01-01', 'A01-01-01-02', '2025-08-12 19:12:44', '2025-08-12 19:12:45', NULL, NULL);
INSERT INTO `t_app_wcs_task_bak` VALUES ('1754997163441010000', 1, 2, 1, '1004', 'A02-01-01-02', 'C1', '2025-08-12 19:12:44', '2025-08-12 19:13:10', NULL, NULL);
INSERT INTO `t_app_wcs_task_bak` VALUES ('1754997669944010000', 1, 9, 2, '1007', 'A01-01-01-01', 'A02-01-01-02', '2025-08-12 19:21:11', '2025-08-12 19:21:12', NULL, NULL);
INSERT INTO `t_app_wcs_task_bak` VALUES ('1754997669949010000', 1, 2, 1, '1002', 'A01-01-01-02', 'C1', '2025-08-12 19:21:11', '2025-08-12 19:21:54', NULL, NULL);
INSERT INTO `t_app_wcs_task_bak` VALUES ('1754997816795010000', 1, 2, 1, '1007', 'A02-01-01-02', 'C1', '2025-08-12 19:23:38', '2025-08-12 19:23:39', NULL, NULL);
-- ---------------------------- -- ----------------------------
-- Table structure for t_app_work -- Table structure for t_app_work

View File

@ -8,7 +8,7 @@ Content-Type: application/json
{ {
"taskId": "testOrderId2", "taskId": "testOrderId2",
"vehicleNo": "1002" "vehicleNo": "1006"
} }
### 2. 出库订单接口 ### 2. 出库订单接口
@ -17,7 +17,7 @@ Content-Type: application/json
{ {
"taskId": "testOrderId3", "taskId": "testOrderId3",
"vehicleNo": "1003" "vehicleNo": "1007"
} }
### 3. 库存查询接口 - 仅按载具查询 ### 3. 库存查询接口 - 仅按载具查询
@ -28,7 +28,7 @@ Content-Type: application/json
"requestId": "testOrderId1", "requestId": "testOrderId1",
"details": [ "details": [
{ {
"vehicleNo": "1001" "vehicleNo": "1005"
} }
] ]
} }

View File

@ -8,7 +8,7 @@ Content-Type: application/json
{ {
"origin": "R1", "origin": "R1",
"vehicleNo": "1002", "vehicleNo": "1006",
"codeMessage": "test", "codeMessage": "test",
"remark": "载具入库测试" "remark": "载具入库测试"
} }
@ -18,9 +18,9 @@ POST {{baseUrl}}/wms/task/sendTaskResult
Content-Type: application/json Content-Type: application/json
{ {
"taskId": "1753502199802010001", "taskId": "1754997816795010000",
"taskStatus": 100, "taskStatus": 100,
"vehicleNo": "1003", "vehicleNo": "1007",
"destination": "C1", "destination": "C1",
"message": "任务执行成功" "message": "任务执行成功"
} }

View File

@ -1,15 +1,19 @@
package com.wms_main.app; package com.wms_main.app;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.wms_main.dao.ITAppConfigService; import com.wms_main.dao.ITAppConfigService;
import com.wms_main.dao.ITAppGoodsService; import com.wms_main.dao.ITAppGoodsService;
import com.wms_main.dao.ITAppLocationService; import com.wms_main.dao.ITAppLocationService;
import com.wms_main.model.po.TAppConfig; import com.wms_main.model.po.TAppConfig;
import com.wms_main.model.po.TAppGoods; import com.wms_main.model.po.TAppGoods;
import com.wms_main.model.po.TAppLocation; import com.wms_main.model.po.TAppLocation;
import com.wms_main.repository.utils.StringUtils;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -21,6 +25,8 @@ import java.util.Map;
@RequiredArgsConstructor @RequiredArgsConstructor
@Slf4j @Slf4j
public class AppCommon { public class AppCommon {
private final static Integer MIN_DEPTH = 1;
private final static Integer MAX_DEPTH = 3;
/** /**
* 配置服务 * 配置服务
*/ */
@ -112,6 +118,37 @@ public class AppCommon {
} }
} }
/**
* 根据库位id获取排列层所有深度的库位信息列表
* @param locationId 库位id
* @return 库位详情列表
*/
public List<TAppLocation> getLocationListByLocationId(String locationId) {
List<TAppLocation> resList = new ArrayList<>();
List<String> strList = List.of(locationId.split("-")).subList(0, 3);
for (int depth = MIN_DEPTH; depth <= MAX_DEPTH; ++depth) {
String queryLocationId = String.join("-", strList) + String.format("-%02d", depth);
TAppLocation tempLocation = getInstantLocationByLocationId(queryLocationId);
if (tempLocation != null) {
resList.add(tempLocation);
}
}
return resList;
}
public Boolean updateWorkingLocations(String locationId, Integer val) {
if (!StringUtils.isEmpty(locationId)) {
List<TAppLocation> updateLocations = getLocationListByLocationId(locationId);
if (updateLocations.size() > 0) {
return appLocationService.update(new LambdaUpdateWrapper<TAppLocation>()
.in(TAppLocation::getLocationId, updateLocations.stream().map(TAppLocation::getLocationId).toList())
.set(TAppLocation::getIsWorking, val));
}
return false;
}
return false;
}
/** /**
* 根据料号获取物料信息 * 根据料号获取物料信息
* @param goodsId 料号 * @param goodsId 料号

View File

@ -1,6 +1,5 @@
package com.wms_main.constant.enums.wms; package com.wms_main.constant.enums.wms;
import lombok.AllArgsConstructor;
import lombok.Getter; import lombok.Getter;
@Getter @Getter

View File

@ -3,7 +3,6 @@ package com.wms_main.controller.wms;
import com.wms_main.model.dto.query.LocationQuery; import com.wms_main.model.dto.query.LocationQuery;
import com.wms_main.model.dto.response.wms.BaseWmsApiResponse; import com.wms_main.model.dto.response.wms.BaseWmsApiResponse;
import com.wms_main.model.dto.response.wms.WmsApiResponse; import com.wms_main.model.dto.response.wms.WmsApiResponse;
import com.wms_main.model.po.TAppLocation;
import com.wms_main.service.controller.ILocationControllerService; import com.wms_main.service.controller.ILocationControllerService;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;

View File

@ -1,12 +1,6 @@
package com.wms_main.controller.wms; package com.wms_main.controller.wms;
import com.wms_main.app.AppCommon;
import com.wms_main.dao.ITSysMenuService;
import com.wms_main.dao.ITSysPermissionService;
import com.wms_main.dao.ITSysRoleService;
import com.wms_main.dao.ITSysUserService;
import com.wms_main.excel.easypoi.service.IImportExcelEasyPoi; import com.wms_main.excel.easypoi.service.IImportExcelEasyPoi;
import com.wms_main.model.dto.request.wms.BaseWmsRequest;
import com.wms_main.model.dto.query.DbsQuery; import com.wms_main.model.dto.query.DbsQuery;
import com.wms_main.model.dto.request.wms.InitKateWorkRequest; import com.wms_main.model.dto.request.wms.InitKateWorkRequest;
import com.wms_main.model.vo.others.FileVo; import com.wms_main.model.vo.others.FileVo;
@ -17,7 +11,6 @@ import com.wms_main.repository.utils.UUIDUtils;
import com.wms_main.service.controller.ITestControllerService; import com.wms_main.service.controller.ITestControllerService;
import jakarta.servlet.http.HttpServletResponse; import jakarta.servlet.http.HttpServletResponse;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.quartz.Scheduler;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
@ -33,16 +26,9 @@ import java.util.List;
@RequestMapping("/test") @RequestMapping("/test")
public class TestController { public class TestController {
private final AppCommon appCommon;
private final Scheduler scheduler;
private final IImportExcelEasyPoi importExcelEasyPoi; private final IImportExcelEasyPoi importExcelEasyPoi;
private final ITestControllerService testService; private final ITestControllerService testService;
private final ITSysUserService userService;// User服务
private final ITSysRoleService roleService;// Role服务
private final ITSysPermissionService permissionService;// Permission服务
private final ITSysMenuService menuService;// Menu服务
@GetMapping(value = "/test") @GetMapping(value = "/test")
public String testApi() { public String testApi() {
return UUIDUtils.getNewUUID(); return UUIDUtils.getNewUUID();

View File

@ -1,7 +1,6 @@
package com.wms_main.dao; package com.wms_main.dao;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.wms_main.model.po.TAppDbs;
import com.wms_main.model.po.TAppImage; import com.wms_main.model.po.TAppImage;
import java.util.List; import java.util.List;

View File

@ -1,7 +1,6 @@
package com.wms_main.dao; package com.wms_main.dao;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.wms_main.model.po.TAppDbs;
import com.wms_main.model.po.TAppProductExtend; import com.wms_main.model.po.TAppProductExtend;
import java.util.List; import java.util.List;

View File

@ -1,7 +1,6 @@
package com.wms_main.dao; package com.wms_main.dao;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.wms_main.model.po.TAppDbs;
import com.wms_main.model.po.TAppProduct; import com.wms_main.model.po.TAppProduct;
import java.util.List; import java.util.List;

View File

@ -1,7 +1,6 @@
package com.wms_main.dao; package com.wms_main.dao;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.wms_main.model.po.TAppStand;
import com.wms_main.model.po.TAppStandWork; import com.wms_main.model.po.TAppStandWork;
/** /**

View File

@ -3,8 +3,6 @@ package com.wms_main.dao;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.wms_main.model.po.TAppWcsTask; import com.wms_main.model.po.TAppWcsTask;
import java.util.List;
/** /**
* wcs任务表服务 * wcs任务表服务
*/ */

View File

@ -1,7 +1,6 @@
package com.wms_main.dao; package com.wms_main.dao;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.wms_main.model.po.TAppWork;
import com.wms_main.model.po.TAppWorkRecord; import com.wms_main.model.po.TAppWorkRecord;
/** /**

View File

@ -1,11 +1,8 @@
package com.wms_main.dao.impl; package com.wms_main.dao.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.wms_main.dao.ITAppDbsService;
import com.wms_main.dao.ITAppImageService; import com.wms_main.dao.ITAppImageService;
import com.wms_main.mapper.AppDbsMapper;
import com.wms_main.mapper.AppImageMapper; import com.wms_main.mapper.AppImageMapper;
import com.wms_main.model.po.TAppDbs;
import com.wms_main.model.po.TAppImage; import com.wms_main.model.po.TAppImage;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;

View File

@ -8,7 +8,6 @@ import com.wms_main.mapper.AppLocationMapper;
import com.wms_main.model.po.TAppLocation; import com.wms_main.model.po.TAppLocation;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.EmptyStackException;
import java.util.List; import java.util.List;
/** /**

View File

@ -1,11 +1,8 @@
package com.wms_main.dao.impl; package com.wms_main.dao.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.wms_main.dao.ITAppDbsService;
import com.wms_main.dao.ITAppProductExtendService; import com.wms_main.dao.ITAppProductExtendService;
import com.wms_main.mapper.AppDbsMapper;
import com.wms_main.mapper.AppProductExtendsMapper; import com.wms_main.mapper.AppProductExtendsMapper;
import com.wms_main.model.po.TAppDbs;
import com.wms_main.model.po.TAppProductExtend; import com.wms_main.model.po.TAppProductExtend;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;

View File

@ -1,13 +1,9 @@
package com.wms_main.dao.impl; package com.wms_main.dao.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.wms_main.dao.ITAppDbsService;
import com.wms_main.dao.ITAppProductService; import com.wms_main.dao.ITAppProductService;
import com.wms_main.mapper.AppDbsMapper;
import com.wms_main.mapper.AppProductMapper; import com.wms_main.mapper.AppProductMapper;
import com.wms_main.model.po.TAppDbs;
import com.wms_main.model.po.TAppProduct; import com.wms_main.model.po.TAppProduct;
import com.wms_main.model.po.TAppSingleProduct;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.List; import java.util.List;

View File

@ -38,7 +38,6 @@ public class TAppWcsTaskServiceImpl extends ServiceImpl<AppWcsTaskMapper, TAppWc
@Override @Override
public Integer getEquipmentByLocation(String locationId) { public Integer getEquipmentByLocation(String locationId) {
String[] str_lst = locationId.split("-"); String[] str_lst = locationId.split("-");
int depth = Integer.parseInt(str_lst[str_lst.length - 1]);
int row = Integer.parseInt(str_lst[0].replace("A", "")); int row = Integer.parseInt(str_lst[0].replace("A", ""));
return (int) Math.floor((double) (row + 1) / 2); return (int) Math.floor((double) (row + 1) / 2);
} }

View File

@ -465,7 +465,6 @@ public class ImportExcelEasyPoi implements IImportExcelEasyPoi {
* @param fileVo 文件Vo * @param fileVo 文件Vo
*/ */
private void saveFileVo(FileVo fileVo) { private void saveFileVo(FileVo fileVo) {
// TODO 待建表
} }
/** /**

View File

@ -44,7 +44,6 @@ public class RequestLogFilter extends HttpFilter {
String responseContentString = formatContentString(new String(responseContent)); String responseContentString = formatContentString(new String(responseContent));
RequestLog logInfo = new RequestLog(method, uri, remoteHost, remoteAddr, requestContentString, String.valueOf(status), responseContentString); RequestLog logInfo = new RequestLog(method, uri, remoteHost, remoteAddr, requestContentString, String.valueOf(status), responseContentString);
log.info(logInfo.toString()); log.info(logInfo.toString());
// TODO 增加存储数据库的操作
// 把缓存的响应数据响应给客户端 // 把缓存的响应数据响应给客户端
responseWrapper.copyBodyToResponse(); responseWrapper.copyBodyToResponse();

View File

@ -1,7 +1,6 @@
package com.wms_main.mapper; package com.wms_main.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.wms_main.model.po.TAppDbs;
import com.wms_main.model.po.TAppImage; import com.wms_main.model.po.TAppImage;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;

View File

@ -1,7 +1,6 @@
package com.wms_main.mapper; package com.wms_main.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.wms_main.model.po.TAppDbs;
import com.wms_main.model.po.TAppProductExtend; import com.wms_main.model.po.TAppProductExtend;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;

View File

@ -1,7 +1,6 @@
package com.wms_main.mapper; package com.wms_main.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.wms_main.model.po.TAppDbs;
import com.wms_main.model.po.TAppSingleProduct; import com.wms_main.model.po.TAppSingleProduct;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;

View File

@ -1,7 +1,6 @@
package com.wms_main.mapper; package com.wms_main.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.wms_main.model.po.TAppStand;
import com.wms_main.model.po.TAppStandWork; import com.wms_main.model.po.TAppStandWork;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;

View File

@ -1,7 +1,6 @@
package com.wms_main.mapper; package com.wms_main.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.wms_main.model.po.TAppWork;
import com.wms_main.model.po.TAppWorkRecord; import com.wms_main.model.po.TAppWorkRecord;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;

View File

@ -3,7 +3,6 @@ package com.wms_main.model.dto.query;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
/** /**

View File

@ -1,15 +1,11 @@
package com.wms_main.model.dto.request.mywms; package com.wms_main.model.dto.request.mywms;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import com.wms_main.repository.utils.StringUtils; import com.wms_main.repository.utils.StringUtils;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.List; import java.util.List;
import java.util.Objects;
@Getter @Getter
@Setter @Setter
public class StockReq { public class StockReq {

View File

@ -4,7 +4,6 @@ import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import java.time.LocalDateTime;
@Getter @Getter
@Setter @Setter

View File

@ -1,7 +1,6 @@
package com.wms_main.model.dto.request.wcs; package com.wms_main.model.dto.request.wcs;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import com.wms_main.model.bo.wcs.WcsStackerTask;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;

View File

@ -1,13 +1,10 @@
package com.wms_main.model.dto.request.wms; package com.wms_main.model.dto.request.wms;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDate; import java.time.LocalDate;
/** /**

View File

@ -2,8 +2,6 @@ package com.wms_main.model.dto.response.wcs;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import com.wms_main.constant.enums.wcs.WcsApiResponseCodeEnums; import com.wms_main.constant.enums.wcs.WcsApiResponseCodeEnums;
import com.wms_main.constant.enums.wms.WmsApiResponseCodeEnums;
import com.wms_main.model.dto.response.wms.WmsApiResponse;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;

View File

@ -8,8 +8,6 @@ import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import java.time.LocalDateTime;
/** /**
* DBS表映射 * DBS表映射
*/ */

View File

@ -44,7 +44,6 @@ public class TAppImage extends BaseImportEntity {
private String imageName; private String imageName;
/** /**
* 图纸详情 * 图纸详情
* TODO 是否存在数据流
*/ */
@TableField(value = "image_detail") @TableField(value = "image_detail")
private String imageDetail; private String imageDetail;

View File

@ -6,9 +6,6 @@ import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime; import java.time.LocalDateTime;
/** /**

View File

@ -6,8 +6,6 @@ import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import java.math.BigDecimal;
import java.time.LocalDateTime; import java.time.LocalDateTime;
/** /**

View File

@ -6,8 +6,6 @@ import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import java.math.BigDecimal;
import java.time.LocalDateTime; import java.time.LocalDateTime;
/** /**

View File

@ -1,7 +1,6 @@
package com.wms_main.model.vo.wms; package com.wms_main.model.vo.wms;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import com.wms_main.model.po.TAppImage;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;

View File

@ -9,7 +9,6 @@ import java.time.LocalDate;
/** /**
* 工作界面显示 * 工作界面显示
* // TODO 数据待补充
*/ */
@Data @Data
@AllArgsConstructor @AllArgsConstructor

View File

@ -8,7 +8,6 @@ import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat; import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDate;
import java.time.LocalDateTime; import java.time.LocalDateTime;
/** /**

View File

@ -14,8 +14,6 @@ import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
public class TcpClient { public class TcpClient {

View File

@ -8,11 +8,6 @@ import org.springframework.util.DigestUtils;
* 字符串工具类 * 字符串工具类
*/ */
public class StringUtils { public class StringUtils {
private static final String CHARS_AZ = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
private static final String CHARS_az = "abcdefghijklmnopqrstuvwxyz";
private static final String CHARS_09 = "0123456789";
/** 下划线 */ /** 下划线 */
private static final char SEPARATOR = '_'; private static final char SEPARATOR = '_';

View File

@ -11,13 +11,10 @@ import com.wms_main.model.dto.request.wcs.WcsStackerTaskRequest;
import com.wms_main.model.dto.response.wcs.BaseWcsApiResponse; import com.wms_main.model.dto.response.wcs.BaseWcsApiResponse;
import com.wms_main.model.dto.response.wcs.WcsApiResponse; import com.wms_main.model.dto.response.wcs.WcsApiResponse;
import com.wms_main.model.dto.response.wcs.WcsCanFeedResponse; import com.wms_main.model.dto.response.wcs.WcsCanFeedResponse;
import com.wms_main.model.po.TAppAgvLock;
import com.wms_main.repository.http.HttpClient; import com.wms_main.repository.http.HttpClient;
import com.wms_main.repository.http.entity.HttpRequest; import com.wms_main.repository.http.entity.HttpRequest;
import com.wms_main.repository.http.entity.HttpResponse; import com.wms_main.repository.http.entity.HttpResponse;
import com.wms_main.service.api.IWcsApiService; import com.wms_main.service.api.IWcsApiService;
import com.wms_main.service.business.IAgvLockService;
import com.wms_main.service.business.IStackerTaskService;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -33,8 +30,6 @@ import java.time.LocalDateTime;
public class WcsApiServiceImpl implements IWcsApiService { public class WcsApiServiceImpl implements IWcsApiService {
private final HttpClient httpClient;// http客户端 private final HttpClient httpClient;// http客户端
private final AppCommon appCommon;// 应用共通 private final AppCommon appCommon;// 应用共通
private final IAgvLockService agvLockService;// AGV互锁服务
private final IStackerTaskService stackerTaskService;// 库位分配服务
/** /**
* 发送堆垛机任务 * 发送堆垛机任务
@ -45,12 +40,12 @@ public class WcsApiServiceImpl implements IWcsApiService {
public WcsApiResponse<WcsStackerTask> sendWcsStackerTask(WcsStackerTaskRequest request) { public WcsApiResponse<WcsStackerTask> sendWcsStackerTask(WcsStackerTaskRequest request) {
// 设置http请求 // 设置http请求
HttpRequest httpRequest = HttpRequest.postInstanceOf(appCommon.getConfigByKey(AppConfigKeyEnums.WCS_STACKER_TASK_URL.getKey()), request); HttpRequest httpRequest = HttpRequest.postInstanceOf(appCommon.getConfigByKey(AppConfigKeyEnums.WCS_STACKER_TASK_URL.getKey()), request);
HttpResponse httpResponse = httpClient.httpPost(httpRequest); // HttpResponse httpResponse = httpClient.httpPost(httpRequest);
if (httpResponse != null && httpResponse.isSuccess()) { // if (httpResponse != null && httpResponse.isSuccess()) {
WcsApiResponse<WcsStackerTask> response = new WcsApiResponse<>(); // WcsApiResponse<WcsStackerTask> response = new WcsApiResponse<>();
response = httpResponse.getData(response.getClass().asSubclass(WcsApiResponse.class)); // response = httpResponse.getData(response.getClass().asSubclass(WcsApiResponse.class));
return response; // return response;
} // }
// TODO success -> error // TODO success -> error
return WcsApiResponse.success("请求未获得响应信息。", null); return WcsApiResponse.success("请求未获得响应信息。", null);
} }

Some files were not shown because too many files have changed in this diff Show More