Browse Source

Merge remote-tracking branch 'origin/master'

master
王梦远 2 months ago
parent
commit
a967428ce9
  1. 21
      src/main/java/com/iflytop/sgs/app/controller/SelfTestController.java
  2. 13
      src/main/java/com/iflytop/sgs/app/core/aspect/DeviceStateChangeAspect.java

21
src/main/java/com/iflytop/sgs/app/controller/SelfTestController.java

@ -30,28 +30,15 @@ public class SelfTestController {
@Operation(summary = "自检完毕")
@PostMapping("/finish")
public Result<?> selfTestFinish() throws Exception {
public Result<?> selfTestFinish(){
deviceStateService.getDeviceState().setSelfTest(true);
new Thread(() -> {
try {
//deviceCommandUtilService.capMotorMove(21);
} catch (Exception e) {
log.error("拍子存放区初始化上升失败", e);
}
}).start();
return Result.success();
}
@Operation(summary = "改变自检状态")
@Operation(summary = "手动改变自检状态")
@PostMapping("/isFinish")
public Result<?> selfTestFinish(boolean isFinish) throws Exception {
public Result<?> selfTestFinish(boolean isFinish){
deviceStateService.getDeviceState().setSelfTest(isFinish);
new Thread(() -> {
try {
//deviceCommandUtilService.capMotorMove(21);
} catch (Exception e) {
log.error("拍子存放区初始化上升失败", e);
}
}).start();
return Result.success();
}
}

13
src/main/java/com/iflytop/sgs/app/core/aspect/DeviceStateChangeAspect.java

@ -8,8 +8,12 @@ import lombok.extern.slf4j.Slf4j;
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.After;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.springframework.stereotype.Component;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;
@Slf4j
@Aspect
@Component
@ -18,6 +22,13 @@ public class DeviceStateChangeAspect {
private final WebSocketSender webSocketService;
private final DeviceStateService deviceStateService;
private final Lock lock = new ReentrantLock();
@Before("execution(* com.iflytop.sgs.app.model.bo.status..set*(..))")
public void beforeSetMethod(JoinPoint joinPoint) {
lock.lock();
}
@After("execution(* com.iflytop.sgs.app.model.bo.status.device.*.set*(..))")
public void afterSetMethod(JoinPoint joinPoint) {
try {
@ -32,6 +43,8 @@ public class DeviceStateChangeAspect {
}
} catch (Exception e) {
log.error("处理状态变更后的值失败", e);
} finally {
lock.unlock();
}
}
}
Loading…
Cancel
Save