车间能级提升-智能设备管理系统
baoshiwei
2025-06-27 88e10f5656a0ad5530a9e37892fb327153d9dc8a
feat(eims): 优化保养报表状态展示

- 新增保养报表状态分类:待保养、保养中、待验证、已完成
- 更新报表展示样式,增加对应状态的样式样式
- 修改后端逻辑,根据工单状态计算保养报表状态
已修改2个文件
42 ■■■■ 文件已修改
eims-ui/apps/web-antd/src/views/eims/maint-report/index.vue 21 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/ReportServiceImpl.java 21 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
eims-ui/apps/web-antd/src/views/eims/maint-report/index.vue
@@ -139,11 +139,19 @@
        let className = '';
        switch (value) {
          case '保养中': {
            className = 'dot-blue';
            break;
          }
          case '已完成': {
            className = 'dot-green';
            break;
          }
          case '未完成': {
          case '待保养': {
            className = 'dot-gray';
            break;
          }
          case '待验证': {
            className = 'dot-orange';
            break;
          }
@@ -168,10 +176,10 @@
<template>
  <Page :auto-content-height="true">
    <div class="flex h-full gap-[8px]">
      <BasicTable class="flex-1 overflow-hidden" table-title="试产列表">
      <BasicTable class="flex-1 overflow-hidden" table-title="保养报表">
        <template #toolbar-tools>
          <Space>
            <span class="ml-4 mr-2">-</span>未生成计划 <span class="dot-orange ml-4"></span>未完成 <span class="dot-green ml-4"></span>已完成
            <span class="ml-4 mr-2">-</span>未生成计划 <span class="dot-gray ml-4"></span>待保养 <span class="dot-blue ml-4"></span>保养中 <span class="dot-orange ml-4"></span>待验证 <span class="dot-green ml-4"></span>已完成
          </Space>
        </template>
      </BasicTable>
@@ -210,4 +218,11 @@
  border-radius: 50%;
  background-color: #8a2ad8;
}
:deep(.dot-gray) {
  display: inline-block;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background-color: #d9d9d9;
}
</style>
eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/ReportServiceImpl.java
@@ -274,12 +274,23 @@
                order -> String.valueOf(order.getPlanTime().toInstant()
                    .atZone(ZoneId.systemDefault())
                    .toLocalDate().getMonthValue()),
                // 按月份分组后,判断该月是否全部status=3
                Collectors.collectingAndThen(
                    Collectors.toList(),
                    orders -> orders.stream().allMatch(o -> o.getStatus().equals("3"))
                        ? "已完成"
                        : "未完成"
                    orders -> {
                        boolean allZero = orders.stream().allMatch(o -> o.getStatus().equals("0"));
                        if (allZero) {
                            return MAINT_0; // 待保养
                        }
                        boolean allGtOne = orders.stream().allMatch(o -> Integer.parseInt(o.getStatus()) > 1);
                        if (allGtOne) {
                            return MAINT_2; // 待验证
                        }
                        boolean allGtTwo = orders.stream().allMatch(o -> Integer.parseInt(o.getStatus()) > 2);
                        if (allGtTwo) {
                            return MAINT_3; // 已完成
                        }
                        return "保养中";
                    }
                )
            ));
        Map<String, EimsMaintPlan> planMap = equMaintPlanList.stream()
@@ -295,7 +306,7 @@
        for (int month = 1; month <= monthInYear; month++) {
            String monthKey = "month_" + month;
            if (planMap.containsKey(String.valueOf(month))) {
                item.put(monthKey, UNCHECKED);
                item.put(monthKey, MAINT_0);
            } else if (orderMap.containsKey(String.valueOf(month))) {
                String result  = orderMap.get(String.valueOf(month));
                item.put(monthKey, result);