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 = "自检完毕") @Operation(summary = "自检完毕")
@PostMapping("/finish") @PostMapping("/finish")
public Result<?> selfTestFinish() throws Exception {
public Result<?> selfTestFinish(){
deviceStateService.getDeviceState().setSelfTest(true); deviceStateService.getDeviceState().setSelfTest(true);
new Thread(() -> {
try {
//deviceCommandUtilService.capMotorMove(21);
} catch (Exception e) {
log.error("拍子存放区初始化上升失败", e);
}
}).start();
return Result.success(); return Result.success();
} }
@Operation(summary = "改变自检状态")
@Operation(summary = "手动改变自检状态")
@PostMapping("/isFinish") @PostMapping("/isFinish")
public Result<?> selfTestFinish(boolean isFinish) throws Exception {
public Result<?> selfTestFinish(boolean isFinish){
deviceStateService.getDeviceState().setSelfTest(isFinish); deviceStateService.getDeviceState().setSelfTest(isFinish);
new Thread(() -> {
try {
//deviceCommandUtilService.capMotorMove(21);
} catch (Exception e) {
log.error("拍子存放区初始化上升失败", e);
}
}).start();
return Result.success(); 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.JoinPoint;
import org.aspectj.lang.annotation.After; import org.aspectj.lang.annotation.After;
import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;
@Slf4j @Slf4j
@Aspect @Aspect
@Component @Component
@ -18,6 +22,13 @@ public class DeviceStateChangeAspect {
private final WebSocketSender webSocketService; private final WebSocketSender webSocketService;
private final DeviceStateService deviceStateService; 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*(..))") @After("execution(* com.iflytop.sgs.app.model.bo.status.device.*.set*(..))")
public void afterSetMethod(JoinPoint joinPoint) { public void afterSetMethod(JoinPoint joinPoint) {
try { try {
@ -32,6 +43,8 @@ public class DeviceStateChangeAspect {
} }
} catch (Exception e) { } catch (Exception e) {
log.error("处理状态变更后的值失败", e); log.error("处理状态变更后的值失败", e);
} finally {
lock.unlock();
} }
} }
} }
Loading…
Cancel
Save