# 2025项目中内容

## 我项目内容
**AGV看板**

使用的时大屏展示，本来的实现方式是`vm+vh`但是后面说这个效果不太好，当时做了两个版本一个是`flexible.js`后面就使用了这个库进行开发的，不过刚开始因为样式问题会在不同的端上显示有问题，比如大小屏显示问题。但是后面只要是设计好了就没事了，因为没有设计稿的问题他给的是截图有很多误差的地方。

也涉及了`echarts`，包括表格设计循环滚动，其中也包含使用`konvajs`绘制的地图页面，不包含交管算法只是调用别人的接口进行渲染。之后就是常见的图表内容了。

**部门权限**

使用的是RBAC，主要包含用户、角色、权限，其中权限表不仅仅是一张表在不同的项目中可能是菜单权限、部门权限等 ，但是这个项目没有那么复杂只是一张权限表。

这个项目的目的是为了当时操作工会误操作不改操作的部门设备才做的，大部分的接口是调用斯坦德的接口少部分实现是自己的，当时要求是只要做到部门权限就行了，但是我怕后面还会继续修改所以当时就做到角色，指定相应的角色才能使用对应的页面或者接口，我的项目中时精确到接口的，每个用户需要带着自己的token去访问请求接口。

根据用户id去查询角色，之后再去查找对应的权限，如果当前的用户没有这个角色就返回401，如果用户可以访问这个页面但是这个页面。

刚加载的时候需要或许整个数据，若这个权限没有就是一个空白页并且也会告知用户没有权限，我在后端开发制作的时候喜欢使用抛出异常方式来解决返回状态码的问题，比如正常情况下是返回200这个没有问题，如果有异常全部抛出异常之后进行捕获，我认为这个是最简单也是最安全的做法，之后使用Spring自带的全局异常拦截器进行拦截既可。

关于前端页面我是用别人的模板进行开发的，返回路由是他们定义好的，我只要返回当前用户，也就是根据用户id查找对应角色之后对对应的角色查找对应的绑定的路由菜单，查询完成后返回给前端进行整合，每个路由返回中（因为这个是前端定义好的后端只要照着做既可）需要带上角色，前端会进行逻辑判断。

**WMS相关**

系统业务是这样的，员工负责将货箱放在指定地点，机器人负责搬运到货架上

入库相关操作，同步入库单MES需要同步订单给WMS，当WMS 接受都爱入库请求之后会判断ESS是否在线，如果不合格会取消入库，让人工搬运，反之机器人搬运。

出库操作：出库流程为自动出库和手动出库两种，自动模式依赖ESS在线状态，MES同步整个数据，ESS不在线需要人工搬运。

