完善图片上传功能

This commit is contained in:
2022-02-28 15:44:43 +08:00
parent 3d053e63de
commit 35fe6011e9
26 changed files with 307 additions and 832 deletions

View File

@ -1,110 +0,0 @@
package com.xkrs.service.impl;
import com.xkrs.dao.QcInspectionDataSourceDao;
import com.xkrs.dao.QcInspectionFileDao;
import com.xkrs.encapsulation.PromptMessageEnum;
import com.xkrs.model.entity.QcInspectionDataSource;
import com.xkrs.model.entity.QcInspectionFile;
import com.xkrs.model.entity.QcInspectionItemDict;
import com.xkrs.model.qo.QcInspectionFileQo;
import com.xkrs.service.FileService;
import com.xkrs.util.ExcelUploadUtil;
import com.xkrs.util.ExportExcel;
import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
import org.springframework.context.i18n.LocaleContextHolder;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import javax.transaction.Transactional;
import java.io.IOException;
import java.util.HashMap;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import static com.xkrs.encapsulation.OutputEncapsulation.outputEncapsulationObject;
/**
* @Author: XinYi Song
* @Date: 2022/1/20 15:24
*/
@Service
public class FileServiceImpl implements FileService {
@Resource
private QcInspectionFileDao inspectionFileDao;
@Resource
private QcInspectionItemDict inspectionItemDict;
@Resource
private QcInspectionDataSourceDao inspectionDataSourceDao;
/**
* 添加模板信息
*
* @param inspectionFileQo
* @return
*/
@Override
public String insertFileExcel(QcInspectionFileQo inspectionFileQo, MultipartFile fileExcel) throws IOException {
String lotNo = inspectionFileQo.getLotNo();
String machineNo = inspectionFileQo.getMachineNo();
String materialNo = inspectionFileQo.getMaterialNo();
String modelNo = inspectionFileQo.getModelNo();
String partNo = inspectionFileQo.getPartNo();
Locale locale = LocaleContextHolder.getLocale();
QcInspectionFile qcInspectionFile = inspectionFileDao.selectFile(lotNo, machineNo, materialNo, modelNo, partNo);
if (qcInspectionFile != null) {
return outputEncapsulationObject(PromptMessageEnum.DATA_EXIT, "已存在该产品的模板!", locale);
}
if (fileExcel == null) {
return outputEncapsulationObject(PromptMessageEnum.DATA_NONE, "模板不能为空!", locale);
}
String file = ExcelUploadUtil.memoryFile(fileExcel);
QcInspectionFile fileEntity1 = new QcInspectionFile();
//TODO 补充字段
// fileEntity1.setFileModelNumber(fileQo.getFileModelNumber());
// fileEntity1.setFileBatchNumber(fileQo.getFileBatchNumber());
// fileEntity1.setFileMachineCode(fileQo.getFileMachineCode());
// fileEntity1.setFileProductNumber(fileQo.getFileProductNumber());
// fileEntity1.setFileUploadPath(file);
inspectionFileDao.save(fileEntity1);
return outputEncapsulationObject(PromptMessageEnum.SUCCESS, "添加成功!", locale);
}
/**
* 导出excel
*
* @param inspectionFileQo
* @return
*/
@Transactional(rollbackOn = Exception.class)
@Override
public String exportExcel(QcInspectionFileQo inspectionFileQo) throws IOException, InvalidFormatException {
String lotNo = inspectionFileQo.getLotNo();
String machineNo = inspectionFileQo.getMachineNo();
String materialNo = inspectionFileQo.getMaterialNo();
String modelNo = inspectionFileQo.getModelNo();
String partNo = inspectionFileQo.getPartNo();
Locale locale = LocaleContextHolder.getLocale();
QcInspectionFile inspectionFile = inspectionFileDao.selectFile(lotNo, machineNo, materialNo, modelNo, partNo);
if (inspectionFile == null) {
return outputEncapsulationObject(PromptMessageEnum.DATA_NONE, "暂时没有该产品的模板,请添加!", locale);
}
String templatePath = inspectionFile.getTemplatePath();
List<QcInspectionDataSource> inspectionDataSources = inspectionDataSourceDao.selectDataSource(lotNo, machineNo, materialNo, modelNo, partNo);
if (inspectionDataSources == null || inspectionDataSources.isEmpty()) {
return outputEncapsulationObject(PromptMessageEnum.DATA_NONE, "暂时没有该产品的信息!", locale);
}
Map<String, String> map = new HashMap<>();
for (QcInspectionDataSource inspectionDataSource : inspectionDataSources) {
map.put(inspectionDataSource.getInspectionItemCode(), inspectionDataSource.getInspectValue());
}
String fill = ExportExcel.exportToProveExcel(map, templatePath);
inspectionFileDao.updateFilePath(lotNo, machineNo, materialNo, modelNo, partNo, fill);
return outputEncapsulationObject(PromptMessageEnum.SUCCESS, fill, locale);
}
}