1、新增导入指标接口
2、工况库查询根据租户进行区分
This commit is contained in:
@@ -1,14 +1,17 @@
|
|||||||
package com.sdm.project.bo;
|
package com.sdm.project.bo;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson2.JSONObject;
|
||||||
|
import com.sdm.common.common.SdmResponse;
|
||||||
|
import com.sdm.common.entity.ExportExcelFormat;
|
||||||
import com.sdm.common.utils.SystemOperate;
|
import com.sdm.common.utils.SystemOperate;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.*;
|
||||||
import java.io.FileOutputStream;
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.nio.charset.Charset;
|
import java.nio.charset.Charset;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@Component
|
@Component
|
||||||
@@ -42,11 +45,11 @@ public class ExportOperate {
|
|||||||
} finally {
|
} finally {
|
||||||
File taskFile = new File(taskJsonFileName);
|
File taskFile = new File(taskJsonFileName);
|
||||||
if (taskFile.exists()) {
|
if (taskFile.exists()) {
|
||||||
// taskFile.delete();
|
taskFile.delete();
|
||||||
}
|
}
|
||||||
File columnFile = new File(columnFileName);
|
File columnFile = new File(columnFileName);
|
||||||
if (columnFile.exists()) {
|
if (columnFile.exists()) {
|
||||||
// columnFile.delete();
|
columnFile.delete();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -80,5 +83,97 @@ public class ExportOperate {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private String uploadMultipartFile(MultipartFile multipartFile)
|
||||||
|
{
|
||||||
|
String fileName = multipartFile.getOriginalFilename();
|
||||||
|
File file = null;
|
||||||
|
String saveName = "";
|
||||||
|
try
|
||||||
|
{
|
||||||
|
saveName = TEMP_EXPORT_PATH + System.currentTimeMillis()+"_"+fileName;
|
||||||
|
file = new File(saveName);
|
||||||
|
FileOutputStream os = new FileOutputStream(file);
|
||||||
|
InputStream is = multipartFile.getInputStream();
|
||||||
|
int readLen = 0;
|
||||||
|
byte[] buffer = new byte[1024*8];
|
||||||
|
while((readLen = is.read(buffer)) > 0)
|
||||||
|
{
|
||||||
|
os.write(buffer,0,readLen);
|
||||||
|
}
|
||||||
|
is.close();
|
||||||
|
os.close();
|
||||||
|
}
|
||||||
|
catch (IOException e)
|
||||||
|
{
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
return saveName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public SdmResponse parsePerformance(MultipartFile performanceFile, String columns)
|
||||||
|
{
|
||||||
|
SdmResponse response = SdmResponse.success();
|
||||||
|
String performanceFileName = uploadMultipartFile(performanceFile);
|
||||||
|
String columnFileName = TEMP_EXPORT_PATH + System.currentTimeMillis() + "column.json";
|
||||||
|
if(!saveContentsToFile(columns,columnFileName)) {
|
||||||
|
response = SdmResponse.failed("保存指标字段信息失败");
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
// 脚本解析导入的指标文件
|
||||||
|
String shellPath = scriptPath + File.separator + "inputExcel.py";
|
||||||
|
String poolJsonFileName = TEMP_EXPORT_PATH + System.currentTimeMillis() + "performance.json";
|
||||||
|
String pythonCmd = "python " + shellPath + " '" + poolJsonFileName + " '" + " '" + performanceFileName + "' " + " '" + columnFileName + " '" ;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
log.info("shell begin time:"+System.currentTimeMillis());
|
||||||
|
String resultString = SystemOperate.exeShellCmd(pythonCmd);
|
||||||
|
log.info("shell end time:"+System.currentTimeMillis());
|
||||||
|
if(resultString.contains("error")) {
|
||||||
|
response = SdmResponse.failed("解析指标文件脚本执行错误");
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
InputStream is = new FileInputStream(poolJsonFileName);
|
||||||
|
byte[] jsonContents = is.readAllBytes();
|
||||||
|
String poolJsonString = new String(jsonContents, "utf-8");
|
||||||
|
if (poolJsonString != null && poolJsonString.length() > 0) {
|
||||||
|
JSONObject poolJsonObj = JSONObject.parseObject(poolJsonString);
|
||||||
|
response.setData(poolJsonObj);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
// if(poolFileName != null && poolFileName.length() > 0)
|
||||||
|
// {
|
||||||
|
// File pFile = new File(poolFileName);
|
||||||
|
// if(pFile.exists()) {
|
||||||
|
// pFile.delete();
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// File dictFile = new File(dictFileName);
|
||||||
|
// if(dictFile.exists())
|
||||||
|
// {
|
||||||
|
// dictFile.delete();
|
||||||
|
// }
|
||||||
|
// File poolJsonFile = new File(poolJsonFileName);
|
||||||
|
// if(poolJsonFile.exists())
|
||||||
|
// {
|
||||||
|
// poolJsonFile.delete();
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// File columnFile = new File(columnFileName);
|
||||||
|
// if(columnFile.exists())
|
||||||
|
// {
|
||||||
|
// columnFile.delete();
|
||||||
|
// }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return response;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package com.sdm.project.controller;
|
|||||||
|
|
||||||
import com.alibaba.fastjson2.JSONObject;
|
import com.alibaba.fastjson2.JSONObject;
|
||||||
import com.sdm.common.common.SdmResponse;
|
import com.sdm.common.common.SdmResponse;
|
||||||
|
import com.sdm.common.entity.req.performance.PerformanceExportExcelFormat;
|
||||||
import com.sdm.common.entity.req.project.GetAllTasksByDisciplineReq;
|
import com.sdm.common.entity.req.project.GetAllTasksByDisciplineReq;
|
||||||
import com.sdm.common.entity.req.project.GetTaskDetailReq;
|
import com.sdm.common.entity.req.project.GetTaskDetailReq;
|
||||||
import com.sdm.common.entity.req.task.TaskExportExcelFormat;
|
import com.sdm.common.entity.req.task.TaskExportExcelFormat;
|
||||||
@@ -20,6 +21,7 @@ import jakarta.validation.constraints.NotBlank;
|
|||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -300,4 +302,16 @@ public class SimulationTaskController implements ISimulationTaskFeignClient {
|
|||||||
return taskService.batchOperation(batchTaskOpr);
|
return taskService.batchOperation(batchTaskOpr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 任务执行————导入指标
|
||||||
|
* @param file
|
||||||
|
* @param columns
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@PostMapping(value = "/importSimulationPerformance")
|
||||||
|
@ResponseBody
|
||||||
|
SdmResponse importSimulationPerformance(@RequestParam("file") MultipartFile file, @RequestParam("columns")String columns) {
|
||||||
|
return taskService.importSimulationPerformance(file,columns);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import com.sdm.common.common.SdmResponse;
|
|||||||
import com.sdm.common.entity.req.export.PerformanceAnalysisExportExcelFormat;
|
import com.sdm.common.entity.req.export.PerformanceAnalysisExportExcelFormat;
|
||||||
import com.sdm.common.entity.req.export.RunAnalysisExportExcelFormat;
|
import com.sdm.common.entity.req.export.RunAnalysisExportExcelFormat;
|
||||||
import com.sdm.common.entity.req.export.TaskAnalysisExportExcelFormat;
|
import com.sdm.common.entity.req.export.TaskAnalysisExportExcelFormat;
|
||||||
|
import com.sdm.common.entity.req.performance.PerformanceExportExcelFormat;
|
||||||
import com.sdm.common.entity.req.project.GetAllTasksByDisciplineReq;
|
import com.sdm.common.entity.req.project.GetAllTasksByDisciplineReq;
|
||||||
import com.sdm.common.entity.req.project.GetTaskDetailReq;
|
import com.sdm.common.entity.req.project.GetTaskDetailReq;
|
||||||
import com.sdm.common.entity.req.task.TaskExportExcelFormat;
|
import com.sdm.common.entity.req.task.TaskExportExcelFormat;
|
||||||
@@ -17,6 +18,7 @@ import com.sdm.project.model.resp.YA.BosimSaveProjectTaskRsp;
|
|||||||
import com.sdm.common.entity.resp.project.SpdmTaskVo;
|
import com.sdm.common.entity.resp.project.SpdmTaskVo;
|
||||||
import jakarta.servlet.http.HttpServletResponse;
|
import jakarta.servlet.http.HttpServletResponse;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
@@ -104,4 +106,6 @@ public interface ITaskService {
|
|||||||
|
|
||||||
SdmResponse batchOperation(SpdmBatchTaskOpr batchTaskOpr);
|
SdmResponse batchOperation(SpdmBatchTaskOpr batchTaskOpr);
|
||||||
|
|
||||||
|
SdmResponse importSimulationPerformance(MultipartFile file, String columns);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ import com.sdm.common.entity.req.export.PerformanceAnalysisExportExcelFormat;
|
|||||||
import com.sdm.common.entity.req.export.RunAnalysisExportExcelFormat;
|
import com.sdm.common.entity.req.export.RunAnalysisExportExcelFormat;
|
||||||
import com.sdm.common.entity.req.export.TaskAnalysisExportExcelFormat;
|
import com.sdm.common.entity.req.export.TaskAnalysisExportExcelFormat;
|
||||||
import com.sdm.common.entity.req.export.TaskAnalysisExportExcelParam;
|
import com.sdm.common.entity.req.export.TaskAnalysisExportExcelParam;
|
||||||
|
import com.sdm.common.entity.req.performance.PerformanceExportExcelFormat;
|
||||||
import com.sdm.common.entity.req.project.GetAllTasksByDisciplineReq;
|
import com.sdm.common.entity.req.project.GetAllTasksByDisciplineReq;
|
||||||
import com.sdm.common.entity.req.project.GetTaskDetailReq;
|
import com.sdm.common.entity.req.project.GetTaskDetailReq;
|
||||||
import com.sdm.common.entity.req.project.SimulationPerformance;
|
import com.sdm.common.entity.req.project.SimulationPerformance;
|
||||||
@@ -74,9 +75,13 @@ import org.springframework.stereotype.Service;
|
|||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
import org.springframework.transaction.interceptor.TransactionAspectSupport;
|
import org.springframework.transaction.interceptor.TransactionAspectSupport;
|
||||||
import org.springframework.util.StopWatch;
|
import org.springframework.util.StopWatch;
|
||||||
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
import java.io.FileOutputStream;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.io.InputStream;
|
||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.function.Consumer;
|
import java.util.function.Consumer;
|
||||||
@@ -4176,6 +4181,25 @@ public class TaskServiceImpl implements ITaskService {
|
|||||||
return SdmResponse.success();
|
return SdmResponse.success();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public SdmResponse importSimulationPerformance(MultipartFile file, String columns) {
|
||||||
|
SdmResponse response = exportOperate.parsePerformance(file,columns);
|
||||||
|
if(response.getCode() != ResultCode.SUCCESS.getCode()) {
|
||||||
|
return response;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
JSONObject poolTreeObj = (JSONObject) response.getData();
|
||||||
|
response.setData(poolTreeObj);
|
||||||
|
}
|
||||||
|
log.info("import endTime:"+System.currentTimeMillis());
|
||||||
|
return response;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public static String getMaxNonEmptyTagForTask(SimulationTask req) {
|
public static String getMaxNonEmptyTagForTask(SimulationTask req) {
|
||||||
// 空对象校验
|
// 空对象校验
|
||||||
if (req == null) {
|
if (req == null) {
|
||||||
|
|||||||
@@ -41,8 +41,8 @@ public interface SimulationPoolMapper {
|
|||||||
@Select("SELECT poolName,poolVersion,poolId FROM simulation_pool_versions GROUP BY poolName,poolVersion,poolId")
|
@Select("SELECT poolName,poolVersion,poolId FROM simulation_pool_versions GROUP BY poolName,poolVersion,poolId")
|
||||||
List<TaskPoolVersion> queryAllTaskPoolVersion();
|
List<TaskPoolVersion> queryAllTaskPoolVersion();
|
||||||
|
|
||||||
@Select("SELECT * FROM simulation_pool")
|
@Select("SELECT * FROM simulation_pool WHERE tenantId = #{tenantId}")
|
||||||
List<TaskPoolBrief> queryAllTaskPool();
|
List<TaskPoolBrief> queryAllTaskPool(@Param("tenantId") Long tenantId);
|
||||||
|
|
||||||
@Select("SELECT versionContents FROM simulation_pool_versions WHERE poolName=#{poolName} AND poolVersion=#{version}")
|
@Select("SELECT versionContents FROM simulation_pool_versions WHERE poolName=#{poolName} AND poolVersion=#{version}")
|
||||||
String queryTaskPoolVersionContent(@Param("poolName")String poolName,@Param("version")String version);
|
String queryTaskPoolVersionContent(@Param("poolName")String poolName,@Param("version")String version);
|
||||||
|
|||||||
@@ -583,7 +583,8 @@ public class SimulationTaskPoolServiceImpl extends BaseService implements ISimul
|
|||||||
public SdmResponse getAllTaslPoolCurrentVersion()
|
public SdmResponse getAllTaslPoolCurrentVersion()
|
||||||
{
|
{
|
||||||
SdmResponse response = SdmResponse.success();
|
SdmResponse response = SdmResponse.success();
|
||||||
List<TaskPoolBrief> taskPoolBriefs = mapper.queryAllTaskPool();
|
Long tenantId = ThreadLocalContext.getTenantId();
|
||||||
|
List<TaskPoolBrief> taskPoolBriefs = mapper.queryAllTaskPool(tenantId);
|
||||||
JSONArray taskPoolArray = new JSONArray();
|
JSONArray taskPoolArray = new JSONArray();
|
||||||
for(TaskPoolBrief taskPoolBrief : taskPoolBriefs)
|
for(TaskPoolBrief taskPoolBrief : taskPoolBriefs)
|
||||||
{
|
{
|
||||||
@@ -1532,7 +1533,8 @@ public class SimulationTaskPoolServiceImpl extends BaseService implements ISimul
|
|||||||
public SdmResponse getAllTaskPool(boolean bCurrent)
|
public SdmResponse getAllTaskPool(boolean bCurrent)
|
||||||
{
|
{
|
||||||
SdmResponse response = SdmResponse.success();
|
SdmResponse response = SdmResponse.success();
|
||||||
List<TaskPoolBrief> poolBriefs = mapper.queryAllTaskPool();
|
Long tenantId = ThreadLocalContext.getTenantId();
|
||||||
|
List<TaskPoolBrief> poolBriefs = mapper.queryAllTaskPool(tenantId);
|
||||||
if(!bCurrent)
|
if(!bCurrent)
|
||||||
{
|
{
|
||||||
List<TaskPoolVersion> allPoolVersions = mapper.queryAllTaskPoolVersion();
|
List<TaskPoolVersion> allPoolVersions = mapper.queryAllTaskPoolVersion();
|
||||||
|
|||||||
Reference in New Issue
Block a user