上传文件
This commit is contained in:
parent
06fd682e48
commit
01ce2f4226
@ -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));
|
||||
}
|
||||
}
|
||||
|
@ -74,4 +74,11 @@ public interface FileService {
|
||||
* @return
|
||||
*/
|
||||
BusinessFileVO createBusinessReturnFile(MultipartFile file) throws IOException;
|
||||
|
||||
/**
|
||||
* 上传文件
|
||||
* @param file
|
||||
* @return
|
||||
*/
|
||||
BusinessFileVO businessUploadFile(MultipartFile file) throws IOException;
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -157,3 +157,6 @@ yudao:
|
||||
mock-enable: true
|
||||
access-log: # 访问日志的配置项
|
||||
enable: false
|
||||
|
||||
file:
|
||||
upload-path: /Users/Documents/image/ # 文件上传路径
|
@ -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());
|
||||
|
@ -58,6 +58,13 @@ public interface RobotTaskDetailActionLogService {
|
||||
*/
|
||||
void addLogInCache(List<RobotTaskDetailActionLogDO> logs);
|
||||
|
||||
/**
|
||||
* 设置上一条数据完成
|
||||
* @param robotNo
|
||||
* @return
|
||||
*/
|
||||
RobotTaskDetailActionLogDO setPreviousTaskDoneByRobotNo(String robotNo);
|
||||
|
||||
/**
|
||||
* 获取车辆的最后一条任务
|
||||
* @param robotNo
|
||||
|
@ -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>()
|
||||
|
Loading…
Reference in New Issue
Block a user