yangys
2024-05-18 040976de6f9934b99f30268a28e2ecf42260e217
smart-man-boot/src/main/java/com/qianwen/smartman/modules/cps/service/impl/FixtureServiceImpl.java
@@ -1,14 +1,5 @@
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;
@@ -16,17 +7,18 @@
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;
@@ -35,6 +27,13 @@
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;
@@ -63,9 +62,8 @@
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;
/**
 * 夹具服务
@@ -91,7 +89,7 @@
        this.relatedFixtureService = relatedFixtureService;
    }
    @Override // org.springblade.modules.cps.service.IFixtureService
    @Override
    public Boolean removeFixture(List<Long> ids) {
        if (ids.isEmpty()) {
            return false;
@@ -107,7 +105,7 @@
        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);
@@ -141,7 +139,7 @@
        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()));
@@ -156,7 +154,7 @@
        }
    }
    @Override // org.springblade.modules.cps.service.IFixtureService
    @Override
    @Transactional(rollbackFor = {Exception.class})
    public boolean remove(List<Long> ids) {
        removeByIds(ids);
@@ -165,14 +163,14 @@
        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 -> {
@@ -201,7 +199,7 @@
        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)) {
@@ -214,31 +212,22 @@
        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());
@@ -268,20 +257,20 @@
            fixtureVO.setName(Func.isBlank(name2) ? fixtureCode : name2);
            fixtureVO.setFixtureGroupId(String.valueOf(commonGroupNameMap.get(fix.getFixtureGroupName())));
            fixtureVO.setFixtureGroupName(String.valueOf(commonGroupNameMap.get(fix.getFixtureGroupName())));
            fixtureVO.setToolAppendixVOList(new ArrayList());
            fixtureVO.setToolAppendixVOList(new ArrayList<>());
            fixtureVO.setFixtureStatus(TrayEnum.FixtureEnum.ACTIVATING.getStatus());
            insert(fixtureVO, (Long) commonGroupNameMap.get(fix.getFixtureGroupName()));
        });
        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);
@@ -322,13 +311,13 @@
        }
    }
    @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);
@@ -337,7 +326,7 @@
        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);
    }