近期基于WTM框架开发了一套采购数据分析与预警系统,前端用的是框架Vue模板。
框架上手成本很低,按官网文档快速创建一个项目:
快速创建Vue Net6前后分离项目
项目创建完成后,正常情况下用VS打开直接F5即可运行。
WTM的代码生成可以用来解决一些基础数据管理功能,比如供应商基本信息管理、预警规则配置、同步日志、预警接收人配置等增删改查,其它功能主要是定制化开发。
项目需求主要有三大模块:
一、数据抽取与清洗
二、数据查询与分析
三、数据预警与消息提醒
数据抽取和消息发送使用了WtmJob来处理,注意Wtm的Job需要放在Web层,我之前放在ViewModel层怎么都跑不起来,看了源码后才知道是从反射中获取当前启动目录的程序集。
其它模块我比较喜欢面向接口开发,基本都是一个接口(IXxxxxService、一个或多个实现,然后添加到IOC容器,在Controller中注入即可使用。
关于前后端的配置
appsettings.json
IsQuickDebug:是否为开发模式,在部署到生产时一定要关掉,否则影响权限管理
/ClientApp/…/config/index.ts是前端的配置文件
development:默认为true,如果要在本地调试权限管理,必须关掉
开发过程中遇到的问题总结
问题1:Mac环境下F5运行报错:
ERR_OSSL_EVP_UNSUPPORTED
Error: error:0308010C:digital envelope routines::unsupported
解决方法:修改package.json,添加 NODE_ENV=development NODE_OPTIONS=–openssl-legacy-provider,如下图
问题2:自定义接口方法名导致前端请求报无权限访问
如下图所示,HttpGet中我一开始是用的别名,前端调用接口用的也是别名,在开发模式下一切正常请求。发布到生产后,在菜单编辑-》添加动作-》角色管理-》分配权限后产生的地址是以真实方法名为主,导致我所有请求接口都是无权限访问。。。
解决办法:修改所有Controller中的接口名称,去掉Async后缀、HttpGet中使用[action]
以上就是在使用WTM框架时遇到的问题及解决方法,经过2周的开发,系统顺利开发完成并上线,来看下效果图:
下钻
下钻
系统分四层进行数据展现:
第一层:数据总览
第二层:按维度分析:类型、方式、部门、供应商等
第三层:项目列表
第四层:项目详情
系统亮点与价值
1、实现了数据层层下钻
2、实现供应商关系图谱
3、每月发送采购分析报告给业务部门,提示采购风险
————–
关于杭州易步数字科技:
专注好产品 —–“我们用领先技术为客户打造好产品”
追求卓越 —–“我们重视产品体验、重视代码质量,追求更高标准”
诚信负责—–“我们心怀客户,说到做到,诚实本分”
快速响应—–“我们坚持客户服务第一,及时响应”
合作共赢—–“我们希望成为客户长期的合作伙伴,基业长青”
专注一件事,做好每件事!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。