Appearance
POST /dm-store/safeStock/add
Content-Type: application/json
触发按钮:partMainAdd
入参
传递对象:SafeStockVo
| 字段 | 类型 | 必填 | 多选 | 校验规则 | 说明 |
|---|---|---|---|---|---|
| storeNo | String | 否 | 否 | - | 仓库代号 |
| storeCode | String | 否 | 否 | - | 仓库编码 |
| storeName | String | 否 | 否 | - | 仓库名称 |
| partNo | String | 否 | 否 | - | 物料代号 |
| partCode | String | 否 | 否 | - | 物料编码 |
| partName | String | 否 | 否 | - | 物料名称 |
| uom | String | 否 | 否 | - | 单位 |
| maxStock | Long | 否 | 否 | - | 最高库存 |
| minStock | Long | 否 | 否 | - | 最低库存 |
| safeStock | Long | 否 | 否 | - | 安全库存 |
出参
传递对象:ResultData
无
前端校验规则
权限校验
├── 新增按钮权限
│ └── v-auth: 'inventory:safety:add:popup'
├── 表单校验
│ ├── storeCode(仓库编码)
│ │ └── required: true, trigger: blur
│ ├── storeName(仓库名称)
│ │ └── required: true, trigger: blur
│ ├── partCode(物料编码)
│ │ └── required: true, trigger: blur
│ ├── partName(物料名称)
│ │ └── required: true, trigger: blur
│ ├── uom(单位)
│ │ └── required: true, trigger: blur
│ ├── maxStock(最高库存)
│ │ ├── 使用 el-input-number
│ │ └── 最小值:1
│ ├── minStock(最低库存)
│ │ ├── 使用 el-input-number
│ │ └── 最小值:1
│ └── safeStock(安全库存)
│ ├── 使用 el-input-number
│ └── 最小值:1
└── 提交拦截校验
└── approvalAction
└── this.$refs.form.validate 通过后才允许提交后端逻辑
业务流程:校验库存阈值关系 -> 校验仓库与物料组合唯一性 -> 新增安全库存记录
├── 校验库存阈值关系:SafeStockServiceImpl.save :109-119
│ └── 条件
│ └── maxStock > safeStock > minStock
├── 校验仓库与物料组合唯一性
│ ├── 组装唯一条件:SafeStockServiceImpl.findSafeStockCondition :146-156
│ │ └── 条件
│ │ ├── partNo
│ │ ├── storeNo
│ │ └── isDelete=0
│ ├── 查询重复配置:getOne :125
│ └── 已存在相同仓库+物料配置时终止新增
└── 新增安全库存记录:save :134后端校验规则
业务约束校验
├── 校验最大库存必须大于最小库存:save :112-114
│ └── ExceptionCode.EX90029
├── 校验最大库存必须大于安全库存:save :115-117
│ └── ExceptionCode.EX90030
└── 校验安全库存必须大于最小库存:save :118-120
└── ExceptionCode.EX90031
业务唯一性校验
└── 校验安全库存记录唯一(生效条件:新增时执行;条件表达式:partNo=入参partNo 且 storeNo=入参storeNo 且 isDelete=0):save/findSafeStockCondition :122-157
└── ExceptionCode.EX90032涉及数据库表
| 库名.表名 | mapper.statement | 描述 |
|---|---|---|
| store.safe_stock | SafeStockMapper.insert | 新增safety数据 |