仿真参数库
This commit is contained in:
@@ -0,0 +1,79 @@
|
||||
package com.sdm.data.controller;
|
||||
|
||||
|
||||
import com.sdm.common.common.SdmResponse;
|
||||
import com.sdm.data.model.req.SimulationParameterLibraryCategoryObjectReq;
|
||||
import com.sdm.data.service.ISimulationParameterLibraryService;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.Parameter;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.http.MediaType;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 仿真参数库
|
||||
* </p>
|
||||
*
|
||||
* @author author
|
||||
* @since 2025-10-16
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/simulationParameterLibrary")
|
||||
@Tag(name = "仿真参数库管理", description = "仿真参数库相关操作接口")
|
||||
public class SimulationParameterLibraryController {
|
||||
|
||||
@Autowired
|
||||
private ISimulationParameterLibraryService simulationParameterLibraryService;
|
||||
|
||||
/**
|
||||
* 添加仿真参数库
|
||||
*
|
||||
* @param parameterLibraryName 仿真参数库名
|
||||
* @return 添加结果
|
||||
*/
|
||||
@GetMapping("/addLibrary")
|
||||
@Operation(summary = "添加仿真参数库", description = "添加新的仿真参数库")
|
||||
public SdmResponse addLibrary(@Parameter(description = "仿真参数库名") @RequestParam(value = "parameterLibraryName") String parameterLibraryName) {
|
||||
return simulationParameterLibraryService.addLibrary(parameterLibraryName);
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加仿真参数库分类
|
||||
*/
|
||||
@GetMapping("/addLibraryCategory")
|
||||
@Operation(summary = "添加仿真参数库分类", description = "添加新的仿真参数库分类")
|
||||
public SdmResponse addLibraryCategory(@Parameter(description = "仿真参数库ID") @RequestParam(value = "parameterLibraryId") Integer parameterLibraryId,@Parameter(description = "仿真参数库分类名") @RequestParam(value = "parameterLibraryCategoryName") String parameterLibraryCategoryName) {
|
||||
return simulationParameterLibraryService.addLibraryCategory(parameterLibraryId,parameterLibraryCategoryName);
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加仿真参数库分类的参数对象
|
||||
*/
|
||||
@PostMapping(value = "/addLibraryCategoryObject", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
|
||||
@Operation(summary = "添加仿真参数库分类的参数对象", description = "添加新的仿真参数库分类的参数对象")
|
||||
public SdmResponse addLibraryCategoryObject(SimulationParameterLibraryCategoryObjectReq simulationParameterLibraryCategoryObjectReq) {
|
||||
return simulationParameterLibraryService.addLibraryCategoryObject(simulationParameterLibraryCategoryObjectReq);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取仿真参数展示树
|
||||
*/
|
||||
@GetMapping("/getSimulationParameterTree")
|
||||
@Operation(summary = "获取仿真参数展示树", description = "获取仿真参数展示树")
|
||||
public SdmResponse getSimulationParameterTree(@Parameter(description = "1:模型库/2:模型库分类/3:参数对象") @RequestParam(value = "type",required = false) Integer type,@Parameter(description = "传对应模型库id/模型库分类id/参数对象id,不传查所有的模型库") @RequestParam(value = "id",required = false) Integer id) {
|
||||
return simulationParameterLibraryService.getSimulationParameterTree(type,id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取仿真参数库分类参数对象 和JSON数据
|
||||
*/
|
||||
@GetMapping("/getSimulationParameterLibraryCategoryObject")
|
||||
@Operation(summary = "获取仿真参数库分类参数对象和JSON数据", description = "获取仿真参数库分类参数对象")
|
||||
public SdmResponse getSimulationParameterLibraryCategoryObject(@Parameter(description = "参数对象id") @RequestParam(value = "ObjectId") Integer ObjectId) {
|
||||
return simulationParameterLibraryService.getSimulationParameterLibraryCategoryObject(ObjectId);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
package com.sdm.data.dao;
|
||||
|
||||
import com.sdm.data.model.entity.SimulationParameterLibraryCategory;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 仿真参数库分类表 Mapper 接口
|
||||
* </p>
|
||||
*
|
||||
* @author author
|
||||
* @since 2025-10-16
|
||||
*/
|
||||
public interface SimulationParameterLibraryCategoryMapper extends BaseMapper<SimulationParameterLibraryCategory> {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
package com.sdm.data.dao;
|
||||
|
||||
import com.sdm.data.model.entity.SimulationParameterLibraryCategoryObject;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 仿真参数库-参数对象表 Mapper 接口
|
||||
* </p>
|
||||
*
|
||||
* @author author
|
||||
* @since 2025-10-16
|
||||
*/
|
||||
public interface SimulationParameterLibraryCategoryObjectMapper extends BaseMapper<SimulationParameterLibraryCategoryObject> {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
package com.sdm.data.dao;
|
||||
|
||||
import com.sdm.data.model.entity.SimulationParameterLibrary;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 仿真参数库表 Mapper 接口
|
||||
* </p>
|
||||
*
|
||||
* @author author
|
||||
* @since 2025-10-16
|
||||
*/
|
||||
public interface SimulationParameterLibraryMapper extends BaseMapper<SimulationParameterLibrary> {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
package com.sdm.data.model.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import java.time.LocalDateTime;
|
||||
import java.io.Serializable;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 仿真参数库表
|
||||
* </p>
|
||||
*
|
||||
* @author author
|
||||
* @since 2025-10-16
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@Accessors(chain = true)
|
||||
@TableName("simulation_parameter_library")
|
||||
@ApiModel(value="SimulationParameterLibrary对象", description="仿真参数库表")
|
||||
public class SimulationParameterLibrary implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty(value = "自增主键ID")
|
||||
@TableId(value = "id", type = IdType.AUTO)
|
||||
private Integer id;
|
||||
|
||||
@ApiModelProperty(value = "参数库名称")
|
||||
@TableField("parameter_library_name")
|
||||
private String parameterLibraryName;
|
||||
|
||||
@ApiModelProperty(value = "创建时间")
|
||||
@TableField("create_time")
|
||||
private LocalDateTime createTime;
|
||||
|
||||
@ApiModelProperty(value = "修改时间")
|
||||
@TableField("update_time")
|
||||
private LocalDateTime updateTime;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,53 @@
|
||||
package com.sdm.data.model.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import java.time.LocalDateTime;
|
||||
import java.io.Serializable;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 仿真参数库分类表
|
||||
* </p>
|
||||
*
|
||||
* @author author
|
||||
* @since 2025-10-16
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@Accessors(chain = true)
|
||||
@TableName("simulation_parameter_library_category")
|
||||
@ApiModel(value="SimulationParameterLibraryCategory对象", description="仿真参数库分类表")
|
||||
public class SimulationParameterLibraryCategory implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty(value = "自增主键ID")
|
||||
@TableId(value = "id", type = IdType.AUTO)
|
||||
private Integer id;
|
||||
|
||||
@ApiModelProperty(value = "参数库id")
|
||||
@TableField("parameter_library_id")
|
||||
private Integer parameterLibraryId;
|
||||
|
||||
@ApiModelProperty(value = "参数库分类名称")
|
||||
@TableField("parameter_library_category_name")
|
||||
private String parameterLibraryCategoryName;
|
||||
|
||||
@ApiModelProperty(value = "创建时间")
|
||||
@TableField("create_time")
|
||||
private LocalDateTime createTime;
|
||||
|
||||
@ApiModelProperty(value = "修改时间")
|
||||
@TableField("update_time")
|
||||
private LocalDateTime updateTime;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,65 @@
|
||||
package com.sdm.data.model.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import java.time.LocalDateTime;
|
||||
import java.io.Serializable;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 仿真参数库-参数对象表
|
||||
* </p>
|
||||
*
|
||||
* @author author
|
||||
* @since 2025-10-16
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@Accessors(chain = true)
|
||||
@TableName("simulation_parameter_library_category_object")
|
||||
@ApiModel(value="SimulationParameterLibraryCategoryObject对象", description="仿真参数库-参数对象表")
|
||||
public class SimulationParameterLibraryCategoryObject implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty(value = "自增主键ID")
|
||||
@TableId(value = "id", type = IdType.AUTO)
|
||||
private Integer id;
|
||||
|
||||
@ApiModelProperty(value = "参数库id")
|
||||
@TableField("parameter_library_id")
|
||||
private Integer parameterLibraryId;
|
||||
|
||||
@ApiModelProperty(value = "参数分类id")
|
||||
@TableField("parameter_library_category_id")
|
||||
private Integer parameterLibraryCategoryId;
|
||||
|
||||
@ApiModelProperty(value = "参数对象名")
|
||||
@TableField("parameter_library_category_object_name")
|
||||
private String parameterLibraryCategoryObjectName;
|
||||
|
||||
@ApiModelProperty(value = "文件ID,关联file_metadata_info文件表id")
|
||||
@TableField("file_id")
|
||||
private Integer fileId;
|
||||
|
||||
@ApiModelProperty(value = "文件名")
|
||||
@TableField("file_name")
|
||||
private String fileName;
|
||||
|
||||
@ApiModelProperty(value = "创建时间")
|
||||
@TableField("create_time")
|
||||
private LocalDateTime createTime;
|
||||
|
||||
@ApiModelProperty(value = "修改时间")
|
||||
@TableField("update_time")
|
||||
private LocalDateTime updateTime;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
package com.sdm.data.service;
|
||||
|
||||
import com.sdm.data.model.entity.SimulationParameterLibraryCategoryObject;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 仿真参数库-参数对象表 服务类
|
||||
* </p>
|
||||
*
|
||||
* @author author
|
||||
* @since 2025-10-16
|
||||
*/
|
||||
public interface ISimulationParameterLibraryCategoryObjectService extends IService<SimulationParameterLibraryCategoryObject> {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
package com.sdm.data.service;
|
||||
|
||||
import com.sdm.data.model.entity.SimulationParameterLibraryCategory;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 仿真参数库分类表 服务类
|
||||
* </p>
|
||||
*
|
||||
* @author author
|
||||
* @since 2025-10-16
|
||||
*/
|
||||
public interface ISimulationParameterLibraryCategoryService extends IService<SimulationParameterLibraryCategory> {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
package com.sdm.data.service;
|
||||
|
||||
import com.sdm.common.common.SdmResponse;
|
||||
import com.sdm.data.model.entity.SimulationParameterLibrary;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.sdm.data.model.req.SimulationParameterLibraryCategoryObjectReq;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 仿真参数库表 服务类
|
||||
* </p>
|
||||
*
|
||||
* @author author
|
||||
* @since 2025-10-16
|
||||
*/
|
||||
public interface ISimulationParameterLibraryService extends IService<SimulationParameterLibrary> {
|
||||
// 新增仿真参数库
|
||||
SdmResponse addLibrary(String parameterLibraryName);
|
||||
|
||||
// 新增仿真参数库分类
|
||||
SdmResponse addLibraryCategory(Integer parameterLibraryId, String parameterLibraryCategoryName);
|
||||
|
||||
// 新增仿真参数库分类的参数对象
|
||||
SdmResponse addLibraryCategoryObject(SimulationParameterLibraryCategoryObjectReq simulationParameterLibraryCategoryObjectReq);
|
||||
|
||||
/**
|
||||
* 获取仿真参数展示树
|
||||
* @param type 1:仿真参数库 2:仿真参数库分类 3:仿真参数库分类参数对象
|
||||
* @param id
|
||||
* @return
|
||||
*/
|
||||
SdmResponse getSimulationParameterTree(Integer type,Integer id);
|
||||
|
||||
// 获取仿真参数库分类参数对象
|
||||
SdmResponse getSimulationParameterLibraryCategoryObject(Integer ObjectId);
|
||||
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
package com.sdm.data.service.impl;
|
||||
|
||||
import com.sdm.data.model.entity.SimulationParameterLibraryCategoryObject;
|
||||
import com.sdm.data.dao.SimulationParameterLibraryCategoryObjectMapper;
|
||||
import com.sdm.data.service.ISimulationParameterLibraryCategoryObjectService;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 仿真参数库-参数对象表 服务实现类
|
||||
* </p>
|
||||
*
|
||||
* @author author
|
||||
* @since 2025-10-16
|
||||
*/
|
||||
@Service
|
||||
public class SimulationParameterLibraryCategoryObjectServiceImpl extends ServiceImpl<SimulationParameterLibraryCategoryObjectMapper, SimulationParameterLibraryCategoryObject> implements ISimulationParameterLibraryCategoryObjectService {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
package com.sdm.data.service.impl;
|
||||
|
||||
import com.sdm.data.model.entity.SimulationParameterLibraryCategory;
|
||||
import com.sdm.data.dao.SimulationParameterLibraryCategoryMapper;
|
||||
import com.sdm.data.service.ISimulationParameterLibraryCategoryService;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 仿真参数库分类表 服务实现类
|
||||
* </p>
|
||||
*
|
||||
* @author author
|
||||
* @since 2025-10-16
|
||||
*/
|
||||
@Service
|
||||
public class SimulationParameterLibraryCategoryServiceImpl extends ServiceImpl<SimulationParameterLibraryCategoryMapper, SimulationParameterLibraryCategory> implements ISimulationParameterLibraryCategoryService {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,256 @@
|
||||
package com.sdm.data.service.impl;
|
||||
|
||||
import com.alibaba.fastjson2.JSONObject;
|
||||
import com.alibaba.nacos.client.naming.utils.CollectionUtils;
|
||||
import com.fasterxml.jackson.databind.JsonNode;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.sdm.common.common.Constants;
|
||||
import com.sdm.common.common.SdmResponse;
|
||||
import com.sdm.data.model.entity.SimulationParameterLibrary;
|
||||
import com.sdm.data.dao.SimulationParameterLibraryMapper;
|
||||
import com.sdm.data.model.entity.SimulationParameterLibraryCategory;
|
||||
import com.sdm.data.model.entity.SimulationParameterLibraryCategoryObject;
|
||||
import com.sdm.data.model.req.SimulationParameterLibraryCategoryObjectReq;
|
||||
import com.sdm.data.model.resp.SimulationParameterLibraryCategoryObjectResp;
|
||||
import com.sdm.data.service.IDataFileService;
|
||||
import com.sdm.data.service.ISimulationParameterLibraryCategoryObjectService;
|
||||
import com.sdm.data.service.ISimulationParameterLibraryCategoryService;
|
||||
import com.sdm.data.service.ISimulationParameterLibraryService;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Qualifier;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 仿真参数库表 服务实现类
|
||||
* </p>
|
||||
*
|
||||
* @author author
|
||||
* @since 2025-10-16
|
||||
*/
|
||||
@Service
|
||||
public class SimulationParameterLibraryServiceImpl extends ServiceImpl<SimulationParameterLibraryMapper, SimulationParameterLibrary> implements ISimulationParameterLibraryService {
|
||||
@Resource
|
||||
@Qualifier("dataFileService")
|
||||
private IDataFileService dataFileService;
|
||||
|
||||
@Autowired
|
||||
ISimulationParameterLibraryCategoryService simulationParameterLibraryCategoryService;
|
||||
|
||||
@Autowired
|
||||
ISimulationParameterLibraryCategoryObjectService simulationParameterLibraryCategoryObjectService;
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public SdmResponse addLibrary(String parameterLibraryName) {
|
||||
SimulationParameterLibrary simulationParameterLibrary = new SimulationParameterLibrary();
|
||||
simulationParameterLibrary.setParameterLibraryName(parameterLibraryName);
|
||||
this.save(simulationParameterLibrary);
|
||||
return SdmResponse.success("仿真参数库添加成功");
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public SdmResponse addLibraryCategory(Integer parameterLibraryId, String parameterLibraryCategoryName) {
|
||||
SimulationParameterLibraryCategory simulationParameterLibraryCategory = new SimulationParameterLibraryCategory();
|
||||
simulationParameterLibraryCategory.setParameterLibraryId(parameterLibraryId);
|
||||
simulationParameterLibraryCategory.setParameterLibraryCategoryName(parameterLibraryCategoryName);
|
||||
simulationParameterLibraryCategoryService.save(simulationParameterLibraryCategory);
|
||||
return SdmResponse.success("仿真参数库分类添加成功");
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public SdmResponse addLibraryCategoryObject(SimulationParameterLibraryCategoryObjectReq simulationParameterLibraryCategoryObjectReq) {
|
||||
try {
|
||||
SdmResponse<Integer> integerSdmResponse = dataFileService.uploadSimulationParamFile(simulationParameterLibraryCategoryObjectReq.getFile());
|
||||
Integer fileId = integerSdmResponse.getData();
|
||||
|
||||
SimulationParameterLibraryCategoryObject simulationParameterLibraryCategoryObject = new SimulationParameterLibraryCategoryObject();
|
||||
BeanUtils.copyProperties(simulationParameterLibraryCategoryObjectReq, simulationParameterLibraryCategoryObject);
|
||||
simulationParameterLibraryCategoryObject.setFileId(fileId);
|
||||
simulationParameterLibraryCategoryObjectService.save(simulationParameterLibraryCategoryObject);
|
||||
} catch (Exception e) {
|
||||
log.error("仿真参数库文件上传失败", e);
|
||||
return SdmResponse.failed("仿真参数库文件上传失败");
|
||||
}
|
||||
return SdmResponse.success();
|
||||
}
|
||||
|
||||
@Override
|
||||
public SdmResponse getSimulationParameterTree(Integer type, Integer id) {
|
||||
List<JSONObject> jsonObjects = new ArrayList<>();
|
||||
if (id == null) {
|
||||
// 获取所有仿真参数库
|
||||
List<SimulationParameterLibrary> simulationParameterLibraries = this.list();
|
||||
if (CollectionUtils.isEmpty(simulationParameterLibraries)) {
|
||||
return SdmResponse.success(jsonObjects);
|
||||
}
|
||||
simulationParameterLibraries.forEach(simulationParameterLibrary -> {
|
||||
JSONObject jsonObject = new JSONObject();
|
||||
jsonObject.put("id", simulationParameterLibrary.getId());
|
||||
jsonObject.put("type", Constants.SimulationParameterDataType.LIBRARY.getValue());
|
||||
jsonObject.put("name", simulationParameterLibrary.getParameterLibraryName());
|
||||
jsonObjects.add(jsonObject);
|
||||
});
|
||||
return SdmResponse.success(jsonObjects);
|
||||
}
|
||||
|
||||
if (type == Constants.SimulationParameterDataType.LIBRARY.getValue()) {
|
||||
// 获取指定仿真参数库分类
|
||||
SimulationParameterLibrary simulationParameterLibrary = this.getById(id);
|
||||
if (simulationParameterLibrary != null) {
|
||||
Integer simulationParameterLibraryId = simulationParameterLibrary.getId();
|
||||
List<SimulationParameterLibraryCategory> simulationParameterLibraryCategories = simulationParameterLibraryCategoryService.lambdaQuery()
|
||||
.eq(SimulationParameterLibraryCategory::getParameterLibraryId, simulationParameterLibraryId).list();
|
||||
|
||||
if (CollectionUtils.isEmpty(simulationParameterLibraryCategories)) {
|
||||
return SdmResponse.success(jsonObjects);
|
||||
}
|
||||
simulationParameterLibraryCategories.forEach(simulationParameterLibraryCategory -> {
|
||||
JSONObject jsonObject = new JSONObject();
|
||||
jsonObject.put("id", simulationParameterLibraryCategory.getId());
|
||||
jsonObject.put("type", Constants.SimulationParameterDataType.CATEGORY.getValue());
|
||||
jsonObject.put("name", simulationParameterLibraryCategory.getParameterLibraryCategoryName());
|
||||
jsonObjects.add(jsonObject);
|
||||
});
|
||||
return SdmResponse.success(jsonObjects);
|
||||
}
|
||||
}
|
||||
|
||||
if (type == Constants.SimulationParameterDataType.CATEGORY.getValue()) {
|
||||
// 获取指定仿真参数库分类下的参数对象
|
||||
List<SimulationParameterLibraryCategoryObject> simulationParameterLibraryCategoryObjects = simulationParameterLibraryCategoryObjectService
|
||||
.lambdaQuery().eq(SimulationParameterLibraryCategoryObject::getParameterLibraryCategoryId, id).list();
|
||||
if (CollectionUtils.isEmpty(simulationParameterLibraryCategoryObjects)) {
|
||||
return SdmResponse.success(jsonObjects);
|
||||
}
|
||||
simulationParameterLibraryCategoryObjects.forEach(simulationParameterLibraryCategoryObject -> {
|
||||
JSONObject jsonObject = new JSONObject();
|
||||
jsonObject.put("id", simulationParameterLibraryCategoryObject.getId());
|
||||
jsonObject.put("type", Constants.SimulationParameterDataType.OBJECT.getValue());
|
||||
jsonObject.put("name", simulationParameterLibraryCategoryObject.getParameterLibraryCategoryObjectName());
|
||||
jsonObjects.add(jsonObject);
|
||||
});
|
||||
return SdmResponse.success(jsonObjects);
|
||||
}
|
||||
return SdmResponse.success(jsonObjects);
|
||||
}
|
||||
|
||||
@Override
|
||||
public SdmResponse getSimulationParameterLibraryCategoryObject(Integer ObjectId) {
|
||||
SimulationParameterLibraryCategoryObject simulationParameterLibraryCategoryObject = simulationParameterLibraryCategoryObjectService.getById(ObjectId);
|
||||
SimulationParameterLibraryCategory simulationParameterLibraryCategory = simulationParameterLibraryCategoryService.getById(simulationParameterLibraryCategoryObject.getParameterLibraryCategoryId());
|
||||
SimulationParameterLibrary simulationParameterLibrary = this.getById(simulationParameterLibraryCategory.getParameterLibraryId());
|
||||
SimulationParameterLibraryCategoryObjectResp simulationParameterLibraryCategoryObjectResp = new SimulationParameterLibraryCategoryObjectResp();
|
||||
BeanUtils.copyProperties(simulationParameterLibraryCategoryObject, simulationParameterLibraryCategoryObjectResp);
|
||||
simulationParameterLibraryCategoryObjectResp.setParameterLibraryId(simulationParameterLibrary.getId());
|
||||
simulationParameterLibraryCategoryObjectResp.setParameterLibraryName(simulationParameterLibrary.getParameterLibraryName());
|
||||
simulationParameterLibraryCategoryObjectResp.setParameterLibraryCategoryId(simulationParameterLibraryCategory.getId());
|
||||
simulationParameterLibraryCategoryObjectResp.setParameterLibraryCategoryName(simulationParameterLibraryCategory.getParameterLibraryCategoryName());
|
||||
|
||||
InputStream minioInputStream = dataFileService.getMinioInputStream(simulationParameterLibraryCategoryObject.getFileId());
|
||||
// 使用Jackson解析JSON
|
||||
try {
|
||||
ObjectMapper objectMapper = new ObjectMapper();
|
||||
JsonNode jsonNode = objectMapper.readTree(minioInputStream);
|
||||
List<Map<String, Object>> parameterJsonValueFromJsonNode = parseJsonArray(jsonNode);
|
||||
simulationParameterLibraryCategoryObjectResp.setParameterJsonValue(parameterJsonValueFromJsonNode);
|
||||
} catch (IOException e) {
|
||||
log.error("解析JSON文件时发生错误", e);
|
||||
return SdmResponse.failed("解析JSON文件时发生错误");
|
||||
}
|
||||
return SdmResponse
|
||||
.success(simulationParameterLibraryCategoryObjectResp);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 解析JSON数组,返回包含多个Map的List
|
||||
* 每个Map对应数组中的一个对象,键为属性名,值为自动识别类型后的属性值
|
||||
*
|
||||
* @param jsonNode 从MinIO获取的JsonNode
|
||||
* @return 解析后的List<Map<String, Object>>
|
||||
*/
|
||||
public List<Map<String, Object>> parseJsonArray(JsonNode jsonNode) {
|
||||
List<Map<String, Object>> resultList = new ArrayList<>();
|
||||
|
||||
// 检查是否为有效的JSON数组
|
||||
if (jsonNode == null || !jsonNode.isArray()) {
|
||||
return resultList;
|
||||
}
|
||||
|
||||
// 遍历数组中的每个对象
|
||||
for (JsonNode objectNode : jsonNode) {
|
||||
if (objectNode.isObject()) {
|
||||
// 解析单个对象为Map
|
||||
Map<String, Object> objectMap = parseJsonObject(objectNode);
|
||||
resultList.add(objectMap);
|
||||
}
|
||||
}
|
||||
|
||||
return resultList;
|
||||
}
|
||||
|
||||
/**
|
||||
* 解析单个JSON对象为Map,自动识别值的类型
|
||||
*/
|
||||
private Map<String, Object> parseJsonObject(JsonNode objectNode) {
|
||||
Map<String, Object> resultMap = new HashMap<>();
|
||||
Iterator<Map.Entry<String, JsonNode>> fields = objectNode.fields();
|
||||
|
||||
while (fields.hasNext()) {
|
||||
Map.Entry<String, JsonNode> entry = fields.next();
|
||||
String key = entry.getKey();
|
||||
JsonNode valueNode = entry.getValue();
|
||||
|
||||
// 根据节点类型获取对应Java类型的值
|
||||
Object value = getValueByNodeType(valueNode);
|
||||
resultMap.put(key, value);
|
||||
}
|
||||
|
||||
return resultMap;
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据JsonNode类型获取对应Java类型的值
|
||||
*/
|
||||
private Object getValueByNodeType(JsonNode node) {
|
||||
if (node.isNull()) {
|
||||
return null;
|
||||
} else if (node.isBoolean()) {
|
||||
return node.asBoolean();
|
||||
} else if (node.isInt()) {
|
||||
return node.asInt();
|
||||
} else if (node.isLong()) {
|
||||
return node.asLong();
|
||||
} else if (node.isDouble() || node.isFloat()) {
|
||||
return node.asDouble();
|
||||
} else if (node.isTextual()) {
|
||||
return node.asText();
|
||||
} else if (node.isArray()) {
|
||||
// 如果值是数组,递归解析
|
||||
List<Object> arrayList = new ArrayList<>();
|
||||
for (JsonNode element : node) {
|
||||
arrayList.add(getValueByNodeType(element));
|
||||
}
|
||||
return arrayList;
|
||||
} else if (node.isObject()) {
|
||||
// 如果值是对象,递归解析
|
||||
return parseJsonObject(node);
|
||||
} else {
|
||||
// 其他未明确类型,转为字符串
|
||||
return node.toString();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.sdm.data.dao.SimulationParameterLibraryCategoryMapper">
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.sdm.data.dao.SimulationParameterLibraryCategoryObjectMapper">
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.sdm.data.dao.SimulationParameterLibraryMapper">
|
||||
|
||||
</mapper>
|
||||
Reference in New Issue
Block a user