| | |
| | | package com.qianwen.smartman.modules.cps.service.impl; |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.Wrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
| | | import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper; |
| | | import com.google.common.collect.Lists; |
| | | import java.lang.invoke.SerializedLambda; |
| | | import java.util.Collection; |
| | | import java.util.Comparator; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.Set; |
| | | import java.util.stream.Collectors; |
| | | |
| | | import org.slf4j.Logger; |
| | | import org.slf4j.LoggerFactory; |
| | | import com.qianwen.smartman.common.cache.RegionCache; |
| | | import com.qianwen.smartman.common.utils.ExtraLambdaQueryWrapper; |
| | | import com.qianwen.smartman.common.utils.Lambda; |
| | | import com.qianwen.smartman.common.utils.MessageUtils; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
| | | import com.google.common.collect.Lists; |
| | | import com.qianwen.core.log.exception.ServiceException; |
| | | import com.qianwen.core.mp.service.impl.BladeServiceImpl; |
| | | import com.qianwen.core.tool.node.ForestNodeMerger; |
| | | import com.qianwen.core.tool.utils.Func; |
| | | import com.qianwen.smartman.common.utils.Lambda; |
| | | import com.qianwen.smartman.common.utils.MessageUtils; |
| | | import com.qianwen.smartman.modules.cps.convert.ProductionCraftProcessConvert; |
| | | import com.qianwen.smartman.modules.cps.convert.ProductionCraftProcessFileConvert; |
| | | import com.qianwen.smartman.modules.cps.convert.ProductionCraftProcessRelatedFixtureConvert; |
| | |
| | | import com.qianwen.smartman.modules.cps.vo.VersionProcessParallelVO; |
| | | import com.qianwen.smartman.modules.cps.vo.VersionProcessTreeVO; |
| | | import com.qianwen.smartman.modules.cps.vo.VersionProcessUpdateVO; |
| | | 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/ProductionCraftProcessServiceImpl.class */ |
| | | public class ProductionCraftProcessServiceImpl extends BladeServiceImpl<ProductionCraftProcessMapper, ProductionCraftProcess> implements IProductionCraftProcessService { |
| | | private final IProductionCraftProcessFileService processFileService; |
| | | private final IProductionCraftProcessRelatedToolService relatedToolService; |
| | |
| | | this.relatedFixtureService = relatedFixtureService; |
| | | } |
| | | |
| | | @Override // org.springblade.modules.cps.service.IProductionCraftProcessService |
| | | @Override |
| | | @Transactional(rollbackFor = {Exception.class}) |
| | | public List<ProductionCraftProcessVO> saveVersionProcess(Long versionId, List<VersionProcessAddVO> processList) { |
| | | validFixVersion(versionId); |
| | |
| | | return ProductionCraftProcessConvert.INSTANCE.convert(craftProcessList); |
| | | } |
| | | |
| | | @Override // org.springblade.modules.cps.service.IProductionCraftProcessService |
| | | @Override |
| | | @Transactional(rollbackFor = {Exception.class}) |
| | | public Boolean removeVersionProcess(List<Long> ids) { |
| | | boolean flag = removeBatchByIds(ids); |
| | | return Boolean.valueOf(flag && removeProcessAssociation(ids)); |
| | | } |
| | | |
| | | @Override // org.springblade.modules.cps.service.IProductionCraftProcessService |
| | | @Override |
| | | public List<ProductionCraftProcess> listProcessByVersion(Long id) { |
| | | return list(Wrappers.lambdaQuery(ProductionCraftProcess.class) |
| | | .eq(ProductionCraftProcess::getVersionId, id) |
| | |
| | | |
| | | } |
| | | |
| | | @Override // org.springblade.modules.cps.service.IProductionCraftProcessService |
| | | @Override |
| | | public boolean useSameFixture(ProductionCraftProcess currentProcess, ProductionCraftProcess nextProcess) { |
| | | List<ProductionCraftProcessRelatedFixture> currentFixture = this.relatedFixtureService.list(Wrappers.lambdaQuery(ProductionCraftProcessRelatedFixture.class) |
| | | .eq(ProductionCraftProcessRelatedFixture::getVersionProcessId, currentProcess.getId())); |
| | |
| | | return currentIds.containsAll(nextIds); |
| | | } |
| | | |
| | | @Override // org.springblade.modules.cps.service.IProductionCraftProcessService |
| | | @Override |
| | | public Boolean updateSort(ProductionCraftProcessUpdateSortVO productionCraftProcessUpdateSortVO) { |
| | | List<ProductionCraftProcess> list = productionCraftProcessUpdateSortVO.getProcessList().stream().map(i -> { |
| | | ProductionCraftProcess productionCraftProcess = new ProductionCraftProcess(); |
| | |
| | | return Boolean.valueOf(updateBatchById(list)); |
| | | } |
| | | |
| | | @Override // org.springblade.modules.cps.service.IProductionCraftProcessService |
| | | @Override |
| | | public ProductionCraftProcessDetailVO detailProcess(Long id) { |
| | | ProductionCraftProcess process = (ProductionCraftProcess) getById(id); |
| | | ProductionCraftProcessDetailVO vo = ProductionCraftProcessConvert.INSTANCE.convertDetailVO(process); |
| | |
| | | }, id)); |
| | | List<ProductionCraftProcessRelatedFixtureVO> fixtureList = ProductionCraftProcessRelatedFixtureConvert.INSTANCE.convert(fixtures); |
| | | vo.setFixtures(fixtureList); |
| | | List<ProductionCraftProcessRelatedTool> tools = this.relatedToolService.list( Wrappers.lambdaQuery(ProductionCraftProcessRelatedTool.class).eq((v0) -> { |
| | | return v0.getVersionProcessId(); |
| | | }, id)); |
| | | List<ProductionCraftProcessRelatedTool> tools = this.relatedToolService.list( Wrappers.lambdaQuery(ProductionCraftProcessRelatedTool.class).eq(ProductionCraftProcessRelatedTool::getVersionProcessId, id)); |
| | | List<ProductionCraftProcessRelatedToolVO> toolList = ProductionCraftProcessRelatedToolConvert.INSTANCE.convert(tools); |
| | | vo.setTools(toolList); |
| | | return vo; |
| | | } |
| | | |
| | | @Override // org.springblade.modules.cps.service.IProductionCraftProcessService |
| | | @Override |
| | | @Transactional(rollbackFor = {Exception.class}) |
| | | public Boolean removeProcess(ProductionCraftProcessRemoveVO vo) { |
| | | int versionStatus = this.baseMapper.getVersionStatus(vo.getVersionId()); |
| | |
| | | } |
| | | Long versionProcessId = vo.getVersionProcessId(); |
| | | removeById(versionProcessId); |
| | | remove(Lambda.eq((v0) -> { |
| | | return v0.getMainSequenceId(); |
| | | }, versionProcessId)); |
| | | remove(Lambda.eq(ProductionCraftProcess::getMainSequenceId, versionProcessId)); |
| | | removeProcessAssociation(Lists.newArrayList(new Long[]{versionProcessId})); |
| | | List<ProductionCraftProcessDeleteVO> voList = vo.getProductionCraftProcessDeleteVOList(); |
| | | if (Func.isNotEmpty(voList)) { |
| | |
| | | return true; |
| | | } |
| | | |
| | | @Override // org.springblade.modules.cps.service.IProductionCraftProcessService |
| | | @Override |
| | | @Transactional(rollbackFor = {Exception.class}) |
| | | public Boolean updateVersionProcess(VersionProcessUpdateVO vo) { |
| | | Long versionId = vo.getVersionId(); |
| | |
| | | List<ProductionCraftProcess> list = list(Lambda.eq(ProductionCraftProcess::getSort, sort) |
| | | .ne(ProductionCraftProcess::getId, vo.getId()) |
| | | .eq(ProductionCraftProcess::getVersionId, versionId)); |
| | | /* |
| | | List<ProductionCraftProcess> list = list((Wrapper) ((ExtraLambdaQueryWrapper) Lambda.eq((v0) -> { |
| | | return v0.getSort(); |
| | | }, sort).ne((v0) -> { |
| | | return v0.getId(); |
| | | }, vo.getId())).eq((v0) -> { |
| | | return v0.getVersionId(); |
| | | }, versionId));*/ |
| | | |
| | | if (Func.isNotEmpty(list)) { |
| | | throw new ServiceException(MessageUtils.message("cps.production.craft.process.same.sort", new Object[0])); |
| | | } |
| | |
| | | return true; |
| | | } |
| | | |
| | | @Override // org.springblade.modules.cps.service.IProductionCraftProcessService |
| | | @Override |
| | | public List<ProductionCraftProcessVO> listProcess(Long versionId) { |
| | | List<ProductionCraftProcess> list = list(Wrappers.lambdaQuery(ProductionCraftProcess.class).eq((v0) -> { |
| | | return v0.getVersionId(); |
| | |
| | | return ProductionCraftProcessConvert.INSTANCE.convert(list); |
| | | } |
| | | |
| | | @Override // org.springblade.modules.cps.service.IProductionCraftProcessService |
| | | @Override |
| | | @Transactional(rollbackFor = {Exception.class}) |
| | | public Boolean saveParallel(VersionProcessParallelVO vo) { |
| | | Long versionId = vo.getVersionId(); |
| | |
| | | return updateChildProcess(craftProcess, childProcess); |
| | | } |
| | | |
| | | @Override // org.springblade.modules.cps.service.IProductionCraftProcessService |
| | | @Override |
| | | public List<VersionProcessTreeVO> treeProcess(String versionId) { |
| | | List<ProductionCraftProcess> list = list(Lambda.eq((v0) -> { |
| | | return v0.getVersionId(); |
| | | }, versionId)); |
| | | List<ProductionCraftProcess> list = list(Lambda.eq(ProductionCraftProcess::getVersionId, versionId)); |
| | | List<VersionProcessTreeVO> vos = list.stream().map(this::convert).collect(Collectors.toList()); |
| | | List<VersionProcessTreeVO> result = ForestNodeMerger.merge(vos); |
| | | result.sort(Comparator.comparing((v0) -> { |
| | |
| | | return result; |
| | | } |
| | | |
| | | @Override // org.springblade.modules.cps.service.IProductionCraftProcessService |
| | | @Override |
| | | public Boolean updateParallelProcess(UpdateParallelProcessVO vo) { |
| | | ProductionCraftProcess process = new ProductionCraftProcess(); |
| | | process.setId(vo.getId()); |
| | |
| | | .eq(ProductionCraftProcess::getMainSequenceId, vo.getId())).update()); |
| | | } |
| | | |
| | | @Override // org.springblade.modules.cps.service.IProductionCraftProcessService |
| | | @Override |
| | | @Transactional(rollbackFor = {Exception.class}) |
| | | public List<ProductionCraftProcessVO> parallelSave(ProcessParallelSaveVO vo) { |
| | | Long versionId = vo.getVersionId(); |
| | |
| | | return res; |
| | | } |
| | | |
| | | @Override // org.springblade.modules.cps.service.IProductionCraftProcessService |
| | | @Override |
| | | public List<ProductionCraftProcess> childProcessSave(ChildProcessVO vo) { |
| | | List<VersionProcessAddVO> childProcess = vo.getChildProcess(); |
| | | Map<Integer, List<VersionProcessAddVO>> typeMap = childProcess.stream().collect(Collectors.groupingBy((v0) -> { |
| | |
| | | return saveAll(versionId, mainId, vo.getSort(), childProcess); |
| | | } |
| | | |
| | | @Override // org.springblade.modules.cps.service.IProductionCraftProcessService |
| | | @Override |
| | | public Boolean childProcessRemove(String mainId, String childId) { |
| | | return Boolean.valueOf(remove(Lambda.eq(ProductionCraftProcess::getMainSequenceId, mainId) |
| | | .eq(ProductionCraftProcess::getId, childId))); |
| | | /* |
| | | return Boolean.valueOf(remove((Wrapper) Lambda.eq((v0) -> { |
| | | return v0.getMainSequenceId(); |
| | | }, mainId).eq((v0) -> { |
| | | return v0.getId(); |
| | | }, childId)));*/ |
| | | |
| | | } |
| | | |
| | | @Override // org.springblade.modules.cps.service.IProductionCraftProcessService |
| | | @Override |
| | | @Transactional(rollbackFor = {Exception.class}) |
| | | public Boolean childProcessUpdate(ProcessParallelUpdateVO vo) { |
| | | Long versionId = vo.getVersionId(); |