> 公司资讯 > 公司合作伙伴 >

蓝鲸ERP开发框架7.0版本正式发布

文章出处:蓝鲸云来源:未知 人气:0 发表时间:2018-03-27 17:50

蓝鲸 ERP 开发框架 7.0

面向对象的 RAD 开发平台 —— 客户端 BPL 分模块、服务端 DLL 插件、代码生成器一键生成页面与业务类,
并支持源码级二次开发、插件化扩展与云端多工厂部署。

Delphi 7-XE5DevExpress 组件UniDAC 数据库引擎RemObjects 跨平台远程框架 BPL / DLL 模块化代码生成器数据字典插件开发
版本发布原文
2014 年 1 月 1 日,蓝鲸ERP开发框架 7.0 版本正式发布

2014年1月1日,蓝鲸ERP开发框架7.0版本正式发布。

框架特点

1、蓝鲸ERP开发框架以面向对象的RAD为基础,支持Delphi 7-XE5版本,支持UniDAC等数据库引擎,集成RemObjects跨平台远程框架,纯DevExpress组件,允许用户方便地创建跨网络通信的客户端以及服务器应用程序。

2、提供数据库连接池、对象池等

3、支持服务端DLL插件和客户端BPL分模块开发

客户端

1、主窗口是个容器,可以动态装载所有用户具备访问权限的功能模块。

2、开发的功能模块只需要设置【应用模块】,开放权限即可以显示在主界面上

3、主界面流程图用户可以自行维护,功能模块、自定义报表都可以直接拖拉至图形界面即可。

4、标准报表集成FastReport 4.13版本,用户可以自行维护

5、报表预览结果

服务端

1、服务端所有服务都可以动态加载

代码生成器

框架功能一览
客户端、服务端与代码生成器界面
蓝鲸ERP框架
框架总体
面向对象 RAD 架构
主窗口容器
客户端主窗口
动态装载功能模块
应用模块设置
应用模块
开放权限即显示
主界面流程图
主界面流程图
模块与报表可拖拉
FastReport报表
标准报表
集成 FastReport 4.13
报表预览
报表预览结果
用户可自行维护
服务端动态加载
服务端
所有服务动态加载
代码生成器
代码生成器
一键生成页面与业务类
产品定位与技术架构
蓝鲸 WIN 与蓝鲸 Cloud 的分工与开发语言要求

产品定位

蓝鲸 WIN 聚焦于单组织、单地点企业的运营协同完整应用;蓝鲸 Cloud 聚焦于运营管控型的多地点、多工厂制造企业及服务业,打造开放的 MES 云平台。

开发语言

后端:C# / .NET + IIS + SQL Server 2014 数据库;
前端:JavaScript + HTML5 + CSS3 + AJAX。
开发人员要求:计算机/软件专业毕业,精通 C# 语言开发及 SQL Server 数据库基本操作。

代码生成器
菜单【代码生成】→ 新建 → 填表 → 配置 → 一键生成 Vue 页面 / Model / 业务类
1
选择菜单

进入【代码生成】点击新建;仅做修改可跳过,直接改页面配置后保存。

2
填写表/视图信息

确认后自动从后台加载表结构;表名须与数据库一致。

3
配置表结构

配置查询与新增/编辑信息,保存后生成 Vue 页面、Model、业务类。

4
查看生成代码

在 VS 中搜索表名即可看到全部生成文件,Vue 代码可在 VSCode 中查看。

5
菜单配置

Url 取 router/viewGird.js 中对应 path;表名须一致,否则权限验证不通过。

6
查看页面

用 WebApi/dev_run.bat 启动后台,访问对应路由即可预览。

7
参数与表结构配置

按需设置命名空间、项目文件夹与各字段的编辑/查询布局。

配置项说明
项目命名空间 / 项目文件夹代码生成时所在类库与文件夹(现框架一个模块一个类库,文件夹由生成器自动创建)。
表别名替代原表名生成 Model 与业务类,一个表只能有一个别名;使用别名前必须删除已生成文件。
排序字段前台表格排序字段,若非自增主键必须设置。
Vue 视图绝对路径生成 Vue 页面的存放位置,如 E:/project/src/views。
编辑行 / 编辑列决定新建、编辑时字段所在位置(行=1、列=2 即第 1 行第 2 列);不在配置中的字段编辑时会被过滤移除。修改后需点击【生成model】,设为 0 表示不显示。
查询行 / 查询列 · 查询类型查询区字段布局与标签类型(日期、下拉框、text 等)。
数据源下拉框/多选框对应的字典编号,在【系统 → 下拉框绑定设置】中配置,代码生成器选中后其余由框架自动完成。
table 列显示类型列存图片、Excel 等文件路径时选择 img / excel,点击文件名即自动下载。
主键 / 是否只读 / 可为空必须设置一个主键;只读字段在编辑与新建时不可修改;可为空涉及前后端验证规则。

列最大长度注意:若使用 MySQL 且主键为 Guid,数据库字段类型应设置为 char、长度 36,否则生成的实体 Model 会与数据库类型对应不上。

后台开发常用能力
蓝鲸框架后台开发均基于代码生成器生成类进行扩展
01
数据库访问

支持 repository、DapperContext、DbContext、FindAsIQueryable、DBServerProvider.SqlDapper/DbContext 等方式;EF 默认开启 NoTracking,更新需调用 repository.Update。

02
事务处理

EF 事务 repository.DbContextBeginTransaction;Dapper 事务 DBServerProvider.SqlDapper.BeginTransaction,返回 true 才提交。

03
执行原生 SQL

EF 用 FromSqlInterpolated 参数化查询;多表关联可用 LINQ 或 Dapper QueryList 查询列表/首行/标量,并可调用存储过程。

04
用户与权限

UserContext.Current 取当前用户信息与权限;RoleContext 取所有子角色与用户;接口用 [ApiActionPermission] 声明表级权限。

05
缓存

通过 ICacheService 使用 Memory 缓存,需要 Redis 时在 appsetting.json 设置 UseRedis:true 即可切换。

06
定时任务

定时任务调用框架接口地址,在接口方法上添加 [ApiTask] 属性即可由调度器执行。

07
参数与实体校验

可复用后台校验一次性配置参数,无需在方法中写 if/else;实体用 ValidationEntity / ValidationEntityList 校验字段类型与长度。

08
导入导出

导入导出字段可指定;支持下载模板、自定义读取 Excel 单元格、SqlBulkInsert 批量插入(SQL Server 与 MySQL 通用)。

09
其他控制

[AllowAnonymous] 接口不验证登录;[FixedToken] token 永不过期;JsonNormal() 取消小驼峰;支持取消跨域策略与自定义 HttpContext 取参。

业务扩展实现
代码生成器默认的增、删、改、查、导入、导出、审核不满足业务时,在 Service 的钩子中扩展
查询与排序

GetPageData 中可用 QueryRelativeList 追加查询条件、QuerySql 写原生 SQL、QueryRelativeExpression 追加 LINQ 条件(如当前用户只能操作本人及下级角色数据)、OrderByExpression 指定多字段排序、GetPageDataOnExecuted 处理返回结果、SummaryExpress 做表格求和。

新增与编辑

Add/Update 提供 OnExecute(提交前过滤)、OnExecuting(保存数据库前校验,可中止并回滚)、OnExecuted(保存后处理)、WorkFlowExecuting/Executed(审批流程前后与邮件通知)。编辑可移除前端提交字段或手动赋值。

删除、审核与回退

Del 提供删除前后处理并支持是否连同明细删除;Audit 支持审批流执行前后、非审批流审核前后处理,并可调用 base.RewriteFlow 回退到首个审批人重新审批。

扩展点用途
QueryRelativeList追加前台提交之外的查询条件,可动态生成 OR 模糊/等于条件。
QuerySql自定义原生查询 SQL,必须返回 select * 全部字段;内部过滤不影响界面提交的查询。
QueryRelativeExpression追加 LINQ 查询表达式,常用于数据权限隔离(仅本人/本部门)。
AddOnExecute / UpdateOnExecute保存前对前台提交的原生数据做修改或移除字段。
AddOnExecuting / UpdateOnExecuting数据库保存前校验(明细必填、数量区间等),返回 Error 中止并回滚事务。
AddOnExecuted / UpdateOnExecuted数据库已写入但事务未提交,此时返回 Error 将回滚。
AddWorkFlowExecuting / Executed进入审批流程前拦截、写入流程后向审批人发送邮件通知。
AuditWorkFlowExecuting / Executed审批节点前后处理,lastAudit 为 true 表示流程结束。
Export / Import / DownLoadTemplate / Upload限制导出数量与字段、定制导入模板列、逐单元格读取 Excel 值、自定义上传路径。

注意:若表有导出功能,GetPageData 中的扩展代码需在 export 方法里同样复制一份,否则导出结果与界面查询不一致。

多表关联与视图开发
复杂查询优先建视图,再对视图生成代码
方法一(推荐):创建多表关联视图后生成代码;若需新增、删除、修改,参照【视图操作】并同时为原表生成代码(只需 Model 与业务类)。
方法二:关联逻辑较简单时,在后台基础代码扩展实现的 GetPageData 中自定义 QuerySql 属性。
视图增删改:视图不能直接增删改,在 VxxxService 中重写对应方法并转调原表 Service(如 return SellOrderService.Instance.Update(saveModel);),字段不一致时可直接改写视图提交的字段信息。
字典与描述:新建表或视图若未维护字段描述,框架可自动从数据字典表(BW_ADMMD)取得字段中文描述,无需逐个手工填写。
字典云端统一:点击工具栏【同步】→【上传数据字典】,上传后可在云端统一查询与维护,保证各客户数据字典一致。
数据字典生成:可根据已有数据字典的数据表自动生成数据字典,缺失字段需自行补充完整。
插件(子模块)开发
复制现有插件 → 改命名空间 → 改程序集名 → 改路由 → 生成发布
1
打开主项目

使用 VS2017 打开主项目,进入插件目录文件夹。

2
复制现有插件

复制一个现有插件并改为需要的子插件名称。

3
重命名文件

将 .csproj 与 .csproj.user 文件名改为子系统名称并引入解决方案。

4
调整命名空间

把子插件命名空间改为新子系统前缀,避免多子系统重复报错。

5
设置程序集名

右键项目属性,把程序集名称改为子系统名称(如 BlueWhale.Application.Web.DEV)。

6
修改路由文件

每建立一个子模块都需同步修改路由文件,重新生成并运行。

发布子插件:先在项目中排除不需要的目录与框架文件,只发布插件主程序目录;生成后取 bin 目录下的 BlueWhale.Application.Web.XXX.dll 复制到主程序 bin 目录,资源文件(Views 及所有子文件)复制到主程序 Areas/XXX/ 目录下,重新运行即可。

框架带来的价值

蓝鲸 ERP 开发框架把「界面 + 业务类 + 权限 + 数据字典 + 报表」标准化为可批量生成、可扩展、可插件化的开发体系:标准功能零代码快速上线,客户化需求通过 Service 钩子与 Partial 扩展实现,新模块以插件方式并行开发互不干扰,既保证交付速度,也保证源码完整交付给客户自主维护。

相关方案与案例

联系我们:全国统一服务热线 18046986669 | 官网 www.ljepic.com | 邮箱 bluewhalesupport@126.com —— 蓝鲸智造,让制造更精益、更智能。

X

蓝鲸客服中心

点击按钮可通过QQ进行沟通,请确认启动QQ

  • 业务咨询
    业务相关,请咨询售前客服,为避免丢失消息,请尽量添加好友
  • 售后支持
    点击这里给我发消息 蓝鲸 紧急电话:18046986669
    售后问题处理,请QQ在线售后技术,或者提交服务请求,我们会尽全力解决您的问题
  • 投诉/合作
    邮箱:蓝鲸顾问
    我们会全力以赴满足您的服务请求