修改:常用获取空值问题和导入空值检查
This commit is contained in:
parent
225ffcbd93
commit
d549bc4de4
@ -59,15 +59,15 @@ public class SheetDataListener implements ReadListener<Parameter> {
|
|||||||
@Override
|
@Override
|
||||||
public void invoke(Parameter data, AnalysisContext context) {
|
public void invoke(Parameter data, AnalysisContext context) {
|
||||||
// 第一次读取数据时检查表头
|
// 第一次读取数据时检查表头
|
||||||
if (!headerChecked) {
|
// if (!headerChecked) {
|
||||||
checkHeaderAndSkipIfNeeded(context);
|
// checkHeaderAndSkipIfNeeded(context);
|
||||||
headerChecked = true;
|
// headerChecked = true;
|
||||||
}
|
// }
|
||||||
|
|
||||||
// 如果sheet无效,直接返回,不处理数据
|
// 如果sheet无效,直接返回,不处理数据
|
||||||
if (!validSheet) {
|
// if (!validSheet) {
|
||||||
return;
|
// return;
|
||||||
}
|
// }
|
||||||
|
|
||||||
if (data.getSubsystemName() == null) {
|
if (data.getSubsystemName() == null) {
|
||||||
problems.setFlag(true);
|
problems.setFlag(true);
|
||||||
@ -79,12 +79,6 @@ public class SheetDataListener implements ReadListener<Parameter> {
|
|||||||
data.setPartsName("/");
|
data.setPartsName("/");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (data.getParameterNumber() == null) {
|
|
||||||
problems.setFlag(true);
|
|
||||||
problems.getErrors().add(currentSheetName +"模板的参数"+data.getParameterName()+"的序号字段为空");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (currentSheetName == null) {
|
if (currentSheetName == null) {
|
||||||
currentSheetName = context.readSheetHolder().getSheetName();
|
currentSheetName = context.readSheetHolder().getSheetName();
|
||||||
}
|
}
|
||||||
|
|||||||
@ -5,5 +5,6 @@ import lombok.Data;
|
|||||||
@Data
|
@Data
|
||||||
public class TemplateInfoView {
|
public class TemplateInfoView {
|
||||||
private String templateRowId;
|
private String templateRowId;
|
||||||
|
private String templateId;
|
||||||
private Integer version;
|
private Integer version;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -311,10 +311,72 @@ public class BenchmarkingReportServiceImpl implements BenchmarkingReportService
|
|||||||
.eq("flow_type", 2)
|
.eq("flow_type", 2)
|
||||||
.doQueryFirst(ApprovalFlow.class);
|
.doQueryFirst(ApprovalFlow.class);
|
||||||
approvalFlowView.setExplanation(flow.getExplanation());
|
approvalFlowView.setExplanation(flow.getExplanation());
|
||||||
approvalFlowView.setProofreadNodes(getNodeList(flowId, "PROOFREAD"));
|
List<ApprovalNodeView> proofread = getNodeList(flowId, "PROOFREAD");
|
||||||
approvalFlowView.setReviewNodes(getNodeList(flowId, "REVIEW"));
|
if (proofread.isEmpty()) {
|
||||||
approvalFlowView.setApproveNodes(getNodeList(flowId, "APPROVE"));
|
List<ApprovalNodeView> list = new ArrayList<>();
|
||||||
|
StringBuilder usernames = new StringBuilder();
|
||||||
|
JSON.parseArray(flow.getProofreadUsers()).toJavaList(String.class).forEach(id -> {
|
||||||
|
ApprovalXdapUsers user = bd.getBusinessDatabase()
|
||||||
|
.eq("id", id)
|
||||||
|
.doQueryFirst(ApprovalXdapUsers.class);
|
||||||
|
usernames.append(user.getUsername()).append(" ");
|
||||||
|
});
|
||||||
|
ApprovalNodeView approvalNodeView = new ApprovalNodeView();
|
||||||
|
approvalNodeView.setNode("APPROVING");
|
||||||
|
approvalNodeView.setUserName(usernames.toString());
|
||||||
|
approvalNodeView.setResult("APPROVING");
|
||||||
|
approvalNodeView.setApprovalTime(Timestamp.valueOf(LocalDateTime.now()));
|
||||||
|
list.add(approvalNodeView);
|
||||||
|
approvalFlowView.setProofreadNodes(list);
|
||||||
|
approvalFlowView.setReviewNodes(new ArrayList<>());
|
||||||
|
approvalFlowView.setApproveNodes(new ArrayList<>());
|
||||||
|
approvalFlowView.setFlowStatus(flow.getFlowStatus());
|
||||||
|
return approvalFlowView;
|
||||||
|
}
|
||||||
|
approvalFlowView.setProofreadNodes(proofread);
|
||||||
|
List<ApprovalNodeView> review = getNodeList(flowId, "REVIEW");
|
||||||
|
if (review.isEmpty()) {
|
||||||
|
List<ApprovalNodeView> list = new ArrayList<>();
|
||||||
|
StringBuilder usernames = new StringBuilder();
|
||||||
|
JSON.parseArray(flow.getReviewUsers()).toJavaList(String.class).forEach(id -> {
|
||||||
|
ApprovalXdapUsers user = bd.getBusinessDatabase()
|
||||||
|
.eq("id", id)
|
||||||
|
.doQueryFirst(ApprovalXdapUsers.class);
|
||||||
|
usernames.append(user.getUsername()).append(" ");
|
||||||
|
});
|
||||||
|
ApprovalNodeView approvalNodeView = new ApprovalNodeView();
|
||||||
|
approvalNodeView.setNode("APPROVING");
|
||||||
|
approvalNodeView.setUserName(usernames.toString());
|
||||||
|
approvalNodeView.setResult("APPROVING");
|
||||||
|
approvalNodeView.setApprovalTime(Timestamp.valueOf(LocalDateTime.now()));
|
||||||
|
list.add(approvalNodeView);
|
||||||
|
approvalFlowView.setReviewNodes(list);
|
||||||
|
approvalFlowView.setApproveNodes(new ArrayList<>());
|
||||||
|
approvalFlowView.setFlowStatus(flow.getFlowStatus());
|
||||||
|
return approvalFlowView;
|
||||||
|
}
|
||||||
|
approvalFlowView.setReviewNodes(review);
|
||||||
|
List<ApprovalNodeView> approve = getNodeList(flowId, "APPROVE");
|
||||||
|
if (approve.isEmpty()) {
|
||||||
|
List<ApprovalNodeView> list = new ArrayList<>();
|
||||||
|
StringBuilder usernames = new StringBuilder();
|
||||||
|
JSON.parseArray(flow.getApproveUsers()).toJavaList(String.class).forEach(id -> {
|
||||||
|
ApprovalXdapUsers user = bd.getBusinessDatabase()
|
||||||
|
.eq("id", id)
|
||||||
|
.doQueryFirst(ApprovalXdapUsers.class);
|
||||||
|
usernames.append(user.getUsername()).append(" ");
|
||||||
|
});
|
||||||
|
ApprovalNodeView approvalNodeView = new ApprovalNodeView();
|
||||||
|
approvalNodeView.setNode("APPROVING");
|
||||||
|
approvalNodeView.setUserName(usernames.toString());
|
||||||
|
approvalNodeView.setResult("APPROVING");
|
||||||
|
approvalNodeView.setApprovalTime(Timestamp.valueOf(LocalDateTime.now()));
|
||||||
|
list.add(approvalNodeView);
|
||||||
|
approvalFlowView.setApproveNodes(list);
|
||||||
|
approvalFlowView.setFlowStatus(flow.getFlowStatus());
|
||||||
|
return approvalFlowView;
|
||||||
|
}
|
||||||
|
approvalFlowView.setApproveNodes(approve);
|
||||||
approvalFlowView.setFlowStatus(flow.getFlowStatus());
|
approvalFlowView.setFlowStatus(flow.getFlowStatus());
|
||||||
return approvalFlowView;
|
return approvalFlowView;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -154,28 +154,37 @@ public class CommonParameterServiceImpl implements CommonParameterService {
|
|||||||
if (parameterList == null || parameterList.isEmpty()) {
|
if (parameterList == null || parameterList.isEmpty()) {
|
||||||
return new ArrayList<>();
|
return new ArrayList<>();
|
||||||
}
|
}
|
||||||
|
|
||||||
// 先按orderNum排序,然后按子系统分组,保持插入顺序
|
|
||||||
LinkedHashMap<String, List<Parameter>> groupedBySubsystem = parameterList.stream()
|
LinkedHashMap<String, List<Parameter>> groupedBySubsystem = parameterList.stream()
|
||||||
.sorted(Comparator.comparingInt(Parameter::getOrderNum))
|
.filter(param -> param.getSubsystemName() != null) // 过滤掉 subsystemName 为 null 的参数
|
||||||
|
.sorted(Comparator.comparingInt(param -> {
|
||||||
|
Integer orderNum = param.getOrderNum();
|
||||||
|
return orderNum != null ? orderNum : Integer.MAX_VALUE; // null 值的放到最后
|
||||||
|
}))
|
||||||
.collect(Collectors.groupingBy(
|
.collect(Collectors.groupingBy(
|
||||||
Parameter::getSubsystemName,
|
Parameter::getSubsystemName,
|
||||||
LinkedHashMap::new, // 保持插入顺序
|
LinkedHashMap::new, // 保持插入顺序
|
||||||
Collectors.toList()
|
Collectors.toList()
|
||||||
));
|
));
|
||||||
|
|
||||||
return groupedBySubsystem.entrySet().stream()
|
return groupedBySubsystem.entrySet().stream()
|
||||||
.map(entry -> {
|
.map(entry -> {
|
||||||
ModelCommonItem item = new ModelCommonItem();
|
ModelCommonItem item = new ModelCommonItem();
|
||||||
item.setSubsystem(entry.getKey());
|
item.setSubsystem(entry.getKey());
|
||||||
List<ParametersView> parameters = entry.getValue().stream()
|
List<ParametersView> parameters = entry.getValue().stream()
|
||||||
.map(param -> new ParametersView(
|
.filter(Objects::nonNull) // 过滤掉 null 的参数对象
|
||||||
param.getId(),
|
.map(param -> {
|
||||||
param.getParameterName(),
|
String paramId = param.getId() != null ? param.getId() : "";
|
||||||
param.getParameterType(),
|
String paramName = param.getParameterName() != null ? param.getParameterName() : "";
|
||||||
param.getSubsystemName(),
|
String paramType = param.getParameterType() != null ? param.getParameterType() : "";
|
||||||
param.getPartsName()
|
String subsystem = param.getSubsystemName() != null ? param.getSubsystemName() : "";
|
||||||
))
|
String partsName = param.getPartsName() != null ? param.getPartsName() : "";
|
||||||
|
return new ParametersView(
|
||||||
|
paramId,
|
||||||
|
paramName,
|
||||||
|
paramType,
|
||||||
|
subsystem,
|
||||||
|
partsName
|
||||||
|
);
|
||||||
|
})
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
item.setParameters(parameters);
|
item.setParameters(parameters);
|
||||||
return item;
|
return item;
|
||||||
@ -193,17 +202,27 @@ public class CommonParameterServiceImpl implements CommonParameterService {
|
|||||||
return new ArrayList<>();
|
return new ArrayList<>();
|
||||||
}
|
}
|
||||||
Map<String, List<ModelCommonParameters>> groupedByCommonId = paramsList.stream()
|
Map<String, List<ModelCommonParameters>> groupedByCommonId = paramsList.stream()
|
||||||
|
.filter(param -> param.getCommonId() != null) // 过滤掉 commonId 为 null 的参数
|
||||||
.collect(Collectors.groupingBy(ModelCommonParameters::getCommonId));
|
.collect(Collectors.groupingBy(ModelCommonParameters::getCommonId));
|
||||||
List<ModelCommon> result = new ArrayList<>();
|
List<ModelCommon> result = new ArrayList<>();
|
||||||
for (CommonParameter commonParameter : commonParameters) {
|
for (CommonParameter commonParameter : commonParameters) {
|
||||||
|
String commonId = commonParameter.getId();
|
||||||
|
if (commonId == null) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
List<ModelCommonParameters> commonParams = groupedByCommonId.get(commonId);
|
||||||
|
if (commonParams == null || commonParams.isEmpty()) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
ModelCommon modelCommon = new ModelCommon();
|
ModelCommon modelCommon = new ModelCommon();
|
||||||
modelCommon.setCommonName(commonParameter.getCommonName());
|
modelCommon.setCommonName(commonParameter.getCommonName());
|
||||||
modelCommon.setCommonId(commonParameter.getId());
|
modelCommon.setCommonId(commonId);
|
||||||
|
Map<String, List<ModelCommonParameters>> groupedBySubsystem = commonParams.stream()
|
||||||
Map<String, List<ModelCommonParameters>> groupedBySubsystem =
|
.filter(param -> param.getSubsystemName() != null) // 过滤掉 subsystemName 为 null 的参数
|
||||||
groupedByCommonId.get(modelCommon.getCommonId()).stream()
|
|
||||||
.collect(Collectors.groupingBy(ModelCommonParameters::getSubsystemName));
|
.collect(Collectors.groupingBy(ModelCommonParameters::getSubsystemName));
|
||||||
|
if (groupedBySubsystem.isEmpty()) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
List<ModelCommonItem> items = new ArrayList<>();
|
List<ModelCommonItem> items = new ArrayList<>();
|
||||||
for (Map.Entry<String, List<ModelCommonParameters>> subsystemEntry : groupedBySubsystem.entrySet()) {
|
for (Map.Entry<String, List<ModelCommonParameters>> subsystemEntry : groupedBySubsystem.entrySet()) {
|
||||||
ModelCommonItem item = new ModelCommonItem();
|
ModelCommonItem item = new ModelCommonItem();
|
||||||
|
|||||||
@ -109,6 +109,7 @@ public class ParameterServiceImpl implements ParameterService {
|
|||||||
TemplateInfoView result = new TemplateInfoView();
|
TemplateInfoView result = new TemplateInfoView();
|
||||||
result.setTemplateRowId(newVersionTemplate.getRowId());
|
result.setTemplateRowId(newVersionTemplate.getRowId());
|
||||||
result.setVersion(newVersionTemplate.getVersion());
|
result.setVersion(newVersionTemplate.getVersion());
|
||||||
|
result.setTemplateId(newVersionTemplate.getId());
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -1,9 +1,9 @@
|
|||||||
package com.xdap.self_development.service.impl;
|
package com.xdap.self_development.service.impl;
|
||||||
|
|
||||||
import com.alibaba.fastjson2.JSON;
|
import com.alibaba.fastjson2.JSON;
|
||||||
|
import com.definesys.mpaas.log.SWordLogger;
|
||||||
import com.definesys.mpaas.query.db.PageQueryResult;
|
import com.definesys.mpaas.query.db.PageQueryResult;
|
||||||
import com.xdap.runtime.service.RuntimeDatasourceService;
|
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.config.BusinessDatabase;
|
||||||
import com.xdap.self_development.controller.form.*;
|
import com.xdap.self_development.controller.form.*;
|
||||||
import com.xdap.self_development.exception.CommonException;
|
import com.xdap.self_development.exception.CommonException;
|
||||||
@ -12,12 +12,10 @@ 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.TemplateChangeView;
|
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 com.xdap.self_development.service.DataEntryEngineModelService;
|
|
||||||
import com.xdap.self_development.service.TemplateApprovalService;
|
import com.xdap.self_development.service.TemplateApprovalService;
|
||||||
import com.xdap.self_development.service.XdapDeptUsersService;
|
import com.xdap.self_development.service.XdapDeptUsersService;
|
||||||
import com.xdap.self_development.utils.RedisLockUtil;
|
import com.xdap.self_development.utils.RedisLockUtil;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.beans.BeanUtils;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.data.redis.core.StringRedisTemplate;
|
import org.springframework.data.redis.core.StringRedisTemplate;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
@ -42,11 +40,9 @@ public class TemplateApprovalServiceImpl implements TemplateApprovalService {
|
|||||||
@Resource
|
@Resource
|
||||||
private RedisLockUtil redisLockUtil;
|
private RedisLockUtil redisLockUtil;
|
||||||
@Resource
|
@Resource
|
||||||
private DataEntryEngineModelService dataEntryEngineModelService;
|
|
||||||
@Resource
|
|
||||||
private UserPermissionGetter permissionGetter;
|
|
||||||
@Resource
|
|
||||||
private XdapDeptUsersService xdapDeptUsersService;
|
private XdapDeptUsersService xdapDeptUsersService;
|
||||||
|
@Autowired
|
||||||
|
private SWordLogger logger;
|
||||||
|
|
||||||
// 分布式锁标志
|
// 分布式锁标志
|
||||||
private static final String FLOW_LOCK_PREFIX = "approval:lock:";
|
private static final String FLOW_LOCK_PREFIX = "approval:lock:";
|
||||||
@ -295,10 +291,128 @@ public class TemplateApprovalServiceImpl implements TemplateApprovalService {
|
|||||||
.eq("flow_type", 1)
|
.eq("flow_type", 1)
|
||||||
.doQueryFirst(ApprovalFlow.class);
|
.doQueryFirst(ApprovalFlow.class);
|
||||||
approvalFlowView.setExplanation(flow.getExplanation());
|
approvalFlowView.setExplanation(flow.getExplanation());
|
||||||
approvalFlowView.setProofreadNodes(getNodeList(form.getFlowId(), "PROOFREAD"));
|
List<ApprovalNodeView> proofread = getNodeList(form.getFlowId(), "PROOFREAD");
|
||||||
approvalFlowView.setReviewNodes(getNodeList(form.getFlowId(), "REVIEW"));
|
if (proofread.isEmpty()) {
|
||||||
approvalFlowView.setCountersignNodes(getNodeList(form.getFlowId(), "COUNTERSIGN"));
|
List<ApprovalNodeView> list = new ArrayList<>();
|
||||||
approvalFlowView.setApproveNodes(getNodeList(form.getFlowId(), "APPROVE"));
|
StringBuilder usernames = new StringBuilder();
|
||||||
|
JSON.parseArray(flow.getProofreadUsers()).toJavaList(String.class).forEach(id -> {
|
||||||
|
ApprovalXdapUsers user = bd.getBusinessDatabase()
|
||||||
|
.eq("id", id)
|
||||||
|
.doQueryFirst(ApprovalXdapUsers.class);
|
||||||
|
usernames.append(user.getUsername()).append(" ");
|
||||||
|
});
|
||||||
|
ApprovalNodeView approvalNodeView = new ApprovalNodeView();
|
||||||
|
approvalNodeView.setNode("APPROVING");
|
||||||
|
approvalNodeView.setUserName(usernames.toString());
|
||||||
|
approvalNodeView.setResult("APPROVING");
|
||||||
|
approvalNodeView.setApprovalTime(Timestamp.valueOf(LocalDateTime.now()));
|
||||||
|
list.add(approvalNodeView);
|
||||||
|
|
||||||
|
approvalFlowView.setProofreadNodes(list);
|
||||||
|
approvalFlowView.setReviewNodes(new ArrayList<>());
|
||||||
|
approvalFlowView.setCountersignNodes(new ArrayList<>());
|
||||||
|
approvalFlowView.setApproveNodes(new ArrayList<>());
|
||||||
|
|
||||||
|
approvalFlowView.setFlowStatus(flow.getFlowStatus());
|
||||||
|
return approvalFlowView;
|
||||||
|
}
|
||||||
|
approvalFlowView.setProofreadNodes(proofread);
|
||||||
|
List<ApprovalNodeView> review = getNodeList(flow.getId(), "REVIEW");
|
||||||
|
if (review.isEmpty()) {
|
||||||
|
List<ApprovalNodeView> list = new ArrayList<>();
|
||||||
|
StringBuilder usernames = new StringBuilder();
|
||||||
|
JSON.parseArray(flow.getReviewUsers()).toJavaList(String.class).forEach(id -> {
|
||||||
|
ApprovalXdapUsers user = bd.getBusinessDatabase()
|
||||||
|
.eq("id", id)
|
||||||
|
.doQueryFirst(ApprovalXdapUsers.class);
|
||||||
|
usernames.append(user.getUsername()).append(" ");
|
||||||
|
});
|
||||||
|
ApprovalNodeView approvalNodeView = new ApprovalNodeView();
|
||||||
|
approvalNodeView.setNode("APPROVING");
|
||||||
|
approvalNodeView.setUserName(usernames.toString());
|
||||||
|
approvalNodeView.setResult("APPROVING");
|
||||||
|
approvalNodeView.setApprovalTime(Timestamp.valueOf(LocalDateTime.now()));
|
||||||
|
list.add(approvalNodeView);
|
||||||
|
|
||||||
|
approvalFlowView.setReviewNodes(list);
|
||||||
|
approvalFlowView.setCountersignNodes(new ArrayList<>());
|
||||||
|
approvalFlowView.setApproveNodes(new ArrayList<>());
|
||||||
|
|
||||||
|
approvalFlowView.setFlowStatus(flow.getFlowStatus());
|
||||||
|
return approvalFlowView;
|
||||||
|
}
|
||||||
|
approvalFlowView.setReviewNodes(review);
|
||||||
|
|
||||||
|
if (JSON.parseArray(flow.getCountersignUsers()).toJavaList(String.class).isEmpty()) {
|
||||||
|
approvalFlowView.setCountersignNodes(new ArrayList<>());
|
||||||
|
} else {
|
||||||
|
List<ApprovalNodeView> countersign = getNodeList(flow.getId(), "COUNTERSIGN");
|
||||||
|
if (countersign.isEmpty()) {
|
||||||
|
List<ApprovalNodeView> list = new ArrayList<>();
|
||||||
|
StringBuilder usernames = new StringBuilder();
|
||||||
|
JSON.parseArray(flow.getCountersignUsers()).toJavaList(String.class).forEach(id -> {
|
||||||
|
ApprovalXdapUsers user = bd.getBusinessDatabase()
|
||||||
|
.eq("id", id)
|
||||||
|
.doQueryFirst(ApprovalXdapUsers.class);
|
||||||
|
usernames.append(user.getUsername()).append(" ");
|
||||||
|
});
|
||||||
|
ApprovalNodeView approvalNodeView = new ApprovalNodeView();
|
||||||
|
approvalNodeView.setNode("APPROVING");
|
||||||
|
approvalNodeView.setUserName(usernames.toString());
|
||||||
|
approvalNodeView.setResult("APPROVING");
|
||||||
|
approvalNodeView.setApprovalTime(Timestamp.valueOf(LocalDateTime.now()));
|
||||||
|
list.add(approvalNodeView);
|
||||||
|
approvalFlowView.setCountersignNodes(list);
|
||||||
|
approvalFlowView.setApproveNodes(new ArrayList<>());
|
||||||
|
approvalFlowView.setFlowStatus(flow.getFlowStatus());
|
||||||
|
return approvalFlowView;
|
||||||
|
} else {
|
||||||
|
if (countersign.size() == JSON.parseArray(flow.getCountersignUsers()).size()) {
|
||||||
|
approvalFlowView.setCountersignNodes(countersign);
|
||||||
|
} else {
|
||||||
|
List<String> containedIds = countersign.stream().map(ApprovalNodeView::getUserId).collect(Collectors.toList());
|
||||||
|
List<String> uncontainedIds = JSON.parseArray(flow.getCountersignUsers()).toJavaList(String.class).stream().filter(id -> !containedIds.contains(id)).collect(Collectors.toList());
|
||||||
|
StringBuilder usernames = new StringBuilder();
|
||||||
|
uncontainedIds.forEach(id -> {
|
||||||
|
ApprovalXdapUsers user = bd.getBusinessDatabase()
|
||||||
|
.eq("id", id)
|
||||||
|
.doQueryFirst(ApprovalXdapUsers.class);
|
||||||
|
usernames.append(user.getUsername()).append(" ");
|
||||||
|
});
|
||||||
|
ApprovalNodeView approvalNodeView = new ApprovalNodeView();
|
||||||
|
approvalNodeView.setNode("APPROVING");
|
||||||
|
approvalNodeView.setUserName(usernames.toString());
|
||||||
|
approvalNodeView.setResult("APPROVING");
|
||||||
|
approvalNodeView.setApprovalTime(Timestamp.valueOf(LocalDateTime.now()));
|
||||||
|
countersign.add(approvalNodeView);
|
||||||
|
approvalFlowView.setCountersignNodes(countersign);
|
||||||
|
approvalFlowView.setApproveNodes(new ArrayList<>());
|
||||||
|
return approvalFlowView;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
List<ApprovalNodeView> approve = getNodeList(flow.getId(), "APPROVE");
|
||||||
|
if (approve.isEmpty()) {
|
||||||
|
List<ApprovalNodeView> list = new ArrayList<>();
|
||||||
|
StringBuilder usernames = new StringBuilder();
|
||||||
|
JSON.parseArray(flow.getApproveUsers()).toJavaList(String.class).forEach(id -> {
|
||||||
|
ApprovalXdapUsers user = bd.getBusinessDatabase()
|
||||||
|
.eq("id", id)
|
||||||
|
.doQueryFirst(ApprovalXdapUsers.class);
|
||||||
|
usernames.append(user.getUsername()).append(" ");
|
||||||
|
});
|
||||||
|
ApprovalNodeView approvalNodeView = new ApprovalNodeView();
|
||||||
|
approvalNodeView.setNode("APPROVING");
|
||||||
|
approvalNodeView.setUserName(usernames.toString());
|
||||||
|
approvalNodeView.setResult("APPROVING");
|
||||||
|
approvalNodeView.setApprovalTime(Timestamp.valueOf(LocalDateTime.now()));
|
||||||
|
list.add(approvalNodeView);
|
||||||
|
approvalFlowView.setApproveNodes(list);
|
||||||
|
approvalFlowView.setFlowStatus(flow.getFlowStatus());
|
||||||
|
return approvalFlowView;
|
||||||
|
}
|
||||||
|
approvalFlowView.setApproveNodes(approve);
|
||||||
|
|
||||||
approvalFlowView.setFlowStatus(flow.getFlowStatus());
|
approvalFlowView.setFlowStatus(flow.getFlowStatus());
|
||||||
return approvalFlowView;
|
return approvalFlowView;
|
||||||
|
|||||||
@ -84,6 +84,8 @@ mpaas.query.security.mode=custom
|
|||||||
mpaas.query.dbvendor=mysql
|
mpaas.query.dbvendor=mysql
|
||||||
mpaas.query.bigdatathresholdvalue=100000
|
mpaas.query.bigdatathresholdvalue=100000
|
||||||
|
|
||||||
|
mpaas.mode=DEV
|
||||||
|
|
||||||
# ====================== Activiti ????? ======================
|
# ====================== Activiti ????? ======================
|
||||||
activiti.datasource.driverClassName=com.mysql.cj.jdbc.Driver
|
activiti.datasource.driverClassName=com.mysql.cj.jdbc.Driver
|
||||||
activiti.datasource.url=jdbc:mysql://127.0.0.1:3306/activiti_demo?serverTimezone=Asia/Shanghai&characterEncoding=utf-8
|
activiti.datasource.url=jdbc:mysql://127.0.0.1:3306/activiti_demo?serverTimezone=Asia/Shanghai&characterEncoding=utf-8
|
||||||
|
|||||||
@ -116,16 +116,20 @@ CREATE TABLE yc_datasource_0.yfsjglpt_model_role_permission(
|
|||||||
DELETE FROM yfsjglpt_model_template;
|
DELETE FROM yfsjglpt_model_template;
|
||||||
DELETE FROM yfsjglpt_model_parameter_and_template;
|
DELETE FROM yfsjglpt_model_parameter_and_template;
|
||||||
DELETE FROM yfsjglpt_model_parameter;
|
DELETE FROM yfsjglpt_model_parameter;
|
||||||
|
DELETE FROM yfsjglpt_model_revision_record;
|
||||||
|
DELETE FROM yfsjglpt_model_benchmarking_report;
|
||||||
|
|
||||||
DELETE FROM yfsjglpt_model_approval_flow;
|
DELETE FROM yfsjglpt_model_approval_flow;
|
||||||
DELETE FROM yfsjglpt_model_approval_record;
|
DELETE FROM yfsjglpt_model_approval_record;
|
||||||
|
|
||||||
DELETE FROM yfsjglpt_model_responsible_person;
|
DELETE FROM yfsjglpt_model_responsible_person;
|
||||||
DELETE FROM yfsjglpt_model_benchmarking_report;
|
|
||||||
DELETE FROM yfsjglpt_model_revision_record;
|
|
||||||
|
|
||||||
delete from data_entry_engine_model;
|
delete from data_entry_engine_model;
|
||||||
delete from engine_param_detail;
|
delete from engine_param_detail;
|
||||||
delete from todo_task;
|
delete from todo_task;
|
||||||
delete from data_change_comment;
|
delete from data_change_comment;
|
||||||
delete from approval_config ;
|
delete from approval_config ;
|
||||||
delete from engine_review_list;
|
delete from engine_review_list;
|
||||||
delete from param_approval_record;
|
delete from param_approval_record;
|
||||||
Loading…
x
Reference in New Issue
Block a user