This commit is contained in:
2026-04-08 10:31:13 +08:00
58 changed files with 778 additions and 102 deletions

View File

@@ -0,0 +1,8 @@
package com.sdm.project.YA.Service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.sdm.project.YA.model.SimulationKeyResult;
public interface IBosimKeyResultService extends IService<SimulationKeyResult> {
}

View File

@@ -0,0 +1,8 @@
package com.sdm.project.YA.Service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.sdm.project.YA.model.SimulationModel;
public interface IBosimModelService extends IService<SimulationModel> {
}

View File

@@ -0,0 +1,8 @@
package com.sdm.project.YA.Service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.sdm.project.YA.model.SimulationReport;
public interface IBosimReportService extends IService<SimulationReport> {
}

View File

@@ -0,0 +1,8 @@
package com.sdm.project.YA.Service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.sdm.project.YA.model.SimulationWorkTask;
public interface IBosimWorkTaskService extends IService<SimulationWorkTask> {
}

View File

@@ -0,0 +1,11 @@
package com.sdm.project.YA.Service.Impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.sdm.project.YA.Service.IBosimKeyResultService;
import com.sdm.project.YA.mapper.BosimKeyResultMap;
import com.sdm.project.YA.model.SimulationKeyResult;
import org.springframework.stereotype.Service;
@Service
public class IBosimKeyResultServiceImpl extends ServiceImpl<BosimKeyResultMap, SimulationKeyResult> implements IBosimKeyResultService {
}

View File

@@ -0,0 +1,11 @@
package com.sdm.project.YA.Service.Impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.sdm.project.YA.Service.IBosimModelService;
import com.sdm.project.YA.mapper.BosimModuleMap;
import com.sdm.project.YA.model.SimulationModel;
import org.springframework.stereotype.Service;
@Service
public class IBosimModelServiceImpl extends ServiceImpl<BosimModuleMap, SimulationModel> implements IBosimModelService {
}

View File

@@ -0,0 +1,11 @@
package com.sdm.project.YA.Service.Impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.sdm.project.YA.Service.IBosimReportService;
import com.sdm.project.YA.mapper.BosimReportMap;
import com.sdm.project.YA.model.SimulationReport;
import org.springframework.stereotype.Service;
@Service
public class IBosimReportServiceImpl extends ServiceImpl<BosimReportMap, SimulationReport> implements IBosimReportService {
}

View File

@@ -0,0 +1,11 @@
package com.sdm.project.YA.Service.Impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.sdm.project.YA.Service.IBosimWorkTaskService;
import com.sdm.project.YA.mapper.BosimWorkTaskMap;
import com.sdm.project.YA.model.SimulationWorkTask;
import org.springframework.stereotype.Service;
@Service
public class IBosimWorkTaskServiceImpl extends ServiceImpl<BosimWorkTaskMap, SimulationWorkTask> implements IBosimWorkTaskService {
}

View File

@@ -1,5 +1,6 @@
package com.sdm.project.controller;
package com.sdm.project.YA.controller;
import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONArray;
import com.alibaba.fastjson2.JSONObject;
import com.auth0.jwt.JWT;
@@ -8,11 +9,13 @@ import com.auth0.jwt.interfaces.DecodedJWT;
import com.github.pagehelper.PageInfo;
import com.sdm.common.common.SdmResponse;
import com.sdm.common.common.ThreadLocalContext;
import com.sdm.common.entity.enums.FileBizTypeEnum;
import com.sdm.common.entity.enums.FileDictTagEnum;
import com.sdm.common.entity.enums.NodeTypeEnum;
import com.sdm.common.entity.req.data.GetSimulationTaskFileReq;
import com.sdm.common.entity.req.data.TagReq;
import com.sdm.common.entity.req.data.UploadFilesReq;
import com.sdm.common.entity.req.system.DictTagReq;
import com.sdm.common.entity.req.system.UserQueryReq;
import com.sdm.common.entity.resp.PageDataResp;
import com.sdm.common.entity.resp.data.FileMetadataInfoResp;
@@ -20,17 +23,21 @@ import com.sdm.common.entity.resp.system.CIDUserResp;
import com.sdm.common.feign.impl.data.DataAnalysisFeignClientImpl;
import com.sdm.common.feign.inter.data.IDataFeignClient;
import com.sdm.common.utils.DateUtils;
import com.sdm.common.utils.HttpUtil;
import com.sdm.common.utils.SystemOperate;
import com.sdm.project.YA.Service.IBosimKeyResultService;
import com.sdm.project.YA.Service.IBosimModelService;
import com.sdm.project.YA.Service.IBosimReportService;
import com.sdm.project.YA.Service.IBosimWorkTaskService;
import com.sdm.project.YA.model.SimulationModel;
import com.sdm.project.YA.req.*;
import com.sdm.project.YA.resp.*;
import com.sdm.project.common.KeyResultTypeEnum;
import com.sdm.project.dao.YAMapper.BosimModuleMap;
import com.sdm.project.YA.mapper.BosimModuleMap;
import com.sdm.project.model.entity.SimulationRunKeyResult;
import com.sdm.project.YA.model.SimulationWorkTask;
import com.sdm.project.model.req.KeyResultReq;
import com.sdm.project.model.req.YA.*;
import com.sdm.project.model.resp.YA.BosimKeyResultInfoRsp;
import com.sdm.project.model.resp.YA.BosimSaveNodeInfoRsp;
import com.sdm.project.model.resp.YA.BosimSaveProjectTaskRsp;
import com.sdm.project.model.resp.YA.KeyResultNodeInfo;
import com.sdm.project.service.INodeService;
import com.sdm.project.service.ITaskService;
import com.sdm.project.service.ISimulationRunService;
@@ -41,6 +48,8 @@ import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.MediaType;
@@ -50,9 +59,11 @@ import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.security.PrivateKey;
import java.security.interfaces.RSAPrivateKey;
import java.security.interfaces.RSAPublicKey;
import java.text.SimpleDateFormat;
import java.util.*;
import static com.sdm.common.service.BaseService.generateUuid;
@Slf4j
@RestController
@RequestMapping("/dataManager/tree/node")
@@ -73,6 +84,18 @@ public class YAModelController {
@Resource
ISimulationRunService runService;
@Autowired
IBosimWorkTaskService bosimWorkTaskService;
@Autowired
IBosimModelService bosimModelService;
@Autowired
IBosimKeyResultService bosimKeyResultService;
@Autowired
IBosimReportService bosimReportService;
@Value("${YA.frontend.frontendPrivateKey}")
private String frontendPrivateKey;
@@ -90,6 +113,7 @@ public class YAModelController {
@Autowired
BosimModuleMap moduleMap;
/**
* 保存仿真模型数据
*
@@ -109,7 +133,7 @@ public class YAModelController {
)
)
)
public BosimSaveNodeInfoRsp saveModelNodeInfo(@RequestHeader("Authorization") String authorization,SaveModelNodeInfoReq req)
public BosimSaveNodeInfoRsp SaveModelNodeInfo(@RequestHeader("Authorization") String authorization,SaveModelNodeInfoReq req)
{
if(!verifyBackEndJwt(authorization)) {
BosimSaveNodeInfoRsp rsp = new BosimSaveNodeInfoRsp();
@@ -236,7 +260,7 @@ public class YAModelController {
)
)
)
public BosimSaveNodeInfoRsp saveKeyResultNodeInfo(@RequestHeader("Authorization") String authorization,SaveKeyResultNodeInfoReq req)
public BosimSaveNodeInfoRsp saveKeyResultNodeInfo(@RequestHeader("Authorization") String authorization, SaveKeyResultNodeInfoReq req)
{
if(!verifyBackEndJwt(authorization)) {
BosimSaveNodeInfoRsp rsp = new BosimSaveNodeInfoRsp();
@@ -277,7 +301,7 @@ public class YAModelController {
* @return
*/
@PostMapping(value = "/listKeyResultNodeInfo")
public BosimKeyResultInfoRsp listKeyResultNodeInfo(@RequestHeader("Authorization") String authorization,@RequestBody SaveKeyResultNodeInfoReq req) {
public BosimKeyResultInfoRsp listKeyResultNodeInfo(@RequestHeader("Authorization") String authorization, @RequestBody SaveKeyResultNodeInfoReq req) {
if(!verifyBackEndJwt(authorization)) {
BosimKeyResultInfoRsp rsp = new BosimKeyResultInfoRsp();
rsp.setCode("-200");
@@ -323,7 +347,7 @@ public class YAModelController {
}
@PostMapping("")
public BosimSaveNodeInfoRsp deleteModelNodeInfo(@RequestHeader("Authorization") String authorization,DeleteModelNodeInfoReq req)
public BosimSaveNodeInfoRsp deleteModelNodeInfo(@RequestHeader("Authorization") String authorization, DeleteModelNodeInfoReq req)
{
return null;
}
@@ -411,12 +435,6 @@ public class YAModelController {
}
@PostMapping("saveTaskNodeInfo")
public BosimSaveProjectTaskRsp saveTaskNodeInfo(@RequestBody @Validated SaveTaskNodeInfoReq req)
{
return null;
}
@PostMapping("syncCidProject")
public BosimSaveProjectTaskRsp syncCidProject(@RequestHeader("Authorization") String authorization,@RequestBody @Validated SyncCidProjectReq req)
{
@@ -431,7 +449,7 @@ public class YAModelController {
}
@PostMapping("syncCidTask")
public BosimSaveProjectTaskRsp syncCidTask(@RequestHeader("Authorization") String authorization,@RequestBody @Validated SyncCidTaskReq req)
public BosimSaveProjectTaskRsp syncCidTask(@RequestHeader("Authorization") String authorization, @RequestBody @Validated SyncCidTaskReq req)
{
BosimSaveProjectTaskRsp rsp = new BosimSaveProjectTaskRsp();
if(!verifyBackEndJwt(authorization)) {
@@ -444,12 +462,110 @@ public class YAModelController {
}
@PostMapping("SaveTaskNodeInfo")
public void saveTaskNodeInfo(@RequestHeader("Authorization") String authorization,@RequestBody SaveTaskNodeInfoReq req)
@PostMapping("saveTaskNodeInfo")
public BosimResponse saveTaskNodeInfo(@RequestHeader("Authorization") String authorization,@RequestBody SaveTaskNodeInfoReq req)
{
SimulationWorkTask simulationWorkTask = new SimulationWorkTask();
simulationWorkTask.setID(generateUuid());
simulationWorkTask.setNumber(req.getScenario());
simulationWorkTask.setName(req.getName());
simulationWorkTask.setProject(req.getProject());
simulationWorkTask.setScenario(req.getScenario());
simulationWorkTask.setDescription(req.getDescription());
if (StringUtils.isNotBlank(req.getStartEndDate())) {
simulationWorkTask.setStartAt(DateUtils.parse(req.getStartEndDate().split(",")[0], DateUtils.PATTERN_DATE));
simulationWorkTask.setEndAt(DateUtils.parse(req.getStartEndDate().split(",")[1], DateUtils.PATTERN_DATE));
}
simulationWorkTask.setEdition(generateSimpleUuid());
simulationWorkTask.setLevelType("Edit");
simulationWorkTask.setStatusType("Start");
simulationWorkTask.setVersion(simulationWorkTask.getNumber());
simulationWorkTask.setOwner(req.getFirstOwner());
simulationWorkTask.setCreator(req.getFirstOwner());
simulationWorkTask.setModifier(req.getFirstOwner());
simulationWorkTask.setCreateTime(new Date());
simulationWorkTask.setLastUpdateTime(new Date());
bosimWorkTaskService.save(simulationWorkTask);
// taskId
WorkRequestData data = new WorkRequestData();
data.setWorkRequest(List.of(simulationWorkTask.getNumber()));
return BosimResponse.success(data);
}
@PostMapping(value = "/saveModelNodeInfo", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
@Operation(
summary = "上传模型",
description = "仿真模型归档,支持同时上传文件和附加参数",
requestBody = @io.swagger.v3.oas.annotations.parameters.RequestBody(
description = "模型文件上传请求",
required = true,
content = @Content(
mediaType = MediaType.MULTIPART_FORM_DATA_VALUE,
schema = @Schema(implementation = SaveModelNodeInfoReq.class)
)
)
)
public BosimResponse saveModelNodeInfo(@RequestHeader("Authorization") String authorization, SaveModelNodeInfoReq req)
{
adaptContext();
UploadFilesReq fileReq = new UploadFilesReq();
fileReq.setFileName(req.getFileName());
fileReq.setProjectId(req.getProject());
fileReq.setFile(req.getFile());
fileReq.setUuid(req.getWorkTask());
fileReq.setIsConverSameNameFile(true);
fileReq.setFileTypeDictValue(String.valueOf(FileBizTypeEnum.MODEL_FILE.getValue()));
fileReq.setFileTypeDictClass(FileDictTagEnum.FILE_TYPE.getDictClass());
fileReq.setDictTags(Arrays.asList(FileDictTagEnum.FILE_TYPE.getDictClassFieldName(), FileDictTagEnum.FILE_TYPE.getDictValueFieldName()));
TagReq tagReq = new TagReq();
tagReq.setTag1(req.getProject());
tagReq.setTaskId(req.getWorkTask());
fileReq.setTagReq(tagReq);
if (fileReq.getTagReq() != null) {
fileReq.setTagReqStr(JSON.toJSONString(fileReq.getTagReq()));
}
SdmResponse uploadRespond = dataFeignClient.uploadFiles(fileReq);
if (!uploadRespond.isSuccess()) {
return BosimResponse.failed(uploadRespond.getMessage());
}
SimulationModel simulationModel = new SimulationModel();
simulationModel.setID(generateUuid());
simulationModel.setNumber(generateSimpleUuid());
simulationModel.setName(req.getName());
simulationModel.setProject(req.getProject());
simulationModel.setScenario(req.getWorkTask());
simulationModel.setWorkTask(req.getWorkTask());
simulationModel.setDescription(req.getDescription());
simulationModel.setFormatType(req.getFormatType());
simulationModel.setFile(String.valueOf(uploadRespond.getData()));
simulationModel.setEdition(generateSimpleUuid());
simulationModel.setModelDefinition(generateSimpleUuid());
simulationModel.setAnalysisType("CaseScenario");
simulationModel.setLevelType("Edit");
simulationModel.setStatusType("Start");
simulationModel.setVersion(simulationModel.getNumber());
simulationModel.setOwner(req.getFirstOwner());
simulationModel.setCreator(req.getFirstOwner());
simulationModel.setModifier(req.getFirstOwner());
simulationModel.setCreateTime(new Date());
simulationModel.setLastUpdateTime(new Date());
bosimModelService.save(simulationModel);
ModelData data = new ModelData();
data.setModel(List.of(simulationModel.getNumber()));
return BosimResponse.success(data);
}
/**
* 与CID集成前端token验证
* @param tokenObj
@@ -570,4 +686,22 @@ public class YAModelController {
return true;
}
public static String generateSimpleUuid() {
// 1. 时间部分yyyyMMddHHmmss
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
String time = sdf.format(new Date());
// 2. 6位随机字母数字
String chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
Random random = new Random();
StringBuilder sb = new StringBuilder();
for (int i = 0; i < 6; i++) {
int index = random.nextInt(chars.length());
sb.append(chars.charAt(index));
}
// 3. 拼接最终结果
return "SDM-" + time + sb;
}
}

View File

@@ -1,7 +1,7 @@
package com.sdm.project.dao.YAMapper;
package com.sdm.project.YA.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.sdm.project.model.entity.YA.SimulationKeyResult;
import com.sdm.project.YA.model.SimulationKeyResult;
public interface BosimKeyResultMap extends BaseMapper<SimulationKeyResult> {
}

View File

@@ -1,7 +1,7 @@
package com.sdm.project.dao.YAMapper;
package com.sdm.project.YA.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.sdm.project.model.entity.YA.SimulationModel;
import com.sdm.project.YA.model.SimulationModel;
import org.apache.ibatis.annotations.Mapper;

View File

@@ -1,7 +1,7 @@
package com.sdm.project.dao.YAMapper;
package com.sdm.project.YA.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.sdm.project.model.entity.YA.SimulationReport;
import com.sdm.project.YA.model.SimulationReport;
public interface BosimReportMap extends BaseMapper<SimulationReport> {
}

View File

@@ -1,9 +1,8 @@
package com.sdm.project.dao.YAMapper;
package com.sdm.project.YA.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.sdm.project.model.entity.YA.SimulationWorkTask;
import com.sdm.project.YA.model.SimulationWorkTask;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface BosimWorkTaskMap extends BaseMapper<SimulationWorkTask> {
}

View File

@@ -1,4 +1,4 @@
package com.sdm.project.model.entity.YA;
package com.sdm.project.YA.model;
import com.baomidou.mybatisplus.annotation.TableField;
@@ -7,7 +7,7 @@ import lombok.Data;
import java.io.Serializable;
import java.util.Date;
@TableName("SimulationKeyResult")
@TableName("SimulationKeyResultYA")
@Data
public class SimulationKeyResult implements Serializable {

View File

@@ -1,4 +1,4 @@
package com.sdm.project.model.entity.YA;
package com.sdm.project.YA.model;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
@@ -7,7 +7,7 @@ import lombok.Data;
import java.io.Serializable;
import java.util.Date;
@TableName("SimulationModel")
@TableName("SimulationModelYA")
@Data
public class SimulationModel implements Serializable {
@@ -89,25 +89,25 @@ public class SimulationModel implements Serializable {
* 分析类型
*/
@TableField("AnalysisType")
private Byte AnalysisType;
private String AnalysisType;
/**
* 格式类型
*/
@TableField("FormatType")
private Byte FormatType;
private String FormatType;
/**
* 安全等级
*/
@TableField("LevelType")
private Byte LevelType;
private String LevelType;
/**
* 可用状态
*/
@TableField("StatusType")
private Byte StatusType;
private String StatusType;
/**
* 修订版本

View File

@@ -1,4 +1,4 @@
package com.sdm.project.model.entity.YA;
package com.sdm.project.YA.model;
import com.baomidou.mybatisplus.annotation.TableField;
@@ -7,7 +7,7 @@ import lombok.Data;
import java.io.Serializable;
import java.util.Date;
@TableName("SimulationReport")
@TableName("SimulationReportYA")
@Data
public class SimulationReport implements Serializable {

View File

@@ -1,13 +1,20 @@
package com.sdm.project.model.entity.YA;
package com.sdm.project.YA.model;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.util.Date;
@TableName("SimulationWorkTask")
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("SimulationWorkTaskYA")
@Schema(description="仿真活动任务表")
public class SimulationWorkTask implements Serializable {
private static final long serialVersionUID = 1L;
@@ -54,12 +61,6 @@ public class SimulationWorkTask implements Serializable {
@TableField("Parent")
private String Parent;
/**
* 关联仿真流程实例
*/
@TableField("WorkProcess")
private String WorkProcess;
/**
* 关联分析项
*/
@@ -94,13 +95,13 @@ public class SimulationWorkTask implements Serializable {
* 数据访问控制级别
*/
@TableField("LevelType")
private Byte LevelType;
private String LevelType;
/**
* 可用状态
*/
@TableField("StatusType")
private Byte StatusType;
private String StatusType;
/**
* 修订版本

View File

@@ -1,4 +1,4 @@
package com.sdm.project.model.req.YA;
package com.sdm.project.YA.req;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

View File

@@ -1,4 +1,4 @@
package com.sdm.project.model.req.YA;
package com.sdm.project.YA.req;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

View File

@@ -1,4 +1,4 @@
package com.sdm.project.model.req.YA;
package com.sdm.project.YA.req;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;

View File

@@ -1,4 +1,4 @@
package com.sdm.project.model.req.YA;
package com.sdm.project.YA.req;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

View File

@@ -1,4 +1,4 @@
package com.sdm.project.model.req.YA;
package com.sdm.project.YA.req;
import com.alibaba.fastjson2.annotation.JSONField;
import io.swagger.v3.oas.annotations.media.Schema;

View File

@@ -1,4 +1,4 @@
package com.sdm.project.model.req.YA;
package com.sdm.project.YA.req;
import com.alibaba.fastjson2.annotation.JSONField;
import io.swagger.v3.oas.annotations.media.Schema;
@@ -32,17 +32,17 @@ public class SaveModelNodeInfoReq {
@Schema(description = "主负责人")
private String firstOwner;
@Schema(description = "从负责人")
private List<String> secondOwner;
@Schema(description = "仿真活动任务")
private String workTask;
@Schema(description = "起止日期")
private String startEndData;
@Schema(description = "备注描述")
private String description;
@Schema(description = "学科")
private String disciplineClassification;
@Schema(description = "格式")
private String format;
private String formatType;
@Schema(description = "分析对象")
private String item;
@@ -51,5 +51,7 @@ public class SaveModelNodeInfoReq {
@JSONField(serialize = false)
private MultipartFile file;
@Schema(description = "文件名称")
private String fileName;
}

View File

@@ -1,4 +1,4 @@
package com.sdm.project.model.req.YA;
package com.sdm.project.YA.req;
import com.alibaba.fastjson2.annotation.JSONField;
import io.swagger.v3.oas.annotations.media.Schema;
@@ -16,7 +16,7 @@ public class SaveReportNodeInfoReq {
private String name;
@Schema(description = "描述")
private String discription;
private String description;
@Schema(description = "数据类型编号")
private String code;

View File

@@ -1,9 +1,11 @@
package com.sdm.project.model.req.YA;
package com.sdm.project.YA.req;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.util.List;
@Data
public class SaveTaskNodeInfoReq {
@Schema(description = "数据类型名")
@@ -43,7 +45,7 @@ public class SaveTaskNodeInfoReq {
public String version;
@Schema(description = "上游任务")
public String sourceWorkRequest;
public List<String> sourceWorkRequest;
}

View File

@@ -1,4 +1,4 @@
package com.sdm.project.model.req.YA;
package com.sdm.project.YA.req;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;

View File

@@ -1,4 +1,4 @@
package com.sdm.project.model.req.YA;
package com.sdm.project.YA.req;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;

View File

@@ -1,4 +1,4 @@
package com.sdm.project.model.resp.YA;
package com.sdm.project.YA.resp;
import io.swagger.v3.oas.annotations.media.Schema;

View File

@@ -1,10 +1,9 @@
package com.sdm.project.model.resp.YA;
package com.sdm.project.YA.resp;
import com.sdm.common.entity.resp.PageDataResp;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
@Data

View File

@@ -0,0 +1,41 @@
package com.sdm.project.YA.resp;
import lombok.Data;
@Data
public class BosimResponse<T> {
private boolean success;
private int code;
private String message;
private T data;
public BosimResponse() {}
public static <T> BosimResponse<T> success(T data) {
BosimResponse<T> res = new BosimResponse<>();
res.setSuccess(true);
res.setCode(200);
res.setMessage("操作成功");
res.setData(data);
return res;
}
public static <T> BosimResponse<T> failed(T data) {
BosimResponse<T> res = new BosimResponse<>();
res.setSuccess(false);
res.setCode(-200);
res.setMessage("操作失败");
res.setData(data);
return res;
}
// getter setter
public boolean isSuccess() { return success; }
public void setSuccess(boolean success) { this.success = success; }
public int getCode() { return code; }
public void setCode(int code) { this.code = code; }
public String getMessage() { return message; }
public void setMessage(String message) { this.message = message; }
public T getData() { return data; }
public void setData(T data) { this.data = data; }
}

View File

@@ -1,4 +1,4 @@
package com.sdm.project.model.resp.YA;
package com.sdm.project.YA.resp;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

View File

@@ -1,11 +1,8 @@
package com.sdm.project.model.resp.YA;
package com.sdm.project.YA.resp;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
@Data
public class BosimSaveProjectTaskRsp {

View File

@@ -0,0 +1,9 @@
package com.sdm.project.YA.resp;
import java.util.List;
public class KeyResultData {
private List<String> keyResult;
public List<String> getKeyResult() { return keyResult; }
public void setKeyResult(List<String> keyResult) { this.keyResult = keyResult; }
}

View File

@@ -1,9 +1,7 @@
package com.sdm.project.model.resp.YA;
package com.sdm.project.YA.resp;
import com.alibaba.fastjson2.annotation.JSONField;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.springframework.web.multipart.MultipartFile;
@Data
@Schema(description = "仿真关键结果上传参数")

View File

@@ -0,0 +1,9 @@
package com.sdm.project.YA.resp;
import java.util.List;
public class ModelData {
private List<String> model;
public List<String> getModel() { return model; }
public void setModel(List<String> model) { this.model = model; }
}

View File

@@ -0,0 +1,9 @@
package com.sdm.project.YA.resp;
import java.util.List;
public class ReportData {
private List<String> report;
public List<String> getReport() { return report; }
public void setReport(List<String> report) { this.report = report; }
}

View File

@@ -0,0 +1,9 @@
package com.sdm.project.YA.resp;
import java.util.List;
public class WorkRequestData {
private List<String> workRequest;
public List<String> getWorkRequest() { return workRequest; }
public void setWorkRequest(List<String> workRequest) { this.workRequest = workRequest; }
}

View File

@@ -23,7 +23,7 @@ import java.util.Map;
* @Note
*/
@Configuration
@MapperScan(basePackages = "com.sdm.project.dao", sqlSessionFactoryRef = "mybatisSqlSessionFactoryAdaptor")
@MapperScan(basePackages = {"com.sdm.project.dao", "com.sdm.project.YA.mapper"}, sqlSessionFactoryRef = "mybatisSqlSessionFactoryAdaptor")
public class MybatisPlusConfig {

View File

@@ -23,4 +23,10 @@ public class GetAllUserTaskCompleteStatisticsReq {
@Schema(description = "标签2")
private List<String> tag2List;
@Schema(description = "创建时间")
private List<String> createTimeArr;
@Schema(description = "完成时间")
private List<String> finishTimeArr;
}

View File

@@ -58,4 +58,10 @@ public class GetUserGroupTaskCompleteStatisticsReq {
@Schema(description = "查询学科信息")
private String discipline;
@Schema(description = "创建时间")
List<String> createTimeArr;
@Schema(description = "完成时间")
List<String> finishTimeArr;
}

View File

@@ -44,4 +44,10 @@ public class GetWorkstationApproveStatusReq {
@Schema(description = "查询学科信息")
private String discipline;
@Schema(description = "创建时间")
private String[] createTimeArr;
@Schema(description = "完成时间")
private String[] finishTimeArr;
}

View File

@@ -75,6 +75,8 @@ public class KeyResultReq extends BaseReq {
@Schema(description = "是否需要覆盖同名文件")
private Boolean isConverSameNameFile;
@Schema(description = "是否需要跳过同名文件")
private Boolean isSkipSameNameFile = false;
// ----------------------------------------------------------------
// 很重要用于设置标签通过autoFillDictTags切面 设置dictTagIdsCache

View File

@@ -10,8 +10,8 @@ import com.sdm.common.entity.resp.project.SimulationRunResp;
import com.sdm.project.model.entity.SimulationNode;
import com.sdm.project.model.po.ProjectNodePo;
import com.sdm.project.model.req.*;
import com.sdm.project.model.req.YA.SyncCidProjectReq;
import com.sdm.project.model.resp.YA.BosimSaveProjectTaskRsp;
import com.sdm.project.YA.req.SyncCidProjectReq;
import com.sdm.project.YA.resp.BosimSaveProjectTaskRsp;
import jakarta.servlet.http.HttpServletResponse;
import org.springframework.stereotype.Service;

View File

@@ -5,16 +5,14 @@ import com.sdm.common.common.SdmResponse;
import com.sdm.common.entity.req.export.PerformanceAnalysisExportExcelFormat;
import com.sdm.common.entity.req.export.RunAnalysisExportExcelFormat;
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.GetTaskDetailReq;
import com.sdm.common.entity.req.task.TaskExportExcelFormat;
import com.sdm.common.entity.req.task.TaskTreeExportExcelFormat;
import com.sdm.project.model.bo.ModifyTaskNode;
import com.sdm.project.model.req.*;
import com.sdm.project.model.req.YA.SyncCidTaskReq;
import com.sdm.project.YA.req.SyncCidTaskReq;
import com.sdm.project.model.resp.*;
import com.sdm.project.model.resp.YA.BosimSaveProjectTaskRsp;
import com.sdm.project.YA.resp.BosimSaveProjectTaskRsp;
import com.sdm.common.entity.resp.project.SpdmTaskVo;
import jakarta.servlet.http.HttpServletResponse;
import org.springframework.stereotype.Service;

View File

@@ -20,7 +20,6 @@ import com.sdm.common.entity.req.data.*;
import com.sdm.common.entity.req.project.*;
import com.sdm.common.entity.req.system.QueryGroupDetailReq;
import com.sdm.common.entity.req.system.SendMsgReq;
import com.sdm.common.entity.req.system.UserListReq;
import com.sdm.common.entity.req.system.UserQueryReq;
import com.sdm.common.entity.resp.AllNodeByProjectIdAndTypeResp;
import com.sdm.common.entity.resp.PageDataResp;
@@ -55,12 +54,11 @@ import com.sdm.project.model.bo.TaskExtraNode;
import com.sdm.project.model.bo.TaskNode;
import com.sdm.project.model.bo.TaskNodeTag;
import com.sdm.project.model.entity.*;
import com.sdm.project.model.po.NodeAllBase;
import com.sdm.project.model.po.PerformanceNodePo;
import com.sdm.project.model.po.ProjectNodePo;
import com.sdm.project.model.req.*;
import com.sdm.project.model.req.YA.SyncCidProjectReq;
import com.sdm.project.model.resp.YA.BosimSaveProjectTaskRsp;
import com.sdm.project.YA.req.SyncCidProjectReq;
import com.sdm.project.YA.resp.BosimSaveProjectTaskRsp;
import com.sdm.project.model.vo.*;
import com.sdm.project.service.*;
import jakarta.servlet.http.HttpServletResponse;
@@ -3120,6 +3118,18 @@ public class NodeServiceImpl extends ServiceImpl<SimulationNodeMapper, Simulatio
query.in(SimulationTask::getTag10, Arrays.asList(tag10Values));
}
// 处理创建时间范围查询
if (ArrayUtil.isNotEmpty(req.getCreateTimeArr())) {
query.ge(SimulationTask::getCreateTime, req.getCreateTimeArr()[0])
.le(SimulationTask::getCreateTime, req.getCreateTimeArr()[1]);
}
// 处理完成时间范围查询
if (ArrayUtil.isNotEmpty(req.getFinishTimeArr())) {
query.ge(SimulationTask::getFinishTime, req.getFinishTimeArr()[0])
.le(SimulationTask::getFinishTime, req.getFinishTimeArr()[1]);
}
List<SimulationTask> simulationTasks = query.list();
// 按学科 (discipline) 分组统计任务完成状态

View File

@@ -1178,7 +1178,7 @@ public class SimulationRunServiceImpl extends ServiceImpl<SimulationRunMapper, S
}
}
} else {
return SdmResponse.failed("上传文件失败");
return response;
}
}
return SdmResponse.success(simulationRunKeyResult.getUuid());

View File

@@ -14,17 +14,14 @@ import com.sdm.common.entity.req.export.PerformanceAnalysisExportExcelFormat;
import com.sdm.common.entity.req.export.RunAnalysisExportExcelFormat;
import com.sdm.common.entity.req.export.TaskAnalysisExportExcelFormat;
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.GetTaskDetailReq;
import com.sdm.common.entity.req.project.SimulationPerformance;
import com.sdm.common.entity.req.system.QueryGroupDetailReq;
import com.sdm.common.entity.req.system.SendMsgReq;
import com.sdm.common.entity.req.system.UserListReq;
import com.sdm.common.entity.req.system.UserQueryReq;
import com.sdm.common.entity.req.task.TaskExportExcelFormat;
import com.sdm.common.entity.req.task.TaskExportExcelParam;
import com.sdm.common.entity.resp.PageDataResp;
import com.sdm.common.entity.resp.data.FileMetadataInfoResp;
import com.sdm.common.entity.resp.project.SpdmTaskVo;
import com.sdm.common.entity.resp.project.TaskNodeExtraPo;
@@ -61,10 +58,10 @@ import com.sdm.project.model.po.ProjectNodePo;
import com.sdm.project.model.po.TaskNodeMemberPo;
import com.sdm.project.model.po.TaskRunPo;
import com.sdm.project.model.req.*;
import com.sdm.project.model.req.YA.ProjectTaskInfo;
import com.sdm.project.model.req.YA.SyncCidTaskReq;
import com.sdm.project.YA.req.ProjectTaskInfo;
import com.sdm.project.YA.req.SyncCidTaskReq;
import com.sdm.project.model.resp.*;
import com.sdm.project.model.resp.YA.BosimSaveProjectTaskRsp;
import com.sdm.project.YA.resp.BosimSaveProjectTaskRsp;
import com.sdm.project.model.vo.*;
import com.sdm.project.service.*;
import com.sdm.project.util.SpringBeanCopyUtil;
@@ -87,9 +84,6 @@ import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDateTime;

View File

@@ -529,6 +529,17 @@
<if test="req.tag10 != null and req.tag10 !='' ">
and task.tag10 = #{req.tag10}
</if>
<if test="req.createTimeArr != null and req.createTimeArr.size() == 2">
and task.create_time &gt;= #{req.createTimeArr[0]}
and task.create_time &lt;= #{req.createTimeArr[1]}
</if>
<if test="req.finishTimeArr != null and req.finishTimeArr.size() == 2">
and task.finish_time &gt;= #{req.finishTimeArr[0]}
and task.finish_time &lt;= #{req.finishTimeArr[1]}
</if>
</where>
</select>
@@ -566,6 +577,16 @@
</foreach>
)
</if>
<if test="req.createTimeArr != null and req.createTimeArr.size() == 2">
and task.create_time &gt;= #{req.createTimeArr[0]}
and task.create_time &lt;= #{req.createTimeArr[1]}
</if>
<if test="req.finishTimeArr != null and req.finishTimeArr.size() == 2">
and task.finish_time &gt;= #{req.finishTimeArr[0]}
and task.finish_time &lt;= #{req.finishTimeArr[1]}
</if>
</where>
</select>
@@ -704,6 +725,16 @@
<if test="req.tag10 != null and req.tag10 !='' ">
and task.tag10 = #{req.tag10}
</if>
<if test="req.createTimeArr != null and req.createTimeArr.length == 2">
and task.create_time &gt;= #{req.createTimeArr[0]}
and task.create_time &lt;= #{req.createTimeArr[1]}
</if>
<if test="req.finishTimeArr != null and req.finishTimeArr.length == 2">
and task.finish_time &gt;= #{req.finishTimeArr[0]}
and task.finish_time &lt;= #{req.finishTimeArr[1]}
</if>
</where>
</select>
@@ -854,6 +885,16 @@
<if test="req.tag10 != null and req.tag10 !='' ">
and task.tag10 = #{req.tag10}
</if>
<if test="req.createTimeArr != null and req.createTimeArr.length == 2">
and task.create_time &gt;= #{req.createTimeArr[0]}
and task.create_time &lt;= #{req.createTimeArr[1]}
</if>
<if test="req.finishTimeArr != null and req.finishTimeArr.length == 2">
and task.finish_time &gt;= #{req.finishTimeArr[0]}
and task.finish_time &lt;= #{req.finishTimeArr[1]}
</if>
</where>
</select>