package com.ld.igds.file.impl; import com.ld.igds.data.ConfigData; import com.ld.igds.file.CoreFileService; import com.ld.igds.file.dto.FileData; import com.ld.igds.file.mapper.FileServiceMapper; import com.ld.igds.models.FileInfo; import com.ld.igds.util.Base64Util; import com.ld.igds.util.ContextUtil; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.time.DateFormatUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import java.io.File; import java.sql.SQLException; import java.util.Date; import java.util.List; @Component public class CoreFileServiceImpl implements CoreFileService { @Autowired private FileServiceMapper fileServiceMapper; @Autowired private ConfigData configData; @Override public String getInoutFilePath(Date date) { if (null == date) date = new Date(); String basePath = configData.getFilePath() + "INOUT/" + DateFormatUtils.format(date, "yyyyMM") + "/"; File file = new File(basePath); if (!file.exists()) { file.mkdirs(); } return basePath; } @Override public String getSnapFilePath(Date date) { if (null == date) date = new Date(); String basePath = configData.getFilePath() + "SNAP/" + DateFormatUtils.format(date, "yyyyMM") + "/"; File file = new File(basePath); if (!file.exists()) { file.mkdirs(); } return basePath; } @Override public String getSnapFilePath(String dateStr) { if (null == dateStr) return null; if(dateStr.length()>6) dateStr = dateStr.substring(0, 6); String basePath = configData.getFilePath() + "SNAP/" + dateStr+ "/"; File file = new File(basePath); if (!file.exists()) { file.mkdirs(); } return basePath; } @Override public String getCommonFilePath(Date date) { if (null == date) date = new Date(); String basePath = configData.getFilePath() + "COMMON/" + DateFormatUtils.format(date, "yyyyMM") + "/"; File file = new File(basePath); if (!file.exists()) { file.mkdirs(); } return basePath; } @Override public String getTempFilePath() { String basePath = configData.getFilePath() + "TEMP/"; File file = new File(basePath); if (!file.exists()) { file.mkdirs(); } return basePath; } @Override public void baseImg2Disk(String basePath, String fileName, String imgData) { Base64Util.generateImage(imgData, basePath + fileName); } @Override public void addRecord(FileData fileData) { fileServiceMapper.addFile(fileData); } @Override public void saveInoutFiles(List files, String companyId, String bizId, String bizTag) throws Exception, SQLException { if (null == files || files.size() == 0) return; for (FileData data : files) { // 如果没有附件名称,则不保存附件信息 if (StringUtils.isEmpty(data.getFileName())) { continue; } data.setCreateTime(new Date()); data.setBizId(bizId); if (StringUtils.isNotEmpty(bizTag)) { data.setBizTag(bizTag); } data.setCompanyId(companyId); data.setFileId(ContextUtil.getUUID()); fileServiceMapper.addFile(data); } } @Override public List listFile(String companyId, String bizId) { if (StringUtils.isEmpty(companyId)) { companyId = ContextUtil.getDefaultCompanyId(); } if (StringUtils.isEmpty(bizId)) return null; List listFile = fileServiceMapper.listFile(companyId, bizId); if (null == listFile || listFile.isEmpty()) return null; return listFile; } @Override public void delFile(String fileId) { fileServiceMapper.delFile(fileId); } @Override public void saveFiles(List files, String bizId, String bizTag) { if (null == files || files.size() == 0) { return; } FileData fileData = null; for (FileInfo data : files) { if (StringUtils.isEmpty(data.getFileName())) { continue; } if (StringUtils.isNotEmpty(data.getBizId())) { continue; } if (null == data.getCreateTime()) { data.setCreateTime(new Date()); } if (null == data.getBizTag()) { data.setBizTag(bizTag); } data.setBizId(bizId); data.setCompanyId(ContextUtil.getCompanyId()); if (null == data.getFileId()) { data.setFileId(ContextUtil.getUUID()); } fileData = new FileData(); fileData.setFileId(data.getFileId()); fileData.setBizId(data.getBizId()); fileData.setBizTag(data.getBizTag()); fileData.setCompanyId(data.getCompanyId()); fileData.setFileName(data.getFileName()); fileData.setCreateTime(data.getCreateTime()); fileServiceMapper.addFile(fileData); } } }