#
luxiaotao1123
2025-01-15 fd6d26f8ffe6a37533e741337f3eca9134d934c7
zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/FuncStaServiceImpl.java
@@ -74,7 +74,7 @@
            if (funcSta.getType().equals(FuncStaType.CHARGE.toString())) {
                // if the type of this funSta is charge and the existing agv is in charge status, then that means this funSta is occupied
                if (null != agv && !agv.getId().equals(agvId)) {
                    AgvModel agvModel = agvModelService.getById(agv.getAgvModel());
                    AgvModel agvModel = agvModelService.getByAgvId(agv.getId());
                    AgvDetail agvDetail = agvDetailService.selectByAgvId(agv.getId());
                    if (agvDetail.getAgvStatus().equals(AgvStatusType.CHARGE)) {
                        if (agvDetail.getVol() < agvModel.getQuaBattery()) {
@@ -110,7 +110,11 @@
                if (null == agv) {
                    // if there is a running task whose destination is this funSta, then that means this funSta is occupied
                    if (0 < taskService.count(new LambdaQueryWrapper<Task>()
                            .in(Task::getTaskType, TaskTypeType.TO_STANDBY.val(), TaskTypeType.TO_CHARGE.val())
                            .in(Task::getTaskType
                                    , TaskTypeType.TO_STANDBY.val()
                                    , TaskTypeType.TO_CHARGE.val()
                                    , TaskTypeType.MOVE.val()
                            )
                            .in(Task::getTaskSts, TaskStsType.ASSIGN.val(), TaskStsType.PROGRESS.val())
                            .eq(Task::getDestCode, code)
                    )) {
@@ -142,7 +146,7 @@
        }
        if (null != codeId) {
            Code currCode = codeService.getById(codeId);
            Code currCode = codeService.getCacheById(codeId);
            Double[] startPos = new Double[]{currCode.getX(), currCode.getY()};
            // checkout one funSta which is the closest
@@ -151,10 +155,10 @@
            funcStaList.sort(new Comparator<FuncSta>() {
                @Override
                public int compare(FuncSta o1, FuncSta o2) {
                    Code o1Code = codeService.getById(o1.getCode());
                    Code o1Code = codeService.getCacheById(o1.getCode());
                    int o1Distance = CommonUtil.calcDistance(startPos, new Double[]{o1Code.getX(), o1Code.getY()});
                    Code o2Code = codeService.getById(o2.getCode());
                    Code o2Code = codeService.getCacheById(o2.getCode());
                    int o2Distance = CommonUtil.calcDistance(startPos, new Double[]{o2Code.getX(), o2Code.getY()});
                    return o1Distance - o2Distance;
@@ -185,7 +189,7 @@
                agv = agvService.findByPosition(funcSta.getCode());
                if (null != agv) {
                    AgvModel agvModel = agvModelService.getById(agv.getAgvModel());
                    AgvModel agvModel = agvModelService.getByAgvId(agv.getId());
                    AgvDetail agvDetail = agvDetailService.selectByAgvId(agv.getId());
                    if (agvDetail.getAgvStatus().equals(AgvStatusType.CHARGE)) {
                        return false;