# 零件改制功能设计方案 ## 0. 需求背景 ### 0.1 需求提出 本需求由罗总牵头,组织技术中心、精工车间、仓储等相关部门讨论后提出。 ### 0.2 提出原因 当前现场存在零件改制业务,但改制过程尚未完整纳入系统管理。由于现场计件、派工生产、完工入库和后续统计都需要明确的数据来源,原有线下记录或零散流转方式无法满足计件核算、过程追溯和部门协同要求。 因此,需要在系统内补充零件改制订单流程,将改制订单从技术中心发起、精工车间派工生产到完工入库的全过程纳入系统管理。 ### 0.3 应用场景 本功能主要应用于以下场景: - 技术中心根据现场或订单需求发起零件改制订单。 - 精工车间根据改制订单制定工艺、派工生产。 - 改制订单涉及非毛坯物料时,由系统生成领料单并交由仓库出库。 - 改制加工完成后,按现有流程办理入库。 - 现场计件、生产统计、入库记录和后续追溯均以系统内改制订单数据为依据。 ## 1. 需求目标 基于项目现有精工车间生产流程,新增“零件改制”业务。 本次方案调整为: - 在技术中心新增组件发起改制订单。 - 改制订单生成后进入现有精工车间生产任务流程。 - 精工车间生产任务查询组件可以查看改制订单。 - 车间派工组件可以查看改制订单并继续派工。 - 新增改制记录查询,用于查看改制订单的发起、生产、派工、领料和完工状态。 - 领料时根据改制订单和物料来源判断是否生成领料单。 核心原则: - 技术中心负责发起改制订单。 - 精工车间复用现有生产任务、工艺、派工、加工流程。 - 仓储只在需要额外领用非毛坯物料时介入。 - 改制记录独立查询,但状态关联现有生产任务状态。 ## 2. 现有流程承接关系 根据项目现有页面,改制订单应承接以下流程: | 流程节点 | 现有承接页面 | 说明 | | ---- | ---------- | --------------- | | 技术发起 | 技术中心新增页面 | 发起改制订单,填写改制要求 | | 生成任务 | 精工车间生产任务查询 | 改制订单进入生产任务列表 | | 制定工艺 | 精工车间制定工艺 | 可复用或复制原工艺后调整 | | 车间派工 | 精工车间车间派工 | 工艺完成后派工 | | 领料判断 | 领料/仓储出库流程 | 根据物料类型决定是否生成领料单 | | 加工执行 | 精工车间现有加工流程 | 扫码、报工、质检等复用现有逻辑 | | 入库 | 仓储入库流程 | 改制完工后按现有流程办理入库 | | 记录查询 | 改制记录查询 | 查看改制全流程 | ![零件改制业务流程图](零件改制流程图.svg) ## 3. 页面设计 ### 3.1 技术中心新增页面:改制订单发起 建议路径: ```text src/views/TechnologyCenter/PartModificationOrder/index.vue ``` 页面名称: ```text 改制订单发起 ``` 归属模块: ```text 技术中心 ``` 主要功能: - 查询需要改制的原订单、原零件或原自制件。 - 发起改制订单。 - 填写改制后零件信息、改制数量、改制原因、技术要求。 - 指定是否使用原件改制、毛坯改制或其他物料改制。 - 提交后生成改制订单,并进入精工车间生产任务查询。 ### 3.2 精工车间修改页面:生产任务查询 现有路径: ```text src/views/SeikoWorkshop/ProductionTaskQuery/index.vue ``` 需要支持: - 查询改制订单生成的生产任务。 - 增加任务类型筛选。 - 增加任务类型列。 - 改制任务显示 `改制` 标识。 - 改制任务继续使用现有 `工艺`、`派工` 按钮。 ### 3.3 精工车间修改页面:车间派工 现有路径: ```text src/views/SeikoWorkshop/WorkshopAssignment/index.vue ``` 需要支持: - 查询改制订单对应的待派工任务。 - 增加任务类型筛选。 - 增加任务类型列。 - 复用现有已派工查询、待派工工序查询、派工、取消派工逻辑。 ### 3.4 新增页面:改制记录查询 建议路径: ```text src/views/TechnologyCenter/PartModificationRecord/index.vue ``` 也可以放在精工车间模块,建议最终按业务归属确认。 页面名称: ```text 改制记录查询 ``` 主要功能: - 查询改制订单记录。 - 查看改制订单状态。 - 查看是否生成领料单。 - 查看仓库是否已出库。 - 查看精工生产任务、工艺、派工、完工状态。 - 支持跳转生产任务查询、车间派工、零件追溯。 ## 4. 改制订单类型 改制订单需要明确物料来源,建议增加字段: ```text 改制来源类型 ``` 建议枚举: | 改制来源类型 | 说明 | 是否生成领料单 | | ------- | ----------------- | ------- | | 原现自制订单 | 使用原现有自制订单零件进行改制 | 否 | | 毛坯改制 | 直接使用已有毛坯进行改制 | 否 | | 非毛坯物料改制 | 使用仓库其他物料、半成品或成品改制 | 是 | 说明: - “原现自制订单”指当前已经存在的自制订单或自制零件,改制时不需要额外从仓库领料。 - “毛坯改制”指直接使用毛坯进行改制,不额外生成领料单。 - “非毛坯物料改制”指改制需要领用库存中的非毛坯物料,需要生成领料单并由仓库出库。 ## 5. 领料规则 ### 5.1 领料判断条件 领料时增加判断: ```text 如果是改制订单,并且使用的物料不是毛坯,则生成领料单,由仓库物料出库。 如果是原现自制订单改制,或者直接使用毛坯改制,则不生成领料单。 ``` 规则可表达为: ```text 是否生成领料单 = 是否改制订单 === 1 且 改制来源类型 === 非毛坯物料改制 且 是否毛坯 !== 1 ``` ### 5.2 生成领料单场景 以下场景需要生成领料单: - 改制订单使用库存半成品。 - 改制订单使用库存成品。 - 改制订单使用其他非毛坯物料。 - 改制订单指定的物料需要仓库出库。 生成后流程: 1. 技术中心发起改制订单。 2. 系统判断需要领料。 3. 生成领料单。 4. 仓库根据领料单出库。 5. 出库完成后,精工车间继续生产、工艺、派工。 ### 5.3 不生成领料单场景 以下场景不生成领料单: - 原现自制订单改制。 - 直接使用毛坯改制。 - 改制对象已经在精工车间现场,不需要仓库出库。 不生成领料单时: - 改制订单直接进入精工生产任务。 - 生产任务查询可查看。 - 车间派工可查看并派工。 ### 5.4 领料状态字段 建议改制订单增加以下字段: | 字段名 | 说明 | | -------- | --------------- | | 是否需要领料 | 1 是,0 否 | | 是否已生成领料单 | 1 是,0 否 | | 领料单号 | 生成的领料单编号 | | 领料状态 | 未生成、待出库、已出库、已取消 | | 出库日期 | 仓库出库日期 | | 出库人 | 仓库操作人 | ## 6. 业务流程 ### 6.1 技术中心发起改制订单 用户进入技术中心“改制订单发起”页面。 查询原始数据: - 订单编号 - 产品/部件名称 - 零件名称 - 图号 - 原自制订单 - 库存物料 - 毛坯物料 发起改制时填写: - 改制订单号 - 原订单编号 - 原零件名称 - 原零件图号 - 改制零件名称 - 改制零件图号 - 改制数量 - 改制来源类型 - 是否毛坯 - 物料编号 - 物料名称 - 改制原因 - 改制要求 - 技术备注 - 精工期限 提交时校验: - 改制数量必须大于 0。 - 改制来源类型不能为空。 - 改制原因不能为空。 - 改制要求不能为空。 - 精工期限不能为空。 - 如果来源类型为非毛坯物料改制,必须选择物料编号。 ### 6.2 后端生成改制订单 提交后,后端需要同时处理: - 写入改制订单主记录。 - 根据改制来源类型判断是否生成领料单。 - 生成精工车间生产任务。 - 写入任务类型为 `改制`。 - 关联改制订单号和新工艺计划流水号。 ### 6.3 进入精工车间生产任务查询 改制订单生成后,应能在现有接口中查到: ```text 精工车间_生成任务_查询数据 ``` 建议返回字段增加: - 任务类型 - 是否改制 - 改制订单号 - 改制来源类型 - 是否需要领料 - 领料状态 - 改制原因 - 改制要求 生产任务查询页面显示: - `任务类型 = 改制` - 若 `是否需要领料 = 1` 且 `领料状态 !== 已出库`,可显示领料状态提示。 是否允许工艺/派工,需要按业务决定: - 如果非毛坯物料改制必须先出库,建议未出库前允许制定工艺,但不允许派工。 - 如果现场允许先派工后补出库,则只做提示,不阻断派工。 建议采用更稳妥规则: ```text 需要领料且未出库:允许制定工艺,不允许派工。 不需要领料:正常工艺、派工。 需要领料且已出库:正常工艺、派工。 ``` ### 6.4 制定工艺 改制订单在生产任务查询中点击 `工艺`,进入现有: ```text /SeikoWorkshop/DevelopProcess ``` 工艺规则: - 改制订单必须生成新的工艺计划流水号。 - 不覆盖原自制订单或原零件工艺。 - 可支持从原工艺复制后调整。 - 工艺保存后,任务状态进入 `工艺完成`。 ### 6.5 车间派工 工艺完成后进入现有车间派工页面: ```text src/views/SeikoWorkshop/WorkshopAssignment/index.vue ``` 现有查询接口: ```text 精工车间_车间派工_查询 ``` 改制订单派工前判断: - 不需要领料:允许派工。 - 需要领料且已出库:允许派工。 - 需要领料但未出库:禁止派工,并提示“改制订单物料未出库,不能派工”。 派工明细继续复用现有接口: ```text 车间生产管理工艺_零件工序_已派工查询 车间生产管理工艺_零件工序_派工_工序查询 车间生产管理工艺_零件工序_派工 车间生产管理工艺_零件工序_取消派工 ``` ### 6.6 仓库出库 当改制订单需要领料时,系统生成领料单。 仓库根据领料单完成出库后,需要回写: - 领料状态 = 已出库 - 出库日期 - 出库人 - 出库数量 出库完成后,精工车间派工限制解除。 ### 6.7 加工和完工 改制订单派工后,继续走现有精工车间加工流程: - 工序派工 - 扫码加工 - 完工报工 - 质检 - 零件追溯 - 工时统计 完工后改制记录状态同步为: ```text 已完成 ``` ## 7. 数据字段设计 ### 7.1 改制订单主记录字段 | 字段名 | 说明 | | -------- | ------------------- | | 改制订单号 | 改制业务编号 | | 原订单编号 | 原订单编号 | | 原订单流水号 | 原订单流水号 | | 原组件流水号 | 原组件流水号 | | 原基本件流水号 | 原零件流水号 | | 原工艺计划流水号 | 原工艺计划流水号 | | 原零件名称 | 改制前零件名称 | | 原零件图号 | 改制前零件图号 | | 原数量 | 原数量 | | 改制零件名称 | 改制后零件名称 | | 改制零件图号 | 改制后零件图号 | | 改制数量 | 改制数量 | | 改制来源类型 | 原现自制订单、毛坯改制、非毛坯物料改制 | | 是否毛坯 | 1 是,0 否 | | 物料编号 | 使用物料编号 | | 物料名称 | 使用物料名称 | | 物料流水号 | 使用物料流水号 | | 是否需要领料 | 1 是,0 否 | | 是否已生成领料单 | 1 是,0 否 | | 领料单号 | 领料单编号 | | 领料状态 | 未生成、待出库、已出库、已取消 | | 改制原因 | 改制原因 | | 改制要求 | 改制要求 | | 技术备注 | 技术备注 | | 精工期限 | 精工完工期限 | | 新基本件流水号 | 改制任务生成的新零件流水号 | | 新工艺计划流水号 | 改制任务生成的新工艺计划流水号 | | 发起人 | 当前用户 ID | | 发起日期 | 发起时间 | | 状态 | 改制订单状态 | | 是否启用 | 逻辑删除标识 | ### 7.2 改制订单状态 | 状态 | 说明 | | ---- | ---------------- | | 待领料 | 需要领料,领料单未出库 | | 待工艺 | 不需要领料或已出库,等待制定工艺 | | 工艺完成 | 工艺已保存,等待派工 | | 待派工 | 工艺完成且满足派工条件 | | 加工中 | 已派工或已开始加工 | | 已完成 | 改制任务完工 | | 已取消 | 改制订单取消 | 说明: - 如果不需要领料,提交后可直接进入 `待工艺`。 - 如果需要领料,提交后进入 `待领料`。 - 仓库出库后从 `待领料` 转为 `待工艺` 或保持生产任务状态,由查询时关联显示。 ## 8. API 设计 项目请求继续使用: ```js this.CreateData(type, name, param, pageSize, pageCurrent) this.ExecDatabase(Data) ``` ### 8.1 技术中心查询可改制对象 ```js var Data = this.CreateData('11', '技术中心_改制订单_可改制对象_查询', param, this.pageSize, this.pageCurrent) ``` ### 8.2 技术中心发起改制订单 ```js var Data = this.CreateData('12', '技术中心_改制订单_发起改制', param) ``` 参数建议: | 参数名 | 说明 | | -------- | ------------------- | | 原订单流水号 | 原订单流水号 | | 原组件流水号 | 原组件流水号 | | 原基本件流水号 | 原基本件流水号 | | 原工艺计划流水号 | 原工艺计划流水号 | | 原订单编号 | 原订单编号 | | 原零件名称 | 原零件名称 | | 原零件图号 | 原零件图号 | | 改制零件名称 | 改制零件名称 | | 改制零件图号 | 改制零件图号 | | 改制数量 | 改制数量 | | 改制来源类型 | 原现自制订单、毛坯改制、非毛坯物料改制 | | 是否毛坯 | 是否毛坯 | | 物料流水号 | 使用物料流水号 | | 物料编号 | 物料编号 | | 物料名称 | 物料名称 | | 改制原因 | 改制原因 | | 改制要求 | 改制要求 | | 技术备注 | 技术备注 | | 精工期限 | 精工期限 | | 发起人 | 当前用户 ID | 后端处理结果: - 生成改制订单。 - 判断是否生成领料单。 - 生成精工生产任务。 - 返回 `result`、`改制订单号`、`领料单号`、`是否需要领料`。 ### 8.3 改制记录查询 ```js var Data = this.CreateData('11', '技术中心_改制订单_记录_查询', param, this.pageSize, this.pageCurrent) ``` ### 8.4 改制订单详情 ```js var Data = this.CreateData('11', '技术中心_改制订单_详情_查询', param) ``` ### 8.5 取消改制订单 ```js var Data = this.CreateData('12', '技术中心_改制订单_取消', param) ``` 取消前后端需要校验: - 未派工可以取消。 - 已派工未加工,需要先取消派工。 - 已加工、已有质检记录或已完成,不允许取消。 - 已生成领料单且已出库,不允许直接取消,需要走退料或异常处理。 ## 9. 现有接口扩展 ### 9.1 生产任务查询接口 现有接口: ```text 精工车间_生成任务_查询数据 ``` 新增查询参数: | 参数名 | 说明 | | ----------- | ------------- | | 任务类型\_check | 是否按任务类型过滤 | | 任务类型 | 全部、正常、改制、报废补投 | | 领料状态\_check | 是否按领料状态过滤 | | 领料状态 | 待出库、已出库、不需要领料 | 新增返回字段: | 字段名 | 说明 | | ------ | ------------------- | | 任务类型 | 正常、改制、报废补投 | | 是否改制 | 1 是,0 否 | | 改制订单号 | 改制订单编号 | | 改制来源类型 | 原现自制订单、毛坯改制、非毛坯物料改制 | | 是否需要领料 | 1 是,0 否 | | 领料状态 | 未生成、待出库、已出库、已取消 | | 领料单号 | 领料单号 | | 改制原因 | 改制原因 | | 改制要求 | 改制要求 | ### 9.2 车间派工查询接口 现有接口: ```text 精工车间_车间派工_查询 ``` 新增查询参数: | 参数名 | 说明 | | ----------- | ------------- | | 任务类型\_check | 是否按任务类型过滤 | | 任务类型 | 全部、正常、改制、报废补投 | 新增返回字段: | 字段名 | 说明 | | ------ | ---------- | | 任务类型 | 正常、改制、报废补投 | | 是否改制 | 1 是,0 否 | | 改制订单号 | 改制订单编号 | | 改制来源类型 | 改制来源类型 | | 是否需要领料 | 1 是,0 否 | | 领料状态 | 领料状态 | | 领料单号 | 领料单号 | 派工前端限制: ```text 如果 是否改制 = 1 且 是否需要领料 = 1 且 领料状态 != 已出库,则不允许派工。 ``` ## 10. 前端交互调整 ### 10.1 技术中心改制订单发起页面 查询条件: - 订单编号 - 零件名称 - 图号 - 物料编号 - 物料名称 - 改制来源类型 表格列: - 订单编号 - 产品/部件名称 - 零件名称 - 零件图号 - 数量 - 当前状态 - 来源类型 - 物料编号 - 物料名称 - 操作 操作: - 发起改制 - 图纸 - PLM传入工艺 - 追溯 发起改制弹窗: - 原订单编号 - 原零件名称 - 原零件图号 - 改制零件名称 - 改制零件图号 - 改制数量 - 改制来源类型 - 是否毛坯 - 物料编号 - 物料名称 - 改制原因 - 改制要求 - 技术备注 - 精工期限 ### 10.2 生产任务查询页面 新增筛选: ```text 任务类型:全部 / 正常 / 改制 / 报废补投 领料状态:全部 / 不需要领料 / 待出库 / 已出库 ``` 新增列: - 任务类型 - 改制订单号 - 改制来源类型 - 领料状态 显示建议: ```html 改制 待出库 已出库 不需要领料 ``` ### 10.3 车间派工页面 新增筛选: ```text 任务类型:全部 / 正常 / 改制 / 报废补投 ``` 新增列: - 任务类型 - 改制订单号 - 领料状态 派工按钮或派工操作前增加判断: ```js if (Number(row.是否改制) === 1 && Number(row.是否需要领料) === 1 && row.领料状态 !== '已出库') { this.$message.warning('改制订单物料未出库,不能派工') return } ``` ### 10.4 改制记录查询页面 查询条件: - 改制订单号 - 原订单编号 - 零件名称或图号 - 改制来源类型 - 领料状态 - 改制状态 - 发起日期 - 发起人 表格列: - 改制订单号 - 状态 - 原订单编号 - 原零件名称 - 原零件图号 - 改制零件名称 - 改制零件图号 - 改制数量 - 改制来源类型 - 是否需要领料 - 领料单号 - 领料状态 - 改制原因 - 发起人 - 发起日期 - 精工期限 - 完成日期 - 操作 操作: - 详情 - 生产任务 - 派工 - 追溯 - 取消 ## 11. 菜单配置 建议后端菜单配置: ```text 技术中心 改制订单发起 改制记录查询 ``` 组件路径: ```text TechnologyCenter/PartModificationOrder/index TechnologyCenter/PartModificationRecord/index ``` 精工车间不新增发起入口,只扩展现有页面: ```text SeikoWorkshop/ProductionTaskQuery/index SeikoWorkshop/WorkshopAssignment/index ``` ## 12. 实施顺序 建议按以下顺序实施: 1. 后端新增改制订单主记录表。 2. 后端新增技术中心发起改制订单接口。 3. 后端在发起接口中加入领料判断规则。 4. 后端按规则生成或不生成领料单。 5. 后端生成标准精工生产任务,并标记 `任务类型 = 改制`。 6. 扩展生产任务查询接口,返回改制和领料字段。 7. 扩展车间派工查询接口,返回改制和领料字段。 8. 前端新增技术中心改制订单发起页面。 9. 前端新增改制记录查询页面。 10. 前端修改生产任务查询页面,增加任务类型和领料状态显示。 11. 前端修改车间派工页面,增加改制任务显示和派工前领料状态校验。 12. 联调从技术中心发起、领料判断、仓库出库、精工工艺、车间派工、加工完工、记录查询的完整流程。 ## 13. 风险点 ### 13.1 领料判断风险 改制订单是否生成领料单,必须以后端判断为准。 前端可以显示和提示,但不能只依赖前端判断,避免绕过仓库出库流程。 ### 13.2 派工前物料状态风险 如果改制订单需要仓库出库,但尚未出库,直接派工会导致车间无物料加工。 建议车间派工接口或派工保存接口再次校验: ```text 需要领料且未出库,不允许派工。 ``` ### 13.3 原任务数据覆盖风险 改制订单必须生成新的生产任务和新的工艺计划流水号。 不能直接覆盖原自制订单或原零件工艺,否则会影响原订单追溯、工时和质量记录。 ### 13.4 取消改制风险 已生成领料单、已出库、已派工或已加工的改制订单取消规则需要严格控制。 建议: - 未出库、未派工:允许取消。 - 已出库:需要退料后取消。 - 已派工未加工:先取消派工再取消。 - 已加工:不允许取消,只能走异常处理。 ### 13.5 统计口径风险 改制订单进入精工生产任务后,会影响生产任务数量、工时统计、完工统计。 建议所有统计接口增加任务类型维度: ```text 正常 改制 报废补投 ``` ## 14. 总结 本方案采用: ```text 技术中心发起改制订单,精工车间承接生产,仓库按需出库,改制记录统一查询。 ``` 关键规则: - 技术中心新增组件发起改制订单。 - 改制订单生成后进入精工车间生产任务查询。 - 改制订单工艺和派工复用现有精工流程。 - 领料时如果是改制订单,并且使用物料不是毛坯,则生成领料单,由仓库物料出库。 - 如果是原现自制订单改制,或者直接使用毛坯改制,则不生成领料单。 - 改制记录查询独立展示全流程状态。