=====================================================
           任务完成总结报告
=====================================================
生成日期: 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表的需求，同时提供了优化建议以便后续维护和扩展。

=====================================================
                    结束
=====================================================