OEE添加镀锌接口

This commit is contained in:
2026-03-20 13:36:42 +08:00
parent 7e1e4b7b62
commit 017961e3b2
6 changed files with 433 additions and 22 deletions

View File

@@ -12,6 +12,7 @@ import com.klp.pocket.acid.domain.vo.AcidOeeIdealCycleVo;
import com.klp.pocket.acid.domain.vo.AcidOeeLoss7Vo;
import com.klp.pocket.acid.domain.vo.Klptcm1ProStoppageVo;
import com.klp.pocket.acid.service.IAcidOeeService;
import com.klp.pocket.galvanize1.service.IGalvanizeOeeService;
import lombok.Data;
import lombok.RequiredArgsConstructor;
import org.apache.poi.xwpf.usermodel.ParagraphAlignment;
@@ -61,6 +62,7 @@ import java.util.stream.Collectors;
public class OeeReportController extends BaseController {
private final IAcidOeeService acidOeeService;
private final IGalvanizeOeeService galvanizeOeeService;
private final StringRedisTemplate stringRedisTemplate;
private final OeeReportJobService oeeReportJobService;
private final OeeWordAiAnalysisService oeeWordAiAnalysisService;
@@ -83,11 +85,13 @@ public class OeeReportController extends BaseController {
@GetMapping("/acid/summary")
public R<List<AcidOeeDailySummaryVo>> getAcidSummary(
@RequestParam(required = false) String startDate,
@RequestParam(required = false) String endDate
@RequestParam(required = false) String endDate,
@RequestParam(required = false, defaultValue = "acid") String lineType
) {
String[] range = resolveDateRange(startDate, endDate);
List<AcidOeeDailySummaryVo> dailyList =
acidOeeService.getDailySummary(range[0], range[1]);
List<AcidOeeDailySummaryVo> dailyList = isGalvanize(lineType)
? galvanizeOeeService.getDailySummary(range[0], range[1])
: acidOeeService.getDailySummary(range[0], range[1]);
return R.ok(dailyList);
}
@@ -101,21 +105,15 @@ public class OeeReportController extends BaseController {
*/
@GetMapping("/acid/loss7")
public R<List<AcidOeeLoss7Vo>> getAcidLoss7(
@RequestParam(required = false, defaultValue = "50") Integer topN
@RequestParam(required = false, defaultValue = "50") Integer topN,
@RequestParam(required = false) String startDate,
@RequestParam(required = false) String endDate,
@RequestParam(required = false, defaultValue = "acid") String lineType
) {
String yyyyMM = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyyMM"));
String loss7Key = String.format("oee:report:month:loss7:%s:SY", yyyyMM);
// 1. 优先从 Redis 读取当月 7 大损失预计算结果
String json = stringRedisTemplate.opsForValue().get(loss7Key);
List<AcidOeeLoss7Vo> lossList;
if (StringUtils.isNotBlank(json)) {
lossList = JSON.parseArray(json, AcidOeeLoss7Vo.class);
} else {
// 2. 缓存缺失时,回退为实时计算当前月
String[] range = resolveDateRange(null, null);
lossList = acidOeeService.getLoss7Summary(range[0], range[1]);
}
String[] range = resolveDateRange(startDate, endDate);
List<AcidOeeLoss7Vo> lossList = isGalvanize(lineType)
? galvanizeOeeService.getLoss7Summary(range[0], range[1])
: acidOeeService.getLoss7Summary(range[0], range[1]);
if (topN != null && topN > 0 && lossList.size() > topN) {
lossList = new ArrayList<>(lossList.subList(0, topN));
@@ -139,14 +137,16 @@ public class OeeReportController extends BaseController {
@RequestParam(required = false) String stopType,
@RequestParam(required = false) String keyword,
@RequestParam(required = false, defaultValue = "1") Integer pageNum,
@RequestParam(required = false, defaultValue = "10") Integer pageSize
@RequestParam(required = false, defaultValue = "10") Integer pageSize,
@RequestParam(required = false, defaultValue = "acid") String lineType
) {
// 事件明细底层按「日期」查询,这里从时间字符串中截取日期部分
String startDate = extractDateOrDefault(startTime, true);
String endDate = extractDateOrDefault(endTime, false);
List<Klptcm1ProStoppageVo> events =
acidOeeService.getStoppageEvents(startDate, endDate);
List<Klptcm1ProStoppageVo> events = isGalvanize(lineType)
? galvanizeOeeService.getStoppageEvents(startDate, endDate)
: acidOeeService.getStoppageEvents(startDate, endDate);
// 业务筛选stopType、关键字目前对 stopType / remark 做 contains 匹配)
List<Klptcm1ProStoppageVo> filtered = events.stream()
@@ -192,9 +192,12 @@ public class OeeReportController extends BaseController {
@GetMapping("/acid/idealCycle")
public R<AcidOeeIdealCycleVo> getAcidIdealCycle(
@RequestParam String startDate,
@RequestParam String endDate
@RequestParam String endDate,
@RequestParam(required = false, defaultValue = "acid") String lineType
) {
AcidOeeIdealCycleVo data = acidOeeService.getIdealCycle(startDate, endDate);
AcidOeeIdealCycleVo data = isGalvanize(lineType)
? galvanizeOeeService.getIdealCycle(startDate, endDate)
: acidOeeService.getIdealCycle(startDate, endDate);
return R.ok(data);
}
@@ -415,6 +418,10 @@ public class OeeReportController extends BaseController {
/**
* 若未显式传入日期范围,则默认当前月 [1号, 今天]。
*/
private boolean isGalvanize(String lineType) {
return "galvanize1".equalsIgnoreCase(lineType) || "galvanize".equalsIgnoreCase(lineType) || "dx".equalsIgnoreCase(lineType);
}
private String[] resolveDateRange(String startDate, String endDate) {
if (StringUtils.isNotBlank(startDate) && StringUtils.isNotBlank(endDate)) {
return new String[]{startDate, endDate};