酸轧OEE后端重构完成

This commit is contained in:
2026-01-30 17:37:27 +08:00
parent a6a7a5226d
commit 872bdda2fc
16 changed files with 1656 additions and 14 deletions

View File

@@ -0,0 +1,22 @@
package com.klp.pocket.common.service;
/**
* 钢卷良品/次品判定OEE 口径用)。
*
* 规则:
* - 以 WMS 的 wms_material_coil 为准
* - 按“当前钢卷号(current_coil_no) + 所在库区ID(warehouse_id)”精确匹配
* - quality_status 命中 {"C+","C","C-","D+","D","D-"} => 次品;否则 => 良品
* - 若匹配不到WMS 无记录),返回 null调用方按“忽略不计”处理
*/
public interface ICoilQualityJudgeService {
/**
* @param warehouseId 所在库区ID成品库库区ID
* @param currentCoilNo 当前钢卷号注意pocket 侧查询到的“钢卷id/卷号”口径等同于该字段)
* @return Booleantrue=次品false=良品null=匹配不到(忽略不计)
*/
Boolean isScrap(Long warehouseId, String currentCoilNo);
}

View File

@@ -0,0 +1,41 @@
package com.klp.pocket.common.service.impl;
import com.klp.common.utils.StringUtils;
import com.klp.pocket.common.service.ICoilQualityJudgeService;
import com.klp.service.IWmsMaterialCoilService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;
@RequiredArgsConstructor
@Service
public class CoilQualityJudgeServiceImpl implements ICoilQualityJudgeService {
/**
* 次品状态枚举:命中这些 quality_status 则判定为次品,否则判定为良品。
*/
private static final Set<String> SCRAP_QUALITY_STATUS = new HashSet<>(
Arrays.asList("C+", "C", "C-", "D+", "D", "D-")
);
private final IWmsMaterialCoilService wmsMaterialCoilService;
@Override
public Boolean isScrap(Long warehouseId, String currentCoilNo) {
if (warehouseId == null || StringUtils.isBlank(currentCoilNo)) {
return null;
}
String qualityStatus = wmsMaterialCoilService
.queryQualityStatusByWarehouseIdAndCurrentCoilNo(warehouseId, currentCoilNo);
if (StringUtils.isBlank(qualityStatus)) {
// WMS 匹配不到或字段为空:按“忽略不计”
return null;
}
return SCRAP_QUALITY_STATUS.contains(qualityStatus.trim());
}
}