一.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--业务点详细概述的更多相关文章

  1. 一、Microsoft Dynamics CRM 4.0 SDK概述

    Chapter 1. Microsoft Dynamics CRM 4.0 SDK Overview(SDK概述) You are probably reading this book because ...

  2. python 全栈开发,Day117(popup,Model类的继承,crm业务开发)

    昨日内容回顾 第一部分:权限相关 1. 权限基本流程 用户登录成功后获取权限信息,将[权限和菜单]信息写入到session. 以后用户在来访问,在中间件中进行权限校验. 为了提升用户体验友好度,在后台 ...

  3. CRM【第三篇】: crm业务

    1. 项目背景 crm系统是某某教育公司正在使用的项目,系统主要为 销售部.运营部.教质部门提供管理平台,随着公司规模的扩展,对公司员工的业务信息量化以及信息化建设越来越重要. crm系统为不同角色的 ...

  4. HBase详细概述

    原文地址:https://blog.csdn.net/u010270403/article/details/51648462 本文首先简单介绍了HBase,然后重点讲述了HBase的高并发和实时处理数 ...

  5. CRM 业务

    1. 创建CRM项目 引入插件 创建数据库 from django.db import models from django.db import models class Department(mod ...

  6. Zookeeper执行原理的详细概述

    文章作者:Holy Null,来源:http://holynull.leanote.com/post/Zookeeper,非常感谢作者提供如此优秀的原创文章,作者通过俩个月的努力将<Hadoop ...

  7. crm业务流程图(精简版)

    网址:https://www.processon.com/view/link/5e0be839e4b0aef94cbcee28#map如果链接失效,请及时反馈(在评论区评论),博主会及时更新

  8. FA_固定资产六大业务增加、修改、报废、在建、折旧、盘点概述(概念)

    2014-06-04 Created By BaoXinjian

  9. crm项目-业务实现

    ###############  crm业务    ############### """ 校区管理,部门管理,课程管理, 这三个都比较简单 1,只需要展示校区名称,这是 ...

随机推荐

  1. uboot中断功能实现

    uboot中实现irq中断(uboot version2015.04)1.实验目的:实现GPIO_2的外部中断 2.实验步骤:a.GPIO_2(GPIO1_IO02)为中断源, 首先需要设置这个pad ...

  2. JSON简述

    JSON(JavaScript Object Notation) JavaScript 对象表示法,是一种轻量级的数据交换格式.类似于XML. 基础结构 JSON基于两种结构(即由两种结构组成:对象( ...

  3. 什么是KBEngine

    本文转自:https://github.com/harmy/kbengine 资源下载地址:http://sourceforge.net/projects/kbengine/files/ 什么是KBE ...

  4. 描述JSP和Servlet的区别、共同点、各自应用的范围

    描述JSP和Servlet的区别.共同点.各自应用的范围 解答:JSP在本质上就是SERVLET,但是两者的创建方式不一样.Servlet完全是JAVA程序代码构成,擅长于流程控制和事务处理,通过Se ...

  5. Vector、ArrayList、List使用深入剖析

    线性表,链表,哈希表是常用的数据结构,在进行Java开发时,JDK已经为我们提供了一系列相应的类来实现基本的数据结构.这些类均在java.util包中.本文试图通过简单的描述,向读者阐述各个类的作用以 ...

  6. VS2012使用正则删除空行

    1:Ctrl + H 打开快速替换窗口 2:输入:^\s\S*$\n 3:点击使用正则替换的选项

  7. ==和Equal()的区别

    我们在编程的时候,经常会遇到判断两个对象是否相等的情况.说到判断两个对象是否相等,就不得不说对象的类型和对象在内存中的存储情况. 对象类型可以分为值类型和引用类型: 值类型包括:简单类型.结构类型.枚 ...

  8. VS2013远程调试IIS中的网站

    问题描述一般网站发布到远程iis中了.我们就无法调试了... 今天查到个可以远程调试iis或winform的方法: 记录下 第一步:copy 本地 C:\Program Files (x86)\Mic ...

  9. APP接口基础学习一

    PHP面向对象思想 1.客户端发送http请求到达服务器 2.服务器做出响应返回数据(XML,JSON或者其他)到达客户端 XML与JSON 的区别 1.可读性:xml胜出 2.生成数据:json胜出 ...

  10. 【Raspberry Pi】webpy+mysql+GPIO 实现手机控制

    1.mysql http://dev.mysql.com/doc/refman/5.5/en/index.html 安装 sudo apt-get install update sudo apt-ge ...