diff --git a/ruoyi-admin/src/main/java/com/ruoyi/MyStartupRunner.java b/ruoyi-admin/src/main/java/com/ruoyi/MyStartupRunner.java new file mode 100644 index 0000000..6ecbdd8 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/MyStartupRunner.java @@ -0,0 +1,21 @@ +package com.ruoyi; + +import com.ruoyi.schedule.ScheduleThread; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.CommandLineRunner; +import org.springframework.stereotype.Component; + +@Component +public class MyStartupRunner implements CommandLineRunner { + + @Autowired + private ScheduleThread scheduleThread; + + @Override + public void run(String... args) throws Exception { + // 这里编写项目启动后要执行的方法逻辑 + //System.out.println("项目启动成功后自动执行此方法"); +// scheduleThread.startAllThread(); +// scheduleThread.startAllThread2(); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/algorithm/controller/TidyController.java b/ruoyi-admin/src/main/java/com/ruoyi/algorithm/controller/TidyController.java new file mode 100644 index 0000000..b542fb3 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/algorithm/controller/TidyController.java @@ -0,0 +1,30 @@ +package com.ruoyi.algorithm.controller; + +import java.util.Map; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.algorithm.service.ITidyService; +import com.ruoyi.common.core.domain.AjaxResult; + +@RestController +@RequestMapping("/algorithm/tidy") +public class TidyController { + @Autowired + private ITidyService tidyService; + + @PreAuthorize("@ss.hasPermi('algorithm:tidy:query')") + @GetMapping("/status") + public AjaxResult status() { return AjaxResult.success(tidyService.getStatus()); } + + @PreAuthorize("@ss.hasPermi('algorithm:tidy:edit')") + @PutMapping("/mode") + public AjaxResult mode(@RequestBody Map body) { + try { return AjaxResult.success(tidyService.updateMode(body == null ? null : body.get("mode"))); } + catch (IllegalArgumentException ex) { return AjaxResult.error(ex.getMessage()); } + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/algorithm/service/ITidyService.java b/ruoyi-admin/src/main/java/com/ruoyi/algorithm/service/ITidyService.java new file mode 100644 index 0000000..b1aa956 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/algorithm/service/ITidyService.java @@ -0,0 +1,8 @@ +package com.ruoyi.algorithm.service; + +import java.util.Map; + +public interface ITidyService { + Map getStatus(); + Map updateMode(String mode); +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/algorithm/service/impl/TidyServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/algorithm/service/impl/TidyServiceImpl.java new file mode 100644 index 0000000..86741a6 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/algorithm/service/impl/TidyServiceImpl.java @@ -0,0 +1,29 @@ +package com.ruoyi.algorithm.service.impl; + +import java.util.LinkedHashMap; +import java.util.Map; +import java.util.concurrent.atomic.AtomicReference; +import org.springframework.stereotype.Service; +import com.ruoyi.algorithm.service.ITidyService; + +@Service +public class TidyServiceImpl implements ITidyService { + private final AtomicReference mode = new AtomicReference<>("AUTO"); + + @Override + public Map getStatus() { + Map result = new LinkedHashMap<>(); + result.put("mode", mode.get()); + result.put("enabled", true); + return result; + } + + @Override + public Map updateMode(String requestedMode) { + if (requestedMode == null || !("AUTO".equalsIgnoreCase(requestedMode) || "MANUAL".equalsIgnoreCase(requestedMode))) { + throw new IllegalArgumentException("mode must be AUTO or MANUAL"); + } + mode.set(requestedMode.toUpperCase()); + return getStatus(); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/api/controller/Wcs2WmsController.java b/ruoyi-admin/src/main/java/com/ruoyi/api/controller/Wcs2WmsController.java index c5871cb..1d53356 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/api/controller/Wcs2WmsController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/api/controller/Wcs2WmsController.java @@ -53,6 +53,13 @@ public class Wcs2WmsController { return apiService.cancelMydoJob(jobParam); } + /** Return a read-only snapshot of all S-RGV vehicles. */ + @PostMapping("/tidyVehicleSnapshot") + public AjaxResult tidyVehicleSnapshot() { + return apiService.tidyVehicleSnapshot(); + } + + diff --git a/ruoyi-admin/src/main/java/com/ruoyi/api/domain/wcs2wms/SrgvVehicleSnapshot.java b/ruoyi-admin/src/main/java/com/ruoyi/api/domain/wcs2wms/SrgvVehicleSnapshot.java new file mode 100644 index 0000000..03fc6ce --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/api/domain/wcs2wms/SrgvVehicleSnapshot.java @@ -0,0 +1,23 @@ +package com.ruoyi.api.domain.wcs2wms; + +import lombok.Data; + +/** Read-only vehicle status snapshot exposed to WMS. */ +@Data +public class SrgvVehicleSnapshot { + private String guid; + private Integer deviceId; + private String deviceName; + private String agvStatus; + private Boolean online; + private Boolean healthy; + private Boolean idle; + private Integer taskNo; + private Integer alarm; + private Integer errMsg; + private Integer chargeFlag; + private Integer locked; + private Integer battery; + private String currSite; + private Integer currFloor; +} diff --git a/ruoyi-admin/src/main/resources/application-druid.yml b/ruoyi-admin/src/main/resources/application-druid.yml index 79ad5bb..5da72f3 100644 --- a/ruoyi-admin/src/main/resources/application-druid.yml +++ b/ruoyi-admin/src/main/resources/application-druid.yml @@ -6,9 +6,9 @@ spring: druid: #主数据信息 master: - url: jdbc:sqlserver://127.0.0.1:1433;databaseName=FT546-WCS; + url: jdbc:sqlserver://127.0.0.1:1433;databaseName=FT546-wcs; username: sa - password: 123456 + password: Flrd0914. # 从库数据源 slave: # 从数据源开关/默认关闭 diff --git a/ruoyi-ui/src/api/algorithm/tidy.js b/ruoyi-ui/src/api/algorithm/tidy.js new file mode 100644 index 0000000..8c90cf6 --- /dev/null +++ b/ruoyi-ui/src/api/algorithm/tidy.js @@ -0,0 +1,9 @@ +import request from '@/utils/request' + +export function getTidyStatus() { + return request({ url: '/algorithm/tidy/status', method: 'get' }) +} + +export function updateTidyMode(mode) { + return request({ url: '/algorithm/tidy/mode', method: 'put', data: { mode } }) +} diff --git a/ruoyi-ui/src/views/algorithm/tidy/index.vue b/ruoyi-ui/src/views/algorithm/tidy/index.vue new file mode 100644 index 0000000..4032130 --- /dev/null +++ b/ruoyi-ui/src/views/algorithm/tidy/index.vue @@ -0,0 +1,33 @@ + + + + + diff --git a/ruoyi-ui/vue.config.js b/ruoyi-ui/vue.config.js index a1733b8..f02e036 100644 --- a/ruoyi-ui/vue.config.js +++ b/ruoyi-ui/vue.config.js @@ -18,6 +18,7 @@ module.exports = { outputDir: 'dist', assetsDir: 'static', productionSourceMap: false, + parallel: false, transpileDependencies: ['quill'], devServer: { host: '0.0.0.0',