fix:报告模板修改/需求关联任务导出
This commit is contained in:
1
1-sql/2026-01-12/simulation_report_template.sql
Normal file
1
1-sql/2026-01-12/simulation_report_template.sql
Normal file
@@ -0,0 +1 @@
|
||||
ALTER TABLE spdm_baseline.simulation_report_template ADD templateCode varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' NOT NULL COMMENT '报告模版編碼';
|
||||
@@ -16,6 +16,9 @@ public class ReportTemplateDto {
|
||||
@Schema(description = "报告模版唯一ID")
|
||||
private String uuid;
|
||||
|
||||
@Schema(description = "报告模版编码")
|
||||
private String templateCode;
|
||||
|
||||
@Schema(description = "报告模版名称")
|
||||
private String templateName;
|
||||
|
||||
|
||||
@@ -28,6 +28,10 @@ public class SimulationReportTemplate implements Serializable {
|
||||
@TableField("uuid")
|
||||
private String uuid;
|
||||
|
||||
@ApiModelProperty(value = "报告模版编码")
|
||||
@TableField("templateCode")
|
||||
private String templateCode;
|
||||
|
||||
@ApiModelProperty(value = "报告模版名称")
|
||||
@TableField("templateName")
|
||||
private String templateName;
|
||||
|
||||
@@ -26,6 +26,7 @@ import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
@@ -47,6 +48,7 @@ public class SimulationReportTemplateServiceImpl extends ServiceImpl<SimulationR
|
||||
SimulationReportTemplate reportTemplate = new SimulationReportTemplate();
|
||||
BeanUtils.copyProperties(templateDto, reportTemplate);
|
||||
reportTemplate.setUuid(generateUuid("report_template_"));
|
||||
reportTemplate.setTemplateCode(generateUuid("report_code_"));
|
||||
reportTemplate.setCreator(ThreadLocalContext.getUserId());
|
||||
reportTemplate.setTenantId(ThreadLocalContext.getTenantId());
|
||||
UploadFilesReq req = new UploadFilesReq();
|
||||
@@ -57,7 +59,7 @@ public class SimulationReportTemplateServiceImpl extends ServiceImpl<SimulationR
|
||||
}
|
||||
reportTemplate.setFileId(response.getData());
|
||||
this.save(reportTemplate);
|
||||
return SdmResponse.success(reportTemplate.getId());
|
||||
return SdmResponse.success(reportTemplate.getUuid());
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -71,6 +73,7 @@ public class SimulationReportTemplateServiceImpl extends ServiceImpl<SimulationR
|
||||
|
||||
upgradeTemplate.setTemplateVersion(generateVersion(reportTemplate.getTemplateVersion(),templateDto.getVersionType()));
|
||||
upgradeTemplate.setUuid(generateUuid("report_template_"));
|
||||
upgradeTemplate.setTemplateCode(generateUuid("report_code_"));
|
||||
upgradeTemplate.setCreator(creator);
|
||||
upgradeTemplate.setTenantId(tenantId);
|
||||
|
||||
@@ -107,18 +110,21 @@ public class SimulationReportTemplateServiceImpl extends ServiceImpl<SimulationR
|
||||
}
|
||||
|
||||
@Override
|
||||
public SdmResponse deleteReportTemplate(ReportTemplateDto reportTemplate) {
|
||||
SimulationReportTemplate reportTemplateEntity = this.getById(reportTemplate.getId());
|
||||
if (reportTemplateEntity == null) {
|
||||
public SdmResponse deleteReportTemplate(ReportTemplateDto reportTemplateDto) {
|
||||
List<SimulationReportTemplate> reportTemplateEntityList = this.lambdaQuery().eq(SimulationReportTemplate::getTemplateCode, reportTemplateDto.getTemplateCode()).list();
|
||||
if (CollectionUtils.isEmpty(reportTemplateEntityList)) {
|
||||
return SdmResponse.failed("报告模板不存在");
|
||||
}
|
||||
DelFileReq delFileReq = new DelFileReq();
|
||||
delFileReq.setDelFileId(reportTemplateEntity.getFileId());
|
||||
SdmResponse response = dataFeignClient.delFile(delFileReq);
|
||||
if (!response.isSuccess()) {
|
||||
return response;
|
||||
for (SimulationReportTemplate reportTemplate : reportTemplateEntityList) {
|
||||
DelFileReq delFileReq = new DelFileReq();
|
||||
delFileReq.setDelFileId(reportTemplate.getFileId());
|
||||
SdmResponse response = dataFeignClient.delFile(delFileReq);
|
||||
if (!response.isSuccess()) {
|
||||
return response;
|
||||
}
|
||||
this.removeById(reportTemplate.getId());
|
||||
}
|
||||
return SdmResponse.success(this.removeById(reportTemplate.getId()));
|
||||
return SdmResponse.success();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -50,4 +50,8 @@ public class TaskExportExcelParam {
|
||||
* 今明任务 筛选计划结束时间为今明两天的
|
||||
*/
|
||||
private String todayTmrTasks;
|
||||
/**
|
||||
* 需求id
|
||||
*/
|
||||
private String demandId;
|
||||
}
|
||||
|
||||
@@ -119,6 +119,12 @@ public class SimulationTaskController implements ISimulationTaskFeignClient {
|
||||
return taskService.exportTask(taskExportExcelFormat, httpservletResponse);
|
||||
}
|
||||
|
||||
@PostMapping("/exportTaskByDemandId")
|
||||
@Operation(summary = "导出需求关联的任务列表", description = "导出需求关联的任务列表")
|
||||
public SdmResponse exportTaskByDemandId(@RequestBody TaskExportExcelFormat taskExportExcelFormat , HttpServletResponse httpservletResponse) {
|
||||
return taskService.exportTaskByDemandId(taskExportExcelFormat, httpservletResponse);
|
||||
}
|
||||
|
||||
// /**
|
||||
// * 同步CID创建的任务
|
||||
// *
|
||||
|
||||
@@ -155,5 +155,10 @@ public class SpdmExportNewTaskVo extends BaseEntity {
|
||||
private String disciplineCode = "";
|
||||
private String performanceName = "";
|
||||
private String performanceCode = "";
|
||||
/**
|
||||
* 军令状时间
|
||||
*/
|
||||
private String commitmentDeadline;
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -225,5 +225,9 @@ public class SpdmNewTaskVo extends BaseEntity {
|
||||
private String newTag10;
|
||||
|
||||
private Integer expStatus;
|
||||
/**
|
||||
* 军令状时间
|
||||
*/
|
||||
private String commitmentDeadline;
|
||||
|
||||
}
|
||||
|
||||
@@ -161,5 +161,8 @@ public class SpdmTaskDetailVo extends BaseEntity {
|
||||
private String tag8;
|
||||
private String tag9;
|
||||
private String tag10;
|
||||
|
||||
/**
|
||||
* 军令状时间
|
||||
*/
|
||||
private String commitmentDeadline;
|
||||
}
|
||||
|
||||
@@ -53,6 +53,8 @@ public interface ITaskService {
|
||||
*/
|
||||
SdmResponse exportTask(TaskExportExcelFormat taskExportExcelFormat , HttpServletResponse httpservletResponse);
|
||||
|
||||
SdmResponse exportTaskByDemandId(TaskExportExcelFormat taskExportExcelFormat , HttpServletResponse httpservletResponse);
|
||||
|
||||
// SdmResponse synchronizeCidTask(SpdmSyncCidTaskReq req);
|
||||
|
||||
SdmResponse getTaskDetail(GetTaskDetailReq req);
|
||||
|
||||
@@ -471,12 +471,12 @@ public class TaskServiceImpl implements ITaskService {
|
||||
// 通过仿真负责人过滤
|
||||
taskMemberVoList = taskMemberVoList.stream().filter(member -> MemberTypeEnum.PRINCIPAL.getCode().equals(member.getType()) && pMemberIdList.contains(member.getUserId())).collect(Collectors.toList());
|
||||
}
|
||||
// if (StringUtils.isNotBlank(req.getEMemberList())) {
|
||||
// // 通过仿真执行人过滤
|
||||
// List<Long> eMemberIdList = Stream.of(req.getEMemberList().split(",")).map(Long::valueOf).toList();
|
||||
// // 通过仿真负责人过滤
|
||||
// taskMemberVoList = taskMemberVoList.stream().filter(member -> MemberTypeEnum.EXECUTOR.getCode().equals(member.getType()) && eMemberIdList.contains(member.getUserId())).collect(Collectors.toList());
|
||||
// }
|
||||
if (StringUtils.isNotBlank(req.getEMemberList())) {
|
||||
// 通过仿真执行人过滤
|
||||
List<Long> eMemberIdList = Stream.of(req.getEMemberList().split(",")).map(Long::valueOf).toList();
|
||||
// 通过仿真负责人过滤
|
||||
taskMemberVoList = taskMemberVoList.stream().filter(member -> MemberTypeEnum.EXECUTOR.getCode().equals(member.getType()) && eMemberIdList.contains(member.getUserId())).collect(Collectors.toList());
|
||||
}
|
||||
if (CollectionUtils.isEmpty(taskMemberVoList)) {
|
||||
log.error("taskMemberVoList为空");
|
||||
jsonObject.put("total", 0);
|
||||
@@ -1279,6 +1279,67 @@ public class TaskServiceImpl implements ITaskService {
|
||||
return response;
|
||||
}
|
||||
|
||||
@Override
|
||||
public SdmResponse exportTaskByDemandId(TaskExportExcelFormat taskExportExcelFormat, HttpServletResponse httpServletResponse) {
|
||||
SpdmTaskListReq req = new SpdmTaskListReq();
|
||||
TaskExportExcelParam params = taskExportExcelFormat.getParams();
|
||||
List<com.sdm.common.entity.bo.TaskNodeTag> originIdMap = params.getIdMap();
|
||||
if (ObjectUtils.isEmpty(params.getType())) {
|
||||
log.error("type不能为空");
|
||||
return SdmResponse.failed("type不能为空");
|
||||
}
|
||||
if (CollectionUtils.isEmpty(originIdMap)) {
|
||||
log.error("idMap不能为空");
|
||||
return SdmResponse.failed("idMap不能为空");
|
||||
}
|
||||
List<TaskNodeTag> currentIdMapList = new ArrayList<>();
|
||||
for (com.sdm.common.entity.bo.TaskNodeTag originTaskNodeTag : originIdMap) {
|
||||
TaskNodeTag taskNodeTag = new TaskNodeTag();
|
||||
taskNodeTag.setKey(originTaskNodeTag.getKey());
|
||||
taskNodeTag.setValue(originTaskNodeTag.getValue());
|
||||
currentIdMapList.add(taskNodeTag);
|
||||
}
|
||||
req.setIdMap(currentIdMapList);
|
||||
if (ObjectUtils.isNotEmpty(params)) {
|
||||
BeanUtils.copyProperties(params, req);
|
||||
}
|
||||
req.setDemandId(params.getDemandId());
|
||||
req.setCurrent(1);
|
||||
req.setSize(10000);
|
||||
|
||||
List<ExportExcelFormat> exportExcelFormats = taskExportExcelFormat.getExcelHeaders();
|
||||
SdmResponse taskRespond = getTaskListByDemandId(req);
|
||||
SdmResponse response = new SdmResponse();
|
||||
if (taskRespond.isSuccess()) {
|
||||
JSONObject dataObj = (JSONObject) taskRespond.getData();
|
||||
List<SpdmTaskDetailVo> taskVoList = (List<SpdmTaskDetailVo>) dataObj.get("data");
|
||||
List<SpdmExportNewTaskVo> exportNewTaskVoList = new ArrayList<>();
|
||||
List<CIDUserResp> pMemberList;
|
||||
String pMemberName = "";
|
||||
List<CIDUserResp> eMemberList;
|
||||
String eMemberName = "";
|
||||
for (SpdmTaskDetailVo spdmNewTaskVo : taskVoList) {
|
||||
pMemberList = spdmNewTaskVo.getPMemberList();
|
||||
if (CollectionUtils.isNotEmpty(pMemberList)) {
|
||||
pMemberName = pMemberList.stream().map(CIDUserResp::getNickname).collect(Collectors.joining(","));
|
||||
}
|
||||
eMemberList = spdmNewTaskVo.getPMemberList();
|
||||
if (CollectionUtils.isNotEmpty(eMemberList)) {
|
||||
eMemberName = eMemberList.stream().map(CIDUserResp::getNickname).collect(Collectors.joining(","));
|
||||
}
|
||||
SpdmExportNewTaskVo spdmExportNewTaskVo = new SpdmExportNewTaskVo();
|
||||
BeanUtils.copyProperties(spdmNewTaskVo, spdmExportNewTaskVo);
|
||||
spdmExportNewTaskVo.setPMemberList(pMemberName);
|
||||
spdmExportNewTaskVo.setEMemberList(eMemberName);
|
||||
exportNewTaskVoList.add(spdmExportNewTaskVo);
|
||||
}
|
||||
ExcelUtil.exportExcelNoMerge(JSONArray.from(exportNewTaskVoList), exportExcelFormats, httpServletResponse);
|
||||
} else {
|
||||
response = SdmResponse.failed(taskRespond.getMessage());
|
||||
}
|
||||
return response;
|
||||
}
|
||||
|
||||
// @Override
|
||||
// public SdmResponse synchronizeCidTask(SpdmSyncCidTaskReq req) {
|
||||
// log.info("同步CID任务的参数为:{}", req);
|
||||
@@ -1995,10 +2056,10 @@ public class TaskServiceImpl implements ITaskService {
|
||||
}
|
||||
}
|
||||
if (CollectionUtils.isNotEmpty(spdmPUserVoList)) {
|
||||
spdmTaskDetailVo.setPMemberList(spdmPUserVoList);
|
||||
spdmTaskDetailVo.setPMemberList(spdmPUserVoList.stream().distinct().toList());
|
||||
}
|
||||
if (CollectionUtils.isNotEmpty(spdmEUserVoList)) {
|
||||
spdmTaskDetailVo.setEMemberList(spdmEUserVoList);
|
||||
spdmTaskDetailVo.setEMemberList(spdmEUserVoList.stream().distinct().toList());
|
||||
}
|
||||
spdmTaskDetailVoList.add(spdmTaskDetailVo);
|
||||
}
|
||||
|
||||
10
task/pom.xml
10
task/pom.xml
@@ -91,11 +91,11 @@
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-actuator</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.postgresql</groupId>
|
||||
<artifactId>postgresql</artifactId>
|
||||
<version>42.2.5</version>
|
||||
</dependency>
|
||||
<!-- <dependency>-->
|
||||
<!-- <groupId>org.postgresql</groupId>-->
|
||||
<!-- <artifactId>postgresql</artifactId>-->
|
||||
<!-- <version>42.2.5</version>-->
|
||||
<!-- </dependency>-->
|
||||
</dependencies>
|
||||
<dependencyManagement>
|
||||
<dependencies>
|
||||
|
||||
Reference in New Issue
Block a user