上传文件
This commit is contained in:
parent
06fd682e48
commit
01ce2f4226
@ -107,5 +107,10 @@ public class FileController {
|
|||||||
return success(fileService.createBusinessReturnFile(file));
|
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
|
* @return
|
||||||
*/
|
*/
|
||||||
BusinessFileVO createBusinessReturnFile(MultipartFile file) throws IOException;
|
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.IoUtil;
|
||||||
import cn.hutool.core.io.file.FileNameUtil;
|
import cn.hutool.core.io.file.FileNameUtil;
|
||||||
import cn.hutool.core.lang.Assert;
|
import cn.hutool.core.lang.Assert;
|
||||||
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
import cn.iocoder.yudao.framework.common.util.io.FileUtils;
|
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.client.s3.FilePresignedUrlRespDTO;
|
||||||
import cn.iocoder.yudao.module.infra.framework.file.core.utils.FileTypeUtils;
|
import cn.iocoder.yudao.module.infra.framework.file.core.utils.FileTypeUtils;
|
||||||
import lombok.SneakyThrows;
|
import lombok.SneakyThrows;
|
||||||
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.web.multipart.MultipartFile;
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
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.framework.common.exception.util.ServiceExceptionUtil.exception;
|
||||||
import static cn.iocoder.yudao.module.infra.enums.ErrorCodeConstants.FILE_NOT_EXISTS;
|
import static cn.iocoder.yudao.module.infra.enums.ErrorCodeConstants.FILE_NOT_EXISTS;
|
||||||
@ -42,6 +47,9 @@ public class FileServiceImpl implements FileService {
|
|||||||
@Resource
|
@Resource
|
||||||
private FileMapper fileMapper;
|
private FileMapper fileMapper;
|
||||||
|
|
||||||
|
@Value("${file.upload-path}")
|
||||||
|
private String uploadPath;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public PageResult<FileDO> getFilePage(FilePageReqVO pageReqVO) {
|
public PageResult<FileDO> getFilePage(FilePageReqVO pageReqVO) {
|
||||||
return fileMapper.selectPage(pageReqVO);
|
return fileMapper.selectPage(pageReqVO);
|
||||||
@ -190,4 +198,23 @@ public class FileServiceImpl implements FileService {
|
|||||||
return fileDo;
|
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
|
mock-enable: true
|
||||||
access-log: # 访问日志的配置项
|
access-log: # 访问日志的配置项
|
||||||
enable: false
|
enable: false
|
||||||
|
|
||||||
|
file:
|
||||||
|
upload-path: /Users/Documents/image/ # 文件上传路径
|
@ -147,14 +147,7 @@ public class RobotTaskStatusApiImpl implements RobotTaskStatusApi {
|
|||||||
*/
|
*/
|
||||||
public RobotTaskDetailActionLogDO setLastLogDone(String mac){
|
public RobotTaskDetailActionLogDO setLastLogDone(String mac){
|
||||||
String robotNo = robotInformationService.getRobotNoByMac(mac);
|
String robotNo = robotInformationService.getRobotNoByMac(mac);
|
||||||
RobotTaskDetailActionLogDO lastLog = taskDetailActionLogService.getLastTaskByRobotNo(robotNo);
|
return taskDetailActionLogService.setPreviousTaskDoneByRobotNo(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;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -172,6 +165,10 @@ public class RobotTaskStatusApiImpl implements RobotTaskStatusApi {
|
|||||||
logOne.setRobotNo(robotNo);
|
logOne.setRobotNo(robotNo);
|
||||||
logOne.setStartTime(LocalDateTime.now());
|
logOne.setStartTime(LocalDateTime.now());
|
||||||
logOne.setTaskDetailId(robotCompleteTaskDTO.getOrderId());
|
logOne.setTaskDetailId(robotCompleteTaskDTO.getOrderId());
|
||||||
|
if (ObjectUtil.isNotEmpty(lastLog)) {
|
||||||
|
logOne.setCommandType(lastLog.getCommandType());
|
||||||
|
logOne.setTaskNo(lastLog.getTaskNo());
|
||||||
|
}
|
||||||
taskDetailActionLogMapper.insert(logOne);
|
taskDetailActionLogMapper.insert(logOne);
|
||||||
redisUtil.set(robotDoingActionKey, logOne.getActionMsg(), doingActionCacheTime);
|
redisUtil.set(robotDoingActionKey, logOne.getActionMsg(), doingActionCacheTime);
|
||||||
moveToWaitService.updateWaitStatus(robotCompleteTaskDTO.getOrderId(), WaitStatusEnum.GO_TO_WAIT.getType());
|
moveToWaitService.updateWaitStatus(robotCompleteTaskDTO.getOrderId(), WaitStatusEnum.GO_TO_WAIT.getType());
|
||||||
|
@ -58,6 +58,13 @@ public interface RobotTaskDetailActionLogService {
|
|||||||
*/
|
*/
|
||||||
void addLogInCache(List<RobotTaskDetailActionLogDO> logs);
|
void addLogInCache(List<RobotTaskDetailActionLogDO> logs);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 设置上一条数据完成
|
||||||
|
* @param robotNo
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
RobotTaskDetailActionLogDO setPreviousTaskDoneByRobotNo(String robotNo);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取车辆的最后一条任务
|
* 获取车辆的最后一条任务
|
||||||
* @param robotNo
|
* @param robotNo
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package cn.iocoder.yudao.module.system.service.log;
|
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.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||||
import cn.iocoder.yudao.module.system.constant.robot.RobotTaskChcheConstant;
|
import cn.iocoder.yudao.module.system.constant.robot.RobotTaskChcheConstant;
|
||||||
import cn.iocoder.yudao.module.system.controller.admin.log.vo.RobotTaskDetailActionLogPageReqVO;
|
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.dataobject.robot.RobotTaskDetailDO;
|
||||||
import cn.iocoder.yudao.module.system.dal.mysql.log.RobotTaskDetailActionLogMapper;
|
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.RobotTaskStatusEnum;
|
||||||
|
import cn.iocoder.yudao.module.system.enums.robot.actionlog.ActionStatusEnum;
|
||||||
import cn.iocoder.yudao.module.system.util.redis.RedisUtil;
|
import cn.iocoder.yudao.module.system.util.redis.RedisUtil;
|
||||||
import com.alibaba.fastjson.JSON;
|
import com.alibaba.fastjson.JSON;
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
@ -16,6 +18,7 @@ import org.springframework.stereotype.Service;
|
|||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
|
||||||
|
import java.time.LocalDateTime;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
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
|
@Override
|
||||||
public RobotTaskDetailActionLogDO getLastTaskByRobotNo(String robotNo) {
|
public RobotTaskDetailActionLogDO getLastTaskByRobotNo(String robotNo) {
|
||||||
return taskDetailActionLogMapper.selectOne(new LambdaQueryWrapperX<RobotTaskDetailActionLogDO>()
|
return taskDetailActionLogMapper.selectOne(new LambdaQueryWrapperX<RobotTaskDetailActionLogDO>()
|
||||||
|
Loading…
Reference in New Issue
Block a user