yangys
2024-04-23 fe1a8b44747f355c5f3d293a0b8034d01d553b45
smart-man-boot/src/main/java/com/qianwen/smartman/modules/mdc/service/impl/SuperAggregateStateServiceImpl.java
@@ -1,9 +1,5 @@
package com.qianwen.smartman.modules.mdc.service.impl;
import cn.hutool.core.date.LocalDateTimeUtil;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import java.lang.invoke.SerializedLambda;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.sql.Timestamp;
@@ -13,20 +9,24 @@
import java.util.ArrayList;
import java.util.Comparator;
import java.util.Date;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.function.Function;
import java.util.stream.Collectors;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.qianwen.core.tool.utils.DateUtil;
import com.qianwen.core.tool.utils.Func;
import com.qianwen.smartman.common.constant.CommonConstant;
import com.qianwen.smartman.common.constant.DateConstant;
import com.qianwen.smartman.common.utils.LocalDateTimeUtils;
import com.qianwen.core.tool.utils.DateUtil;
import com.qianwen.core.tool.utils.Func;
import com.qianwen.smartman.modules.cps.entity.Workstation;
import com.qianwen.smartman.modules.cps.service.IWorkstationService;
import com.qianwen.smartman.modules.mdc.entity.SuperAggregate;
import com.qianwen.smartman.modules.mdc.entity.SuperAggregateState;
import com.qianwen.smartman.modules.mdc.enums.OpenTypeEnums;
import com.qianwen.smartman.modules.mdc.enums.StatisticalMethodEnum;
@@ -35,38 +35,15 @@
import com.qianwen.smartman.modules.mdc.service.ISuperAggregateStateService;
import com.qianwen.smartman.modules.mdc.utils.FilterOffUtils;
import com.qianwen.smartman.modules.mdc.vo.StatusTimeTopVO;
import org.springframework.stereotype.Service;
import cn.hutool.core.date.LocalDateTimeUtil;
@Service
/* loaded from: blade-api.jar:BOOT-INF/classes/org/springblade/modules/mdc/service/impl/SuperAggregateStateServiceImpl.class */
public class SuperAggregateStateServiceImpl implements ISuperAggregateStateService {
    private static final Logger log = LoggerFactory.getLogger(SuperAggregateStateServiceImpl.class);
    private final SuperAggregateStateMapper baseMapper;
    private final SuperAggregateStateFeedbackMapper aggregateStateFeedbackMapper;
    private final IWorkstationService workstationService;
    private static /* synthetic */ Object $deserializeLambda$(SerializedLambda lambda) {
        String implMethodName = lambda.getImplMethodName();
        boolean z = true;
        switch (implMethodName.hashCode()) {
            case 803533544:
                if (implMethodName.equals("getStatus")) {
                    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/core/mp/base/BaseEntity") && lambda.getImplMethodSignature().equals("()Ljava/lang/Integer;")) {
                    return (v0) -> {
                        return v0.getStatus();
                    };
                }
                break;
        }
        throw new IllegalArgumentException("Invalid lambda deserialization");
    }
    public SuperAggregateStateServiceImpl(final SuperAggregateStateMapper baseMapper, final SuperAggregateStateFeedbackMapper aggregateStateFeedbackMapper, final IWorkstationService workstationService) {
        this.baseMapper = baseMapper;
@@ -74,7 +51,7 @@
        this.workstationService = workstationService;
    }
    @Override // org.springblade.modules.mdc.service.ISuperAggregateStateService
    @Override
    public List<SuperAggregateState> getStatusData(List<Long> workstationIds, StatisticalMethodEnum statisticalMethod, LocalDate startDate, LocalDate endDate) {
        List<SuperAggregateState> statusDataList;
        if (StatisticalMethodEnum.SHIFT.equals(statisticalMethod) || StatisticalMethodEnum.DAY.equals(statisticalMethod) || StatisticalMethodEnum.WEEK.equals(statisticalMethod) || StatisticalMethodEnum.MONTH.equals(statisticalMethod)) {
@@ -85,8 +62,9 @@
        return buildDuration(statusDataList);
    }
    @Override // org.springblade.modules.mdc.service.ISuperAggregateStateService
    @Override
    public List<SuperAggregateState> getStatusDataWithFeedback(List<Long> workstationIds, StatisticalMethodEnum statisticalMethod, LocalDate startDate, LocalDate endDate) {
       //稼动率查询
        List<SuperAggregateState> statusDataList;
        if (StatisticalMethodEnum.SHIFT.equals(statisticalMethod) || StatisticalMethodEnum.DAY.equals(statisticalMethod) || StatisticalMethodEnum.WEEK.equals(statisticalMethod) || StatisticalMethodEnum.MONTH.equals(statisticalMethod)) {
            statusDataList = this.aggregateStateFeedbackMapper.getStatusDataByFactoryDate(workstationIds, LocalDateTimeUtil.format(startDate, "yyyyMMdd"), LocalDateTimeUtil.format(endDate, "yyyyMMdd"));
@@ -96,28 +74,33 @@
        return buildDuration(statusDataList);
    }
    @Override // org.springblade.modules.mdc.service.ISuperAggregateStateService
    @Override
    public List<SuperAggregateState> getStatusByCondition(List<Long> workstationIds, LocalDateTime startTime, LocalDateTime endTime) {
        List<SuperAggregateState> statusDataList = this.baseMapper.getStatusData(workstationIds, LocalDateTimeUtil.format(startTime, DateConstant.PATTERN_DATE_TIME), LocalDateTimeUtil.format(endTime, DateConstant.PATTERN_DATE_TIME));
        return buildDuration(statusDataList);
    }
    @Override // org.springblade.modules.mdc.service.ISuperAggregateStateService
    @Override
    public List<SuperAggregateState> getStatusByTimeSection(List<Long> workstationIds, LocalDateTime startTime, LocalDateTime endTime) {
        List<SuperAggregateState> statusDataList = this.baseMapper.getStatusDataByTimeSection(workstationIds, LocalDateTimeUtil.format(startTime, DateConstant.PATTERN_DATE_TIME), LocalDateTimeUtil.format(endTime, DateConstant.PATTERN_DATE_TIME));
        return buildDuration(startTime, statusDataList);
    }
    @Override // org.springblade.modules.mdc.service.ISuperAggregateStateService
    @Override
    public List<StatusTimeTopVO> getStatusTimeByWcs(List<Long> workstationIds, LocalDateTime startTime, LocalDateTime endTime, Integer status, Integer top) {
        List<StatusTimeTopVO> voList = new ArrayList<>();
        Map<Long, Workstation> workstationMap = this.workstationService.list(Wrappers.<Workstation>lambdaQuery()
              .eq(Workstation::getStatus, CommonConstant.ENABLE)).stream().collect(Collectors.toMap(Workstation::getId, Function.identity()));
        /*
        Map<Long, Workstation> workstationMap = (Map) this.workstationService.list((Wrapper) Wrappers.lambdaQuery().eq((v0) -> {
            return v0.getStatus();
        }, CommonConstant.ENABLE)).stream().collect(Collectors.toMap((v0) -> {
            return v0.getId();
        }, Function.identity()));
        }, Function.identity()));*/
        List<SuperAggregateState> equipmentStatusDuration = this.baseMapper.getEquipmentStatusDuration(workstationIds, LocalDateTimeUtil.format(startTime, DateConstant.PATTERN_DATE_TIME), LocalDateTimeUtil.format(endTime, DateConstant.PATTERN_DATE_TIME), status);
        Map<Long, Long> timeMap = (Map) ((Map) buildDuration(startTime, FilterOffUtils.filterOffDay(equipmentStatusDuration, OpenTypeEnums.TIME_USED_ANALYSIS)).stream().collect(Collectors.groupingBy((v0) -> {
        Map<Long, Long> timeMap = buildDuration(startTime, equipmentStatusDuration).stream().collect(Collectors.groupingBy(SuperAggregate::getWorkstationId, Collectors.summingLong(SuperAggregateState::getDurationCollect))).entrySet().stream().sorted(Map.Entry.comparingByValue(Comparator.reverseOrder())).limit(top.intValue()).collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, (oldValue, newValue) -> oldValue, java.util.LinkedHashMap::new));
        /*
        Map<Long, Long> timeMap = (buildDuration(startTime, FilterOffUtils.filterOffDay(equipmentStatusDuration, OpenTypeEnums.TIME_USED_ANALYSIS)).stream().collect(Collectors.groupingBy((v0) -> {
            return v0.getWorkstationId();
        }, Collectors.summingLong((v0) -> {
            return v0.getDurationCollect();
@@ -125,10 +108,10 @@
            return v0.getKey();
        }, (v0) -> {
            return v0.getValue();
        }, oldValue, newValue -> {
        }, (oldValue, newValue) -> {
            return oldValue;
        }, LinkedHashMap::new));
        timeMap.forEach(k, v -> {
        }, LinkedHashMap::new));*/
        timeMap.forEach((k, v) -> {
            StatusTimeTopVO statusTimeTopVO = new StatusTimeTopVO();
            statusTimeTopVO.setValue(Double.valueOf(secondToHour(v)));
            statusTimeTopVO.setWorkstation((Workstation) workstationMap.get(k));
@@ -137,44 +120,44 @@
        return voList;
    }
    @Override // org.springblade.modules.mdc.service.ISuperAggregateStateService
    @Override
    public List<SuperAggregateState> getOeeAnalysis(List<Long> workStationIdList, LocalDateTime startTime, LocalDateTime endTime) {
        List<SuperAggregateState> statusDataList = this.baseMapper.getEquipmentStatusDuration(workStationIdList, LocalDateTimeUtil.format(startTime, DateConstant.PATTERN_DATE_TIME), LocalDateTimeUtil.format(endTime, DateConstant.PATTERN_DATE_TIME), null);
        return buildDuration(startTime, FilterOffUtils.filterOffDay(statusDataList, OpenTypeEnums.OEE));
    }
    @Override // org.springblade.modules.mdc.service.ISuperAggregateStateService
    @Override
    public List<SuperAggregateState> getShiftStatusData(List<Long> workstationIdList, String factoryDate, Integer shiftIndex) {
        List<SuperAggregateState> statusDataShift = this.baseMapper.getStatusDataShift(Integer.valueOf(factoryDate.replace("-", "")), shiftIndex, workstationIdList);
        return buildDuration(statusDataShift);
    }
    @Override // org.springblade.modules.mdc.service.ISuperAggregateStateService
    @Override
    public List<SuperAggregateState> getStatusByFactory(List<Long> workstationIdList, String factoryDate, Integer shiftIndex) {
        List<SuperAggregateState> statusDataShift = this.baseMapper.getStatusByFactory(Integer.valueOf(Func.toInt(factoryDate.replace("-", ""))), shiftIndex, workstationIdList);
        return buildDuration(statusDataShift);
    }
    @Override // org.springblade.modules.mdc.service.ISuperAggregateStateService
    @Override
    public List<SuperAggregateState> listsState(List<Long> ids, LocalDate queryTime, List<Integer> shiftIndex) {
        String factoryDate = DateUtil.format(queryTime, DateConstant.PATTERN_DATE);
        List<SuperAggregateState> statusDataShift = this.baseMapper.listsState(Integer.valueOf(Func.toInt(factoryDate.replace("-", ""))), ids, shiftIndex);
        return buildDuration(statusDataShift);
    }
    @Override // org.springblade.modules.mdc.service.ISuperAggregateStateService
    @Override
    public List<SuperAggregateState> getDataByWeek(List<Long> ids, Integer year, List<Integer> weekList) {
        List<SuperAggregateState> data = this.baseMapper.getDataByWeek(ids, year, weekList);
        return buildDuration(data);
    }
    @Override // org.springblade.modules.mdc.service.ISuperAggregateStateService
    @Override
    public List<SuperAggregateState> getDataByMonth(List<Long> ids, Integer year, List<Integer> monthList) {
        List<SuperAggregateState> data = this.baseMapper.getDataByMonth(ids, year, monthList);
        return buildDuration(data);
    }
    @Override // org.springblade.modules.mdc.service.ISuperAggregateStateService
    @Override
    public List<SuperAggregateState> crossDay(LocalDateTime start, LocalDateTime end) {
        String startTime = DateUtil.formatDateTime(start);
        String endTime = DateUtil.formatDateTime(end);
@@ -182,17 +165,20 @@
        return buildDuration(res);
    }
    @Override // org.springblade.modules.mdc.service.ISuperAggregateStateService
    @Override
    public void saveState(List<SuperAggregateState> collect) {
        Map<Long, List<SuperAggregateState>> map = (Map) collect.stream().collect(Collectors.groupingBy((v0) -> {
       Map<Long, List<SuperAggregateState>> map = collect.stream().collect(Collectors.groupingBy(SuperAggregate::getWorkstationId));
       map.forEach(this.baseMapper::saveState);
       /*
        Map<Long, List<SuperAggregateState>> map = collect.stream().collect(Collectors.groupingBy((v0) -> {
            return v0.getWorkstationId();
        }));
        SuperAggregateStateMapper superAggregateStateMapper = this.baseMapper;
        superAggregateStateMapper.getClass();
        map.forEach(this::saveState);
        map.forEach(this::saveState);*/
    }
    @Override // org.springblade.modules.mdc.service.ISuperAggregateStateService
    @Override
    public List<SuperAggregateState> getStatusDataByTime(List<Long> workstationIdList, LocalDateTime start, LocalDateTime end) {
        List<SuperAggregateState> superAggregateStateList = new ArrayList<>();
        String startTime = LocalDateTimeUtil.format(start, "yyyy-MM-dd HH:mm:ss.SSS");
@@ -227,73 +213,73 @@
        return superAggregateStateList;
    }
    @Override // org.springblade.modules.mdc.service.ISuperAggregateStateService
    @Override
    public List<SuperAggregateState> queryPerfByDay(Long workstationId, String startTime, String endTime, Long employeeId) {
        List<SuperAggregateState> states = this.baseMapper.queryPerfByDay(workstationId, startTime, endTime, employeeId);
        return buildDuration(states);
    }
    @Override // org.springblade.modules.mdc.service.ISuperAggregateStateService
    @Override
    public List<SuperAggregateState> queryPerfByWeek(Long workstationId, List<Integer> weeks, Long employeeId) {
        List<SuperAggregateState> states = this.baseMapper.queryPerfByWeek(workstationId, weeks, employeeId);
        return buildDuration(states);
    }
    @Override // org.springblade.modules.mdc.service.ISuperAggregateStateService
    @Override
    public List<SuperAggregateState> queryPerfByMonth(Long workstationId, List<Integer> months, Long employeeId) {
        List<SuperAggregateState> states = this.baseMapper.queryPerfByMonth(workstationId, months, employeeId);
        return buildDuration(states);
    }
    @Override // org.springblade.modules.mdc.service.ISuperAggregateStateService
    @Override
    public List<SuperAggregateState> queryPerfByEtDay(Long employeeId, String queryTime) {
        List<SuperAggregateState> states = this.baseMapper.queryPerfByEtDay(employeeId, queryTime);
        return buildDuration(states);
    }
    @Override // org.springblade.modules.mdc.service.ISuperAggregateStateService
    @Override
    public List<SuperAggregateState> queryPerfByEtWeek(Long employeeId, Integer week) {
        List<SuperAggregateState> states = this.baseMapper.queryPerfByEtWeek(employeeId, week);
        return buildDuration(states);
    }
    @Override // org.springblade.modules.mdc.service.ISuperAggregateStateService
    @Override
    public List<SuperAggregateState> queryPerfByEtMonth(Long employeeId, Integer month) {
        List<SuperAggregateState> states = this.baseMapper.queryPerfByEtMonth(employeeId, month);
        return buildDuration(states);
    }
    @Override // org.springblade.modules.mdc.service.ISuperAggregateStateService
    @Override
    public List<SuperAggregateState> queryPerfByWtDay(Long workstationId, String time) {
        List<SuperAggregateState> states = this.baseMapper.queryPerfByWtDay(workstationId, time);
        return buildDuration(states);
    }
    @Override // org.springblade.modules.mdc.service.ISuperAggregateStateService
    @Override
    public List<SuperAggregateState> queryPerfByWtWeek(Long workstationId, Integer week) {
        List<SuperAggregateState> states = this.baseMapper.queryPerfByWtWeek(workstationId, week);
        return buildDuration(states);
    }
    @Override // org.springblade.modules.mdc.service.ISuperAggregateStateService
    @Override
    public List<SuperAggregateState> queryPerfByWtMonth(Long workstationId, Integer month) {
        List<SuperAggregateState> states = this.baseMapper.queryPerfByWtMonth(workstationId, month);
        return buildDuration(states);
    }
    @Override // org.springblade.modules.mdc.service.ISuperAggregateStateService
    @Override
    public List<SuperAggregateState> getCurrMonthState(List<Long> ids, Integer month) {
        List<SuperAggregateState> states = this.baseMapper.getCurrMonthState(ids, month);
        return buildDuration(states);
    }
    @Override // org.springblade.modules.mdc.service.ISuperAggregateStateService
    @Override
    public List<SuperAggregateState> getCurrMonthAlarmState(List<Long> workIds, Integer month, Integer code) {
        List<SuperAggregateState> states = this.baseMapper.getCurrMonthAlarmState(workIds, month, code);
        return buildDuration(states);
    }
    @Override // org.springblade.modules.mdc.service.ISuperAggregateStateService
    @Override
    public List<SuperAggregateState> getCurrWeekAlarmState(List<Long> workIds, Integer week, Integer code) {
        List<SuperAggregateState> states = this.baseMapper.getCurrWeekAlarmState(workIds, week, code);
        return buildDuration(states);