制作执行系统MES设计文档

Qcadoo MES 设计文档

1. 仓库分析

1.1 项目概述

Qcadoo MES是一个面向中小型企业的生产管理系统,它结合了大型ERP系统的功能,适应中小型企业的特定需求。项目采用开源模式,同时提供商业版本。

1.2 目录结构

项目采用模块化结构,主要包含以下部分:

  • mes-master :主项目目录,包含应用程序核心和各种功能插件
    • mes-application:应用程序核心,包含配置文件和Web应用结构
    • mes-plugins:功能插件集合,每个插件实现特定的业务功能
  • qcadoo-master:基础框架,提供核心功能支持
  • qcadoo-maven-plugin-master:Maven插件,用于构建和部署
  • qcadoo-super-pom-open-master:父POM文件,定义项目依赖和构建配置

1.3 技术栈

  • Java 8:主要开发语言
  • Spring Framework:依赖注入、AOP、MVC等核心功能
  • Maven:项目构建和依赖管理
  • AspectJ:面向切面编程
  • 插件架构:模块化设计,功能通过插件实现
  • Web技术:JSP、Servlet、HTML、JSON
  • 数据库:支持多种数据库(通过SQL脚本可以看出)

1.4 核心功能模块

通过分析插件目录,可以识别出以下核心功能模块:

  1. 基础功能(mes-plugins-basic):系统基础功能
  2. 技术管理(mes-plugins-technologies):生产技术管理
  3. 订单管理(mes-plugins-orders):生产订单管理
  4. 生产计数(mes-plugins-production-counting):生产数据统计
  5. 仓库管理(mes-plugins-warehouse-minimal-state):仓库状态管理
  6. 成本计算(mes-plugins-cost-calculation):成本核算
  7. 生产调度(mes-plugins-production-scheduling):生产计划调度
  8. 物料流(mes-plugins-material-flow):物料流转管理
  9. 设备维护(mes-plugins-cmms-machine-parts):设备维护管理
  10. 报表生成 :基于qcadoo-report模块

2. 系统架构设计

2.1 架构风格

Qcadoo MES采用插件化的多层架构,具体如下:

  1. 表现层:基于Spring MVC,处理HTTP请求和响应
  2. 业务逻辑层:通过插件实现各种业务功能
  3. 数据访问层:基于qcadoo-model模块,提供数据持久化
  4. 基础框架层:qcadoo-core提供核心功能支持

2.2 核心流程图

数据库 模型层 插件层 Web层 客户端 数据库 模型层 插件层 Web层 客户端 HTTP请求 调用插件功能 数据操作 SQL操作 返回数据 处理结果 业务处理结果 HTTP响应

2.3 模块划分

模块 主要职责 文件位置 引用
应用核心 系统配置和Web应用结构 mes-application mes-master/mes-application
基础插件 系统基础功能 mes-plugins-basic mes-master/mes-plugins/mes-plugins-basic
技术管理 生产技术管理 mes-plugins-technologies mes-master/mes-plugins/mes-plugins-technologies
订单管理 生产订单管理 mes-plugins-orders mes-master/mes-plugins/mes-plugins-orders
生产计数 生产数据统计 mes-plugins-production-counting mes-master/mes-plugins/mes-plugins-production-counting
仓库管理 仓库状态管理 mes-plugins-warehouse-minimal-state mes-master/mes-plugins/mes-plugins-warehouse-minimal-state
成本计算 成本核算 mes-plugins-cost-calculation mes-master/mes-plugins/mes-plugins-cost-calculation
生产调度 生产计划调度 mes-plugins-production-scheduling mes-master/mes-plugins/mes-plugins-production-scheduling
物料流 物料流转管理 mes-plugins-material-flow mes-master/mes-plugins/mes-plugins-material-flow
设备维护 设备维护管理 mes-plugins-cmms-machine-parts mes-master/mes-plugins/mes-plugins-cmms-machine-parts

3. 核心功能设计

3.1 功能模块

3.1.1 基础功能模块

功能描述:提供系统的基础功能,包括用户管理、权限控制、字典管理等。

实现方式:基于qcadoo-plugins-user-management和qcadoo-plugins-dictionary-management模块。

关键流程

  1. 用户登录认证
  2. 权限验证
  3. 字典数据管理
3.1.2 技术管理模块

功能描述:管理生产技术相关数据,包括工艺路线、操作步骤、技术参数等。

实现方式:通过mes-plugins-technologies插件实现。

关键流程

  1. 工艺路线定义
  2. 操作步骤配置
  3. 技术参数设置
3.1.3 订单管理模块

功能描述:管理生产订单,包括订单创建、跟踪、状态管理等。

实现方式:通过mes-plugins-orders插件实现。

关键流程

  1. 订单创建
  2. 订单状态更新
  3. 订单跟踪
3.1.4 生产计数模块

功能描述:统计生产数据,包括产量、效率、质量等指标。

实现方式:通过mes-plugins-production-counting插件实现。

关键流程

  1. 生产数据采集
  2. 数据统计分析
  3. 报表生成
3.1.5 仓库管理模块

功能描述:管理仓库状态,包括库存水平、物料移动、最小库存预警等。

实现方式:通过mes-plugins-warehouse-minimal-state插件实现。

关键流程

  1. 库存水平监控
  2. 物料移动记录
  3. 最小库存预警

3.2 页面详情

页面名称 模块 功能描述 调用API 参数说明 变更状态
登录页面 基础功能 用户认证 /j_spring_security_check username, password 未变更
主页面 基础功能 系统主界面 /main.html - 未变更
订单管理页面 订单管理 订单列表和详情 /orders.html - 未变更
技术管理页面 技术管理 工艺路线管理 /technologies.html - 未变更
生产计数页面 生产计数 生产数据统计 /production-counting.html - 未变更
仓库管理页面 仓库管理 库存状态管理 /warehouse.html - 未变更
成本计算页面 成本计算 成本核算 /cost-calculation.html - 未变更
生产调度页面 生产调度 生产计划调度 /production-scheduling.html - 未变更

4. 核心 API/类/函数

4.1 核心类和函数

类/函数名 描述 参数(类型/含义) 成功返回结构/类型 失败返回结构/类型 所属文件/模块 引用
FilesystemResourcesFilter 处理文件系统资源的过滤器 sourceBasePath: String 资源基础路径 - - qcadoo-view mes-master/mes-application/src/main/webapp/WEB-INF/web.xml
ContextLoaderListener Spring上下文加载监听器 - - - spring-web mes-master/mes-application/src/main/webapp/WEB-INF/web.xml
DispatcherServlet Spring MVC核心Servlet contextConfigLocation: String 上下文配置位置 - - spring-webmvc mes-master/mes-application/src/main/webapp/WEB-INF/web.xml

4.2 配置文件

配置文件 描述 路径 引用
web.xml Web应用配置文件 mes-application/src/main/webapp/WEB-INF/web.xml mes-master/mes-application/src/main/webapp/WEB-INF/web.xml
app.properties 应用配置文件 mes-application/conf/*/app.properties mes-master/mes-application/conf
db.properties 数据库配置文件 mes-application/conf/*/db.properties mes-master/mes-application/conf
log4j.xml 日志配置文件 mes-application/conf/*/log4j.xml mes-master/mes-application/conf

5. 技术栈与依赖

技术/依赖 版本 用途 来源
Java 1.8 开发语言 pom.xml
Spring Framework - 依赖注入、AOP、MVC pom.xml
AspectJ - 面向切面编程 pom.xml
Maven - 项目构建和依赖管理 pom.xml
OpenCSV 4.0 CSV文件处理 mes-plugins-basic/pom.xml
qcadoo-plugin 1.5 插件框架 pom.xml
qcadoo-localization 1.5 本地化支持 pom.xml
qcadoo-security 1.5 安全管理 pom.xml
qcadoo-view 1.5 视图管理 pom.xml
qcadoo-report 1.5 报表生成 pom.xml

6. 关键模块与典型用例

6.1 订单管理模块

功能说明:管理生产订单的全生命周期,包括创建、跟踪、状态更新等。

配置与依赖

  • 依赖:qcadoo-plugin、qcadoo-view
  • 配置:通过插件XML文件定义

使用示例

java 复制代码
// 创建订单
OrderService orderService = getBean(OrderService.class);
Order order = orderService.createOrder(product, quantity, dueDate);

// 更新订单状态
orderService.updateOrderStatus(order.getId(), OrderStatus.IN_PROGRESS);

// 获取订单列表
List<Order> orders = orderService.getOrdersByStatus(OrderStatus.PENDING);

6.2 生产计数模块

功能说明:统计生产数据,包括产量、效率、质量等指标。

配置与依赖

  • 依赖:qcadoo-plugin、qcadoo-report
  • 配置:通过插件XML文件定义

使用示例

java 复制代码
// 记录生产数据
ProductionCountingService countingService = getBean(ProductionCountingService.class);
countingService.recordProductionData(orderId, operationId, quantity, scrapQuantity);

// 生成生产报表
ReportService reportService = getBean(ReportService.class);
reportService.generateProductionReport(startDate, endDate);

7. 配置、部署与开发

7.1 配置管理

Qcadoo MES使用分层配置管理,主要配置文件位于:

  • 环境配置:mes-application/conf/ 目录下,按环境(dev、prod、tomcat等)分类
  • 数据库配置:db.properties 文件,配置数据库连接信息
  • 应用配置:app.properties 文件,配置应用特定参数
  • 日志配置:log4j.xml 文件,配置日志输出

7.2 部署方式

  1. 从源码构建

    • 克隆代码库
    • 执行 mvn clean install 构建项目
    • 部署生成的WAR文件到Tomcat
  2. 使用预构建版本

    • 从GitHub Releases下载最新稳定版
    • 部署WAR文件到Tomcat

7.3 开发流程

  1. 创建插件

    • 使用qcadoo-plugin-archetype创建新插件
    • 实现业务逻辑
    • 定义模型和视图
  2. 集成插件

    • 在mes-plugins/pom.xml中添加插件模块
    • 构建并部署项目
  3. 测试

    • 运行单元测试
    • 进行集成测试
    • 验证功能正确性

8. 监控与维护

8.1 日志管理

Qcadoo MES使用Log4j进行日志管理,配置文件位于:

  • mes-application/conf/*/log4j.xml

日志级别可根据需要调整,默认包括:

  • ERROR:错误信息
  • WARN:警告信息
  • INFO:一般信息
  • DEBUG:调试信息

8.2 常见问题与解决方案

问题 可能原因 解决方案
数据库连接失败 数据库配置错误 检查db.properties中的连接信息
插件加载失败 插件依赖缺失 检查插件的pom.xml文件
权限错误 用户权限不足 检查用户角色和权限配置
性能问题 数据库查询效率低 优化数据库查询,添加索引

9. 总结与亮点回顾

Qcadoo MES是一个功能强大的生产管理系统,具有以下亮点:

  1. 插件架构:采用模块化的插件架构,便于功能扩展和定制
  2. 多语言支持:内置本地化支持,可适应不同国家和地区的需求
  3. 完整的生产管理功能:涵盖订单管理、技术管理、生产计数、仓库管理等核心功能
  4. 灵活的配置:支持不同环境的配置管理,适应不同部署场景
  5. 开源模式:采用GNU AGPLv3许可证,允许自由使用和修改

Qcadoo MES通过提供一套完整的生产管理解决方案,帮助中小型企业提高生产效率,降低运营成本,实现数字化转型。其插件架构和模块化设计使得系统具有高度的可扩展性和定制性,能够适应不同行业和企业的特定需求。

同时,Qcadoo Limited还提供商业版本,增加了更多高级功能和服务,如REST API集成、SaaS部署、与其他系统的集成模块等,为企业提供更全面的解决方案。

相关推荐
qAICHjag1 个月前
基于IEEE33节点的配电网重构,采用最优流法开展了配电网重构工作,得到重构方案,应打开的开关数等
service_mesh
麦兜*2 个月前
深入剖析云原生Service Mesh数据平面Envoy核心架构:基于xDS协议与WebAssembly实现动态流量管理与安全策略的微服务治理实战指南
云原生·架构·service_mesh
无心水2 个月前
【分布式利器:腾讯TSF】8、Service Mesh云原生演进:Java应用零侵入接入腾讯TSF全解析
分布式·云原生·envoy·service_mesh·service mesh·分布式利器·腾讯tsf
一只鱼丸yo2 个月前
Service Mesh:微服务治理的下一代方案
微服务·云原生·service_mesh
没有bug.的程序员3 个月前
为什么会出现 Service Mesh:从 Spring Cloud 到 Sidecar 的演进逻辑
spring cloud·微服务·云原生·istio·service_mesh·架构演进·sidecar
乾元3 个月前
Service Mesh 与网络抽象:AI 如何做服务层次网络策略生成(微服务 / 云原生)
网络·人工智能·安全·微服务·云原生·运维开发·service_mesh
廋到被风吹走3 个月前
Kubernetes (K8s) 与 Service Mesh 详解
容器·kubernetes·service_mesh
qq 180809513 个月前
No.44 基于FPGA的8点DCT变换verilog实现,包含testbench
service_mesh
19226383 个月前
基于COMSOL的锂离子电池P2D模型简化方法及验证
service_mesh