Skyeye v3.19.6:零代码平台如何把制造业务堆进一套系统

2026-06-01 21 预计阅读时间:1 分钟
来源:oschina.net AI 摘要 原文链接

免责声明:本文为 AI 摘要整理,建议结合原文阅读。摘要可能省略上下文、版本差异或边界条件,不作为官方说明。

预计阅读时间:12 分钟

制造业的软件系统历来是"多而散"——CRM 管客户、ERP 管物料、MES 管车间、OA 管审批,每个系统各自一套账号、一套流程,数据打通靠人工导表。Skyeye 云智能制造平台 v3.19.6 的思路是:用零代码 + 统一技术栈,把超过 100 种业务流程装进同一个运行实例,让工厂从"买一堆系统"变成"配一套模块"。

技术栈选型的逻辑

Skyeye 的三层组合并不随意:

  • SpringBoot(后端):Java 生态在制造业 IT 中渗透率极高,运维团队熟悉,中间件兼容性好。SpringBoot 的自动配置和 starter 机制也适合模块化打包——每个业务域(ERP、MES、OA)可以独立 starter,按需引入。
  • UNI-APP(移动端):一套代码编译到微信小程序、H5、App,对车间巡检、扫码报工这类移动场景来说,省去了多端重复开发。
  • Ant Design Vue(PC 端管理界面):表单密集、数据表格密集的管理后台,Ant Design Vue 的组件库直接覆盖了 80% 的 UI 需求,剩下的靠零代码表单设计器拖拽补齐。

这套组合的核心收益不是"技术先进",而是人员可替换——懂 SpringBoot 的 Java 开发者市场上充足,Vue 前端也容易招,UNI-APP 有一定跨端经验即可上手。对制造企业来说,技术栈的可持续性比炫酷更重要。

100+ 流程背后的零代码机制

"100 多种电子流程"听起来像功能堆砌,但关键在于这些流程是否真的能零代码配置出来,而不是硬编码。Skyeye 的工作流引擎 + 表单设计器组合,本质上是把"流程定义"和"数据模型"都变成了配置项:

  • 流程定义:用可视化节点编排审批链路(提交→部门审核→财务确认→归档),节点上挂表单权限(哪些字段只读、哪些可编辑)。
  • 数据模型:拖拽字段生成表结构,平台自动建表、生成 CRUD 接口和页面。
  • 权限控制:角色→菜单→数据范围三层配置,不同车间看到不同工单数据。

这意味着新增一条"设备报修→维修派工→验收关闭"的流程,不需要写代码——在流程设计器里画节点、在表单设计器里配字段、在权限里设可见范围,发布即生效。

实操:用 SpringBoot 起一个 Skyeye 风格的业务模块

下面演示如何在一个类似 Skyeye 架构的 SpringBoot 项目中,用最精简的方式新增一个"设备报修"模块——包含实体、接口、前端页面配置思路。这段代码可以直接复制到 SpringBoot 2.7+ 项目中运行。

1. 实体与数据层

// EquipmentRepair.java — 设备报修实体
package com.skyeye.mes.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.time.LocalDateTime;

@Data
@TableName("mes_equipment_repair")
public class EquipmentRepair {
    private Long id;
    private String equipmentCode;   // 设备编号
    private String faultDesc;       // 故障描述
    private String reporter;        // 报修人
    private String status;          // 状态: PENDING/DISPATCHED/DONE
    private LocalDateTime createTime;
    private LocalDateTime updateTime;
}
// EquipmentRepairMapper.java
package com.skyeye.mes.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.skyeye.mes.entity.EquipmentRepair;
import org.apache.ibatis.annotations.Mapper;

@Mapper
public interface EquipmentRepairMapper extends BaseMapper<EquipmentRepair> {
}

2. 服务与接口层

// EquipmentRepairService.java
package com.skyeye.mes.service;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.skyeye.mes.entity.EquipmentRepair;
import com.skyeye.mes.mapper.EquipmentRepairMapper;
import org.springframework.stereotype.Service;

@Service
public class EquipmentRepairService
        extends ServiceImpl<EquipmentRepairMapper, EquipmentRepair> {

    /** 派工:将状态从 PENDING 改为 DISPATCHED,记录维修人 */
    public boolean dispatch(Long repairId, String repairWorker) {
        EquipmentRepair repair = getById(repairId);
        if (repair == null || !"PENDING".equals(repair.getStatus())) {
            return false;
        }
        repair.setStatus("DISPATCHED");
        repair.setUpdateTime(LocalDateTime.now());
        return updateById(repair);
    }
}
// EquipmentRepairController.java
package com.skyeye.mes.controller;

import com.skyeye.mes.entity.EquipmentRepair;
import com.skyeye.mes.service.EquipmentRepairService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;

@RestController
@RequestMapping("/api/mes/equipment-repair")
public class EquipmentRepairController {

    @Autowired
    private EquipmentRepairService service;

    @GetMapping("/list")
    public List<EquipmentRepair> list() {
        return service.list();
    }

    @PostMapping("/submit")
    public boolean submit(@RequestBody EquipmentRepair repair) {
        repair.setStatus("PENDING");
        repair.setCreateTime(LocalDateTime.now());
        return service.save(repair);
    }

    @PostMapping("/dispatch/{id}")
    public boolean dispatch(@PathVariable Long id,
                            @RequestParam String worker) {
        return service.dispatch(id, worker);
    }
}

3. 建表 SQL(MySQL)

CREATE TABLE mes_equipment_repair (
    id            BIGINT PRIMARY KEY AUTO_INCREMENT,
    equipment_code VARCHAR(64) NOT NULL COMMENT '设备编号',
    fault_desc     VARCHAR(512) NOT NULL COMMENT '故障描述',
    reporter       VARCHAR(64) NOT NULL COMMENT '报修人',
    status         VARCHAR(16) NOT NULL DEFAULT 'PENDING' COMMENT 'PENDING/DISPATCHED/DONE',
    create_time    DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
    update_time    DATETIME ON UPDATE CURRENT_TIMESTAMP,
    INDEX idx_status (status),
    INDEX idx_equipment (equipment_code)
) COMMENT='设备报修工单';

4. 前端页面配置思路(Ant Design Vue)

在零代码平台中,上面的接口会被表单设计器自动绑定。手动对接时,核心页面只需一个表格 + 一个弹窗表单:

<!-- EquipmentRepairList.vue — 简化示意 -->
<template>
  <a-table :columns="columns" :data-source="repairs" row-key="id">
    <template #action="{ record }">
      <a-button v-if="record.status === 'PENDING'"
                @click="dispatch(record.id)">派工</a-button>
    </template>
  </a-table>
</template>

<script setup>
import { ref, onMounted } from 'vue'
import axios from 'axios'

const repairs = ref([])
const columns = [
  { title: '设备编号', dataIndex: 'equipmentCode' },
  { title: '故障描述', dataIndex: 'faultDesc' },
  { title: '报修人', dataIndex: 'reporter' },
  { title: '状态', dataIndex: 'status' },
  { title: '操作', slots: { customRender: 'action' } }
]

onMounted(async () => {
  repairs.value = (await axios.get('/api/mes/equipment-repair/list')).data
})

async function dispatch(id) {
  await axios.post(`/api/mes/equipment-repair/dispatch/${id}`, null,
    { params: { worker: '张师傅' } })
  onMounted() // 刷新列表
}
</script>

运行前提:SpringBoot 2.7+、MyBatis-Plus 3.5+、MySQL 5.7+、Vue 3 + Ant Design Vue 3.x。把上面的 Java 类和 SQL 放进项目,启动后访问 /api/mes/equipment-repair/list 即可验证接口。

这段示例展示了 Skyeye 架构中"一个业务模块"的最小骨架——在真正的零代码平台上,实体、接口、页面都不需要手写,而是通过配置生成。但理解这个骨架,有助于你在平台上做二次扩展时知道底层在干什么。

选型之前:零代码制造平台的边界与取舍

Skyeye 覆盖的功能域很广(CRM → ERP → MES → OA → EHR → 财务 → 考勤 → 薪资 → 商城 → AI),但"广"本身不等于"适合你"。落地前需要想清楚几件事:

维度 零代码平台优势 需要警惕的点
上线速度 流程和表单配置即发布,1-2 周可跑通一个业务域 复杂计算逻辑(如排程算法、成本分摊)仍需写代码或外挂服务
定制深度 字段、流程、权限都可配置 深度定制 UI 交互(如车间大屏实时看板)受限于设计器能力
数据打通 同一数据库、同一用户体系,跨模块查询天然可行 大量模块共用一库,数据量大后需分库或读写分离策略
运维成本 一套系统统一升级,不用协调多厂商版本 单点故障影响面大,高可用架构必须提前规划
人员要求 业务人员可配流程,降低开发依赖 平台本身的运维和二次开发仍需懂 SpringBoot + Vue 的人

适用场景:中小制造企业(50-500 人),业务流程标准化程度较高,IT 团队 2-5 人,需要快速把散落的 Excel 和纸质流程数字化。

不太适合:大型集团需要多工厂独立部署 + 数据汇总;有复杂排程、质量统计模型等深度算法需求的车间;对 UI 交互有严格品牌定制要求的场景。

上手检查清单

  1. 确认核心域:先列出你必须跑通的 3 个业务域(比如 MES 工单 + OA 审批 + CRM 客户),不要一开始就开全部模块。
  2. 验证流程设计器:用你最复杂的审批链路(比如涉及多部门会签的采购审批)在演示环境里完整配置一遍,看节点类型和权限控制是否够用。
  3. 检查数据量边界:问清楚单表千万级数据下的查询性能方案——是分库、冷热分离,还是只靠索引。
  4. 评估二次开发通道:确认平台是否允许你写自定义 SpringBoot Service 并注入到流程节点中,这是零代码平台"不零"时的逃生通道。
  5. 部署模式:SaaS 多租户还是私有化单实例?制造数据敏感度通常偏高,私有化部署更常见,确认授权和升级机制。

零代码不是"不用懂技术",而是"把重复的 CRUD 和流程编排交给平台,把精力留给真正需要定制的业务逻辑"。Skyeye v3.19.6 的价值在于它用一套成熟技术栈把制造行业最常见的 100+ 流程做成了可配置资产——你的工作是从这堆资产里挑出真正需要的部分,而不是全盘照搬。


相关推荐