• 工作流_工作流平台 JNPF3.3 旗舰版 企业版 开发框架


     NPF已经是一套成熟的快速开发框架,并在不断升级更新;JNPF快速开发能提高企业的竞争能力,包括降低开发成本、提高产品质量、改善客户满意程度、控制开发进度等。

    http://www.jnpfsoft.com/?from=CSDNm

    大屏设计介绍:

    画布采用网格系统,自动吸附每个控件的布局,做到整齐划一;

    大量可视化控件效果,零编码拖拽式操作,支持自定义样式,自定义数据库;

    拖拽式自由布局,多种图表、控件、表格等组件任你摆放,想怎么放就怎么放;

    数十种可视化图表示例,满足各类的阅读偏好,为您展示全面的数据可视化报告;

    打破信息孤岛问题,实时为你展示数据的变化,让你随时查看公司的业务情况;

    内置大量专业、酷炫的可视化动效组件、满足您对各种数据场景的动态需求。

    http://www.jnpfsoft.com/service.html?from=CSDNm

    平台特性

    • 采用前后端分离的模式:前端基于vue-element-admin框架定制开发;

    • 统一授权、认证:基于 Spring SecuritySpring OAuth2、JWT 实现的统一认证服务中心,登录基于 Spring Security 的标准登录流程。客户端授权支持 Oauth2.0的四种授权模式:授权码模式简化模式密码模式客户端模式,授权流程跟标准的Oauth2流程一致。web 端采用简化模式登录系统,移动端可使用密码模式(password)登录系统。同时还支持基于Spring Social的三方账号登录方式,如微信/QQ微博等,并提供拓展模式,支持更多三方渠道。

    • 灵活的权限控制:基于RBAC权限管理,该功能模块下的功能用于维护企业的组织架构信息以及员工信息。主要包含了组织信息、组织架构、企业通讯录、通信录同步等功能。用户可在此功能模块下维护公司的组织架构信息(组织/部门/角色/岗位)和用户信息,也可以通过第三方应用(钉钉/企业微信)将组织架构信息一键导入到系统中,也可以使用组织架构和员工信息的导入功能将数据导入到系统中。

    • 支持多租户:简单配置即可转变多租户模式,实现数据隔离;

    • 支持多种数据库:支持MySQLSQL ServerOraclePostgreSQL达梦数据库人大金仓数据库等,您无需关心不同类型数据库间的语法区别;

    • 统一接口管理:基于Swagger拓展的API文档服务,主要提供在平台开发阶段的API文档管理和API调试等功能。

    1. <h1>Hashing</h1>
    2. <p>Time: @_time</p>
    3. <button class="btn btn-primary" @onclick="Hash">Click me</button>
    4. @code {
    5. private const string Sonnet18 =
    6. @"Shall I compare thee to a summer’s day?
    7. Thou art more lovely and more temperate:
    8. Rough winds do shake the darling buds of May,
    9. And summer’s lease hath all too short a date;
    10. Sometime too hot the eye of heaven shines,
    11. And often is his gold complexion dimm'd;
    12. And every fair from fair sometime declines,
    13. By chance or nature’s changing course untrimm'd;
    14. But thy eternal summer shall not fade,
    15. Nor lose possession of that fair thou ow’st;
    16. Nor shall death brag thou wander’st in his shade,
    17. When in eternal lines to time thou grow’st:
    18. So long as men can breathe or eyes can see,
    19. So long lives this, and this gives life to thee.";
    20. private TimeSpan _time;
    21. private void Hash()
    22. {
    23. byte[] bytes = Encoding.UTF8.GetBytes(Sonnet18);
    24. var sw = Stopwatch.StartNew();
    25. for (int i = 0; i < 2000; i++)
    26. {
    27. _ = SHA256.HashData(bytes);
    28. }
    29. _time = sw.Elapsed;
    30. }
    31. }

     

    平台组成

    前端应用

    • jnpf-web:前端主项目,基于vue-element-admin框架定制开发

    • jnpf-web-datascreen:前端大屏项目

    • jnpf-web-datareport:前端报表项目

    • jnpf-web-tenant:前端多租户项目

    后端应用

    • jnpf-java-boot:boot后端主项目;

    • jnpf-datareport:报表设计服务,通过配置数据集,通过执行SQL获取数据以渲染平面报表、图形报表的服务;

    • jnpf-file-preview:本地文件预览服务,支持doc,docx,xls,xlsx,ppt,pptx,pdf,txt,zip,rar,图片,视频,音频等格式文件;

    • jnpf-tenant:多租户服务,简单配置可实现数据隔离模式多租户应用。

    1. {
    2. private readonly Stream _stream;
    3. public long BytesRead;
    4. public PassthroughTrackingStream(Stream stream) => _stream = stream;
    5. public override bool CanWrite => true;
    6. public override bool CanRead => true;
    7. public override async ValueTask<int> ReadAsync(Memory<byte> buffer, CancellationToken cancellationToken)
    8. {
    9. int n = await _stream.ReadAsync(buffer, cancellationToken);
    10. BytesRead += n;
    11. return n;
    12. }
    13. public override ValueTask WriteAsync(ReadOnlyMemory<byte> buffer, CancellationToken cancellationToken) =>
    14. _stream.WriteAsync(buffer, cancellationToken);
    15. protected override void Dispose(bool disposing) => _stream.Dispose();
    16. public override bool CanSeek => false;
    17. public override long Length => throw new NotSupportedException();
    18. public override long Position { get => throw new NotSupportedException(); set => throw new NotSupportedException(); }
    19. public override void Flush() { }
    20. public override int Read(byte[] buffer, int offset, int count) => throw new NotSupportedException();
    21. public override long Seek(long offset, SeekOrigin origin) => throw new NotSupportedException();
    22. public override void SetLength(long value) => throw new NotSupportedException();
    23. public override void Write(byte[] buffer, int offset, int count) => throw new NotSupportedException();
    24. }
  • 相关阅读:
    jdk1.8的环境配置
    Python——序列
    Java知识体系索引
    uniapp vue3 裁剪头像(ksp-cropper) 支持旋转 和 缩放
    C语言十进制转其它进制
    提高Qt开发软件运算性能提升
    客厅窗帘要安装纱帘吗?怎么选择纱帘?-好佳居窗帘十大品牌
    [LeetCode周赛复盘] 第 321 场周赛20221127
    SpringBoot项目--电脑商城【商品热销排名】
    操作系统reboot之后ddr内容还在吗?
  • 原文地址:https://blog.csdn.net/shshshhhhh/article/details/125444506