一、功能概述
供应商评级功能是生鲜供应链管理系统中的核心模块,旨在通过对供应商的多维度评估,实现供应商分类管理、风险控制和采购决策优化。该功能将帮助美菜建立科学合理的供应商评价体系,提升供应链稳定性和采购效率。
二、评级指标体系设计
1. 基础指标
- 资质合规性:营业执照、食品经营许可证等证照有效性
- 产品资质:产品检测报告、有机认证等
- 历史合作年限:与美菜合作时长
2. 质量指标
- 产品合格率:抽检不合格次数/总抽检次数
- 质量事故记录:重大质量问题发生次数及影响程度
- 退换货率:因质量问题导致的退换货比例
3. 履约能力
- 准时交货率:按时交付订单比例
- 订单满足率:实际交付量/订单要求量
- 紧急订单响应能力:对加急订单的处理效率
4. 服务水平
- 投诉处理效率:投诉响应时间和解决率
- 合作态度:沟通顺畅度、配合度评分
- 售后服务:退换货处理时效、问题解决能力
5. 价格竞争力
- 价格优势度:与市场平均价格对比
- 价格稳定性:价格波动频率和幅度
- 账期配合度:付款周期协商灵活性
三、系统实现方案
1. 数据库设计
```sql
CREATE TABLE supplier_grade_config (
id INT PRIMARY KEY AUTO_INCREMENT,
indicator_name VARCHAR(100) NOT NULL COMMENT 指标名称,
indicator_type ENUM(quality,delivery,service,price,compliance) COMMENT 指标类型,
weight DECIMAL(5,2) NOT NULL COMMENT 权重(0-100),
calculation_method VARCHAR(50) COMMENT 计算方式(百分比/次数/评分等),
is_active BOOLEAN DEFAULT TRUE COMMENT 是否启用,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
CREATE TABLE supplier_grade_records (
id INT PRIMARY KEY AUTO_INCREMENT,
supplier_id INT NOT NULL COMMENT 供应商ID,
grade_date DATE NOT NULL COMMENT 评级日期,
total_score DECIMAL(5,2) NOT NULL COMMENT 总得分,
grade_level ENUM(A,B,C,D) COMMENT 评级等级,
evaluator_id INT COMMENT 评估人ID,
remarks TEXT COMMENT 评估备注,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
CREATE TABLE supplier_grade_details (
id INT PRIMARY KEY AUTO_INCREMENT,
record_id INT NOT NULL COMMENT 评级记录ID,
indicator_id INT NOT NULL COMMENT 指标ID,
score DECIMAL(5,2) NOT NULL COMMENT 指标得分,
raw_value VARCHAR(255) COMMENT 原始数据值,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
```
2. 核心功能模块
评级计算引擎
```java
public class SupplierGradeCalculator {
public GradeResult calculateGrade(Long supplierId, Date evaluationDate) {
// 1. 获取所有启用中的评级指标及权重
List indicators = indicatorRepository.findActiveIndicators();
// 2. 获取供应商在各指标上的原始数据
Map rawData = dataCollector.collectRawData(supplierId, indicators, evaluationDate);
// 3. 计算各指标得分
Map scores = new HashMap<>();
for (GradeIndicator indicator : indicators) {
Object value = rawData.get(indicator.getId());
double score = calculateIndicatorScore(indicator, value);
scores.put(indicator.getId(), score);
}
// 4. 计算总得分和等级
double totalScore = calculateTotalScore(scores, indicators);
String gradeLevel = determineGradeLevel(totalScore);
return new GradeResult(supplierId, totalScore, gradeLevel, scores);
}
private double calculateIndicatorScore(GradeIndicator indicator, Object value) {
// 实现不同类型指标的得分计算逻辑
// ...
}
}
```
定时评估任务
```java
@Scheduled(cron = "0 0 2 * * ?") // 每天凌晨2点执行
public void dailySupplierEvaluation() {
List activeSuppliers = supplierRepository.findAllActiveSuppliers();
for (Supplier supplier : activeSuppliers) {
try {
GradeResult result = gradeCalculator.calculateGrade(supplier.getId(), new Date());
supplierGradeService.saveGradeResult(result);
} catch (Exception e) {
log.error("供应商评级失败: {}", supplier.getId(), e);
}
}
}
```
3. 前端展示
- 供应商详情页:展示历史评级趋势图、当前评级和各指标得分
- 供应商列表页:显示供应商评级等级和总得分
- 评级管理页:提供评级配置、手动触发评级、查看评级日志等功能
四、实施步骤
1. 需求分析与指标设计(2周)
- 与采购、质检部门确认评级指标和权重
- 确定评分标准和等级划分规则
2. 系统开发(4周)
- 数据库设计和开发
- 后端评级计算逻辑实现
- 前端界面开发
3. 测试与优化(2周)
- 单元测试、集成测试
- 历史数据回测验证
- 性能优化
4. 上线与培训(1周)
- 系统部署
- 用户培训
- 试运行监控
五、高级功能扩展
1. 动态权重调整:根据业务阶段自动调整指标权重
2. 风险预警:对评级下降过快的供应商自动预警
3. 对比分析:同品类供应商横向对比
4. 智能推荐:根据评级结果推荐采购策略
5. 移动端支持:采购人员可随时查看供应商评级
六、预期效果
1. 供应商管理效率提升30%以上
2. 采购质量事故率降低20%
3. 优质供应商采购占比提高15%
4. 供应商合作满意度提升
5. 为供应商优化提供数据支持
该方案可根据美菜实际业务需求进行调整和扩展,建议先实施核心评级功能,再逐步完善高级特性。