luxiaotao1123
2022-12-03 8d473a12406bd509f3c7f8c349bf7b134642b282
Merge branch 'ynwcs' of http://47.97.1.152:5880/r/zy-wcs into ynwcs
3个文件已修改
142 ■■■■■ 已修改文件
src/main/java/com/zy/asrs/controller/SiteController.java 86 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/enums/SteChargeType.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/pipeline.html 43 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/SiteController.java
@@ -1,33 +1,38 @@
package com.zy.asrs.controller;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.core.annotations.ManagerAuth;
import com.core.common.Cools;
import com.core.common.R;
import com.zy.asrs.domain.vo.PlcErrorTableVo;
import com.zy.asrs.domain.vo.SiteTableVo;
import com.zy.asrs.entity.BasDevp;
import com.zy.asrs.entity.BasSte;
import com.zy.asrs.entity.WrkCharge;
import com.zy.asrs.service.BasDevpService;
import com.zy.asrs.service.BasSteService;
import com.zy.asrs.service.WrkChargeService;
import com.zy.common.model.enums.WrkChargeType;
import com.zy.common.service.CommonService;
import com.zy.core.DevpThread;
import com.zy.core.cache.MessageQueue;
import com.zy.core.cache.OutputQueue;
import com.zy.core.cache.SlaveConnection;
import com.zy.core.enums.SlaveType;
import com.zy.core.enums.SteTaskModeType;
import com.zy.core.enums.SteChargeType;
import com.zy.core.enums.SteStatusType;
import com.zy.core.model.DevpSlave;
import com.zy.core.model.Task;
import com.zy.core.model.command.SteCommand;
import com.zy.core.model.protocol.StaProtocol;
import com.zy.core.model.protocol.SteProtocol;
import com.zy.core.properties.SlaveProperties;
import com.zy.core.DevpThread;
import com.zy.core.thread.SiemensDevpThread;
import com.zy.core.thread.SteThread;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
/**
 * 输送设备接口
@@ -42,6 +47,12 @@
    private SlaveProperties slaveProperties;
    @Autowired
    private BasDevpService basDevpService;
    @Autowired
    private WrkChargeService wrkChargeService;
    @Autowired
    private BasSteService basSteService;
    @Autowired
    private CommonService commonService;
    @GetMapping("/io/mode/info/site")
    @ManagerAuth(memo = "充电模式")
@@ -71,24 +82,49 @@
    @PostMapping("/io/mode/action/site")
    @ManagerAuth(memo = "充电控制")
    public R ioModeAction(@RequestParam("floor") Integer floor, @RequestParam("charge") Boolean charge){
        for (DevpSlave devp : slaveProperties.getDevp()) {
            // 输送线充电命令下发区 --------------------------------------------------------------------------
            SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
            boolean res = devpThread.charge(floor - 1, charge);
            if (!charge && res) {
                // 穿梭车充电命令下发区 --------------------------------------------------------------------------
                int steNo = floor;
                SteCommand steCommand = new SteCommand();
                steCommand.setSteNo(steNo); // 穿梭车编号
                steCommand.setTaskNo(9999); // 工作号
                steCommand.setTaskMode(SteTaskModeType.CLOSE_CHARGE);
                if (!MessageQueue.offer(SlaveType.Ste, steNo, new Task(2, steCommand))) {
                    log.error("穿梭车命令下发失败,穿梭车号={},任务数据={}", steNo, JSON.toJSON(steCommand));
                }
            }
            return res?R.ok():R.error();
        if (null != wrkChargeService.selectWorking(null, WrkChargeType.charge)) {
            return R.error("目前存在小车充电任务,请稍后再试");
        }
        return R.ok();
        if (null != wrkChargeService.selectWorking(null, WrkChargeType.reset)) {
            return R.error("目前存在小车复位任务,请稍后再试");
        }
        if (charge) {
            return R.ok();
        }
        SteChargeType steCharge = SteChargeType.get(floor);
        assert steCharge != null;
        Integer steNo = basSteService.hasCarOfLocNo(steCharge.locNo);
        if (Cools.isEmpty(steNo)) {
            return R.error(steNo + "号小车不在" + floor + "号充电桩,请检查小车定位");
        }
        SteThread steThread = (SteThread) SlaveConnection.get(SlaveType.Ste, steNo);
        SteProtocol steProtocol = steThread.getSteProtocol();
        BasSte basSte = basSteService.selectById(steNo);
        if (steProtocol.getMode() == 0) {
            return R.error(steNo + "号小车离线,无法操作");
        }
        if (!steProtocol.getStatusType().equals(SteStatusType.IDLE)) {
            return R.error(steNo + "号小车不是空闲,无法操作");
        }
        WrkCharge wrkCharge = wrkChargeService.selectWorking(steNo, WrkChargeType.reset);
        if (wrkCharge == null) {
            // 开始穿梭车复位任务
            wrkCharge = new WrkCharge();
            wrkCharge.setSteNo(steNo);
            wrkCharge.setWrkNo(commonService.getChargeWorkNo(6));
            wrkCharge.setWrkSts(41L);   // 41.小车准备复位
            wrkCharge.setCrnNo(2);  // 固定2号堆垛机
            wrkCharge.setIoPri((double) 10);
            wrkCharge.setSourceLocNo(steCharge.locNo);
            wrkCharge.setLocNo(basSte.getIdleLoc());
            wrkCharge.setMemo("reset");
            wrkCharge.setAppeTime(new Date());
            if (!wrkChargeService.insert(wrkCharge)) {
                log.error("保存{}号穿梭车复位任务失败!!!", steNo);
            }
        }
        return R.ok(steNo + "号小车准备离开" + floor + "号充电桩");
    }
    @PostMapping("/table/site")
src/main/java/com/zy/core/enums/SteChargeType.java
@@ -31,4 +31,17 @@
        return null;
    }
    public static SteChargeType get(int ssbm) {
        if (Cools.isEmpty(ssbm)) {
            return null;
        }
        SteChargeType[] values = SteChargeType.values();
        for (SteChargeType value : values) {
            if (value.ssbm == ssbm) {
                return value;
            }
        }
        return null;
    }
}
src/main/webapp/views/pipeline.html
@@ -214,28 +214,29 @@
        if (ioModeData != null && ioModeData.length > 1) {
            ioModeData.forEach(function(e) {
                if (e.floor === Number(floor)) {
                    console.log()
                    layer.confirm('确定切换充电状态吗?',function () {
                        $.ajax({
                            url: baseUrl+ "/site/io/mode/action/site",
                            headers: {'token': localStorage.getItem('token')},
                            data: {
                                floor: e.floor,
                                charge: !e.modeVal
                            },
                            method: 'POST',
                            success: function (res) {
                                if (res.code === 200){
                                    layer.msg("操作成功,请耐心等待一分钟", {icon: 1})
                                } else if (res.code === 403){
                                    window.location.href = baseUrl+"/login";
                                }  else {
                                    console.log(res.msg);
                    if (e.modeVal) {
                        layer.confirm('确定断开充电并复位吗?',function () {
                            $.ajax({
                                url: baseUrl+ "/site/io/mode/action/site",
                                headers: {'token': localStorage.getItem('token')},
                                data: {
                                    floor: e.floor,
                                    charge: !e.modeVal
                                },
                                method: 'POST',
                                success: function (res) {
                                    if (res.code === 200){
                                        layer.msg(res.msg, {icon: 1})
                                    } else if (res.code === 403){
                                        window.location.href = baseUrl+"/login";
                                    }  else {
                                        layer.msg(res.msg, {icon: 2})
                                    }
                                }
                            }
                        });
                        layer.closeAll();
                    })
                            });
                            layer.closeAll();
                        })
                    }
                }
            });
        }