Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in
Toggle navigation
Z
zhmes-agecal
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
耿迪迪
zhmes-agecal
Commits
bbd30541
Commit
bbd30541
authored
Sep 17, 2025
by
wanghao
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1 扫托盘 上料 测试
parent
55ab50e2
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
21 additions
and
5 deletions
+21
-5
TStoreyInfoMapper.xml
...em/src/main/resources/mapper/system/TStoreyInfoMapper.xml
+21
-5
No files found.
zhmes-agecal-system/src/main/resources/mapper/system/TStoreyInfoMapper.xml
View file @
bbd30541
...
@@ -81,26 +81,42 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
...
@@ -81,26 +81,42 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<select
id=
"selectNearestFreeStorey"
resultMap=
"TStoreyInfoResult"
>
<select
id=
"selectNearestFreeStorey"
resultMap=
"TStoreyInfoResult"
>
SELECT
SELECT
f_storey_id, f_equipment_id, f_storey_code, f_ip, f_status, f_port,
f_storey_id,
f_aging_start_time, f_update_time, f_create_time, f_alarm_time, f_blanking_command, f_feeding_command
f_equipment_id,
f_storey_code,
f_ip,
f_status,
f_port,
f_aging_start_time,
f_update_time,
f_create_time,
f_alarm_time,
f_blanking_command,
f_feeding_command
FROM (
FROM (
SELECT
SELECT
*,
*,
-- 计算距离:北边(1-15)距离范围1-150,南边(16-30)距离范围151-300(确保北边优先)
CASE
CASE
-- 北边柜子:(柜子编号-1)*10 + 层号(1-1→1,1-10→10,15-10→150)
WHEN cabinet_num BETWEEN 1 AND 15 THEN (cabinet_num - 1) * 10 + layer_num
WHEN cabinet_num BETWEEN 1 AND 15 THEN (cabinet_num - 1) * 10 + layer_num
WHEN cabinet_num BETWEEN 16 AND 36 THEN (cabinet_num - 16) * 10 + layer_num
-- 南边柜子:在北边最大距离(150)基础上累加,确保所有南边距离>北边(16-1→151,30-10→300)
WHEN cabinet_num BETWEEN 16 AND 30 THEN 150 + (cabinet_num - 16) * 10 + layer_num
END AS distance
END AS distance
FROM (
FROM (
SELECT
SELECT
*,
*,
-- 拆分柜子编号(如1-1中的“1”)
CAST(SUBSTRING_INDEX(f_storey_code, '-', 1) AS UNSIGNED) AS cabinet_num,
CAST(SUBSTRING_INDEX(f_storey_code, '-', 1) AS UNSIGNED) AS cabinet_num,
-- 拆分层号(如1-1中的“1”)
CAST(SUBSTRING_INDEX(f_storey_code, '-', -1) AS UNSIGNED) AS layer_num
CAST(SUBSTRING_INDEX(f_storey_code, '-', -1) AS UNSIGNED) AS layer_num
FROM t_storey_info
FROM t_storey_info
WHERE f_status = '0' -- 空闲状态
WHERE f_status = '0' --
只筛选
空闲状态
) AS parsed
) AS parsed
) AS calculated
) AS calculated
-- 按距离升序排序(北边先于南边,同区域内近的在前)
ORDER BY distance ASC
ORDER BY distance ASC
LIMIT 1
LIMIT 1
;
</select>
</select>
<insert
id=
"insertBatch"
parameterType=
"list"
>
<insert
id=
"insertBatch"
parameterType=
"list"
>
insert into t_storey_info ( f_equipment_id, f_storey_code, f_ip, f_status, f_port, f_create_time) values
insert into t_storey_info ( f_equipment_id, f_storey_code, f_ip, f_status, f_port, f_create_time) values
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment