feat: 车型文件导入独立接口

This commit is contained in:
2024-08-19 17:27:08 +08:00
parent 3880afeb1c
commit 8245567b09
3 changed files with 40 additions and 1 deletions
@@ -18,6 +18,7 @@ import com.jero.modules.activiti.process.standardComplianceCheck.entity.vo.Model
import com.jero.modules.activiti.process.standardComplianceCheck.entity.vo.ProcessSccVO;
import com.jero.modules.activiti.process.standardComplianceCheck.entity.vo.SplitExcelVO;
import com.jero.modules.activiti.process.standardComplianceCheck.service.IProcessStandardComplianceCheckService;
import com.jero.modules.oss.entity.OSSFile;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
@@ -34,6 +35,7 @@ import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.servlet.ModelAndView;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.ArrayList;
@@ -123,6 +125,18 @@ public class ProcessStandardComplianceCheckController extends JeroController<Pro
return Result.OK(MessageUtils.getMessage(ResultCommon.OK), sccService.generate(scc));
}
/**
* 上传车型文件
*
* @param request
*/
@AutoLog(value = "法规符合性排查流程-上传车型文件")
@ApiOperation(value = "法规符合性排查流程-上传车型文件", notes = "法规符合性排查流程-上传车型文件")
@PostMapping("/uploadModelFile")
public Result<OSSFile> uploadModelFile(@RequestBody HttpServletRequest request) {
return Result.OK(MessageUtils.getMessage(ResultCommon.OK), sccService.uploadModelFile(request));
}
/**
* 车型导入模板下载
*/
@@ -5,9 +5,11 @@ import com.jero.modules.activiti.process.fb.vo.ProcessInfoVO;
import com.jero.modules.activiti.process.standardComplianceCheck.entity.ProcessStandardComplianceCheck;
import com.jero.modules.activiti.process.standardComplianceCheck.entity.ProcessStandardComplianceCheckDetail;
import com.jero.modules.activiti.process.standardComplianceCheck.entity.vo.ProcessSccVO;
import com.jero.modules.oss.entity.OSSFile;
import org.activiti.engine.delegate.DelegateTask;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;
@@ -37,4 +39,5 @@ public interface IProcessStandardComplianceCheckService extends IService<Process
Map<String, Object> importExcelWithData(MultipartFile file, String taskId) throws IOException;
OSSFile uploadModelFile(HttpServletRequest request);
}
@@ -1,5 +1,6 @@
package com.jero.modules.activiti.process.standardComplianceCheck.service.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
@@ -13,6 +14,7 @@ import com.jero.common.system.vo.LoginUser;
import com.jero.common.system.vo.SysDictItemCore;
import com.jero.common.util.FileUtils;
import com.jero.common.util.MessageUtils;
import com.jero.common.util.RedisUtil;
import com.jero.common.util.ZipUtil;
import com.jero.common.util.obs.ObsBootUtil;
import com.jero.modules.activiti.common.ActivitiCommon;
@@ -77,8 +79,10 @@ import org.springframework.mock.web.MockMultipartFile;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.FileOutputStream;
@@ -141,11 +145,15 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl<Proce
private ProcessAllService paService;
@Resource
private ProcessStandardComplianceCheckDetailMapper sccDetailMapper;
@Resource
private RedisUtil redisUtil;
@Value("${jero.path.exportExcelTempPath}")
private String exportExcelTempPath;
private static final String EXPORT_EXCEL_TEMP = "exportExcelTemp";
private static final String MODEL_EXCEL_VO_LIST_KEY = "modelExcelVOList:";
@Override
public void startProcess(ProcessInfoVO<ProcessSccVO> processInfoVO) {
// 流程Key
@@ -760,6 +768,21 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl<Proce
return resultMap;
}
@Override
public OSSFile uploadModelFile(HttpServletRequest request) {
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
// 获取上传文件对象
MultipartFile modelFile = multipartRequest.getFile("file");
OSSFile result = ossFileService.outUpload(request).getResult();
// 等待模型文件获取完成并进行文件内容转换
List<ModelExcelVO> modelExcelVOList = this.getModelExcelData(modelFile);
if (CollUtil.isEmpty(modelExcelVOList)) {
// 存入Redis
redisUtil.set(MODEL_EXCEL_VO_LIST_KEY + result.getId(), modelExcelVOList, 60 * 60 * 24 * 7);
}
return result;
}
private List<String> validationModelList(List<ModelExcelVO> list, List<SysDictItemCore> listDict) {
List<String> errorMsgs = new ArrayList<>();
int i = 2;
@@ -1211,7 +1234,6 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl<Proce
this.transToDictValue(modelExcelVOList, listDict);
}
// 转换一下数据
return modelExcelVOList;
}