产品选配总体技术方案
一、需求背景
1、核心业务场景和流程
2、核心业务规则
核心逻辑:
- 选项除公共选项外(客户、品牌等)需要根据用户事业部所在的分组进行权限过滤;
- 选项支持同步外部系统数据;
- 产品选配时需要基于关键料算法标注关键选项(设置标识就行);
- 通过选项集嵌套子模块选项集,实现多层级制造件嵌套选配;
- 构建父产品+子产品多层级嵌套结构,为多层BOM架构提供数据依据;
- 工程类选项池创建时需要自动创建对应的选项集;
- 工程类选配时需要接入状态机 、推送待办给opm进行补充。
- 工程类选配触发确认书创建是在选配结束后触发。
选项池创建规则:
序号
功能
功能概要
备注
1 终端产品/部件类选项池 - 创建维度:按事业部+产品小分类创建
- 查重规则:事业部+产品分类范围内,按选项池名称查重
- 应用规则:按产品型号的事业部+分类进行过滤创建选项集
- 权限控制:按事业部进行数据权限管理
- 配置内容:选项、选项组
2 PCBA类选项池 - 创建维度:按事业部+产品分类创建
- 查重规则:事业部+产品分类范围内,按选项池名称查重
- 应用规则:按产品型号的事业部+分类进行过滤创建选项集(子分类需查找父层分类建立的模型)
- 权限控制:按事业部进行数据权限管理
- 配置内容:选项、选项组
3 软件服务类选项池 - 创建维度:按事业部+产品分类创建
- 查重规则:事业部+产品分类范围内,按选项池名称查重
- 应用规则:按选项集的事业部、分类过滤选项池创建选项集
- 权限控制:按事业部进行数据权限管理
- 配置内容:选项、选项组
4 工程项目类选项池 - 创建维度:按事业部创建
- 查重规则:事业部范围内,按选项池名称查重
- 应用规则:系统自动根据选项池创建选项集,选项集配置内容与模型保持一致
- 权限控制:按事业部进行数据权限管理
- 配置内容:选项、选项组、明细表(支持选择物料库、软件库、服务库、产品库)、图片
选项集规则要点:
序号
功能
功能概要
适用场景
1 按产品型号创建 - 输入产品型号,自动带出选项集创建的基本信息
- 按产品型号的分类查出选项池
- 按选项池派生选项集选项
应用产品型号的产品 2 按事业部+分类创建 - 输入事业部、产品分类
- 按事业部、分类查出选项池
- 按选项池派生选项集选项
未应用产品型号的产品 3 按模型1对1创建 - 选项池创建后,自动创建选项集
- 选项池修改后,自动更新选项集
工程项目类产品
状态规则:
- 创建订单初始状态
- 发货已创建,回写订单状态
二、领域设计
1、数据对象
2、上下游关系
3、功能梳理
三、数据模型
1、选项
1)、选项与选项集的展示字段可通过页面根据权限分组设置是否展示;
2)、新增选项时如果有商务选项则自动创建商务选项,商务选项与普通硬件选项是1:1的关系;
3)、新增选项值时如果存在对应的商务选项则需要判断是否存在对应的商务选项,没有则提醒;
4)、选项受权限管控,按权限分组处理,也可设置公共选项(分组ID为空);
5)、选项做分类区分,硬件 、软件、商务等。
2、选项组
展示类型:非必填 当选择横向时。选项组中的选项横向排列 ,选择纵向时所有的选项纵向排列 (工程类项目需要区分)
3、 选项池
选项池类型 tool_type :工程类/非工程类
当选项池类型为工程类选项池时程序自动创建对象的选项集;
4、选项集
选项集中的选项关系
5、产品选配
6、模型bom
7 、模型bom变更
8 、 实例bom
9、其他配置表
四、能力清单
模块 | 业务场景 | 应用层API | 对应依赖中心 | 中心能力编码 | 业务逻辑 |
---|---|---|---|---|---|
选项 | 新增界面显示字段 | @ApiOperation("新增界面显示字段") @POST /api/v1/data/propPage/addFiled | 选项中心 | 创建显示字段 | |
配置字段显示规则 | @ApiOperation("配置字段显示规则") @PUT /api/v1/data/propPage/config | 选项中心 | 配置字段显示规则 | ||
根据登陆用户获取选项/选项值的显示字段 | @ApiOperation("根据登陆用户获取选项/选项值的显示字段") @GET /api/v1/data/propPage/getViewFiledList | 选项中心 | 根据登陆用户获取选项/选项值的显示字段 | 1、根据事业部获取对应的分组 | |
创建选项 | @ApiOperation("创建选项") @POST /config/dicts | 选项中心 | 创建选项 | 1、判断是否包含销售选项如果有则同步创建销售选项,并建立关系 | |
根据选项ID获取选项详情 | @ApiOperation("根据选项ID获取选项详情") @GET /config/dicts/{id} | 选项中心 | 查询选项 | ||
更新选项 | @ApiOperation("更新选项") @PUT /config/dicts/{id} | 选项中心 | 更新选项 | 1、商务选项更新时需要同步更新关联的商务选项 | |
创建选项值 | @ApiOperation("更新选项") @POST /config/dicts/{mainId}/details | 选项中心 | 创建选项值 | 1、创建选项值时需要判断是个有对应的销售选项值,有则自动创建销售选项值,并自动关联对应的销售选项; | |
更新选项值 | @ApiOperation("更新选项") @PUT /config/dicts/{mainId}/details | 选项中心 | 更新选项值 | 1、需要判断对应的销售选项是否发生改变,需要同步更改销售选项; | |
获取选项值列表 | @ApiOperation("获取选项值列表") @GET /config/dicts/{mainId}/details | 选项中心 | 获取选项值列表 | ||
选项列表 | @ApiOperation("选项列表") @PUT /config/dicts/list | 选项中心 | 选项列表 | ||
选项组 | 选项组列表 | @ApiOperation("选项组列表") @GET /config/templates | 选项组中心 | 选项组列表 | |
创建选项组 | @ApiOperation("创建选项组") @POST /config/templates | 选项组中心 | 创建选项组 | 1、新增选项组类型 2、工程项目类选项组,产品分类可为空; 3、选项组新增显示类型 横向或纵向 适应工程类的特殊说明 默认为纵向显示 | |
更新选项组 | @ApiOperation("更新选项组") @PUT /config/templates | 选项组中心 | 更新选项组 | 1、当选项非工程类项目时产品分类必须填 | |
创建选项 | @ApiOperation("创建选项") @POST /config/templates/{mainId}/props | 选项组 | 创建选项 | ||
获取选项列表 | @GET /config/templates/{mainId}/props | 选项组\选项中心 | 获取选项列表 | ||
选项池 | 选项池列表 | @ApiOperation("选项池列表") @GET /config/templates | 选项池 | 选项池列表 | type : pool |
创建选项池 | @ApiOperation("创建选项池") @POST /config/templates | 选项池 | 创建选项池 | ||
更新选项池 | @ApiOperation("创建选项池") @put /config/templates | 选项池 | 更新选项池 | 同上 | |
引入选项组 | @ApiOperation("引入选项组") @POST /config/templates/{mainId}/props | 引入选项组 | |||
选项集 | 标准选项集列表 | @ApiOperation("标准选项集列表")@GET /config/gathers/list | 选项集 | 标准选项集列表 | |
印刷品选项集列表 | @ApiOperation("印刷品选项集列表") @GET /config/printGathers/list | ||||
软件选项集列表 | @ApiOperation("软件选项集列表") @GET /config/swGathers/list | ||||
工程类选项集列表 | @ApiOperation("工程类选项集列表") @GET /config/projectGathers/list | ||||
创建标准选项集 | @ApiOperation("创建标准选项集") @POST /config/gathers | ||||
创建印刷品选项集 | @ApiOperation("创建印刷品选项集") @POST /config/printGathers | ||||
创建软件类选项集 | @ApiOperation("创建软件类选项集") @POST /config/swGathers | ||||
保存派生关系 | @ApiOperation("保存派生关系") @POST /config/commonGathers/saveOption | ||||
基于选项集创建主推配置 | @ApiOperation("基于选项集创建主推配置") @POST /config/commonGathers/saveMainConfig | ||||
根据产品型号获取对应的选项集 | @ApiOperation("基于选项集创建主推配置") @GET /config/commonGathers/prodItem | ||||
选项关系列表 | @ApiOperation("选项关系列表") @GET /config/gathers/rel | ||||
选项关系详情 | @ApiOperation("选项关系详情") @GET /config/gathers/rel/detail/{id} | ||||
创建选项关系 | @ApiOperation("创建选项关系") @POST /config/gathers/rel/{id} | ||||
更新选项关系 | @ApiOperation("更新选项关系") @PUT /config/gathers/rel/{id} | ||||
根据产品型号获取选项关系 | @ApiOperation("根据产品型号获取选项关系") @GET /config/gathers/rel/prodItem/{prodItem} | ||||
根据产品型号获取主推配置 | @ApiOperation("根据产品型号获取主推配置") @GET /config/commonGathers/mainConfig/{prodItem} | ||||
根据产品型号获取硬件选配配置 | @ApiOperation("根据产品型号获取硬件选配配置") @GET /config/gathers/hwConfig/{prodItem} | ||||
根据产品型号获取软件选项集 | @ApiOperation("根据产品型号获取软件选项集") @GET /config/swGathers/{prodItem} | ||||
根据事业部获取选项集 | @ApiOperation("根据产品型号获取软件选项集") @GET /config/projectGathers/{bu} | ||||
根据选项集类型获取对应的选项集 | @ApiOperation("根据产品型号获取主推配置") @GET /config/commonGathers/{type} | ||||
选配 | 选配记录列表 | @ApiOperation("选配记录列表") @GET /config/choices/list | |||
查找相似选配 | @ApiOperation("查找相似选配") @GET /config/choices/matchList | ||||
使用当前代码 | @ApiOperation("查找相似选配") @PUT /config/choices/use | ||||
创建产品 | @ApiOperation("创建产品") @POST /config/choices | ||||
更新产品 | @ApiOperation("更新产品") @PUT /config/choices | ||||
根据客户确认书ID创建产品 | @ApiOperation("更新产品") @PUT /config/choices/{confirmId} | ||||
查询规划配置代码 | @ApiOperation("查询规划配置代码") @GET /config/choices/queryConfigCode | ||||
关联规划配置代码 | @ApiOperation("关联规划配置代码") @GET /config/choices/saveConfigCode | ||||
根据研发组织,产品分类获取软件需求选项 | @ApiOperation("根据研发组织,产品分类获取软件需求选项") @GET /config/choices/getSwProps | ||||
保存软件需求 | @ApiOperation("保存软件需求") @POST /config/choices/saveSwConfig | ||||
根据产品代码获取软件配置 | @ApiOperation("根据产品代码获取软件配置") @GET /config/choices/getSwConfigForOrder | ||||
保存软件配置 | @ApiOperation("保存软件配置") @GET /config/choices/saveSwConfigForOrder | ||||
测试版卡选配 | @ApiOperation("测试版本选配") @POST /config/choices/pcba/test | ||||
根据产品代码获取测试版卡配置 | @ApiOperation("根据产品代码获取测试版卡配置") @GET /config/choices/pcba/test/{prodCode} | ||||
其他 | oa推送软件收费项目列表 | @ApiOperation("oa推送软件收费项目列表") @GET /config/swfinace/oa_recevice | |||
最后编辑:寇永威 更新时间:2023-11-21 15:32