Commit 55f2e02c by jianan

10.添加一项任务,时间在 24号,9:00-10:00,保存后,再次添加25号 8:00- 10:00的任务,保存,提示:message: "活动时间段冲突"

11.今天24号添加的任务,分值没有计在今天
12. 25号添加的任务,分值没有统计在本周
13.还有本周比本月分值高
parent 09bd1a81
package com.yd.api.practitioner.service.impl; package com.yd.api.practitioner.service.impl;
import com.yd.api.agms.vo.dashboard.StatisticsSalesInfo;
import com.yd.api.practitioner.service.ScheduleTrackService; import com.yd.api.practitioner.service.ScheduleTrackService;
import com.yd.api.practitioner.vo.recruit.RecruitTrackInfo;
import com.yd.api.practitioner.vo.sechedule.*; import com.yd.api.practitioner.vo.sechedule.*;
import com.yd.api.result.CommonResult; import com.yd.api.result.CommonResult;
import com.yd.dal.entity.customer.AclPractitionerPotentialAssignedTrack; import com.yd.dal.entity.customer.AclPractitionerPotentialAssignedTrack;
...@@ -16,15 +14,12 @@ import com.yd.dal.service.marketing.MktLeadsAssignedTrackDALService; ...@@ -16,15 +14,12 @@ import com.yd.dal.service.marketing.MktLeadsAssignedTrackDALService;
import com.yd.dal.service.meta.MdDropOptionsDALService; import com.yd.dal.service.meta.MdDropOptionsDALService;
import com.yd.util.CommonUtil; import com.yd.util.CommonUtil;
import com.yd.util.config.ZHBErrorConfig; import com.yd.util.config.ZHBErrorConfig;
import com.yd.util.intercept.annotation.TargetDataSource;
import com.yd.util.intercept.commons.DataSourceKey;
import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.xml.crypto.Data;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.*; import java.util.*;
...@@ -68,11 +63,12 @@ public class ScheduleTrackServiceImpl implements ScheduleTrackService { ...@@ -68,11 +63,12 @@ public class ScheduleTrackServiceImpl implements ScheduleTrackService {
} }
String taskTimeFrom = schedule.getTaskTimeFrom(); String taskTimeFrom = schedule.getTaskTimeFrom();
String taskTimeEnd = schedule.getTaskTimeEnd(); String taskTimeEnd = schedule.getTaskTimeEnd();
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)) {
int count = scheduleTrackMapper.checkTimePeriodConflict(taskTimeFrom, taskTimeEnd, practitionerId); int count = scheduleTrackMapper.checkTimePeriodConflict(trackTime, taskTimeFrom, taskTimeEnd, practitionerId);
if (count > 0) { if (count > 0) {
resp.setCommonResult(new CommonResult(false, ZHBErrorConfig.getErrorInfo("830020"))); resp.setCommonResult(new CommonResult(false, ZHBErrorConfig.getErrorInfo("830020")));
return resp; return resp;
...@@ -274,11 +270,12 @@ public class ScheduleTrackServiceImpl implements ScheduleTrackService { ...@@ -274,11 +270,12 @@ public class ScheduleTrackServiceImpl implements ScheduleTrackService {
// 获取本月当前日的年月日时分秒格式 // 获取本月当前日的年月日时分秒格式
Date today = new Date(); Date today = new Date();
// 获取本周第一天(周一为始) // 获取本周第一天(周一为始)
cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); Calendar cal2 = Calendar.getInstance();
cal.set(Calendar.HOUR_OF_DAY, 0); cal2.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
cal.set(Calendar.MINUTE, 0); cal2.set(Calendar.HOUR_OF_DAY, 0);
cal.set(Calendar.SECOND, 0); cal2.set(Calendar.MINUTE, 0);
Date weekOne = cal.getTime(); cal2.set(Calendar.SECOND, 0);
Date weekOne = cal2.getTime();
List<Long> practitionerIdList = scheduleTrackMapper.queryTeamAllPractitionerId(practitionerId); List<Long> practitionerIdList = scheduleTrackMapper.queryTeamAllPractitionerId(practitionerId);
if (CollectionUtils.isEmpty(practitionerIdList)) { if (CollectionUtils.isEmpty(practitionerIdList)) {
...@@ -286,7 +283,7 @@ public class ScheduleTrackServiceImpl implements ScheduleTrackService { ...@@ -286,7 +283,7 @@ public class ScheduleTrackServiceImpl implements ScheduleTrackService {
practitionerIdList.add(practitionerId); practitionerIdList.add(practitionerId);
} }
// 根据团队长经纪人id查询团队每个成员本日,本周,本月得分以及---线上本月FYC // 根据团队长经纪人id查询团队每个成员本日,本周,本月得分以及---线上本月FYC
List<PersonalPEPScore> saleAndRecuit = scheduleTrackMapper.querySaleRecuitScoreFYC(practitionerIdList, monthOne, today); List<PersonalPEPScore> saleAndRecuit = scheduleTrackMapper.querySaleRecuitScoreFYC(practitionerIdList);
// 获取mobileNoList // 获取mobileNoList
List<String> mobileNoList = new ArrayList<>(); List<String> mobileNoList = new ArrayList<>();
saleAndRecuit.forEach(i->mobileNoList.add(i.getMobileNo())); saleAndRecuit.forEach(i->mobileNoList.add(i.getMobileNo()));
...@@ -518,11 +515,10 @@ public class ScheduleTrackServiceImpl implements ScheduleTrackService { ...@@ -518,11 +515,10 @@ public class ScheduleTrackServiceImpl implements ScheduleTrackService {
// 计算所有其他活动的本日,本周,本月得分 // 计算所有其他活动的本日,本周,本月得分
for (ScheduleTrack s:scheduleList) { for (ScheduleTrack s:scheduleList) {
trackScore = s.getTrackScore(); trackScore = s.getTrackScore();
dayOther += this.calculateScheduleDisplayCount(s, today, today) * trackScore; dayOther += this.calculateScheduleDisplayCount(s, today, today) * trackScore;
weekOther += this.calculateScheduleDisplayCount(s, weekOne, today) * trackScore; weekOther += this.calculateScheduleDisplayCount(s, weekOne, today) * trackScore;
monthOther += this.calculateScheduleDisplayCount(s, monthOne, today) * trackScore; monthOther += this.calculateScheduleDisplayCount(s, monthOne, today) * trackScore;
}
Map<String, Long> map = new HashMap<>(); Map<String, Long> map = new HashMap<>();
map.put("dayScore", dayOther); map.put("dayScore", dayOther);
map.put("weekScore", weekOther); map.put("weekScore", weekOther);
...@@ -531,9 +527,17 @@ public class ScheduleTrackServiceImpl implements ScheduleTrackService { ...@@ -531,9 +527,17 @@ public class ScheduleTrackServiceImpl implements ScheduleTrackService {
perSchedule.setOther(map); perSchedule.setOther(map);
} }
} }
}
private long calculateScheduleDisplayCount(ScheduleTrack s, Date firstDay, Date lastDay) { private long calculateScheduleDisplayCount(ScheduleTrack s, Date firstDay, Date lastDay) {
Date trackTime = s.getTrackTime();
String trackTimeStr = CommonUtil.dateParseString(trackTime,"yyyy-MM-dd");
String firstDayStr = CommonUtil.dateParseString(firstDay,"yyyy-MM-dd");
String lastDayStr = CommonUtil.dateParseString(lastDay,"yyyy-MM-dd");
if (trackTimeStr.compareTo(firstDayStr) > 0) {
firstDay = trackTime;
}
long count = 0L; long count = 0L;
if (Integer.valueOf(1).equals(s.getTaskRoutineAtweek1())) { if (Integer.valueOf(1).equals(s.getTaskRoutineAtweek1())) {
count += CommonUtil.weekDayCount(firstDay, lastDay, 1); count += CommonUtil.weekDayCount(firstDay, lastDay, 1);
...@@ -557,11 +561,6 @@ public class ScheduleTrackServiceImpl implements ScheduleTrackService { ...@@ -557,11 +561,6 @@ public class ScheduleTrackServiceImpl implements ScheduleTrackService {
count += CommonUtil.weekDayCount(firstDay, lastDay, 7); count += CommonUtil.weekDayCount(firstDay, lastDay, 7);
} }
// 判断trackTime是否在时间范围内 // 判断trackTime是否在时间范围内
Date trackTime = s.getTrackTime();
String trackTimeStr = CommonUtil.dateParseString(trackTime,"yyyy-MM-dd");
String firstDayStr = CommonUtil.dateParseString(firstDay,"yyyy-MM-dd");
String lastDayStr = CommonUtil.dateParseString(lastDay,"yyyy-MM-dd");
if (trackTimeStr.compareTo(firstDayStr)>=0 && trackTimeStr.compareTo(lastDayStr)<=0) { if (trackTimeStr.compareTo(firstDayStr)>=0 && trackTimeStr.compareTo(lastDayStr)<=0) {
String week = CommonUtil.getWeekOfDate(trackTime); String week = CommonUtil.getWeekOfDate(trackTime);
Integer flag = 0; Integer flag = 0;
......
...@@ -14,11 +14,10 @@ public interface ScheduleTrackMapper { ...@@ -14,11 +14,10 @@ public interface ScheduleTrackMapper {
List<ScheduleTrack> queryScheduleTrackList(@Param("practitionerId")Long practitionerId); List<ScheduleTrack> queryScheduleTrackList(@Param("practitionerId")Long practitionerId);
int checkTimePeriodConflict(@Param("taskTimeFrom")String taskTimeFrom, @Param("taskTimeEnd")String taskTimeEnd, int checkTimePeriodConflict(@Param("trackTime")Date trackTime, @Param("taskTimeFrom")String taskTimeFrom,
@Param("practitionerId")Long practitionerId); @Param("taskTimeEnd")String taskTimeEnd, @Param("practitionerId")Long practitionerId);
List<PersonalPEPScore> querySaleRecuitScoreFYC(@Param("list")List<Long> practitionerIdList, @Param("firstDay")Date firstDay, List<PersonalPEPScore> querySaleRecuitScoreFYC(@Param("list")List<Long> practitionerIdList);
@Param("lastDay")Date lastDay);
List<Long> queryTeamAllPractitionerId(@Param("practitionerId")Long practitionerId); List<Long> queryTeamAllPractitionerId(@Param("practitionerId")Long practitionerId);
......
...@@ -83,7 +83,7 @@ ...@@ -83,7 +83,7 @@
SELECT count(1) SELECT count(1)
FROM ag_mkt_schedule_task_tracking FROM ag_mkt_schedule_task_tracking
WHERE 1=1 WHERE 1=1
AND to_days(track_time) = to_days(now()) AND to_days(track_time) = to_days(#{taskTimeEnd,jdbcType=TIMESTAMP})
AND practitioner_id = #{practitionerId,jdbcType=BIGINT} AND practitioner_id = #{practitionerId,jdbcType=BIGINT}
AND (task_time_from &lt; STR_TO_DATE(#{taskTimeEnd,jdbcType=VARCHAR}, '%H:%i:%s') AND (task_time_from &lt; STR_TO_DATE(#{taskTimeEnd,jdbcType=VARCHAR}, '%H:%i:%s')
AND task_time_end &gt; STR_TO_DATE(#{taskTimeFrom,jdbcType=VARCHAR}, '%H:%i:%s') AND task_time_end &gt; STR_TO_DATE(#{taskTimeFrom,jdbcType=VARCHAR}, '%H:%i:%s')
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment