diff --git a/src/main/java/com/xdap/self_development/controller/TemplateController.java b/src/main/java/com/xdap/self_development/controller/TemplateController.java index 91dfe63..3de6f38 100644 --- a/src/main/java/com/xdap/self_development/controller/TemplateController.java +++ b/src/main/java/com/xdap/self_development/controller/TemplateController.java @@ -16,10 +16,7 @@ import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; -import javax.validation.constraints.NotBlank; import java.util.List; -import java.util.Map; -import java.util.Objects; @Slf4j @RestController @@ -120,4 +117,10 @@ public class TemplateController { } templateService.exportTemplate(form, response); } + + // 导出所有模板 + @GetMapping("/exportMultiple") + public void exportMultipleTemplates(HttpServletResponse response) { + templateService.exportMultipleTemplates(response); + } } diff --git a/src/main/java/com/xdap/self_development/controller/form/ApprovalPersonForm.java b/src/main/java/com/xdap/self_development/controller/form/ApprovalPersonForm.java index bff76d5..72f2b2c 100644 --- a/src/main/java/com/xdap/self_development/controller/form/ApprovalPersonForm.java +++ b/src/main/java/com/xdap/self_development/controller/form/ApprovalPersonForm.java @@ -2,6 +2,7 @@ package com.xdap.self_development.controller.form; import lombok.Data; +import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotEmpty; import java.util.List; @@ -9,7 +10,8 @@ import java.util.List; public class ApprovalPersonForm { @NotEmpty(message = "报告不能为空") private String reportId; - + @NotBlank(message = "流程标题不能为空") + private String processTitle; @NotEmpty(message = "校对人员不能为空") private List proofreadUsers; @NotEmpty(message = "审核人员不能为空") diff --git a/src/main/java/com/xdap/self_development/controller/form/ExportTemplateForm.java b/src/main/java/com/xdap/self_development/controller/form/ExportTemplateForm.java index e90212b..a46f7d9 100644 --- a/src/main/java/com/xdap/self_development/controller/form/ExportTemplateForm.java +++ b/src/main/java/com/xdap/self_development/controller/form/ExportTemplateForm.java @@ -2,13 +2,8 @@ package com.xdap.self_development.controller.form; import lombok.Data; -import javax.validation.constraints.NotBlank; -import javax.validation.constraints.NotNull; - @Data public class ExportTemplateForm { - @NotBlank(message = "请选择模板") private String templateRowId; - @NotNull(message = "请选择是否下载空模板") private boolean templateEmpty; } diff --git a/src/main/java/com/xdap/self_development/controller/form/SaveBenchmarkingReportForm.java b/src/main/java/com/xdap/self_development/controller/form/SaveBenchmarkingReportForm.java index 30ec110..d4aebe0 100644 --- a/src/main/java/com/xdap/self_development/controller/form/SaveBenchmarkingReportForm.java +++ b/src/main/java/com/xdap/self_development/controller/form/SaveBenchmarkingReportForm.java @@ -27,4 +27,5 @@ public class SaveBenchmarkingReportForm { @NotBlank(message = "发起人不能为空") private String userId; private String fileUrl; + private String fileName; } diff --git a/src/main/java/com/xdap/self_development/pojo/BenchmarkingReport.java b/src/main/java/com/xdap/self_development/pojo/BenchmarkingReport.java index 7ce44b8..e11e4c2 100644 --- a/src/main/java/com/xdap/self_development/pojo/BenchmarkingReport.java +++ b/src/main/java/com/xdap/self_development/pojo/BenchmarkingReport.java @@ -40,5 +40,6 @@ public class BenchmarkingReport extends MpaasBasePojo { @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Timestamp uploadTime; private String filePath; + private String fileName; private String status; } diff --git a/src/main/java/com/xdap/self_development/pojo/Template.java b/src/main/java/com/xdap/self_development/pojo/Template.java index 4ad9228..653aad2 100644 --- a/src/main/java/com/xdap/self_development/pojo/Template.java +++ b/src/main/java/com/xdap/self_development/pojo/Template.java @@ -10,8 +10,7 @@ import lombok.NoArgsConstructor; import java.sql.Timestamp; @SQLQuery(value = { - @SQL(view = "getLatestTemplateOrder", - sql = "SELECT ranked.order_num, ranked.id, ranked.template_name, ranked.version, ranked.status , ranked.created_time, ranked.published_time, xu.username AS \"createBy\" FROM ( SELECT t.*, ROW_NUMBER() OVER (PARTITION BY template_name ORDER BY CASE WHEN status = 'COMPLETE' THEN 1 WHEN status = 'APPROVING' THEN 2 ELSE 3 END, version DESC) AS rn FROM ( SELECT DISTINCT id, template_name, version, status, created_time , published_time, order_num, create_by FROM yfsjglpt_model_template WHERE status IN ('COMPLETE', 'DRAFT', 'APPROVING') ) t ) ranked LEFT JOIN xdap_users xu ON xu.id = ranked.create_by WHERE rn = 1 ORDER BY CASE status WHEN 'COMPLETE' THEN 1 WHEN 'APPROVING' THEN 2 WHEN 'DRAFT' THEN 3 WHEN 'RETURNED' THEN 4 WHEN 'REJECTED' THEN 5 ELSE 6 END ASC, ranked.order_num DESC"), + // 查找每个模板的最新版本并且优先级按照已发布、审核中、草稿状态转变(只有这三种状态) @SQL(view = "getLatestTemplate", sql = "SELECT ROW_NUMBER() OVER (ORDER BY CASE ranked.status WHEN 'COMPLETE' THEN 1 WHEN 'APPROVING' THEN 2 WHEN 'DRAFT' THEN 3 WHEN 'RETURNED' THEN 4 WHEN 'REJECTED' THEN 5 ELSE 6 END ASC, ranked.order_num DESC) AS order_num, ranked.id, ranked.template_name, ranked.version , ranked.status, ranked.created_time, ranked.published_time, xu.username AS \"createBy\" FROM ( SELECT t.*, ROW_NUMBER() OVER (PARTITION BY template_name ORDER BY CASE WHEN status = 'COMPLETE' THEN 1 WHEN status = 'APPROVING' THEN 2 ELSE 3 END, version DESC) AS rn FROM yfsjglpt_model_template t WHERE status IN ('COMPLETE', 'DRAFT', 'APPROVING') ) ranked LEFT JOIN xdap_users xu ON xu.id = ranked.create_by WHERE rn = 1 ORDER BY CASE ranked.status WHEN 'COMPLETE' THEN 1 WHEN 'APPROVING' THEN 2 WHEN 'DRAFT' THEN 3 WHEN 'RETURNED' THEN 4 WHEN 'REJECTED' THEN 5 ELSE 6 END ASC, ranked.order_num DESC" diff --git a/src/main/java/com/xdap/self_development/pojo/view/TodoAndReportListView.java b/src/main/java/com/xdap/self_development/pojo/view/TodoAndReportListView.java index a69b92a..0400eda 100644 --- a/src/main/java/com/xdap/self_development/pojo/view/TodoAndReportListView.java +++ b/src/main/java/com/xdap/self_development/pojo/view/TodoAndReportListView.java @@ -11,7 +11,7 @@ import java.util.List; @SQLQuery(value = { @SQL(view = "getAllReportApprovalList", - sql = "SELECT af.id AS \"flowId\", r.id AS \"reportId\", r.title AS \"title\", af.flow_status AS \"status\", af.create_by AS \"createBy\" , xu.username AS \"username\", af.created_time AS \"createdTime\" , CASE WHEN current_node = 'PROOFREAD' THEN proofread_users WHEN current_node = 'REVIEW' THEN review_users WHEN current_node = 'COUNTERSIGN' THEN countersign_users WHEN current_node = 'APPROVE' THEN approve_users END AS current_users FROM yfsjglpt_model_approval_flow af JOIN yfsjglpt_model_benchmarking_report r ON af.template_id = r.id LEFT JOIN xdap_users xu ON xu.id = af.create_by WHERE af.flow_type = 2 AND r.title LIKE CONCAT('%', #title, '%') AND af.flow_status LIKE CONCAT('%', #status, '%') AND af.created_time LIKE CONCAT('%', #createdTime, '%') AND xu.username LIKE CONCAT('%', #username, '%') ORDER BY CASE af.flow_status WHEN 'COMPLETE' THEN 1 WHEN 'APPROVING' THEN 2 WHEN 'DRAFT' THEN 3 WHEN 'REJECTED' THEN 4 ELSE 5 END ASC") + sql = "SELECT af.id AS \"flowId\", r.id AS \"reportId\", r.title AS \"title\", af.flow_status AS \"status\", af.create_by AS \"createBy\" , xu.username AS \"username\", af.created_time AS \"createdTime\" , CASE WHEN current_node = 'PROOFREAD' THEN proofread_users WHEN current_node = 'REVIEW' THEN review_users WHEN current_node = 'COUNTERSIGN' THEN countersign_users WHEN current_node = 'APPROVE' THEN approve_users END AS current_users FROM yfsjglpt_model_approval_flow af JOIN yfsjglpt_model_benchmarking_report r ON af.template_id = r.id LEFT JOIN xdap_users xu ON xu.id = af.create_by WHERE af.flow_type = 2 AND r.title LIKE CONCAT('%', #title, '%') AND af.flow_status LIKE CONCAT('%', #status, '%') AND af.created_time LIKE CONCAT('%', #createdTime, '%') AND xu.username LIKE CONCAT('%', #username, '%') ORDER BY CASE af.flow_status WHEN 'COMPLETE' THEN 1 WHEN 'APPROVING' THEN 2 WHEN 'DRAFT' THEN 3 WHEN 'REJECTED' THEN 4 ELSE 5 END ASC, af.created_time DESC") }) @Data public class TodoAndReportListView { diff --git a/src/main/java/com/xdap/self_development/pojo/view/TodoAndReportView.java b/src/main/java/com/xdap/self_development/pojo/view/TodoAndReportView.java index 45975c9..948f45a 100644 --- a/src/main/java/com/xdap/self_development/pojo/view/TodoAndReportView.java +++ b/src/main/java/com/xdap/self_development/pojo/view/TodoAndReportView.java @@ -32,5 +32,6 @@ public class TodoAndReportView { @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Timestamp uploadTime; private String filePath; + private String fileName; private String status; } diff --git a/src/main/java/com/xdap/self_development/service/TemplateService.java b/src/main/java/com/xdap/self_development/service/TemplateService.java index 1ec3c3b..37434fb 100644 --- a/src/main/java/com/xdap/self_development/service/TemplateService.java +++ b/src/main/java/com/xdap/self_development/service/TemplateService.java @@ -8,7 +8,6 @@ import com.xdap.self_development.pojo.Template; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletResponse; -import javax.validation.constraints.NotBlank; import java.util.List; public interface TemplateService { @@ -25,7 +24,8 @@ public interface TemplateService { void exportTemplate(ExportTemplateForm form, HttpServletResponse response); + void exportMultipleTemplates(HttpServletResponse response); + List