| | |
| | | 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.google.common.collect.Lists; |
| | | import java.lang.invoke.SerializedLambda; |
| | | import java.util.ArrayList; |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | |
| | | import java.util.Objects; |
| | | import java.util.Set; |
| | | import java.util.stream.Collectors; |
| | | |
| | | import javax.validation.Valid; |
| | | |
| | | 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.MessageUtils; |
| | | import com.qianwen.smartman.common.utils.TreeUtils; |
| | | import com.qianwen.smartman.common.utils.ValidatorUtils; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | import org.springframework.web.multipart.MultipartFile; |
| | | |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
| | | import com.google.common.collect.Lists; |
| | | import com.qianwen.core.excel.util.ExcelUtil; |
| | | import com.qianwen.core.log.exception.ServiceException; |
| | | import com.qianwen.core.mp.base.BaseServiceImpl; |
| | |
| | | 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.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.MessageUtils; |
| | | import com.qianwen.smartman.common.utils.TreeUtils; |
| | | import com.qianwen.smartman.common.utils.ValidatorUtils; |
| | | import com.qianwen.smartman.modules.cps.convert.FixtureConvert; |
| | | import com.qianwen.smartman.modules.cps.convert.ToolAppendixConvert; |
| | | import com.qianwen.smartman.modules.cps.entity.CommonGroup; |
| | |
| | | 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; |
| | | |
| | | import cn.hutool.core.util.StrUtil; |
| | | |
| | | /** |
| | | * 夹具服务 |
| | |
| | | this.relatedFixtureService = relatedFixtureService; |
| | | } |
| | | |
| | | @Override // org.springblade.modules.cps.service.IFixtureService |
| | | @Override |
| | | public Boolean removeFixture(List<Long> ids) { |
| | | if (ids.isEmpty()) { |
| | | return false; |
| | |
| | | return Boolean.valueOf(removeByIds(ids)); |
| | | } |
| | | |
| | | @Override // org.springblade.modules.cps.service.IFixtureService |
| | | @Override |
| | | @Transactional(rollbackFor = {Exception.class}) |
| | | public FixtureVO insert(@Valid FixtureVO fixtureVO, Long groupId) { |
| | | Fixture fixture = FixtureConvert.INSTANCE.convert(fixtureVO); |
| | |
| | | return convert; |
| | | } |
| | | |
| | | @Override // org.springblade.modules.cps.service.IFixtureService |
| | | @Override |
| | | public void checkFixture(Fixture fixture) { |
| | | long count = count(Wrappers.<Fixture>lambdaQuery().eq(Fixture::getCode, fixture.getCode()) |
| | | .ne(Func.isNotEmpty(fixture.getId()), Fixture::getId, fixture.getId())); |
| | |
| | | } |
| | | } |
| | | |
| | | @Override // org.springblade.modules.cps.service.IFixtureService |
| | | @Override |
| | | @Transactional(rollbackFor = {Exception.class}) |
| | | public boolean remove(List<Long> ids) { |
| | | removeByIds(ids); |
| | |
| | | return true; |
| | | } |
| | | |
| | | @Override // org.springblade.modules.cps.service.IFixtureService |
| | | @Override |
| | | public ToolAppendixVO insertFile(ToolAppendixVO toolAppendixVO) { |
| | | ToolAppendix toolAppendix = ToolAppendixConvert.INSTANCE.convert(toolAppendixVO); |
| | | this.toolAppendixService.save(toolAppendix); |
| | | return ToolAppendixConvert.INSTANCE.convert(toolAppendix); |
| | | } |
| | | |
| | | @Override // org.springblade.modules.cps.service.IFixtureService |
| | | @Override |
| | | public List<FixtureGroupFixtureVO> fixtureGroupAndFixtureList() { |
| | | List<FixtureGroupFixtureVO> fixtureGroupFixtureVOList = ((FixtureMapper) this.baseMapper).listNotInUse(); |
| | | fixtureGroupFixtureVOList.forEach(f -> { |
| | |
| | | return ForestNodeMerger.merge(fixtureGroupFixtureVOList); |
| | | } |
| | | |
| | | @Override // org.springblade.modules.cps.service.IFixtureService |
| | | @Override |
| | | @Transactional(rollbackFor = {Exception.class}) |
| | | public BladeFile importFixture(MultipartFile file) { |
| | | if (Objects.isNull(file)) { |
| | |
| | | if (fixtureData.size() > 200) { |
| | | throw new ServiceException(MessageUtils.message("excel.import.size.failed", new Object[0])); |
| | | } |
| | | Map<String, List<FixtureImport>> map = (Map) fixtureData.stream().filter(c -> { |
| | | return Func.isNotEmpty(c.getFixtureCode()); |
| | | }).collect(Collectors.groupingBy((v0) -> { |
| | | return v0.getFixtureCode(); |
| | | })); |
| | | |
| | | Map<String, List<FixtureImport>> map = fixtureData.stream().filter(c -> Func.isNotEmpty(c.getFixtureCode())).collect(Collectors.groupingBy(FixtureImport::getFixtureCode)); |
| | | |
| | | HashMap<String, Long> commonGroupNameMap = this.commonGroupService.getCommonGroupNameMap(CommonGroupTypeEnum.FIXTURE.getName(), CommonGroupConstant.DEFAULT_CATEGORY); |
| | | Set<String> fixtureCodeSet = (Set) list().stream().map((v0) -> { |
| | | return v0.getCode(); |
| | | }).collect(Collectors.toSet()); |
| | | Set<String> fixtureCodeSet = list().stream().map(Fixture::getCode).collect(Collectors.toSet()); |
| | | |
| | | checkFixtureImport(fixtureData, commonGroupNameMap, map, fixtureCodeSet); |
| | | List<FixtureImport> fails = (List) fixtureData.stream().filter(w -> { |
| | | return StrUtil.isNotEmpty(w.getFailReason()); |
| | | }).collect(Collectors.toList()); |
| | | |
| | | List<FixtureImport> fails = fixtureData.stream().filter(w -> StrUtil.isNotEmpty(w.getFailReason())).collect(Collectors.toList()); |
| | | if (fails.size() > 0) { |
| | | MultipartFile template = ExcelUtil.exportFillTemplateToMultipartFile(ExcelConstant.DIRECTORY + "fixtureImportErrorTemplate" + ExcelConstant.SUFFIX, MessageUtils.message("excel.import.failed.report.name", new Object[0]) + ExcelConstant.SUFFIX, "夹具信息表", (List) fixtureData.stream().filter(x -> { |
| | | return Func.isNotEmpty(x.getFailReason()); |
| | | }).collect(Collectors.toList()), (Object) null, (AbstractMergeStrategy) null); |
| | | MultipartFile template = ExcelUtil.exportFillTemplateToMultipartFile(ExcelConstant.DIRECTORY + "fixtureImportErrorTemplate" + ExcelConstant.SUFFIX, MessageUtils.message("excel.import.failed.report.name", new Object[0]) + ExcelConstant.SUFFIX, "夹具信息表", fails, null, null); |
| | | return this.ossBuilder.tempTemplate().putFile(template.getOriginalFilename(), template); |
| | | } |
| | | List<Fixture> fixtures = list(); |
| | | Map<String, Fixture> fixtureMap = (Map) fixtures.stream().collect(Collectors.toMap((v0) -> { |
| | | return v0.getCode(); |
| | | }, v -> { |
| | | return v; |
| | | })); |
| | | Map<String, Fixture> fixtureMap = fixtures.stream().collect(Collectors.toMap(Fixture::getCode, v -> v)); |
| | | |
| | | fixtureData.forEach(fix -> { |
| | | if (fix.getFixtureGroupName().equals(CommonGroupEnum.ALL.getCode())) { |
| | | fix.setFixtureGroupName(CommonGroupEnum.UNASSORTED.getCode()); |
| | |
| | | return null; |
| | | } |
| | | |
| | | @Override // org.springblade.modules.cps.service.IFixtureService |
| | | @Override |
| | | public List<GroupTreeVO> allGroupFixture(CommonGroupTypeVO vo) { |
| | | List<GroupTreeVO> groupFixture = ((FixtureMapper) this.baseMapper).groupFixture(); |
| | | return TreeUtils.allGroupTree(vo, groupFixture); |
| | | } |
| | | |
| | | @Override // org.springblade.modules.cps.service.IFixtureService |
| | | @Override |
| | | @Transactional(rollbackFor = {Exception.class}) |
| | | public FixtureVO updateFixture(FixtureVO vo) { |
| | | Fixture fixture = FixtureConvert.INSTANCE.convert(vo); |
| | |
| | | } |
| | | } |
| | | |
| | | @Override // org.springblade.modules.cps.service.IFixtureService |
| | | @Override |
| | | public List<FixtureVO> list(String keyword, Long groupId) { |
| | | IPage<FixtureVO> page = page(keyword, groupId, new Query().setSize(-1)); |
| | | return page.getRecords(); |
| | | } |
| | | |
| | | @Override // org.springblade.modules.cps.service.IFixtureService |
| | | @Override |
| | | public IPage<FixtureVO> page(String keyword, Long groupId, Query query) { |
| | | if (Func.isNull(groupId) || ToolingConstant.FIXTURE_ROOT.equals(groupId)) { |
| | | return ((FixtureMapper) this.baseMapper).page(Condition.getPage(query), keyword, null); |
| | |
| | | return ((FixtureMapper) this.baseMapper).page(page, keyword, groupId); |
| | | } |
| | | |
| | | @Override // org.springblade.modules.cps.service.IFixtureService |
| | | @Override |
| | | public FixtureVO detail(Long id) { |
| | | return ((FixtureMapper) this.baseMapper).detail(id); |
| | | } |