1.仿真工况库添加附加及动画库绑定功能

2.场景库绑定附加表新增创建人信息
This commit is contained in:
daiqy88
2026-04-14 11:16:54 +08:00
parent a3032f2878
commit 545d81740c
5 changed files with 130 additions and 11 deletions

View File

@@ -13,7 +13,7 @@ public interface SimulationPoolMapper {
int addNewNamespace(@Param("entity") Namespace entity);*/
@Insert("INSERT INTO simulation_pool(poolName,comment,currentVersion,parentVersion,iconFile,creator,tenantId) VALUES(#{brief.poolName},#{brief.comment},#{brief.currentVersion},#{brief.parentVersion},#{brief.iconFile},#{brief.creator},#{brief.tenantId})")
@Insert("INSERT INTO simulation_pool(poolName,comment,currentVersion,parentVersion,iconFile,attachment,animation,creator,tenantId) VALUES(#{brief.poolName},#{brief.comment},#{brief.currentVersion},#{brief.parentVersion},#{brief.iconFile},#{brief.attachment},#{brief.animation},#{brief.creator},#{brief.tenantId})")
@Options(useGeneratedKeys=true,keyProperty="id")
int addTaskPoolBreif(@Param("brief") TaskPoolBrief brief);
@@ -77,9 +77,9 @@ public interface SimulationPoolMapper {
@Insert({
"<script>",
"INSERT INTO simulation_pool_task(uuid,nodeName,nodeCode,englishName,poolName,poolVersion,nodeId,days,standard,confidence,discipline,flowTemplate,analyseTarget,analyseSoftware,description,difficult,tenantId,imageFileId,bCapacity,department,section,`group`) VALUES ",
"INSERT INTO simulation_pool_task(uuid,nodeName,nodeCode,englishName,poolName,poolVersion,nodeId,days,standard,confidence,discipline,flowTemplate,analyseTarget,analyseSoftware,description,difficult,tenantId,imageFileId,bCapacity,department,section,`group`,responsible) VALUES ",
"<foreach collection ='list' item='it' index='index' separator =','>",
"(#{it.uuid},#{it.nodeName},#{it.nodeCode},#{it.englishName},#{it.poolName},#{it.poolVersion},#{it.nodeId},#{it.days},#{it.standard},#{it.confidence},#{it.discipline},#{it.flowTemplate},#{it.analyseTarget},#{it.analyseSoftware},#{it.description},#{it.difficult},#{it.tenantId},#{it.imageFileId},#{it.bCapacity},#{it.department},#{it.section},#{it.group}) ",
"(#{it.uuid},#{it.nodeName},#{it.nodeCode},#{it.englishName},#{it.poolName},#{it.poolVersion},#{it.nodeId},#{it.days},#{it.standard},#{it.confidence},#{it.discipline},#{it.flowTemplate},#{it.analyseTarget},#{it.analyseSoftware},#{it.description},#{it.difficult},#{it.tenantId},#{it.imageFileId},#{it.bCapacity},#{it.department},#{it.section},#{it.group},#{it.responsible}) ",
"</foreach>",
"</script>"
})
@@ -117,13 +117,13 @@ public interface SimulationPoolMapper {
int batchAddSimulationPoolPerformanceExtra(@Param("list")List<TaskPoolPerformanceExtra> list);
//@Update("UPDATE simulation_pool SET currentVersion=#{brief.currentVersion},parentVersion=#{brief.parentVersion},comment=#{brief.comment},iconFile=#{brief.iconFile} WHERE poolName=#{brief.poolName}")
@Update("UPDATE simulation_pool SET comment=#{brief.comment},iconFile=#{brief.iconFile} WHERE poolName=#{brief.poolName}")
@Update("UPDATE simulation_pool SET comment=#{brief.comment},iconFile=#{brief.iconFile},attachment=#{brief.attachment},animation=#{brief.animation} WHERE poolName=#{brief.poolName}")
int updateTaskPoolBrief(@Param("brief")TaskPoolBrief brief);
@Update("UPDATE simulation_pool_node SET nodeName=#{node.nodeName},nodeCode=#{node.nodeCode},englishName=#{node.englishName},nodeType=#{node.nodeType},nodeSubType=#{node.nodeSubType},nodeOrder=#{node.nodeOrder},description=#{node.description} WHERE uuid=#{node.uuid}")
int updateTaskPoolNode(@Param("node")TaskPoolNode node);
@Update("UPDATE simulation_pool_task SET nodeName=#{task.nodeName},nodeCode=#{task.nodeCode},englishName=#{task.englishName},discipline=#{task.discipline}, days=#{task.days},standard=#{task.standard},flowTemplate=#{task.flowTemplate},analyseTarget=#{task.analyseTarget},analyseSoftware=#{task.analyseSoftware},confidence=#{task.confidence},difficult=#{task.difficult},description=#{task.description},imageFileId=#{task.imageFileId},bCapacity=#{task.bCapacity},department=#{task.department},section=#{task.section},`group`=#{task.group} WHERE uuid = #{task.uuid}")
@Update("UPDATE simulation_pool_task SET nodeName=#{task.nodeName},nodeCode=#{task.nodeCode},englishName=#{task.englishName},discipline=#{task.discipline}, days=#{task.days},standard=#{task.standard},flowTemplate=#{task.flowTemplate},analyseTarget=#{task.analyseTarget},analyseSoftware=#{task.analyseSoftware},confidence=#{task.confidence},difficult=#{task.difficult},description=#{task.description},imageFileId=#{task.imageFileId},bCapacity=#{task.bCapacity},department=#{task.department},section=#{task.section},`group`=#{task.group},responsible=#{task.responsible} WHERE uuid = #{task.uuid}")
int updateTaskPoolItem(@Param("task")TaskPoolItem task);
@Update("UPDATE simulation_pool_performance SET nodeName=#{performance.nodeName},nodeCode=#{performance.nodeCode},englishName=#{performance.englishName},performanceType=#{performance.performanceType},unit=#{performance.unit},lowValue=#{performance.lowValue},highValue=#{performance.highValue},method=#{performance.method},description=#{performance.description} WHERE uuid=#{performance.uuid}")

View File

@@ -19,10 +19,14 @@ public class TaskPoolBrief extends BaseBean
public String parentVersion;
public String currentVersion;
public String iconFile;
public String attachment;
public String animation;
public long tenantId;
public long creator;
public String creatorName;
public String createTime;
public String attachmentName;
public String animationName;
//附加属性
public List<String> versions = new ArrayList<>();
}

View File

@@ -29,6 +29,7 @@ public class TaskPoolItem extends NodeBase{
public String section;
public String group;
public float difficult;
public String responsible;
public List<TaskPoolItemExtra> extras = new ArrayList<>();

View File

@@ -3,20 +3,22 @@ package com.sdm.task.service.impl;
import com.alibaba.fastjson2.JSONArray;
import com.alibaba.fastjson2.JSONObject;
import com.sdm.common.common.SdmResponse;
import com.sdm.common.common.ThreadLocalContext;
import com.sdm.common.entity.req.data.QueryFileReq;
import com.sdm.common.entity.resp.data.FileMetadataInfoResp;
import com.sdm.common.feign.inter.data.IDataFeignClient;
import com.sdm.task.model.entity.*;
import com.sdm.task.model.req.AddTaskPoolExtraTableReq;
import com.sdm.task.model.req.QueryTaskPoolConfidenceReq;
import jakarta.servlet.http.HttpServletResponse;
import org.jetbrains.annotations.NotNull;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.RequestParam;
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
@Service
@ConditionalOnProperty(name = "simulationPool.chose", havingValue = "lyric")
@@ -27,6 +29,9 @@ public class SimulationTaskPoolServiceForLyricImpl extends SimulationTaskPoolSer
private final String LOG_TABLE = "Log";
private final String EXCEPT_TABLE = "Except";
private final String ATTACHMENT_TABLE = "Attachment";
@Autowired
private IDataFeignClient dateClient;
@Override
public List<String> getSimulationPoolNodeNames(String poolName, String nodeType)
{
@@ -377,7 +382,6 @@ public class SimulationTaskPoolServiceForLyricImpl extends SimulationTaskPoolSer
*/
private int insertTaskExtraTable(JSONObject obj,String poolName,String taskId,String nodeId,String propertyClass)
{
Class cla = obj.getClass();
List<PropertyExtra> propertyExtraList = new ArrayList<>();
int result = 0;
try
@@ -393,12 +397,16 @@ public class SimulationTaskPoolServiceForLyricImpl extends SimulationTaskPoolSer
propertyExtra.propertyValue = fieldValue;
propertyExtraList.add(propertyExtra);
}
Long creatorId = ThreadLocalContext.getUserId();
PropertyExtra propertyExtra = new PropertyExtra();
propertyExtra.propertyName = "creator";
propertyExtra.propertyValue = String.valueOf(creatorId);
propertyExtraList.add(propertyExtra);
result = insertTaskExtraAsLine(taskId,nodeId,poolName,propertyClass,propertyExtraList);
}
catch(Exception ex){
ex.printStackTrace();
}
return result;
}
@@ -430,6 +438,7 @@ public class SimulationTaskPoolServiceForLyricImpl extends SimulationTaskPoolSer
List<TaskPoolItemExtra> taskPoolItemExtraList = lineMap.get(lineKey);
JSONObject extraTable = getTaskExtraLine( taskPoolItemExtraList);
extraTable.put("lineCode",lineKey);
extraTable.put("creatorName","");
taskExtraTable.add(extraTable);
}
@@ -557,5 +566,100 @@ public class SimulationTaskPoolServiceForLyricImpl extends SimulationTaskPoolSer
}
/**
* 解析单层分隔符分隔的字符串内容
* @param contents
* @param firstSeparator
* @param secondSeparator
* @return
*/
private List<Long> paraseSingleLevelToken(String contents,String firstSeparator,String secondSeparator) {
List<Long> list = new ArrayList<>();
if (contents == null || contents.isEmpty())
return list;
String[] tokens = contents.split(firstSeparator);
if(secondSeparator == null) {
for(String token : tokens) {
list.add(Long.parseLong(token));
}
}
else {
for(String token : tokens) {
String[] tokenArray = token.split(secondSeparator);
int len = tokenArray.length;
list.add(Long.valueOf(tokenArray[len-1]));
}
}
return list;
}
@Override
public void filledTaskPoolDetail(List<TaskPoolBrief> poolBriefs)
{
List<Long> fileIds = new ArrayList<>();
Map<Integer,List<Long>> taskPoolAttachmentMap = new HashMap<>();
Map<Integer,List<Long>> taskPoolAnimationMap = new HashMap<>();
for(TaskPoolBrief taskPoolBrief : poolBriefs)
{
String attachmentIds = taskPoolBrief.attachment;
String animationIds = taskPoolBrief.animation;
List<Long> attachmentList = paraseSingleLevelToken(attachmentIds,",",null);
List<Long> animationList = paraseSingleLevelToken(animationIds,";",",");
fileIds.addAll(attachmentList);
fileIds.addAll(animationList);
taskPoolAttachmentMap.put(taskPoolBrief.id,attachmentList);
taskPoolAnimationMap.put(taskPoolBrief.id,animationList);
}
//从Data服务通过文件ID列表获取文件名称信息
Map<Long,String> fileIdNameMap = new HashMap<>();
if(!fileIds.isEmpty()) {
QueryFileReq req = new QueryFileReq();
req.setFileIdList(fileIds);
SdmResponse<List<FileMetadataInfoResp>> fileMetaResp = dateClient.queryFileListByIdList(req);
for (FileMetadataInfoResp fileMetadataInfoResp : fileMetaResp.getData()) {
long fileId = fileMetadataInfoResp.getId();
String fileName = fileMetadataInfoResp.getOriginalName();
fileIdNameMap.put(fileId, fileName);
}
}
for(TaskPoolBrief taskPoolBrief : poolBriefs)
{
int briefId = taskPoolBrief.id;
List<Long> attachmentIds = taskPoolAttachmentMap.get(briefId);
List<Long> animationIds = taskPoolAnimationMap.get(briefId);
if(attachmentIds != null) {
for (Long attachmentId : attachmentIds) {
String fileName = fileIdNameMap.get(attachmentId);
if (fileName != null) {
if (taskPoolBrief.attachmentName.isEmpty()) {
taskPoolBrief.attachmentName += fileName;
} else {
taskPoolBrief.attachmentName += "," + fileName;
}
}
}
}
if(animationIds != null)
{
for(Long animationId : animationIds)
{
String fileName = fileIdNameMap.get(animationId);
if(fileName != null)
{
if(taskPoolBrief.animationName.isEmpty())
{
taskPoolBrief.animationName +=fileName;
}else
{
taskPoolBrief.animationName += ";"+fileName;
}
}
}
}
}
}
}

View File

@@ -1846,6 +1846,15 @@ public class SimulationTaskPoolServiceImpl extends BaseService implements ISimul
return response;
}
/**
* 填充taskpool中的详细信息
* @param poolBriefs
*/
public void filledTaskPoolDetail(List<TaskPoolBrief> poolBriefs)
{
return;
}
/**
* 获取系统内所有的分析项库
* @return
@@ -1881,6 +1890,7 @@ public class SimulationTaskPoolServiceImpl extends BaseService implements ISimul
}
}
}
filledTaskPoolDetail(poolBriefs);
response.setData(poolBriefs);
return response;
}