修改:模板问题修改

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.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.List;
@RestController
@RequestMapping("/custom/benchmark")
@ -73,7 +72,7 @@ public class BenchmarkingReportController {
return Response.ok().setMessage("重新提交成功");
}
// 筛选对标报告及待办
// 筛选对标报告
@PostMapping("/getReportAndTodoByCondition")
public Response getBenchmarkingReportByCondition(
@Valid @RequestBody BenchmarkingReportPageForm form,
@ -89,6 +88,20 @@ public class BenchmarkingReportController {
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")
public Response handleReportApproval(

View File

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

View File

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

View File

@ -37,12 +37,14 @@ public class Template extends MpaasBasePojo {
private Timestamp publishedTime;
private Long orderNum;
private String createBy;
private String returnNum;
private Integer returnNum;
@Column(type = ColumnType.CALCULATE)
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.version = version;
this.status = status;
@ -50,5 +52,6 @@ public class Template extends MpaasBasePojo {
this.publishedTime = publishedTime;
this.createBy = createBy;
this.orderNum = orderNum;
this.returnNum = returnNum;
}
}

View File

@ -6,7 +6,7 @@ import lombok.Data;
@SQLQuery(value = {
@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
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.pojo.BenchmarkingReport;
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 org.springframework.web.multipart.MultipartFile;
import javax.validation.Valid;
import javax.validation.constraints.NotBlank;
import java.util.List;
public interface BenchmarkingReportService {
PageQueryResult<TodoAndReportView> getBenchmarkingReportByCondition(@Valid BenchmarkingReportPageForm form);
PageQueryResult<TodoAndReportView> getBenchmarkingReportByCondition(
@Valid BenchmarkingReportPageForm form);
void insertReport(@Valid SaveBenchmarkingReportForm form);
@ -27,4 +28,6 @@ public interface BenchmarkingReportService {
ApprovalFlowView getReportProcess(@NotBlank String flowId);
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 javax.validation.Valid;
import java.util.List;
public interface TemplateApprovalService {
String startApproval(StartApprovalRequest request);
PageQueryResult<TodoAndTemplateView> getApprovalList(ApprovalListForm form);
void handleApproval(HandleApprovalRequest request);
PageQueryResult<TemplateChangeView> getTemplateChanges(@Valid ApprovalAndParameterForm form);
ApprovalFlowView getApprovalProcess(@Valid ApprovalFlowForm form);
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.view.ApprovalFlowView;
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.service.BenchmarkingReportService;
import com.xdap.self_development.service.XdapDeptUsersService;
@ -100,6 +101,36 @@ public class BenchmarkingReportServiceImpl implements BenchmarkingReportService
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
public PageQueryResult<TodoAndReportView> getBenchmarkingReportByCondition(BenchmarkingReportPageForm form) {
PageQueryResult<TodoAndReportView> result = bd.getBusinessDatabase()

View File

@ -145,25 +145,14 @@ public class ParameterServiceImpl implements ParameterService {
Timestamp.valueOf(LocalDateTime.now()),
null,
userId,
baseTemplate.getOrderNum()
baseTemplate.getOrderNum(),
0
);
bd.getBusinessDatabase().doInsert(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
public List<ParametersView> getAllParameters(String subsystem) {
return bd.getBusinessDatabase()

View File

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

View File

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