架构01
1、架构需求分析:(30分)
(1)绘制需求层次-需求方面二维矩阵。(10分)
|
层次 |
功能需求 |
质量需求 |
约束 |
|
业务层 |
1.支持生产订单套料发放、退料、补料 2.完工入库与在线盘点 |
-1.计划下发与打单响应时限 2. 损耗统计准确可追溯 |
1. 集成“云上ERP”系统 2. 表单符合公司 FM-MS-PC003 系列标准 |
|
用户层 |
|
1.按 ABC 分类规则处理(A/B/C) 2. 严格角色权限隔离 |
|
|
系统功能层 |
|
1单据生成速度≥100 张/小时 2.并发操作能力满足多车间同时使用 3.出错自动回滚与日志监控 |
1.前端/API 接口遵循 ERP 规范 2. HTTPS 加密通信 3. 部署在公司内网 |
(2)确定关键属性和关键功能。(10分)
关键属性:
销售订货流程:
销售合同(客户信息、订货内容、合同日期)
预测销售订单(市场需求预测、时间周期)
销售订单(订单编号、客户、产品、数量、交货期)
库存状态(产品库存数量、可用库存)
生产排程与计划:
生产排程表(销售订单号、生产单号、物料编码、品规、订单数量、完工日期、工序排产日期、入库数量)
每日生产计划(订单编号、生产单号、物料编码、产品名称、计划数量、定额工时、允许加班)。
销售发货流程:
销售发货单(订单关联、发货数量、日期)
客户信用(信用等级、欠款状态)
销售出库单(出库产品、数量、仓库信息)。
关键功能:
销售订货管理:
订单接收(业务部)、需求预测(市场部)、订单维护(销售助理)、订单评审(相关部门)、发货 / 生产决策(基于库存)。
生产计划与排程:
生产计划生成(计划部,库存无货时)、生产排程(工序级排产、资源分配)、每日生产任务下达(生产部执行)。
销售发货管理:
发货单生成(业务部)、多级审核(业务主管、财务部,含信用检查)、出库单生成(仓库)、发货任务安排(仓库)
(3)绘制关键功能的鲁棒图。(10分)
2、概念架构分析:(30分)
(1)绘制系统的概念体系架构图。(10分)
(2)绘制逻辑视图,并绘制协作图验证主要业务流程是否完整。(10分)
(3)定义数据表结构,并说明表之间的关联关系,给出数字词典。(10分)
1. 生产订单表(production_order)
|
字段名 |
数据类型 |
主键 / 外键 |
说明 |
|
order_id |
VARCHAR(32) |
主键 |
订单编号(唯一标识) |
|
product_code |
VARCHAR(64) |
外键 |
产品编码(关联产品基础表) |
|
planned_date |
DATE |
|
计划生产日期 |
|
completion_date |
DATE |
|
实际完工日期(可为空) |
|
status |
VARCHAR(16) |
|
订单状态(待发料 / 进行中 / 已完工) |
2. 物料表(material)
|
字段名 |
数据类型 |
主键 / 外键 |
说明 |
|
material_id |
VARCHAR(32) |
主键 |
物料编号(唯一标识) |
|
material_name |
VARCHAR(128) |
|
物料名称 |
|
classification |
CHAR(1) |
|
物料分类(A/B/C) |
|
unit |
VARCHAR(16) |
|
单位(如个 / 卷 / 片) |
|
spec |
VARCHAR(64) |
|
规格型号 |
3. 物料领用记录表(issue_record)
|
字段名 |
数据类型 |
主键 / 外键 |
说明 |
|
issue_id |
VARCHAR(32) |
主键 |
发料单号(唯一标识) |
|
order_id |
VARCHAR(32) |
外键 |
关联生产订单(production_order.order_id) |
|
material_id |
VARCHAR(32) |
外键 |
关联物料(material.material_id) |
|
quantity |
INT |
|
领用数量 |
|
available_qty |
INT |
|
实际可用量(扣减后库存) |
|
issued_by |
VARCHAR(32) |
外键 |
领料人(关联用户表 user_id) |
|
issued_time |
DATETIME |
|
领料时间 |
4. 退补料申请表(return_reissue_request)
|
字段名 |
数据类型 |
主键 / 外键 |
说明 |
|
request_id |
VARCHAR(32) |
主键 |
申请单号(唯一标识) |
|
order_id |
VARCHAR(32) |
外键 |
关联生产订单 |
|
type |
VARCHAR(8) |
|
类型(退料 / 补料) |
|
reason |
VARCHAR(256) |
|
申请原因 |
|
quantity |
INT |
|
申请数量 |
|
approval_status |
VARCHAR(16) |
|
审批状态(待审批 / 通过 / 驳回) |
|
created_by |
VARCHAR(32) |
外键 |
申请人(关联用户表 user_id) |
|
created_time |
DATETIME |
|
申请时间 |
5. 仓库库存表(warehouse_inventory)
|
字段名 |
数据类型 |
主键 / 外键 |
说明 |
|
warehouse_id |
VARCHAR(32) |
主键 |
仓库编号(唯一标识) |
|
material_id |
VARCHAR(32) |
外键 |
关联物料 |
|
on_hand_qty |
INT |
|
在库数量 |
|
safety_stock |
INT |
|
安全库存 |
|
last_count_date |
DATE |
|
最后盘点日期 |
6. 用户与角色表(user)
|
字段名 |
数据类型 |
主键 / 外键 |
说明 |
|
user_id |
VARCHAR(32) |
主键 |
用户 ID(唯一标识) |
|
name |
VARCHAR(32) |
|
姓名 |
|
role |
VARCHAR(16) |
|
角色(物料员 / 仓管员 / 计划物控等) |
|
contact |
VARCHAR(64) |
|
联系方式(如工号 / 电话) |
7. 审批流表(approval_flow)
|
字段名 |
数据类型 |
主键 / 外键 |
说明 |
|
approval_id |
VARCHAR(32) |
主键 |
审批 ID(唯一标识) |
|
related_id |
VARCHAR(32) |
外键 |
关联单据(如退补料申请 request_id) |
|
approver_id |
VARCHAR(32) |
外键 |
审批人(关联用户表 user_id) |
|
approval_time |
DATETIME |
|
审批时间 |
|
result |
VARCHAR(8) |
|
审批结果(通过 / 驳回) |
|
comment |
VARCHAR(256) |
|
审批意见 |
8. 数据字典
|
实体名称 |
表名 |
说明 |
|
生产订单 |
production_order |
管理生产订单全生命周期状态 |
|
物料 |
material |
记录物料基础信息及 ABC 分类 |
|
物料领用记录 |
issue_record |
跟踪物料领用明细及库存扣减 |
|
退补料申请 |
return_reissue_request |
管理退料 / 补料申请及审批流程 |
|
仓库库存 |
warehouse_inventory |
记录各仓库物料库存及盘点信息 |
|
用户与角色 |
user |
管理系统用户及其操作权限 |
|
审批流 |
approval_flow |
记录审批节点及审批历史 |
|
|
|
|
9..每日生产计划表(DailyProductionPlan)
|
字段名 |
类型 |
描述 |
约束 |
|
DailyPlanID |
INT (自增) |
每日计划唯一标识 |
主键,非空 |
|
WorkOrderID |
INT |
工单 ID |
外键(ProductionOrder),非空 |
|
DeptID |
INT |
部门 ID |
外键(ProductionDepartment),非空 |
|
ProductionDate |
DATE |
生产日期 |
非空 |
|
GroupName |
VARCHAR(10) |
组别(如补煤) |
可空 |
|
Sequence |
INT |
序号(1-6) |
非空 |
|
OrderNumber |
VARCHAR(20) |
销售订单编号 |
外键(SalesOrder),非空 |
|
MaterialCode |
VARCHAR(20) |
物料编码 |
外键(Material),非空 |
|
ProductName |
VARCHAR(50) |
产品名称(冗余) |
非空 |
|
PlanQuantity |
INT |
计划数量 |
非空 |
|
StandardHours |
DECIMAL(5,2) |
定额工时(小时) |
非空 |
|
AllowOvertime |
BOOLEAN |
是否允许加班 |
默认 FALSE,非空 |
|
Remark |
VARCHAR(100) |
备注 |
可空 |
10.生产计划排程表(ProductionSchedule)
|
字段名 |
类型 |
描述 |
约束 |
|
ScheduleID |
INT (自增) |
排程唯一标识 |
主键,非空 |
|
WorkOrderID |
INT |
工单 ID |
外键(ProductionOrder),非空 |
|
DeptID |
INT |
部门 ID |
外键(ProductionDepartment),非空 |
|
OrderNumbe |
VARCHAR(20) |
销售订单编号 |
外键(SalesOrder),非空 |
|
MaterialCode |
VARCHAR(20) |
物料编码 |
外键(Material),非空 |
|
ProductSpec |
VARCHAR(50) |
品名规格(冗余产品表) |
非空 |
|
OrderQuantity |
INT |
订单数量(关联明细) |
非空 |
|
CompletionDate |
DATE |
完工日期 |
非空 |
|
ProcessRivetingDate |
DATE |
铆工工序日期 |
可空(扩展列) |
|
ProcessShearingDate |
DATE |
剪床工序日期 |
可空(扩展列) |
|
ProcessWeldingDate |
DATE |
补焊工序日期(表格用) |
可空 |
|
InstockQuantity |
INT |
入库数量 |
可空 |
|
MaterialInfo |
VARCHAR(50) |
物料信息(冗余:编码 + 名称) |
可空 |
|
IsClosed |
BOOLEAN |
是否结单 |
默认 FALSE,非空 |
|
Planner |
VARCHAR(20) |
制定人 |
非空 |
|
Auditor |
VARCHAR(20) |
审核人 |
可空 |
|
Approver |
VARCHAR(20) |
批准人 |
可空 |
|
PlanPeriod |
VARCHAR(10) |
计划周期(如周) |
非空 |
3、系统原型展示:根据你的类图,开发系统原型,并录制视频或撰写文档展示说明。(40分)
(1)定义开发视图结构,给出工程目录(定义各个文件的名称及用途),并确定各个类名以类中定义定义的接口。(10分)
SalesProductionSystem/ # 项目根目录
├── README.md # 项目说明文档
├── pom.xml # Maven 构建配置
│
├── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/company/salesprod/ # 后端代码包
│ │ │ ├── controller/ # 控制器层:接收 HTTP 请求
│ │ │ │ ├── SalesOrderController.java # 销售订单相关接口
│ │ │ │ ├── ProductionPlanController.java # 生产计划相关接口
│ │ │ │ ├── MaterialControlController.java # 物料管控相关接口
│ │ │ │ └── ShippingController.java # 销售发货相关接口
│ │ │ │
│ │ │ ├── service/ # 业务逻辑层:实现系统核心功能
│ │ │ │ ├── SalesOrderService.java # 处理销售订单业务逻辑
│ │ │ │ ├── ProductionPlanService.java # 处理生产计划业务逻辑
│ │ │ │ ├── MaterialControlService.java # 处理物料管控业务逻辑
│ │ │ │ └── ShippingService.java # 处理发货业务逻辑
│ │ │ │
│ │ │ ├── model/ # 实体类(域对象),与数据库表一一映射
│ │ │ │ ├── SalesOrder.java # 销售订单实体,接口定义示例:getOrderId(), getCustomer(), ...
│ │ │ │ ├── BOM.java # 产品 BOM 实体,接口:getBomId(), getProductId(), getMaterials()
│ │ │ │ ├── ProductionWorkOrder.java # 生产工单实体,接口:getWorkOrderId(), getOrderId(), getScheduleDate()
│ │ │ │ ├── Material.java # 物料实体,接口:getMaterialId(), getCategory(), getStock()
│ │ │ │ └── Shipment.java # 发货实体,接口:getShipmentId(), getOrderId(), getShipmentDate()
│ │ │ │
│ │ │ ├── dao/ # 数据持久层:MyBatis/JPA 等
│ │ │ │ ├── SalesOrderMapper.java # 对应 SalesOrder 实体的数据库操作接口
│ │ │ │ ├── BOMMapper.java # BOM 数据库操作接口
│ │ │ │ ├── ProductionWorkOrderMapper.java # 生产工单数据库操作接口
│ │ │ │ ├── MaterialMapper.java # 物料数据库操作接口
│ │ │ │ └── ShipmentMapper.java # 发货数据库操作接口
│ │ │ │
│ │ │ └── util/ # 工具类包(如日期工具、常量定义等)
│ │ │
│ │ └── resources/
│ │ ├── application.yml # Spring Boot 配置文件
│ │ ├── mapper/ # MyBatis 的 XML 文件
│ │ ├── static/
│ │ │ ├── css/ # 全局 CSS 样式
│ │ │ │ └── style.css
│ │ │ ├── js/ # 全局 JavaScript
│ │ │ │ └── main.js
│ │ │ └── images/ # 项目公共图片资源
│ │ └── templates/ # Thymeleaf 或 JSP 模板
│ │ └── index.html # 后端渲染主页面示例
│ │
│ └── test/ # 单元测试目录
│ └── java/…
│
└── prototype/ # 系统原型前端页面
├── Index.html # 主页面
├── sales_order.html # 销售订货子系统原型页面
├── sales_review.html # 订单评审页面
├── production_schedule.html # 生产计划排程页面
├── material_management.html # 物料管控原型页面
└── shipping.html # 销售发货原型页面
└──inventory_count.html # 仓库盘点管理模块
└── user_permission.html #用户权限
(2)根据开发视图的文件定义,设计系统纸面原型,要求主页面定义为Index.html,点击主页面可以演示主要业务流程。
页面模型评分标准:
(1) 页面美观:要求页面统一风格模板,页面元素完整。(10分)
(2) 业务流程:通过页面之间跳转操作可以显示业务流程。(20分)

浙公网安备 33010602011771号