package com.qianwen.smartman.modules.cps.service.impl; import cn.hutool.core.util.StrUtil; import com.alibaba.excel.write.merge.AbstractMergeStrategy; import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.support.SFunction; import com.google.common.collect.Sets; import java.lang.invoke.SerializedLambda; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Objects; import java.util.Set; import java.util.stream.Collectors; import org.apache.commons.compress.utils.Lists; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.qianwen.smartman.common.cache.RegionCache; import com.qianwen.smartman.common.constant.CommonGroupConstant; import com.qianwen.smartman.common.constant.ExcelConstant; import com.qianwen.smartman.common.constant.ToolingConstant; import com.qianwen.smartman.common.enums.CommonGroupTypeEnum; import com.qianwen.smartman.common.utils.Lambda; import com.qianwen.smartman.common.utils.MessageUtils; import com.qianwen.smartman.common.utils.ValidatorUtils; import com.qianwen.core.excel.util.ExcelUtil; import com.qianwen.core.log.exception.ServiceException; import com.qianwen.core.mp.service.impl.BladeServiceImpl; 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.node.ForestNodeMerger; import com.qianwen.core.tool.utils.Func; import com.qianwen.smartman.modules.cps.convert.ToolAppendixConvert; import com.qianwen.smartman.modules.cps.convert.TrayConvert; import com.qianwen.smartman.modules.cps.dto.TrayFaceDTO; import com.qianwen.smartman.modules.cps.entity.CommonGroup; import com.qianwen.smartman.modules.cps.entity.CommonGroupOfItem; import com.qianwen.smartman.modules.cps.entity.ToolAppendix; import com.qianwen.smartman.modules.cps.entity.Tray; import com.qianwen.smartman.modules.cps.entity.TraySurface; import com.qianwen.smartman.modules.cps.enums.CommonGroupEnum; import com.qianwen.smartman.modules.cps.enums.TrayEnum; import com.qianwen.smartman.modules.cps.excel.TrayImport; import com.qianwen.smartman.modules.cps.mapper.TrayMapper; import com.qianwen.smartman.modules.cps.service.ICommonGroupOfItemService; import com.qianwen.smartman.modules.cps.service.ICommonGroupService; import com.qianwen.smartman.modules.cps.service.IToolAppendixService; import com.qianwen.smartman.modules.cps.service.ITrayFixtureService; import com.qianwen.smartman.modules.cps.service.ITrayService; import com.qianwen.smartman.modules.cps.service.ITrayStorageService; import com.qianwen.smartman.modules.cps.service.ITraySurfaceService; import com.qianwen.smartman.modules.cps.utils.ThrowFun; import com.qianwen.smartman.modules.cps.vo.CommonGroupTypeVO; import com.qianwen.smartman.modules.cps.vo.IdsVO; import com.qianwen.smartman.modules.cps.vo.PageTrayVO; import com.qianwen.smartman.modules.cps.vo.ToolAppendixVO; import com.qianwen.smartman.modules.cps.vo.ToolingVO; import com.qianwen.smartman.modules.cps.vo.TrayEasyVO; import com.qianwen.smartman.modules.cps.vo.TraySaveVO; import com.qianwen.smartman.modules.cps.vo.TrayTreeVO; import com.qianwen.smartman.modules.cps.vo.TrayUpdateVO; import com.qianwen.smartman.modules.cps.vo.TrayVO; import com.qianwen.smartman.modules.resource.builder.oss.OssBuilder; import com.qianwen.smartman.modules.system.service.ICodeGeneratorService; import com.qianwen.smartman.modules.tpm.enums.MetaTypeEnum; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.multipart.MultipartFile; @Service /* loaded from: blade-api.jar:BOOT-INF/classes/org/springblade/modules/cps/service/impl/TrayServiceImpl.class */ public class TrayServiceImpl extends BladeServiceImpl implements ITrayService { private static final Logger log = LoggerFactory.getLogger(TrayServiceImpl.class); private final ITraySurfaceService surfaceService; private final ICommonGroupService commonGroupService; private final IToolAppendixService toolAppendixService; private final ITrayFixtureService fixtureService; private final ITrayStorageService storageService; private final ICommonGroupOfItemService commonGroupOfItemService; private final OssBuilder ossBuilder; private final ICodeGeneratorService codeGeneratorService; 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 -1041904421: if (implMethodName.equals("getParentId")) { z = true; break; } break; case -75622813: if (implMethodName.equals("getCode")) { z = true; break; } break; case -75308287: if (implMethodName.equals("getName")) { z = true; break; } break; case 98245393: if (implMethodName.equals("getId")) { z = true; break; } break; case 517353092: if (implMethodName.equals("getItemId")) { z = false; break; } break; case 830319079: if (implMethodName.equals("getTrayId")) { z = true; break; } break; case 985326823: if (implMethodName.equals("getGroupCategory")) { z = true; break; } break; case 1071464927: if (implMethodName.equals("getCreateTime")) { z = true; break; } break; case 1330288580: if (implMethodName.equals("getGroupId")) { 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/CommonGroupOfItem") && lambda.getImplMethodSignature().equals("()Ljava/lang/Long;")) { return (v0) -> { return v0.getItemId(); }; } 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/CommonGroupOfItem") && lambda.getImplMethodSignature().equals("()Ljava/lang/Long;")) { return (v0) -> { return v0.getItemId(); }; } 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/CommonGroupOfItem") && lambda.getImplMethodSignature().equals("()Ljava/lang/Long;")) { return (v0) -> { return v0.getItemId(); }; } 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/util/Date;")) { return (v0) -> { return v0.getCreateTime(); }; } 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.getName(); }; } 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/Tray") && 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/modules/cps/entity/TraySurface") && lambda.getImplMethodSignature().equals("()Ljava/lang/Long;")) { return (v0) -> { return v0.getTrayId(); }; } 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/TrayStorage") && lambda.getImplMethodSignature().equals("()Ljava/lang/Long;")) { return (v0) -> { return v0.getTrayId(); }; } 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/TraySurface") && lambda.getImplMethodSignature().equals("()Ljava/lang/Long;")) { return (v0) -> { return v0.getTrayId(); }; } 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/TrayFixture") && lambda.getImplMethodSignature().equals("()Ljava/lang/Long;")) { return (v0) -> { return v0.getTrayId(); }; } 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/TrayStorage") && lambda.getImplMethodSignature().equals("()Ljava/lang/Long;")) { return (v0) -> { return v0.getTrayId(); }; } 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(); }; } 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/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/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; 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/Tray") && 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/Tray") && 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/Tray") && 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/CommonGroupOfItem") && lambda.getImplMethodSignature().equals("()Ljava/lang/Long;")) { return (v0) -> { return v0.getGroupId(); }; } 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/CommonGroupOfItem") && lambda.getImplMethodSignature().equals("()Ljava/lang/Long;")) { return (v0) -> { return v0.getGroupId(); }; } 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/CommonGroupOfItem") && lambda.getImplMethodSignature().equals("()Ljava/lang/Long;")) { return (v0) -> { return v0.getGroupId(); }; } 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/CommonGroupOfItem") && lambda.getImplMethodSignature().equals("()Ljava/lang/Long;")) { return (v0) -> { return v0.getGroupId(); }; } 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/ToolAppendix") && lambda.getImplMethodSignature().equals("()Ljava/lang/Long;")) { return (v0) -> { return v0.getParentId(); }; } break; } throw new IllegalArgumentException("Invalid lambda deserialization"); } public TrayServiceImpl(final ITraySurfaceService surfaceService, final ICommonGroupService commonGroupService, final IToolAppendixService toolAppendixService, final ITrayFixtureService fixtureService, final ITrayStorageService storageService, final ICommonGroupOfItemService commonGroupOfItemService, final OssBuilder ossBuilder, final ICodeGeneratorService codeGeneratorService) { this.surfaceService = surfaceService; this.commonGroupService = commonGroupService; this.toolAppendixService = toolAppendixService; this.fixtureService = fixtureService; this.storageService = storageService; this.commonGroupOfItemService = commonGroupOfItemService; this.ossBuilder = ossBuilder; this.codeGeneratorService = codeGeneratorService; } @Override // org.springblade.modules.cps.service.ITrayService @Transactional(rollbackFor = {Exception.class}) public TrayVO saveTray(TraySaveVO vo) { if (Func.isBlank(vo.getCode())) { String code = this.codeGeneratorService.getGeneratorCode(vo, MetaTypeEnum.TRAY.getCode()); log.info("物料编码规则生成的code:{}", code + " ," + code.length()); vo.setCode(code); } validCode(vo.getCode()); Tray tray = TrayConvert.INSTANCE.convert(vo); save(tray); Long trayId = tray.getId(); Long groupId = vo.getGroupId(); CommonGroupOfItem item = CommonGroupOfItem.builder().groupId(groupId).itemId(trayId).groupType(CommonGroupTypeEnum.TRAY.getName()).groupCategory(CommonGroupConstant.DEFAULT_CATEGORY).build(); this.commonGroupOfItemService.save(item); List faceList = vo.getFaceList(); if (Func.isNotEmpty(faceList)) { Set codeSet = Sets.newHashSet(); List surfaces = (List) faceList.stream().map(f -> { String faceCode = f.getFaceCode(); String faceName = f.getFaceName(); codeSet.add(faceCode); return new TraySurface().setName(faceName).setCode(faceCode).setProgramCode(f.getProgramCode()).setTrayId(trayId); }).collect(Collectors.toList()); int size = faceList.size(); if (codeSet.size() != size) { throw new ServiceException(MessageUtils.message("cps.tray.face.name.exist", new Object[0])); } this.surfaceService.saveBatch(surfaces); } return TrayConvert.INSTANCE.convert(tray).setFaceNumber(Integer.valueOf(Func.isEmpty(faceList) ? 0 : faceList.size())); } @Override // org.springblade.modules.cps.service.ITrayService public TrayVO getDetail(Long id) { Tray tray = (Tray) getById(id); CommonGroupOfItem item = (CommonGroupOfItem) this.commonGroupOfItemService.getOne((Wrapper) Wrappers.lambdaQuery().eq((v0) -> { return v0.getItemId(); }, id)); Long groupId = item.getGroupId(); CommonGroup group = (CommonGroup) this.commonGroupService.getById(groupId); long count = this.surfaceService.count(Lambda.eq((v0) -> { return v0.getTrayId(); }, id)); return TrayConvert.INSTANCE.convert(tray).setFaceNumber(Integer.valueOf(Math.toIntExact(count))).setGroupId(groupId).setGroupName(group.getName()); } @Override // org.springblade.modules.cps.service.ITrayService public IPage trayPage(Query query, String keyword, Long groupId) { if (ToolingConstant.TRAY_ROOT.equals(groupId)) { return this.baseMapper.trayPage(Condition.getPage(query), keyword, null); } return this.baseMapper.trayPage(Condition.getPage(query), keyword, groupId); } @Override // org.springblade.modules.cps.service.ITrayService @Transactional(rollbackFor = {Exception.class}) public Boolean updateTray(TrayUpdateVO vo) { Tray tray = TrayConvert.INSTANCE.convert(vo); boolean update = updateById(tray); this.commonGroupOfItemService.update((Wrapper) ((LambdaUpdateWrapper) Wrappers.lambdaUpdate().set((v0) -> { return v0.getGroupId(); }, vo.getGroupId())).eq((v0) -> { return v0.getItemId(); }, vo.getId())); Integer availability = vo.getAvailability(); boolean flag = Func.isNotEmpty(availability); if (flag) { this.baseMapper.updateFixTure(vo.getId(), availability); } return Boolean.valueOf(update); } @Override // org.springblade.modules.cps.service.ITrayService @Transactional(rollbackFor = {Exception.class}) public Boolean removeTray(IdsVO vo) { List ids = Func.toLongList(vo.getIds()); int count = removeFaceFixture(ids); ThrowFun.isTrue(count > 0).throwMessage(MessageUtils.message("cps.tray.face.banding.fixture", new Object[0])); long countTrayStorage = this.storageService.count((Wrapper) Wrappers.lambdaQuery().in((v0) -> { return v0.getTrayId(); }, ids)); ThrowFun.isTrue(countTrayStorage > 0).throwMessage(MessageUtils.message("cps.tray.ware.station.fixture", new Object[0])); boolean remove = removeByIds(ids); boolean removeFace = this.surfaceService.remove((Wrapper) Wrappers.lambdaQuery().in((v0) -> { return v0.getTrayId(); }, ids)); boolean removeFixture = this.fixtureService.remove((Wrapper) Wrappers.lambdaQuery().in((v0) -> { return v0.getTrayId(); }, ids)); this.fixtureService.updateFixtureStatusByTray(ids); this.storageService.remove((Wrapper) Wrappers.lambdaQuery().in((v0) -> { return v0.getTrayId(); }, ids)); return Boolean.valueOf(remove && removeFace && removeFixture); } @Override // org.springblade.modules.cps.service.ITrayService public List toolingTree(CommonGroupTypeVO vo) { switch (CommonGroupTypeEnum.of(vo.getGroupType())) { case TRAY: return groupTrayTree(vo); case FIXTURE: return groupFixtureTree(vo); default: return Lists.newArrayList(); } } @Override // org.springblade.modules.cps.service.ITrayService @Transactional(rollbackFor = {Exception.class}) public Boolean removeTree(Long id) { CommonGroup group = (CommonGroup) this.commonGroupService.getById(id); CommonGroup rootGroup = (CommonGroup) this.commonGroupService.getOne((Wrapper) ((LambdaQueryWrapper) ((LambdaQueryWrapper) Wrappers.lambdaQuery().eq((v0) -> { return v0.getGroupCategory(); }, group.getGroupCategory())).eq((v0) -> { return v0.getGroupType(); }, group.getGroupType())).eq((v0) -> { return v0.getName(); }, CommonGroupConstant.DEFAULT_GROUP_NAME)); List allSubGroup = this.commonGroupService.getAllSubGroup(Long.valueOf(Func.toLong(id)), group.getGroupType(), group.getGroupCategory()); List groupId = (List) allSubGroup.stream().map((v0) -> { return v0.getId(); }).collect(Collectors.toList()); boolean update = this.commonGroupOfItemService.update((Wrapper) ((LambdaUpdateWrapper) Wrappers.lambdaUpdate().set((v0) -> { return v0.getGroupId(); }, rootGroup.getId())).in((v0) -> { return v0.getGroupId(); }, groupId)); boolean remove = this.commonGroupService.removeById(id); return Boolean.valueOf(update && remove); } @Override // org.springblade.modules.cps.service.ITrayService public List trayTree(CommonGroupTypeVO vo) { List trayTree = this.baseMapper.groupTray(); return getTrayTree(trayTree, vo); } @Override // org.springblade.modules.cps.service.ITrayService public List listToolAppendix(String id) { List appendixList = this.toolAppendixService.list((Wrapper) Wrappers.lambdaQuery().eq((v0) -> { return v0.getParentId(); }, id)); return ToolAppendixConvert.INSTANCE.convert(appendixList); } @Override // org.springblade.modules.cps.service.ITrayService public List unUsedTrayTree(CommonGroupTypeVO vo) { List trayTree = this.baseMapper.unUsedGroupTray(); return getUnUsedTray(trayTree); } @Override // org.springblade.modules.cps.service.ITrayService public List listTray() { List list = list((Wrapper) Wrappers.lambdaQuery().orderByDesc((v0) -> { return v0.getCreateTime(); }, new SFunction[]{(v0) -> { return v0.getId(); }})); return TrayConvert.INSTANCE.convertVO(list); } @Override // org.springblade.modules.cps.service.ITrayService @Transactional(rollbackFor = {Exception.class}) public BladeFile importTray(MultipartFile file) { if (Objects.isNull(file)) { throw new ServiceException(MessageUtils.message("excel.import.file.is.null", new Object[0])); } List trayData = ExcelUtil.read(file, 0, 2, TrayImport.class); if (Func.isEmpty(trayData)) { throw new ServiceException(MessageUtils.message("excel.import.data.can.not.be.null", new Object[0])); } if (trayData.size() > 200) { throw new ServiceException(MessageUtils.message("excel.import.size.failed", new Object[0])); } Set trayCodeSet = (Set) list().stream().map((v0) -> { return v0.getCode(); }).collect(Collectors.toSet()); Map> map = (Map) trayData.stream().filter(c -> { return Func.isNotEmpty(c.getTrayCode()); }).collect(Collectors.groupingBy((v0) -> { return v0.getTrayCode(); })); HashMap commonGroupNameMap = this.commonGroupService.getCommonGroupNameMap(CommonGroupTypeEnum.TRAY.getName(), CommonGroupConstant.DEFAULT_CATEGORY); checkTrayImport(trayData, commonGroupNameMap, map, trayCodeSet); List fails = (List) trayData.stream().filter(w -> { return StrUtil.isNotEmpty(w.getFailReason()); }).collect(Collectors.toList()); if (fails.size() > 0) { MultipartFile template = ExcelUtil.exportFillTemplateToMultipartFile(ExcelConstant.DIRECTORY + "trayImportErrorTemplate" + ExcelConstant.SUFFIX, MessageUtils.message("excel.import.failed.report.name", new Object[0]) + ExcelConstant.SUFFIX, "托盘信息表", (List) trayData.stream().filter(x -> { return Func.isNotEmpty(x.getFailReason()); }).collect(Collectors.toList()), (Object) null, (AbstractMergeStrategy) null); return this.ossBuilder.tempTemplate().putFile(template.getOriginalFilename(), template); } trayData.forEach(trayImport -> { if (trayImport.getTrayGroupName().equals(CommonGroupEnum.ALL.getCode())) { trayImport.setTrayGroupName(CommonGroupEnum.UNASSORTED.getCode()); } if (trayCodeSet.contains(trayImport.getTrayCode())) { update((Wrapper) ((LambdaUpdateWrapper) Wrappers.update().lambda().eq((v0) -> { return v0.getCode(); }, trayImport.getTrayCode())).set((v0) -> { return v0.getName(); }, trayImport.getName())); Tray tray = (Tray) getOne((Wrapper) Wrappers.query().lambda().eq((v0) -> { return v0.getCode(); }, trayImport.getTrayCode())); this.commonGroupOfItemService.update((Wrapper) ((LambdaUpdateWrapper) Wrappers.update().lambda().eq((v0) -> { return v0.getItemId(); }, tray.getId())).set((v0) -> { return v0.getGroupId(); }, commonGroupNameMap.get(trayImport.getTrayGroupName()))); return; } TraySaveVO traySaveVO = new TraySaveVO(); traySaveVO.setCode(trayImport.getTrayCode()); traySaveVO.setName(Func.isEmpty(trayImport.getName()) ? trayImport.getTrayCode() : trayImport.getName()); traySaveVO.setAvailability(TrayEnum.StatusEnum.ACTIVATING.getStatus()); traySaveVO.setGroupId((Long) commonGroupNameMap.get(trayImport.getTrayGroupName())); traySaveVO.setFaceList(new ArrayList()); saveTray(traySaveVO); }); return null; } @Override // org.springblade.modules.cps.service.ITrayService public int removeFaceFixture(List ids) { return this.baseMapper.removeFaceFixture(ids); } private void checkTrayImport(List trayData, Map commonGroupNameMap, Map> map, Set trayCodeSet) { for (TrayImport trayImport : trayData) { if (Func.isNotBlank(trayImport.getTrayGroupName()) && !commonGroupNameMap.containsKey(trayImport.getTrayGroupName())) { trayImport.setFailReason(MessageUtils.message("cps.tray.group.not.existing", new Object[0])); } else if (Func.isBlank(trayImport.getTrayGroupName())) { trayImport.setFailReason(MessageUtils.message("cps.tray.group.name.can.not.empty", new Object[0])); } else if (Func.isBlank(trayImport.getTrayCode())) { trayImport.setFailReason(MessageUtils.message("cps.tray.code.can.not.empty", new Object[0])); } else { if (Func.isNotBlank(trayImport.getTrayCode())) { if (map.get(trayImport.getTrayCode()).size() > 1) { trayImport.setFailReason(MessageUtils.message("cps.tray.code.existing", new Object[0])); } else if (trayCodeSet.contains(trayImport.getTrayCode())) { trayImport.setFailReason(MessageUtils.message("cps.tray.code.existing", new Object[0])); } } if (ValidatorUtils.stringFilter(trayImport.getTrayCode())) { trayImport.setFailReason(MessageUtils.message("cps.tray.code.exist.special.symbols.error", new Object[0])); } else if (Func.isNotEmpty(trayImport.getName()) && ValidatorUtils.stringFilter(trayImport.getName())) { trayImport.setFailReason(MessageUtils.message("cps.tray.name.exist.special.symbols.error", new Object[0])); } } } } private List getUnUsedTray(List vo) { if (Func.isEmpty(vo)) { return Lists.newArrayList(); } List groupIds = (List) vo.stream().map((v0) -> { return v0.getParentId(); }).collect(Collectors.toList()); List commonGroups = this.commonGroupService.list((Wrapper) Wrappers.lambdaQuery().in((v0) -> { return v0.getId(); }, groupIds)); List groups = (List) commonGroups.stream().map(this::convert).collect(Collectors.toList()); vo.addAll(groups); return ForestNodeMerger.merge(vo); } private List getTrayTree(List vo, CommonGroupTypeVO groupTypeVO) { List commonGroups = this.commonGroupService.list((Wrapper) ((LambdaQueryWrapper) Wrappers.lambdaQuery().eq((v0) -> { return v0.getGroupType(); }, groupTypeVO.getGroupType())).eq((v0) -> { return v0.getGroupCategory(); }, groupTypeVO.getGroupCategory())); List groups = (List) commonGroups.stream().map(this::convert).collect(Collectors.toList()); vo.addAll(groups); return ForestNodeMerger.merge(vo); } private TrayTreeVO convert(CommonGroup group) { TrayTreeVO treeVO = new TrayTreeVO(); treeVO.setId(group.getId()); treeVO.setName(group.getName()); treeVO.setCode(group.getCode()); treeVO.setParentId(group.getParentId()); treeVO.setIsGroup(Boolean.TRUE); return treeVO; } private List groupTrayTree(CommonGroupTypeVO vo) { List trayList = this.baseMapper.trayTree(vo); return ForestNodeMerger.merge(calculateToolingNum(trayList)); } private List groupFixtureTree(CommonGroupTypeVO vo) { List trayList = this.baseMapper.fixtureTree(vo); return ForestNodeMerger.merge(calculateToolingNum(trayList)); } private List calculateToolingNum(List vo) { List result = Lists.newArrayList(); vo.forEach(v -> { int nums = vo.stream().filter(p -> { return p.getCode().indexOf(v.getCode()) == 0; }).mapToInt((v0) -> { return v0.getNumbers(); }).sum(); ToolingVO res = TrayConvert.INSTANCE.convert(v); res.setNumbers(Integer.valueOf(nums)); result.add(res); }); return result; } private void validCode(String code) { long count = count(Lambda.eq((v0) -> { return v0.getCode(); }, code)); ThrowFun.isTrue(count > 0).throwMessage(MessageUtils.message("cps.tray.code.exist", new Object[0])); } }