修改:对标报告部分显示问题

This commit is contained in:
zjh 2025-12-09 14:58:13 +08:00
parent a11955bbcc
commit 4b90ca9a9a
5 changed files with 51 additions and 38 deletions

View File

@ -1,8 +1,6 @@
package com.xdap.self_development.pojo;
import com.definesys.mpaas.query.annotation.RowID;
import com.definesys.mpaas.query.annotation.RowIDType;
import com.definesys.mpaas.query.annotation.Table;
import com.definesys.mpaas.query.annotation.*;
import com.definesys.mpaas.query.model.MpaasBasePojo;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
@ -11,6 +9,10 @@ import lombok.NoArgsConstructor;
import java.sql.Timestamp;
@SQLQuery(value = {
@SQL(view = "getReportById",
sql = "SELECT ymbr.id, ymbr.title, ymbr.manufacturer_name, ymbr.model_name, ymbr.module , ymbr.manufacturer_abbreviation, ymbr.model_abbreviation, ymbr.product_number, ymbr.plate, ymbr.platform , ymbr.market_segment, ymbr.project_name, ymbr.project_number, ymbr.upload_time, ymbr.file_path , ymbr.status, xu.username AS create_by FROM yfsjglpt_model_benchmarking_report ymbr LEFT JOIN xdap_users xu ON xu.id = ymbr.create_by where ymbr.id = #reportId")
})
@EqualsAndHashCode(callSuper = true)
@Data
@Table("yfsjglpt_model_benchmarking_report")

View File

@ -12,7 +12,7 @@ import java.sql.Timestamp;
@SQLQuery(value = {
// 查找每个模板的最新版本并且优先级按照已发布审核中草稿状态转变只有这三种状态
@SQL(view = "getLatestTemplate",
sql = "SELECT * 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 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"
sql = "SELECT 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 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"
),
// 获取所有模板的最新版本号包括所有状态
@SQL(view = "getNewTemplate",

View File

@ -232,7 +232,10 @@ public class BenchmarkingReportServiceImpl implements BenchmarkingReportService
@Override
public BenchmarkingReport getReportDetail(String reportId) {
return bd.getBusinessDatabase().eq("id", reportId)
return bd.getBusinessDatabase()
.viewQueryMode(true)
.view("getReportById")
.setVar("reportId", reportId)
.doQueryFirst(BenchmarkingReport.class);
}

View File

@ -1,6 +1,9 @@
package com.xdap.self_development.service.impl;
import com.definesys.mpaas.query.db.PageQueryResult;
import com.xdap.api.moudle.user.vo.LoginUserVo;
import com.xdap.runtime.service.RuntimeAppContextService;
import com.xdap.runtime.service.RuntimeUserService;
import com.xdap.self_development.config.BusinessDatabase;
import com.xdap.self_development.controller.form.ParameterForm;
import com.xdap.self_development.controller.form.ParameterPageForm;
@ -35,6 +38,8 @@ public class ParameterServiceImpl implements ParameterService {
private BusinessDatabase bd;
@Resource
private ModelRoleService modelRoleService;
@Resource
private RuntimeAppContextService runtimeAppContextService;
@Override
public PageQueryResult<Parameter> getParameterByCondition(ParameterPageForm form) {
@ -46,7 +51,16 @@ public class ParameterServiceImpl implements ParameterService {
throw new CommonException("模板未找到");
}
//todo 获取指定子系统下的用户的权限权限应该为:参数的 parameterNumber
//todo 假定子系统名和模板名一致
// String currentUserId = runtimeAppContextService.getCurrentUserId();
// List<String> ids = modelRoleService.selectPersByUser(currentUserId).stream()
// .filter(view -> Objects.equals(view.getSubsystem(), template.getTemplateName()))
// .map(MenuParamView::getParameterId)
// .collect(Collectors.toList());
//
// if (ids.isEmpty()) {
// ids = new ArrayList<>();
// }
return bd.getBusinessDatabase()
.viewQueryMode(true)
@ -196,10 +210,7 @@ public class ParameterServiceImpl implements ParameterService {
Template newTemplate)
{
Map<Integer, Parameter> parameterMap = createParameterMap(existingParameters);
// if (!existingParameters.isEmpty()) {
// // 清除原来的关联关系
// bd.getBusinessDatabase().eq("template_id", baseTemplate.getId()).doDelete(TemplateAndParameter.class);
// }
List<Parameter> newParameters = new ArrayList<>();
List<RevisionRecord> revisionRecords = new ArrayList<>();
@ -209,8 +220,6 @@ public class ParameterServiceImpl implements ParameterService {
parameterForm.setOperation("");
}
ParameterOperation operation = ParameterOperation.fromCode(parameterForm.getOperation());
switch (operation) {
case INSERT:
handleInsertOperation(parameterForm, newTemplate, newParameters, revisionRecords, baseTemplate);
@ -259,33 +268,25 @@ public class ParameterServiceImpl implements ParameterService {
) {
Parameter newParameter = new Parameter();
BeanUtils.copyProperties(form, newParameter);
if (form.getParameterNumber() == null ) {
Parameter parameter = bd.getBusinessDatabase()
.viewQueryMode(true)
.view("selectMaxNumber")
.setVar("templateId", baseTemplate.getId())
.doQueryFirst(Parameter.class);
if (parameter == null || parameter.getMaxNumber() == null) {
int maxNumber = newParameters.stream()
.mapToInt(Parameter::getParameterNumber)
.max()
.orElse(0);
newParameter.setParameterNumber(maxNumber + 1);
} else {
int i = parameter.getMaxNumber() + 1;
newParameter.setParameterNumber(i);
}
} else {
List<Parameter> parameters = bd.getBusinessDatabase()
Parameter parameter = bd.getBusinessDatabase()
.viewQueryMode(true)
.view("selectParametersByTemplateId")
.view("selectMaxNumber")
.setVar("templateId", baseTemplate.getId())
.eq("parameter_number", newParameter.getParameterNumber())
.doQuery(Parameter.class);
if (parameters != null && !parameters.isEmpty()) {
throw new CommonException("参数编号重复");
}
.doQueryFirst(Parameter.class);
int maxNum = newParameters.stream()
.mapToInt(Parameter::getParameterNumber)
.max()
.orElse(0);
if (parameter == null || parameter.getMaxNumber() == null) {
newParameter.setParameterNumber(maxNum + 1);
} else {
int i = Math.max(maxNum + 1, parameter.getMaxNumber() + 1);
newParameter.setParameterNumber(i);
}
newParameter.setId(null);
bd.getBusinessDatabase().doInsert(newParameter);
newParameters.add(newParameter);
revisionRecords.add(new RevisionRecord(
@ -418,8 +419,16 @@ public class ParameterServiceImpl implements ParameterService {
* 保存所有数据
*/
private void saveAllData(Template newTemplate, ParameterProcessingResult result) {
List<String> parameterIds = bd.getBusinessDatabase()
.eq("template_id", newTemplate.getId())
.doQuery(TemplateAndParameter.class).stream()
.map(TemplateAndParameter::getParameterId)
.collect(Collectors.toList());
// 创建并保存模板参数关联
List<TemplateAndParameter> templateAndParameters = result.getNewParameters().stream()
List<TemplateAndParameter> templateAndParameters =
result.getNewParameters().stream()
.filter(parameter -> !parameterIds.contains(parameter.getId()))
.map(parameter -> createTemplateAndParameter(newTemplate.getId(), parameter.getId()))
.collect(Collectors.toList());
bd.getBusinessDatabase().doBatchInsert(templateAndParameters);

View File

@ -38,7 +38,6 @@ public class TemplateServiceImpl implements TemplateService {
@Override
public PageQueryResult<Template> getTemplateByCondition(TemplatePageForm form) {
// TODO: 将用户id转为用户名
return bd.getBusinessDatabase()
.viewQueryMode(true)
.view("getLatestTemplate")