This commit is contained in:
2026-03-06 16:39:26 +08:00
8 changed files with 100 additions and 7 deletions

View File

@@ -1,11 +1,13 @@
package com.sdm.capability.model.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.sdm.capability.model.entity.SimulationFlowTaskBindInfo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.springframework.web.multipart.MultipartFile;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
@Data
@@ -89,5 +91,11 @@ public class ReportTemplateDto {
@Schema(description = "是否复制模板 Y/N")
private String copyFlag;
@Schema(description = "绑定的工况库信息")
public List<SimulationFlowTaskBindInfo> simulationPoolInfoList = new ArrayList();
@Schema(description = "绑定的工况库信息JSON字符串")
public String simulationPoolInfoListStr;
}

View File

@@ -11,6 +11,8 @@ import lombok.experimental.Accessors;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
@Data
@EqualsAndHashCode(callSuper = false)
@@ -94,4 +96,9 @@ public class SimulationReportTemplate implements Serializable {
@TableField("updater")
private Long updater;
// ========== 新增非数据库字段 ==========
@ApiModelProperty(value = "绑定的工况库信息")
@TableField(exist = false)
private List<SimulationFlowTaskBindInfo> simulationPoolInfoList = new ArrayList<>();
}

View File

@@ -7,6 +7,8 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.sdm.capability.dao.SimulationReportTemplateMapper;
import com.sdm.capability.model.dto.ReportTemplateDto;
import com.sdm.capability.model.entity.SimulationFlowTaskBindInfo;
import com.sdm.capability.model.entity.SimulationFlowTemplate;
import com.sdm.capability.model.entity.SimulationReportTemplate;
import com.sdm.capability.service.ISimulationReportTemplateService;
import com.sdm.common.common.SdmResponse;
@@ -16,15 +18,19 @@ import com.sdm.common.entity.constants.CommonConstants;
import com.sdm.common.entity.constants.NumberConstants;
import com.sdm.common.entity.enums.ApproveStatusEnum;
import com.sdm.common.entity.enums.ApproveTypeEnum;
import com.sdm.common.entity.pojo.task.FlowBindTaskPoolItem;
import com.sdm.common.entity.pojo.task.TaskBaseInfo;
import com.sdm.common.entity.req.data.DelFileReq;
import com.sdm.common.entity.req.data.GetFileBaseInfoReq;
import com.sdm.common.entity.req.data.UpdateScriptAndReportReq;
import com.sdm.common.entity.req.data.UploadFilesReq;
import com.sdm.common.entity.req.system.LaunchApproveReq;
import com.sdm.common.entity.req.task.BindTaskAndFlowTemplateReq;
import com.sdm.common.entity.resp.capability.ReportTemplateResp;
import com.sdm.common.entity.resp.data.FileMetadataInfoResp;
import com.sdm.common.feign.impl.data.DataClientFeignClientImpl;
import com.sdm.common.feign.impl.system.ApproveFeignClientImpl;
import com.sdm.common.feign.impl.task.SimuluationTaskPoolFeignClientImpl;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
@@ -49,6 +55,9 @@ public class SimulationReportTemplateServiceImpl extends ServiceImpl<SimulationR
@Autowired
private ApproveFeignClientImpl approveFeignClient;
@Autowired
private SimuluationTaskPoolFeignClientImpl simuluationTaskPoolFeignClient;
@Override
public SdmResponse createReportTemplate(ReportTemplateDto templateDto) {
SimulationReportTemplate reportTemplate = new SimulationReportTemplate();
@@ -87,9 +96,49 @@ public class SimulationReportTemplateServiceImpl extends ServiceImpl<SimulationR
}
reportTemplate.setFileId(response.getData());
this.save(reportTemplate);
// 解析工况库信息JSON字符串
if (StringUtils.isNotBlank(templateDto.getSimulationPoolInfoListStr())) {
List<SimulationFlowTaskBindInfo> simulationPoolInfoList = JSON.parseArray(templateDto.getSimulationPoolInfoListStr(), SimulationFlowTaskBindInfo.class);
// 绑定工况
bindReportTemplateAndTask(reportTemplate.getTemplateCode(), simulationPoolInfoList);
}
return SdmResponse.success(reportTemplate.getUuid());
}
/**
* 绑定报告模版与分析库中的分析项
* @param reportCode
* @param simulationPoolInfoList
*/
private void bindReportTemplateAndTask(String reportCode, List<SimulationFlowTaskBindInfo> simulationPoolInfoList)
{
if(simulationPoolInfoList == null || simulationPoolInfoList.isEmpty())
return;
BindTaskAndFlowTemplateReq req = new BindTaskAndFlowTemplateReq();
req.flowCode = reportCode;
req.bindTaskkPoolItem = new ArrayList<>();
for(SimulationFlowTaskBindInfo bindInfo : simulationPoolInfoList)
{
FlowBindTaskPoolItem bindTaskPoolItem = new FlowBindTaskPoolItem();
bindTaskPoolItem.flowCode = reportCode;
bindTaskPoolItem.poolName = bindInfo.simulationPoolName;
bindTaskPoolItem.poolId = bindInfo.simulationPoolId;
bindTaskPoolItem.version = bindInfo.simulationPoolVersion;
for(String taskId : bindInfo.simulationPoolTaskIds)
{
TaskBaseInfo taskBaseInfo = new TaskBaseInfo();
taskBaseInfo.poolName = bindInfo.simulationPoolName;
taskBaseInfo.version = bindInfo.simulationPoolVersion;
taskBaseInfo.type = 1;
taskBaseInfo.uuid = taskId;
bindTaskPoolItem.taskList.add(taskBaseInfo);
}
req.bindTaskkPoolItem.add(bindTaskPoolItem);
}
simuluationTaskPoolFeignClient.updateTaskAndFlowTemplate(req);
}
@Override
public SdmResponse upgradeReportTemplate(ReportTemplateDto templateDto) {
Long tenantId = ThreadLocalContext.getTenantId();
@@ -249,6 +298,31 @@ public class SimulationReportTemplateServiceImpl extends ServiceImpl<SimulationR
queryTemplate = latestVersions.subList(beginPos,latestVersions.size());
}
}
for(SimulationReportTemplate reportTemplate : queryTemplate)
{
SdmResponse bindResponse = simuluationTaskPoolFeignClient.getFlowTemplateBindTaskRelate(reportTemplate.getTemplateCode());
if(bindResponse.isSuccess())
{
List<FlowBindTaskPoolItem> flowBindTaskPoolItems = (List<FlowBindTaskPoolItem>)bindResponse.getData();
for(FlowBindTaskPoolItem flowBindTaskPoolItem : flowBindTaskPoolItems)
{
SimulationFlowTaskBindInfo flowTaskBindInfo = new SimulationFlowTaskBindInfo();
flowTaskBindInfo.simulationPoolName = flowBindTaskPoolItem.poolName;
flowTaskBindInfo.simulationPoolId = flowBindTaskPoolItem.poolId;
flowTaskBindInfo.simulationPoolVersion = flowBindTaskPoolItem.version;
flowTaskBindInfo.taskBaseInfoList = flowBindTaskPoolItem.taskList;
List<String> taskIds = new ArrayList<>();
for(TaskBaseInfo taskBaseInfo : flowBindTaskPoolItem.taskList)
{
taskIds.add(taskBaseInfo.uuid);
}
flowTaskBindInfo.simulationPoolTaskIds = taskIds;
reportTemplate.getSimulationPoolInfoList().add(flowTaskBindInfo);
}
}
}
DataPageInfo<List<SimulationReportTemplate>> pageInfo = new DataPageInfo<>();
pageInfo.data = queryTemplate;
pageInfo.total = total;

View File

@@ -20,4 +20,6 @@ public class TaskBaseInfo {
public Long fileId;
public Integer type;
}

View File

@@ -80,9 +80,8 @@ public class SystemLogController implements ISysLogFeignClient {
* @param createTimeArr 时间数组 [startDate, endDate]格式yyyy-MM-dd
* @return 每日操作统计列表
*/
@GetMapping("/getDailyOperateStatistics")
public SdmResponse<List<DailyOperateStatsResp>> getDailyOperateStatistics(
@RequestParam("createTimeArr") @NotNull(message = "时间不能为空") String[] createTimeArr) {
return logService.getDailyOperateStatistics(createTimeArr);
@PostMapping("/getDailyOperateStatistics")
public SdmResponse<List<DailyOperateStatsResp>> getDailyOperateStatistics(@RequestBody SysLogDTO sysLog) {
return logService.getDailyOperateStatistics(sysLog.getCreateTimeArr());
}
}

View File

@@ -229,9 +229,9 @@ public interface SimulationPoolMapper {
@Insert({
"<script>",
"INSERT INTO simulation_taskpool_flowtemplate_relate(poolName,version,taskUuid,flowCode,poolId) VALUES ",
"INSERT INTO simulation_taskpool_flowtemplate_relate(poolName,version,taskUuid,flowCode,poolId,type) VALUES ",
"<foreach collection ='list' item='it' index='index' separator =','>",
"(#{it.poolName},#{it.version},#{it.taskUuid},#{it.flowCode},#{it.poolId}) ",
"(#{it.poolName},#{it.version},#{it.taskUuid},#{it.flowCode},#{it.poolId},#{it.type}) ",
"</foreach>",
"</script>"
})

View File

@@ -14,6 +14,8 @@ public class SimulatePoolTaskFlowTemplateRelate {
public String flowCode;
public Integer type;
public long tenantId;
public long creator;

View File

@@ -2297,6 +2297,7 @@ public class SimulationTaskPoolServiceImpl extends BaseService implements ISimul
templateRelate.version = taskPoolItem.version;
templateRelate.poolId = taskPoolItem.poolId;
templateRelate.taskUuid = taskBaseInfo.uuid;
templateRelate.type = taskBaseInfo.type;
relations.add(templateRelate);
}
}