1、数据查询导出

2、修改报工接口
This commit is contained in:
2026-01-09 11:11:51 +08:00
parent faf4f23b61
commit f433a598ad
10 changed files with 131 additions and 22 deletions

View File

@@ -113,6 +113,11 @@
<!-- </dependency>-->
<!-- <dependency>-->
<!-- <groupId>org.postgresql</groupId>-->
<!-- <artifactId>postgresql</artifactId>-->
<!-- <version>42.2.5</version>-->
<!-- </dependency>-->
</dependencies>
<dependencyManagement>

View File

@@ -12,17 +12,19 @@ import java.nio.charset.Charset;
@Slf4j
@Component
public class TaskOperate {
public class ExportOperate {
@Value("${file.scriptPath}")
private String scriptPath;
private static final String TEMP_EXPORT_PATH = "/opt/export/";
/**
* 将分析项库信息导出为excel格式
*/
public String convertTaskToFile(String task, String colunms) {
String taskJsonFileName = System.currentTimeMillis() + "task.json";
String columnFileName = System.currentTimeMillis() + "colunms2.json";
public String convertToFile(String task, String colunms) {
String taskJsonFileName = TEMP_EXPORT_PATH + System.currentTimeMillis() + "task.json";
String columnFileName = TEMP_EXPORT_PATH + System.currentTimeMillis() + "colunms2.json";
String exportFileName = "";
if (!saveContentsToFile(task, taskJsonFileName) || !saveContentsToFile(colunms, columnFileName)) {
log.error("保存分析项库文件失败");

View File

@@ -81,5 +81,18 @@ public class SimulationAnalysisController {
return taskService.exportTaskByScript(response,req);
}
@PostMapping(value = "/exportRunByScript")
@ResponseBody
SdmResponse exportRunByScript(HttpServletResponse response ,@RequestBody SpdmAnalysisRunListReq req) {
return taskService.exportRunByScript(response,req);
}
@PostMapping(value = "/exportPerformanceByScript")
@ResponseBody
SdmResponse exportPerformanceByScript(HttpServletResponse response ,@RequestBody SpdmAnalysisPerformanceListReq req) {
return taskService.exportPerformanceByScript(response,req);
}
}

View File

@@ -32,13 +32,17 @@ public class SimulationWork implements Serializable {
@TableId(value = "id", type = IdType.AUTO)
private Long id;
@ApiModelProperty(value = "基础信息")
@TableField("workName")
private String workName;
@ApiModelProperty(value = "应完成任务")
@TableField("planFinishTask")
private String planFinishTask;
@TableField("shouldProgress")
private String shouldProgress;
@ApiModelProperty(value = "实际完成任务")
@TableField("actualFinishTask")
private String actualFinishTask;
@TableField("actualProgress")
private String actualProgress;
@ApiModelProperty(value = "计划工时")
@TableField("planWorkHour")

View File

@@ -1,10 +1,14 @@
package com.sdm.project.model.req;
import com.sdm.common.entity.ExportExcelFormat;
import com.sdm.common.entity.pojo.BaseEntity;
import com.sdm.common.entity.req.task.TaskExportExcelParam;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import java.util.List;
@Data
public class SpdmAnalysisPerformanceListReq extends BaseEntity {
@@ -44,4 +48,14 @@ public class SpdmAnalysisPerformanceListReq extends BaseEntity {
@Schema( description = "名称(兼容数据总览使用)")
private String name;
/**
* 导出的基本属性值
*/
private List<ExportExcelFormat> excelHeaders;
/**
* 导出任务的可选查询参数
*/
private TaskExportExcelParam params;
}

View File

@@ -1,10 +1,14 @@
package com.sdm.project.model.req;
import com.sdm.common.entity.ExportExcelFormat;
import com.sdm.common.entity.pojo.BaseEntity;
import com.sdm.common.entity.req.task.TaskExportExcelParam;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import java.util.List;
@Data
public class SpdmAnalysisRunListReq extends BaseEntity {
@@ -43,4 +47,14 @@ public class SpdmAnalysisRunListReq extends BaseEntity {
@Schema( description = "名称(兼容数据总览使用)")
private String name;
/**
* 导出的基本属性值
*/
private List<ExportExcelFormat> excelHeaders;
/**
* 导出任务的可选查询参数
*/
private TaskExportExcelParam params;
}

View File

@@ -12,9 +12,11 @@ public class SpdmWorkReq {
private Long id;
private String planFinishTask;
private String workName;
private String actualFinishTask;
private String shouldProgress;
private String actualProgress;
private Integer planWorkHour;

View File

@@ -82,4 +82,8 @@ public interface ITaskService {
SdmResponse queryTaskByProjectCodeForEp(String projectCode);
SdmResponse exportTaskByScript(HttpServletResponse response,SpdmAnalysisTaskListReq req);
SdmResponse exportRunByScript(HttpServletResponse response, SpdmAnalysisRunListReq req);
SdmResponse exportPerformanceByScript(HttpServletResponse response, SpdmAnalysisPerformanceListReq req);
}

View File

@@ -81,10 +81,13 @@ public class SimulationWorkServiceImpl extends ServiceImpl<SimulationWorkMapper,
if (actualWorkHour > maxWorkHour) {
return SdmResponse.failed("您填写的工时:" + actualWorkHour + "已超出最大可填写的工时:" + maxWorkHour);
}
simulationWorkWrapper.set(SimulationWork::getActualFinishTask, req.getActualFinishTask());
simulationWorkWrapper.set(SimulationWork::getActualProgress, req.getActualProgress())
.set(SimulationWork::getWorkName, req.getWorkName()).update();
}
updateFlag = simulationWorkWrapper
.set(ObjectUtils.isNotEmpty(req.getActualWorkHour()), SimulationWork::getActualWorkHour, req.getActualWorkHour())
.set(SimulationWork::getPlanWorkHour, req.getPlanWorkHour())
.set(SimulationWork::getDescription, req.getDescription())
.eq(SimulationWork::getId, req.getId())
.update();
}

View File

@@ -35,7 +35,7 @@ import com.sdm.common.feign.impl.system.SysUserFeignClientImpl;
import com.sdm.common.utils.RandomUtil;
import com.sdm.common.utils.SystemOperate;
import com.sdm.common.utils.excel.ExcelUtil;
import com.sdm.project.bo.TaskOperate;
import com.sdm.project.bo.ExportOperate;
import com.sdm.project.common.MemberTypeEnum;
import com.sdm.project.common.RunPerformanceStatusEnum;
import com.sdm.project.common.TaskExeStatusEnum;
@@ -59,7 +59,6 @@ import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.MapUtils;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.ss.formula.functions.T;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -68,11 +67,8 @@ import org.springframework.transaction.interceptor.TransactionAspectSupport;
import javax.annotation.Resource;
import java.io.File;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.concurrent.atomic.AtomicReference;
import java.util.stream.Collectors;
import java.util.stream.Stream;
@@ -129,7 +125,7 @@ public class TaskServiceImpl implements ITaskService {
private ISimulationPerformanceExtraService simulationPerformanceExtraService;
@Autowired
private TaskOperate taskOperate;
private ExportOperate exportOperate;
private static final String NODE_NAME_KEY = "nodeName";
@@ -2832,20 +2828,72 @@ public class TaskServiceImpl implements ITaskService {
log.error("exportTaskByScript未查询到任务1");
return SdmResponse.success(new ArrayList<>());
} else {
JSONObject jsonObject = (JSONObject) response.getData();
List<ExportExcelFormat> excelHeaders = req.getExcelHeaders();
TaskExportExcelParam params = req.getParams();
TaskExportExcelFormat taskExportExcelFormat = new TaskExportExcelFormat();
taskExportExcelFormat.setExcelHeaders(excelHeaders);
taskExportExcelFormat.setParams(params);
String taskFileName = taskOperate.convertTaskToFile(jsonObject.toJSONString(), JSON.toJSONString(taskExportExcelFormat));
String taskFileName = exportOperate.convertToFile(JSON.toJSONString(response), JSON.toJSONString(taskExportExcelFormat));
File file = new File(taskFileName);
if(!file.exists()) {
response = SdmResponse.failed("分析项库文件不存在");
}
else {
response = SdmResponse.failed("任务文件不存在");
}else {
String taskSaveName = "task_" + RandomUtil.generateString(12) + ".xlsx";
SystemOperate.outputHttpFileStream(httpServletResponse, taskFileName, taskSaveName);
file.delete();
}
}
return response;
}
@Override
public SdmResponse exportRunByScript(HttpServletResponse httpServletResponse, SpdmAnalysisRunListReq req) {
req.setCurrent(1);
req.setSize(10000);
SdmResponse response = analysisRunList(req);
if (ObjectUtils.isEmpty(response)) {
log.error("exportRunByScript未查询到任务1");
return SdmResponse.success(new ArrayList<>());
} else {
List<ExportExcelFormat> excelHeaders = req.getExcelHeaders();
TaskExportExcelParam params = req.getParams();
TaskExportExcelFormat taskExportExcelFormat = new TaskExportExcelFormat();
taskExportExcelFormat.setExcelHeaders(excelHeaders);
taskExportExcelFormat.setParams(params);
String runFileName = exportOperate.convertToFile(JSON.toJSONString(response), JSON.toJSONString(taskExportExcelFormat));
File file = new File(runFileName);
if(!file.exists()) {
response = SdmResponse.failed("算例文件不存在");
}else {
String taskSaveName = "run_" + RandomUtil.generateString(12) + ".xlsx";
SystemOperate.outputHttpFileStream(httpServletResponse, runFileName, taskSaveName);
// file.delete();
}
}
return response;
}
@Override
public SdmResponse exportPerformanceByScript(HttpServletResponse httpServletResponse, SpdmAnalysisPerformanceListReq req) {
req.setCurrent(1);
req.setSize(10000);
SdmResponse response = analysisPerformanceList(req);
if (ObjectUtils.isEmpty(response)) {
log.error("exportRunByScript未查询到任务1");
return SdmResponse.success(new ArrayList<>());
} else {
List<ExportExcelFormat> excelHeaders = req.getExcelHeaders();
TaskExportExcelParam params = req.getParams();
TaskExportExcelFormat taskExportExcelFormat = new TaskExportExcelFormat();
taskExportExcelFormat.setExcelHeaders(excelHeaders);
taskExportExcelFormat.setParams(params);
String performanceFileName = exportOperate.convertToFile(JSON.toJSONString(response), JSON.toJSONString(taskExportExcelFormat));
File file = new File(performanceFileName);
if(!file.exists()) {
response = SdmResponse.failed("指标文件不存在");
}else {
String taskSaveName = "performance_" + RandomUtil.generateString(12) + ".xlsx";
SystemOperate.outputHttpFileStream(httpServletResponse, performanceFileName, taskSaveName);
// file.delete();
}
}