Appearance
JPwise 系统自动化处理机制
JPwise 配置生成系统的自动化处理能力和智能配置机制详述
📋 概述
本文档详细介绍JPwise配置生成系统的自动化处理机制,包括系统字段自动添加、智能配置生成、质量自动保证等核心自动化能力。这些机制大幅减少了手工配置的工作量,提升了配置质量和一致性。
🔧 自动处理的核心内容
1. 19位唯一ID自动生成
处理机制:雪花算法生成分布式唯一主键
技术实现:
javascript
// 雪花算法ID生成
function generateSnowflakeId() {
const timestamp = Date.now() - EPOCH;
const machineId = getMachineId();
const sequence = getSequence();
return (timestamp << 22) | (machineId << 12) | sequence;
}
// 自动设置主键
const tableConfig = {
fields: [{
field: "ID",
fieldName: "主键",
dataType: "varchar",
dataLength: "50",
primaryKey: 1,
allowNull: 0,
defaultValue: "generateSnowflakeId()"
}]
};
应用效果:
- ✅ 确保主键全局唯一性
- ✅ 支持分布式系统部署
- ✅ 避免主键冲突问题
- ✅ 提升数据导入导出效率
2. 系统字段自动添加
处理机制:为每个表自动添加标准化的系统管理字段
标准系统字段集:
sql
-- 创建跟踪字段
CREATORTIME datetime DEFAULT NULL COMMENT '创建时间',
CREATORUSER varchar(50) DEFAULT NULL COMMENT '创建人ID',
CREATORUSERNAME varchar(50) DEFAULT NULL COMMENT '创建人',
-- 修改跟踪字段
LASTMODIFYTIME datetime DEFAULT NULL COMMENT '修改时间',
LASTMODIFYUSER varchar(50) DEFAULT NULL COMMENT '修改人ID',
LASTMODIFYUSERNAME varchar(50) DEFAULT NULL COMMENT '修改人',
-- 权限控制字段
ORGANIZE varchar(50) DEFAULT NULL COMMENT '组织ID',
-- 软删除字段
ENABLEDMARK varchar(10) DEFAULT NULL COMMENT '删除标志',
DELETETIME datetime DEFAULT NULL COMMENT '删除时间',
DELETEUSER varchar(50) DEFAULT NULL COMMENT '删除人ID',
DELETEUSERNAME varchar(50) DEFAULT NULL COMMENT '删除人',
-- 排序字段
SORTCODE int(10) DEFAULT NULL COMMENT '排序号'
自动化逻辑:
javascript
// 系统字段自动添加逻辑
function addSystemFields(tableFields) {
const systemFields = [
createAuditFields(), // 创建审计字段
modifyAuditFields(), // 修改审计字段
organizationFields(), // 组织权限字段
softDeleteFields(), // 软删除字段
sortingFields() // 排序字段
];
return [...tableFields, ...systemFields];
}
3. 流程字段自动识别
处理机制:根据功能类型自动添加流程控制相关字段
流程字段集:
sql
-- 流程控制字段(流程功能自动添加)
FLOWPHASE varchar(50) DEFAULT NULL COMMENT '流程状态',
STEPNAME varchar(200) DEFAULT NULL COMMENT '环节名称',
FLOWID varchar(50) DEFAULT NULL COMMENT '流程实例ID',
TASKID varchar(50) DEFAULT NULL COMMENT '当前任务ID',
TASKOPERATOR varchar(500) DEFAULT NULL COMMENT '任务处理人',
FLOWSTATUS int(10) DEFAULT 0 COMMENT '流程状态',
FLOWFINISHTIME datetime DEFAULT NULL COMMENT '流程结束时间'
自动识别规则:
javascript
// 流程功能自动识别
function detectWorkflowRequirement(functionConfig) {
const workflowIndicators = [
functionConfig.pageType.includes('流程'),
functionConfig.category === 'approval',
functionConfig.description.includes('审批'),
functionConfig.buttons.some(btn => ['submit', 'approve', 'reject'].includes(btn))
];
return workflowIndicators.some(indicator => indicator);
}
4. 乐观锁字段自动处理
处理机制:为需要并发控制的表自动添加版本控制字段
版本控制实现:
sql
-- 乐观锁版本字段
VERSION int(10) DEFAULT 1 COMMENT '版本号',
LASTMODIFYTIME datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间戳'
并发控制逻辑:
javascript
// 乐观锁自动处理
function addOptimisticLock(tableConfig) {
if (requiresConcurrencyControl(tableConfig)) {
tableConfig.fields.push({
field: "VERSION",
fieldName: "版本号",
dataType: "int",
dataLength: "10",
defaultValue: 1,
autoIncrement: true
});
}
}
5. 软删除机制自动配置
处理机制:自动配置逻辑删除而非物理删除
软删除字段:
sql
-- 软删除标记
ENABLEDMARK varchar(10) DEFAULT NULL COMMENT '删除标志',
DELETETIME datetime DEFAULT NULL COMMENT '删除时间',
DELETEUSER varchar(50) DEFAULT NULL COMMENT '删除人ID',
DELETEUSERNAME varchar(50) DEFAULT NULL COMMENT '删除人'
查询过滤自动添加:
sql
-- 自动添加软删除过滤条件
WHERE (ENABLEDMARK IS NULL OR ENABLEDMARK != '0')
6. 组织字段权限控制
处理机制:自动添加数据权限控制字段和相关逻辑
权限字段:
sql
-- 数据权限控制
ORGANIZE varchar(50) DEFAULT NULL COMMENT '组织ID',
CREATEUSER varchar(50) DEFAULT NULL COMMENT '创建人ID'
权限过滤逻辑:
javascript
// 数据权限自动过滤
function addDataPermissionFilter(sql, userInfo) {
const organizeFilter = `ORGANIZE = '${userInfo.organizeId}'`;
const creatorFilter = `CREATEUSER = '${userInfo.userId}'`;
return `${sql} AND (${organizeFilter} OR ${creatorFilter})`;
}
7. 排序字段自动管理
处理机制:自动添加排序码字段,支持拖拽排序等功能
排序字段配置:
sql
-- 排序控制字段
SORTCODE int(10) DEFAULT NULL COMMENT '排序号'
排序逻辑自动生成:
javascript
// 排序功能自动配置
function addSortingCapability(listConfig) {
listConfig.sortable = true;
listConfig.sortField = "sortCode";
listConfig.sortOrder = "asc";
// 拖拽排序事件
listConfig.events.onSort = function(newOrder) {
updateSortCodes(newOrder);
};
}
🧠 智能配置概览
字段映射智能化
核心机制:基于字段名称模式和数据类型的智能组件选择
智能识别算法:
javascript
// 字段名称模式识别
const fieldPatternMapping = {
// 用户相关字段
userPatterns: {
pattern: /.*user.*|.*person.*|.*employee.*|.*staff.*/i,
component: "JnpfUserSelect",
props: { multiple: false, selectType: "all" }
},
// 部门相关字段
deptPatterns: {
pattern: /.*department.*|.*dept.*|.*org.*|.*office.*/i,
component: "JnpfDepartSelect",
props: { multiple: false, ableIds: [] }
},
// 时间相关字段
timePatterns: {
pattern: /.*time$|.*date$|.*time.*|.*date.*/i,
component: "JnpfDatePicker",
props: { format: "yyyy-MM-dd", clearable: true }
},
// 金额相关字段
moneyPatterns: {
pattern: /.*amount|.*price|.*money|.*fee|.*cost|.*salary.*/i,
component: "JnpfInputNumber",
props: { precision: 2, thousands: true }
},
// 状态相关字段
statusPatterns: {
pattern: /.*status|.*state|.*flag|.*mark.*/i,
component: "JnpfSelect",
props: { clearable: true, optionType: "dictionary" }
}
};
数据类型智能匹配:
javascript
// 数据类型组件映射
const dataTypeMapping = {
varchar: {
default: "JnpfInput",
rules: [
{ condition: "length <= 50", component: "JnpfInput" },
{ condition: "length > 50", component: "JnpfTextarea" },
{ condition: "length > 500", component: "JnpfEditor" }
]
},
decimal: {
default: "JnpfInputNumber",
props: {
precision: "auto", // 根据字段定义自动设置
thousands: true
}
},
datetime: {
default: "JnpfDatePicker",
props: {
type: "datetime",
format: "yyyy-MM-dd HH:mm:ss"
}
},
text: {
default: "JnpfTextarea",
props: { rows: 4 }
}
};
布局自动优化
优化策略:基于组件类型、字段重要性和用户体验的智能布局
12/24 Span 分配策略:
javascript
// 智能span分配算法
function calculateOptimalSpan(field, context) {
const spanRules = {
// 全宽组件 (span: 24)
fullWidth: {
components: ["JnpfTextarea", "JnpfEditor", "JnpfChildTable", "JnpfUploadFz"],
condition: field => field.component.includes("textarea") || field.rows > 1
},
// 半宽组件 (span: 12)
halfWidth: {
components: ["JnpfInput", "JnpfSelect", "JnpfDatePicker", "JnpfInputNumber"],
condition: field => field.required || field.important
},
// 1/3宽组件 (span: 8)
thirdWidth: {
components: ["JnpfRadio", "JnpfCheckbox", "JnpfSwitch"],
condition: field => field.options && field.options.length <= 3
},
// 1/4宽组件 (span: 6)
quarterWidth: {
components: ["JnpfRate", "JnpfColorPicker", "JnpfIconPicker"],
condition: field => field.simple || field.compact
}
};
return determineSpan(field, spanRules, context);
}
智能字段分组:
javascript
// 字段分组算法
function groupFieldsIntelligently(fields) {
const groups = {
basic: {
label: "基本信息",
priority: 1,
fields: fields.filter(f => f.importance === 'high' || f.required)
},
contact: {
label: "联系信息",
priority: 2,
fields: fields.filter(f => /mobile|email|phone|address|contact/.test(f.field))
},
business: {
label: "业务信息",
priority: 3,
fields: fields.filter(f => /department|position|manager|project/.test(f.field))
},
extended: {
label: "扩展信息",
priority: 4,
fields: fields.filter(f => /remark|note|description|attachment/.test(f.field))
}
};
return optimizeGroupLayout(groups);
}
列表配置智能优化
优化机制:智能列宽分配、搜索字段选择、按钮配置优化
列宽智能计算:
javascript
// 列宽智能分配算法
function calculateColumnWidth(field, totalWidth, columnCount) {
const widthRules = {
// 固定宽度字段
fixed: {
id: 60,
index: 50,
actions: 120,
status: 80,
createTime: 120
},
// 按内容类型分配
byType: {
varchar: Math.max(field.dataLength * 8, 100),
decimal: 120,
datetime: 140,
text: 200
},
// 按重要性分配剩余宽度
byImportance: {
high: 0.3, // 重要字段占30%
medium: 0.2, // 普通字段占20%
low: 0.15 // 次要字段占15%
}
};
return calculateWidth(field, widthRules, totalWidth, columnCount);
}
搜索字段智能选择:
javascript
// 搜索字段自动选择
function selectSearchFields(fields, maxCount = 6) {
const searchableFields = fields.filter(field => {
return field.searchable !== false &&
!['text', 'longtext'].includes(field.dataType) &&
!field.field.includes('ID');
});
// 按重要性和使用频率排序
const sortedFields = searchableFields.sort((a, b) => {
const scoreA = calculateSearchScore(a);
const scoreB = calculateSearchScore(b);
return scoreB - scoreA;
});
return sortedFields.slice(0, maxCount);
}
按钮配置智能优化
优化策略:基于业务场景和权限的智能按钮配置
业务场景按钮映射:
javascript
// 智能按钮配置
function generateButtonConfig(businessScenario, permissions) {
const buttonTemplates = {
// 基础管理场景
basic: {
toolbar: [
{ value: "add", label: "新增", icon: "icon-ym-btn-add", permission: "add" },
{ value: "export", label: "导出", icon: "icon-ym-btn-download", permission: "export" },
{ value: "refresh", label: "刷新", icon: "icon-ym-btn-refresh", permission: "view" }
],
actions: [
{ value: "detail", label: "详情", icon: "icon-ym-menu-circle", permission: "view" },
{ value: "edit", label: "编辑", icon: "icon-ym-menu-edit", permission: "edit" },
{ value: "remove", label: "删除", icon: "icon-ym-menu-delete", permission: "delete" }
]
},
// 审批流程场景
workflow: {
toolbar: [
{ value: "add", label: "新增申请", icon: "icon-ym-btn-add", permission: "add" },
{ value: "export", label: "导出", icon: "icon-ym-btn-download", permission: "export" }
],
actions: [
{ value: "detail", label: "详情", icon: "icon-ym-menu-circle", permission: "view" },
{ value: "edit", label: "编辑", icon: "icon-ym-menu-edit", permission: "edit", condition: "status === 'draft'" },
{ value: "submit", label: "提交", icon: "icon-ym-menu-submit", permission: "submit", condition: "status === 'draft'" },
{ value: "approve", label: "审批", icon: "icon-ym-menu-approve", permission: "approve", condition: "status === 'pending'" }
]
}
};
return filterButtonsByPermission(buttonTemplates[businessScenario], permissions);
}
事件处理函数自动生成
生成机制:为列表和表单自动生成标准化的事件处理函数
生命周期钩子自动生成:
javascript
// 事件处理函数模板
function generateEventHandlers(componentType, config) {
const handlers = {
// 页面初始化事件
created() {
this.initializeComponent();
this.loadDictionaries();
this.bindEventListeners();
},
// 组件挂载事件
mounted() {
this.loadInitialData();
this.setupPermissions();
this.registerHotkeys();
},
// 数据加载完成事件
dataLoaded(data) {
this.processLoadedData(data);
this.updateSummaryInfo();
this.triggerAfterLoadHooks();
},
// 组件销毁前事件
beforeDestroy() {
this.cleanup();
this.unbindEventListeners();
this.clearTimers();
}
};
return customizeHandlers(handlers, componentType, config);
}
🔍 配置质量自动保证
完整性和一致性验证
验证机制:多维度自动检查配置的完整性和一致性
完整性检查:
javascript
// 配置完整性验证
function validateConfigCompleteness(config) {
const checks = {
// 基础字段检查
basicFields: validateBasicFields(config),
// 表单列表一致性
formListConsistency: validateFormListMatch(config.formData, config.columnData),
// 表结构一致性
tableStructureConsistency: validateTableFieldMatch(config.tables, config.formData),
// 按钮事件一致性
buttonEventConsistency: validateButtonEventMatch(config.columnData.btnsList, config.events)
};
return generateValidationReport(checks);
}
一致性检查:
javascript
// 一致性验证算法
function validateConsistency(config) {
const inconsistencies = [];
// 检查表单字段和列表字段的对应关系
const formFields = extractFormFields(config.formData);
const columnFields = extractColumnFields(config.columnData);
formFields.forEach(formField => {
const matchingColumn = columnFields.find(col => col.prop === formField.__vModel__);
if (!matchingColumn) {
inconsistencies.push({
type: "missing_column",
field: formField.__vModel__,
message: `表单字段 ${formField.__vModel__} 在列表中缺失对应列`
});
}
});
return inconsistencies;
}
自动修正机制
修正能力:发现问题后自动修正常见的配置错误
字段命名标准化:
javascript
// 字段命名自动修正
function standardizeFieldNames(config) {
const nameRules = {
// 驼峰转下划线
camelToSnake: field => field.replace(/([A-Z])/g, '_$1').toUpperCase(),
// 移除特殊字符
removeSpecialChars: field => field.replace(/[^A-Z0-9_]/g, ''),
// 统一前缀
addPrefix: (field, prefix) => `${prefix}_${field}`
};
return applyNamingRules(config, nameRules);
}
组件配置自动补全:
javascript
// 组件配置补全
function completeComponentConfig(componentConfig) {
const defaults = {
JnpfInput: {
clearable: true,
placeholder: `请输入${componentConfig.label}`,
style: { width: "100%" }
},
JnpfSelect: {
clearable: true,
placeholder: `请选择${componentConfig.label}`,
props: { label: "fullName", value: "id" }
},
JnpfDatePicker: {
clearable: true,
format: "yyyy-MM-dd",
placeholder: `请选择${componentConfig.label}`
}
};
return mergeDefaults(componentConfig, defaults);
}
🎯 总结
JPwise系统自动化处理机制为配置生成提供了强大的智能化支撑:
✅ 减少手工工作 - 90%的配置内容自动生成
✅ 提升配置质量 - 自动验证和修正机制
✅ 确保标准一致 - 统一的标准和规范
✅ 支持复杂场景 - 智能识别和适配各种业务需求
这些自动化机制确保了生成的配置不仅功能完整,还具备了高质量、高一致性和高可维护性的特点。