基于SqlSugar的开发框架循序渐进介绍(30)-- 整合客户关系管理系统模块功能

基于,sqlsugar,开发,框架,循序渐进,介绍,整合,客户关系,管理系统,模块,功能 · 浏览次数 : 554

小编点评

**基于SqlSugar开发框架的客户关系管理系统模块整合效果分析** **一、系统模块的整合效果** 在SqlSugar开发框架中整合CRM系统模块,整体系统布局沿袭原来的风格,对数据的查询处理做了优化以及调整,相较于以前的处理效率更高一些。 **2、项目代码管理** 项目中,根据SqlSugar开发框架的不同模块进行管理,如基础的处理包括接口Interface、实体对象Modal、服务实现Service层进行分开。 **3、客户关系管理系统的项目代码管理** 利用现有表结构信息,基于代码生成工具快是生成相关的业务类文件,直接复制Core目录到解决方案项目上即可。 **4、生成内容时需要带简单的排版** 生成内容时需要带简单的排版,例如: * 每个模块的标题需添加序号。 * 每个页面需添加标题。 * 每个表格需添加标题。

正文

以前在随笔《Winform开发框架之客户关系管理系统(CRM)的开发总结系列1-界面功能展示 》的几篇随笔中介绍过基于WInform开发框架开发的CRM系统,系统的功能主要也是围绕着客户相关信息来进行管理的,经过一些客户的定制应用,以及框架各种功能的完善,系统也已经很完善了,不过不同的CRM侧重点不同,有些ERP业务的可能倾向于整合ERP的各种流程模块,有些则希望整合一些特色的功能,不一而足。本篇随笔介绍在最新的《SqlSugar开发框架》中整合CRM系统模块的功能。

由于我们最新的《SqlSugar开发框架》中包含了多端的应用,其中就包含了Winform开发端,Winform端整合直接访问数据库和Web API的接口调用,可实现配置分布式的远程接口调用或者本地调用。它也是包含了常规的框架模块,这些模块从之前的Winform开发框架中继承过来,包括有权限管理的整套模块、工作流模块、字典模块、附件管理、分页控件、公用类库模块、自动升级模块等模块,而随着框架进一步的丰富,我也把之前开发好的《客户关系管理系统》也把它整合到《SqlSugar开发框架》,毕竟这个系统各种界面功能还是比较具有代表性,也具有很好的参考价值。

1、系统模块的整合效果

在SqlSuagar开发框架中,整合后的客户关系管理系统作为一个大系统中的一部分,基础也还是需要用到SqlSugar开发框架中的权限、字典等模块内容的。

整个CRM的系统布局沿袭原来的风格和主要的布局,对数据的查询处理,做了优化以及调整,相较于以前的处理效率更高一些。

客户关系管理系统中的客户信息及相关资料的管理是整个系统中比较复杂的内容之一了,除了对客户本身属性信息的快速查询,我们也针对客户信息的标注颜色、创建日期、联系日期、共享信息、销售特点进行了一些关联的展示处理,如下图所示。

 其中供应商的管理,也是采用类似客户信息的管理方式,不过简化一些相关内容的管理。

客户相关的资料,我们也提供了一个统一的入口进行查询管理,如下界面所示。

 

而对客户信息来讲,可以通过修改客户的拥有者或者风险给相关系统人员,否则个人只是维护自己的客户信息,这样对于客户资源的维护比较重要。因此在系统中统一进行客户的分配管理。

 另外,我们可以根据需要生成一些相关的报表来展示相关的数据报表。

 

2、客户关系管理系统的项目代码管理

在项目中,依照SqlSugar开发框架的不同模块进行管理,如基础的处理包括接口Interface、实体对象Modal、服务实现Service层进行分开,也是依照代码生成工具进行快速生成。

而其中UI部分也是通过Winform界面的生成部分进行处理,然后在系统中进行调整即可,由于是对已有CRM系统的更新,基本上UI部分是在原来的基础上进行的调整。

 利用现有表结构信息,基于代码生成工具快是生成相关的业务类文件,合并到系统框架中就可以了。

我们利用现有表结构信息,基于代码生成工具快是生成相关的业务类文件, 直接复制Core目录到解决方案项目上就可以了,如下所示。

Winform部分的界面,选择对应的界面生成【SqlSugar框架Winform界面生成】生成。

在弹出的【常规Winform界面生成】面板中,勾选相关的设置信息,定制UI界面,如下界面效果所示。

 

与基于SqlSugar的开发框架循序渐进介绍(30)-- 整合客户关系管理系统模块功能相似的内容:

基于SqlSugar的开发框架循序渐进介绍(30)-- 整合客户关系管理系统模块功能

以前在随笔《Winform开发框架之客户关系管理系统(CRM)的开发总结系列1-界面功能展示 》的几篇随笔中介绍过基于WInform开发框架开发的CRM系统,系统的功能主要也是围绕着客户相关信息来进行管理的。本篇随笔介绍在最新的《SqlSugar开发框架》中整合CRM系统模块的功能。

基于SqlSugar的开发框架循序渐进介绍(16)-- 工作流模块的功能介绍

工作流是集成系统的模块应用,使用权限管理系统的身份认证登录后即可使用。本篇随笔介绍工作流模块的界面功能效果。

基于SqlSugar的开发框架循序渐进介绍(17)-- 基于CSRedis实现缓存的处理

在一个应用系统的开发框架中,往往很多地方需要用到缓存的处理,有些地方是为了便于记录用户的数据,有些地方是为了提高系统的响应速度,如有时候我们在发送一个短信验证码的时候,可以在缓存中设置几分钟的过期时间,这样验证短信验证码的时候,就会自动判断是否过期了。本篇随笔结合CSRedis的使用,介绍如何实现缓存的初始化及使用的处理。

基于SqlSugar的开发框架循序渐进介绍(18)-- 基于代码生成工具Database2Sharp,快速生成Vue3+TypeScript的前端界面和Winform端界面

我们开发一个系统,在保证风格统一、代码强壮、可读性强等基础上,还能够结合代码生成工具快速开发相关后端,以及各种前端界面的,无疑是非常好的,既保证了项目的代码质量,又能够极大的提高开发效率。代码生成工具Database2Sharp是在完善的开发项目上,抽取出数据变化的部分,通过演绎、归纳、反复演绎和归纳等提炼方式抽取出相关的规则,以工具的方式来快速提高生产率,使得我们在开发各种不同的项目上的时候,能

基于SqlSugar的开发框架循序渐进介绍(19)-- 基于UniApp+Vue的移动前端的功能介绍

在之前的SqlSugar系列随笔中,介绍了很多我们关于SqlSugar的开发框架的内容,SqlSugar的开发框架的目的是多前端应用场景,因此其中会包含各种不同的前端应用,前面介绍了基于DevExpress的Winform的前端应用,以及基于Vue3+TypeScript+ElementPlus的BS前端应用,本篇随笔继续介绍SqlSugar的开发框架的另一个前端应用,基于UniApp+Vue+T

基于SqlSugar的开发框架循序渐进介绍(20)-- 在基于UniApp+Vue的移动端实现多条件查询的处理

在做一些常规应用的时候,我们往往需要确定条件的内容,以便在后台进行区分的进行精确查询,在移动端,由于受限于屏幕界面的情况,一般会对多个指定的条件进行模糊的搜索,而这个搜索的处理,也是和前者强类型的条件查询处理类似的处理过程,因此本篇随笔探讨两种不同查询在前端界面上的展示效果,以及后端基于.netCore的Web API端的基类进行的统一封装处理。

基于SqlSugar的开发框架循序渐进介绍(21)-- 在工作流列表页面中增加一些转义信息的输出,在后端进行内容转换

有时候,为了给前端页面输出内容,有时候我们需要准备和数据库不一样的实体信息,因为数据库可能记录的是一些引用的ID或者特殊字符,那么我们为了避免前端单独的进行转义处理,我们可以在后端进行统一的格式化后再行输出,后端处理可以采用不同的DTO尸体信息,后端对不同的实体进行映射处理即可,也可以采用同一个实体,在SqlSugar实体信息中忽略对应的字段写入实现,本篇随笔介绍后者的处理方式,实现在在工作流列表

基于SqlSugar的开发框架循序渐进介绍(22)-- Vue3+TypeScript的前端工作流模块中实现统一的表单编辑和表单详情查看处理

在工作流页面中,除了特定的业务表单信息外,往往也需要同时展示通用申请单的相关信息,因此在页面设计的时候需要使用一些组件化的概念来实现动态的内容展示处理,本篇随笔介绍Vue3+TypeScript+ElementPus的前端工作流模块中实现统一的表单编辑和表单详情查看处理。

基于SqlSugar的开发框架循序渐进介绍(23)-- Winform端管理系统中平滑增加对Web API对接的需求

在前面随笔介绍的基于SqlSugar的WInform端管理系统中,数据提供者是直接访问数据库的方式,不过窗体界面调用数据接口获取数据的时候,我们传递的是标准的接口,因此可扩展性比较好。我曾经在随笔《基于SqlSugar的开发框架循序渐进介绍(5)-- 在服务层使用接口注入方式实现IOC控制反转》中介绍过,该SqlSugar开发框架本身是基于IOC控制反转的,因此对于接入不同的数据提供者,只需要切换

基于SqlSugar的开发框架循序渐进介绍(24)-- 使用Serialize.Linq对Lambda表达式进行序列化和反序列化

在上篇随笔《基于SqlSugar的开发框架循序渐进介绍(23)-- Winform端管理系统中平滑增加对Web API对接的需求》中介绍了基于一个接口,实现对两种不同接入方式(直接访问数据库实现,基于Web API代理类实现)的处理,由于定义的接口中,我们为了方便,也是用了Lambda表达式的进行一些参数的处理,那么如果在Web API代理类中,Lambda表达式是不能直接传递给Web API的控