.
This commit is contained in:
104
src/main/java/com/xkrs/service/impl/FileServiceImpl.java
Normal file
104
src/main/java/com/xkrs/service/impl/FileServiceImpl.java
Normal file
@ -0,0 +1,104 @@
|
||||
package com.xkrs.service.impl;
|
||||
|
||||
import com.xkrs.dao.FileDao;
|
||||
import com.xkrs.encapsulation.PromptMessageEnum;
|
||||
import com.xkrs.model.entity.DataSource;
|
||||
import com.xkrs.model.entity.FileEntity;
|
||||
import com.xkrs.model.qo.FileQo;
|
||||
import com.xkrs.service.FileService;
|
||||
import com.xkrs.util.DataSourceQuery;
|
||||
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.*;
|
||||
|
||||
import static com.xkrs.encapsulation.OutputEncapsulation.outputEncapsulationObject;
|
||||
|
||||
/**
|
||||
* @Author: XinYi Song
|
||||
* @Date: 2022/1/20 15:24
|
||||
*/
|
||||
@Service
|
||||
public class FileServiceImpl implements FileService {
|
||||
|
||||
@Resource
|
||||
private FileDao fileDao;
|
||||
|
||||
@Resource
|
||||
private DataSourceQuery dataSourceQuery;
|
||||
|
||||
/**
|
||||
* 添加模板信息
|
||||
*
|
||||
* @param fileQo
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public String insertFileExcel(FileQo fileQo, MultipartFile fileExcel) throws IOException {
|
||||
String lotNo = fileQo.getLotNo();
|
||||
String machineNo = fileQo.getMachineNo();
|
||||
String materialNo = fileQo.getMaterialNo();
|
||||
String modelNo = fileQo.getModelNo();
|
||||
String machineTypeNo = fileQo.getMachineTypeNo();
|
||||
String craftItemName = fileQo.getCraftItemName();
|
||||
Locale locale = LocaleContextHolder.getLocale();
|
||||
Optional<FileEntity> fileEntity = fileDao.selectFile(lotNo, machineNo, materialNo, modelNo, machineTypeNo, craftItemName);
|
||||
if (fileEntity.isPresent()) {
|
||||
return outputEncapsulationObject(PromptMessageEnum.DATA_EXIT, "已存在该产品的模板!", locale);
|
||||
}
|
||||
if (fileExcel == null) {
|
||||
return outputEncapsulationObject(PromptMessageEnum.DATA_NONE, "模板不能为空!", locale);
|
||||
}
|
||||
String file = ExcelUploadUtil.memoryFile(fileExcel, 1);
|
||||
FileEntity fileEntity1 = new FileEntity();
|
||||
fileEntity1.setLotNo(fileQo.getLotNo());
|
||||
fileEntity1.setMachineNo(fileQo.getMachineNo());
|
||||
fileEntity1.setMaterialNo(fileQo.getMaterialNo());
|
||||
fileEntity1.setModelNo(fileQo.getModelNo());
|
||||
fileEntity1.setMachineTypeNo(fileQo.getMachineTypeNo());
|
||||
fileEntity1.setFileUploadPath(file);
|
||||
fileDao.save(fileEntity1);
|
||||
return outputEncapsulationObject(PromptMessageEnum.SUCCESS, "添加成功!", locale);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出excel
|
||||
*
|
||||
* @param fileQo
|
||||
* @return
|
||||
*/
|
||||
@Transactional(rollbackOn = Exception.class)
|
||||
@Override
|
||||
public String exportExcel(FileQo fileQo) throws IOException, InvalidFormatException {
|
||||
String lotNo = fileQo.getLotNo();
|
||||
String machineNo = fileQo.getMachineNo();
|
||||
String materialNo = fileQo.getMaterialNo();
|
||||
String modelNo = fileQo.getModelNo();
|
||||
String machineTypeNo = fileQo.getMachineTypeNo();
|
||||
String craftItemName = fileQo.getCraftItemName();
|
||||
Locale locale = LocaleContextHolder.getLocale();
|
||||
Optional<FileEntity> fileEntity = fileDao.selectFile(lotNo, machineNo, materialNo, modelNo, machineTypeNo, craftItemName);
|
||||
if (fileEntity.isEmpty()) {
|
||||
return outputEncapsulationObject(PromptMessageEnum.DATA_NONE, "暂时没有该产品的模板,请添加!", locale);
|
||||
}
|
||||
String fileUploadPath = fileEntity.get().getFileUploadPath();
|
||||
List<DataSource> dataSources = dataSourceQuery.selectDataSource(lotNo, machineNo, materialNo, modelNo, machineTypeNo, craftItemName);
|
||||
if (dataSources == null || dataSources.size() == 0) {
|
||||
return outputEncapsulationObject(PromptMessageEnum.DATA_NONE, "暂时没有该产品的信息!", locale);
|
||||
}
|
||||
Map<String, String> map = new HashMap<>();
|
||||
for (DataSource dataSource : dataSources) {
|
||||
map.put(dataSource.getInspectionItemCode(), dataSource.getInspectValue());
|
||||
}
|
||||
String fill = ExportExcel.exportToProveExcel(map, fileUploadPath);
|
||||
fileDao.updateFileDownloadPath(lotNo, machineNo, materialNo, modelNo, machineTypeNo, craftItemName, fill);
|
||||
return outputEncapsulationObject(PromptMessageEnum.SUCCESS, fill, locale);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user