Commit 65348f20 by zhu.zewen

优化列表返回签名

parent 29ed627e
package com.jmai.physic.cloudsign;
import cn.hutool.core.codec.Base64Decoder;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.crypto.digest.DigestUtil;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.jmai.api.exception.ServiceException;
......@@ -9,9 +11,16 @@ import com.jmai.physic.config.CloudSignProperties;
import com.jmai.physic.entity.CloudSignToken;
import com.jmai.physic.entity.ISignData;
import com.jmai.physic.mapper.CloudSignTokenMapper;
import com.jmai.sys.consts.enums.SysFileTypeEnum;
import com.jmai.sys.ctx.SpringContextUtils;
import com.jmai.sys.dto.UserDto;
import com.jmai.sys.dto.UploadResultVo;
import com.jmai.sys.entity.SysFile;
import com.jmai.sys.manager.SysManager;
import com.jmai.sys.mapper.SysFileMapper;
import com.jmai.sys.service.SysFileService;
import com.jmai.sys.service.UserService;
import com.jmai.sys.storage.FileStorageService;
import com.jmai.sys.util.HttpUtils;
import com.jmai.sys.util.OpenUtil;
......@@ -34,6 +43,14 @@ public class CloudsignService {
private CloudSignTokenMapper cloudSignTokenMapper;
@Resource
private UserService userService;
@Resource
private SysManager sysManager;
@Resource
private FileStorageService fileStorageService;
@Resource
private SysFileService sysFileService;
@Resource
private SysFileMapper sysFileMapper;
private String buildUrl(String endpoint) {
return cloudSignProperties.getHost() + endpoint;
......@@ -372,7 +389,59 @@ public class CloudsignService {
GetstampRequest request = new GetstampRequest();
request.setRelBizNo(relBizNo);
return getStamp(request);
String stampBase64 = getStamp(request);
// 将印章图片保存到本地
Long stampId = saveStampToLocal(stampBase64);
return Optional.ofNullable(stampId)
.map(String::valueOf)
.orElse("");
}
/**
* 将印章图片保存到本地
* @param stampBase64 印章图片的Base64编码
* @return 文件ID,如果保存失败则返回null
*/
private Long saveStampToLocal(String stampBase64) {
try {
// 将Base64编码转换为字节数组
byte[] imageBytes = Base64Decoder.decode(stampBase64);
// 计算图片的MD5值作为唯一标识
String md5 = DigestUtil.md5Hex(imageBytes);
// 检查是否已存在相同MD5的文件,避免重复存储
SysFile existingFile = sysFileMapper.selectOne(
Wrappers.<SysFile>lambdaQuery()
.eq(SysFile::getETag, md5)
.eq(SysFile::getFileType, SysFileTypeEnum.CS.getCode())
);
if (existingFile != null) {
log.info("印章图片已存在,跳过存储,文件ID: {}", existingFile.getId());
return existingFile.getId();
}
// 使用MD5作为文件名
String fileName = "stamp_" + md5;
// 使用CS(云签)类型上传文件
UploadResultVo uploadResult = sysManager.upload(SysFileTypeEnum.CS, fileName, imageBytes);
// 更新eTag字段为MD5值
SysFile updateFile = new SysFile();
updateFile.setETag(md5);
sysFileMapper.update(updateFile, Wrappers.<SysFile>lambdaUpdate()
.eq(SysFile::getId, uploadResult.getId()));
log.info("印章图片已保存,文件ID: {}, 文件路径: {}", uploadResult.getId(), uploadResult.getFilePath());
return uploadResult.getId();
} catch (Exception e) {
log.error("保存印章图片到本地失败: ", e);
return null;
}
}
/**
......@@ -520,7 +589,7 @@ public class CloudsignService {
.set(CloudSignToken::getUpdateBy, SpringContextUtils.getUserId())
.set(CloudSignToken::getUpdateTime, LocalDateTime.now())
.set(CloudSignToken::getDelFlag, 1)
.setSql("workNo ='" + user.getWorkNo() + ":" + nextId() + "'")
.setSql("work_no ='" + user.getWorkNo() + ":" + nextId() + "'")
);
// 插入新的令牌记录
......
......@@ -41,13 +41,17 @@ public class SignResult {
@ApiModelProperty(value = "工号")
private String workNo;
@ApiModelProperty(value = "签名图片(BASE64)", notes = "在线转换工具:https://www.lddgo.net/convert/base64-to-image")
public String getSignBase64Data() {
String stamp = getStamp();
if (ObjectUtil.isEmpty(stamp) && stamp.startsWith("data:image")) {
return stamp;
} else {
return "data:image/png;base64," + stamp;
}
}
// @ApiModelProperty(value = "签名图片(BASE64)", notes = "在线转换工具:https://www.lddgo.net/convert/base64-to-image")
// public String getSignBase64Data() {
// String stamp = getStamp();
// if (ObjectUtil.isEmpty(stamp)
// // 判断stamp是fileId
// || stamp.matches("\\d+")
// || stamp.startsWith("http")
// || stamp.startsWith("data:image")) {
// return stamp;
// } else {
// return "data:image/png;base64," + stamp;
// }
// }
}
......@@ -16,6 +16,7 @@ import com.jmai.physic.entity.PhysicAmpoule;
import com.jmai.physic.mapper.PhysicAmpouleMapper;
import com.jmai.physic.service.PhysicAmpouleService;
import com.jmai.physic.service.PhysicBillService;
import com.jmai.physic.util.SignDataConverter;
import com.jmai.physic.vo.PhysicAmpouleUseVO;
import com.jmai.physic.vo.PhysicAmpouleVO;
import com.jmai.physic.vo.PhysicVO;
......@@ -30,7 +31,6 @@ import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
......@@ -50,6 +50,9 @@ public class PhysicAmpouleServiceImpl extends AbstractService implements PhysicA
@Resource
private PhysicBillService physicBillService;
@Resource
private SignDataConverter signDataConverter;
@Transactional
@Override
......@@ -136,6 +139,14 @@ public class PhysicAmpouleServiceImpl extends AbstractService implements PhysicA
for (PhysicAmpouleVO record : ampoulePage.getRecords()) {
record.setBatchBalance(batchNoSumMap.get(buildPhysicBatchKey(record)));
record.setPhysicBalance(physicSumMap.get(buildPhysicKey(record)));
// 转换签名数据中的stamp为文件下载URL
if (ObjectUtil.isNotEmpty(record.getChUser())) {
record.setChUser(signDataConverter.convertSignDataToUrl(record.getChUser()));
}
if (ObjectUtil.isNotEmpty(record.getFhUser())) {
record.setFhUser(signDataConverter.convertSignDataToUrl(record.getFhUser()));
}
}
return ampoulePage;
......
......@@ -15,6 +15,7 @@ import com.jmai.physic.entity.PhysicApply;
import com.jmai.physic.mapper.PhysicApplyMapper;
import com.jmai.physic.service.PhysicApplyService;
import com.jmai.physic.service.PhysicBillService;
import com.jmai.physic.util.SignDataConverter;
import com.jmai.physic.vo.PhysicApplyVO;
import com.jmai.physic.vo.PhysicVO;
import com.jmai.sys.AbstractService;
......@@ -29,7 +30,6 @@ import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import javax.annotation.Resource;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
......@@ -51,6 +51,9 @@ public class PhysicApplyServiceImpl extends AbstractService implements PhysicApp
@Resource
private PhysicBillService physicBillService;
@Resource
private SignDataConverter signDataConverter;
@Transactional
@Override
public PhysicApplyVO createPhysicApply(PhysicApplyCreateReq req) {
......@@ -225,6 +228,23 @@ public class PhysicApplyServiceImpl extends AbstractService implements PhysicApp
@Override
public IPage<PhysicApplyVO> listPage(PhysicApplyQueryReq req) {
IPage<PhysicApplyVO> physicApplyVOIPage = physicApplyMapper.selectApplyPage(new Page<>(req.getPageNo(), req.getPageSize()), req);
// 转换签名数据中的stamp为文件下载URL
for (PhysicApplyVO record : physicApplyVOIPage.getRecords()) {
if (ObjectUtil.isNotEmpty(record.getLyUser())) {
record.setLyUser(signDataConverter.convertSignDataToUrl(record.getLyUser()));
}
if (ObjectUtil.isNotEmpty(record.getShUser())) {
record.setShUser(signDataConverter.convertSignDataToUrl(record.getShUser()));
}
if (ObjectUtil.isNotEmpty(record.getFyUser())) {
record.setFyUser(signDataConverter.convertSignDataToUrl(record.getFyUser()));
}
if (ObjectUtil.isNotEmpty(record.getFhUser())) {
record.setFhUser(signDataConverter.convertSignDataToUrl(record.getFhUser()));
}
}
return physicApplyVOIPage;
}
......
......@@ -18,6 +18,7 @@ import com.jmai.physic.entity.PhysicBillHandover;
import com.jmai.physic.mapper.PhysicBillHandoverMapper;
import com.jmai.physic.mapper.PhysicBillMapper;
import com.jmai.physic.service.PhysicBillService;
import com.jmai.physic.util.SignDataConverter;
import com.jmai.physic.vo.BillInfoVO;
import com.jmai.physic.vo.BillQueryVO;
import com.jmai.sys.AbstractService;
......@@ -68,6 +69,9 @@ public class PhysicBillServiceImpl extends AbstractService implements PhysicBill
@Resource
private SysUserMapper sysUserMapper;
@Resource
private SignDataConverter signDataConverter;
@Transactional
@Override
......@@ -124,6 +128,17 @@ public class PhysicBillServiceImpl extends AbstractService implements PhysicBill
Page<BillQueryVO> page = buildEmptyPage(req);
Page<BillQueryVO> billInfoVOPage = physicBillMapper.selectBillPage(page, req);
// 转换签名数据中的stamp为文件下载URL
for (BillQueryVO record : billInfoVOPage.getRecords()) {
if (ObjectUtil.isNotEmpty(record.getLyUser())) {
record.setLyUser(signDataConverter.convertSignDataToUrl(record.getLyUser()));
}
if (ObjectUtil.isNotEmpty(record.getFhUser())) {
record.setFhUser(signDataConverter.convertSignDataToUrl(record.getFhUser()));
}
}
return billInfoVOPage;
}
......@@ -157,12 +172,24 @@ public class PhysicBillServiceImpl extends AbstractService implements PhysicBill
@Override
public IPage<PhysicBillHandover> listHandoverPage(PhysicBillHandoverQueryReq req) {
Page<PhysicBillHandover> page = buildEmptyPage(req);
return physicBillHandoverMapper.selectPage(page, Wrappers.<PhysicBillHandover>lambdaQuery()
IPage<PhysicBillHandover> handoverPage = physicBillHandoverMapper.selectPage(page, Wrappers.<PhysicBillHandover>lambdaQuery()
.eq(ObjectUtil.isNotEmpty(req.getDeptId()), PhysicBillHandover::getDeptId, req.getDeptId())
.eq(ObjectUtil.isNotEmpty(req.getStatus()), PhysicBillHandover::getStatus, req.getStatus())
.ge(ObjectUtil.isNotEmpty(req.getStartFinishTime()), PhysicBillHandover::getFinishTime, req.getStartFinishTime())
.lt(ObjectUtil.isNotEmpty(req.getEndFinishTime()), PhysicBillHandover::getFinishTime, req.getEndFinishTime())
.orderByDesc(PhysicBillHandover::getId));
// 转换签名数据中的stamp为文件下载URL
for (PhysicBillHandover record : handoverPage.getRecords()) {
if (ObjectUtil.isNotEmpty(record.getYjUser())) {
record.setYjUser(signDataConverter.convertSignDataToUrl(record.getYjUser()));
}
if (ObjectUtil.isNotEmpty(record.getJsUser())) {
record.setJsUser(signDataConverter.convertSignDataToUrl(record.getJsUser()));
}
}
return handoverPage;
}
/**
......
......@@ -17,6 +17,7 @@ import com.jmai.physic.mapper.PhysicStorageAmpouleMapper;
import com.jmai.physic.service.PhysicBillService;
import com.jmai.physic.service.PhysicDestroyCheckDetailService;
import com.jmai.physic.service.PhysicDestroyCheckService;
import com.jmai.physic.util.SignDataConverter;
import com.jmai.physic.vo.PhysicDestroyCheckVO;
import com.jmai.physic.vo.PhysicDestroyNumVO;
import com.jmai.sys.consts.BizFileTypes;
......@@ -68,6 +69,9 @@ public class PhysicDestroyCheckServiceImpl extends BaseServiceImpl<PhysicDestroy
@Resource
private SysManager sysManager;
@Resource
private SignDataConverter signDataConverter;
@Transactional
@Override
......@@ -112,6 +116,26 @@ public class PhysicDestroyCheckServiceImpl extends BaseServiceImpl<PhysicDestroy
bf -> ObjectUtil.equals(bf.getBizKey(), checkVO.getId().toString()),
BizFileDto::getFileId));
}
// 转换签名数据中的stamp为文件下载URL
if (ObjectUtil.isNotEmpty(checkVO.getXhUser())) {
checkVO.setXhUser(signDataConverter.convertSignDataToUrl(checkVO.getXhUser()));
}
if (ObjectUtil.isNotEmpty(checkVO.getJdUser())) {
checkVO.setJdUser(signDataConverter.convertSignDataToUrl(checkVO.getJdUser()));
}
if (ObjectUtil.isNotEmpty(checkVO.getYxbzrUser())) {
checkVO.setYxbzrUser(signDataConverter.convertSignDataToUrl(checkVO.getYxbzrUser()));
}
if (ObjectUtil.isNotEmpty(checkVO.getYwkkzUser())) {
checkVO.setYwkkzUser(signDataConverter.convertSignDataToUrl(checkVO.getYwkkzUser()));
}
if (ObjectUtil.isNotEmpty(checkVO.getBwkkzUser())) {
checkVO.setBwkkzUser(signDataConverter.convertSignDataToUrl(checkVO.getBwkkzUser()));
}
if (ObjectUtil.isNotEmpty(checkVO.getZgyzUser())) {
checkVO.setZgyzUser(signDataConverter.convertSignDataToUrl(checkVO.getZgyzUser()));
}
}
return checkPage;
......
......@@ -11,6 +11,7 @@ import com.jmai.physic.entity.PhysicDestroy;
import com.jmai.physic.mapper.PhysicDestroyMapper;
import com.jmai.physic.service.PhysicBillService;
import com.jmai.physic.service.PhysicDestroyService;
import com.jmai.physic.util.SignDataConverter;
import com.jmai.physic.vo.PhysicDestroyVO;
import com.jmai.sys.AbstractService;
import com.jmai.sys.consts.enums.RoleTypeEum;
......@@ -38,6 +39,9 @@ public class PhysicDestroyServiceImpl extends AbstractService implements PhysicD
@Resource
private PhysicBillService physicBillService;
@Resource
private SignDataConverter signDataConverter;
@Override
@Transactional(rollbackFor = Exception.class)
public void create(PhysicDestroyCreateReq req) {
......@@ -56,6 +60,17 @@ public class PhysicDestroyServiceImpl extends AbstractService implements PhysicD
public Page<PhysicDestroyVO> listPage(PhysicCheckQueryReq req) {
Page<PhysicDestroyVO> page = buildEmptyPage(req);
Page<PhysicDestroyVO> destroyPage = physicDestroyMapper.selectDestroyPage(page, req);
// 转换签名数据中的stamp为文件下载URL
for (PhysicDestroyVO record : destroyPage.getRecords()) {
if (cn.hutool.core.util.ObjectUtil.isNotEmpty(record.getCzUser())) {
record.setCzUser(signDataConverter.convertSignDataToUrl(record.getCzUser()));
}
if (cn.hutool.core.util.ObjectUtil.isNotEmpty(record.getFhUser())) {
record.setFhUser(signDataConverter.convertSignDataToUrl(record.getFhUser()));
}
}
return destroyPage;
}
......
......@@ -16,6 +16,7 @@ import com.jmai.physic.entity.PhysicRecord;
import com.jmai.physic.mapper.PhysicRecordMapper;
import com.jmai.physic.service.PhysicBillService;
import com.jmai.physic.service.PhysicRecordService;
import com.jmai.physic.util.SignDataConverter;
import com.jmai.physic.vo.PhysicRecordVO;
import com.jmai.physic.vo.PhysicVO;
import com.jmai.sys.AbstractService;
......@@ -52,6 +53,9 @@ public class PhysicRecordServiceImpl extends AbstractService implements PhysicRe
@Resource
private PhysicBillService physicBillService;
@Resource
private SignDataConverter signDataConverter;
@Override
@Transactional(rollbackFor = Exception.class)
public List<PhysicRecord> physicRecordCreate(PhysicRecordCreateReq req) {
......@@ -144,6 +148,20 @@ public class PhysicRecordServiceImpl extends AbstractService implements PhysicRe
bf -> ObjectUtil.equals(bf.getBizKey(), record.getId().toString()),
BizFileDto::getFileId));
}
// 转换签名数据中的stamp为文件下载URL
if (ObjectUtil.isNotEmpty(record.getDpUser())) {
record.setDpUser(signDataConverter.convertSignDataToUrl(record.getDpUser()));
}
if (ObjectUtil.isNotEmpty(record.getFyUser())) {
record.setFyUser(signDataConverter.convertSignDataToUrl(record.getFyUser()));
}
if (ObjectUtil.isNotEmpty(record.getYsUser())) {
record.setYsUser(signDataConverter.convertSignDataToUrl(record.getYsUser()));
}
if (ObjectUtil.isNotEmpty(record.getFhUser())) {
record.setFhUser(signDataConverter.convertSignDataToUrl(record.getFhUser()));
}
}
return recordPage;
......
......@@ -16,6 +16,7 @@ import com.jmai.physic.entity.PhysicStorageAmpoule;
import com.jmai.physic.mapper.PhysicStorageAmpouleMapper;
import com.jmai.physic.service.PhysicBillService;
import com.jmai.physic.service.PhysicStorageAmpouleService;
import com.jmai.physic.util.SignDataConverter;
import com.jmai.physic.vo.PhysicStorageAmpouleVO;
import com.jmai.physic.vo.PhysicVO;
import com.jmai.sys.AbstractService;
......@@ -49,6 +50,9 @@ public class PhysicStorageAmpouleServiceImpl extends AbstractService implements
@Resource
protected SysManager sysManager;
@Resource
private SignDataConverter signDataConverter;
@Override
@Transactional(rollbackFor = Exception.class)
public void create(PhysicStorageAmpouleCreateReq req) {
......@@ -202,6 +206,14 @@ public class PhysicStorageAmpouleServiceImpl extends AbstractService implements
record.setBatchBalance(batchNoSumMap.get(buildPhysicBatchKey(record)));
record.setPhysicBalance(physicSumMap.get(buildPhysicKey(record)));
// 转换签名数据中的stamp为文件下载URL
if (ObjectUtil.isNotEmpty(record.getJsUser())) {
record.setJsUser(signDataConverter.convertSignDataToUrl(record.getJsUser()));
}
if (ObjectUtil.isNotEmpty(record.getThUser())) {
record.setThUser(signDataConverter.convertSignDataToUrl(record.getThUser()));
}
}
return ampoulePage;
......
......@@ -15,6 +15,7 @@ import com.jmai.physic.mapper.PhysicAmpouleMapper;
import com.jmai.physic.mapper.PhysicWarehouseMapper;
import com.jmai.physic.service.PhysicBillService;
import com.jmai.physic.service.PhysicWarehouseService;
import com.jmai.physic.util.SignDataConverter;
import com.jmai.physic.vo.PhysicAmpouleUseVO;
import com.jmai.physic.vo.PhysicLossVO;
import com.jmai.physic.vo.PhysicVO;
......@@ -55,6 +56,9 @@ public class PhysicWarehouseServiceImpl extends AbstractService implements Phys
@Resource
private PhysicAmpouleMapper physicAmpouleMapper;
@Resource
private SignDataConverter signDataConverter;
@Override
public PhysicWarehouseVO createPhysicWarehouse(PhysicWarehouseCreateReq req) {
PhysicWarehouse physicWarehouse = new PhysicWarehouse();
......@@ -213,6 +217,20 @@ public class PhysicWarehouseServiceImpl extends AbstractService implements Phys
public IPage<PhysicWarehouseVO> listPage(PhysicWarehouseQueryReq req) {
IPage<PhysicWarehouseVO> page = buildEmptyPage(req);
page= physicWarehouseMapper.selectWarehousePage(page, req);
// 转换签名数据中的stamp为文件下载URL
for (PhysicWarehouseVO record : page.getRecords()) {
if (ObjectUtil.isNotEmpty(record.getYsUser())) {
record.setYsUser(signDataConverter.convertSignDataToUrl(record.getYsUser()));
}
if (ObjectUtil.isNotEmpty(record.getFhUser())) {
record.setFhUser(signDataConverter.convertSignDataToUrl(record.getFhUser()));
}
if (ObjectUtil.isNotEmpty(record.getBgUser())) {
record.setBgUser(signDataConverter.convertSignDataToUrl(record.getBgUser()));
}
}
return page;
}
......
package com.jmai.physic.util;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.json.JSONUtil;
import com.alibaba.fastjson.JSONObject;
import com.jmai.physic.cloudsign.SignResult;
import com.jmai.sys.storage.FileStorageService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.Base64;
import static com.jmai.api.base.BaseService.copyTo;
/**
* 签名数据转换工具类
*/
@Component
public class SignDataConverter {
@Autowired
private FileStorageService fileStorageService;
/**
* 将签名数据中的stamp(文件ID)转换为文件下载URL
*
* @param signDataJson 签名数据的JSON字符串
* @return 包含文件下载URL的签名数据
*/
public String convertSignDataToUrl(String signDataJson) {
if (ObjectUtil.isEmpty(signDataJson)) {
return signDataJson;
}
try {
// 解析JSON字符串为SignResult对象
SignResult signResult = JSONUtil.toBean(signDataJson, SignResult.class);
// 获取stamp字段(文件ID)
String stamp = signResult.getStamp();
String signBase64Data = "";
if (ObjectUtil.isNotEmpty(stamp)) {
try {
// 更新SignResult对象中的stamp为文件下载URL
Long fileId = Long.valueOf(stamp);
String fileUrl = fileStorageService.getUrl(fileId);
signResult.setStamp(fileUrl);
// 下载stamp图片,将二进制图片转为Base64字符串(类似data:image/png;base64,XXX)
byte[] file = fileStorageService.download(fileId);
String base64 = Base64.getEncoder().encodeToString(file);
signBase64Data = "data:image/png;base64," + base64;
} catch (NumberFormatException e) {
// 如果stamp不是有效的数字,保持原样
}
}
// 返回更新后的JSON字符串
// 对象转JSONObject
JSONObject json = new JSONObject();
copyTo(signResult, json);
json.put("signBase64Data", signBase64Data);
return json.toJSONString();
} catch (Exception e) {
// 如果解析失败,返回原始数据
return signDataJson;
}
}
}
\ No newline at end of file
......@@ -9,16 +9,8 @@ import lombok.Getter;
*/
@Getter
public enum SysFileTypeEnum {
TEMPLATE(1000, "模板", "template"),
// 核验/追溯图片
IE(2000, "IE", "ie"),
CS(3000, "CS", "cs"),
DB(4000, "DB", "db"),
// 业务文件
BIZ(9000, "BIZ", "biz"),
CS(1000, "CS", "云签签名图片"),
OTHER(9999, "其他", "other"),
......@@ -66,6 +58,6 @@ public enum SysFileTypeEnum {
public static Boolean isImage(Integer code) {
SysFileTypeEnum fileType = getByCode(code);
return fileType == IE || fileType == CS || fileType == DB;
return fileType == CS;
}
}
......@@ -27,5 +27,6 @@ public interface FileStorageService {
void download(Long srcFileId, File dstFile);
byte[] download(Long fileId);
byte[] download(SysFile sysFile);
}
......@@ -91,6 +91,11 @@ public class FileStorageServiceImpl implements FileStorageService {
SysFile srcFile = sysFileMapper.selectById(srcFileId);
getFileStorage(srcFile.getPlatform()).download(srcFile, dstFile);
}
@Override
public byte[] download(Long fileId) {
SysFile sysFile = sysFileMapper.selectById(fileId);
return getFileStorage(sysFile.getPlatform()).download(sysFile);
}
@Override
public byte[] download(SysFile sysFile) {
......
......@@ -77,18 +77,6 @@ public class LocalFileStorage implements FileStorage{
return null;
}
// 特殊处理:OCR与业务服务不在同一机器(端侧部署OCR+业务服务部署到服务器),且未图片还未同步到业务服务器时 => 单独的OCR下载地址
SysFileTypeEnum fileType = SysFileTypeEnum.getByCode(sysFile.getFileType());
String bucket = fileType.getBucket();
String fileName = sysFile.getId()+sysFile.getOriginalMimeType();
String filePath = fileStorageProperties.getLocal().getBasePath() + "/" + bucket + "/" + fileName;
File file = new File(filePath);
if (fileType == SysFileTypeEnum.IE
&& ObjectUtil.isNotEmpty(fileStorageProperties.getLocal().getOcrDownloadUrl())
&& !file.exists()) {
return fileStorageProperties.getLocal().getOcrDownloadUrl() +"?fileId="+ sysFile.getId();
}
return fileStorageProperties.getLocal().getDownloadUrl() +"?fileId="+ sysFile.getId();
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment