Skip to content

Commit 52a50aa

Browse files
72crm_9.0.1_20190603
72crm_9.0.1_20190603 新增 商业智能“员工客户分析、员工业绩分析、客户画像分析、产品分析、排行榜分析”等29个多维度报表 优化 1.仪表盘时间筛选优化 2.合同、回款的高级筛选中增加“审核状态”筛选 修复: 1.线索转客户出错问题 2.办公查看下属负责任务出错问题 3.合同审批在某些情况下不正确的问题 修复: 线索转客户出错问题 办公查看下属负责任务出错问题 合同审批状态在某些情况下不正确的问题 系统部门在某些情况下编辑错误问题 下载地址:www.5kcrm.com (官网 - 升级日志-JAVA版升级日志) 官方社区:bbs.72crm.net 官方帮助文档:book.5kcrm.com
1 parent bb8dbb3 commit 52a50aa

File tree

274 files changed

+10088
-599
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

274 files changed

+10088
-599
lines changed

docs/crm9.sql

Lines changed: 71 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,3 @@
1-
/*
2-
Navicat MySQL Data Transfer
3-
4-
Source Server : local
5-
Source Server Version : 50720
6-
Source Host : localhost:3306
7-
Source Database : crm9
8-
9-
Target Server Type : MYSQL
10-
Target Server Version : 50720
11-
File Encoding : 65001
12-
13-
Date: 2019-05-11 16:33:30
14-
*/
151

162
SET FOREIGN_KEY_CHECKS=0;
173

@@ -387,7 +373,7 @@ CREATE TABLE `72crm_admin_menu` (
387373
`status` tinyint(4) DEFAULT '1' COMMENT '状态 1 启用 0 禁用',
388374
`remarks` varchar(255) DEFAULT NULL COMMENT '菜单说明',
389375
PRIMARY KEY (`menu_id`)
390-
) ENGINE=InnoDB AUTO_INCREMENT=107 DEFAULT CHARSET=utf8 COMMENT='后台菜单表';
376+
) ENGINE=InnoDB AUTO_INCREMENT=127 DEFAULT CHARSET=utf8 COMMENT='后台菜单表';
391377

392378
-- ----------------------------
393379
-- Records of 72crm_admin_menu
@@ -471,10 +457,27 @@ INSERT INTO `72crm_admin_menu` VALUES ('103', '98', '查看', 'read', '3', '0',
471457
INSERT INTO `72crm_admin_menu` VALUES ('104', '99', '查看', 'read', '3', '0', '1', null);
472458
INSERT INTO `72crm_admin_menu` VALUES ('105', '100', '查看', 'read', '3', '0', '1', null);
473459
INSERT INTO `72crm_admin_menu` VALUES ('106', '101', '查看', 'read', '3', '0', '1', null);
474-
INSERT INTO `72crm_admin_menu` (`parent_id`, `menu_name`, `realm`, `menu_type`, `sort`, `status`, `remarks`) VALUES ('11', '联系人导出', 'excelexport', '3', '1', '1', NULL);
475-
INSERT INTO `72crm_admin_menu` (`parent_id`, `menu_name`, `realm`, `menu_type`, `sort`, `status`, `remarks`) VALUES ('11', '联系人导入', 'excelimport', '3', '1', '1', NULL);
476-
INSERT INTO `72crm_admin_menu` (`parent_id`, `menu_name`, `realm`, `menu_type`, `sort`, `status`, `remarks`) VALUES ('15', '产品导入', 'excelimport', '3', '1', '1', NULL);
477-
INSERT INTO `72crm_admin_menu` (`parent_id`, `menu_name`, `realm`, `menu_type`, `sort`, `status`, `remarks`) VALUES ('15', '产品导出', 'excelexport', '3', '1', '1', NULL);
460+
INSERT INTO `72crm_admin_menu` VALUES ('107', '11', '联系人导出', 'excelexport', '3', '1', '1', null);
461+
INSERT INTO `72crm_admin_menu` VALUES ('108', '11', '联系人导入', 'excelimport', '3', '1', '1', null);
462+
INSERT INTO `72crm_admin_menu` VALUES ('109', '15', '产品导入', 'excelimport', '3', '1', '1', null);
463+
INSERT INTO `72crm_admin_menu` VALUES ('110', '15', '产品导出', 'excelexport', '3', '1', '1', null);
464+
INSERT INTO `72crm_admin_menu` VALUES ('111', '2', '员工客户分析', 'customer', '1', '0', '1', null);
465+
INSERT INTO `72crm_admin_menu` VALUES ('112', '111', '查看', 'read', '3', '0', '1', null);
466+
INSERT INTO `72crm_admin_menu` VALUES ('113', '2', '销售漏斗', 'funnel', '1', '0', '1', null);
467+
INSERT INTO `72crm_admin_menu` VALUES ('114', '113', '查看', 'read', '3', '0', '1', null);
468+
INSERT INTO `72crm_admin_menu` VALUES ('115', '2', '回款统计', 'receivables', '1', '0', '1', null);
469+
INSERT INTO `72crm_admin_menu` VALUES ('116', '115', '查看', 'read', '3', '0', '1', null);
470+
INSERT INTO `72crm_admin_menu` VALUES ('117', '2', '产品分析', 'product', '1', '0', '1', null);
471+
INSERT INTO `72crm_admin_menu` VALUES ('118', '117', '查看', 'read', '3', '0', '1', null);
472+
INSERT INTO `72crm_admin_menu` VALUES ('119', '2', '业绩目标完成情况', 'performance', '1', '0', '1', null);
473+
INSERT INTO `72crm_admin_menu` VALUES ('120', '119', '查看', 'read', '3', '0', '1', null);
474+
INSERT INTO `72crm_admin_menu` VALUES ('121', '2', '员工业绩分析', 'employe', '1', '0', '1', null);
475+
INSERT INTO `72crm_admin_menu` VALUES ('122', '121', '查看', 'read', '3', '0', '1', null);
476+
INSERT INTO `72crm_admin_menu` VALUES ('123', '2', '客户画像分析', 'portrait', '1', '0', '1', null);
477+
INSERT INTO `72crm_admin_menu` VALUES ('124', '123', '查看', 'read', '3', '0', '1', null);
478+
INSERT INTO `72crm_admin_menu` VALUES ('125', '2', '排行榜', 'ranking', '1', '0', '1', null);
479+
INSERT INTO `72crm_admin_menu` VALUES ('126', '125', '查看', 'read', '3', '0', '1', null);
480+
478481
-- ----------------------------
479482
-- Table structure for 72crm_admin_record
480483
-- ----------------------------
@@ -496,14 +499,6 @@ CREATE TABLE `72crm_admin_record` (
496499
UNIQUE KEY `record_id` (`record_id`) USING BTREE
497500
) ENGINE=InnoDB AUTO_INCREMENT=152 DEFAULT CHARSET=utf8 COMMENT='跟进记录';
498501

499-
DROP TABLE IF EXISTS `72crm_crm_contacts_business`;
500-
CREATE TABLE `72crm_crm_contacts_business` (
501-
`id` int(11) NOT NULL AUTO_INCREMENT,
502-
`business_id` int(11) NOT NULL,
503-
`contacts_id` int(11) NOT NULL,
504-
PRIMARY KEY (`id`)
505-
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COMMENT='商机联系人关联表';
506-
507502
-- ----------------------------
508503
-- Records of 72crm_admin_record
509504
-- ----------------------------
@@ -831,6 +826,21 @@ CREATE TABLE `72crm_crm_contacts` (
831826
-- Records of 72crm_crm_contacts
832827
-- ----------------------------
833828

829+
-- ----------------------------
830+
-- Table structure for 72crm_crm_contacts_business
831+
-- ----------------------------
832+
DROP TABLE IF EXISTS `72crm_crm_contacts_business`;
833+
CREATE TABLE `72crm_crm_contacts_business` (
834+
`id` int(11) NOT NULL AUTO_INCREMENT,
835+
`business_id` int(11) NOT NULL,
836+
`contacts_id` int(11) NOT NULL,
837+
PRIMARY KEY (`id`)
838+
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COMMENT='商机联系人关联表';
839+
840+
-- ----------------------------
841+
-- Records of 72crm_crm_contacts_business
842+
-- ----------------------------
843+
834844
-- ----------------------------
835845
-- Table structure for 72crm_crm_contract
836846
-- ----------------------------
@@ -920,6 +930,22 @@ CREATE TABLE `72crm_crm_customer` (
920930
-- Records of 72crm_crm_customer
921931
-- ----------------------------
922932

933+
-- ----------------------------
934+
-- Table structure for 72crm_crm_customer_stats
935+
-- ----------------------------
936+
DROP TABLE IF EXISTS `72crm_crm_customer_stats`;
937+
CREATE TABLE `72crm_crm_customer_stats` (
938+
`id` int(11) NOT NULL AUTO_INCREMENT,
939+
`user_id` int(20) NOT NULL COMMENT '用户id',
940+
`customer_num` int(10) NOT NULL DEFAULT '0' COMMENT '客户总数',
941+
`create_time` datetime NOT NULL COMMENT '统计时间',
942+
PRIMARY KEY (`id`)
943+
) ENGINE=InnoDB AUTO_INCREMENT=190 DEFAULT CHARSET=utf8 COMMENT='每日客户统计';
944+
945+
-- ----------------------------
946+
-- Records of 72crm_crm_customer_stats
947+
-- ----------------------------
948+
923949
-- ----------------------------
924950
-- Table structure for 72crm_crm_leads
925951
-- ----------------------------
@@ -946,6 +972,24 @@ CREATE TABLE `72crm_crm_leads` (
946972
-- Records of 72crm_crm_leads
947973
-- ----------------------------
948974

975+
-- ----------------------------
976+
-- Table structure for 72crm_crm_owner_record
977+
-- ----------------------------
978+
DROP TABLE IF EXISTS `72crm_crm_owner_record`;
979+
CREATE TABLE `72crm_crm_owner_record` (
980+
`record_id` int(11) NOT NULL AUTO_INCREMENT,
981+
`type_id` int(11) NOT NULL COMMENT '对象id',
982+
`type` int(4) NOT NULL COMMENT '对象类型',
983+
`pre_owner_user_id` int(20) DEFAULT NULL COMMENT '上一负责人',
984+
`post_owner_user_id` int(20) DEFAULT NULL COMMENT '接手负责人',
985+
`create_time` datetime NOT NULL COMMENT '创建时间',
986+
PRIMARY KEY (`record_id`)
987+
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COMMENT='负责人变更记录表';
988+
989+
-- ----------------------------
990+
-- Records of 72crm_crm_owner_record
991+
-- ----------------------------
992+
949993
-- ----------------------------
950994
-- Table structure for 72crm_crm_product
951995
-- ----------------------------

src/main/java/com/kakarote/crm9/common/config/JfinalConfig.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@
1818
import com.kakarote.crm9.erp.crm.common.CrmRouter;
1919
import com.kakarote.crm9.erp.oa.common.OaRouter;
2020
import com.kakarote.crm9.erp.work.common.WorkRouter;
21-
import com.kakarote.crm9.erp.work.cron.TaskCron;
2221
import com.jfinal.config.*;
2322
import com.jfinal.core.paragetter.ParaProcessorBuilder;
2423
import com.jfinal.kit.PathKit;

src/main/java/com/kakarote/crm9/common/config/cache/RedisCache.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ public void removeAll(String cacheName) {
4747
cache.del(cache.keys("*").toArray());
4848
}catch (JedisDataException exception){
4949
//TODO keys同样被禁用
50-
throw new RuntimeException();
50+
throw new RuntimeException(exception);
5151
}
5252
}
5353

src/main/java/com/kakarote/crm9/common/interceptor/AuthInterceptor.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,16 +38,16 @@ public void intercept(Invocation invocation) {
3838

3939
invocation.invoke();
4040
}
41+
@SuppressWarnings("unchecked")
4142
private List<String> queryAuth(Map<String,Object> map,String key){
4243
List<String> permissions=new ArrayList<>();
4344
map.keySet().forEach(str->{
4445
if(map.get(str) instanceof Map){
45-
permissions.addAll(queryAuth((Map<String, Object>) map.get(str),key+str+":"));
46+
permissions.addAll(this.queryAuth((Map<String, Object>) map.get(str),key+str+":"));
4647
}else {
4748
permissions.add(key+str);
4849
}
4950
});
50-
5151
return permissions;
5252
}
5353
}

src/main/java/com/kakarote/crm9/erp/_MappingKit.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,9 @@ public static void mapping(ActiveRecordPlugin arp) {
4949
arp.addMapping("72crm_crm_contract", "contract_id", CrmContract.class);
5050
arp.addMapping("72crm_crm_contract_product", "r_id", CrmContractProduct.class);
5151
arp.addMapping("72crm_crm_customer", "customer_id", CrmCustomer.class);
52+
arp.addMapping("72crm_crm_customer_stats", "id", CrmCustomerStats.class);
5253
arp.addMapping("72crm_crm_leads", "leads_id", CrmLeads.class);
54+
arp.addMapping("72crm_crm_owner_record", "record_id", CrmOwnerRecord.class);
5355
arp.addMapping("72crm_crm_product", "product_id", CrmProduct.class);
5456
arp.addMapping("72crm_crm_product_category", "category_id", CrmProductCategory.class);
5557
arp.addMapping("72crm_crm_receivables", "receivables_id", CrmReceivables.class);

src/main/java/com/kakarote/crm9/erp/admin/common/AdminInterceptor.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
public class AdminInterceptor implements Interceptor {
77
@Override
88
public void intercept(Invocation invocation) {
9-
109
invocation.invoke();
1110
}
1211
}

src/main/java/com/kakarote/crm9/erp/admin/controller/AdminLoginController.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ public void login(@Para("username") String username, @Para("password") String pa
6262
user.setLastLoginTime(new Date());
6363
user.update();
6464
user.setRoles(adminRoleService.queryRoleIdsByUserId(user.getUserId()));
65+
user.remove("password","salt");
6566
Redis.use().setex(token, 360000, user);
6667
setCookie("Admin-Token", token, 360000);
6768
renderJson(R.ok().put("Admin-Token", token).put("user", user).put("auth", adminRoleService.auth(user.getUserId())));

src/main/java/com/kakarote/crm9/erp/admin/controller/AdminMenuController.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,6 @@ public void getRoleMenu(@Para("roleId") Integer roleId){
2424
* 展示全部菜单
2525
*/
2626
public void getAllMenuList(){
27-
renderJson(R.ok().put("data",adminMenuService.getAllMenuList(0)));
27+
renderJson(R.ok().put("data",adminMenuService.getAllMenuList(0,20)));
2828
}
2929
}

src/main/java/com/kakarote/crm9/erp/admin/controller/AdminSysConfigController.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ public void setSysConfig(){
4444
public void querySysConfig(){
4545
Cache cache = Redis.use();
4646
if (cache.get(SYS_CONFIG_KEY) == null){
47-
renderJson(R.ok().put("data",null));
47+
renderJson(R.ok().put("data",Kv.by("logo","").set("name","")));
4848
return;
4949
}
5050
String data = cache.get(SYS_CONFIG_KEY);

src/main/java/com/kakarote/crm9/erp/admin/controller/AdminUserController.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,4 +139,8 @@ public void updateUser(@Para("")AdminUser adminUser){
139139
boolean b=adminUserService.updateUser(adminUser);
140140
renderJson(R.isSuccess(b,"修改信息失败"));
141141
}
142+
143+
public void queryUserByDeptId(@Para("deptId")Integer deptId){
144+
renderJson(R.ok().put("data",adminUserService.queryUserByDeptId(deptId)));;
145+
}
142146
}

0 commit comments

Comments
 (0)