diff --git "a/\351\234\200\346\261\202\350\257\204\345\256\241\346\226\207\346\241\243" "b/\351\234\200\346\261\202\350\257\204\345\256\241\346\226\207\346\241\243" new file mode 100644 index 0000000000000000000000000000000000000000..15904982b352f0e0e6ee8da2cfa1d3f0d7fa638d --- /dev/null +++ "b/\351\234\200\346\261\202\350\257\204\345\256\241\346\226\207\346\241\243" @@ -0,0 +1,238 @@ +采购订单模块需求评审文档 +一、文档概述 +(一)目的 +1.设计标准化采购订单与合同模板,实现两者数据自动关联填充 +2.建立"订单提交→合同生成→审核确认"的简化流程,提升采购效率 +3.确保采购数据可追溯,满足基础管理需求 +(二)业务流程范围 +覆盖单据模块全业务流程,包括采购订单创建(含设备信息录入、申请单生成)、领导审批(合同生效)、采购单修改(业务变更场景)、旧版本历史存档与查询,不涉及客户订单管理、工厂生产对接等其他模块功能,仅聚焦中间商内部采购单据流转。 + +二、核心业务流程与需求说明 +(一)采购订单创建与生效流程需求 +采购订单创建需求 +基础信息录入:业务员进入 “创建采购订单” 页面,需填写核心信息, + +包括订单基本信息(订单编号、采购用途(如 “客户 A 设备补货”)、预计对接工厂、计划交货周期)、 +设备明细(设备名称、型号、规格、采购数量、单价、厂家指导价、小计金额) + +其中订单编号由系统自动生成,规则为 “PO + 年份(4 位)+ 月份(2 位)+ 日期(2 位)+ 业务员编号(3 位)+ 流水号(3 位)”(如 PO20250915001001)。 + +申请单生成:业务员完成信息录入并确认无误后,点击 “生成申请单” 按钮 +系统自动将采购订单数据转换为标准申请单格式(含抬头 “采购申请单”、申请部门、申请人、申请日期、设备清单表格、总金额、审批意见栏),支持在线预览申请单样式,且预览内容与最终打印版本一致。 + +附件上传:申请单生成后,业务员需上传辅助证明材料,包括设备报价单(工厂提供,PDF 格式)、客户需求确认函(若采购源于客户需求,Word/PDF 格式),单个文件大小不超过 20MB,支持批量上传(最多 3 个文件),上传后可预览、下载、删除。 + +领导签字盖章与合同生效需求 +审批流转触发:业务员点击 “提交审批” 按钮,系统根据采购订单总金额确定 + +审批层级: +总金额≤5 万元时,仅需部门经理审批; +5 万元<总金额≤20 万元时,需部门经理→采购总监审批; +总金额>20 万元时,需部门经理→采购总监→总经理审批 + +审批过程:审批人进入 “待审批订单” 页面,查看采购订单详情、申请单及附件后,若同意审批;若拒绝审批,需填写拒绝原因(必填,至少 20 字符),系统自动记录审批意见与操作时间。 + +合同生效触发:当所有审批节点完成后,系统自动将采购订单状态更新为 “合同生效”,生成带唯一合同编号的电子合同(合同编号规则为 “CON + 订单编号后 10 位”),同步推送 “合同生效” 消息给业务员,并支持业务员下载电子合同(PDF 格式,含签字盖章水印),用于后续与工厂对接。 + + +(二)采购单修改与历史存档流程需求 +修改单创建需求 +修改触发条件:仅允许对 “合同生效” 状态的采购单发起修改,且需满足以下 + +场景之一: +客户需求变更(需上传客户变更函附件)、工厂供货规格调整(需上传工厂变更说明附件)、价格协商变动(需上传新报价单附件),业务员在订单详情页点击 “发起修改” 按钮时,需选择修改场景并上传对应附件,否则无法进入修改页面。 + +修改内容限制:修改单继承原采购单所有信息,支持修改的字段包括设备明细(新增 / 删除设备、调整数量 / 单价)、预计对接工厂、计划交货周期, +不允许修改订单编号、采购用途、已生效的审批记录;修改后系统自动计算新总金额,若新总金额与原总金额差异超过 10%,需在修改说明中额外备注差异原因(必填)。 + +修改申请单生成:业务员完成修改后,点击 “生成修改申请单”,系统自动对比原订单与修改后内容,生成 “修改对比表”(标注新增 / 删除 / 变更项,用不同颜色区分:新增绿色、删除红色、变更黄色),并将对比表作为附件整合进新的修改申请单,申请单标题格式为 “采购单【原订单编号】修改申请单”。 + +修改审批与生效需求 +修改审批层级:修改单的审批层级根据 “新总金额与原总金额的差异比例” 确定:差异≤5% 时,仅需部门经理审批;5%<差异≤15% 时,需部门经理→采购总监审批;差异>15% 时,需部门经理→采购总监→总经理审批,且审批人需查看 “修改对比表”,确认修改合理性。 + +修改生效规则:所有审批节点完成后,系统自动生成 “修改生效确认单”,将原采购单状态更新为 “已修改(旧版本)”,新修改后的采购单作为新版本,状态更新为 “合同生效(新版本)”,同时生成新的合同编号(规则为 “CON + 原合同编号后 8 位 + V2”,若多次修改则依次递增版本号,如 V3、V4)。 + +历史单据存档与查询需求 +自动存档机制:当修改单审批生效后,系统自动将原采购单(旧版本)的所有数据(基本信息、设备明细、审批记录、电子合同、附件)完整存入 “历史单据表”,并记录存档时间、存档原因(如 “因客户需求变更修改,旧版本存档”)、对应的新版本订单编号,确保旧版本数据不可篡改。 + +多维度查询功能:业务员、审批领导可在 “历史单据查询” 页面,通过以下条件筛选查询:原订单编号、修改时间范围(存档时间)、修改场景(客户需求变更 / 工厂调整 / 价格变动)、总金额区间,查询结果展示订单编号、存档时间、修改场景、新版本编号、操作人,点击某条记录可查看旧版本完整详情(含审批记录、电子合同、附件下载)。 + + + +三、数据库表设计(MySQL) +(一)采购订单主表(purchase_order_main) +字段名 类型 说明 +id bigint 订单唯一标识,无业务含义 +order_no varchar(50) 采购订单编号,系统自动生成 +purchase_purpose varchar(200) 采购用途,描述采购原因 +planned_factory varchar(100) 预计对接工厂名称 +planned_delivery_cycle varchar(50) 计划交货周期 +total_amount decimal(12,2) 订单总金额,汇总所有设备明细小计 +order_status varchar(30) 订单状态 +contract_no varchar(50) 电子合同编号,未生效时为null +creator varchar(50) 业务员账号,记录订单创建人 +create_time datetime 订单创建时间 +last_modifier varchar(50) 最后修改人账号 +last_modify_time datetime 最后修改时间 +remark text 订单备注 + +(二)采购订单设备明细表(purchase_order_item) +字段名 类型 说明 +id bigint 明细唯一标识 +order_id bigint 关联采购订单主表id +device_name varchar(100) 设备名称 +device_model varchar(100) 设备型号 +device_spec varchar(200) 设备规格 +purchase_quantity int 采购数量,最小值为1 +unit_price decimal(10,2) 单价,保留2位小数 +factory_guide_price decimal(10,2) 厂家指导价,参考价格 +subtotal_amount decimal(12,2) 明细小计金额 +item_remark varchar(200) 明细备注 + +(三)采购订单审批表(purchase_order_approval) +字段名 类型 说明 +id bigint 审批记录唯一标识 +order_id bigint 关联采购订单主表id +approval_node varchar(50) 审批节点 +approver varchar(50) 审批人账号 +approval_result varchar(20) 审批结果 +approval_opinion text 审批意见 +signature_url varchar(255) 电子签字图片URL +transferor varchar(50) 转交人账号 +transfer_time datetime 转交时间 + +(四)采购订单附件表(purchase_order_attachment) +字段名 类型 说明 +id bigint 附件唯一标识 +order_id bigint 关联采购订单主表id +attachment_type varchar(50) 附件类型 +attachment_name varchar(255) 附件原始文件名 +attachment_url varchar(512) 附件存储URL +file_size bigint 文件大小,单位为字节 +file_format varchar(20) 文件格式 +uploader varchar(50) 上传人账号 +upload_time datetime 上传时间 + +(五)采购订单修改记录表(purchase_order_modify_record) +字段名 类型 说明 +id bigint 修改记录唯一标识 +old_order_id bigint 旧版本订单ID +new_order_id bigint 新版本订单ID +modify_scenario varchar(50) 修改场景 +old_total_amount decimal(12,2) 旧版本订单总金额 +new_total_amount decimal(12,2) 新版本订单总金额 +amount_diff_ratio decimal(5,2) 金额差异比例 +diff_reason text 差异原因 +comparison_table_url varchar(512) 修改对比表URL +modifier varchar(50) 修改人账号 +modify_approval_time datetime 修改审批生效时间 +archive_time datetime 旧版本存档时间 +``` + +四、前端界面功能需求 +(一)采购订单创建页 +基础信息填写区 +布局:采用两列表单布局,左侧为字段标签,右侧为输入控件,必填字段标注红色 “*”。 +字段控件: +采购用途:多行文本输入框,最多输入 200 字符,支持换行,实时显示剩余字符数。 +预计对接工厂:下拉选择框,选项从 “工厂信息表” 加载(含工厂名称、简称),支持模糊搜索(输入关键词匹配工厂名称)。 + +计划交货周期:下拉选择框,预设选项为 “15 天内”“30 天内”“45 天内”“60 天内”“其他”,选择 “其他” 时需手动输入具体周期(如 “90 天内”)。 +创建人、创建时间 + +设备明细编辑区 +表格布局:包含 “设备名称()”“型号()”“规格()”“采购数量()”“单价(*)”“厂家指导价”“小计”“操作” 列,表格顶部有 “新增行” 按钮,每行末尾有 “删除” 按钮(至少保留 1 行,删除最后一行时按钮置灰)。 + +计算逻辑:输入采购数量和单价后,系统实时计算小计金额并填充至 “小计” 列,同时自动汇总所有行小计金额,更新页面顶部 “订单总金额” 显示(格式为 “¥XXX,XXX.XX”)。 +数据校验:采购数量输入时限制为正整数(最小值 1),单价输入时限制为正数且保留 2 位小数,输入不符合规则时实时提示错误(如 “数量需为大于 0 的整数”)。 + +附件上传与申请单生成区 +附件上传:按附件类型分类上传,每个类型对应一个上传区域(如 “工厂报价单” 上传区、“客户确认函” 上传区),显示 “点击上传” 或拖拽上传图标,上传后展示文件名称、大小、格式,提供 “预览”“删除” 按钮(删除需二次确认)。 +申请单操作:页面底部左侧有 “生成申请单” 按钮,点击后校验所有必填字段(基础信息、至少 1 行设备明细、必填附件),校验通过后弹出申请单预览弹窗(PDF 格式),预览弹窗包含 “下载申请单”“返回编辑”“提交审批” 按钮;校验失败时,在未完成字段旁显示红色错误提示。 + + +(二)审批页 +订单信息查看区 +分栏展示:左侧展示采购订单基础信息(订单编号、采购用途、总金额等)和设备明细表格,右侧展示附件列表(按类型分组,点击附件名称可在线预览),支持左右分栏宽度拖拽调整。 +状态标识:页面顶部显示订单当前审批节点(如 “当前审批:部门经理”),用进度条展示审批流程进度(已完成节点绿色,当前节点蓝色,未完成节点灰色)。 + +审批操作区 +审批结果选择:radio 单选框 “通过”“拒绝”,默认未选中,选中后显示对应操作控件(选中 “通过”,选中 “拒绝” 显示意见输入框)。 + +意见与提交:审批意见输入框(拒绝时必填,至少 20 字符,通过时可选),页面底部 “提交审批” 按钮,点击后校验(通过时只需点击选择,拒绝时需填写意见),校验通过后提交审批,跳转回审批列表页并提示 “审批提交成功”。 + +(三)修改单创建页 +旧订单信息展示区 +只读展示:顶部展示旧版本订单核心信息(订单编号、状态 “已修改 - 旧版本”、原总金额),下方用标签页区分 “旧订单明细”“旧审批记录”“旧附件”,所有信息只读,不可编辑,设备明细表格标注 “旧版本” 字样。 + +修改编辑区 +差异编辑:继承旧订单设备明细,支持在旧明细基础上 “新增行”“删除行”“修改字段”,修改过的字段用黄色背景标注,删除的行用红色删除线标注,新增的行用绿色背景标注。 +差异计算:实时计算新总金额与旧总金额的差异,在页面顶部显示 “金额差异:¥XXX.XX(差异比例:XX.XX%)”,差异比例超过 10% 时,自动显示 “差异原因” 输入框(必填,最多 500 字符) +修改场景与附件:页面中部有 “修改场景” 下拉选择框(必选),选择后显示对应必填附件上传区(如选择 “客户需求变更”,显示 “客户变更函” 上传区),附件上传逻辑与创建页一致。 + +修改申请单生成区 +对比表生成:点击 “生成修改申请单” 按钮,系统自动生成 “新旧订单对比表”(含基础信息对比、设备明细对比,标注变更类型),并与修改申请单整合为一个 PDF 文件,弹出预览弹窗。 +提交逻辑:预览弹窗提供 “提交修改审批” 按钮,点击后校验(修改场景已选、必填附件已上传、差异原因已填(若需)),校验通过后提交修改审批,跳转回订单列表页并提示 “修改申请已提交,待审批”。 + +(四)历史单据查询页 +筛选条件区 +多条件筛选:包含 “原订单编号” 输入框(模糊查询)、“修改时间范围” 日期选择器(默认近 3 个月)、“修改场景” 下拉选择框(“全部”“客户需求变更” 等)、“总金额区间” 输入框(起始金额、结束金额,支持单填一项),筛选条件支持组合使用,点击 “重置” 按钮可清空所有条件。 + +查询结果区 +列表展示:结果列表包含 “原订单编号”“存档时间”“修改场景”“旧版本总金额”“新版本编号”“新版本总金额”“操作人” 列,支持点击列标题排序(升序 / 降序),分页显示(默认 10 条 / 页,可选择 20 条 / 50 条)。 +详情查看:每行 “操作” 列有 “查看详情” 按钮,点击后弹出旧版本订单详情弹窗,弹窗分标签页展示旧版本基础信息、设备明细、审批记录、附件(支持下载)、修改对比表(查看新旧差异),弹窗底部有 “关闭” 按钮。 + + +五、验收标准 +(一)功能验收 +订单创建与生效 +必填字段校验:未填写采购用途、未选择工厂、无设备明细、未上传必填附件时,点击 “生成申请单” 需准确提示错误,无法进入预览环节,错误提示位置精准(对应字段旁)。 +审批流转:提交审批后,系统需在 5 分钟内发送待办提醒(企业微信 / 邮件),审批层级判断正确(如总金额 6 万元,需部门经理→采购总监审批),无跳级或漏级情况。 +合同生效:所有节点审批通过(需盖章节点已盖章)后,10 秒内生成合同编号并更新订单状态为 “合同生效”,推送消息给业务员,下载的电子合同需包含完整订单信息,无内容缺失。 + +修改单与存档 +修改触发:仅 “合同生效” 状态订单可发起修改,非该状态点击 “发起修改” 按钮需提示 “仅生效订单可修改”;未选择修改场景或未上传对应附件时,无法进入修改编辑页,提示 “请选择修改场景并上传附件”。 + +审批与生效:修改审批层级判断正确(如金额差异 8%,需部门经理→采购总监审批),审批通过后,旧订单状态更新为 “已修改 - 旧版本”,新版本状态为 “合同生效”,修改对比表可正常查看,无数据错误。 + +存档与查询:旧版本自动存档,存档时间与修改审批生效时间一致;查询时,输入筛选条件(如原订单编号、修改场景),10 秒内返回准确结果,点击详情可查看旧版本完整数据(含附件下载正常),无数据丢失。 + + +(二)数据验收 +数据一致性 +主从表关联:采购订单主表与明细表通过 order_id 关联,无明细表 order_id 不存在于主表的情况;修改记录表 old_order_id、new_order_id 均能在主表找到对应订单,无无效关联。 +金额计算:明细表小计金额 = 数量 × 单价,主表总金额 = 明细表小计汇总,修改记录表金额差异比例计算准确(误差≤0.01%),无计算错误。 +数据完整性 +必填字段:所有表非空字段(如 order_no、total_amount、approval_node)无 null 值;附件表 attachment_url、修改记录表 comparison_table_url 无空值,且对应文件可正常访问。 +历史数据:旧版本订单存档后,其主表、明细表、审批表、附件表数据均完整保留,无字段缺失或内容篡改(如审批记录签字 URL 不可修改)。 + +(三)性能验收 +页面响应 +加载速度:创建页、审批页、查询页初始加载时间≤2 秒;设备明细新增 / 修改时,小计与总金额计算实时响应(延迟≤500ms);附件上传(10MB 文件)≤10 秒,无卡顿。 +查询性能:历史单据查询(数据量≤1000 条)响应时间≤3 秒;按订单编号精准查询时,响应时间≤1 秒,无超时情况。 +并发处理 +多用户操作:支持 10 名业务员同时创建订单、5 名审批人同时审批,系统运行稳定,无数据冲突(如同一订单被重复审批)、死锁或崩溃情况。 +数据同步:修改单审批生效后,旧订单状态更新、新版本生成、存档记录创建的同步延迟≤1 秒,无数据同步滞后导致的查询异常。 + + +六、风险与应对措施 +风险类型 风险描述 应对措施 +业务风险 审批人未及时处理审批(如超过 24 小时),导致订单延误对接工厂 +1.系统设置审批超时提醒,提交审批后 24 小时未处理,自动发送催办消息(企业微信 + 邮件)给审批人,同时通知业务员; +2. 提供审批任务转交功能,审批人可在待办列表将任务转交同层级其他审批人,转交后系统记录转交日志并通知接收人 + + + +技术风险 +1. 定期(每天凌晨)备份图片文件,若某一存储位置文件损坏,可从备份位置恢复; +2. 图片存储时生成唯一哈希值,校验文件完整性,损坏时自动触发恢复机制 + +数据风险 修改单审批生效后,旧版本数据未正确存档,导致历史查询缺失 +1.采用事务机制,修改单审批通过时,“旧版本状态更新→数据存档→新版本生成” 在同一事务中执行,要么全部成功,要么全部回滚; +2.存档完成后生成存档校验日志,记录旧订单 ID、存档数据量,运维人员可定期核对日志与实际存档数据; +3. 若存档失败,系统自动发送告警消息给运维团队,同时阻止新版本订单后续操作,直至存档修复 + +操作风险 业务员误删设备明细或上传错误附件,导致订单信息错误 +1.设备明细删除时增加二次确认弹窗(提示 “删除后不可恢复,是否确认?”),且保留删除记录(在操作日志中可查); +2.附件上传后,若后续修改订单,原附件默认保留,新增附件需标注 “新增”,避免误删原附件; +3. 提供订单操作日志查询功能,业务员可查看所有修改、删除、上传操作记录,便于追溯错误来源 \ No newline at end of file