上传文件

This commit is contained in:
cbs 2025-03-28 10:51:19 +08:00
parent 06fd682e48
commit 01ce2f4226
7 changed files with 73 additions and 10 deletions

View File

@ -107,5 +107,10 @@ public class FileController {
return success(fileService.createBusinessReturnFile(file));
}
@PostMapping("/businessUploadFile")
@Operation(summary = "上传文件")
@PermitAll
public CommonResult<BusinessFileVO> businessUploadFile(@RequestParam("uploadFiles") MultipartFile file) throws Exception {
return success(fileService.businessUploadFile(file));
}
}

View File

@ -74,4 +74,11 @@ public interface FileService {
* @return
*/
BusinessFileVO createBusinessReturnFile(MultipartFile file) throws IOException;
/**
* 上传文件
* @param file
* @return
*/
BusinessFileVO businessUploadFile(MultipartFile file) throws IOException;
}

View File

@ -3,6 +3,7 @@ package cn.iocoder.yudao.module.infra.service.file;
import cn.hutool.core.io.IoUtil;
import cn.hutool.core.io.file.FileNameUtil;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.util.io.FileUtils;
@ -18,12 +19,16 @@ import cn.iocoder.yudao.module.infra.framework.file.core.client.FileClient;
import cn.iocoder.yudao.module.infra.framework.file.core.client.s3.FilePresignedUrlRespDTO;
import cn.iocoder.yudao.module.infra.framework.file.core.utils.FileTypeUtils;
import lombok.SneakyThrows;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import java.io.IOException;
import java.io.*;
import java.nio.file.Files;
import java.util.HashMap;
import java.util.UUID;
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
import static cn.iocoder.yudao.module.infra.enums.ErrorCodeConstants.FILE_NOT_EXISTS;
@ -42,6 +47,9 @@ public class FileServiceImpl implements FileService {
@Resource
private FileMapper fileMapper;
@Value("${file.upload-path}")
private String uploadPath;
@Override
public PageResult<FileDO> getFilePage(FilePageReqVO pageReqVO) {
return fileMapper.selectPage(pageReqVO);
@ -190,4 +198,23 @@ public class FileServiceImpl implements FileService {
return fileDo;
}
@Override
public BusinessFileVO businessUploadFile(MultipartFile file) throws IOException {
File files = new File("");
String filePath = files.getCanonicalPath() + uploadPath;
String fileName = file.getOriginalFilename();
fileName = UUID.randomUUID() + "_" + fileName;
File dir = new File(filePath);
if (!dir.exists()) {
dir.mkdirs();
}
File fileObj = new File(filePath, fileName);
file.transferTo(fileObj);
// 把上传上来的文件存储到磁盘上指定一个路径
// file.transferTo(uploadFile);
BusinessFileVO fileDo = new BusinessFileVO();
fileDo.setUrl(filePath+fileName);
return fileDo;
}
}

View File

@ -157,3 +157,6 @@ yudao:
mock-enable: true
access-log: # 访问日志的配置项
enable: false
file:
upload-path: /Users/Documents/image/ # 文件上传路径

View File

@ -147,14 +147,7 @@ public class RobotTaskStatusApiImpl implements RobotTaskStatusApi {
*/
public RobotTaskDetailActionLogDO setLastLogDone(String mac){
String robotNo = robotInformationService.getRobotNoByMac(mac);
RobotTaskDetailActionLogDO lastLog = taskDetailActionLogService.getLastTaskByRobotNo(robotNo);
if (ObjectUtil.isNotEmpty(lastLog)) {
lastLog.setEndTime(LocalDateTime.now());
lastLog.setActionStatus(ActionStatusEnum.DONE.getType());
RobotTaskDetailActionLogSaveReqVO updateObj = BeanUtils.toBean(lastLog, RobotTaskDetailActionLogSaveReqVO.class);
taskDetailActionLogService.updateTaskDetailActionLog(updateObj);
}
return lastLog;
return taskDetailActionLogService.setPreviousTaskDoneByRobotNo(robotNo);
}
/**
@ -172,6 +165,10 @@ public class RobotTaskStatusApiImpl implements RobotTaskStatusApi {
logOne.setRobotNo(robotNo);
logOne.setStartTime(LocalDateTime.now());
logOne.setTaskDetailId(robotCompleteTaskDTO.getOrderId());
if (ObjectUtil.isNotEmpty(lastLog)) {
logOne.setCommandType(lastLog.getCommandType());
logOne.setTaskNo(lastLog.getTaskNo());
}
taskDetailActionLogMapper.insert(logOne);
redisUtil.set(robotDoingActionKey, logOne.getActionMsg(), doingActionCacheTime);
moveToWaitService.updateWaitStatus(robotCompleteTaskDTO.getOrderId(), WaitStatusEnum.GO_TO_WAIT.getType());

View File

@ -58,6 +58,13 @@ public interface RobotTaskDetailActionLogService {
*/
void addLogInCache(List<RobotTaskDetailActionLogDO> logs);
/**
* 设置上一条数据完成
* @param robotNo
* @return
*/
RobotTaskDetailActionLogDO setPreviousTaskDoneByRobotNo(String robotNo);
/**
* 获取车辆的最后一条任务
* @param robotNo

View File

@ -1,5 +1,6 @@
package cn.iocoder.yudao.module.system.service.log;
import cn.hutool.core.util.ObjectUtil;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.module.system.constant.robot.RobotTaskChcheConstant;
import cn.iocoder.yudao.module.system.controller.admin.log.vo.RobotTaskDetailActionLogPageReqVO;
@ -8,6 +9,7 @@ import cn.iocoder.yudao.module.system.dal.dataobject.log.RobotTaskDetailActionLo
import cn.iocoder.yudao.module.system.dal.dataobject.robot.RobotTaskDetailDO;
import cn.iocoder.yudao.module.system.dal.mysql.log.RobotTaskDetailActionLogMapper;
import cn.iocoder.yudao.module.system.enums.robot.RobotTaskStatusEnum;
import cn.iocoder.yudao.module.system.enums.robot.actionlog.ActionStatusEnum;
import cn.iocoder.yudao.module.system.util.redis.RedisUtil;
import com.alibaba.fastjson.JSON;
import org.springframework.beans.factory.annotation.Value;
@ -16,6 +18,7 @@ import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import java.time.LocalDateTime;
import java.util.*;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
@ -94,6 +97,20 @@ public class RobotTaskDetailActionLogServiceImpl implements RobotTaskDetailActio
}
}
@Override
public RobotTaskDetailActionLogDO setPreviousTaskDoneByRobotNo(String robotNo) {
RobotTaskDetailActionLogDO lastLog = taskDetailActionLogMapper.selectOne(new LambdaQueryWrapperX<RobotTaskDetailActionLogDO>()
.eq(RobotTaskDetailActionLogDO::getRobotNo, robotNo)
.orderByDesc(RobotTaskDetailActionLogDO::getCreateTime)
.last("limit 1"));
if (ObjectUtil.isNotEmpty(lastLog)) {
lastLog.setEndTime(LocalDateTime.now());
lastLog.setActionStatus(ActionStatusEnum.DONE.getType());
taskDetailActionLogMapper.selectById(lastLog);
}
return lastLog;
}
@Override
public RobotTaskDetailActionLogDO getLastTaskByRobotNo(String robotNo) {
return taskDetailActionLogMapper.selectOne(new LambdaQueryWrapperX<RobotTaskDetailActionLogDO>()