#
vincentlu
2026-04-07 30c540d35e476f9dc1c7149a4e52088c7f375f60
zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/RouteController.java
@@ -106,6 +106,7 @@
    @PreAuthorize("hasAuthority('manager:route:update')")
    @OperationLog("Update Route")
    @PostMapping("/route/update")
    @Transactional
    public R update(@RequestBody Route route) {
        Route origin = routeService.getById(route.getId());
        if (origin == null) {
@@ -131,6 +132,14 @@
        if (!routeService.updateById(route)) {
            return R.error("Update Fail");
        }
        Code startCode = codeService.getCacheById(route.getStartCode());
        Code endCode = codeService.getCacheById(route.getEndCode());
        if (startCode != null && endCode != null) {
            codeGapService.createCodeGapByCode(startCode, endCode, getLoginUserId());
        }
        if (!isSameCode(origin, route)) {
            codeGapService.removeCodeGapIfUnused(origin.getStartCode(), origin.getEndCode());
        }
        List<Long> affectedCodeIds = new ArrayList<>();
        if (origin.getStartCode() != null) {
            affectedCodeIds.add(origin.getStartCode());
@@ -144,9 +153,6 @@
        if (route.getEndCode() != null) {
            affectedCodeIds.add(route.getEndCode());
        }
        Code startCode = codeService.getCacheById(route.getStartCode());
        Code endCode = codeService.getCacheById(route.getEndCode());
        codeGapService.createCodeGapByCode(startCode, endCode, getLoginUserId());
        codeService.refreshCornerByCodeIds(affectedCodeIds);
        return R.ok("Update Success").add(route);
    }
@@ -154,6 +160,7 @@
    @PreAuthorize("hasAuthority('manager:route:remove')")
    @OperationLog("Delete Route")
    @PostMapping("/route/remove/{ids}")
    @Transactional
    public R remove(@PathVariable Long[] ids) {
        List<Route> routes = routeService.listByIds(Arrays.asList(ids));
        List<Long> affectedCodeIds = new ArrayList<>();
@@ -167,6 +174,9 @@
        }
        if (!routeService.removeByIds(Arrays.asList(ids))) {
            return R.error("Delete Fail");
        }
        for (Route route : routes) {
            codeGapService.removeCodeGapIfUnused(route.getStartCode(), route.getEndCode());
        }
        codeService.refreshCornerByCodeIds(affectedCodeIds);
        return R.ok("Delete Success").add(ids);
@@ -222,4 +232,11 @@
        return R.ok();
    }
    private boolean isSameCode(Route route0, Route route1) {
        return Objects.equals(route0.getStartCode(), route1.getStartCode())
                && Objects.equals(route0.getEndCode(), route1.getEndCode())
                || Objects.equals(route0.getStartCode(), route1.getEndCode())
                && Objects.equals(route0.getEndCode(), route1.getStartCode());
    }
}