feat: 增强链接任务状态管理,确保在首次选区和重复选区时正确更新任务状态
This commit is contained in:
@@ -692,6 +692,12 @@ private UserLinkStatusResponse doGetUserLinkStatus(Long linkId, String codeNo) {
|
||||
String selectedDeviceId;
|
||||
|
||||
if(linkTask.getFirstRegionSelectAt() == null){
|
||||
if(!linkTask.getStatus().equals("USING")){
|
||||
LocalDateTime now = LocalDateTime.now();
|
||||
linkTask.setStatus("USING");
|
||||
linkTask.setUpdatedAt(now);
|
||||
linkTaskMapper.updateById(linkTask);
|
||||
}
|
||||
log.info("首次选区: 开始检查和分配空闲设备");
|
||||
DeviceStatusResponse deviceStatus = scriptClient.checkAvailableDeviceStatus().block();
|
||||
|
||||
@@ -716,6 +722,12 @@ private UserLinkStatusResponse doGetUserLinkStatus(Long linkId, String codeNo) {
|
||||
|
||||
log.info("首次选区设备分配成功: 选中设备={}, 任务ID={}", selectedDeviceId, linkTask.getId());
|
||||
}else{
|
||||
if(!linkTask.getStatus().equals("USING")){
|
||||
LocalDateTime now = LocalDateTime.now();
|
||||
linkTask.setStatus("USING");
|
||||
linkTask.setUpdatedAt(now);
|
||||
linkTaskMapper.updateById(linkTask);
|
||||
}
|
||||
log.info("重复选区: 检查首次选区时有效性并复用设备");
|
||||
// 检查首次选区是否已过期
|
||||
LocalDateTime firstSelectTime = linkTask.getFirstRegionSelectAt();
|
||||
@@ -831,6 +843,8 @@ private UserLinkStatusResponse doGetUserLinkStatus(Long linkId, String codeNo) {
|
||||
}
|
||||
if (linkTask.getFirstRegionSelectAt() == null) {
|
||||
linkTask.setFirstRegionSelectAt(now);
|
||||
linkTask.setStatus("USING");
|
||||
linkTask.setUpdatedAt(LocalDateTime.now());
|
||||
try { linkTaskMapper.update(linkTask); } catch (Exception ignore) {}
|
||||
}
|
||||
// Audit and history for USING transition
|
||||
|
||||
Reference in New Issue
Block a user