请选择咨询类型
请选择咨询类型
扫码直接申请
上海云座技术支持中心公众号
我们将在 24 小时之内联系你。
┌─────────────────────────────────────────┐
│ 业务应用层 │
├─────────────────────────────────────────┤
│ 星云低代码模块 │ 源码开发模块 │
├─────────────────────────────────────────┤
│ 统一技术栈(Vue + Java) │
├─────────────────────────────────────────┤
│ 现有系统基础架构 │
└─────────────────────────────────────────┘
核心业务逻辑:源码开发保障稳定性和性能
定制化功能:低代码快速实现和迭代
标准功能页面:源码开发维护
扩展功能页面:低代码动态生成
基础组件:源码开发保证一致性
业务组件:低代码快速定制
现有ERP系统(源码) + 客户特定需求(低代码)
价值:保护核心资产,快速响应个性化需求
标准软件产品(源码) + 行业解决方案(低代码)
价值:一套基础产品,多个行业版本
遗留系统(源码) + 新功能模块(低代码)
价值:渐进式现代化,降低改造风险
// 生成的Java实体类示例
@Entity
@Table(name = "user_info")
public class UserInfo {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
// 可视化配置的字段自动生成
@Column(name = "user_name", length = 50)
private String userName;
@Column(name = "email", length = 100)
private String email;
// 自动生成getter/setter方法
// 自动生成基础CRUD操作
}
源码修改检测 → 模型解析 → 可视化元素更新 → 平台同步
解析源码结构,提取业务逻辑
转换为平台内部模型表示
def sync_code_changes(low_code_model, source_code_changes):
# 检测变更冲突
conflicts = detect_conflicts(low_code_model, source_code_changes)
if not conflicts:
# 无冲突直接同步
apply_changes(low_code_model, source_code_changes)
else:
# 冲突解决策略
resolved_model = resolve_conflicts(low_code_model, conflicts)
return resolved_model
双向修改历史追踪
冲突自动检测与解决
低代码工作流节点 → 生成状态机代码
用户操作事件 → 生成事件监听器
业务规则配置 → 生成验证逻辑
数据库表设计(低代码) ↔ JPA实体类(源码)
表单配置(低代码) ↔ Vue组件(源码)
API设计(低代码) ↔ Controller层(源码)
// Vue组件自定义脚本示例
export default {
methods: {
// 自定义业务逻辑
async validateCustomBusinessRule(formData) {
const result = await this.$http.post('/api/validate-rule', formData);
// 复杂计算逻辑
const score = this.calculateBusinessScore(result.data);
// 动态UI更新
this.updateUIBasedOnScore(score);
return score > THRESHOLD;
},
// 集成第三方服务
async callExternalAPI(endpoint, payload) {
try {
const response = await axios.post(endpoint, payload, {
headers: this.getAuthHeaders()
});
return this.transformAPIResponse(response.data);
} catch (error) {
this.handleAPIError(error);
throw new CustomBusinessError('External API call failed');
}
}
}
}
// Groovy脚本集成示例
@Component
public class CustomBusinessRuleEngine {
@Autowired
private ScriptEngineManager scriptEngineManager;
public Object executeBusinessRule(String ruleScript, Map<String, Object> context) {
ScriptEngine engine = scriptEngineManager.getEngineByName("groovy");
// 注入上下文变量
context.forEach((key, value) -> engine.put(key, value));
try {
// 执行动态脚本
return engine.eval(ruleScript);
} catch (ScriptException e) {
throw new BusinessRuleException("脚本执行失败", e);
}
}
}
脚本权限控制:
- 文件系统访问限制
- 网络请求白名单
- 系统API调用审核
- 内存使用监控
脚本编译缓存:
- 热点脚本预编译
- 字节码缓存
- 即时编译优化
- 内存垃圾回收
// 业务规则动态配置与执行
class DynamicRuleEngine {
constructor() {
this.rules = new Map();
this.ruleContext = new RuleContext();
}
// 动态加载规则
async loadRule(ruleId, ruleScript) {
const compiledRule = this.compileRule(ruleScript);
this.rules.set(ruleId, compiledRule);
}
// 执行规则链
async executeRuleChain(inputData) {
let result = inputData;
for (const [ruleId, rule] of this.rules) {
result = await rule.execute(result, this.ruleContext);
if (result.shouldStop) {
break;
}
}
return result;
}
}
# Python数据加工脚本示例
def transform_sales_data(raw_data, config):
"""销售数据复杂转换逻辑"""
# 数据清洗
cleaned_data = data_cleaning(raw_data, config['cleaning_rules'])
# 业务计算
enriched_data = []
for item in cleaned_data:
enriched_item = {
**item,
'sales_amount': calculate_sales_amount(item),
'profit_margin': calculate_profit_margin(item),
'performance_score': calculate_performance_score(item)
}
# 高级分析指标
if config.get('advanced_metrics'):
enriched_item.update(calculate_advanced_metrics(item))
enriched_data.append(enriched_item)
# 数据聚合
if config.get('aggregation'):
return aggregate_data(enriched_data, config['aggregation'])
return enriched_data
1. 组件插件 - UI元素扩展
2. 服务插件 - 后端能力扩展
3. 连接器插件 - 外部系统集成
4. 模板插件 - 业务场景快速复制
5. 工具插件 - 开发效率提升
interface ComponentPlugin {
// 插件元数据
metadata: {
name: string;
version: string;
description: string;
author: string;
category: string;
};
// 组件定义
component: VueComponent;
// 配置面板
configPanel?: VueComponent;
// 初始化钩子
initialize?(context: PluginContext): Promise<void>;
// 销毁钩子
destroy?(): void;
}
public interface ServicePlugin {
/**
* 获取服务名称
*/
String getName();
/**
* 获取服务类型
*/
ServiceType getType();
/**
* 初始化服务
*/
void initialize(PluginContext context);
/**
* 执行服务
*/
Object execute(ServiceRequest request);
/**
* 获取服务元数据
*/
ServiceMetadata getMetadata();
/**
* 销毁服务
*/
void destroy();
}
# 创建新插件
npx @xingyun/lowcode-cli create-plugin my-custom-plugin
# 插件开发模式
npm run dev:plugin
# 插件构建
npm run build:plugin
# 插件测试
npm run test:plugin
# plugin.yaml
name: "sales-chart-plugin"
version: "1.0.0"
description: "销售数据分析图表插件"
author: "Your Name"
dependencies:
- "chart.js:^3.0.0"
- "moment:^2.29.0"
permissions:
- "data:read"
- "ui:render"
entry:
component: "./src/SalesChart.vue"
service: "./src/SalesService.js"
- MES系统组件
- 设备监控图表
- 生产报表模板
- 质量检测服务
- 风险控制组件
- 金融图表库
- 合规检查服务
- 报表生成引擎
// AI图表分析插件
export class ChartAnalysisPlugin {
async analyzeChart(chartData, analysisType) {
const prompt = this.buildAnalysisPrompt(chartData, analysisType);
const result = await this.callAIService(prompt);
return this.parseAIResponse(result);
}
// 自然语言生成图表
async generateChartFromText(description) {
const chartConfig = await this.interpretChartDescription(description);
return this.renderChart(chartConfig);
}
}
// 微信集成插件
@Service
public class WeChatIntegrationPlugin implements ServicePlugin {
@Override
public Object execute(ServiceRequest request) {
WeChatRequest wechatRequest = convertRequest(request);
switch (request.getAction()) {
case "send_message":
return weChatService.sendMessage(wechatRequest);
case "create_menu":
return weChatService.createMenu(wechatRequest);
case "user_info":
return weChatService.getUserInfo(wechatRequest);
default:
throw new UnsupportedOperationException("不支持的微信操作");
}
}
}
技术选型自由:不锁定特定技术栈
渐进式迁移:风险可控的技术升级
代码可读性:生成标准、规范的代码
技术债务控制:避免低代码平台特有的技术债务
安全合规:满足企业安全审计要求
性能可控:关键业务仍可用源码优化性能
扫码直接申请
上海云座科技
销售咨询:400-629-6918