PC
2024-03-31 608f20e0d5d8f95d9bbb917e95e2913682deb77d
smart-man-boot/src/main/java/com/qianwen/smartman/modules/mdc/service/impl/TimeUsedAnalysisServiceImpl.java
@@ -1,12 +1,5 @@
package com.qianwen.smartman.modules.mdc.service.impl;
import cn.hutool.core.util.NumberUtil;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.google.common.collect.Lists;
import java.lang.invoke.SerializedLambda;
import java.sql.Timestamp;
import java.time.LocalDate;
import java.time.chrono.ChronoLocalDate;
@@ -21,10 +14,24 @@
import java.util.Optional;
import java.util.Set;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.qianwen.smartman.common.cache.RegionCache;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.google.common.collect.Lists;
import com.qianwen.core.excel.util.ExcelUtil;
import com.qianwen.core.log.exception.ServiceException;
import com.qianwen.core.mp.support.Condition;
import com.qianwen.core.mp.support.Query;
import com.qianwen.core.oss.model.BladeFile;
import com.qianwen.core.tool.support.Kv;
import com.qianwen.core.tool.utils.DateUtil;
import com.qianwen.core.tool.utils.Func;
import com.qianwen.core.tool.utils.StringUtil;
import com.qianwen.smartman.common.cache.cps.TimeSliceCache;
import com.qianwen.smartman.common.cache.cps.WorkstationCache;
import com.qianwen.smartman.common.constant.CalendarConstant;
@@ -35,15 +42,6 @@
import com.qianwen.smartman.common.enums.DefaultWcsEnum;
import com.qianwen.smartman.common.utils.LocalDateTimeUtils;
import com.qianwen.smartman.common.utils.MessageUtils;
import com.qianwen.core.excel.util.ExcelUtil;
import com.qianwen.core.log.exception.ServiceException;
import com.qianwen.core.mp.support.Condition;
import com.qianwen.core.mp.support.Query;
import com.qianwen.core.oss.model.BladeFile;
import com.qianwen.core.tool.support.Kv;
import com.qianwen.core.tool.utils.DateUtil;
import com.qianwen.core.tool.utils.Func;
import com.qianwen.core.tool.utils.StringUtil;
import com.qianwen.smartman.modules.cps.entity.CommonGroup;
import com.qianwen.smartman.modules.cps.entity.GlobalWcs;
import com.qianwen.smartman.modules.cps.entity.ShiftDetail;
@@ -74,11 +72,10 @@
import com.qianwen.smartman.modules.mdc.vo.WorkstationBandShiftVO;
import com.qianwen.smartman.modules.mdc.vo.excel.TimeUsedExcelVO;
import com.qianwen.smartman.modules.resource.builder.oss.OssBuilder;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import cn.hutool.core.util.NumberUtil;
@Service
/* loaded from: blade-api.jar:BOOT-INF/classes/org/springblade/modules/mdc/service/impl/TimeUsedAnalysisServiceImpl.class */
public class TimeUsedAnalysisServiceImpl implements ITimeUsedAnalysisService {
    private static final Logger log = LoggerFactory.getLogger(TimeUsedAnalysisServiceImpl.class);
    private final SuperAggregateStateMapper baseMapper;
@@ -88,197 +85,6 @@
    private final ISuperAggregateStateService stateService;
    private final OssBuilder ossBuilder;
    private final ICalendarService calendarService;
    private static /* synthetic */ Object $deserializeLambda$(SerializedLambda lambda) {
        String implMethodName = lambda.getImplMethodName();
        boolean z = true;
        switch (implMethodName.hashCode()) {
            case -1492577373:
                if (implMethodName.equals("getGroupType")) {
                    z = true;
                    break;
                }
                break;
            case -75622813:
                if (implMethodName.equals("getCode")) {
                    z = true;
                    break;
                }
                break;
            case -75106384:
                if (implMethodName.equals("getType")) {
                    z = true;
                    break;
                }
                break;
            case 98245393:
                if (implMethodName.equals("getId")) {
                    z = true;
                    break;
                }
                break;
            case 803533544:
                if (implMethodName.equals("getStatus")) {
                    z = true;
                    break;
                }
                break;
            case 985326823:
                if (implMethodName.equals("getGroupCategory")) {
                    z = true;
                    break;
                }
                break;
            case 1273356481:
                if (implMethodName.equals("getCalendarCode")) {
                    z = false;
                    break;
                }
                break;
        }
        switch (z) {
            case false:
                if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/modules/cps/entity/Workstation") && lambda.getImplMethodSignature().equals("()Ljava/lang/String;")) {
                    return (v0) -> {
                        return v0.getCalendarCode();
                    };
                }
                if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/modules/cps/entity/Workstation") && lambda.getImplMethodSignature().equals("()Ljava/lang/String;")) {
                    return (v0) -> {
                        return v0.getCalendarCode();
                    };
                }
                if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/modules/cps/entity/Workstation") && lambda.getImplMethodSignature().equals("()Ljava/lang/String;")) {
                    return (v0) -> {
                        return v0.getCalendarCode();
                    };
                }
                break;
            case true:
                if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/modules/cps/entity/Workstation") && lambda.getImplMethodSignature().equals("()Ljava/lang/Integer;")) {
                    return (v0) -> {
                        return v0.getType();
                    };
                }
                if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/modules/cps/entity/Workstation") && lambda.getImplMethodSignature().equals("()Ljava/lang/Integer;")) {
                    return (v0) -> {
                        return v0.getType();
                    };
                }
                if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/modules/cps/entity/Workstation") && lambda.getImplMethodSignature().equals("()Ljava/lang/Integer;")) {
                    return (v0) -> {
                        return v0.getType();
                    };
                }
                if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/modules/cps/entity/Workstation") && lambda.getImplMethodSignature().equals("()Ljava/lang/Integer;")) {
                    return (v0) -> {
                        return v0.getType();
                    };
                }
                break;
            case true:
                if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/core/mp/base/BaseEntity") && lambda.getImplMethodSignature().equals("()Ljava/lang/Long;")) {
                    return (v0) -> {
                        return v0.getId();
                    };
                }
                if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/modules/cps/entity/CommonGroup") && lambda.getImplMethodSignature().equals("()Ljava/lang/Long;")) {
                    return (v0) -> {
                        return v0.getId();
                    };
                }
                if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/modules/cps/entity/CommonGroup") && lambda.getImplMethodSignature().equals("()Ljava/lang/Long;")) {
                    return (v0) -> {
                        return v0.getId();
                    };
                }
                if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/core/mp/base/BaseEntity") && lambda.getImplMethodSignature().equals("()Ljava/lang/Long;")) {
                    return (v0) -> {
                        return v0.getId();
                    };
                }
                if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/core/mp/base/BaseEntity") && lambda.getImplMethodSignature().equals("()Ljava/lang/Long;")) {
                    return (v0) -> {
                        return v0.getId();
                    };
                }
                if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/core/mp/base/BaseEntity") && lambda.getImplMethodSignature().equals("()Ljava/lang/Long;")) {
                    return (v0) -> {
                        return v0.getId();
                    };
                }
                if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/modules/cps/entity/CommonGroup") && lambda.getImplMethodSignature().equals("()Ljava/lang/Long;")) {
                    return (v0) -> {
                        return v0.getId();
                    };
                }
                break;
            case true:
                if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/modules/cps/entity/CommonGroup") && lambda.getImplMethodSignature().equals("()Ljava/lang/String;")) {
                    return (v0) -> {
                        return v0.getGroupType();
                    };
                }
                if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/modules/cps/entity/CommonGroup") && lambda.getImplMethodSignature().equals("()Ljava/lang/String;")) {
                    return (v0) -> {
                        return v0.getGroupType();
                    };
                }
                if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/modules/cps/entity/CommonGroup") && lambda.getImplMethodSignature().equals("()Ljava/lang/String;")) {
                    return (v0) -> {
                        return v0.getGroupType();
                    };
                }
                break;
            case true:
                if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/core/mp/base/BaseEntity") && lambda.getImplMethodSignature().equals("()Ljava/lang/Integer;")) {
                    return (v0) -> {
                        return v0.getStatus();
                    };
                }
                if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/core/mp/base/BaseEntity") && lambda.getImplMethodSignature().equals("()Ljava/lang/Integer;")) {
                    return (v0) -> {
                        return v0.getStatus();
                    };
                }
                break;
            case RegionCache.VILLAGE_LEVEL /* 5 */:
                if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/modules/cps/entity/Workstation") && lambda.getImplMethodSignature().equals("()Ljava/lang/String;")) {
                    return (v0) -> {
                        return v0.getCode();
                    };
                }
                if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/modules/cps/entity/CommonGroup") && lambda.getImplMethodSignature().equals("()Ljava/lang/String;")) {
                    return (v0) -> {
                        return v0.getCode();
                    };
                }
                if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/modules/cps/entity/Workstation") && lambda.getImplMethodSignature().equals("()Ljava/lang/String;")) {
                    return (v0) -> {
                        return v0.getCode();
                    };
                }
                break;
            case true:
                if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/modules/cps/entity/CommonGroup") && lambda.getImplMethodSignature().equals("()Ljava/lang/Integer;")) {
                    return (v0) -> {
                        return v0.getGroupCategory();
                    };
                }
                if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/modules/cps/entity/CommonGroup") && lambda.getImplMethodSignature().equals("()Ljava/lang/Integer;")) {
                    return (v0) -> {
                        return v0.getGroupCategory();
                    };
                }
                if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/modules/cps/entity/CommonGroup") && lambda.getImplMethodSignature().equals("()Ljava/lang/Integer;")) {
                    return (v0) -> {
                        return v0.getGroupCategory();
                    };
                }
                break;
        }
        throw new IllegalArgumentException("Invalid lambda deserialization");
    }
    public TimeUsedAnalysisServiceImpl(final SuperAggregateStateMapper baseMapper, final IWorkstationService workstationService, final ICommonGroupService commonGroupService, final CalendarMapper calendarMapper, final ISuperAggregateStateService stateService, final OssBuilder ossBuilder, final ICalendarService calendarService) {
        this.baseMapper = baseMapper;
@@ -304,6 +110,13 @@
        StatisticalMethodEnum methodEnum = stationVO.getEnums();
        List<String> ids = stationVO.getIds();
        LocalDate queryTime = stationVO.getQueryTime();
        IPage<Workstation> page = this.workstationService.page(Condition.getPage(query),Wrappers.<Workstation>lambdaQuery()
                .in(Func.isNotEmpty(ids), Workstation::getId, ids)
                .eq(Workstation::getType, WorkstationTypeEnum.MACHINE.getCode())
                .eq(Workstation::getStatus, CommonConstant.ENABLE)
                .isNotNull(Workstation::getCalendarCode)
                .orderByAsc(Workstation::getCode));
        /*
        IPage<Workstation> page = this.workstationService.page(Condition.getPage(query), (Wrapper) ((LambdaQueryWrapper) ((LambdaQueryWrapper) ((LambdaQueryWrapper) Wrappers.lambdaQuery().in(Func.isNotEmpty(ids), (v0) -> {
            return v0.getId();
        }, ids).eq((v0) -> {
@@ -314,7 +127,7 @@
            return v0.getCalendarCode();
        })).orderByAsc((v0) -> {
            return v0.getCode();
        }));
        }));*/
        long total = page.getTotal();
        List<Workstation> workstations = page.getRecords();
        if (Func.isEmpty(workstations)) {
@@ -341,14 +154,15 @@
    }
    private TimeUsedAnalysisWorkstationVO buildTimeUsedAnalysisDay(List<Workstation> workstations, LocalDate queryTime) {
        List<Long> ids = (List) workstations.stream().map((v0) -> {
        List<Long> ids = workstations.stream().map((v0) -> {
            return v0.getId();
        }).collect(Collectors.toList());
        List<NameIdDTO> workStationDetails = Lists.newArrayList();
        List<List<CountStatusDTO>> countStatus = Lists.newArrayList();
        Set<Integer> wcsList = (Set) listGlobalWcs().stream().map(c -> {
        Set<Integer> wcsList = listGlobalWcs().stream().map(c -> {
            return Integer.valueOf(Integer.parseInt(c.getCode()));
        }).collect(Collectors.toSet());
        List<SuperAggregateState> stateList = this.baseMapper.dateState(DateUtil.format(queryTime, "yyyyMMdd"), ids);
        Map<Long, Map<Integer, Long>> map = buildStateMap(wcsList, stateList);
        for (Workstation workstation : workstations) {
@@ -362,12 +176,12 @@
    }
    private TimeUsedAnalysisWorkstationVO buildTimeUsedAnalysisWeek(List<Workstation> workstations, Integer year, Integer week) {
        List<Long> ids = (List) workstations.stream().map((v0) -> {
        List<Long> ids = workstations.stream().map((v0) -> {
            return v0.getId();
        }).collect(Collectors.toList());
        List<NameIdDTO> workStationDetails = Lists.newArrayList();
        List<List<CountStatusDTO>> countStatus = Lists.newArrayList();
        Set<Integer> wcsList = (Set) listGlobalWcs().stream().map(c -> {
        Set<Integer> wcsList = listGlobalWcs().stream().map(c -> {
            return Integer.valueOf(Integer.parseInt(c.getCode()));
        }).collect(Collectors.toSet());
        List<SuperAggregateState> stateList = this.baseMapper.weekState(ids, year, week);
@@ -383,12 +197,12 @@
    }
    private TimeUsedAnalysisWorkstationVO buildTimeUsedAnalysisMonth(List<Workstation> workstations, Integer year, Integer month) {
        List<Long> ids = (List) workstations.stream().map((v0) -> {
        List<Long> ids = workstations.stream().map((v0) -> {
            return v0.getId();
        }).collect(Collectors.toList());
        List<NameIdDTO> workStationDetails = Lists.newArrayList();
        List<List<CountStatusDTO>> countStatus = Lists.newArrayList();
        Set<Integer> wcsList = (Set) listGlobalWcs().stream().map(c -> {
        Set<Integer> wcsList = listGlobalWcs().stream().map(c -> {
            return Integer.valueOf(Integer.parseInt(c.getCode()));
        }).collect(Collectors.toSet());
        List<SuperAggregateState> stateList = this.baseMapper.yearState(ids, year, month);
@@ -407,21 +221,21 @@
        List<NameIdDTO> workStationDetails = Lists.newArrayList();
        List<List<CountStatusDTO>> countStatus = Lists.newArrayList();
        IPage<Workstation> workstationPages = this.workstationService.listWorkStationOnShiftIndex(ids, queryTime, query, shiftIndex, WorkstationTypeEnum.MACHINE.getCode());
        Set<Integer> wcsList = (Set) listGlobalWcs().stream().map(c -> {
        Set<Integer> wcsList = listGlobalWcs().stream().map(c -> {
            return Integer.valueOf(Integer.parseInt(c.getCode()));
        }).collect(Collectors.toSet());
        LinkedHashMap<String, List<Workstation>> calendarMap = (LinkedHashMap) workstationPages.getRecords().stream().collect(Collectors.groupingBy((v0) -> {
        LinkedHashMap<String, List<Workstation>> calendarMap = workstationPages.getRecords().stream().collect(Collectors.groupingBy((v0) -> {
            return v0.getCalendarCode();
        }, LinkedHashMap::new, Collectors.toList()));
        calendarMap.forEach(calendarCode, workStationsList -> {
            List<Long> workStationIds = (List) workStationsList.stream().map((v0) -> {
        calendarMap.forEach((calendarCode, workStationsList) -> {
            List<Long> workStationIds =  workStationsList.stream().map((v0) -> {
                return v0.getId();
            }).collect(Collectors.toList());
            List<SuperAggregateState> stateList = this.baseMapper.shiftState(workStationIds, DateUtil.format(queryTime, "yyyyMMdd"), shiftIndex, calendarCode);
            Map<Long, Map<Integer, Long>> map = buildStateMap(wcsList, stateList);
            Iterator it = workStationsList.iterator();
            Iterator<Workstation> it = workStationsList.iterator();
            while (it.hasNext()) {
                Workstation workstation = (Workstation) it.next();
                Workstation workstation = it.next();
                workStationDetails.add(NameIdDTO.builder().id(workstation.getId()).name(workstation.getName() + "\n" + workstation.getCode()).build());
                Long id = workstation.getId();
                Map<Integer, Long> countResults = mergeMap(map.get(id), wcsList);
@@ -439,13 +253,24 @@
        LocalDate queryTime = stationVO.getQueryTime();
        String groupType = stationVO.getGroupType();
        String groupCategory = stationVO.getGroupCategory();
        long total = this.commonGroupService.count(Wrappers.<CommonGroup>lambdaQuery()
                .eq(CommonGroup::getGroupType, groupType)
                .eq(CommonGroup::getGroupCategory, groupCategory)
                .in(Func.isNotEmpty(ids), CommonGroup::getId, ids));
        /*
        long total = this.commonGroupService.count(((LambdaQueryWrapper) ((LambdaQueryWrapper) Wrappers.lambdaQuery().eq((v0) -> {
            return v0.getGroupType();
        }, groupType)).eq((v0) -> {
            return v0.getGroupCategory();
        }, groupCategory)).in(Func.isNotEmpty(ids), (v0) -> {
            return v0.getId();
        }, ids));
        }, ids));*/
        IPage<CommonGroup> page = this.commonGroupService.page(Condition.getPage(query), Wrappers.<CommonGroup>lambdaQuery()
                .eq(CommonGroup::getGroupType, groupType)
                .eq(CommonGroup::getGroupCategory, groupCategory)
                .in(Func.isNotEmpty(ids), CommonGroup::getId, ids)
                .orderByAsc(CommonGroup::getCode));
        /*
        IPage<CommonGroup> page = this.commonGroupService.page(Condition.getPage(query), (Wrapper) ((LambdaQueryWrapper) ((LambdaQueryWrapper) Wrappers.lambdaQuery().eq((v0) -> {
            return v0.getGroupType();
        }, groupType)).eq((v0) -> {
@@ -454,14 +279,15 @@
            return v0.getId();
        }, ids).orderByAsc((v0) -> {
            return v0.getCode();
        }));
        }));*/
        List<CommonGroup> groups = page.getRecords();
        if (Func.isEmpty(groups)) {
            return new TimeUsedAnalysisWorkstationVO();
        }
        Map<Long, Set<Long>> groupWorkstationMap = this.commonGroupService.groupWorkstationMap((List) groups.stream().map(c -> {
        Map<Long, Set<Long>> groupWorkstationMap = this.commonGroupService.groupWorkstationMap(groups.stream().map(c -> {
            return String.valueOf(c.getId());
        }).collect(Collectors.toList()));
        switch (methodEnum) {
            case DAY:
                res = buildTimeUsedAnalysisGroupDay(groups, groupWorkstationMap, queryTime);
@@ -473,25 +299,9 @@
                res = buildTimeUsedAnalysisGroupMonth(groups, groupWorkstationMap, stationVO.getYear(), stationVO.getMonth());
                break;
            default:
                Map<Long, Set<Long>> newGroupWorkstationMap = new HashMap<>(groupWorkstationMap.size());
                Integer shiftIndex = stationVO.getShiftIndex();
                Set<Long> workIds = this.workstationService.findByIndexAndDateAndTypeAndYear(Integer.valueOf(queryTime.getYear()), DateUtil.format(queryTime, "yyyyMMdd"), shiftIndex, WorkstationTypeEnum.MACHINE.getCode());
                groupWorkstationMap.forEach(k, v -> {
                    Stream stream = v.stream();
                    workIds.getClass();
                    if (stream.anyMatch((v1) -> {
                        return r1.contains(v1);
                    })) {
                        newGroupWorkstationMap.put(k, v);
                    }
                });
                if (Func.isEmpty(newGroupWorkstationMap)) {
                    res = new TimeUsedAnalysisWorkstationVO();
                    break;
                } else {
                    res = buildTimeUsedAnalysisGroupShift(groups, newGroupWorkstationMap, queryTime, shiftIndex);
                    break;
                }
               res = this.buildTimeUsedAnalysisShift(ids, queryTime, stationVO.getShiftIndex(), query);
                break;
        }
        res.setTotal(Long.valueOf(total));
        return res;
@@ -505,9 +315,9 @@
            Long id = group.getId();
            Set<Long> workstationIds = groupWorkstationMap.get(id);
            if (Func.isEmpty(workstationIds)) {
                countStatus.add(buildCountStatus(new HashMap(10)));
                countStatus.add(buildCountStatus(new HashMap<>(10)));
            } else {
                Set<Integer> wcsList = (Set) listGlobalWcs().stream().map(c -> {
                Set<Integer> wcsList = listGlobalWcs().stream().map(c -> {
                    return Integer.valueOf(Integer.parseInt(c.getCode()));
                }).collect(Collectors.toSet());
                List<SuperAggregateState> stateEndTimeNotNullList = this.baseMapper.dateState(DateUtil.format(queryTime, "yyyyMMdd"), Lists.newArrayList(workstationIds));
@@ -528,9 +338,9 @@
            Long id = group.getId();
            Set<Long> workstationIds = groupWorkstationMap.get(id);
            if (Func.isEmpty(workstationIds)) {
                countStatus.add(buildCountStatus(new HashMap(10)));
                countStatus.add(buildCountStatus(new HashMap<>(10)));
            } else {
                Set<Integer> wcsList = (Set) listGlobalWcs().stream().map(c -> {
                Set<Integer> wcsList = listGlobalWcs().stream().map(c -> {
                    return Integer.valueOf(Integer.parseInt(c.getCode()));
                }).collect(Collectors.toSet());
                List<SuperAggregateState> stateEndTimeNotNullList = this.baseMapper.weekState(Lists.newArrayList(workstationIds), year, week);
@@ -551,9 +361,9 @@
            Long id = group.getId();
            Set<Long> workstationIds = groupWorkstationMap.get(id);
            if (Func.isEmpty(workstationIds)) {
                countStatus.add(buildCountStatus(new HashMap(10)));
                countStatus.add(buildCountStatus(new HashMap<>(10)));
            } else {
                Set<Integer> wcsList = (Set) listGlobalWcs().stream().map(c -> {
                Set<Integer> wcsList = listGlobalWcs().stream().map(c -> {
                    return Integer.valueOf(Integer.parseInt(c.getCode()));
                }).collect(Collectors.toSet());
                List<SuperAggregateState> stateEndTimeNotNullList = this.baseMapper.yearState(Lists.newArrayList(workstationIds), year, month);
@@ -569,26 +379,26 @@
    private TimeUsedAnalysisWorkstationVO buildTimeUsedAnalysisGroupShift(List<CommonGroup> groups, Map<Long, Set<Long>> groupWorkstationMap, LocalDate queryTime, Integer shiftIndex) {
        List<NameIdDTO> workStationDetails = Lists.newArrayList();
        List<List<CountStatusDTO>> countStatus = Lists.newArrayList();
        List<Long> ids = (List) groupWorkstationMap.values().stream().flatMap((v0) -> {
        List<Long> ids =  groupWorkstationMap.values().stream().flatMap((v0) -> {
            return v0.stream();
        }).distinct().collect(Collectors.toList());
        Map<Long, String> calendarMap = findWorkstationCalendarCode(ids);
        Map<Long, CommonGroup> groupMap = (Map) groups.stream().collect(Collectors.toMap((v0) -> {
        Map<Long, CommonGroup> groupMap = groups.stream().collect(Collectors.toMap((v0) -> {
            return v0.getId();
        }, v -> {
            return v;
        }));
        groupWorkstationMap.forEach(groupId, workstationIds -> {
        groupWorkstationMap.forEach((groupId, workstationIds) -> {
            CommonGroup group = (CommonGroup) groupMap.getOrDefault(groupId, new CommonGroup());
            workStationDetails.add(NameIdDTO.builder().id(group.getId()).name(group.getName()).build());
            if (Func.isEmpty(workstationIds)) {
                countStatus.add(buildCountStatus(new HashMap(10)));
                countStatus.add(buildCountStatus(new HashMap<>(10)));
                return;
            }
            Set<Integer> wcsList = (Set) listGlobalWcs().stream().map(c -> {
            Set<Integer> wcsList = listGlobalWcs().stream().map(c -> {
                return Integer.valueOf(Integer.parseInt(c.getCode()));
            }).collect(Collectors.toSet());
            List<SuperAggregateState> superAggregateStates = (List) workstationIds.stream().map(wId -> {
            List<SuperAggregateState> superAggregateStates =  workstationIds.stream().map(wId -> {
                return this.baseMapper.countStatsShift(String.valueOf(wId), DateUtil.format(queryTime, "yyyyMMdd"), shiftIndex, String.valueOf(calendarMap.get(wId)));
            }).filter((v0) -> {
                return Func.isNotEmpty(v0);
@@ -607,20 +417,25 @@
    private Map<Long, String> findWorkstationCalendarCode(List<Long> workstationIds) {
        if (Func.isEmpty(workstationIds)) {
            return new HashMap(10);
            return new HashMap<>(10);
        }
        return this.workstationService.list(Wrappers.<Workstation>lambdaQuery()
                .in(Workstation::getId, workstationIds))
              .stream()
              .collect(Collectors.toMap(Workstation::getId, Workstation::getCalendarCode));
        /*
        return (Map) this.workstationService.list((Wrapper) Wrappers.lambdaQuery().in((v0) -> {
            return v0.getId();
        }, workstationIds)).stream().collect(Collectors.toMap((v0) -> {
            return v0.getId();
        }, (v0) -> {
            return v0.getCalendarCode();
        }));
        }));*/
    }
    private List<CountStatusDTO> buildCountStatus(Map<Integer, Long> map) {
        List<GlobalWcs> list = listGlobalWcs();
        return (List) list.stream().map(value -> {
        return list.stream().map(value -> {
            String code = value.getCode();
            Long count = (Long) map.getOrDefault(Integer.valueOf(Integer.parseInt(code)), 0L);
            return CountStatusDTO.builder().count(count).statusName(value.getName()).code(code).build();
@@ -630,7 +445,7 @@
    private Map<Long, Map<Integer, Long>> buildStateMap(Set<Integer> wcsList, List<SuperAggregateState> stateList) {
        List<SuperAggregateState> stateList2 = FilterOffUtils.filterOffDay(stateList, OpenTypeEnums.TIME_USED_ANALYSIS);
        Timestamp ts = new Timestamp(System.currentTimeMillis());
        return (Map) stateList2.stream().peek(c -> {
        return stateList2.stream().peek(c -> {
            Timestamp endTime = c.getEndTime();
            if (endTime == null) {
                c.setEndTime(ts);
@@ -649,7 +464,7 @@
    private Map<Integer, Long> buildStateGroupMap(Set<Integer> wcsList, List<SuperAggregateState> stateList) {
        Timestamp ts = new Timestamp(System.currentTimeMillis());
        return (Map) stateList.stream().peek(c -> {
        return stateList.stream().peek(c -> {
            Timestamp endTime = c.getEndTime();
            if (endTime == null) {
                c.setEndTime(ts);
@@ -693,15 +508,18 @@
    public Map<Long, List<ShiftIndexNameDTO>> queryWorkStationShiftIndex(List<Long> workstationIds, LocalDate localDate) {
        Map<Long, List<ShiftIndexNameDTO>> idToValue = Kv.newMap();
        workstationIds.forEach(workstationId -> {
           Workstation workstation = this.workstationService.getOne(Wrappers.<Workstation>lambdaQuery().eq(Workstation::getId, workstationId)
                 .eq(Workstation::getType, WorkstationTypeEnum.MACHINE.getCode()).isNotNull(Workstation::getCalendarCode));
           /*
            Workstation workstation = (Workstation) this.workstationService.getOne((Wrapper) ((LambdaQueryWrapper) ((LambdaQueryWrapper) Wrappers.lambdaQuery().eq((v0) -> {
                return v0.getId();
            }, workstationId)).eq((v0) -> {
                return v0.getType();
            }, WorkstationTypeEnum.MACHINE.getCode())).isNotNull((v0) -> {
                return v0.getCalendarCode();
            }));
            }));*/
            if (Func.isEmpty(workstation)) {
                idToValue.put(workstationId, new ArrayList());
                idToValue.put(workstationId, new ArrayList<>());
            }
            if (workstation != null) {
                List<ShiftIndexNameDTO> dtos = this.calendarService.queryShiftIndexName(workstation.getCalendarCode(), Integer.valueOf(localDate.getYear()), DateUtil.formatDate(localDate));
@@ -715,19 +533,23 @@
    public Map<Long, List<ShiftIndexNameDTO>> queryBatchWorkStationShiftIndex(List<Long> workstationIdList, LocalDate localDate) {
        Map<Long, List<ShiftIndexNameDTO>> idToValue = Kv.newMap();
        List<Workstation> workstations = this.workstationService.listByIds(workstationIdList);
        Map<String, List<Workstation>> collect = (Map) workstations.stream().collect(Collectors.groupingBy((v0) -> {
        Map<String, List<Workstation>> collect = workstations.stream().collect(Collectors.groupingBy((v0) -> {
            return v0.getCalendarCode();
        }));
        List<String> calendarCodeList = (List) workstations.stream().map((v0) -> {
        List<String> calendarCodeList =  workstations.stream().map((v0) -> {
            return v0.getCalendarCode();
        }).distinct().collect(Collectors.toList());
        calendarCodeList.forEach(calendarCode -> {
            List<ShiftIndexNameDTO> shiftIndexNameDTOList = this.calendarService.queryShiftIndexName(calendarCode, Integer.valueOf(localDate.getYear()), DateUtil.formatDate(localDate));
            List<Long> workstationIds = (List) ((List) collect.get(calendarCode)).stream().map((v0) -> {
            List<Long> workstationIds = collect.get(calendarCode).stream().map(Workstation::getId).collect(Collectors.toList());
            /*
            List<Long> workstationIds = collect.get(calendarCode).stream().map((v0) -> {
                return v0.getId();
            }).collect(Collectors.toList());
            */
            workstationIds.forEach(workstationId -> {
                List list = (List) idToValue.put(workstationId, shiftIndexNameDTOList);
                List list = idToValue.put(workstationId, shiftIndexNameDTOList);
            });
        });
        return idToValue;
@@ -739,12 +561,16 @@
        StatisticalMethodEnum enums = vo.getEnums();
        List<Long> ids = vo.getIds();
        if (Func.isEmpty(ids)) {
           workstations = this.workstationService.list(Wrappers.<Workstation>lambdaQuery()
                     .eq(Workstation::getType, WorkstationTypeEnum.MACHINE.getCode())
                     .eq(Workstation::getStatus, CommonConstant.ENABLE));
           /*
            workstations = this.workstationService.list((Wrapper) ((LambdaQueryWrapper) Wrappers.lambdaQuery().eq((v0) -> {
                return v0.getType();
            }, WorkstationTypeEnum.MACHINE.getCode())).eq((v0) -> {
                return v0.getStatus();
            }, CommonConstant.ENABLE));
            ids = (List) workstations.stream().map((v0) -> {
            }, CommonConstant.ENABLE));*/
            ids = workstations.stream().map((v0) -> {
                return v0.getId();
            }).collect(Collectors.toList());
        } else {
@@ -753,7 +579,7 @@
        if (Func.isEmpty(ids)) {
            return exportEmpty(vo.getEnums());
        }
        Map<Long, Workstation> workstationMap = (Map) workstations.stream().collect(Collectors.toMap((v0) -> {
        Map<Long, Workstation> workstationMap = workstations.stream().collect(Collectors.toMap((v0) -> {
            return v0.getId();
        }, v -> {
            return v;
@@ -815,28 +641,26 @@
            return Lists.newArrayList();
        }
        List<TimeUsedDateExcel> timeUsedExports = Lists.newArrayList();
        Map<String, Map<Long, List<SuperAggregateState>>> stateMap = (Map) filterData.stream().sorted(Comparator.comparing((v0) -> {
            return v0.getFactoryYear();
        }).reversed().thenComparing((v0) -> {
            return v0.getFactoryMonth();
        }).reversed()).collect(Collectors.groupingBy(c -> {
        Map<String, Map<Long, List<SuperAggregateState>>> stateMap = filterData.stream().sorted(Comparator.comparing(SuperAggregateState::getFactoryYear).reversed().thenComparing(SuperAggregateState::getFactoryMonth).reversed()).collect(Collectors.groupingBy(c -> {
            return c.getFactoryYear() + "-" + c.getFactoryMonth();
        }, Collectors.groupingBy((v0) -> {
            return v0.getWorkstationId();
        })));
        stateMap.forEach(date, stats -> {
            stats.forEach(workstationId, statsList -> {
        stateMap.forEach((date, stats) -> {
            stats.forEach((workstationId, statsList) -> {
                Workstation workstation = (Workstation) workstationMap.getOrDefault(workstationId, new Workstation());
                GroupWorkDTO groupWork = (GroupWorkDTO) groupWorkMap.getOrDefault(workstationId, new GroupWorkDTO());
                Map<Integer, String> wcsMap = getWcsMap((Set) listGlobalWcs().stream().map(c2 -> {
                Map<Integer, String> wcsMap = getWcsMap(listGlobalWcs().stream().map(c2 -> {
                    return Integer.valueOf(Integer.parseInt(c2.getCode()));
                }).collect(Collectors.toSet()), statsList);
                timeUsedExports.add(TimeUsedDateExcel.builder().date(date).groupName(groupWork.getName()).workstationCode(workstation.getCode()).workstationName(workstation.getName()).running(wcsMap.get(DefaultWcsEnum.RUNNING.getCode())).standby(wcsMap.get(DefaultWcsEnum.STANDBY.getCode())).debugging(wcsMap.get(DefaultWcsEnum.DEBUGGING.getCode())).alarm(wcsMap.get(DefaultWcsEnum.ALARM.getCode())).offline(wcsMap.get(DefaultWcsEnum.OFFLINE.getCode())).build());
            });
        });
        timeUsedExports.sort(Comparator.comparing(TimeUsedDateExcel::getDate).reversed());
        /*
        timeUsedExports.sort(Comparator.comparing((v0) -> {
            return v0.getDate();
        }).reversed());
        }).reversed());*/
        return timeUsedExports;
    }
@@ -859,9 +683,7 @@
        if (Func.isEmpty(filterData)) {
            return Lists.newArrayList();
        }
        Map<String, Map<Long, List<SuperAggregateState>>> stateMap = (Map) filterData.stream().sorted(Comparator.comparing((v0) -> {
            return v0.getFactoryYear();
        }).reversed().thenComparing((v0) -> {
        Map<String, Map<Long, List<SuperAggregateState>>> stateMap = filterData.stream().sorted(Comparator.comparing(SuperAggregateState::getFactoryYear).reversed().thenComparing((v0) -> {
            return v0.getFactoryWeek();
        }).reversed()).collect(Collectors.groupingBy(c -> {
            return c.getFactoryYear() + "-" + c.getFactoryWeek();
@@ -869,19 +691,21 @@
            return v0.getWorkstationId();
        })));
        List<TimeUsedDateExcel> timeUsedExports = Lists.newArrayList();
        stateMap.forEach(date, stats -> {
            stats.forEach(workstationId, statsList -> {
                Workstation workstation = (Workstation) workstationMap.getOrDefault(workstationId, new Workstation());
                GroupWorkDTO groupWork = (GroupWorkDTO) groupWorkMap.getOrDefault(workstationId, new GroupWorkDTO());
                Map<Integer, String> wcsMap = getWcsMap((Set) listGlobalWcs().stream().map(c2 -> {
        stateMap.forEach((date, stats) -> {
            stats.forEach((workstationId, statsList) -> {
                Workstation workstation = workstationMap.getOrDefault(workstationId, new Workstation());
                GroupWorkDTO groupWork = groupWorkMap.getOrDefault(workstationId, new GroupWorkDTO());
                Map<Integer, String> wcsMap = getWcsMap(listGlobalWcs().stream().map(c2 -> {
                    return Integer.valueOf(Integer.parseInt(c2.getCode()));
                }).collect(Collectors.toSet()), statsList);
                timeUsedExports.add(TimeUsedDateExcel.builder().date(getWeek(date)).groupName(groupWork.getName()).workstationCode(workstation.getCode()).workstationName(workstation.getName()).running(wcsMap.get(DefaultWcsEnum.RUNNING.getCode())).standby(wcsMap.get(DefaultWcsEnum.STANDBY.getCode())).debugging(wcsMap.get(DefaultWcsEnum.DEBUGGING.getCode())).alarm(wcsMap.get(DefaultWcsEnum.ALARM.getCode())).offline(wcsMap.get(DefaultWcsEnum.OFFLINE.getCode())).build());
            });
        });
        timeUsedExports.sort(Comparator.comparing(TimeUsedDateExcel::getDate).reversed());
        /*
        timeUsedExports.sort(Comparator.comparing((v0) -> {
            return v0.getDate();
        }).reversed());
        }).reversed());*/
        return timeUsedExports;
    }
@@ -900,27 +724,27 @@
        if (Func.isEmpty(statusData)) {
            return Lists.newArrayList();
        }
        Map<Integer, Map<Long, List<SuperAggregateState>>> map = (Map) statusData.stream().sorted(Comparator.comparing((v0) -> {
            return v0.getFactoryDate();
        }).reversed()).collect(Collectors.groupingBy((v0) -> {
        Map<Integer, Map<Long, List<SuperAggregateState>>> map = statusData.stream().sorted(Comparator.comparing(SuperAggregateState::getFactoryDate).reversed()).collect(Collectors.groupingBy((v0) -> {
            return v0.getFactoryDate();
        }, Collectors.groupingBy((v0) -> {
            return v0.getWorkstationId();
        })));
        List<TimeUsedDateExcel> timeUsedExports = Lists.newArrayList();
        map.forEach(date, status -> {
            status.forEach(workstationId, statsList -> {
                Workstation workstation = (Workstation) workstationMap.getOrDefault(workstationId, new Workstation());
                GroupWorkDTO groupWork = (GroupWorkDTO) groupWorkMap.getOrDefault(workstationId, new GroupWorkDTO());
                Map<Integer, String> wcsMap = getWcsMap((Set) listGlobalWcs().stream().map(c -> {
        map.forEach((date, status) -> {
            status.forEach((workstationId, statsList) -> {
                Workstation workstation = workstationMap.getOrDefault(workstationId, new Workstation());
                GroupWorkDTO groupWork = groupWorkMap.getOrDefault(workstationId, new GroupWorkDTO());
                Map<Integer, String> wcsMap = getWcsMap(listGlobalWcs().stream().map(c -> {
                    return Integer.valueOf(Integer.parseInt(c.getCode()));
                }).collect(Collectors.toSet()), statsList);
                timeUsedExports.add(TimeUsedDateExcel.builder().date(getDay(date)).groupName(groupWork.getName()).workstationCode(workstation.getCode()).workstationName(workstation.getName()).running(wcsMap.get(DefaultWcsEnum.RUNNING.getCode())).standby(wcsMap.get(DefaultWcsEnum.STANDBY.getCode())).debugging(wcsMap.get(DefaultWcsEnum.DEBUGGING.getCode())).alarm(wcsMap.get(DefaultWcsEnum.ALARM.getCode())).offline(wcsMap.get(DefaultWcsEnum.OFFLINE.getCode())).build());
            });
        });
        timeUsedExports.sort(Comparator.comparing(TimeUsedDateExcel::getDate).reversed());
        /*
        timeUsedExports.sort(Comparator.comparing((v0) -> {
            return v0.getDate();
        }).reversed());
        }).reversed());*/
        return timeUsedExports;
    }
@@ -953,22 +777,22 @@
            if (Func.isEmpty(workstations)) {
                endTime = endTime.minusDays(1L);
            } else {
                List<Long> wIds = (List) workstations.stream().map((v0) -> {
                List<Long> wIds = workstations.stream().map((v0) -> {
                    return v0.getId();
                }).collect(Collectors.toList());
                Map<Long, Workstation> workstationMap = (Map) workstations.stream().collect(Collectors.toMap((v0) -> {
                Map<Long, Workstation> workstationMap = workstations.stream().collect(Collectors.toMap((v0) -> {
                    return v0.getId();
                }, v -> {
                    return v;
                }));
                Map<String, List<Workstation>> calendarCodeMap = (Map) workstations.stream().collect(Collectors.groupingBy((v0) -> {
                Map<String, List<Workstation>> calendarCodeMap = workstations.stream().collect(Collectors.groupingBy((v0) -> {
                    return v0.getCalendarCode();
                }));
                LocalDate finalEndTime = endTime;
                Map<String, Map<Integer, ShiftDetail>> shiftNameMap = new HashMap<>(calendarCodeMap.size());
                calendarCodeMap.forEach(calendarCode, wList -> {
                calendarCodeMap.forEach((calendarCode, wList) -> {
                    List<ShiftDetail> timeShiftDetail = TimeSliceCache.getTimeShiftDetail(calendarCode, finalEndTime);
                    Map<Integer, ShiftDetail> map = (Map) timeShiftDetail.stream().collect(Collectors.toMap((v0) -> {
                    Map<Integer, ShiftDetail> map = timeShiftDetail.stream().collect(Collectors.toMap((v0) -> {
                        return v0.getShiftIndex();
                    }, v2 -> {
                        return v2;
@@ -991,7 +815,7 @@
        if (Func.isEmpty(states)) {
            return Lists.newArrayList();
        }
        Map<Long, Map<Integer, List<SuperAggregateState>>> stateMap = (Map) states.stream().filter(c -> {
        Map<Long, Map<Integer, List<SuperAggregateState>>> stateMap = states.stream().filter(c -> {
            return MdcConstant.SHIFT_INDEX.contains(c.getShiftIndex());
        }).collect(Collectors.groupingBy((v0) -> {
            return v0.getWorkstationId();
@@ -999,15 +823,15 @@
            return v0.getShiftIndex();
        })));
        List<TimeUsedExport> res = Lists.newArrayList();
        stateMap.forEach(workstationId, shiftMap -> {
        stateMap.forEach((workstationId, shiftMap) -> {
            Workstation workstation = (Workstation) workstationMap.getOrDefault(workstationId, new Workstation());
            GroupWorkDTO groupWorkDTO = (GroupWorkDTO) groupWorkMap.getOrDefault(workstationId, new GroupWorkDTO());
            shiftMap.forEach(shiftIndex, stateList -> {
            shiftMap.forEach((shiftIndex, stateList) -> {
                if (MdcConstant.SHIFT_INDEX.contains(shiftIndex)) {
                    String shiftName = (String) Optional.ofNullable(shiftNameMap.get(workstation.getCalendarCode())).map(m -> {
                    String shiftName = Optional.ofNullable(shiftNameMap.get(workstation.getCalendarCode())).map(m -> {
                        return ((ShiftDetail) m.getOrDefault(shiftIndex, new ShiftDetail())).getIndexName();
                    }).orElse(MessageUtils.message("calendar.page.shift.model.shift", new Object[0]) + shiftIndex);
                    Map<Integer, String> wcsMap = getWcsMap((Set) listGlobalWcs().stream().map(c2 -> {
                    Map<Integer, String> wcsMap = getWcsMap(listGlobalWcs().stream().map(c2 -> {
                        return Integer.valueOf(Integer.parseInt(c2.getCode()));
                    }).collect(Collectors.toSet()), stateList);
                    TimeUsedExport build = TimeUsedExport.builder().date(date).groupName(groupWorkDTO.getName()).workstationCode(workstation.getCode()).workstationName(workstation.getName()).shiftName(shiftName).running(wcsMap.get(DefaultWcsEnum.RUNNING.getCode())).standby(wcsMap.get(DefaultWcsEnum.STANDBY.getCode())).debugging(wcsMap.get(DefaultWcsEnum.DEBUGGING.getCode())).alarm(wcsMap.get(DefaultWcsEnum.ALARM.getCode())).offline(wcsMap.get(DefaultWcsEnum.OFFLINE.getCode())).build();
@@ -1019,7 +843,7 @@
    }
    private Map<Integer, String> getWcsMap(Set<Integer> wcsList, List<SuperAggregateState> states) {
        Map<Integer, Long> map = (Map) states.stream().filter(c -> {
        Map<Integer, Long> map = states.stream().filter(c -> {
            return (!wcsList.contains(c.getValueCollect()) || c.getValueCollect() == null || c.getDurationCollect() == null) ? false : true;
        }).collect(Collectors.groupingBy((v0) -> {
            return v0.getValueCollect();
@@ -1046,6 +870,12 @@
    private WorkstationBandShiftVO getWorkShiftIndexName(QueryShiftIndexNameVO vo) {
        List<String> ids = vo.getIds();
        LocalDate localDate = vo.getLocalDate();
        List<Workstation> workstations = this.workstationService.list(Wrappers.<Workstation>lambdaQuery()
                .in(Func.isNotEmpty(ids), Workstation::getId, ids)
                .eq(Workstation::getType, WorkstationTypeEnum.MACHINE.getCode())
                .isNotNull(Workstation::getCalendarCode)
                .orderByAsc(Workstation::getCode));
        /*
        List<Workstation> workstations = this.workstationService.list((Wrapper) ((LambdaQueryWrapper) ((LambdaQueryWrapper) Wrappers.lambdaQuery().in(Func.isNotEmpty(ids), (v0) -> {
            return v0.getId();
        }, ids).eq((v0) -> {
@@ -1054,12 +884,12 @@
            return v0.getCalendarCode();
        })).orderByAsc((v0) -> {
            return v0.getCode();
        }));
        }));*/
        return getWorkstationBandShiftVO(localDate, workstations);
    }
    private WorkstationBandShiftVO getWorkstationBandShiftVO(LocalDate localDate, List<Workstation> workstations) {
        Map<String, List<Workstation>> calendarCodeMap = (Map) workstations.stream().collect(Collectors.groupingBy((v0) -> {
        Map<String, List<Workstation>> calendarCodeMap = workstations.stream().collect(Collectors.groupingBy((v0) -> {
            return v0.getCalendarCode();
        }));
        if (Func.isEmpty(calendarCodeMap)) {
@@ -1067,7 +897,7 @@
        }
        if (calendarCodeMap.size() == 1) {
            List<MixShiftDetailsDTO> result = Lists.newArrayList();
            calendarCodeMap.forEach(calendarCode, workstationList -> {
            calendarCodeMap.forEach((calendarCode, workstationList) -> {
                List<ShiftIndexNameDTO> shiftDetails = this.calendarService.queryShiftIndexName(calendarCode, Integer.valueOf(localDate.getYear()), DateUtil.formatDate(localDate));
                this.calendarService.queryShiftIndexName(calendarCode, Integer.valueOf(localDate.getYear()), DateUtil.formatDate(localDate));
                for (ShiftIndexNameDTO shiftDetail : shiftDetails) {
@@ -1081,7 +911,7 @@
        List<ShiftIndexNameDTO> shiftTwo = Lists.newArrayList();
        List<ShiftIndexNameDTO> shiftThree = Lists.newArrayList();
        List<ShiftIndexNameDTO> shiftFour = Lists.newArrayList();
        calendarCodeMap.forEach(calendarCode2, workstationList2 -> {
        calendarCodeMap.forEach((calendarCode2, workstationList2) -> {
            List<ShiftIndexNameDTO> shiftDetails = this.calendarService.queryShiftIndexName(calendarCode2, Integer.valueOf(localDate.getYear()), DateUtil.formatDate(localDate));
            for (ShiftIndexNameDTO shiftDetail : shiftDetails) {
                if (CalendarConstant.ONE.equals(shiftDetail.getShiftIndex())) {
@@ -1125,17 +955,22 @@
        String groupType = vo.getGroupType();
        String groupCategory = vo.getGroupCategory();
        LocalDate localDate = vo.getLocalDate();
        List<CommonGroup> commonGroups = this.commonGroupService.list(Wrappers.<CommonGroup>lambdaQuery()
                .eq(CommonGroup::getGroupType, groupType)
                .eq(CommonGroup::getGroupCategory, groupCategory)
                .in(Func.isNotEmpty(ids), CommonGroup::getId, ids));
        /*
        List<CommonGroup> commonGroups = this.commonGroupService.list(((LambdaQueryWrapper) ((LambdaQueryWrapper) Wrappers.lambdaQuery().eq((v0) -> {
            return v0.getGroupType();
        }, groupType)).eq((v0) -> {
            return v0.getGroupCategory();
        }, groupCategory)).in(Func.isNotEmpty(ids), (v0) -> {
            return v0.getId();
        }, ids));
        }, ids));*/
        if (Func.isEmpty(commonGroups)) {
            return new WorkstationBandShiftVO();
        }
        List<String> groupIds = (List) commonGroups.stream().map(c -> {
        List<String> groupIds = commonGroups.stream().map(c -> {
            return String.valueOf(c.getId());
        }).collect(Collectors.toList());
        List<Workstation> workstations = this.workstationService.listWorkStationByGroupId(groupIds);