#
luxiaotao1123
2024-10-18 7146978793989951933e7d14325296740cdba920
#
7个文件已修改
135 ■■■■■ 已修改文件
zy-acs-flow/src/config/setting.js 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-flow/src/map/Notification.jsx 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-flow/src/map/http.js 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-flow/src/map/insight/agv/AgvControl.jsx 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-manager/src/main/java/com/zy/acs/manager/common/domain/param/HandlerPublishParam.java 30 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-manager/src/main/java/com/zy/acs/manager/core/HandlerController.java 75 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-manager/src/main/java/com/zy/acs/manager/manager/enums/TaskTypeType.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-flow/src/config/setting.js
@@ -9,6 +9,8 @@
export const PREFIX_BASE_URL = '/api/';
export const HANDLE_APP_KEY = 'xltys1995';
export const SPA_NAME = 'COOL';
export const SPA_VERSION = '1';
zy-acs-flow/src/map/Notification.jsx
@@ -49,7 +49,7 @@
                        onClose={handleClose}
                        severity={notification.severity}
                        sx={{ width: '300px', zIndex: 2000 }}
                        variant="outlined" // Optional: Use filled variant for better visibility
                        variant="filled" // standard' | 'filled' | 'outlined
                    >
                        {notification.message}
                    </Alert>
zy-acs-flow/src/map/http.js
@@ -1,6 +1,7 @@
import request from '@/utils/request';
import * as Tool from './tool';
import { DEVICE_TYPE } from './constants';
import { HANDLE_APP_KEY } from '@/config/setting';
let notify;
let mapContainer;
@@ -145,14 +146,15 @@
    })
}
export const handleControlAgv = async (agvNo, form, callback) => {
    await request.post('/map/agv/info', {
        agvNo: agvNo,
    }, {
        headers: { 'Content-Type': 'application/x-www-form-urlencoded' }
export const handleControlAgv = async (param, callback) => {
    await request.post('/handler/control/agv', param, {
        headers: {
            'appKey': HANDLE_APP_KEY
        }
    }).then((res) => {
        const { code, msg, data } = res.data;
        if (code === 200) {
            notify.success(msg);
            if (callback) {
                callback(data)
            }
zy-acs-flow/src/map/insight/agv/AgvControl.jsx
@@ -53,8 +53,9 @@
    const onSubmit = (data) => {
        if (curAgvNo) {
            console.log(data);
            handleControlAgv(curAgvNo, data);
            handleControlAgv({ agvNo: curAgvNo, ...data }, () => {
            });
        }
    };
zy-acs-manager/src/main/java/com/zy/acs/manager/common/domain/param/HandlerPublishParam.java
@@ -11,14 +11,34 @@
    private String agvNo;
    private TaskTypeType taskType;
    private TaskTypeType taskMode;
    private String startCode;
    // id
    private String endCode;
    private Long startCode;
    private String startLocNo;
    private Long endCode;
    private String endLocNo;
    private Long startLocNo;
    private Long endLocNo;
    private Long startStaNo;
    private Long endStaNo;
    // uuid
    private String startCodeStr;
    private String endCodeStr;
    private String startLocNoStr;
    private String endLocNoStr;
    private String startStaNoStr;
    private String endStaNoStr;
}
zy-acs-manager/src/main/java/com/zy/acs/manager/core/HandlerController.java
@@ -3,6 +3,9 @@
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.zy.acs.common.utils.Utils;
import com.zy.acs.framework.common.Cools;
import com.zy.acs.framework.common.R;
import com.zy.acs.framework.common.SnowflakeIdWorker;
import com.zy.acs.manager.common.domain.param.HandlerPublishParam;
import com.zy.acs.manager.common.exception.BusinessException;
import com.zy.acs.manager.core.service.AvoidWaveCalculator;
@@ -10,18 +13,12 @@
import com.zy.acs.manager.core.service.ThreadPoolRegulator;
import com.zy.acs.manager.core.service.TrafficService;
import com.zy.acs.manager.core.service.astart.MapDataDispatcher;
import com.zy.acs.manager.manager.entity.Agv;
import com.zy.acs.manager.manager.entity.AgvDetail;
import com.zy.acs.manager.manager.entity.Loc;
import com.zy.acs.manager.manager.entity.Task;
import com.zy.acs.manager.manager.entity.*;
import com.zy.acs.manager.manager.enums.ActionStsType;
import com.zy.acs.manager.manager.enums.LocStsType;
import com.zy.acs.manager.manager.enums.TaskStsType;
import com.zy.acs.manager.manager.service.*;
import com.zy.acs.manager.system.controller.BaseController;
import com.zy.acs.framework.common.Cools;
import com.zy.acs.framework.common.R;
import com.zy.acs.framework.common.SnowflakeIdWorker;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
@@ -38,7 +35,7 @@
 */
@Slf4j
@RestController
@RequestMapping("/handler")
@RequestMapping("/api/handler")
public class HandlerController extends BaseController {
    public static final String APP_KEY = "xltys1995";
@@ -68,11 +65,11 @@
    @Autowired
    private AvoidWaveCalculator avoidWaveCalculator;
    @RequestMapping(value = "/publish", method = {RequestMethod.GET, RequestMethod.POST})
    @RequestMapping(value = "/control/agv", method = {RequestMethod.GET, RequestMethod.POST})
    @Transactional
    public R publish(@RequestHeader String appKey,
    public R controlAgv(@RequestHeader String appKey,
                     @RequestBody HandlerPublishParam param) {
        if (Cools.isEmpty(param.getAgvNo(), param.getTaskType(), appKey)) {
        if (Cools.isEmpty(param.getAgvNo(), param.getTaskMode(), appKey)) {
            return R.error();
        }
        if (!APP_KEY.equals(appKey)) {
@@ -101,36 +98,58 @@
        }
        // generate
        switch (param.getTaskType()) {
        switch (param.getTaskMode()) {
            case MOVE:
                if (Cools.isEmpty(param.getEndCode())) {
                Code endCode = null;
                if (!Cools.isEmpty(param.getEndCode())) {
                    endCode = codeService.getById(param.getEndCode());
                }
                if (!Cools.isEmpty(param.getEndCodeStr())) {
                    endCode = codeService.selectByData(param.getEndCodeStr());
                }
                if (null == endCode) {
                    return R.error();
                }
                if (null == codeService.selectByData(param.getEndCode())) {
                    return R.error();
                }
                if (!mainService.buildMinorTask(agv, agvDetail, param.getTaskType(), param.getEndCode())) {
                if (!mainService.buildMinorTask(agv, agvDetail, param.getTaskMode(), endCode.getData())) {
                    return R.error();
                }
                break;
            case TO_CHARGE:
            case TO_STANDBY:
                if (!mainService.buildMinorTask(agv, agvDetail, param.getTaskType(), null)) {
                if (!mainService.buildMinorTask(agv, agvDetail, param.getTaskMode(), null)) {
                    return R.error();
                }
                break;
            case LOC_TO_LOC:
                if (Cools.isEmpty(param.getStartLocNo(), param.getEndLocNo())) {
                    return R.error();
                // oriLoc
                Loc oriLoc = null;
                if (!Cools.isEmpty(param.getStartLocNo())) {
                    oriLoc = locService.getById(param.getStartLocNo());
                }
                Loc oriLoc = locService.selecatByLocNo(param.getStartLocNo());
                if (!Cools.isEmpty(param.getStartLocNoStr())) {
                    oriLoc = locService.selecatByLocNo(param.getStartLocNoStr());
                }
                if (null == oriLoc) {
                    return R.error();
                }
                Loc destLoc = locService.selecatByLocNo(param.getEndLocNo());
                if (!oriLoc.getLocSts().equals(LocStsType.STOCK.val())) {
                    throw new BusinessException("oriLoc:" + oriLoc.getLocNo() + " 不是在库状态");
                }
                // destLoc
                Loc destLoc = null;
                if (!Cools.isEmpty(param.getEndLocNo())) {
                    destLoc = locService.getById(param.getEndLocNo());
                }
                if (!Cools.isEmpty(param.getEndLocNoStr())) {
                    destLoc = locService.selecatByLocNo(param.getEndLocNoStr());
                }
                if (null == destLoc) {
                    return R.error();
                }
                if (!destLoc.getLocSts().equals(LocStsType.IDLE.val())) {
                    throw new BusinessException("destLoc:" + destLoc.getLocNo() + " 不是空闲状态");
                }
                // task
                Task task = new Task();
@@ -142,7 +161,7 @@
                task.setOriLoc(oriLoc.getId());
                task.setDestLoc(destLoc.getId());
                task.setTaskType(param.getTaskType().val());
                task.setTaskType(param.getTaskMode().val());
                task.setTaskSts(TaskStsType.WAITING.val());
                task.setPriority(999);
@@ -153,26 +172,16 @@
                }
                // loc
                oriLoc = locService.getById(task.getOriLoc());
                if (!oriLoc.getLocSts().equals(LocStsType.STOCK.val())) {
                    throw new BusinessException("oriLoc:" + task.getOriLoc$() + " 不是在库状态");
                }
                oriLoc.setLocSts(LocStsType.PAKOUT.val());
                oriLoc.setUpdateTime(now);
                if (!locService.updateById(oriLoc)) {
                    throw new BusinessException("oriLoc:" + task.getOriLoc$() + " 修改库位状态失败");
                }
                destLoc = locService.getById(task.getDestLoc());
                if (!destLoc.getLocSts().equals(LocStsType.IDLE.val())) {
                    throw new BusinessException("destLoc:" + task.getDestLoc$() + " 不是空闲状态");
                }
                destLoc.setLocSts(LocStsType.PAKIN.val());
                destLoc.setUpdateTime(now);
                if (!locService.updateById(destLoc)) {
                    throw new BusinessException("destLoc:" + task.getDestLoc$() + " 修改库位状态失败");
                }
                break;
            default:
                break;
zy-acs-manager/src/main/java/com/zy/acs/manager/manager/enums/TaskTypeType.java
@@ -8,13 +8,12 @@
public enum TaskTypeType {
    MOVE,
    STA_TO_LOC,
    LOC_TO_STA,
    STA_TO_STA,
    LOC_TO_LOC,
    TO_CHARGE,
    TO_STANDBY,
    LOC_TO_LOC,
    LOC_TO_STA,
    STA_TO_LOC,
    STA_TO_STA,
    ;
    TaskTypeType() {