crm--业务点详细概述
一.CRM简介:(为什么开发CRM)
此项目主要供自己的公司使用,原来因为公司人员较少,人员管理考勤等都用excel保存。但是现在因为公司人员,以及部门增多,为了方便管理 ,供销售人员使用内部系统更方便。
二.此项目实现的主要功能:
1.列表页面:
-添加,编辑,删除
-客户的单条导入和批量导入
-关键字搜索
-actions定制
-组合搜索
-分页(组件)
2.为销售自动分配订单,并发送通知(短信,微信,叮叮)
3.每天定时跟新或筛选超时客户,并列为公共资源
4.抢单
5.学生考勤
6.记录每个学生的成绩,并用图表(hightchart)动态显示
7.权限管理(组件)
三.此项目中有多少张数据库表?
department-部门表 userinfo-员工表 course-课程表 school-校区表 classlist-班级表
customer-客户表 customerdistribution-客户分配表 salerank-销售权重和数量表
consultrecord-客户跟进记录表 PaymentRecord-缴费记录 Student-学生表 courserecord-上课记录表 studyrecord-学习记录详细表
crm数据库(13张表)
menu-菜单组 group-权限组 permission-权限表 user-用户表 role-角色表
rbac数据库(5张表)
四.业务概述
1.客户信息:
(1)客户信息中有公共客户,自己的客户。而公共客户属于新录入的客户和在规定的时间中某个业务人员没有完成的。假如:规定在3天业务人员和客户没有进行跟进或者是在15天没有完成这个订单并且没有报名,那么这个客户就会属于公共资源,那么就是当前时间减去15天它如果大于你接单的时间或者当前时间减去3天它大于最后的跟进的时间,那么他就属于公共客户资源(通过Q对象把这个条件构造出来),这客户你就在无权去访问。
(2)我的客户就是在自己这里成单或者是在这15天自己跟进的客户,而在这期间在创建一个客户分配表,分配表中包括它的状态,接单时间,以及客户的ID和课程顾问的ID。生成一条记录。如果新来一个客户,那么设计一个定时任务,这个定时就好每天在规定的时间的让这个脚本跑一次,那么这个数据它会在每天定时更新,它具体的功能是:执行py文件:操作两张表,查找客户表,找到它的公共资源,查找分配表中的数据,并更新状态(3天/15天)。而在事实定时有两种方案:一是:可以通过原生的SQL写,也可以通过django也可以写(必须把定时任务和django放在一起使用,)当前用户所有的客户具体实现:创建一个url,首先在session中获取当前用户登录的ID,根据当前用户登录的ID去表中获取他自己的数据(custmers=models.CustomerDistribution.objects.filter(user_id=current_user_id).order_by('status'))把正在跟进的排在前面已成单的放在最后面
(3)在新建的选出没有报名的客户,在没有报名的客户后面加上抢单这个功能,获取当前用户的ID,把客户表中的客户修改,并把接单时间修改成当前时间,把跟进时间也改成当前时间,把原来的课程顾问改为现在跟进的课程顾问,把这些修改的数据更新到数据库中(更新时注意,原顾问不是自己,状态是没报名15天没有成单的,才可以跟新)。在分配表中创建一条数据。
2.自动抢单:
(1) 单条录入:先创建一个url,首先get看到一个页面,(用modelform写一个页面),客户表中新增数据:一获取改分配的课程顾问的id,以及当前的时间,客户分配表新增数据,获取新创建的客户的ID,顾问的ID。该分配的 课程顾问:就是按照权重以及按照分配表的的排序来分配,用迭代器来实现,数据库必须存在每个人的权重,在数据中在创建一个销售权重表表中有个数以及权重。先创建一个文件,在这个文件中写一个静态字段(静态字段包括user,iter_users,reset_status),下来就是跟中权重在数据库中来去符合的数据(数据就是销售)把数据库中拿到的数据跟新到静态字段中的user中,iter_users是生成迭代器的。
3.学生业务
共有三张表:学生表,上课记录表,班级表
学习记录:
为什么要用初始化:这样做起来方便,批量初始一些数据。
单个的初始化学生:
刚开始设置学生上课记录的初始化功能,在上课记录这张表中拿到班级的ID来找到这个班级所有的学生,循环这个班的所有学生,这样就可以拿到每一个学生,为每一个学生生成每一天的学习记录。这样就是对每一个学生进行了上课的初始化。
批量初始化操作:
设置一个action(可以有返回值),在上课记录这张表中拿到这个上课记录的对象。循环拿到每一个上课记录,为一个学生创建学习记录(在创建学习记录是在学生学习记录表中
查看这个学生是否有学习记录如果有,就不让他创建,如果没有就让他创建),
考勤管理:
上课时有多少人,把学生罗列出来。设置action(action里面有缺勤,迟到,早退,签到,请假),以缺勤来说,默认是签到,拿到id,把拿到的数据更新
4.微信提醒
目的:让员工关注公司的推送消息公众号,并绑定个人用户(用于以后的消息提醒)
第一步:扫码关注服务号
第二部:扫码绑定个人账户,扫码的同时,个人的openid会自动录入到数据库中
在用户表中,获取到用户的openid,就能发送微信消息
class UserInfo(models.Model):
openid = models.CharField(verbose_name='微信唯一ID', max_length=64, null=True, blank=True)
....
crm--业务点详细概述的更多相关文章
- 一、Microsoft Dynamics CRM 4.0 SDK概述
Chapter 1. Microsoft Dynamics CRM 4.0 SDK Overview(SDK概述) You are probably reading this book because ...
- python 全栈开发,Day117(popup,Model类的继承,crm业务开发)
昨日内容回顾 第一部分:权限相关 1. 权限基本流程 用户登录成功后获取权限信息,将[权限和菜单]信息写入到session. 以后用户在来访问,在中间件中进行权限校验. 为了提升用户体验友好度,在后台 ...
- CRM【第三篇】: crm业务
1. 项目背景 crm系统是某某教育公司正在使用的项目,系统主要为 销售部.运营部.教质部门提供管理平台,随着公司规模的扩展,对公司员工的业务信息量化以及信息化建设越来越重要. crm系统为不同角色的 ...
- HBase详细概述
原文地址:https://blog.csdn.net/u010270403/article/details/51648462 本文首先简单介绍了HBase,然后重点讲述了HBase的高并发和实时处理数 ...
- CRM 业务
1. 创建CRM项目 引入插件 创建数据库 from django.db import models from django.db import models class Department(mod ...
- Zookeeper执行原理的详细概述
文章作者:Holy Null,来源:http://holynull.leanote.com/post/Zookeeper,非常感谢作者提供如此优秀的原创文章,作者通过俩个月的努力将<Hadoop ...
- crm业务流程图(精简版)
网址:https://www.processon.com/view/link/5e0be839e4b0aef94cbcee28#map如果链接失效,请及时反馈(在评论区评论),博主会及时更新
- FA_固定资产六大业务增加、修改、报废、在建、折旧、盘点概述(概念)
2014-06-04 Created By BaoXinjian
- crm项目-业务实现
############### crm业务 ############### """ 校区管理,部门管理,课程管理, 这三个都比较简单 1,只需要展示校区名称,这是 ...
随机推荐
- 转载:JMeter压力测试入门教程[图文]
JMeter压力测试入门教程[图文] Apache JMeter是Apache组织开发的基于Java的压力测试工具.用于对软件做压力测试,它最初被设计用于Web应用测试但后来扩展到其他测试领域. 它可 ...
- UITextField小结
//初始化textfield并设置位置及大小 UITextField *text = [[UITextField alloc]initWithFrame:CGRectMake(20, 20, 130, ...
- python通过日志分析加入黑名单
监控nginx日志,若有人攻击,则加入黑名单,操作步骤如下:1.读取日志文件2.分隔文件,取出ip3.将取出的ip放入list,然后判读ip的次数4.若超过设定的次数,则加入黑名单 日志信息如下: 1 ...
- [Bayes] *Bayesian Deep Learning for Transparency Improvement
为何有必要进修统计机器学习? 因为你没有那么多的数据 因为未知的东西最终还是需理论所解释 基于规则?基于概率? ---- 图灵奖得主.贝叶斯之父 Judea Pearl 谈深度学习局限,想造自由意志机 ...
- 消耗资源的SQL的定位方法;
解答:select sql_text from v$sql where disk_reads > 1000 or (executions > 0 and buffer_gets/execu ...
- TempData,跳转后的提醒
TempData与ViewData用法一样,不同的是ViewData是当前action与对应的view中存在,TempData在下个action还有效,再往后就无效了.只是我的浅薄理解,希望不会误人子 ...
- php程序员网址大全
网址:http://www.tnten.com/ 常用网址 慕课网 知乎 GitHub CSDN社区 博客园 51CTO 开源中国 IT之家 简明魔法 编程论坛 InfoQ 实验楼 Unix技术网 中 ...
- 2014年辛星解读css第一节
CSS是Cascading Style Sheets的缩写.即层叠样式表,它用于表现HTML的样式,即HTML仅仅是去写该网页有哪些内容,至于怎样去表现它们,由CSS去定制. ************ ...
- 从零开始开发一个vue组件打包并发布到npm (把vue组件打包成一个可以直接引用的js文件)
自己写的组件 有的也挺好的,为了方便以后用自己再用或者给别人用,把组件打包发布到npm是最好不过了,本次打包支持 支持正常的组件调用方式,也支持Vue.use, 也可以直接引用打包好的js文件, 配合 ...
- base 64
我们的图片大部分都是可以转换成base64编码的data:image. 这个在将canvas保存为img的时候尤其有用.虽然除ie外,大部分现代浏览器都已经支持原生的基于base64的encode和d ...