修改:模板问题修改

This commit is contained in:
zjh 2025-12-22 13:55:51 +08:00
parent 03a6383807
commit bc121dde85
12 changed files with 100 additions and 42 deletions

View File

@ -16,7 +16,6 @@ import javax.annotation.Resource;
import javax.validation.Valid; import javax.validation.Valid;
import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
import java.util.List;
@RestController @RestController
@RequestMapping("/custom/benchmark") @RequestMapping("/custom/benchmark")
@ -73,7 +72,7 @@ public class BenchmarkingReportController {
return Response.ok().setMessage("重新提交成功"); return Response.ok().setMessage("重新提交成功");
} }
// 筛选对标报告及待办 // 筛选对标报告
@PostMapping("/getReportAndTodoByCondition") @PostMapping("/getReportAndTodoByCondition")
public Response getBenchmarkingReportByCondition( public Response getBenchmarkingReportByCondition(
@Valid @RequestBody BenchmarkingReportPageForm form, @Valid @RequestBody BenchmarkingReportPageForm form,
@ -89,6 +88,20 @@ public class BenchmarkingReportController {
return Response.ok().data(list); return Response.ok().data(list);
} }
// 获取流程列表
@PostMapping("/getApprovalList")
public Response getApprovalList(
@Valid @RequestBody ApprovalListForm form,
BindingResult bindingResult
) {
if (bindingResult.hasErrors()) {
bindingResult.getFieldErrors().forEach(error -> {
throw new CommonException(error.getDefaultMessage());
});
}
return Response.ok().data(benchmarkingReportService.getApprovalList(form));
}
// 处理审批 // 处理审批
@PostMapping("/handleReportApproval") @PostMapping("/handleReportApproval")
public Response handleReportApproval( public Response handleReportApproval(

View File

@ -19,7 +19,7 @@ public class ApprovalFlow extends MpaasBasePojo {
private String templateId; private String templateId;
private String currentNode; // 节点PROOFREAD, REVIEW, COUNTERSIGN, APPROVE private String currentNode; // 节点PROOFREAD, REVIEW, COUNTERSIGN, APPROVE
private String flowStatus; //DRAFT(草稿)APPROVING审批中COMPLETE(已完成)RETURNED(已撤回)REJECTED(已拒绝) private String flowStatus; //DRAFT(草稿)APPROVING审批中COMPLETE(已完成)RETURNED(已撤回)REJECTED(已拒绝)
private String returnNum; private Integer returnNum;
private String proofreadUsers; // 校对人员 private String proofreadUsers; // 校对人员
private String reviewUsers; // 审核人员 private String reviewUsers; // 审核人员

View File

@ -28,13 +28,13 @@ public class RevisionRecord extends MpaasBasePojo {
private Timestamp createTime; private Timestamp createTime;
private String parameterId; private String parameterId;
private String returnNum; private Integer returnNum;
public RevisionRecord(String templateName, Integer version, public RevisionRecord(String templateName, Integer version,
Integer parameterNumber, String modifyDetails, Integer parameterNumber, String modifyDetails,
String templateId, String preTemplateId, String templateId, String preTemplateId,
Timestamp createTime, String parameterId, Timestamp createTime, String parameterId,
String returnNum) { Integer returnNum) {
this.templateName = templateName; this.templateName = templateName;
this.version = version; this.version = version;
this.parameterNumber = parameterNumber; this.parameterNumber = parameterNumber;

View File

@ -37,12 +37,14 @@ public class Template extends MpaasBasePojo {
private Timestamp publishedTime; private Timestamp publishedTime;
private Long orderNum; private Long orderNum;
private String createBy; private String createBy;
private String returnNum; private Integer returnNum;
@Column(type = ColumnType.CALCULATE) @Column(type = ColumnType.CALCULATE)
private Integer maxOrder; private Integer maxOrder;
public Template(String templateName, Integer version, String status, Timestamp createdTime, Timestamp publishedTime, String createBy, Long orderNum) { public Template(String templateName, Integer version, String status,
Timestamp createdTime, Timestamp publishedTime,
String createBy, Long orderNum, Integer returnNum) {
this.templateName = templateName; this.templateName = templateName;
this.version = version; this.version = version;
this.status = status; this.status = status;
@ -50,5 +52,6 @@ public class Template extends MpaasBasePojo {
this.publishedTime = publishedTime; this.publishedTime = publishedTime;
this.createBy = createBy; this.createBy = createBy;
this.orderNum = orderNum; this.orderNum = orderNum;
this.returnNum = returnNum;
} }
} }

View File

@ -6,7 +6,7 @@ import lombok.Data;
@SQLQuery(value = { @SQLQuery(value = {
@SQL(view = "getParameterAndChange", @SQL(view = "getParameterAndChange",
sql = "SELECT p.*, r.pre_template_id, r.modify_details FROM ( SELECT *, row_number() OVER (PARTITION BY parameter_id ORDER BY create_time DESC) AS rn FROM yfsjglpt_model_revision_record ) r LEFT JOIN yfsjglpt_model_parameter p ON r.parameter_id = p.id WHERE r.rn = 1 AND r.template_id = #templateId AND r.return_num <= #returnNum ORDER BY r.create_time DESC") sql = "SELECT * FROM ( SELECT p.*, r.pre_template_id, r.modify_details, r.create_time AS r_create_time , ROW_NUMBER() OVER (PARTITION BY r.template_id, r.parameter_id ORDER BY r.create_time DESC) AS rn FROM yfsjglpt_model_revision_record r LEFT JOIN yfsjglpt_model_parameter p ON r.parameter_id = p.id WHERE r.template_id = #templateId AND r.return_num <= #returnNum ) subquery WHERE rn = 1 ORDER BY subquery.r_create_time")
}) })
@Data @Data
public class TemplateChangeView { public class TemplateChangeView {

View File

@ -0,0 +1,28 @@
package com.xdap.self_development.pojo.view;
import com.definesys.mpaas.query.annotation.SQL;
import com.definesys.mpaas.query.annotation.SQLQuery;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.xdap.self_development.pojo.ApprovalXdapUsers;
import lombok.Data;
import java.sql.Timestamp;
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 t.status LIKE CONCAT('%', #status, '%') AND t.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")
})
@Data
public class TodoAndReportListView {
private String reportId;
private String flowId;
private String title;
private String status;
private String createBy;
private String currentUsers;
private String username;
private List<ApprovalXdapUsers> currentApprovers;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Timestamp createdTime;
}

View File

@ -4,15 +4,16 @@ import com.definesys.mpaas.query.db.PageQueryResult;
import com.xdap.self_development.controller.form.*; import com.xdap.self_development.controller.form.*;
import com.xdap.self_development.pojo.BenchmarkingReport; import com.xdap.self_development.pojo.BenchmarkingReport;
import com.xdap.self_development.pojo.view.ApprovalFlowView; import com.xdap.self_development.pojo.view.ApprovalFlowView;
import com.xdap.self_development.pojo.view.TodoAndReportListView;
import com.xdap.self_development.pojo.view.TodoAndReportView; import com.xdap.self_development.pojo.view.TodoAndReportView;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import javax.validation.Valid; import javax.validation.Valid;
import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotBlank;
import java.util.List;
public interface BenchmarkingReportService { public interface BenchmarkingReportService {
PageQueryResult<TodoAndReportView> getBenchmarkingReportByCondition(@Valid BenchmarkingReportPageForm form); PageQueryResult<TodoAndReportView> getBenchmarkingReportByCondition(
@Valid BenchmarkingReportPageForm form);
void insertReport(@Valid SaveBenchmarkingReportForm form); void insertReport(@Valid SaveBenchmarkingReportForm form);
@ -27,4 +28,6 @@ public interface BenchmarkingReportService {
ApprovalFlowView getReportProcess(@NotBlank String flowId); ApprovalFlowView getReportProcess(@NotBlank String flowId);
String uploadFile(MultipartFile file, @NotBlank String createBy); String uploadFile(MultipartFile file, @NotBlank String createBy);
PageQueryResult<TodoAndReportListView> getApprovalList(@Valid ApprovalListForm form);
} }

View File

@ -7,13 +7,17 @@ import com.xdap.self_development.pojo.view.TemplateChangeView;
import com.xdap.self_development.pojo.view.TodoAndTemplateView; import com.xdap.self_development.pojo.view.TodoAndTemplateView;
import javax.validation.Valid; import javax.validation.Valid;
import java.util.List;
public interface TemplateApprovalService { public interface TemplateApprovalService {
String startApproval(StartApprovalRequest request); String startApproval(StartApprovalRequest request);
PageQueryResult<TodoAndTemplateView> getApprovalList(ApprovalListForm form); PageQueryResult<TodoAndTemplateView> getApprovalList(ApprovalListForm form);
void handleApproval(HandleApprovalRequest request); void handleApproval(HandleApprovalRequest request);
PageQueryResult<TemplateChangeView> getTemplateChanges(@Valid ApprovalAndParameterForm form); PageQueryResult<TemplateChangeView> getTemplateChanges(@Valid ApprovalAndParameterForm form);
ApprovalFlowView getApprovalProcess(@Valid ApprovalFlowForm form); ApprovalFlowView getApprovalProcess(@Valid ApprovalFlowForm form);
void handleReturn(@Valid HandleApprovalRequest request); void handleReturn(@Valid HandleApprovalRequest request);
} }

View File

@ -16,6 +16,7 @@ import com.xdap.self_development.feign.dto.UserTokenDT0;
import com.xdap.self_development.pojo.*; import com.xdap.self_development.pojo.*;
import com.xdap.self_development.pojo.view.ApprovalFlowView; import com.xdap.self_development.pojo.view.ApprovalFlowView;
import com.xdap.self_development.pojo.view.ApprovalNodeView; import com.xdap.self_development.pojo.view.ApprovalNodeView;
import com.xdap.self_development.pojo.view.TodoAndReportListView;
import com.xdap.self_development.pojo.view.TodoAndReportView; import com.xdap.self_development.pojo.view.TodoAndReportView;
import com.xdap.self_development.service.BenchmarkingReportService; import com.xdap.self_development.service.BenchmarkingReportService;
import com.xdap.self_development.service.XdapDeptUsersService; import com.xdap.self_development.service.XdapDeptUsersService;
@ -100,6 +101,36 @@ public class BenchmarkingReportServiceImpl implements BenchmarkingReportService
return fileUploadDTO.getData().getUrl() +"&download=download&token=" + tokenXdap; return fileUploadDTO.getData().getUrl() +"&download=download&token=" + tokenXdap;
} }
@Override
public PageQueryResult<TodoAndReportListView> getApprovalList(ApprovalListForm form) {
PageQueryResult<TodoAndReportListView> result = bd.getBusinessDatabase()
.viewQueryMode(true)
.view("getAllReportApprovalList")
.setVar("title", form.getTemplateName())
.setVar("status", form.getStatus())
.setVar("createdTime", form.getCreateDate() == null ? "" : form.getCreateDate())
.setVar("username", form.getUsername())
.doPageQuery(form.getPageNumber(), form.getPageSize(), TodoAndReportListView.class);
setApprovalCurrentUser(result);
return result;
}
private void setApprovalCurrentUser(PageQueryResult<TodoAndReportListView> result) {
result.getResult().forEach(item -> {
if (item.getCurrentUsers() == null || item.getCurrentUsers().isEmpty()) {
item.setCurrentApprovers(null);
item.setCurrentUsers(null);
} else {
List<String> userIds = JSON.parseArray(item.getCurrentUsers()).toJavaList(String.class);
List<ApprovalXdapUsers> approvalXdapUsers = bd.getBusinessDatabase()
.in("id", userIds)
.doQuery(ApprovalXdapUsers.class);
item.setCurrentApprovers(approvalXdapUsers);
item.setCurrentUsers(null);
}
});
}
@Override @Override
public PageQueryResult<TodoAndReportView> getBenchmarkingReportByCondition(BenchmarkingReportPageForm form) { public PageQueryResult<TodoAndReportView> getBenchmarkingReportByCondition(BenchmarkingReportPageForm form) {
PageQueryResult<TodoAndReportView> result = bd.getBusinessDatabase() PageQueryResult<TodoAndReportView> result = bd.getBusinessDatabase()

View File

@ -145,25 +145,14 @@ public class ParameterServiceImpl implements ParameterService {
Timestamp.valueOf(LocalDateTime.now()), Timestamp.valueOf(LocalDateTime.now()),
null, null,
userId, userId,
baseTemplate.getOrderNum() baseTemplate.getOrderNum(),
0
); );
bd.getBusinessDatabase().doInsert(newTemplate); bd.getBusinessDatabase().doInsert(newTemplate);
return newTemplate; return newTemplate;
} }
} }
private Integer getMaxOrder() {
Template template = bd.getBusinessDatabase()
.viewQueryMode(true)
.view("getMaxOrder")
.doQueryFirst(Template.class);
if (template != null) {
return template.getMaxOrder() + 1;
} else {
return 1;
}
}
@Override @Override
public List<ParametersView> getAllParameters(String subsystem) { public List<ParametersView> getAllParameters(String subsystem) {
return bd.getBusinessDatabase() return bd.getBusinessDatabase()

View File

@ -288,7 +288,7 @@ public class TemplateApprovalServiceImpl implements TemplateApprovalService {
} else { } else {
return bd.getBusinessDatabase() return bd.getBusinessDatabase()
.viewQueryMode(true) .viewQueryMode(true)
.view("getParameterAndChangeByApprovalId") .view("getParameterAndChange")
.setVar("templateId", form.getTemplateId()) .setVar("templateId", form.getTemplateId())
.setVar("returnNum", approvalFlow.getReturnNum()) .setVar("returnNum", approvalFlow.getReturnNum())
.doPageQuery(form.getPageNumber(), form.getPageSize(), TemplateChangeView.class); .doPageQuery(form.getPageNumber(), form.getPageSize(), TemplateChangeView.class);

View File

@ -65,7 +65,7 @@ public class TemplateServiceImpl implements TemplateService {
// 创建新模板 // 创建新模板
Template newTemplate = new Template( Template newTemplate = new Template(
form.getTemplateName(), 1, "DRAFT", Timestamp.valueOf(LocalDateTime.now()), form.getTemplateName(), 1, "DRAFT", Timestamp.valueOf(LocalDateTime.now()),
null, form.getUserId(), System.currentTimeMillis() null, form.getUserId(), System.currentTimeMillis(), 0
); );
bd.getBusinessDatabase().doInsert(newTemplate); bd.getBusinessDatabase().doInsert(newTemplate);
@ -125,7 +125,7 @@ public class TemplateServiceImpl implements TemplateService {
Template newTemplate = new Template( Template newTemplate = new Template(
form.getTemplateName(), 1, "DRAFT", Timestamp.valueOf(LocalDateTime.now()), form.getTemplateName(), 1, "DRAFT", Timestamp.valueOf(LocalDateTime.now()),
null, form.getUserId(), System.currentTimeMillis() null, form.getUserId(), System.currentTimeMillis(), 0
); );
bd.getBusinessDatabase() bd.getBusinessDatabase()
@ -150,7 +150,6 @@ public class TemplateServiceImpl implements TemplateService {
MyResponse problems = MyResponse problems =
new MyResponse(false, new ArrayList<>(), new StringBuilder("已完成导入:无")); new MyResponse(false, new ArrayList<>(), new StringBuilder("已完成导入:无"));
Integer maxOrder = getMaxOrder();
try (InputStream inputStream = file.getInputStream()){ try (InputStream inputStream = file.getInputStream()){
EasyExcel.read( EasyExcel.read(
inputStream, inputStream,
@ -324,7 +323,7 @@ public class TemplateServiceImpl implements TemplateService {
default: default:
lastTemplate = new Template( lastTemplate = new Template(
templateName, lastTemplate.getVersion()+1, "DRAFT", templateName, lastTemplate.getVersion()+1, "DRAFT",
Timestamp.valueOf(LocalDateTime.now()), null, createBy, System.currentTimeMillis() Timestamp.valueOf(LocalDateTime.now()), null, createBy, System.currentTimeMillis(), 0
); );
bd.getBusinessDatabase() bd.getBusinessDatabase()
.doInsert(lastTemplate); .doInsert(lastTemplate);
@ -332,7 +331,7 @@ public class TemplateServiceImpl implements TemplateService {
} else { } else {
lastTemplate = new Template( lastTemplate = new Template(
templateName, 1, "DRAFT", Timestamp.valueOf(LocalDateTime.now()), templateName, 1, "DRAFT", Timestamp.valueOf(LocalDateTime.now()),
null, createBy, System.currentTimeMillis() null, createBy, System.currentTimeMillis(), 0
); );
bd.getBusinessDatabase() bd.getBusinessDatabase()
.doInsert(lastTemplate); .doInsert(lastTemplate);
@ -399,18 +398,6 @@ public class TemplateServiceImpl implements TemplateService {
return includeColumnFieldNames; return includeColumnFieldNames;
} }
private Integer getMaxOrder() {
Template template = bd.getBusinessDatabase()
.viewQueryMode(true)
.view("getMaxOrder")
.doQueryFirst(Template.class);
if (template != null && template.getMaxOrder() != null) {
return template.getMaxOrder() + 1;
} else {
return 1;
}
}
private void insertAndUpdateParameters( private void insertAndUpdateParameters(
List<Parameter> dataList, Template lastTemplate List<Parameter> dataList, Template lastTemplate
) { ) {