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
55246658
Commit
55246658
authored
Aug 15, 2025
by
wanghao
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1 扫码绑定托盘,上料,机械臂整体测试
parent
e9aecf8a
Show whitespace changes
Inline
Side-by-side
Showing
16 changed files
with
113 additions
and
19 deletions
+113
-19
TestTaskController.java
...m/zehong/web/controller/equipment/TestTaskController.java
+3
-3
pom.xml
zhmes-agecal-system/pom.xml
+6
-0
TEquipmentInfoMapper.java
...n/java/com/zehong/system/mapper/TEquipmentInfoMapper.java
+2
-0
TStoreyInfoMapper.java
...main/java/com/zehong/system/mapper/TStoreyInfoMapper.java
+2
-0
TTrayInfoMapper.java
...c/main/java/com/zehong/system/mapper/TTrayInfoMapper.java
+1
-0
RobotArmCommandServiceImpl.java
...ehong/system/service/impl/RobotArmCommandServiceImpl.java
+50
-4
AgingCabinetInspectionAndPowerCheckTask.java
.../system/task/AgingCabinetInspectionAndPowerCheckTask.java
+1
-2
AllCommandHandler.java
...c/main/java/com/zehong/system/task/AllCommandHandler.java
+1
-1
CheckPowerOnCommandEvent.java
...java/com/zehong/system/task/CheckPowerOnCommandEvent.java
+1
-1
DeviceCommunicationJob.java
...n/java/com/zehong/system/task/DeviceCommunicationJob.java
+1
-1
DeviceTaskScheduler.java
...main/java/com/zehong/system/task/DeviceTaskScheduler.java
+3
-3
FinalExecutionJob.java
...c/main/java/com/zehong/system/task/FinalExecutionJob.java
+21
-3
PowerOffCommandEvent.java
...ain/java/com/zehong/system/task/PowerOffCommandEvent.java
+1
-1
TEquipmentInfoMapper.xml
...src/main/resources/mapper/system/TEquipmentInfoMapper.xml
+4
-0
TStoreyInfoMapper.xml
...em/src/main/resources/mapper/system/TStoreyInfoMapper.xml
+9
-0
TTrayInfoMapper.xml
...stem/src/main/resources/mapper/system/TTrayInfoMapper.xml
+7
-0
No files found.
zhmes-agecal-admin/src/main/java/com/zehong/web/controller/equipment/TestTaskController.java
View file @
55246658
...
...
@@ -10,9 +10,9 @@ import com.zehong.system.domain.modbus.ModbusDeviceData;
import
com.zehong.system.modbus.util.Modbus4jUtils
;
import
com.zehong.system.service.ITEquipmentAlarmDataService
;
import
com.zehong.system.service.ITEquipmentInfoService
;
import
com.zehong.
web
.task.AgingCabinetInspectionAndPowerCheckTask
;
import
com.zehong.
web
.task.CheckPowerOnCommandEvent
;
import
com.zehong.
web
.task.PowerOffCommandEvent
;
import
com.zehong.
system
.task.AgingCabinetInspectionAndPowerCheckTask
;
import
com.zehong.
system
.task.CheckPowerOnCommandEvent
;
import
com.zehong.
system
.task.PowerOffCommandEvent
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.context.ApplicationEventPublisher
;
...
...
zhmes-agecal-system/pom.xml
View file @
55246658
...
...
@@ -27,6 +27,12 @@
<artifactId>
spring-boot-configuration-processor
</artifactId>
<optional>
true
</optional>
</dependency>
<!-- 定时任务-->
<dependency>
<groupId>
com.zehong
</groupId>
<artifactId>
zhmes-agecal-quartz
</artifactId>
</dependency>
</dependencies>
</project>
\ No newline at end of file
zhmes-agecal-system/src/main/java/com/zehong/system/mapper/TEquipmentInfoMapper.java
View file @
55246658
...
...
@@ -20,6 +20,8 @@ public interface TEquipmentInfoMapper
*/
public
TEquipmentInfo
selectTEquipmentInfoById
(
Long
fEquipmentId
);
public
TEquipmentInfo
selectTEquipmentInfoByCode
(
String
fEquipmentCode
);
/**
* 查询生产设备信息列表
*
...
...
zhmes-agecal-system/src/main/java/com/zehong/system/mapper/TStoreyInfoMapper.java
View file @
55246658
...
...
@@ -27,6 +27,8 @@ public interface TStoreyInfoMapper
*/
public
TStoreyInfo
selectTStoreyInfoByCode
(
String
fStoreyCode
);
public
void
unbindByCode
(
TStoreyInfo
tStoreyInfo
);
// 新增方法:查询离机械臂最近的空闲层
public
TStoreyInfo
selectNearestFreeStorey
();
/**
...
...
zhmes-agecal-system/src/main/java/com/zehong/system/mapper/TTrayInfoMapper.java
View file @
55246658
...
...
@@ -47,6 +47,7 @@ public interface TTrayInfoMapper
*/
public
int
updateTTrayInfo
(
TTrayInfo
tTrayInfo
);
public
int
unbindByCode
(
TTrayInfo
tTrayInfo
);
/**
* 删除托盘信息
*
...
...
zhmes-agecal-system/src/main/java/com/zehong/system/service/impl/RobotArmCommandServiceImpl.java
View file @
55246658
...
...
@@ -8,17 +8,21 @@ import java.util.Date;
import
java.util.List
;
import
com.zehong.common.utils.DateUtils
;
import
com.zehong.common.utils.StringUtils
;
import
com.zehong.system.domain.TEquipmentInfo
;
import
com.zehong.system.domain.TStoreyInfo
;
import
com.zehong.system.domain.TTrayInfo
;
import
com.zehong.system.mapper.TEquipmentInfoMapper
;
import
com.zehong.system.mapper.TStoreyInfoMapper
;
import
com.zehong.system.mapper.TTrayInfoMapper
;
import
com.zehong.system.modbus.util.Modbus4jUtils
;
import
com.zehong.system.netty.handler.NettyUdpServerHandler
;
import
com.zehong.system.service.websocket.RobotArmWebSocketHandler
;
import
com.zehong.system.task.CheckPowerOnCommandEvent
;
import
com.zehong.system.udp.UdpCommandSender
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.context.ApplicationEventPublisher
;
import
org.springframework.stereotype.Service
;
import
com.zehong.system.mapper.RobotArmCommandMapper
;
import
com.zehong.system.domain.RobotArmCommand
;
...
...
@@ -50,6 +54,9 @@ public class RobotArmCommandServiceImpl implements IRobotArmCommandService
@Resource
private
TStoreyInfoMapper
storeyInfoMapper
;
@Resource
private
TEquipmentInfoMapper
equipmentInfoMapper
;;
@Resource
private
TTrayInfoMapper
tTrayInfoMapper
;
...
...
@@ -61,6 +68,9 @@ public class RobotArmCommandServiceImpl implements IRobotArmCommandService
@Value
(
"${robot.arm.udp.port}"
)
private
int
robotArmPort
;
@Resource
private
ApplicationEventPublisher
eventPublisher
;
// 新增事件发布器
private
SocketAddress
getRobotAddress
()
{
try
{
return
new
InetSocketAddress
(
...
...
@@ -131,10 +141,46 @@ public class RobotArmCommandServiceImpl implements IRobotArmCommandService
// 发送上电指令
try
{
// 上料的指令 需要去上电
if
(
"0"
.
equals
(
command
.
getType
())){
// 发送上电指令给机械臂
String
udpMessage
=
String
.
format
(
"POWER_ON,%s,%s"
,
command
.
getTrayCode
(),
command
.
getStoreyCode
());
udpCommandSender
.
sendCommandThrowError
(
udpMessage
);
String
storeyCode
=
command
.
getStoreyCode
();
String
equitmentCode
=
""
;
Integer
registerOffset
=
null
;
if
(
storeyCode
.
contains
(
"-"
))
{
String
[]
parts
=
storeyCode
.
split
(
"-"
);
equitmentCode
=
parts
[
0
];
registerOffset
=
Integer
.
parseInt
(
parts
[
1
]);
TEquipmentInfo
tEquipmentInfo
=
equipmentInfoMapper
.
selectTEquipmentInfoByCode
(
equitmentCode
);
if
(
tEquipmentInfo
!=
null
)
{
String
powerOutageIp
=
tEquipmentInfo
.
getfPowerOutageIp
();
Integer
powerOutagePort
=
tEquipmentInfo
.
getfPowerOutagePort
();
if
(
StringUtils
.
isNotBlank
(
powerOutageIp
)
&&
powerOutagePort
!=
null
)
{
eventPublisher
.
publishEvent
(
new
CheckPowerOnCommandEvent
(
this
,
equitmentCode
,
powerOutageIp
,
powerOutagePort
,
registerOffset
));
}
}
}
// 下料的话 得解除 托盘 和 层的绑定关系
}
else
{
TStoreyInfo
tStoreyInfo
=
new
TStoreyInfo
();
tStoreyInfo
.
setfStoreyCode
(
command
.
getStoreyCode
());
tStoreyInfo
.
setUpdateTime
(
new
Date
());
storeyInfoMapper
.
unbindByCode
(
tStoreyInfo
);
TTrayInfo
tTrayInfo
=
new
TTrayInfo
();
tTrayInfo
.
setfTrayCode
(
command
.
getTrayCode
());
tTrayInfo
.
setUpdateTime
(
new
Date
());
tTrayInfo
.
setfUnbindingTime
(
new
Date
());
tTrayInfoMapper
.
unbindByCode
(
tTrayInfo
);
}
command
.
setStatus
(
"4"
);
log
.
info
(
"指令执行成功,状态设置为4"
);
}
catch
(
Exception
e
)
{
...
...
zhmes-agecal-
admin/src/main/java/com/zehong/web
/task/AgingCabinetInspectionAndPowerCheckTask.java
→
zhmes-agecal-
system/src/main/java/com/zehong/system
/task/AgingCabinetInspectionAndPowerCheckTask.java
View file @
55246658
package
com
.
zehong
.
web
.
task
;
package
com
.
zehong
.
system
.
task
;
import
com.serotonin.modbus4j.ModbusMaster
;
import
com.serotonin.modbus4j.exception.ErrorResponseException
;
...
...
@@ -15,7 +15,6 @@ import org.slf4j.Logger;
import
org.slf4j.LoggerFactory
;
import
org.springframework.context.ApplicationEventPublisher
;
import
org.springframework.stereotype.Component
;
import
org.springframework.web.context.request.async.DeferredResult
;
import
javax.annotation.Resource
;
import
java.util.*
;
...
...
zhmes-agecal-
admin/src/main/java/com/zehong/web
/task/AllCommandHandler.java
→
zhmes-agecal-
system/src/main/java/com/zehong/system
/task/AllCommandHandler.java
View file @
55246658
package
com
.
zehong
.
web
.
task
;
package
com
.
zehong
.
system
.
task
;
import
com.serotonin.modbus4j.ModbusMaster
;
import
com.serotonin.modbus4j.exception.ErrorResponseException
;
...
...
zhmes-agecal-
admin/src/main/java/com/zehong/web
/task/CheckPowerOnCommandEvent.java
→
zhmes-agecal-
system/src/main/java/com/zehong/system
/task/CheckPowerOnCommandEvent.java
View file @
55246658
package
com
.
zehong
.
web
.
task
;
package
com
.
zehong
.
system
.
task
;
import
org.springframework.context.ApplicationEvent
;
...
...
zhmes-agecal-
admin/src/main/java/com/zehong/web
/task/DeviceCommunicationJob.java
→
zhmes-agecal-
system/src/main/java/com/zehong/system
/task/DeviceCommunicationJob.java
View file @
55246658
package
com
.
zehong
.
web
.
task
;
package
com
.
zehong
.
system
.
task
;
import
com.zehong.system.domain.TEquipmentAlarmData
;
import
com.zehong.system.domain.TStoreyInfo
;
import
com.zehong.system.mapper.TStoreyInfoMapper
;
...
...
zhmes-agecal-
admin/src/main/java/com/zehong/web
/task/DeviceTaskScheduler.java
→
zhmes-agecal-
system/src/main/java/com/zehong/system
/task/DeviceTaskScheduler.java
View file @
55246658
package
com
.
zehong
.
web
.
task
;
package
com
.
zehong
.
system
.
task
;
import
org.quartz.*
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
javax.annotation.Resource
;
import
java.time.Instant
;
import
java.time.temporal.ChronoUnit
;
import
java.util.Date
;
...
...
@@ -19,7 +19,7 @@ import java.util.Date;
public
class
DeviceTaskScheduler
{
private
static
final
Logger
log
=
LoggerFactory
.
getLogger
(
DeviceTaskScheduler
.
class
);
@
Autowired
@
Resource
private
Scheduler
scheduler
;
/**
* 创建设备监控任务
...
...
zhmes-agecal-
admin/src/main/java/com/zehong/web
/task/FinalExecutionJob.java
→
zhmes-agecal-
system/src/main/java/com/zehong/system
/task/FinalExecutionJob.java
View file @
55246658
package
com
.
zehong
.
web
.
task
;
package
com
.
zehong
.
system
.
task
;
import
com.serotonin.modbus4j.ModbusMaster
;
import
com.serotonin.modbus4j.exception.ModbusInitException
;
import
com.serotonin.modbus4j.exception.ModbusTransportException
;
import
com.zehong.common.utils.StringUtils
;
import
com.zehong.system.domain.RobotArmCommand
;
import
com.zehong.system.domain.TEquipmentAlarmData
;
import
com.zehong.system.domain.TStoreyInfo
;
import
com.zehong.system.mapper.RobotArmCommandMapper
;
import
com.zehong.system.mapper.TStoreyInfoMapper
;
import
com.zehong.system.modbus.util.Modbus4jUtils
;
import
com.zehong.system.service.ITEquipmentAlarmDataService
;
...
...
@@ -13,10 +15,10 @@ import com.zehong.system.service.ITStoreyInfoService;
import
org.quartz.*
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
import
javax.annotation.Resource
;
import
java.util.Date
;
/**
* @author lenovo
...
...
@@ -34,8 +36,11 @@ public class FinalExecutionJob implements Job {
@Resource
private
TStoreyInfoMapper
tStoreyInfoMapper
;
@
Autowired
@
Resource
private
Scheduler
scheduler
;
@Resource
private
RobotArmCommandMapper
robotArmCommandMapper
;
@Override
public
void
execute
(
JobExecutionContext
context
)
{
JobDataMap
data
=
context
.
getJobDetail
().
getJobDataMap
();
...
...
@@ -69,6 +74,9 @@ public class FinalExecutionJob implements Job {
// 3. 清理相关任务
cleanUpJobs
(
fStoreyId
,
context
);
// 4. 发送 下料指令
createRoboticArm
(
tStoreyInfo
.
getfTrayCode
(),
tStoreyInfo
.
getfStoreyCode
());
log
.
info
(
"设备[{}]最终业务逻辑执行完成"
,
fStoreyId
);
}
catch
(
Exception
e
)
{
// 记录异常
...
...
@@ -79,7 +87,17 @@ public class FinalExecutionJob implements Job {
alarmDataService
.
insertTEquipmentAlarmData
(
alarmData
);
}
}
}
private
void
createRoboticArm
(
String
trayCode
,
String
storeyCode
)
{
// 创建机械臂任务
RobotArmCommand
robotArmCommand
=
new
RobotArmCommand
();
robotArmCommand
.
setType
(
"1"
);
robotArmCommand
.
setStatus
(
"1"
);
robotArmCommand
.
setTrayCode
(
trayCode
);
robotArmCommand
.
setStoreyCode
(
storeyCode
);
robotArmCommand
.
setCreateTime
(
new
Date
());
robotArmCommandMapper
.
insertRobotArmCommand
(
robotArmCommand
);
}
private
void
cleanUpJobs
(
String
deviceId
,
JobExecutionContext
context
)
throws
SchedulerException
{
...
...
zhmes-agecal-
admin/src/main/java/com/zehong/web
/task/PowerOffCommandEvent.java
→
zhmes-agecal-
system/src/main/java/com/zehong/system
/task/PowerOffCommandEvent.java
View file @
55246658
package
com
.
zehong
.
web
.
task
;
package
com
.
zehong
.
system
.
task
;
import
org.springframework.context.ApplicationEvent
;
...
...
zhmes-agecal-system/src/main/resources/mapper/system/TEquipmentInfoMapper.xml
View file @
55246658
...
...
@@ -66,6 +66,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<include
refid=
"selectTEquipmentInfoVo"
/>
where f_equipment_id = #{fEquipmentId}
</select>
<select
id=
"selectTEquipmentInfoByCode"
parameterType=
"string"
resultMap=
"TEquipmentInfoResult"
>
<include
refid=
"selectTEquipmentInfoVo"
/>
where f_equipment_code = #{fEquipmentCode}
</select>
<insert
id=
"insertTEquipmentInfo"
parameterType=
"TEquipmentInfo"
useGeneratedKeys=
"true"
keyProperty=
"fEquipmentId"
>
insert into t_equipment_info
...
...
zhmes-agecal-system/src/main/resources/mapper/system/TStoreyInfoMapper.xml
View file @
55246658
...
...
@@ -128,6 +128,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
where f_storey_id = #{fStoreyId}
</update>
<update
id=
"unbindByCode"
parameterType=
"TStoreyInfo"
>
update t_storey_info
<trim
prefix=
"SET"
suffixOverrides=
","
>
<if
test=
"fStatus != null"
>
f_status = #{fStatus},
</if>
<if
test=
"fAgingStartTime == null"
>
f_aging_start_time = null,
</if>
<if
test=
"fUpdateTime != null"
>
f_update_time = #{fUpdateTime},
</if>
</trim>
where f_storey_code = #{fStoreyCode}
</update>
<delete
id=
"deleteTStoreyInfoById"
parameterType=
"Long"
>
delete from t_storey_info where f_storey_id = #{fStoreyId}
</delete>
...
...
zhmes-agecal-system/src/main/resources/mapper/system/TTrayInfoMapper.xml
View file @
55246658
...
...
@@ -98,6 +98,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
where f_tray_id = #{fTrayId}
</update>
<update
id=
"unbindByCode"
parameterType=
"TTrayInfo"
>
update t_tray_info
set f_storey_code = null,
f_status = 2,
f_unbinding_time = #{fUnbindingTime}
where f_tray_code = #{fTrayCode}
</update>
<delete
id=
"deleteTTrayInfoById"
parameterType=
"Long"
>
delete from t_tray_info where f_tray_id = #{fTrayId}
</delete>
...
...
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