# initOildepot **Repository Path**: windyflying/init-oildepot ## Basic Information - **Project Name**: initOildepot - **Description**: mmmmmmmmmmmmmmmmmmmmmmm - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-07-11 - **Last Updated**: 2025-11-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # intelligent_oil_depot ## 智慧油库后端服务 ### 系统架构 ##### 系统采用springboot作为web后端主框架。 ##### 整体代码开发规范严格按照阿里巴巴开发手册。idea插件:Alibaba Java Code Guidelines ##### git使用Gitea搭建私有仓库。分支master。[源码地址](http://amkj.cqemme.com:10080/yfb_java/intelOilDepot_java.git) ##### 数据库使用mysql8。orm框架使用mybatis-plus。本项目开启了下划线自动转驼峰。请使用标准命名规范。无需使用@TableField注解指定数据库字段名。数据库连接池使用springboot自带的hikari。 ###### 使用mybatisx插件,自动映射数据库生成实体类、service、mapper代码 ##### 本地缓存使用google.Guava。 ##### 依赖包版本管理工具使用maven3.6,打包插件使用spring-boot-maven-plugin。 ##### 运行环境使用java1.8。 ##### 接口文档使用swagger2自动生成,接口规范使用restful风格。 ##### 定时任务使用springboot自带的Scheduled。定时时间短的任务 比如一分钟,建议使用fixedDelay。而cron和fixedRate建议时间周期长的任务。 ##### webdocket使用springboot自带。基于Spring封装的形式 应对业务更灵活多变。 ##### json序列化/反序列化 使用springbootweb默认的jackson。 ##### 日志框架 使用springbootweb默认的Logback。 ##### 工具包使用hutool ### 项目结构详解 **config 配置类** - MybatisPlusConfig orm框架mybatis配置 使用的是mybatis增加版mybatis-plus 主要一些优化的配置 - scheduled 定时任务配置 配置定时任务的线程池 另因定时任务与websocket冲突,所以需要配置注入 - SwaggerConfig 自动化接口文档配置 使用的是swagger2。分组使用接口路径uri前缀来划分模块 - ThreadPoolConfig 线程池配置 线程以及异步任务统一使用此配置 - WebConfig web请求拦截器配置(配置拦截器处理对象和配置哪些路径是否拦截 ) 以及 静态文件资源配置(内外部文件) - WebSocketConfig websocket配置 配置处理器和拦截器以及跨域设置 使用springboot自带的websocket **controller 接口控制层** - 接口控制,用于接受用户的输入和返回数据给用户,可规定路径以及参数名,可对参数进行校验和整理,本身不做任何逻辑和数据处理。 - 接口统一使用restful风格 **entity 实体类 模型层** - BaseEntity 保存数据库每张表的公有字段。 中间表不需要 - id 主键 - createTime 创建时间,插入时自动保存当前时间 - updateTime 更新时间,插入或更新时自动保存当前时间 - dataStatus 逻辑删除字段,自动处理 删除时转变为更新、查找和更新时自动追加where条件过滤掉。如果使用xml文件,请自己带上该字段 - BaseFacEntity 设备设施基类表 归属技术档案的类型用于继承 **mapper 持久层** - 数据库数据持久化操作 **schedule 定时器** - 定时任务 **service 服务层** - 进行业务逻辑处理,服务层之间进行相互调用,请勿注入其他实体的mapper层和controller层 **websocket ws** - WebSocketHandler websocket服务处理类,主要的数据逻辑处理 - WebSocketInterceptor websocket请求连接拦截器,token验证 **common 公用组件层** - annotation 自定义注解 - cache 本地缓存层 - constant 常量数据 - dto 数据转换对象 - enums 枚举 - excel excel模板数据处理 - exception 自定义异常 - po 请求接收类,请求接收参数对象的数据封装,使用swagger注解可自动生成文档,使用validation注解可自动进行字段校验 - utils 工具包 - vo 接口输出类,用于输出前端的数据封装,使用swagger注解可自动生成文档 - web - AuthenticationInterceptor 请求拦截器,进行token验证和权限配置 - JwtUtil jwt工具 - LoginUser jwt生成token的加密对象 - Result 接口返回对象封装 - ResultCodeMsg 返回状态码 - WebExceptionHandle 全局web异常处理 ### 其他 - json字段使用注解 - @TableName(autoResultMap = true) - @TableField(typeHandler = JacksonTypeHandler.class) - 如果实在xml中返回json 则需要单独配置resultMap - 模组命名及URL规则 - 收发作业:oiloperater,功能接口URL路径参数以"/ope/"为前缀; - 资产管理:assetman,功能接口URL路径参数以"/ass/"为前缀; - 仓库管理:storeman,功能接口URL路径参数以"/sto/"为前缀; - 风险管理:riskman,功能接口URL路径参数以"/ris/"为前缀; - 应急指挥:emergcomm,功能接口URL路径参数以"/eme/"为前缀; - 教育培训:training,功能接口URL路径参数以"/tra/"为前缀; - 资产管理模组 - 油罐液位使用容积表方式 - 所有设备设施类型服务应当继承FacBaseService和FacBaseServiceImpl