/* * Copyright (c) 2018-2025, ztt All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * Neither the name of the pig4cloud.com developer nor the names of its * contributors may be used to endorse or promote products derived from * this software without specific prior written permission. * Author: ztt */ package com.chinaztt.mes.quality.service.impl; import cn.hutool.core.io.FileUtil; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.chinaztt.mes.quality.entity.QualityLabelPrintConfig; import com.chinaztt.mes.quality.entity.QualityLabelPrintConfigDetail; import com.chinaztt.mes.quality.mapper.QualityLabelPrintConfigDetailMapper; import com.chinaztt.mes.quality.mapper.QualityLabelPrintConfigMapper; import com.chinaztt.mes.quality.service.QualityLabelPrintConfigService; import com.chinaztt.ztt.common.core.util.R; import com.chinaztt.ztt.common.oss.service.OssTemplate; import lombok.AllArgsConstructor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.multipart.MultipartFile; import java.io.IOException; import java.util.ArrayList; import java.util.List; import java.util.UUID; import java.util.stream.Collectors; /** * 标签信息配置 * * @author yy * @date 2023-04-11 13:54:42 */ @Service @AllArgsConstructor @Transactional public class QualityLabelPrintConfigServiceImpl extends ServiceImpl implements QualityLabelPrintConfigService { private QualityLabelPrintConfigDetailMapper qualityLabelPrintConfigDetailMapper; private static final String OSS_BUCKET = "technology"; private final OssTemplate minioTemplate; @Override public Boolean delete(Long id) { //先删子表再删主表 qualityLabelPrintConfigDetailMapper.delete(Wrappers.lambdaQuery() .eq(QualityLabelPrintConfigDetail::getMid, id)); baseMapper.deleteById(id); return true; } @Override public R uploadFile(MultipartFile file, Long printConfigId) throws Exception { String fileName = IdUtil.simpleUUID() + StrUtil.DOT + FileUtil.extName(file.getOriginalFilename()); minioTemplate.putObject(OSS_BUCKET, fileName, file.getInputStream()); QualityLabelPrintConfig qualityLabelPrintConfig = new QualityLabelPrintConfig(); qualityLabelPrintConfig.setFileName(fileName); qualityLabelPrintConfig.setId(printConfigId); baseMapper.updateById(qualityLabelPrintConfig); return R.ok(fileName); } @Override public Boolean fullSave(QualityLabelPrintConfig qualityLabelPrintConfig) { String labelUniqueCode = UUID.randomUUID().toString().replaceAll("-",""); qualityLabelPrintConfig.setLabelUniqueCode(labelUniqueCode); baseMapper.insert(qualityLabelPrintConfig); return true; } }