package com.qianwen.smartman.modules.fms.service.impl; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.StrUtil; 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.CollectionUtils; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import java.lang.invoke.SerializedLambda; import java.util.Collections; import java.util.Comparator; import java.util.List; import java.util.Map; import java.util.Objects; import java.util.stream.Collectors; import com.qianwen.smartman.common.cache.RegionCache; import com.qianwen.core.mp.support.Condition; import com.qianwen.core.mp.support.Query; import com.qianwen.smartman.modules.fms.convert.FmsOrderConvert; import com.qianwen.smartman.modules.fms.convert.FmsOrderProcessConvert; import com.qianwen.smartman.modules.fms.convert.FmsOrderProcessFixtureConvert; import com.qianwen.smartman.modules.fms.convert.FmsOrderProcessToolConvert; import com.qianwen.smartman.modules.fms.convert.FmsWorkStationRecordConvert; import com.qianwen.smartman.modules.fms.dto.FmsProducePartDTO; import com.qianwen.smartman.modules.fms.entity.FmsOrder; import com.qianwen.smartman.modules.fms.entity.FmsOrderProcess; import com.qianwen.smartman.modules.fms.entity.FmsOrderProcessFixture; import com.qianwen.smartman.modules.fms.entity.FmsOrderProcessTool; import com.qianwen.smartman.modules.fms.entity.FmsRealTimeTray; import com.qianwen.smartman.modules.fms.enums.OrderSortEnum; import com.qianwen.smartman.modules.fms.enums.RealTimePartTypeEnum; import com.qianwen.smartman.modules.fms.mapper.FmsWorkStationRecordMapper; import com.qianwen.smartman.modules.fms.service.IFmsOrderProcessFixtureService; import com.qianwen.smartman.modules.fms.service.IFmsOrderProcessService; import com.qianwen.smartman.modules.fms.service.IFmsOrderProcessToolService; import com.qianwen.smartman.modules.fms.service.IFmsOrderService; import com.qianwen.smartman.modules.fms.service.IFmsProductionStatisticsService; import com.qianwen.smartman.modules.fms.vo.FmsOrderProcessFixtureVO; import com.qianwen.smartman.modules.fms.vo.FmsOrderProcessToolVO; import com.qianwen.smartman.modules.fms.vo.FmsOrderProcessVO; import com.qianwen.smartman.modules.fms.vo.FmsProduceOrderVO; import com.qianwen.smartman.modules.fms.vo.FmsProducePartVO; import com.qianwen.smartman.modules.fms.vo.FmsProduceProcessVO; import com.qianwen.smartman.modules.fms.vo.FmsProduceQueryVO; import org.springframework.stereotype.Service; @Service /* loaded from: blade-api.jar:BOOT-INF/classes/org/springblade/modules/fms/service/impl/FmsProductionStatisticsServiceImpl.class */ public class FmsProductionStatisticsServiceImpl implements IFmsProductionStatisticsService { private final IFmsOrderService fmsOrderService; private final IFmsOrderProcessService fmsOrderProcessService; private final IFmsOrderProcessToolService fmsOrderProcessToolService; private final IFmsOrderProcessFixtureService fmsOrderProcessFixtureService; private final FmsWorkStationRecordMapper fmsWorkStationRecordMapper; private final FmsRealTimeTrayServiceImpl fmsRealTimeTrayService; private static /* synthetic */ Object $deserializeLambda$(SerializedLambda lambda) { String implMethodName = lambda.getImplMethodName(); boolean z = true; switch (implMethodName.hashCode()) { case -2132400570: if (implMethodName.equals("getProductCode")) { z = false; break; } break; case -1335731856: if (implMethodName.equals("getPlanStartTime")) { z = true; break; } break; case -761264846: if (implMethodName.equals("getOrderProcessId")) { z = true; break; } break; case -520385111: if (implMethodName.equals("getPlanEndTime")) { z = true; break; } break; case -170250029: if (implMethodName.equals("getOrderId")) { z = true; break; } break; case -75622813: if (implMethodName.equals("getCode")) { z = true; break; } break; case 637897077: if (implMethodName.equals("getComponentsNumber")) { z = true; break; } break; case 912439066: if (implMethodName.equals("getPriority")) { z = true; 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/fms/entity/FmsOrder") && lambda.getImplMethodSignature().equals("()Ljava/lang/String;")) { return (v0) -> { return v0.getProductCode(); }; } 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/fms/entity/FmsRealTimeTray") && lambda.getImplMethodSignature().equals("()Ljava/lang/Long;")) { return (v0) -> { return v0.getComponentsNumber(); }; } 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/fms/entity/FmsOrder") && lambda.getImplMethodSignature().equals("()Ljava/util/Date;")) { return (v0) -> { return v0.getPlanStartTime(); }; } 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/fms/entity/FmsOrder") && lambda.getImplMethodSignature().equals("()Ljava/util/Date;")) { return (v0) -> { return v0.getPlanStartTime(); }; } 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/fms/entity/FmsOrder") && lambda.getImplMethodSignature().equals("()Ljava/util/Date;")) { return (v0) -> { return v0.getPlanEndTime(); }; } 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/fms/entity/FmsOrderProcessTool") && lambda.getImplMethodSignature().equals("()Ljava/lang/Long;")) { return (v0) -> { return v0.getOrderProcessId(); }; } 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/fms/entity/FmsOrderProcessFixture") && lambda.getImplMethodSignature().equals("()Ljava/lang/Long;")) { return (v0) -> { return v0.getOrderProcessId(); }; } 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/fms/entity/FmsRealTimeTray") && lambda.getImplMethodSignature().equals("()Ljava/lang/Long;")) { return (v0) -> { return v0.getOrderProcessId(); }; } 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/fms/entity/FmsOrder") && lambda.getImplMethodSignature().equals("()Ljava/lang/Integer;")) { return (v0) -> { return v0.getPriority(); }; } 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/fms/entity/FmsOrderProcess") && lambda.getImplMethodSignature().equals("()Ljava/lang/Long;")) { return (v0) -> { return v0.getOrderId(); }; } 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/fms/entity/FmsOrder") && lambda.getImplMethodSignature().equals("()Ljava/lang/String;")) { return (v0) -> { return v0.getCode(); }; } break; } throw new IllegalArgumentException("Invalid lambda deserialization"); } public FmsProductionStatisticsServiceImpl(final IFmsOrderService fmsOrderService, final IFmsOrderProcessService fmsOrderProcessService, final IFmsOrderProcessToolService fmsOrderProcessToolService, final IFmsOrderProcessFixtureService fmsOrderProcessFixtureService, final FmsWorkStationRecordMapper fmsWorkStationRecordMapper, final FmsRealTimeTrayServiceImpl fmsRealTimeTrayService) { this.fmsOrderService = fmsOrderService; this.fmsOrderProcessService = fmsOrderProcessService; this.fmsOrderProcessToolService = fmsOrderProcessToolService; this.fmsOrderProcessFixtureService = fmsOrderProcessFixtureService; this.fmsWorkStationRecordMapper = fmsWorkStationRecordMapper; this.fmsRealTimeTrayService = fmsRealTimeTrayService; } @Override // org.springblade.modules.fms.service.IFmsProductionStatisticsService public IPage orderPage(Query query, FmsProduceQueryVO filter) { IPage page = Condition.getPage(query); String code = filter.getCode(); Wrapper wrapper = (LambdaQueryWrapper) ((LambdaQueryWrapper) Wrappers.lambdaQuery().likeRight(StrUtil.isNotEmpty(code), (v0) -> { return v0.getCode(); }, code).or()).likeRight(StrUtil.isNotEmpty(code), (v0) -> { return v0.getProductCode(); }, code).between(StrUtil.isNotEmpty(filter.getPlanStartTimeBegin()) && StrUtil.isNotEmpty(filter.getPlanStartTimeEnd()), (v0) -> { return v0.getPlanStartTime(); }, filter.getPlanStartTimeBegin(), filter.getPlanStartTimeEnd()).between(StrUtil.isNotEmpty(filter.getPlanEndTimeBegin()) && StrUtil.isNotEmpty(filter.getPlanEndTimeEnd()), (v0) -> { return v0.getPlanEndTime(); }, filter.getPlanEndTimeBegin(), filter.getPlanEndTimeEnd()); sort(filter.getSort(), wrapper); IPage resPage = this.fmsOrderService.page(page, wrapper); return FmsOrderConvert.INSTANCE.convertToProduceVO(resPage); } private void sort(Integer sortType, LambdaQueryWrapper wrapper) { OrderSortEnum sortEnum = OrderSortEnum.of(sortType); wrapper.orderBy(sortEnum.getIsTime().booleanValue(), sortEnum.getIsAsc().booleanValue(), (v0) -> { return v0.getPlanStartTime(); }); wrapper.orderBy(!sortEnum.getIsTime().booleanValue(), sortEnum.getIsAsc().booleanValue(), (v0) -> { return v0.getPriority(); }); } @Override // org.springblade.modules.fms.service.IFmsProductionStatisticsService public FmsProduceProcessVO processList(Long orderId) { FmsOrder fmsOrder = (FmsOrder) this.fmsOrderService.getById(orderId); if (Objects.isNull(fmsOrder)) { return FmsProduceProcessVO.builder().build(); } List fmsOrderProcesses = this.fmsOrderProcessService.list((Wrapper) Wrappers.lambdaQuery().eq((v0) -> { return v0.getOrderId(); }, orderId)); if (CollectionUtils.isEmpty(fmsOrderProcesses)) { return FmsProduceProcessVO.builder().build(); } List resultProcess = FmsOrderProcessConvert.INSTANCE.convert(fmsOrderProcesses); List processIds = (List) fmsOrderProcesses.parallelStream().map((v0) -> { return v0.getId(); }).collect(Collectors.toList()); List orderProcessTools = this.fmsOrderProcessToolService.list((Wrapper) Wrappers.lambdaQuery().in((v0) -> { return v0.getOrderProcessId(); }, processIds)); Map> toolsMap = (Map) orderProcessTools.stream().collect(Collectors.groupingBy((v0) -> { return v0.getOrderProcessId(); })); List processFixtures = this.fmsOrderProcessFixtureService.list((Wrapper) Wrappers.lambdaQuery().in((v0) -> { return v0.getOrderProcessId(); }, processIds)); Map> fixturesMap = (Map) processFixtures.stream().collect(Collectors.groupingBy((v0) -> { return v0.getOrderProcessId(); })); resultProcess.forEach(process -> { List toolList = (List) toolsMap.get(process.getId()); if (CollectionUtil.isNotEmpty(toolList)) { List fmsOrderProcessToolVOS = FmsOrderProcessToolConvert.INSTANCE.convert(toolList); process.setToolList(fmsOrderProcessToolVOS); } List fmsOrderProcessFixtures = (List) fixturesMap.get(process.getId()); if (CollectionUtil.isNotEmpty(fmsOrderProcessFixtures)) { List fmsOrderProcessFixtureVOS = FmsOrderProcessFixtureConvert.INSTANCE.convert(fmsOrderProcessFixtures); process.setFixtureList(fmsOrderProcessFixtureVOS); } }); return FmsProduceProcessVO.builder().produceOrderVO(FmsOrderConvert.INSTANCE.convertToProduceVO(fmsOrder)).processList(resultProcess).build(); } @Override // org.springblade.modules.fms.service.IFmsProductionStatisticsService public List partList(Long orderId) { List produceOrderPartList = this.fmsWorkStationRecordMapper.findProduceOrderPart(orderId); if (CollectionUtil.isEmpty(produceOrderPartList)) { return Collections.emptyList(); } Map> partList = (Map) produceOrderPartList.stream().collect(Collectors.groupingBy((v0) -> { return v0.getPartCode(); })); partList.forEach(partCode, parts -> { List parts = (List) parts.stream().sorted(Comparator.comparing((v0) -> { return v0.getStartTime(); }, Comparator.reverseOrder())).collect(Collectors.toList()); FmsProducePartDTO fmsProducePartDTO = (FmsProducePartDTO) parts.get(0); FmsRealTimeTray fmsRealTimeTray = (FmsRealTimeTray) this.fmsRealTimeTrayService.getOne((Wrapper) ((LambdaQueryWrapper) Wrappers.lambdaQuery().eq((v0) -> { return v0.getOrderProcessId(); }, fmsProducePartDTO.getOrderProcessId())).eq((v0) -> { return v0.getComponentsNumber(); }, fmsProducePartDTO.getPartCode())); if (Objects.isNull(fmsRealTimeTray) && parts.size() == 1) { parts.forEach(p -> { p.setPartType(null); p.setCurrentPosition(1); }); } else if (Objects.isNull(fmsRealTimeTray) && parts.size() > 1) { parts.forEach(p2 -> { p2.setPartType(Integer.valueOf(RealTimePartTypeEnum.PROCESS_FINISH.getType())); p2.setCurrentPosition(1); }); } else { parts.forEach(p3 -> { p3.setPartType(fmsRealTimeTray.getPartType()); p3.setCurrentPosition(2); }); } }); return FmsWorkStationRecordConvert.INSTANCE.convertPartList(produceOrderPartList); } }