Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
8
8timerapiv200
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
8timerv2
8timerapiv200
Commits
186620ae
Commit
186620ae
authored
Jun 12, 2020
by
lal
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'develop' of develop-gitlab.youlingrc.com:8timerv2/8timerapiv200 into lal
parents
245e7780
8f686cc8
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
273 additions
and
17 deletions
+273
-17
src/main/java/cn/timer/api/bean/crm/CrmClientFollow.java
+2
-2
src/main/java/cn/timer/api/controller/crm/CrmController.java
+189
-12
src/main/java/cn/timer/api/controller/crm/CrmRuleController.java
+7
-3
src/main/java/cn/timer/api/dto/crm/CrmClientDataImportVo.java
+61
-0
src/main/resources/application-dev.yml
+4
-0
src/main/resources/application-pro.yml
+5
-0
src/main/resources/application-test.yml
+5
-0
No files found.
src/main/java/cn/timer/api/bean/crm/CrmClientFollow.java
View file @
186620ae
...
@@ -57,10 +57,10 @@ public class CrmClientFollow extends Model<CrmClientFollow> {
...
@@ -57,10 +57,10 @@ public class CrmClientFollow extends Model<CrmClientFollow> {
private
Integer
cid
;
private
Integer
cid
;
@ApiModelProperty
(
value
=
"跟进内容"
)
@ApiModelProperty
(
value
=
"跟进内容"
)
private
Integer
content
;
private
String
content
;
@ApiModelProperty
(
value
=
"客户数据状态 0-无 1-潜在 2-意向 3-签约 4-合作中 5-已封档"
)
@ApiModelProperty
(
value
=
"客户数据状态 0-无 1-潜在 2-意向 3-签约 4-合作中 5-已封档"
)
private
String
clientStatus
;
private
Integer
clientStatus
;
@ApiModelProperty
(
value
=
"联系人姓名"
)
@ApiModelProperty
(
value
=
"联系人姓名"
)
private
String
name
;
private
String
name
;
...
...
src/main/java/cn/timer/api/controller/crm/CrmController.java
View file @
186620ae
...
@@ -7,6 +7,7 @@
...
@@ -7,6 +7,7 @@
*/
*/
package
cn
.
timer
.
api
.
controller
.
crm
;
package
cn
.
timer
.
api
.
controller
.
crm
;
import
java.io.IOException
;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
import
java.util.Collections
;
import
java.util.Collections
;
import
java.util.Comparator
;
import
java.util.Comparator
;
...
@@ -17,6 +18,7 @@ import java.util.Map;
...
@@ -17,6 +18,7 @@ import java.util.Map;
import
java.util.stream.Collectors
;
import
java.util.stream.Collectors
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.web.bind.annotation.DeleteMapping
;
import
org.springframework.web.bind.annotation.DeleteMapping
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.GetMapping
;
...
@@ -32,7 +34,10 @@ import com.baomidou.mybatisplus.core.toolkit.StringUtils;
...
@@ -32,7 +34,10 @@ import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import
cn.hutool.core.collection.CollUtil
;
import
cn.hutool.core.collection.CollUtil
;
import
cn.hutool.core.date.DateUtil
;
import
cn.hutool.core.date.DateUtil
;
import
cn.hutool.core.io.resource.ResourceUtil
;
import
cn.hutool.core.util.StrUtil
;
import
cn.hutool.core.util.StrUtil
;
import
cn.hutool.poi.excel.ExcelReader
;
import
cn.hutool.poi.excel.ExcelUtil
;
import
cn.timer.api.bean.clazz.ClientSourceClass
;
import
cn.timer.api.bean.clazz.ClientSourceClass
;
import
cn.timer.api.bean.clazz.ClientTypeClass
;
import
cn.timer.api.bean.clazz.ClientTypeClass
;
import
cn.timer.api.bean.clazz.IndustryClass
;
import
cn.timer.api.bean.clazz.IndustryClass
;
...
@@ -47,7 +52,10 @@ import cn.timer.api.bean.crm.CrmSeaRule;
...
@@ -47,7 +52,10 @@ import cn.timer.api.bean.crm.CrmSeaRule;
import
cn.timer.api.bean.yggl.YgglMainEmp
;
import
cn.timer.api.bean.yggl.YgglMainEmp
;
import
cn.timer.api.config.annotation.CurrentUser
;
import
cn.timer.api.config.annotation.CurrentUser
;
import
cn.timer.api.config.annotation.UserBean
;
import
cn.timer.api.config.annotation.UserBean
;
import
cn.timer.api.controller.dzht.cn.tign.hz.comm.FileHelper
;
import
cn.timer.api.dao.crm.CrmClientContactsMapper
;
import
cn.timer.api.dao.crm.CrmClientDataMapper
;
import
cn.timer.api.dao.crm.CrmClientDataMapper
;
import
cn.timer.api.dto.crm.CrmClientDataImportVo
;
import
cn.timer.api.utils.CheckUtil
;
import
cn.timer.api.utils.CheckUtil
;
import
cn.timer.api.utils.Result
;
import
cn.timer.api.utils.Result
;
import
cn.timer.api.utils.ResultUtil
;
import
cn.timer.api.utils.ResultUtil
;
...
@@ -69,9 +77,15 @@ import io.swagger.annotations.ApiOperation;
...
@@ -69,9 +77,15 @@ import io.swagger.annotations.ApiOperation;
@RequestMapping
(
value
=
"/crm"
,
produces
=
{
"application/json"
})
@RequestMapping
(
value
=
"/crm"
,
produces
=
{
"application/json"
})
public
class
CrmController
{
public
class
CrmController
{
@Value
(
value
=
"${config-8timer.crm-excel.realPath}"
)
private
String
realPath
;
@Autowired
@Autowired
private
CrmClientDataMapper
crmClientDataMapper
;
private
CrmClientDataMapper
crmClientDataMapper
;
@Autowired
private
CrmClientContactsMapper
crmClientContactsMapper
;
private
Integer
getEmpNum
(
UserBean
userBean
)
{
private
Integer
getEmpNum
(
UserBean
userBean
)
{
return
userBean
.
getEmpNum
();
return
userBean
.
getEmpNum
();
}
}
...
@@ -479,7 +493,6 @@ public class CrmController {
...
@@ -479,7 +493,6 @@ public class CrmController {
crmClientDatas
=
getCilentFollowOvertime
(
empNum
,
orgCode
,
groupId
,
status
);
crmClientDatas
=
getCilentFollowOvertime
(
empNum
,
orgCode
,
groupId
,
status
);
else
else
return
ResultUtil
.
error
(
"查询失败"
);
return
ResultUtil
.
error
(
"查询失败"
);
// TODO 排序
Collections
.
sort
(
crmClientDatas
,
Comparator
.
comparing
(
CrmClientData:
:
getCreateTime
).
reversed
());
// 按时间降序排序
Collections
.
sort
(
crmClientDatas
,
Comparator
.
comparing
(
CrmClientData:
:
getCreateTime
).
reversed
());
// 按时间降序排序
return
ResultUtil
.
data
(
crmClientDatas
,
"查询成功"
);
return
ResultUtil
.
data
(
crmClientDatas
,
"查询成功"
);
}
}
...
@@ -562,26 +575,38 @@ public class CrmController {
...
@@ -562,26 +575,38 @@ public class CrmController {
@PostMapping
(
"addCilentLinkMan"
)
@PostMapping
(
"addCilentLinkMan"
)
@Transactional
@Transactional
@ApiOperation
(
value
=
"新增/编辑客户联系人"
,
httpMethod
=
"POST"
,
notes
=
"接口发布说明"
)
@ApiOperation
(
value
=
"新增/编辑客户联系人"
,
httpMethod
=
"POST"
,
notes
=
"接口发布说明"
)
public
Result
<
Void
>
addCilentLinkMan
(
@CurrentUser
UserBean
userBean
,
CrmClientContacts
crmClientContacts
)
{
public
Result
<
Void
>
addCilentLinkMan
(
@CurrentUser
UserBean
userBean
,
@RequestBody
CrmClientContacts
crmClientContacts
)
{
Integer
cid
=
crmClientContacts
.
getCid
();
if
(
crmClientContacts
.
getId
()
==
null
)
{
if
(
crmClientContacts
.
getId
()
==
null
)
{
Integer
num
=
CrmClientData
.
builder
().
build
().
selectById
().
getContactsNum
();
if
(
cid
==
null
)
CrmClientData
.
builder
().
id
(
crmClientContacts
.
getCid
()).
contactsNum
(++
num
).
build
().
updateById
();
return
ResultUtil
.
error
(
"编辑失败,请传入客户id"
);
Integer
num
=
CrmClientData
.
builder
().
id
(
crmClientContacts
.
getCid
()).
build
().
selectById
().
getContactsNum
();
CrmClientData
.
builder
().
id
(
cid
).
contactsNum
(++
num
).
build
().
updateById
();
}
}
if
(
crmClientContacts
.
insertOrUpdate
())
if
(
crmClientContacts
.
insertOrUpdate
())
return
ResultUtil
.
success
(
"新增/编辑成功"
);
return
ResultUtil
.
success
(
"新增/编辑成功"
);
return
ResultUtil
.
success
(
"新增/编辑失败"
);
return
ResultUtil
.
error
(
"新增/编辑失败"
);
}
}
@DeleteMapping
(
"delCilentLinkMan"
)
@DeleteMapping
(
"delCilentLinkMan"
)
@Transactional
@Transactional
@ApiOperation
(
value
=
"删除客户联系人"
,
httpMethod
=
"DELETE"
,
notes
=
"接口发布说明"
)
@ApiOperation
(
value
=
"删除客户联系人"
,
httpMethod
=
"DELETE"
,
notes
=
"接口发布说明"
)
public
Result
<
Void
>
delCilentLinkMan
(
@CurrentUser
UserBean
userBean
,
CrmClientContacts
crmClientContacts
)
{
public
Result
<
Void
>
delCilentLinkMan
(
@CurrentUser
UserBean
userBean
,
@RequestParam
Integer
id
,
Integer
num
=
CrmClientData
.
builder
().
build
().
selectById
().
getContactsNum
();
@RequestParam
Integer
cid
)
{
CrmClientData
.
builder
().
id
(
crmClientContacts
.
getCid
()).
contactsNum
(--
num
).
build
().
updateById
();
if
(
cid
==
null
)
if
(
crmClientContacts
.
deleteById
())
return
ResultUtil
.
error
(
"删除失败,请传入客户id"
);
Integer
num
=
CrmClientData
.
builder
().
id
(
cid
).
build
().
selectById
().
getContactsNum
();
if
(--
num
<
0
)
{
return
ResultUtil
.
error
(
"删除失败,已经没有可以删的联系人了"
);
}
CrmClientData
.
builder
().
id
(
cid
).
contactsNum
(
num
).
build
().
updateById
();
if
(
crmClientContactsMapper
.
deleteById
(
id
)
>
0
)
return
ResultUtil
.
success
(
"删除成功"
);
return
ResultUtil
.
success
(
"删除成功"
);
return
ResultUtil
.
success
(
"删除失败"
);
return
ResultUtil
.
error
(
"删除失败"
);
}
}
...
@@ -632,7 +657,8 @@ public class CrmController {
...
@@ -632,7 +657,8 @@ public class CrmController {
Integer
orgCode
=
getOrgCode
(
userBean
);
Integer
orgCode
=
getOrgCode
(
userBean
);
Integer
empNum
=
getEmpNum
(
userBean
);
Integer
empNum
=
getEmpNum
(
userBean
);
CrmClientData
.
builder
().
id
(
crmClientFollow
.
getCid
()).
lastFollowTime
(
new
Date
()).
build
().
updateById
();
// 更新客户最近跟进时间
CrmClientData
.
builder
().
id
(
crmClientFollow
.
getCid
()).
clientStatus
(
crmClientFollow
.
getClientStatus
())
.
lastFollowTime
(
new
Date
()).
build
().
updateById
();
// 更新客户最近跟进时间
crmClientFollow
.
setOrgCode
(
orgCode
);
crmClientFollow
.
setOrgCode
(
orgCode
);
crmClientFollow
.
setCreateUserName
(
getEmpName
(
orgCode
,
empNum
));
crmClientFollow
.
setCreateUserName
(
getEmpName
(
orgCode
,
empNum
));
...
@@ -845,6 +871,20 @@ public class CrmController {
...
@@ -845,6 +871,20 @@ public class CrmController {
return
list
.
stream
().
map
(
SysRegion:
:
getKeyId
).
collect
(
Collectors
.
toList
());
return
list
.
stream
().
map
(
SysRegion:
:
getKeyId
).
collect
(
Collectors
.
toList
());
}
}
@GetMapping
(
"getAllBusinessMan"
)
@ApiOperation
(
value
=
"获取全部业务员"
,
httpMethod
=
"GET"
,
notes
=
"接口发布说明"
)
public
Result
<
Object
>
getAllBusinessMan
(
@CurrentUser
UserBean
userBean
)
{
List
<
Map
<
String
,
Object
>>
list
=
new
ArrayList
<
Map
<
String
,
Object
>>();
List
<
Integer
>
empNums
=
getAllBusinessGroupMember
(
getOrgCode
(
userBean
),
null
);
for
(
Integer
integer
:
empNums
)
{
Map
<
String
,
Object
>
map
=
new
HashMap
<
String
,
Object
>();
map
.
put
(
"empNum"
,
integer
);
map
.
put
(
"name"
,
getEmpName
(
getOrgCode
(
userBean
),
integer
));
list
.
add
(
map
);
}
return
ResultUtil
.
data
(
list
,
"获取成功"
);
}
// 获取公司全部业务员
// 获取公司全部业务员
private
List
<
Integer
>
getAllBusinessGroupMember
(
Integer
orgCode
,
Integer
groupId
)
{
private
List
<
Integer
>
getAllBusinessGroupMember
(
Integer
orgCode
,
Integer
groupId
)
{
List
<
CrmBusinessGroupMember
>
list
=
CrmBusinessGroupMember
.
builder
().
build
()
List
<
CrmBusinessGroupMember
>
list
=
CrmBusinessGroupMember
.
builder
().
build
()
...
@@ -887,6 +927,7 @@ public class CrmController {
...
@@ -887,6 +927,7 @@ public class CrmController {
List
<
Integer
>
members
=
getAllBusinessGroupMember
(
orgCode
,
groupId
);
List
<
Integer
>
members
=
getAllBusinessGroupMember
(
orgCode
,
groupId
);
for
(
Integer
memberId
:
members
)
{
for
(
Integer
memberId
:
members
)
{
Map
<
String
,
Object
>
map
=
selectMap
(
orgCode
,
memberId
,
status
,
startCreateTime
,
endCreateTime
);
Map
<
String
,
Object
>
map
=
selectMap
(
orgCode
,
memberId
,
status
,
startCreateTime
,
endCreateTime
);
System
.
err
.
println
(
map
);
if
((
Integer
)
map
.
get
(
"num"
)
>
0
)
{
if
((
Integer
)
map
.
get
(
"num"
)
>
0
)
{
list
.
add
(
map
);
list
.
add
(
map
);
}
}
...
@@ -897,6 +938,7 @@ public class CrmController {
...
@@ -897,6 +938,7 @@ public class CrmController {
list
.
add
(
map
);
list
.
add
(
map
);
}
}
}
}
System
.
err
.
println
(
"list:"
+
list
);
return
list
;
return
list
;
}
}
...
@@ -990,6 +1032,141 @@ public class CrmController {
...
@@ -990,6 +1032,141 @@ public class CrmController {
return
map
;
return
map
;
}
}
// TODO 导入客户
/**
* 导入
*
* @param url 上传路径
* @return
*/
@PostMapping
(
"importClient"
)
@Transactional
@ApiOperation
(
value
=
"导入客户"
,
httpMethod
=
"POST"
,
notes
=
"接口发布说明"
)
public
Result
<
Object
>
importClient
(
@CurrentUser
UserBean
userBean
,
@RequestParam
String
url
)
{
Integer
empNum
=
getEmpNum
(
userBean
);
Integer
orgCode
=
getOrgCode
(
userBean
);
String
filePath
=
null
;
try
{
String
time
=
DateUtil
.
format
(
new
Date
(),
"yyyyMMddHHmmssSSS"
);
filePath
=
FileHelper
.
downLoadFromUrl
(
url
,
time
+
".xls"
,
realPath
);
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
// 从文件中读取Excel为ExcelReader
ExcelReader
reader
;
// 从流中读取Excel为ExcelReader(比如从ClassPath中读取Excel文件)
reader
=
ExcelUtil
.
getReader
(
ResourceUtil
.
getStream
(
filePath
));
reader
.
addHeaderAlias
(
"*客户名称(必填)"
,
"clientName"
);
reader
.
addHeaderAlias
(
"*所属分组(必填)"
,
"belongGroupName"
);
reader
.
addHeaderAlias
(
"行业"
,
"industryName"
);
reader
.
addHeaderAlias
(
"客户类型"
,
"clientTypeName"
);
reader
.
addHeaderAlias
(
"手机号码(客户)"
,
"clientCellphone"
);
reader
.
addHeaderAlias
(
"座机号码"
,
"clientTelephone"
);
reader
.
addHeaderAlias
(
"官网"
,
"clientUrl"
);
reader
.
addHeaderAlias
(
"邮箱"
,
"clientEmail"
);
reader
.
addHeaderAlias
(
"地址"
,
"address"
);
reader
.
addHeaderAlias
(
"联系人姓名"
,
"linkName"
);
reader
.
addHeaderAlias
(
"手机号码(联系人)"
,
"cellphone"
);
reader
.
addHeaderAlias
(
"所属公司"
,
"company"
);
reader
.
addHeaderAlias
(
"性别"
,
"gender"
);
reader
.
addHeaderAlias
(
"职位"
,
"position"
);
reader
.
addHeaderAlias
(
"办公电话"
,
"telephone"
);
reader
.
addHeaderAlias
(
"个人邮箱"
,
"email"
);
reader
.
addHeaderAlias
(
"个人地址"
,
"linkAddress"
);
List
<
CrmClientDataImportVo
>
list
=
reader
.
read
(
0
,
1
,
CrmClientDataImportVo
.
class
);
for
(
CrmClientDataImportVo
crmClientDataImportVo
:
list
)
{
System
.
err
.
println
(
crmClientDataImportVo
);
String
clientName
=
crmClientDataImportVo
.
getClientName
();
// 客户名称(必填)
String
belongGroupName
=
crmClientDataImportVo
.
getBelongGroupName
();
// 分组名(必填)
String
industryName
=
crmClientDataImportVo
.
getIndustryName
();
// 行业名
String
clientTypeName
=
crmClientDataImportVo
.
getClientTypeName
();
// 客户类型名
String
clientCellphone
=
crmClientDataImportVo
.
getClientCellphone
();
// 客户手机号
String
clientTelephone
=
crmClientDataImportVo
.
getClientTelephone
();
// 客户座机号
String
clientUrl
=
crmClientDataImportVo
.
getClientUrl
();
// 官网
String
clientEmail
=
crmClientDataImportVo
.
getClientEmail
();
// 邮箱
String
clientAddress
=
crmClientDataImportVo
.
getAddress
();
// 地址
String
linkname
=
crmClientDataImportVo
.
getLinkName
();
// 联系人姓名
String
linkcellphone
=
crmClientDataImportVo
.
getCellphone
();
// 手机号码
String
linkcompany
=
crmClientDataImportVo
.
getCompany
();
// 所属公司
String
linkgender
=
crmClientDataImportVo
.
getGender
();
// 性别
String
linkposition
=
crmClientDataImportVo
.
getPosition
();
// 职位
String
linktelephone
=
crmClientDataImportVo
.
getTelephone
();
// 办公电话
String
linkemail
=
crmClientDataImportVo
.
getEmail
();
// 个人邮箱
String
linkaddress
=
crmClientDataImportVo
.
getLinkAddress
();
// 个人地址
CrmClientData
crmClientData
=
new
CrmClientData
();
// 业务组
CrmBusinessGroup
crmBusinessGroup
=
CrmBusinessGroup
.
builder
().
build
()
.
selectOne
(
new
LambdaQueryWrapper
<
CrmBusinessGroup
>()
.
eq
(
CrmBusinessGroup:
:
getOrgCode
,
userBean
.
getOrgCode
())
.
eq
(
CrmBusinessGroup:
:
getName
,
belongGroupName
).
select
(
CrmBusinessGroup:
:
getId
));
if
(
crmBusinessGroup
==
null
)
return
ResultUtil
.
error
(
"没有匹配的业务组名称"
);
if
(
StrUtil
.
isNotBlank
(
industryName
))
{
// 行业字典
IndustryClass
industryClass
=
IndustryClass
.
builder
().
build
()
.
selectOne
(
new
LambdaQueryWrapper
<
IndustryClass
>().
eq
(
IndustryClass:
:
getName
,
industryName
)
.
select
(
IndustryClass:
:
getId
));
if
(
industryClass
==
null
)
return
ResultUtil
.
error
(
"没有匹配的行业名称"
);
crmClientData
.
setIndustry
(
industryClass
.
getId
());
}
if
(
StrUtil
.
isNotBlank
(
clientTypeName
))
{
// 客户类型
ClientTypeClass
clientTypeClass
=
ClientTypeClass
.
builder
().
build
()
.
selectOne
(
new
LambdaQueryWrapper
<
ClientTypeClass
>()
.
eq
(
ClientTypeClass:
:
getName
,
clientTypeName
).
select
(
ClientTypeClass:
:
getId
));
if
(
clientTypeClass
==
null
)
return
ResultUtil
.
error
(
"没有匹配的客户类型名称"
);
crmClientData
.
setClientType
(
clientTypeClass
.
getId
());
}
crmClientData
.
setClientStatus
(
0
);
crmClientData
.
setContactsNum
(
1
);
crmClientData
.
setBelongUser
(
empNum
);
crmClientData
.
setBelongUserName
(
getEmpName
(
orgCode
,
empNum
));
crmClientData
.
setClientName
(
clientName
);
crmClientData
.
setBelongGroupName
(
belongGroupName
);
crmClientData
.
setBelongGroup
(
crmBusinessGroup
.
getId
());
crmClientData
.
setIndustryName
(
industryName
);
crmClientData
.
setClientTypeName
(
clientTypeName
);
crmClientData
.
setClientCellphone
(
clientCellphone
);
crmClientData
.
setClientTelephone
(
clientTelephone
);
crmClientData
.
setClientUrl
(
clientUrl
);
crmClientData
.
setClientEmail
(
clientEmail
);
crmClientData
.
setAddress
(
clientAddress
);
crmClientData
.
insert
();
Integer
cid
=
crmClientData
.
getId
();
CrmClientContacts
contacts
=
new
CrmClientContacts
();
contacts
.
setName
(
linkname
);
contacts
.
setCellphone
(
linkcellphone
);
contacts
.
setCompany
(
linkcompany
);
if
(
linkgender
==
"女"
)
contacts
.
setGender
(
0
);
else
if
(
linkgender
==
"男"
)
contacts
.
setGender
(
1
);
else
contacts
.
setGender
(
null
);
contacts
.
setPosition
(
linkposition
);
contacts
.
setTelephone
(
linktelephone
);
contacts
.
setEmail
(
linkemail
);
contacts
.
setAddress
(
linkaddress
);
if
(!(
linkname
==
null
&&
linkcellphone
==
null
&&
linkcompany
==
null
&&
linkgender
==
null
&&
linkposition
==
null
&&
linktelephone
==
null
&&
linkemail
==
null
&&
linkaddress
==
null
))
{
contacts
.
setCid
(
cid
);
contacts
.
insert
();
}
}
return
ResultUtil
.
success
(
"导入成功"
);
}
}
}
src/main/java/cn/timer/api/controller/crm/CrmRuleController.java
View file @
186620ae
...
@@ -62,21 +62,25 @@ public class CrmRuleController {
...
@@ -62,21 +62,25 @@ public class CrmRuleController {
Integer
status
=
crmClientData
.
getClientStatus
();
Integer
status
=
crmClientData
.
getClientStatus
();
String
belongUserName
=
crmClientData
.
getBelongUserName
();
String
belongUserName
=
crmClientData
.
getBelongUserName
();
String
clientName
=
crmClientData
.
getClientName
();
String
clientName
=
crmClientData
.
getClientName
();
Date
now
=
new
Date
();
// 客户创建时间+ x天 = 过期释放时间
// 客户创建时间+ x天 = 过期释放时间
DateTime
overDate1
=
DateUtil
.
offsetDay
(
createTime
,
one
);
DateTime
overDate1
=
DateUtil
.
offsetDay
(
createTime
,
one
);
Long
compare2
=
null
;
if
(
lastFollowTime
!=
null
)
{
DateTime
overDate2
=
DateUtil
.
offsetDay
(
lastFollowTime
,
two
);
DateTime
overDate2
=
DateUtil
.
offsetDay
(
lastFollowTime
,
two
);
compare2
=
DateUtil
.
between
(
overDate2
,
now
,
DateUnit
.
DAY
,
false
);
}
DateTime
overDate3
=
DateUtil
.
offsetDay
(
createTime
,
three
);
DateTime
overDate3
=
DateUtil
.
offsetDay
(
createTime
,
three
);
// 时间比较
// 时间比较
Date
now
=
new
Date
();
long
compare1
=
DateUtil
.
between
(
overDate1
,
now
,
DateUnit
.
DAY
,
false
);
long
compare1
=
DateUtil
.
between
(
overDate1
,
now
,
DateUnit
.
DAY
,
false
);
long
compare2
=
DateUtil
.
between
(
overDate2
,
now
,
DateUnit
.
DAY
,
false
);
long
compare3
=
DateUtil
.
between
(
overDate3
,
now
,
DateUnit
.
DAY
,
false
);
long
compare3
=
DateUtil
.
between
(
overDate3
,
now
,
DateUnit
.
DAY
,
false
);
// 判断1和2和3
// 判断1和2和3
if
((
lastFollowTime
==
null
&&
compare1
>=
0
)
||
(
lastFollowTime
!=
null
&&
compare2
>=
0
)
if
((
lastFollowTime
==
null
&&
compare1
>=
0
)
||
(
lastFollowTime
!=
null
&&
compare2
>=
0
)
||
(
compare3
>=
0
&&
status
!=
3
&&
status
!=
4
))
||
(
compare3
>=
0
&&
status
!=
3
&&
status
!=
4
))
release
(
crmClientData
);
release
(
crmClientData
);
// 判断4
// 判断4
if
(
compare1
==
-
four
||
compare2
==
-
four
||
compare3
==
-
four
)
if
(
compare1
==
-
four
||
compare2
==
-
four
||
compare3
==
-
four
)
// TODO
remind
(
belongUserName
,
clientName
,
four
);
remind
(
belongUserName
,
clientName
,
four
);
}
}
}
}
...
...
src/main/java/cn/timer/api/dto/crm/CrmClientDataImportVo.java
0 → 100644
View file @
186620ae
/**
* Title: CrmClientDataImportVo.java
* Description:
* @author dsc
* @date 2020年6月12日
* @version 1.0
*/
package
cn
.
timer
.
api
.
dto
.
crm
;
import
java.io.Serializable
;
import
lombok.AllArgsConstructor
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
/**
* Title: CrmClientDataImportVo.java
*
* @Description:
* @author dsc
* @date 2020年6月12日
* @version 1.0
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public
class
CrmClientDataImportVo
implements
Serializable
{
private
static
final
long
serialVersionUID
=
3241644321635711815L
;
// 客户名
private
String
clientName
;
// 组
private
String
belongGroupName
;
// 行业
private
String
industryName
;
// 客户类型
private
String
clientTypeName
;
// 手机号
private
String
clientCellphone
;
// 客户座机
private
String
clientTelephone
;
// 客户官网
private
String
clientUrl
;
// 邮箱
private
String
clientEmail
;
// 详细地址
private
String
address
;
// 联系人信息
private
String
linkName
;
private
String
cellphone
;
private
String
company
;
private
String
gender
;
private
String
position
;
private
String
telephone
;
private
String
email
;
private
String
linkAddress
;
}
src/main/resources/application-dev.yml
View file @
186620ae
...
@@ -202,6 +202,9 @@ config-8timer:
...
@@ -202,6 +202,9 @@ config-8timer:
three
:
30
three
:
30
init-password
:
123456
init-password
:
123456
# 客户管理导入服务器保存路径
crm-excel
:
realPath
:
'
D:/excel/'
\ No newline at end of file
src/main/resources/application-pro.yml
View file @
186620ae
...
@@ -172,3 +172,7 @@ config-8timer:
...
@@ -172,3 +172,7 @@ config-8timer:
two
:
7
two
:
7
three
:
30
three
:
30
init-password
:
123456
init-password
:
123456
# 客户管理导入服务器保存路径
crm-excel
:
realPath
:
'
crm-excel/'
\ No newline at end of file
src/main/resources/application-test.yml
View file @
186620ae
...
@@ -171,3 +171,7 @@ config-8timer:
...
@@ -171,3 +171,7 @@ config-8timer:
two
:
7
two
:
7
three
:
30
three
:
30
init-password
:
123456
init-password
:
123456
# 客户管理导入服务器保存路径
crm-excel
:
realPath
:
'
crm-excel/'
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment