===================================================== 任务完成总结报告 ===================================================== 生成日期: 2026-05-22 ----------------------------------------------------- 一、采购合同历史单价查询功能 ----------------------------------------------------- 1. 精工车间 - 采购合同审核 文件: src/views/SeikoWorkshop/ProcurementContractAudit/index.vue 修改内容: - 在操作列新增「历史单价」按钮(el-icon-data-line 图标) - 新增历史单价弹窗,包含两部分: ① 明细表格:序号、采购合同号、采购件、采购日期、单价、供应商 ② 统计表格:当前采购件、图号型号、物料编码、历史采购次数、平均单价、最低单价、最高单价、最近一次采购单价 - 调用存储过程: 采购管理_采购合同历史单价_查询 - 传入参数: 采购合同流水号 2. 采购管理 - 订单查询 文件: src/views/PurchasingManagement/OrderInquiry/index.vue 修改内容: - 在操作列新增「历史单价」按钮 - 新增历史单价弹窗(表格形式,结构同上) 3. 采购管理 - 采购件查询 文件: src/views/PurchasingManagement/PurchasedPartsSearch/index.vue 修改内容: - 在表格末尾新增固定右侧的操作列,包含「历史单价」按钮 - 新增历史单价弹窗(表格形式,结构同上) ----------------------------------------------------- 二、人员管理表单优化 ----------------------------------------------------- 文件: src/views/BasicData/PersonnelManagement/index.vue 修改内容: - 将以下字段的必填验证从 required: true 改为 required: false: - 出生日期 (Birthday) - 身份证号 (IDcard) - 学历 (Education) - 家庭住址 (Address) - 民族 (Nation) ----------------------------------------------------- 三、Git 提交记录 ----------------------------------------------------- Commit 1: 历史单价功能及人员管理优化 - ProcurementContractAudit: 新增历史单价按钮及弹窗 - OrderInquiry: 新增历史单价按钮及弹窗 - PurchasedPartsSearch: 新增历史单价按钮及弹窗 - PersonnelManagement: 取消5个字段的必填验证 Commit 2-3: 同步本地仓库变更 - 清理旧构建包 - 更新配置文件 ----------------------------------------------------- 四、技术实现要点 ----------------------------------------------------- 1. 弹窗设计: - 使用 Element UI 的 el-dialog 组件 - 明细表格支持最大高度滚动 - 单价字段保留两位小数显示 2. 数据统计: - 平均单价: 所有历史单价的平均值 - 最低/最高单价: 使用 Math.min/Math.max - 最近单价: 取最后一条记录的单价 3. 代码复用: - 三个采购相关页面使用相同的弹窗结构和方法逻辑 - 保持代码一致性和可维护性 ----------------------------------------------------- 数据库问答整理汇报总结 ================ 一、用户需求概述 --------------- 1. 根据提供的SQL查询语句(查询采购管理_采购合同明细_全部_查询视图),创建一个存储过程。 2. 该存储过程能够根据传入的“采购合同流水号”,查看同一物料的历史单价。 3. 询问在另一个存储过程(装配管理_三表_查询)中,哪个表是“C表”。 二、解决方案与结果 ----------------- 【问题1】创建查看同一物料历史单价的存储过程 解决方案: 创建了存储过程 dbo.usp_GetMaterialPriceHistoryByContract - 输入参数:@采购合同流水号 VARCHAR(100) - 功能:根据传入的采购合同流水号,自动识别当前物料(通过物料编码、图号或型号、物料流水号), 查询该物料的所有历史采购记录,并按采购日期倒序排列。 - 输出: ① 历史采购明细(包含单价、供应商、采购日期等) ② 历史价格统计(平均单价、最高/最低单价、最近一次采购单价) 附加增强版: 还提供了带供应商筛选功能的存储过程版本,支持可选参数 @供应商筛选。 【问题2】识别“装配管理_三表_查询”存储过程中的C表 分析结果: C表是指以下子查询部分: LEFT JOIN ( SELECT 物料流水号, SUM(实领数) AS 总数量 FROM dbo.车间装配管理_装配执行_临时领料明细 GROUP BY 物料流水号 ) c ON a.物料流水号 = c.物料流水号 - 表别名:c - 数据来源:车间装配管理_装配执行_临时领料明细 - 作用:统计全表(不区分组件流水号)中每个物料流水号的实领数总和 - 输出字段:全表明细数量总和 潜在问题说明: C表仅统计“临时领料明细”一个来源,但主查询a表包含三个数据源(临时领料明细、基本件视图、标准件/外购件视图)。 如果其他两个来源的数据在临时领料明细中没有对应记录,则C表的总数量可能不完整。 建议如需全来源统计,应使用UNION ALL合并三个来源后再计算总和。 三、涉及的主要数据库对象 ----------------------- 1. 视图:采购管理_采购合同明细_全部_查询视图 2. 表:车间装配管理_装配执行_临时领料明细 3. 视图:仓储管理_累计库存查询_视图 4. 视图:PDM_基本件_领料_视图 5. 视图:PDM_标准件和外购件_领料_视图 6. 视图:车间装配管理_领料单明细_视图 7. 表:库存管理_物料主文件_基本 8. 表:库存管理_外购件累计库存 四、关键技术点 ------------- - 使用存储过程封装业务逻辑 - 动态识别当前物料信息(物料编码、图号型号、物料流水号) - 使用 ROW_NUMBER() 进行价格排序 - 使用 LEFT JOIN 关联多个数据源 - 使用 UNION ALL 合并多个查询结果 - 使用子查询进行聚合统计 - 统计历史价格(平均、最高、最低、最近) 五、存储过程代码清单 ------------------- 1. usp_GetMaterialPriceHistoryByContract(基础版) 2. usp_GetMaterialPriceHistoryByContract_WithVendor(供应商筛选增强版) 3. 装配管理_三表_查询(分析对象,非新建) 六、建议与改进 ------------- - 建议在统计全表物料总数时,如果数据源不唯一,应合并所有来源后再汇总。 - 建议在存储过程中添加错误处理机制(如TRY...CATCH)。 - 建议对常用查询字段(如物料编码、采购合同流水号、组件流水号)建立索引以提高性能。 七、总结 ------- 本次问答涵盖了SQL Server存储过程的创建、参数传递、多表关联、子查询、聚合统计等常用技术。 用户需求明确,解决方案能够满足查看历史单价和识别C表的需求,同时提供了优化建议以便后续维护和扩展。 ===================================================== 结束 =====================================================