Commit 132ce465 by jianan

去除日程时间段冲突限制,添加同类型日程同时间段限制

parent 41032b4b
...@@ -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, practitionerId); int count = scheduleTrackMapper.checkIsExist(practitionerId, trackTime, taskType, taskTimeFrom, taskTimeEnd);
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());
track.setSalesNotice(schedule.getNotice());
track.setScheduleTaskTrackingId(schedule.getId());
List<MktLeadsAssignedTrack> trackList = mktLeadsAssignedTrackDALService.findByTrackTimeForNew(track);
if (trackList.isEmpty()){
//保存 //保存
mktLeadsAssignedTrackDALService.saveTrack(track); mktLeadsAssignedTrackDALService.saveTrack(track);
} else {
//更新
mktLeadsAssignedTrackDALService.updateTrack(track);
}
} }
private void insertPotentialAssignedTrack(ScheduleTrack schedule) { private void insertPotentialAssignedTrack(ScheduleTrack schedule) {
...@@ -176,9 +141,7 @@ public class ScheduleTrackServiceImpl implements ScheduleTrackService { ...@@ -176,9 +141,7 @@ public class ScheduleTrackServiceImpl implements ScheduleTrackService {
} }
aclPractitionerPotentialAssignedTrackDALService.updateAll(assignedTrackUpdateList); aclPractitionerPotentialAssignedTrackDALService.updateAll(assignedTrackUpdateList);
} }
//2、查询团队长对该增员所有增员状态 //2、插入
List<AclPractitionerPotentialAssignedTrack> assignedTrackList = aclPractitionerPotentialAssignedTrackDALService.findByPractitionerIdAndPotentialIdAndTrackStatusId(practitionerId,potentialId,trackStatusId,trackTimeDate);
if (assignedTrackList == null || assignedTrackList.isEmpty()) {//3、如果没有,获取增员状态对应的分值,
MdDropOptions options = mdDropOptionsDALService.findById(trackStatusId); MdDropOptions options = mdDropOptionsDALService.findById(trackStatusId);
assignedTrack.setTrackScore(options.getDropOptionScore()); assignedTrack.setTrackScore(options.getDropOptionScore());
assignedTrack.setPractitionerAssignedId(practitionerId); assignedTrack.setPractitionerAssignedId(practitionerId);
...@@ -193,16 +156,6 @@ public class ScheduleTrackServiceImpl implements ScheduleTrackService { ...@@ -193,16 +156,6 @@ public class ScheduleTrackServiceImpl implements ScheduleTrackService {
assignedTrack.setCreatedAt(new Date()); assignedTrack.setCreatedAt(new Date());
aclPractitionerPotentialAssignedTrackDALService.save(assignedTrack); 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);
}
} }
@Override @Override
......
...@@ -28,5 +28,8 @@ public interface ScheduleTrackMapper { ...@@ -28,5 +28,8 @@ public interface ScheduleTrackMapper {
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("taskType")Integer taskType,
@Param("taskTimeFrom")String taskTimeFrom, @Param("taskTimeEnd")String taskTimeEnd);
} }
...@@ -244,4 +244,15 @@ ...@@ -244,4 +244,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 task_type = #{taskType,jdbcType=INTEGER}
</select>
</mapper> </mapper>
\ No newline at end of file
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