1、数据查询导出
2、修改报工接口
This commit is contained in:
@@ -113,6 +113,11 @@
|
||||
<!-- </dependency>-->
|
||||
|
||||
|
||||
<!-- <dependency>-->
|
||||
<!-- <groupId>org.postgresql</groupId>-->
|
||||
<!-- <artifactId>postgresql</artifactId>-->
|
||||
<!-- <version>42.2.5</version>-->
|
||||
<!-- </dependency>-->
|
||||
|
||||
</dependencies>
|
||||
<dependencyManagement>
|
||||
|
||||
@@ -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("保存分析项库文件失败");
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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;
|
||||
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user