修改:常用部分树结构
This commit is contained in:
parent
b795c7a154
commit
019c52ba4f
@ -23,8 +23,8 @@ public class UserPermissionGetter {
|
||||
private RuntimeAppContextService runtimeAppContextService;
|
||||
|
||||
public String getCurrentUserId() {
|
||||
// String currentUserId = runtimeAppContextService.getCurrentUserId();
|
||||
return "zzy";
|
||||
// return runtimeAppContextService.getCurrentUserId();
|
||||
return "zjh";
|
||||
}
|
||||
|
||||
// 获取子系统下的参数权限
|
||||
|
||||
@ -72,10 +72,9 @@ public class TemplateController {
|
||||
@PostMapping("/import")
|
||||
public Response importTemplate(
|
||||
@RequestPart("file") MultipartFile file,
|
||||
@RequestPart(value = "templateRowId", required = false) String templateRowId,
|
||||
@RequestPart("createBy") String createBy
|
||||
@RequestPart(value = "templateRowId", required = false) String templateRowId
|
||||
) {
|
||||
MyResponse templateImportProblemView = templateService.importTemplate(file, templateRowId, createBy);
|
||||
MyResponse templateImportProblemView = templateService.importTemplate(file, templateRowId);
|
||||
if (templateImportProblemView.getFlag()) {
|
||||
return Response.error("导入异常").data(templateImportProblemView);
|
||||
} else {
|
||||
|
||||
@ -6,9 +6,6 @@ import javax.validation.constraints.NotBlank;
|
||||
|
||||
@Data
|
||||
public class ApprovalListForm {
|
||||
@NotBlank(message = "用户不能为空")
|
||||
private String userId;
|
||||
|
||||
private String templateName;
|
||||
private String username;
|
||||
private String createDate;
|
||||
|
||||
@ -8,7 +8,4 @@ import javax.validation.constraints.NotBlank;
|
||||
public class InsertTemplateForm {
|
||||
@NotBlank(message = "模板名不能为空")
|
||||
private String templateName;
|
||||
|
||||
@NotBlank(message = "创建者不能为空")
|
||||
private String createBy;
|
||||
}
|
||||
|
||||
@ -19,7 +19,5 @@ public class StartApprovalRequest {
|
||||
@NotEmpty(message = "批准人员不能为空")
|
||||
private List<String> approveUsers;
|
||||
|
||||
@NotBlank(message = "发起人不能为空")
|
||||
private String createBy;
|
||||
private String explanation;
|
||||
}
|
||||
@ -11,8 +11,6 @@ import java.util.List;
|
||||
public class UpdateParameterForm {
|
||||
@NotBlank(message = "模板不能为空")
|
||||
private String templateRowId;
|
||||
@NotBlank(message = "创建者不能为空")
|
||||
private String createBy;
|
||||
@Valid @NotEmpty(message = "请至少修改一项参数")
|
||||
private List<ParameterForm> parameterForms;
|
||||
}
|
||||
|
||||
@ -9,9 +9,6 @@ public class UpdateTemplateForm {
|
||||
@NotBlank(message = "模板名不能为空")
|
||||
private String templateName;
|
||||
|
||||
@NotBlank(message = "创建者不能为空")
|
||||
private String createBy;
|
||||
|
||||
@NotBlank(message = "请选择模板")
|
||||
private String templateRowId;
|
||||
}
|
||||
|
||||
@ -23,6 +23,7 @@ public class SheetDataListener implements ReadListener<Parameter> {
|
||||
private List<Parameter> cachedDataList;
|
||||
private String currentSheetName;
|
||||
MyResponse problems;
|
||||
Integer maxOrder;
|
||||
|
||||
// 用于存储表头
|
||||
private Set<String> actualHeaders = new HashSet<>();
|
||||
@ -34,13 +35,14 @@ public class SheetDataListener implements ReadListener<Parameter> {
|
||||
private boolean validSheet = false;
|
||||
|
||||
public SheetDataListener(TemplateService templateService,
|
||||
String templateRowId, String createBy, MyResponse problems) {
|
||||
String templateRowId, String createBy, MyResponse problems, Integer maxOrder) {
|
||||
this.templateService = templateService;
|
||||
this.templateRowId = templateRowId;
|
||||
this.createBy = createBy;
|
||||
this.cachedDataList = new ArrayList<>(BATCH_SIZE);
|
||||
this.problems = problems;
|
||||
this.requiredHeaders = getIncludeColumnFieldNames();
|
||||
this.maxOrder = maxOrder;
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -92,7 +94,8 @@ public class SheetDataListener implements ReadListener<Parameter> {
|
||||
currentSheetName,
|
||||
templateRowId,
|
||||
createBy,
|
||||
problems
|
||||
problems,
|
||||
maxOrder
|
||||
);
|
||||
cachedDataList.clear();
|
||||
}
|
||||
@ -134,6 +137,7 @@ public class SheetDataListener implements ReadListener<Parameter> {
|
||||
headerChecked = false;
|
||||
validSheet = false;
|
||||
actualHeaders.clear();
|
||||
maxOrder += 1;
|
||||
}
|
||||
|
||||
private static Set<String> getIncludeColumnFieldNames() {
|
||||
|
||||
@ -9,14 +9,16 @@ import lombok.EqualsAndHashCode;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
@SQLQuery(value = {
|
||||
@SQL(view = "selectParametersByTIdAndCreateBy",
|
||||
sql = "select p.* from yfsjglpt_model_parameter p left join yfsjglpt_model_parameter_and_template tap on p.id = tap.parameter_id where tap.template_id = #templateId and p.created_by = #createdBy"),
|
||||
@SQL(view = "selectParametersByTId",
|
||||
sql = "select p.* from yfsjglpt_model_parameter p left join yfsjglpt_model_parameter_and_template tap on p.id = tap.parameter_id where tap.template_id = #templateId"),
|
||||
@SQL(view = "getAllSubsystemAndPara",
|
||||
sql = "SELECT DISTINCT mp.subsystem_name, mp.parameter_name, mp.id, mp.parameter_type FROM yfsjglpt_model_parameter mp INNER JOIN yfsjglpt_model_parameter_and_template mpat ON mp.id = mpat.parameter_id INNER JOIN yfsjglpt_model_template mt ON mpat.template_id = mt.id INNER JOIN ( SELECT template_name, MAX(version) AS max_version FROM yfsjglpt_model_template WHERE status = 'COMPLETE' GROUP BY template_name ) latest ON mt.template_name = latest.template_name AND mt.version = latest.max_version WHERE mt.status = 'COMPLETE' ORDER BY mp.subsystem_name, mp.parameter_name, mp.id, mp.parameter_type"),
|
||||
sql = "SELECT DISTINCT mp.subsystem_name, mp.parameter_name, mp.id, mp.parameter_type, mt.order_num FROM yfsjglpt_model_parameter mp INNER JOIN yfsjglpt_model_parameter_and_template mpat ON mp.id = mpat.parameter_id INNER JOIN yfsjglpt_model_template mt ON mpat.template_id = mt.id INNER JOIN ( SELECT template_name, MAX(version) AS max_version FROM yfsjglpt_model_template WHERE status = 'COMPLETE' GROUP BY template_name ) latest ON mt.template_name = latest.template_name AND mt.version = latest.max_version WHERE mt.status = 'COMPLETE' ORDER BY mt.order_num"),
|
||||
@SQL(view = "getAllSubsystem",
|
||||
sql = "SELECT DISTINCT mp.subsystem_name FROM yfsjglpt_model_parameter mp INNER JOIN yfsjglpt_model_parameter_and_template mpat ON mp.id = mpat.parameter_id INNER JOIN yfsjglpt_model_template mt ON mpat.template_id = mt.id INNER JOIN ( SELECT template_name, MAX(version) AS max_version FROM yfsjglpt_model_template WHERE status = 'COMPLETE' GROUP BY template_name ) latest ON mt.template_name = latest.template_name AND mt.version = latest.max_version WHERE mt.status = 'COMPLETE' ORDER BY mp.subsystem_name"),
|
||||
@SQL(view = "selectParametersByTemplateId",
|
||||
sql = "select p.* from yfsjglpt_model_parameter p left join yfsjglpt_model_parameter_and_template tap on p.id = tap.parameter_id where p.id in (#permissionIds) and tap.template_id = #templateId"),
|
||||
sql = "select p.* from yfsjglpt_model_parameter p left join yfsjglpt_model_parameter_and_template tap on p.id = tap.parameter_id where p.id in (#parameterIds) and tap.template_id = #templateId"),
|
||||
@SQL(view = "selectMaxNumber",
|
||||
sql = "SELECT max(parameter_number) AS max_number FROM yfsjglpt_model_parameter p LEFT JOIN yfsjglpt_model_parameter_and_template tap ON p.id = tap.parameter_id WHERE tap.template_id = #templateId")
|
||||
})
|
||||
@ -51,6 +53,10 @@ public class Parameter extends MpaasBasePojo {
|
||||
@ExcelIgnore
|
||||
private String createdBy;
|
||||
|
||||
@ExcelIgnore
|
||||
@Column(type=ColumnType.CALCULATE)
|
||||
private Integer orderNum;
|
||||
|
||||
@ExcelIgnore
|
||||
@Column(value = "max_number",type=ColumnType.CALCULATE)
|
||||
private Integer maxNumber;
|
||||
|
||||
@ -10,6 +10,8 @@ import lombok.NoArgsConstructor;
|
||||
import java.sql.Timestamp;
|
||||
|
||||
@SQLQuery(value = {
|
||||
@SQL(view = "getMaxOrder",
|
||||
sql = "select *, MAX(order_num) AS maxOrder from yfsjglpt_model_template GROUP BY template_name"),
|
||||
// 查找每个模板的最新版本并且优先级按照已发布、审核中、草稿状态转变(只有这三种状态)
|
||||
@SQL(view = "getLatestTemplate",
|
||||
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"
|
||||
@ -34,13 +36,18 @@ public class Template extends MpaasBasePojo {
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||
private Timestamp publishedTime;
|
||||
private String createBy;
|
||||
private Integer orderNum;
|
||||
|
||||
public Template(String templateName, Integer version, String status, Timestamp createdTime, Timestamp publishedTime, String createBy) {
|
||||
@Column(type = ColumnType.CALCULATE)
|
||||
private Integer maxOrder;
|
||||
|
||||
public Template(String templateName, Integer version, String status, Timestamp createdTime, Timestamp publishedTime, String createBy, Integer orderNum) {
|
||||
this.templateName = templateName;
|
||||
this.version = version;
|
||||
this.status = status;
|
||||
this.createdTime = createdTime;
|
||||
this.publishedTime = publishedTime;
|
||||
this.createBy = createBy;
|
||||
this.orderNum = orderNum;
|
||||
}
|
||||
}
|
||||
|
||||
@ -13,10 +13,10 @@ import java.util.List;
|
||||
public interface TemplateService {
|
||||
PageQueryResult<Template> getTemplateByCondition(TemplatePageForm form);
|
||||
|
||||
MyResponse importTemplate(MultipartFile file, String templateRowId, String createBy);
|
||||
MyResponse importTemplate(MultipartFile file, String templateRowId);
|
||||
|
||||
void processSheetData(List<Parameter> dataList, String sheetName,
|
||||
String templateRowId, String createBy, MyResponse problems);
|
||||
String templateRowId, String createBy, MyResponse problems,Integer maxOrder);
|
||||
|
||||
void insertTemplate(InsertTemplateForm form);
|
||||
|
||||
|
||||
@ -14,10 +14,7 @@ import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@Service
|
||||
@ -154,20 +151,27 @@ public class CommonParameterServiceImpl implements CommonParameterService {
|
||||
if (parameterList == null || parameterList.isEmpty()) {
|
||||
return new ArrayList<>();
|
||||
}
|
||||
Map<String, List<Parameter>> groupedBySubsystem = parameterList.stream()
|
||||
.collect(Collectors.groupingBy(Parameter::getSubsystemName));
|
||||
List<ModelCommonItem> result = new ArrayList<>();
|
||||
for (Map.Entry<String, List<Parameter>> entry : groupedBySubsystem.entrySet()) {
|
||||
ModelCommonItem item = new ModelCommonItem();
|
||||
item.setSubsystem(entry.getKey());
|
||||
List<ParametersView> parameters = entry.getValue().stream()
|
||||
.map(param -> new
|
||||
ParametersView(param.getId(), param.getParameterName(), param.getParameterType()))
|
||||
.collect(Collectors.toList());
|
||||
item.setParameters(parameters);
|
||||
result.add(item);
|
||||
}
|
||||
return result;
|
||||
|
||||
// 先按orderNum排序,然后按子系统分组,保持插入顺序
|
||||
LinkedHashMap<String, List<Parameter>> groupedBySubsystem = parameterList.stream()
|
||||
.sorted(Comparator.comparingInt(Parameter::getOrderNum))
|
||||
.collect(Collectors.groupingBy(
|
||||
Parameter::getSubsystemName,
|
||||
LinkedHashMap::new, // 保持插入顺序
|
||||
Collectors.toList()
|
||||
));
|
||||
|
||||
return groupedBySubsystem.entrySet().stream()
|
||||
.map(entry -> {
|
||||
ModelCommonItem item = new ModelCommonItem();
|
||||
item.setSubsystem(entry.getKey());
|
||||
List<ParametersView> parameters = entry.getValue().stream()
|
||||
.map(param -> new ParametersView(param.getId(), param.getParameterName(), param.getParameterType()))
|
||||
.collect(Collectors.toList());
|
||||
item.setParameters(parameters);
|
||||
return item;
|
||||
})
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@ -51,12 +51,21 @@ public class ParameterServiceImpl implements ParameterService {
|
||||
}
|
||||
|
||||
//todo 假定子系统名和模板名一致
|
||||
// List<String> permissionIds = permissionGetter.getParamPermissions(template.getTemplateName());
|
||||
Set<String> objects = new HashSet<>();
|
||||
objects.addAll(permissionGetter.getParamPermissions(template.getTemplateName()));
|
||||
objects.addAll(bd.getBusinessDatabase()
|
||||
.viewQueryMode(true)
|
||||
.view("selectParametersByTIdAndCreateBy")
|
||||
.setVar("templateId", template.getId())
|
||||
.setVar("createdBy", permissionGetter.getCurrentUserId())
|
||||
.doQuery(Parameter.class).stream().map(Parameter::getId).collect(Collectors.toList()));
|
||||
List<String> parameterIds = new ArrayList<>(objects);
|
||||
|
||||
return bd.getBusinessDatabase()
|
||||
.viewQueryMode(true)
|
||||
.view("selectParametersByTId")
|
||||
.view("selectParametersByTemplateId")
|
||||
.setVar("templateId", template.getId())
|
||||
// .setVar("permissionIds", permissionIds)
|
||||
.setVar("parameterIds", parameterIds)
|
||||
.like("parameter_name", form.getParameterName())
|
||||
.like("parts_name", form.getPartsName())
|
||||
.like("parameter_type", form.getParameterType())
|
||||
@ -102,7 +111,7 @@ public class ParameterServiceImpl implements ParameterService {
|
||||
default:
|
||||
newVersionTemplate = new Template(
|
||||
benchmark.getLastTemplate().getTemplateName(), calculateNextVersion(benchmark.getLastTemplate().getVersion()),
|
||||
"DRAFT", Timestamp.valueOf(LocalDateTime.now()), null, form.getCreateBy()
|
||||
"DRAFT", Timestamp.valueOf(LocalDateTime.now()), null, permissionGetter.getCurrentUserId(),getMaxOrder()
|
||||
);
|
||||
// 保存新模板
|
||||
bd.getBusinessDatabase().doInsert(newVersionTemplate);
|
||||
@ -126,6 +135,18 @@ public class ParameterServiceImpl implements ParameterService {
|
||||
return result;
|
||||
}
|
||||
|
||||
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()
|
||||
|
||||
@ -3,6 +3,7 @@ package com.xdap.self_development.service.impl;
|
||||
import com.alibaba.fastjson2.JSON;
|
||||
import com.definesys.mpaas.query.db.PageQueryResult;
|
||||
import com.xdap.runtime.service.RuntimeDatasourceService;
|
||||
import com.xdap.self_development.common.UserPermissionGetter;
|
||||
import com.xdap.self_development.config.BusinessDatabase;
|
||||
import com.xdap.self_development.controller.form.*;
|
||||
import com.xdap.self_development.exception.CommonException;
|
||||
@ -41,6 +42,8 @@ public class TemplateApprovalServiceImpl implements TemplateApprovalService {
|
||||
private RedisLockUtil redisLockUtil;
|
||||
@Resource
|
||||
private DataEntryEngineModelService dataEntryEngineModelService;
|
||||
@Resource
|
||||
private UserPermissionGetter permissionGetter;
|
||||
|
||||
// 待办标志: userId -> flowId集合
|
||||
private static final String TODO_PREFIX = "approval:todo:";
|
||||
@ -91,7 +94,7 @@ public class TemplateApprovalServiceImpl implements TemplateApprovalService {
|
||||
flow.setReviewUsers(JSON.toJSONString(request.getReviewUsers()));
|
||||
flow.setCountersignUsers(JSON.toJSONString(request.getCountersignUsers()));
|
||||
flow.setApproveUsers(JSON.toJSONString(request.getApproveUsers()));
|
||||
flow.setCreateBy(request.getCreateBy());
|
||||
flow.setCreateBy(permissionGetter.getCurrentUserId());
|
||||
flow.setCreatedTime(Timestamp.valueOf(LocalDateTime.now()));
|
||||
flow.setFlowType(1); // 设置为模板审批流程
|
||||
flow.setExplanation(request.getExplanation());
|
||||
@ -116,13 +119,13 @@ public class TemplateApprovalServiceImpl implements TemplateApprovalService {
|
||||
@Transactional
|
||||
public List<TodoAndTemplateView> getApprovalList(ApprovalListForm form) {
|
||||
List<TodoAndTemplateView> approvalList = new ArrayList<>();
|
||||
Set<String> flowIds = new HashSet<>(Objects.requireNonNull(redisTemplate.opsForSet().members(TODO_PREFIX + form.getUserId())));
|
||||
Set<String> flowIds = new HashSet<>(Objects.requireNonNull(redisTemplate.opsForSet().members(TODO_PREFIX + permissionGetter.getCurrentUserId())));
|
||||
List<String> ids = new ArrayList<>(flowIds);
|
||||
List<TodoAndTemplateView> todoList =bd.getBusinessDatabase()
|
||||
.viewQueryMode(true)
|
||||
.view("getTodoAndTemplate")
|
||||
.setVar("ids", ids)
|
||||
.setVar("createBy", form.getUserId())
|
||||
.setVar("createBy", permissionGetter.getCurrentUserId())
|
||||
.setVar("templateName", form.getTemplateName())
|
||||
.setVar("status", form.getStatus())
|
||||
.setVar("createdTime", form.getCreateDate() == null ? "" : form.getCreateDate())
|
||||
|
||||
@ -41,10 +41,8 @@ public class TemplateServiceImpl implements TemplateService {
|
||||
|
||||
@Override
|
||||
public PageQueryResult<Template> getTemplateByCondition(TemplatePageForm form) {
|
||||
// List<String> subsystemPermissions = permissionGetter.getSubsystemPermissions();
|
||||
return bd.getBusinessDatabase()
|
||||
.viewQueryMode(true)
|
||||
// .setVar("names", "")
|
||||
.view("getLatestTemplate")
|
||||
.like("template_name", form.getTemplateName())
|
||||
.doPageQuery(form.getPageNumber(), form.getPageSize(), Template.class);
|
||||
@ -66,7 +64,7 @@ public class TemplateServiceImpl implements TemplateService {
|
||||
// 创建新模板
|
||||
Template newTemplate = new Template(
|
||||
form.getTemplateName(), 1, "DRAFT", Timestamp.valueOf(LocalDateTime.now()),
|
||||
null, form.getCreateBy()
|
||||
null, permissionGetter.getCurrentUserId(), 1
|
||||
);
|
||||
|
||||
bd.getBusinessDatabase().doInsert(newTemplate);
|
||||
@ -86,7 +84,7 @@ public class TemplateServiceImpl implements TemplateService {
|
||||
|
||||
Template newTemplate = new Template(
|
||||
form.getTemplateName(), 1, "DRAFT", Timestamp.valueOf(LocalDateTime.now()),
|
||||
null, form.getCreateBy()
|
||||
null, permissionGetter.getCurrentUserId(), 1
|
||||
);
|
||||
|
||||
bd.getBusinessDatabase()
|
||||
@ -96,7 +94,8 @@ public class TemplateServiceImpl implements TemplateService {
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = CommonException.class)
|
||||
public MyResponse importTemplate(MultipartFile file, String templateRowId, String createBy) {
|
||||
public MyResponse importTemplate(MultipartFile file, String templateRowId) {
|
||||
String createBy = permissionGetter.getCurrentUserId();
|
||||
// 验证文件是否为工作表
|
||||
if (file == null || file.isEmpty()) {
|
||||
throw new CommonException("文件不能为空");
|
||||
@ -110,11 +109,13 @@ 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,
|
||||
Parameter.class,
|
||||
new SheetDataListener(this, templateRowId, createBy, problems)
|
||||
new SheetDataListener(this, templateRowId, createBy, problems, maxOrder)
|
||||
).doReadAll();
|
||||
|
||||
} catch (IOException e) {
|
||||
@ -184,7 +185,7 @@ public class TemplateServiceImpl implements TemplateService {
|
||||
|
||||
@Override
|
||||
public void processSheetData(List<Parameter> dataList, String sheetName,
|
||||
String templateRowId, String createBy, MyResponse problems) {
|
||||
String templateRowId, String createBy, MyResponse problems, Integer maxOrder) {
|
||||
if (dataList.isEmpty()) {
|
||||
log.warn("Sheet {} 没有数据", sheetName);
|
||||
return;
|
||||
@ -254,7 +255,7 @@ public class TemplateServiceImpl implements TemplateService {
|
||||
default:
|
||||
lastTemplate = new Template(
|
||||
templateName, lastTemplate.getVersion()+1, "DRAFT",
|
||||
Timestamp.valueOf(LocalDateTime.now()), null, createBy
|
||||
Timestamp.valueOf(LocalDateTime.now()), null, createBy, maxOrder
|
||||
);
|
||||
bd.getBusinessDatabase()
|
||||
.doInsert(lastTemplate);
|
||||
@ -262,7 +263,7 @@ public class TemplateServiceImpl implements TemplateService {
|
||||
} else {
|
||||
lastTemplate = new Template(
|
||||
templateName, 1, "DRAFT", Timestamp.valueOf(LocalDateTime.now()),
|
||||
null, createBy
|
||||
null, createBy, maxOrder
|
||||
);
|
||||
bd.getBusinessDatabase()
|
||||
.doInsert(lastTemplate);
|
||||
@ -327,4 +328,16 @@ public class TemplateServiceImpl implements TemplateService {
|
||||
includeColumnFieldNames.add("remarks");
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user