logo

RuoYi v3.8.1

基于SpringBoot+Vue前后端分离的Java快速开发框架

## 平台简介 若依是一套全部开源的快速开发平台,毫无保留给个人及企业免费使用。 * 前端采用Vue、Element UI。 * 后端采用Spring Boot、Spring Security、Redis & Jwt。 * 权限认证使用Jwt,支持多终端认证系统。 * 支持加载动态权限菜单,多方式轻松权限控制。 * 高效率开发,使用代码生成器可以一键生成前后端代码。 * 提供了技术栈([Vue3](https://v3.cn.vuejs.org) [Element Plus](https://element-plus.org/zh-CN) [Vite](https://cn.vitejs.dev))版本[RuoYi-Vue3](https://github.com/yangzongzhuan/RuoYi-Vue3),保持同步更新。 * 提供了单应用版本[RuoYi-Vue-fast](https://github.com/yangzongzhuan/RuoYi-Vue-fast),Oracle版本[RuoYi-Vue-Oracle](https://github.com/yangzongzhuan/RuoYi-Vue-Oracle),保持同步更新。 * 不分离版本,请移步[RuoYi](https://gitee.com/y_project/RuoYi),微服务版本,请移步[RuoYi-Cloud](https://gitee.com/y_project/RuoYi-Cloud) * 特别鸣谢:[element](https://github.com/ElemeFE/element),[vue-element-admin](https://github.com/PanJiaChen/vue-element-admin),[eladmin-web](https://github.com/elunez/eladmin-web)。 * 阿里云折扣场:[点我进入](http://aly.ruoyi.vip),腾讯云秒杀场:[点我进入](http://txy.ruoyi.vip)   * 阿里云优惠券:[点我领取](https://www.aliyun.com/minisite/goods?userCode=brki8iof&share_source=copy_link),腾讯云优惠券:[点我领取](https://cloud.tencent.com/redirect.php?redirect=1025&cps_key=198c8df2ed259157187173bc7f4f32fd&from=console)   ## 内置功能 1. 用户管理:用户是系统操作者,该功能主要完成系统用户配置。 2. 部门管理:配置系统组织机构(公司、部门、小组),树结构展现支持数据权限。 3. 岗位管理:配置系统用户所属担任职务。 4. 菜单管理:配置系统菜单,操作权限,按钮权限标识等。 5. 角色管理:角色菜单权限分配、设置角色按机构进行数据范围权限划分。 6. 字典管理:对系统中经常使用的一些较为固定的数据进行维护。 7. 参数管理:对系统动态配置常用参数。 8. 通知公告:系统通知公告信息发布维护。 9. 操作日志:系统正常操作日志记录和查询;系统异常信息日志记录和查询。 10. 登录日志:系统登录日志记录查询包含登录异常。 11. 在线用户:当前系统中活跃用户状态监控。 12. 定时任务:在线(添加、修改、删除)任务调度包含执行结果日志。 13. 代码生成:前后端代码的生成(java、html、xml、sql)支持CRUD下载 。 14. 系统接口:根据业务代码自动生成相关的api接口文档。 15. 服务监控:监视当前系统CPU、内存、磁盘、堆栈等相关信息。 16. 缓存监控:对系统的缓存信息查询,命令统计等。 17. 在线构建器:拖动表单元素生成相应的HTML代码。 18. 连接池监视:监视当前系统数据库连接池状态,可进行分析SQL找出系统性能瓶颈。 ~~~ com.warewms ├──ruoyi-admin //web服务入口Controller管理模块(业务表生成的Controller层代码可以放在这里的project包下面) │ │ └──project //这里写你的项目业务代码Controller │ │ └──system //系统自带Controller │ │ └──启动类 //springboot项目启动类(默认启动地址http://localhost:8080) │ ├──install.sh //linux环境下部署运行的脚本,运行后会把项目注册成系统级服务(当kill掉会自动重启,保证服务高可用存活), │ │ //如果执行生成的start.sh和stop.sh在服务器上面存在两个“??”的符号。需要自己文件手动重命名去掉。注册好后可以service junior-server start 启动项目!!! │ ├──remove.sh //linux环境下移除部署运行的脚本,会删掉注册好的系统级服务,即service junior-server start ,service junior-server stop...(status,restart)等命令失效 │ ├──start.bat //windows 下的项目部署启动脚本 ├──ruoyi-common //通用模块(通用工具类等) ├──ruoyi-framework //框架核心模块(包含redis,druid,Log等) ├──ruoyi-generator //代码生成器模块 ├──ruoyi-quartz //定时任务模块 ├──ruoyi-system //系统模块(javaBean,mapper,service等逻辑的模块,业务表生成的代码(除了controller)都可以放在这里的project包下面) │ └──project //这里写你的项目业务相关代码(除了Controller之外) │ └──system //系统自带功能 ├──ruoyi-ui //前端项目Vue工程(默认启动地址http://localhost:81) ├──doc //说明文档文件夹 ├──sql //sql脚本文件夹 │ └──create_db.sql //生成数据库和用户 │ └──create_business.sql //用于存放你们自己业务表的sql │ └──quartz.sql //用于存放定时任务sql │ └──ry_20201021.sql //系统基本表自带的sql ├──pom.xml //项目整体依赖 ~~~ # 若依官方文档 [介绍 | RuoYi](http://doc.ruoyi.vip/ruoyi-vue/) # 自定义代码结构 > 下面是除去若依源码之外的代码结构。 ## ruoyi-admin ```java ├── init │   └── StartService.java //启动服务类 初始化任务可以写在这里 └── web ├── controller │   └── warewms │   ├── ams │   │   ├── ActTransactionLogController.java //库存事务 │   │   ├── AsnSoStrategyController.java //出入库策略 │   │   ├── FlowConfigEventController.java //事件调用配置 │   │   ├── FlowConfigHeaderController.java //流程配置 │   │   ├── InvLotLocIdController.java //库存信息 │   │   ├── InvLotattController.java //批次 │   │   ├── LineCallController.java // │   │   ├── LocationPriorityHeaderController.java //路径规划 │   │   ├── LocationViewController.java // │   │   ├── LotattConfigController.java // │   │   └── WcsTaskController.java //任务管理 │   ├── api │   ├── base │   │   ├── BaseCustomerController.java //客户信息 │   │   ├── BaseLocationInfoController.java //库位信息 │   │   ├── BaseLocationZoneController.java //库区信息 │   │   ├── BaseSkuController.java //物料信息 │   │   ├── BaseSkuTypeController.java //物料分类 │   │   ├── BaseSupplierController.java //供应商信息 │   │   ├── BaseWarehouseController.java //仓库信息 │   │   └── CodeSkuRelationshipController.java //条码品号关联信息 │   ├── pda //pda调用 │   │   ├── PdaController.java │   │   ├── PdaDocQcController.java │   │   └── PdaInvLotLocIdController.java │   └── wms │   ├── asn │   │   └── WmsDocAsnHeaderController.java //入库 │   ├── box │   │   └── WmsBoxInfoController.java //容器管理 │   ├── order │   │   ├── ActAllocationDetailsController.java //分配 │   │   └── WmsDocOrderHeaderController.java //出库 │   └── qc │   └── DocQcHeaderController.java //验收 ------------------------------------------------------------------------------------ └── resources │   ├── application-dev.yml │   ├── application.yml //配置文件 │   ├── logback.xml //日志管理 │   └── mybatis │   │   └── mybatis-config.xml //mybatis配置 ``` ## warms-ams ```java ├── agv │   └── ndc │   ├── AciService.java //ndc通信服务 │   ├── common │   │   ├── Aci.java // │   │   ├── ByteUtil.java //进制操作 │   │   ├── CRC16Util.java //循环冗余校验 │   │   └── ValType.java // │   ├── config │   │   └── TestTagConfig.java // │   ├── domain //通讯实体类 │   │   ├── AmsHexdefineDetail.java //任务定义 │   │   ├── AmsHexdefineHeader.java //指令定义 │   │   ├── AmsNdcEvent.java //ndc反馈事件代码字典 │   │   └── AmsTask.java //任务列表 │   ├── entity │   │   ├── AciInfo.java // │   │   ├── CallbackResult.java // │   │   ├── CarStatus.java // │   │   ├── EventBean.java // │   │   ├── Messageb.java // │   │   └── Order.java // │   ├── mapper │   │   ├── AmsHexdefineDetailMapper.java │   │   ├── AmsHexdefineHeaderMapper.java │   │   ├── AmsNdcEventMapper.java │   │   └── AmsTaskMapper.java │   ├── service │   │   ├── AgvInteractingService.java //ndc通讯交互 │   │   ├── IAmsHexdefineDetailService.java //任务定义 │   │   ├── IAmsHexdefineHeaderService.java //指令定义 │   │   ├── IAmsNdcEventService.java //Ndc反馈事件代码字典 │   │   ├── IAmsTaskService.java //任务管理 │   │   ├── SocketBufferService.java //NDC消息拆包 │   │   ├── StatusUpdateService.java //任务状态反馈 │   │   └── impl │   │   ├── AgvInteractingServiceImpl.java │   │   ├── AmsHexdefineDetailServiceImpl.java │   │   ├── AmsHexdefineHeaderServiceImpl.java │   │   ├── AmsNdcEventServiceImpl.java │   │   ├── AmsTaskServiceImpl.java │   │   ├── SocketBufferServiceImpl.java │   │   └── StatusUpdateServiceImpl.java │   └── thread │   └── AutoTaskThread.java //自动下发任务 ├── asn //入库 │   ├── domain │   │   ├── WmsDocAsnDetails.java //明细 │   │   └── WmsDocAsnHeader.java //单头 │   ├── form │   │   ├── LotattForm.java // │   │   ├── PaForm.java // │   │   ├── StockForm.java // │   │   ├── StockingListForm.java // │   │   └── UnlockForm.java // │   ├── mapper │   │   ├── WmsDocAsnDetailsMapper.java │   │   └── WmsDocAsnHeaderMapper.java │   ├── service │   │   ├── IWmsDocAsnDetailsService.java │   │   ├── IWmsDocAsnHeaderService.java │   │   └── impl │   │   ├── WmsDocAsnDetailsServiceImpl.java │   │   └── WmsDocAsnHeaderServiceImpl.java │   └── vo │   ├── SearchStockSkuVO.java // │   ├── SearchStockVO.java // │   ├── StockingListVO.java // │   └── WmsDocAsnDetailsVO.java // ├── box // │   ├── domain │   │   └── WmsBoxInfo.java │   ├── form │   │   └── AddBoxForm.java │   ├── mapper │   │   └── WmsBoxInfoMapper.java │   └── service │   ├── IWmsBoxInfoService.java │   └── impl │   └── WmsBoxInfoServiceImpl.java ├── business // │   ├── BusinessServiceImpl.java │   ├── IBusinessService.java │   └── domain │   ├── FilterLockInvLocationDTO.java // │   ├── LocationSortComparator.java // │   └── LocationSortDTO.java // ├── common │   └── vo │   └── DictVO.java // ├── config │   ├── domain │   │   ├── AsnSoStrategy.java //出入库策略 │   │   ├── FlowConfigDetails.java //流程配置 │   │   ├── FlowConfigEvent.java //事件调用配置 │   │   ├── FlowConfigHeader.java //流程配置 │   │   ├── LocationPriorityDetails.java //路径规划 │   │   ├── LocationPriorityHeader.java //路径规划 │   │   ├── LotattConfig.java // │   │   ├── dto │   │   │   ├── AgvCallDTO.java //AGV呼叫业务模型 │   │   │   ├── AgvCallItemDTO.java //入库业务模型 │   │   │   ├── InWarehouseDTO.java //出库业务模型 │   │   │   ├── LotattDTO.java //批次属性业务 │   │   │   └── OutWarehouseDTO.java │   │   ├── form │   │   │   └── FlowConfigForm.java │   │   └── vo │   │   ├── FlowConfigDetailsVO.java //流程配置 │   │   ├── FlowConfigHeaderVO.java //流程配置 │   │   ├── FlowConfigLotattVO.java // │   │   ├── FlowConfigVO.java //流程配置 │   │   ├── LocationPriorityDetailsVO.java //库位优先级 │   │   ├── LocationPriorityHeaderVO.java //库位优先级 │   │   └── LotattConfigVO.java │   ├── mapper │   │   ├── AsnSoStrategyMapper.java //出入库策略 │   │   ├── FlowConfigEventMapper.java //事件调用配置 │   │   ├── FlowConfigHeaderMapper.java //流程配置 │   │   ├── LocationPriorityHeaderMapper.java //出入库策略 │   │   └── LotattConfigMapper.java │   └── service │   ├── IAsnSoStrategyService.java //出入库策略 │   ├── IFlowConfigEventService.java //事件调用配置 │   ├── IFlowConfigHeaderService.java //事件调用配置 │   ├── ILocationPriorityHeaderService.java //库位优先级 │   ├── ILotattConfigService.java // │   ├── LocationAllocationStrategy.java // │   └── impl │   ├── AsnSoStrategyServiceImpl.java │   ├── FlowConfigEventServiceImpl.java │   ├── FlowConfigHeaderServiceImpl.java │   ├── LocationPriorityHeaderServiceImpl.java │   └── LotattConfigServiceImpl.java ├── inv //库存 │   ├── domain │   │   ├── ActTransactionLog.java //事务信息 │   │   ├── InvLotAtt.java //批次信息 │   │   ├── InvLotLocId.java //库存信息 │   │   ├── form │   │   │   ├── InvLocIdSearchFrom.java │   │   │   ├── InvLotLocIdAdjForm.java │   │   │   ├── InvLotLocIdForm.java │   │   │   └── InvLotLocIdMoveForm.java │   │   └── vo │   │   └── InvLotLocIdLotattVO.java │   ├── mapper │   │   ├── ActTransactionLogMapper.java │   │   ├── InvLotAttMapper.java │   │   └── InvLotLocIdMapper.java │   └── service │   ├── IActTransactionLogService.java //事务 │   ├── IInvLotAttService.java //批次 │   ├── IInvLotLocIdService.java //库存信息 │   └── impl │   ├── ActTransactionLogServiceImpl.java │   ├── InvLotAttServiceImpl.java │   └── InvLotLocIdServiceImpl.java ├── lineCall //物料拉动 │   ├── domain │   │   ├── form │   │   │   ├── LineCallDetailsForm.java │   │   │   ├── LineCallForm.java │   │   │   └── LineCallListFrom.java │   │   └── vo │   │   └── LineCallVO.java │   └── service │   ├── ILineCallService.java │   └── impl │   └── LineCallServiceImpl.java ├── locationView //库位视图 │   ├── domain │   │   ├── form │   │   │   └── LocationViewForm.java │   │   └── vo │   │   ├── LocationViewInfoVO.java │   │   ├── LocationViewLotattVO.java │   │   └── LocationViewVO.java │   └── service │   └── LocationViewService.java ├── order //出库 │   ├── domain │   │   ├── ActAllocationDetails.java │   │   ├── WmsDocOrderDetails.java │   │   └── WmsDocOrderHeader.java │   ├── dto │   │   └── WmsDocOrderDTO.java │   ├── form │   │   ├── AllocationForm.java │   │   ├── ArrangeStockForm.java // │   │   ├── CancelOrderForm.java │   │   ├── CheckOutForm.java // │   │   ├── CheckOutInfoForm.java │   │   ├── CheckOutSearchForm.java │   │   ├── InvTallyForm.java │   │   ├── PickForm.java │   │   └── PickInfoForm.java │   ├── mapper │   │   ├── ActAllocationDetailsMapper.java │   │   ├── WmsDocOrderDetailsMapper.java │   │   └── WmsDocOrderHeaderMapper.java │   ├── service │   │   ├── IActAllocationDetailsService.java │   │   ├── IWmsDocOrderDetailsService.java │   │   ├── IWmsDocOrderHeaderService.java │   │   └── impl │   │   ├── ActAllocationDetailsServiceImpl.java │   │   ├── WmsDocOrderDetailsServiceImpl.java │   │   └── WmsDocOrderHeaderServiceImpl.java │   └── vo │   ├── CheckOutVO.java │   ├── PickingListVO.java │   └── StockOrderVO.java ├── qc //验收 │   ├── domain │   │   ├── DocQcDetails.java │   │   ├── DocQcHeader.java │   │   ├── form │   │   └── vo │   │   └── DocQcListVo.java │   ├── mapper │   │   ├── DocQcDetailsMapper.java │   │   └── DocQcHeaderMapper.java │   └── service │   ├── IDocQcDetailsService.java │   ├── IDocQcHeaderService.java │   └── impl │   ├── DocQcDetailsServiceImpl.java │   └── DocQcHeaderServiceImpl.java └── task //任务 ├── domain │   ├── WcsTask.java │   └── form │   └── TaskDispositionForm.java ├── dto │   └── WcsTaskLocationDTO.java ├── form │   └── AddTaskForm.java ├── mapper │   └── WcsTaskMapper.java └── service ├── IWcsTaskService.java ├── TaskDispatchService.java └── impl └── WcsTaskServiceImpl.java ------------------------------------------------------------------------------------------- └── resources . └── mapper ├── ams │   ├── ActTransactionLogMapper.xml │   ├── AmsHexdefineDetailMapper.xml │   ├── AmsHexdefineHeaderMapper.xml │   ├── AmsNdcEventMapper.xml │   ├── AmsTaskMapper.xml │   ├── AsnSoStrategyMapper.xml │   ├── FlowConfigEventMapper.xml │   ├── FlowConfigHeaderMapper.xml │   ├── InvLotAttMapper.xml │   ├── InvLotLocIdMapper.xml │   ├── LocationPriorityHeaderMapper.xml │   ├── LotattConfigMapper.xml │   ├── WcsTaskMapper.xml │   └── WmsDocAsnDetailsMapper.xml ├── box │   └── WmsBoxInfoMapper.xml ├── docAsn │   └── WmsDocAsnHeaderMapper.xml ├── docOrder │   ├── ActAllocationDetailsMapper.xml │   ├── WmsDocOrderDetailsMapper.xml │   └── WmsDocOrderHeaderMapper.xml └── docQc ├── DocQcDetailsMapper.xml └── DocQcHeaderMapper.xml ``` ## warewms-base ```java . ├── constant │   └── Constant.java ├── domain │   ├── BaseCustomer.java │   ├── BaseIdsequence.java │   ├── BaseLocationInfo.java │   ├── BaseLocationZone.java │   ├── BaseSku.java │   ├── BaseSkuType.java │   ├── BaseSupplier.java │   ├── BaseWarehouse.java │   ├── CodeSkuRelationship.java │   ├── SysIdsequence.java │   ├── dto │   │   └── BaseLocationInfoSameColDTO.java │   ├── form │   │   └── BasLocationForm.java │   └── vo │   ├── BasLocationTreeSelectVO.java │   ├── BaseLocationLotattListVO.java │   ├── BaseLocationLotattVO.java │   ├── CodeSkuRelationshipVO.java │   ├── LotattInfo.java │   ├── LotattVO.java │   └── TreeSelectVO.java ├── mapper │   ├── BaseCustomerMapper.java │   ├── BaseIdsequenceMapper.java │   ├── BaseLocationInfoMapper.java │   ├── BaseLocationZoneMapper.java │   ├── BaseSkuMapper.java │   ├── BaseSkuTypeMapper.java │   ├── BaseSupplierMapper.java │   ├── BaseWarehouseMapper.java │   └── CodeSkuRelationshipMapper.java ├── service │   ├── IBaseCustomerService.java │   ├── IBaseIdsequenceService.java │   ├── IBaseLocationInfoService.java │   ├── IBaseLocationZoneService.java │   ├── IBaseSkuService.java │   ├── IBaseSkuTypeService.java │   ├── IBaseSupplierService.java │   ├── IBaseWarehouseService.java │   ├── ICodeSkuRelationshipService.java │   └── impl │   ├── BaseCustomerServiceImpl.java │   ├── BaseIdsequenceServiceImpl.java │   ├── BaseLocationInfoServiceImpl.java │   ├── BaseLocationZoneServiceImpl.java │   ├── BaseSkuServiceImpl.java │   ├── BaseSkuTypeServiceImpl.java │   ├── BaseSupplierServiceImpl.java │   ├── BaseWarehouseServiceImpl.java │   └── CodeSkuRelationshipServiceImpl.java └── utils ├── CommonUtils.java └── IdSequenceUtils.java ------------------------------------------------------------------------------------------- └── resources └── mapper └── base ├── BaseCustomerMapper.xml ├── BaseIdsequenceMapper.xml ├── BaseLocationInfoMapper.xml ├── BaseLocationZoneMapper.xml ├── BaseSkuMapper.xml ├── BaseSkuTypeMapper.xml ├── BaseSupplierMapper.xml ├── BaseWarehouseMapper.xml └── CodeSkuRelationshipMapper.xml ``` ## ruoyi-ui ```java ├── api │   ├── ams │   │   ├── allocation.js │   │   ├── config.js │   │   ├── flowConfig.js │   │   ├── invLotLocId.js │   │   ├── lineCall.js │   │   ├── locationPriority.js │   │   ├── locationView.js │   │   ├── transactionLog.js │   │   └── wcsTask.js │   ├── base │   │   ├── baseSku.js │   │   ├── customer.js │   │   ├── locationInfo.js │   │   ├── locationZone.js │   │   ├── relationship.js │   │   ├── skuType.js │   │   ├── supplier.js │   │   └── warehouse.js │   ├── box │   │   └── boxInfo.js │   ├── docAsn │   │   └── docAsn.js │   ├── docOrder │   │   └── docOrder.js │   ├── login.js │   ├── menu.js └── views ├── ams │   ├── config │   │   └── index.vue │   ├── flowConfig │   │   └── index.vue │   ├── inv │   │   ├── invLotLocId │   │   │   ├── adjDialog.vue │   │   │   └── index.vue │   │   └── locationView │   │   └── index.vue │   ├── lineCall │   │   └── index.vue │   ├── locationPriority │   │   └── index.vue │   ├── task │   │   └── index.vue │   └── transactionLog │   └── index.vue ├── base │   ├── baseSku │   │   ├── index.vue │   │   └── skuSearchDialog.vue │   ├── customer │   │   └── index.vue │   ├── locationInfo │   │   └── index.vue │   ├── locationZone │   │   └── index.vue │   ├── relationship │   │   └── index.vue │   ├── skuType │   │   └── index.vue │   ├── supplier │   │   └── index.vue │   └── warehouse │   └── index.vue ├── components │   └── icons │   ├── element-icons.js │   ├── index.vue │   └── svg-icons.js ├── dashboard │   ├── BarChart.vue │   ├── LineChart.vue │   ├── PanelGroup.vue │   ├── PieChart.vue │   ├── RaddarChart.vue │   └── mixins │   └── resize.js ├── error │   ├── 401.vue │   └── 404.vue ├── index.vue ├── index_v1.vue ├── login.vue ├── monitor │   ├── cache │   │   └── index.vue │   ├── druid │   │   └── index.vue │   ├── job │   │   ├── index.vue │   │   └── log.vue │   ├── logininfor │   │   └── index.vue │   ├── online │   │   └── index.vue │   ├── operlog │   │   └── index.vue │   └── server │   └── index.vue ├── redirect.vue ├── register.vue ├── system │   ├── config │   │   └── index.vue │   ├── dept │   │   └── index.vue │   ├── dict │   │   ├── data.vue │   │   └── index.vue │   ├── menu │   │   └── index.vue │   ├── notice │   │   └── index.vue │   ├── post │   │   └── index.vue │   ├── role │   │   ├── authUser.vue │   │   ├── index.vue │   │   └── selectUser.vue │   └── user │   ├── authRole.vue │   ├── index.vue │   └── profile │   ├── index.vue │   ├── resetPwd.vue │   ├── userAvatar.vue │   └── userInfo.vue ├── tool │   ├── build │   │   ├── CodeTypeDialog.vue │   │   ├── DraggableItem.vue │   │   ├── IconsDialog.vue │   │   ├── RightPanel.vue │   │   ├── TreeNodeDialog.vue │   │   └── index.vue │   ├── gen │   │   ├── basicInfoForm.vue │   │   ├── editTable.vue │   │   ├── genInfoForm.vue │   │   ├── importTable.vue │   │   └── index.vue │   └── swagger │   └── index.vue └── wms ├── allocation │   └── index.vue ├── box │   └── index.vue ├── docAsn │   ├── docAsnDetails-add-or-update.vue │   ├── docAsnDetails.vue │   ├── docAsnHeader-add-or-update.vue │   └── index.vue └── docOrder ├── docOrderDetails-add-or-update.vue ├── docOrderDetails.vue ├── docOrderHeader-add-or-update.vue └── index.vue ```