package com.qianwen.smartman.modules.cps.service.impl; import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.support.SFunction; import java.lang.invoke.SerializedLambda; import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.stream.Collectors; import com.qianwen.smartman.common.utils.Lambda; import com.qianwen.smartman.common.utils.MessageUtils; import com.qianwen.smartman.common.websocket.entity.FmsArea; import com.qianwen.smartman.common.websocket.entity.FmsAreaLocation; import com.qianwen.core.log.exception.ServiceException; import com.qianwen.core.mp.base.BaseServiceImpl; import com.qianwen.core.tool.node.ForestNodeMerger; import com.qianwen.core.tool.utils.Func; import com.qianwen.smartman.modules.cps.convert.WarehouseAreaConvert; import com.qianwen.smartman.modules.cps.entity.WarehouseArea; import com.qianwen.smartman.modules.cps.entity.WarehouseStation; import com.qianwen.smartman.modules.cps.mapper.WarehouseAreaMapper; import com.qianwen.smartman.modules.cps.service.ITrayStorageService; import com.qianwen.smartman.modules.cps.service.IWarehouseAreaService; import com.qianwen.smartman.modules.cps.service.IWarehouseStationService; import com.qianwen.smartman.modules.cps.vo.WarehouseAreaStationVO; import com.qianwen.smartman.modules.cps.vo.WarehouseAreaSubmitVO; import com.qianwen.smartman.modules.cps.vo.WarehouseAreaUpdateVO; import com.qianwen.smartman.modules.cps.vo.WarehouseAreaVO; import com.qianwen.smartman.modules.fms.entity.FmsRealTimeTray; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @Service /* loaded from: blade-api.jar:BOOT-INF/classes/org/springblade/modules/cps/service/impl/WarehouseAreaServiceImpl.class */ public class WarehouseAreaServiceImpl extends BaseServiceImpl implements IWarehouseAreaService { private final IWarehouseStationService iWarehouseStationService; private final ITrayStorageService trayStorageService; private static /* synthetic */ Object $deserializeLambda$(SerializedLambda lambda) { String implMethodName = lambda.getImplMethodName(); boolean z = true; switch (implMethodName.hashCode()) { case -75622813: if (implMethodName.equals("getCode")) { z = true; break; } break; case -75308287: if (implMethodName.equals("getName")) { z = false; break; } break; case 98245393: if (implMethodName.equals("getId")) { z = true; break; } break; case 286461310: if (implMethodName.equals("getAreaId")) { 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/cps/entity/WarehouseArea") && lambda.getImplMethodSignature().equals("()Ljava/lang/String;")) { return (v0) -> { return v0.getName(); }; } 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/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/core/mp/base/BaseEntity") && 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/WarehouseArea") && 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/WarehouseStation") && lambda.getImplMethodSignature().equals("()Ljava/lang/Long;")) { return (v0) -> { return v0.getAreaId(); }; } break; } throw new IllegalArgumentException("Invalid lambda deserialization"); } public WarehouseAreaServiceImpl(final IWarehouseStationService iWarehouseStationService, final ITrayStorageService trayStorageService) { this.iWarehouseStationService = iWarehouseStationService; this.trayStorageService = trayStorageService; } @Override // org.springblade.modules.cps.service.IWarehouseAreaService public WarehouseAreaVO insert(WarehouseAreaSubmitVO warehouseAreaSubmitVO) { checkAreaInfo(warehouseAreaSubmitVO); WarehouseArea warehouseArea = WarehouseAreaConvert.INSTANCE.convert(warehouseAreaSubmitVO); save(warehouseArea); WarehouseAreaVO warehouseAreaVO = WarehouseAreaConvert.INSTANCE.convert(warehouseArea); return warehouseAreaVO; } private void checkAreaInfo(WarehouseAreaSubmitVO warehouseAreaSubmitVO) { if (Func.isNotEmpty(warehouseAreaSubmitVO.getCode()) && warehouseAreaSubmitVO.getCode().length() > 24) { throw new ServiceException(MessageUtils.message("cps.warehouse.area.code.length.too.long", new Object[0])); } Long count = Long.valueOf(count((Wrapper) Wrappers.lambdaQuery().ne(Func.isNotEmpty(warehouseAreaSubmitVO.getId()), (v0) -> { return v0.getId(); }, warehouseAreaSubmitVO.getId()).eq((v0) -> { return v0.getCode(); }, warehouseAreaSubmitVO.getCode()))); if (count.longValue() > 0) { throw new ServiceException(MessageUtils.message("cps.warehouse.area.code.already.exists", new Object[0])); } if (Func.isNotEmpty(warehouseAreaSubmitVO.getName()) && warehouseAreaSubmitVO.getName().length() > 32) { throw new ServiceException(MessageUtils.message("cps.warehouse.area.name.length.too.long", new Object[0])); } Long countName = Long.valueOf(count((Wrapper) Wrappers.lambdaQuery().ne(Func.isNotEmpty(warehouseAreaSubmitVO.getId()), (v0) -> { return v0.getId(); }, warehouseAreaSubmitVO.getId()).eq((v0) -> { return v0.getName(); }, warehouseAreaSubmitVO.getName()))); if (countName.longValue() > 0) { throw new ServiceException(MessageUtils.message("cps.warehouse.area.name.already.exists", new Object[0])); } } @Override // org.springblade.modules.cps.service.IWarehouseAreaService public WarehouseAreaVO edit(WarehouseAreaUpdateVO warehouseAreaUpdateVO) { WarehouseAreaSubmitVO warehouseAreaSubmitVO = WarehouseAreaConvert.INSTANCE.convertSubmitVO(warehouseAreaUpdateVO); checkAreaInfo(warehouseAreaSubmitVO); WarehouseArea warehouseArea = WarehouseAreaConvert.INSTANCE.convert(warehouseAreaSubmitVO); updateById(warehouseArea); WarehouseAreaVO warehouseAreaVO = WarehouseAreaConvert.INSTANCE.convertVO(warehouseAreaSubmitVO); return warehouseAreaVO; } @Override // org.springblade.modules.cps.service.IWarehouseAreaService @Transactional(rollbackFor = {Exception.class}) public Boolean removeWithRelation(List ids) { List stationList = this.iWarehouseStationService.list((Wrapper) Wrappers.lambdaQuery().select(new SFunction[]{(v0) -> { return v0.getId(); }}).in((v0) -> { return v0.getAreaId(); }, ids)); if (Func.isNotEmpty(stationList)) { throw new ServiceException(MessageUtils.message("cps.warehouse.area.cannot.delete", new Object[0])); } return Boolean.valueOf(removeByIds(ids)); } @Override // org.springblade.modules.cps.service.IWarehouseAreaService public List areaStationTree() { List stationList = ((WarehouseAreaMapper) this.baseMapper).stationList(); List areaList = list(); List areas = (List) areaList.stream().map(c -> { WarehouseAreaStationVO vo = new WarehouseAreaStationVO(); vo.setId(c.getId()); vo.setCode(c.getCode()); vo.setName(c.getName()); vo.setParentId(c.getParentId()); vo.setIsArea(Boolean.TRUE); return vo; }).collect(Collectors.toList()); stationList.addAll(areas); return ForestNodeMerger.merge(stationList); } @Override // org.springblade.modules.cps.service.IWarehouseAreaService public List fmsAreaStationTree() { return fmsAreaStationTree(null); } @Override // org.springblade.modules.cps.service.IWarehouseAreaService public List fmsAreaStationTree(List filterAreaId) { List stationList = ((WarehouseAreaMapper) this.baseMapper).stationList(); List areaList = list(Lambda.in(Func.isNotEmpty(filterAreaId), (v0) -> { return v0.getId(); }, filterAreaId)); List fmsAreaList = (List) areaList.stream().map(area -> { FmsArea fmsArea = new FmsArea(); fmsArea.setId(area.getId() + ""); fmsArea.setName(area.getName()); fmsArea.setCode(area.getCode()); fmsArea.setLocationList((List) stationList.stream().filter(station -> { return area.getId().equals(station.getParentId()); }).map(station2 -> { FmsAreaLocation fmsAreaStation = new FmsAreaLocation(); fmsAreaStation.setCode(station2.getCode()); fmsAreaStation.setId(Func.toStr(station2.getId())); fmsAreaStation.setColor("#0FC015"); String trayCode = (String) this.trayStorageService.listTray(station2.getId()).stream().findFirst().map((v0) -> { return v0.getTrayCode(); }).orElse(null); fmsAreaStation.setPalletCode(trayCode); return fmsAreaStation; }).collect(Collectors.toList())); return fmsArea; }).collect(Collectors.toList()); return fmsAreaList; } @Override // org.springblade.modules.cps.service.IWarehouseAreaService public List assembleAreaData(List filterAreaIds, Map realTimeTrayMap) { List stationList = ((WarehouseAreaMapper) this.baseMapper).stationList(); List list = list((Wrapper) Wrappers.lambdaQuery().in((v0) -> { return v0.getId(); }, filterAreaIds)); return (List) list.stream().map(area -> { FmsArea fmsArea = new FmsArea(); fmsArea.setId(String.valueOf(area.getId())); fmsArea.setName(area.getName()); fmsArea.setCode(area.getCode()); List locationList = new ArrayList<>(); stationList.forEach(station -> { if (area.getId().equals(station.getParentId())) { List trayCodes = (List) this.trayStorageService.listTray(station.getId()).stream().map((v0) -> { return v0.getTrayCode(); }).collect(Collectors.toList()); for (String trayCode : trayCodes) { FmsAreaLocation fmsAreaStation = new FmsAreaLocation(); fmsAreaStation.setCode(station.getCode()); fmsAreaStation.setId(Func.toStr(station.getId())); FmsRealTimeTray fmsRealTimeTray = (FmsRealTimeTray) realTimeTrayMap.get(trayCode); if (fmsRealTimeTray != null && area.getCode().equals(fmsRealTimeTray.getCurrentPosition())) { fmsAreaStation.setPalletCode(trayCode); fmsAreaStation.setState(fmsRealTimeTray.getPartType()); } locationList.add(fmsAreaStation); } } }); fmsArea.setLocationList(locationList); return fmsArea; }).collect(Collectors.toList()); } }