| | |
| | | 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; |
| | |
| | | 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; |
| | |
| | | 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; |
| | |
| | | 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)) { |
| | |
| | | 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")); |
| | |
| | | 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(); |
| | |
| | | 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)); |
| | |
| | | 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); |
| | |
| | | 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"); |
| | |
| | | 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); |