Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
Y
yd-backend
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
AutogeneralShanghai
yd-backend
Commits
64b026e3
Commit
64b026e3
authored
Oct 22, 2020
by
Simon Cheng
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/dev_20200908_PEP_Statistics' into dev
parents
b6b589bb
0b9b07a8
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
44 additions
and
73 deletions
+44
-73
yd-api/src/main/java/com/yd/api/practitioner/service/impl/ScheduleTrackServiceImpl.java
+23
-70
yd-api/src/main/java/com/yd/dal/mapper/marketing/ScheduleTrackMapper.java
+6
-3
yd-api/src/main/resources/mapper/marketing/ScheduleTrackMapper.xml
+15
-0
No files found.
yd-api/src/main/java/com/yd/api/practitioner/service/impl/ScheduleTrackServiceImpl.java
View file @
64b026e3
...
@@ -70,11 +70,11 @@ public class ScheduleTrackServiceImpl implements ScheduleTrackService {
...
@@ -70,11 +70,11 @@ public class ScheduleTrackServiceImpl implements ScheduleTrackService {
Date
trackTime
=
schedule
.
getTrackTime
();
Date
trackTime
=
schedule
.
getTrackTime
();
Long
practitionerId
=
schedule
.
getPractitionerId
();
Long
practitionerId
=
schedule
.
getPractitionerId
();
Long
mdDropOptionId
=
schedule
.
getMdDropOptionId
();
Long
mdDropOptionId
=
schedule
.
getMdDropOptionId
();
// 判断
活动时间段是否冲突
// 判断
日程是否重复
if
(!
CommonUtil
.
isNullOrBlank
(
taskTimeFrom
)
&&
!
CommonUtil
.
isNullOrBlank
(
taskTimeEnd
))
{
if
(!
CommonUtil
.
isNullOrBlank
(
taskTimeFrom
)
&&
!
CommonUtil
.
isNullOrBlank
(
taskTimeEnd
))
{
boolean
isConflict
=
this
.
checkTimePeriodConflict
(
trackTime
,
taskTimeFrom
,
taskTimeEnd
,
practitionerI
d
);
int
count
=
scheduleTrackMapper
.
checkIsExist
(
practitionerId
,
trackTime
,
mdDropOptionId
,
taskTimeFrom
,
taskTimeEn
d
);
if
(
isConflict
)
{
if
(
count
>
0
)
{
resp
.
setCommonResult
(
new
CommonResult
(
false
,
ZHBErrorConfig
.
getErrorInfo
(
"830020"
)
));
resp
.
setCommonResult
(
new
CommonResult
(
false
,
"该时间段内该类型日程已存在"
));
return
resp
;
return
resp
;
}
}
}
else
{
}
else
{
...
@@ -113,46 +113,11 @@ public class ScheduleTrackServiceImpl implements ScheduleTrackService {
...
@@ -113,46 +113,11 @@ public class ScheduleTrackServiceImpl implements ScheduleTrackService {
return
resp
;
return
resp
;
}
}
private
boolean
checkTimePeriodConflict
(
Date
trackTime
,
String
taskTimeFrom
,
String
taskTimeEnd
,
Long
practitionerId
)
{
List
<
ScheduleTrack
>
showList
=
new
ArrayList
<>();
List
<
ScheduleTrack
>
dataList
=
scheduleTrackMapper
.
queryScheduleTrackList
(
practitionerId
);
// 获得当天展示的日程列表
for
(
ScheduleTrack
schedule:
dataList
)
{
if
(
this
.
checkFixedDay
(
CommonUtil
.
dateParseString
(
trackTime
,
"yyyy-MM-dd"
),
schedule
))
{
showList
.
add
(
schedule
);
}
}
// 检查时间段是否冲突
boolean
isConflict
=
false
;
String
taskStartTime
;
String
taskEndTime
;
for
(
ScheduleTrack
schedule:
showList
)
{
taskStartTime
=
schedule
.
getTaskTimeFrom
();
taskEndTime
=
schedule
.
getTaskTimeEnd
();
if
(
taskStartTime
.
compareTo
(
taskTimeEnd
)<
0
&&
taskEndTime
.
compareTo
(
taskTimeFrom
)>
0
)
{
isConflict
=
true
;
break
;
}
}
return
isConflict
;
}
private
void
insertOpportunityRecord
(
ScheduleTrack
schedule
)
{
private
void
insertOpportunityRecord
(
ScheduleTrack
schedule
)
{
MktLeadsAssignedTrack
track
=
new
MktLeadsAssignedTrack
();
MktLeadsAssignedTrack
track
=
new
MktLeadsAssignedTrack
();
BeanUtils
.
copyProperties
(
schedule
,
track
,
"id"
);
BeanUtils
.
copyProperties
(
schedule
,
track
,
"id"
);
//保存
track
.
setLeadsAssignedId
(
schedule
.
getReferLeadsId
());
mktLeadsAssignedTrackDALService
.
saveTrack
(
track
);
track
.
setSalesNotice
(
schedule
.
getNotice
());
track
.
setScheduleTaskTrackingId
(
schedule
.
getId
());
List
<
MktLeadsAssignedTrack
>
trackList
=
mktLeadsAssignedTrackDALService
.
findByTrackTimeForNew
(
track
);
if
(
trackList
.
isEmpty
()){
//保存
mktLeadsAssignedTrackDALService
.
saveTrack
(
track
);
}
else
{
//更新
mktLeadsAssignedTrackDALService
.
updateTrack
(
track
);
}
}
}
private
void
insertPotentialAssignedTrack
(
ScheduleTrack
schedule
)
{
private
void
insertPotentialAssignedTrack
(
ScheduleTrack
schedule
)
{
...
@@ -176,32 +141,20 @@ public class ScheduleTrackServiceImpl implements ScheduleTrackService {
...
@@ -176,32 +141,20 @@ public class ScheduleTrackServiceImpl implements ScheduleTrackService {
}
}
aclPractitionerPotentialAssignedTrackDALService
.
updateAll
(
assignedTrackUpdateList
);
aclPractitionerPotentialAssignedTrackDALService
.
updateAll
(
assignedTrackUpdateList
);
}
}
//2、查询团队长对该增员所有增员状态
//2、插入
List
<
AclPractitionerPotentialAssignedTrack
>
assignedTrackList
=
aclPractitionerPotentialAssignedTrackDALService
.
findByPractitionerIdAndPotentialIdAndTrackStatusId
(
practitionerId
,
potentialId
,
trackStatusId
,
trackTimeDate
);
MdDropOptions
options
=
mdDropOptionsDALService
.
findById
(
trackStatusId
);
if
(
assignedTrackList
==
null
||
assignedTrackList
.
isEmpty
())
{
//3、如果没有,获取增员状态对应的分值,
assignedTrack
.
setTrackScore
(
options
.
getDropOptionScore
());
MdDropOptions
options
=
mdDropOptionsDALService
.
findById
(
trackStatusId
);
assignedTrack
.
setPractitionerAssignedId
(
practitionerId
);
assignedTrack
.
setTrackScore
(
options
.
getDropOptionScore
());
assignedTrack
.
setPractitionerPotentialId
(
potentialId
);
assignedTrack
.
setPractitionerAssignedId
(
practitionerId
);
assignedTrack
.
setTrackStatusId
(
trackStatusId
);
assignedTrack
.
setPractitionerPotentialId
(
potentialId
);
assignedTrack
.
setNotice
(
notice
);
assignedTrack
.
setTrackStatusId
(
trackStatusId
);
assignedTrack
.
setTrackTime
(
trackTimeDate
);
assignedTrack
.
setNotice
(
notice
);
assignedTrack
.
setIsActive
(
1
);
assignedTrack
.
setTrackTime
(
trackTimeDate
);
assignedTrack
.
setIsLasted
(
1
);
assignedTrack
.
setIsActive
(
1
);
assignedTrack
.
setCreatorType
(
2
);
assignedTrack
.
setIsLasted
(
1
);
assignedTrack
.
setCreatedBy
(
practitionerId
);
assignedTrack
.
setCreatorType
(
2
);
assignedTrack
.
setCreatedAt
(
new
Date
());
assignedTrack
.
setCreatedBy
(
practitionerId
);
aclPractitionerPotentialAssignedTrackDALService
.
save
(
assignedTrack
);
assignedTrack
.
setCreatedAt
(
new
Date
());
aclPractitionerPotentialAssignedTrackDALService
.
save
(
assignedTrack
);
}
else
{
assignedTrack
=
assignedTrackList
.
get
(
0
);
assignedTrack
.
setNotice
(
notice
);
assignedTrack
.
setIsLasted
(
1
);
assignedTrack
.
setUpdatedAt
(
new
Date
());
assignedTrack
.
setUpdatedBy
(
practitionerId
);
assignedTrack
.
setUpdaterType
(
2
);
aclPractitionerPotentialAssignedTrackDALService
.
update
(
assignedTrack
);
}
}
}
...
@@ -217,7 +170,7 @@ public class ScheduleTrackServiceImpl implements ScheduleTrackService {
...
@@ -217,7 +170,7 @@ public class ScheduleTrackServiceImpl implements ScheduleTrackService {
}
}
List
<
ScheduleTrackVO
>
showList
=
new
ArrayList
<>();
List
<
ScheduleTrackVO
>
showList
=
new
ArrayList
<>();
try
{
try
{
List
<
ScheduleTrack
>
dataList
=
scheduleTrackMapper
.
queryScheduleTrackList
(
practitionerId
);
List
<
ScheduleTrack
>
dataList
=
scheduleTrackMapper
.
queryScheduleTrackList
(
practitionerId
,
trackDate
);
Map
<
Long
,
MdDropOptions
>
taskTypeMap
=
this
.
getScheduleTaskTypeMap
();
Map
<
Long
,
MdDropOptions
>
taskTypeMap
=
this
.
getScheduleTaskTypeMap
();
String
optionName
=
null
;
String
optionName
=
null
;
for
(
ScheduleTrack
schedule:
dataList
)
{
for
(
ScheduleTrack
schedule:
dataList
)
{
...
@@ -324,7 +277,7 @@ public class ScheduleTrackServiceImpl implements ScheduleTrackService {
...
@@ -324,7 +277,7 @@ public class ScheduleTrackServiceImpl implements ScheduleTrackService {
// 其他活动有长期固定,通过计算时间段内展示次数,算得总分
// 其他活动有长期固定,通过计算时间段内展示次数,算得总分
// 先获得每个人所有的其他活动
// 先获得每个人所有的其他活动
List
<
PersonalSchedule
>
personalScheduleList
=
scheduleTrackMapper
.
queryPersonalScheduleList
(
practitionerIdList
);
List
<
PersonalSchedule
>
personalScheduleList
=
scheduleTrackMapper
.
queryPersonalScheduleList
(
practitionerIdList
,
today
);
// 根据活动算本日,本周,本月的分数
// 根据活动算本日,本周,本月的分数
this
.
computeOtherScore
(
personalScheduleList
,
today
,
weekOne
,
monthOne
);
this
.
computeOtherScore
(
personalScheduleList
,
today
,
weekOne
,
monthOne
);
...
@@ -387,7 +340,7 @@ public class ScheduleTrackServiceImpl implements ScheduleTrackService {
...
@@ -387,7 +340,7 @@ public class ScheduleTrackServiceImpl implements ScheduleTrackService {
}
}
try
{
try
{
// 根据经纪人id查询个人所有日程
// 根据经纪人id查询个人所有日程
List
<
ScheduleTrack
>
scheduleList
=
scheduleTrackMapper
.
queryPersonalScheduleListByTime
(
practitionerId
,
time
);
List
<
ScheduleTrack
>
scheduleList
=
scheduleTrackMapper
.
queryPersonalScheduleListByTime
(
practitionerId
,
time
,
new
Date
()
);
// 计算增员日程和销售日程的得分
// 计算增员日程和销售日程的得分
List
<
Long
>
saleOption
=
mdDropOptionsDALService
.
queryIdByByDropMasterCode
(
"bizchance_promotion_action"
);
List
<
Long
>
saleOption
=
mdDropOptionsDALService
.
queryIdByByDropMasterCode
(
"bizchance_promotion_action"
);
List
<
Long
>
RecruitOption
=
mdDropOptionsDALService
.
queryIdByByDropMasterCode
(
"team_building_track"
);
List
<
Long
>
RecruitOption
=
mdDropOptionsDALService
.
queryIdByByDropMasterCode
(
"team_building_track"
);
...
...
yd-api/src/main/java/com/yd/dal/mapper/marketing/ScheduleTrackMapper.java
View file @
64b026e3
...
@@ -12,7 +12,7 @@ public interface ScheduleTrackMapper {
...
@@ -12,7 +12,7 @@ public interface ScheduleTrackMapper {
void
insert
(
ScheduleTrack
schedule
);
void
insert
(
ScheduleTrack
schedule
);
List
<
ScheduleTrack
>
queryScheduleTrackList
(
@Param
(
"practitionerId"
)
Long
practitionerId
);
List
<
ScheduleTrack
>
queryScheduleTrackList
(
@Param
(
"practitionerId"
)
Long
practitionerId
,
@Param
(
"trackDate"
)
String
trackDate
);
int
checkTimePeriodConflict
(
@Param
(
"trackTime"
)
Date
trackTime
,
@Param
(
"taskTimeFrom"
)
String
taskTimeFrom
,
int
checkTimePeriodConflict
(
@Param
(
"trackTime"
)
Date
trackTime
,
@Param
(
"taskTimeFrom"
)
String
taskTimeFrom
,
@Param
(
"taskTimeEnd"
)
String
taskTimeEnd
,
@Param
(
"practitionerId"
)
Long
practitionerId
);
@Param
(
"taskTimeEnd"
)
String
taskTimeEnd
,
@Param
(
"practitionerId"
)
Long
practitionerId
);
...
@@ -21,12 +21,15 @@ public interface ScheduleTrackMapper {
...
@@ -21,12 +21,15 @@ public interface ScheduleTrackMapper {
List
<
Long
>
queryTeamAllPractitionerId
(
@Param
(
"practitionerId"
)
Long
practitionerId
);
List
<
Long
>
queryTeamAllPractitionerId
(
@Param
(
"practitionerId"
)
Long
practitionerId
);
List
<
PersonalSchedule
>
queryPersonalScheduleList
(
List
<
Long
>
practitionerIdList
);
List
<
PersonalSchedule
>
queryPersonalScheduleList
(
@Param
(
"list"
)
List
<
Long
>
practitionerIdList
,
@Param
(
"trackDate"
)
Date
trackDate
);
List
<
ScheduleTrack
>
queryPersonalScheduleListByTime
(
@Param
(
"practitionerId"
)
Long
practitionerId
,
@Param
(
"time"
)
String
time
);
List
<
ScheduleTrack
>
queryPersonalScheduleListByTime
(
@Param
(
"practitionerId"
)
Long
practitionerId
,
@Param
(
"time"
)
String
time
,
@Param
(
"trackDate"
)
Date
trackDate
);
void
deleteScheduleTrackById
(
@Param
(
"scheduleTrackId"
)
Long
scheduleTrackId
);
void
deleteScheduleTrackById
(
@Param
(
"scheduleTrackId"
)
Long
scheduleTrackId
);
String
queryNameByPractitionerId
(
Long
practitionerId
);
String
queryNameByPractitionerId
(
Long
practitionerId
);
int
checkIsExist
(
@Param
(
"practitionerId"
)
Long
practitionerId
,
@Param
(
"trackTime"
)
Date
trackTime
,
@Param
(
"mdDropOptionId"
)
Long
mdDropOptionId
,
@Param
(
"taskTimeFrom"
)
String
taskTimeFrom
,
@Param
(
"taskTimeEnd"
)
String
taskTimeEnd
);
}
}
yd-api/src/main/resources/mapper/marketing/ScheduleTrackMapper.xml
View file @
64b026e3
...
@@ -42,6 +42,7 @@
...
@@ -42,6 +42,7 @@
FROM ag_mkt_schedule_task_tracking t
FROM ag_mkt_schedule_task_tracking t
LEFT JOIN ag_acl_customer c on t.customer_id=c.id
LEFT JOIN ag_acl_customer c on t.customer_id=c.id
WHERE practitioner_id = #{practitionerId,jdbcType=BIGINT}
WHERE practitioner_id = #{practitionerId,jdbcType=BIGINT}
AND DATEDIFF(#{trackDate,jdbcType=VARCHAR},track_time)
<
365
ORDER BY task_time_from
ORDER BY task_time_from
</select>
</select>
...
@@ -189,6 +190,7 @@
...
@@ -189,6 +190,7 @@
FROM
FROM
ag_mkt_schedule_task_tracking t
ag_mkt_schedule_task_tracking t
WHERE 1=1
WHERE 1=1
AND DATEDIFF(#{trackDate,jdbcType=TIMESTAMP},track_time)
<
365
AND md_drop_option_id in
AND md_drop_option_id in
(SELECT o.id FROM ag_md_drop_options o LEFT JOIN ag_md_drop_master m ON m.id = o.drop_master_id
(SELECT o.id FROM ag_md_drop_options o LEFT JOIN ag_md_drop_master m ON m.id = o.drop_master_id
WHERE m.scenario_code = 'pep_schedule_task_others'
WHERE m.scenario_code = 'pep_schedule_task_others'
...
@@ -229,6 +231,7 @@
...
@@ -229,6 +231,7 @@
created_at, created_by, updated_at, updated_by, updator_type, creator_type
created_at, created_by, updated_at, updated_by, updator_type, creator_type
from ag_mkt_schedule_task_tracking t
from ag_mkt_schedule_task_tracking t
where t.practitioner_id = #{practitionerId,jdbcType=BIGINT}
where t.practitioner_id = #{practitionerId,jdbcType=BIGINT}
and DATEDIFF(#{trackDate,jdbcType=TIMESTAMP},track_time)
<
365
and md_drop_option_id in
and md_drop_option_id in
(SELECT o.id FROM ag_md_drop_options o LEFT JOIN ag_md_drop_master m ON m.id = o.drop_master_id
(SELECT o.id FROM ag_md_drop_options o LEFT JOIN ag_md_drop_master m ON m.id = o.drop_master_id
WHERE m.scenario_code = 'pep_schedule_task_others'
WHERE m.scenario_code = 'pep_schedule_task_others'
...
@@ -244,4 +247,15 @@
...
@@ -244,4 +247,15 @@
where p.id = #{practitionerId,jdbcType=BIGINT}
where p.id = #{practitionerId,jdbcType=BIGINT}
</select>
</select>
<select
id=
"checkIsExist"
resultType=
"int"
>
SELECT count(1)
FROM ag_mkt_schedule_task_tracking
WHERE 1=1
AND to_days(track_time) = to_days(#{trackTime,jdbcType=TIMESTAMP})
AND practitioner_id = #{practitionerId,jdbcType=BIGINT}
AND task_time_from = STR_TO_DATE(#{taskTimeFrom,jdbcType=VARCHAR}, '%H:%i:%s')
AND task_time_end = STR_TO_DATE(#{taskTimeEnd,jdbcType=VARCHAR}, '%H:%i:%s')
AND md_drop_option_id = #{mdDropOptionId,jdbcType=BIGINT}
</select>
</mapper>
</mapper>
\ 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